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 847 millisecondes et consultée 1972 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.