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

Clefs2 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 DEFB "C"+#80
A019 45435249 230 DEFM "ECRISE"
A01F C3 240 DEFB "C"+#80
A020 00 250 DEFB 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 : Clefs2 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.7-desktop/c
Page créée en 321 millisecondes et consultée 1578 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.