Instruction manual
fb57 3a 35 fc LD A,(diskno)
fb5a 6f LD l, a ;l=disk number 0, 1, 2, 3
fb5b 26 00 LD h, 0 ;high order zero
fb5d 29 ADD HL,HL ;*2
fb5e 29 ADD HL,HL ;*4
fb5f 29 ADD HL,HL ;*8
fb60 29 ADD HL,HL ;*16 (size of each header)
fb61 11 33 fa LD DE, dpbase
fb64 19 ADD HL,DE ;hl=,dpbase (diskno*16) Note typo here in original source.
fb65 c9 ret
fb66 ;
fb66 settrk: ;set track given by register c
fb66 79 LD a, c
fb67 32 2f fc LD (track),A
fb6a c9 ret
fb6b ;
fb6b setsec: ;set sector given by register c
fb6b 79 LD a, c
fb6c 32 31 fc LD (sector),A
fb6f c9 ret
fb70 ;
fb70 ;
fb70 sectran:
fb70 ;translate the sector given by bc using the
fb70 ;translate table given by de
fb70 eb EX DE,HL ;hl=.trans
fb71 09 ADD HL,BC ;hl=.trans (sector)
fb72 c9 ret ;debug no translation
fb73 6e LD l, (hl) ;l=trans (sector)
fb74 26 00 LD h, 0 ;hl=trans (sector)
fb76 c9 ret ;with value in hl
fb77 ;
fb77 setdma: ;set dma address given by registers b and c
fb77 69 LD l, c ;low order address
fb78 60 LD h, b ;high order address
fb79 22 33 fc LD (dmaad),HL ;save the address
fb7c c9 ret
fb7d ;
fb7d read:
fb7d ;Read one CP/M sector from disk.
69










