CODINGCLEFS POUR AMSTRAD 2 ★ Système disque par Daniel Martin et Philippe Jadoul ★

Clefs pour Amstrad 2 : 47 - Rsx de Lecture et d'Ecriture SecteurCoding Clefs Pour Amstrad 2
AMSDOS : RSXS DE LECTURE ET D'ECRITURE SECTEUR

Le petit programme suivant permet d'installer deux nouvelles instructions dans le Basic sous forme de RSXs.

1- Encodez le programme Basic.
2- Sauvez-le sur disque.
3- Lancez-le (RUN).
4- Effacez-le (NEW).
5- Deux nouvelles instructions sont à votre disposition.
|LECTSEC, piste,secteur,tampon

Cette instruction permet de lire un secteur et d'écrire son contenu en mémoire centrale :

— piste est un nombre compris entre 0 et 39 qui indique le numéro de piste ;
— secteur est un numéro de secteur compris entre 0 et 8 qui indique le secteur logique à lire ;
— tampon représente l'adresse d'une zone mémoire vive disponible de 512 octets où l'on retrouvera le secteur lu.
|ECRISEC,pi ste,secteur,tampon

Cette instruction permet d'écrire le contenu d'un tampon présent en mémoire vive (512 octets) dans un secteur spécifié.

Remarque : ces instructions fonctionnent uniquement pour les disquettes au format système ou données.

Vous trouverez le listing de la source assembleur de la routine à la suite du programme Basic.

Programme Basic

10 REM installe RSX LECTSEC ECRISEC
20 MEMORY &9FFF
30 FOR I=&A000 TO &A08F
40 READ A$
50 POKE I,VAL("&"+A$)
60 NEXT I
70 CALL &A000
80 DATA 01,0A,A0,21,8E,A0,CD,D1,BC,C9,12,A0,C3,21,A0,C3,5B,A0,4C,45,43,54,53,45,C3,45,43,52,49,53,45,C3,00,F5,AF,32,8D,A0,F1,FE,03,20,38,DD,7E,00,DD,56,02,DD,6E,04,DD,66,05,C6,41,1E,00,F5,0E,07,CD,0F,B9,F1,C5,4F,F5,3A,8D,A0,FE,00
90 DATA 28,06,F1,CD,4E,C6,18,04,F1,CD,66,C6,C1,CD,18,B9,C9,F5,AF,3C,32,8D,A0,18,C3,21,70,AO,7E,FE,00,CB,CD,5A,BB,23,18,F6,4E,4F,4D,42,52,45,20,44,27,41,52,47,55,4D,45,4E,54,53,20,49,4E,43,4F,52,52,45,43,54,00,00,00,00

Listing Assembleur

Hisoft GENA3.1 Assembler. Page 1.

Pass 1 errors: 00

    ; 10 ; RSX LECTSEC & ECRISEC
   ; 20 ; D. MARTIN LIEGE 1985
   ; 30 ;
   ; 40 ; |LECSECT,TAMPON,PISTE,SECTEUR
   ; 50 ; |ECRISEC,TAMPON,PISTE,SECTEUR
   ; 60 ;
BCD1     ;70 INIRSX:  EQU #BCD1
BB5A     ;80 PRINT:   EQU #BB5A
B90F     ;90 SELROM:  EQU #B90F
B918    100 DESROM:  EQU #B918
C666    110 LECT: EQU #C666
C64E    120 ECRIT:   EQU #C64E
A000    130    ORG #A000
A000 010AA0   140    LD BC,COMEXT
A003 218EA0   150    LD HL,TAMPON
A006 CDD1BC   160    CALL INIRSX
A009 C9    170    RET
A00A 12A0  180    COMEXT: DEFW TABLE
AOOC C321A0   190    JP LSEC
AOOF C35BA0   200    JP ESEC
A012 4C454354 210 TABLEs   DEFM "LECTSE”
A018 C3    220  &emspDEFB "C"+#80
A019 45435249 230  &emspDEFM "ECRISE"
A01F C3    240  &emspDEFB "C"+#80
A020 00    250  &emspDEFB 00
A021 F5    260 LSEC: PUSH AF
A022 AF    270    XOR A
A023 328DA0   280    LD (TYPE),A
A026 F1    290 MAIN: POP AF
A027 FE03  300    CP 3
A029 2038  310    JR NZ,ERREUR
A02B DD7E00   320    LD A,(IX+0)
A02E DD5602   330    LD D,(IX+2)
A031 DD6E04   340    LD L,(IX+4)
A034 DD6605   350    LD H,(IX+5)
A037 C641  360    ADD A,#41
Hisoft GENA3.1 Assembler. Page 2.
   ; 365 *E
A039 1E00  370   LD E,0
A03B F5    380   PUSH AF
A03C 0E07  390   LD C,7
A03E CD0FB9   400   CALL SELROM
A041 F1    410   POP AF
A042 C5    420   PUSH BC
A043 4F    430   LD C,A
A044 F5    440   PUSH AF
A045 3A8DA0   450   LD A,(TYPE)
A048 FE00  460   CP 0
A04A 2806  470   JR Z,LIT
A04C F1    480   POP AF
A04D CD4EC6   490   CALL ECRIT
A050 1804  500   JR SUITE
A052 F1    510 LIT: POP AF
A053 CD66C6   520   CALL LECT
A056 C1    530 SUITE:  POP BC
A057 CD18B9   540   CALL DESROM
A05A C9    550   RET
A05B F5    560 ESEC:   PUSH AF
A05C AF    570   XOR A
A05D 3C    580   INC A
A05E 328DA0   590   LD (TYPE),A
A061 18C3  600   JR MAIN
A063 2170A0   610 ERREUR: LD HL,MESERR
A066 7E    620 ENVOI:  LD A,(HL)
A067 FE00  630   CP 0
A069 C8    640   RET Z
A06A CD5ABB   650   CALL PRINT
A06D 23    660   INC HL
A06E 18F6  670   JR ENVOI
A070 4E4F4D42 680 MESERR: DEFM "NOMBRE D'ARGUMENTS
A083 494E434F 690   ;DEFM " INCORRECT"
A08C 00    700   DEFB 0
A08D    710  YPE:   DEFS 1
A08E    720 TAMPON: DEFS 4

★ ANNÉE: ???
★ AUTEUR(S): ???

Page précédente : Clefs pour Amstrad 2 : 46 Connecteur Rs232
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 083 millisecondes et consultée 2047 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.