; PROGRAMME DE LECTURE_PISTE DU LECTEUR DE DISQUETTE AMSTRAD
; Authors: Cyril BARTOLO and Laurent KUTIL
; Code unasm: Babar - http://CPCrulez.fr

ld c,#07
call #b90f
ld de,#2500   ; o— DE contient le numéro de la piste
call #c045
di
ld hl,TABLE   ; voir tout en bas (codes correspondant à LIRE_PISTE)
ld bc,#fb7e
ld e,#09

la0ba:        ; cette boucle envoie au FDC les 9 octets de l'instruction lire piste
ld a,(hl)
call #c95c
inc hl
dec e
jr nz,la0ba
ld hl,ADRESSE ; c'est l'adresse o— on veut que les données soient stockées
ld de,#1800   ; c'est le nombre d'octets que l'on veut lire
jr la0d4

la0ca:        ; boucle de lecture piste (attention on y entre par la0d4: )
ld a,d
or e
jr z,la0d4    ; lit tant que DE n'est pas nul
inc c
in a,(c)      ; lit l'octet suivant
ld (hl),a     ; stocke dans HL l'octet lu
inc hl
dec c
dec de
la0d4:
in a,(c)
jp p,la0d4
and #20
jr nz,la0ca

ei
call #c91c

; ici les 3 flags de résultat de la lecture de la piste se trouvent en:
; #BE4C, #BE4D, #BE4E

RET

TABLE: def #42,0,#24,0,#c1,2,#c1,#2a,#ff
; (de mémoire ces codes n'ont pas grande importance, à part les 2 premiers; à vérifier dans le livre sur le "lecteur de disquette")