System information
write: ;perform a write operation
ds 10h ;set up write command
;
waitio: ;enter here from read and write to perform the actual i/o
; operation. return a 00h in register a if the operation completes
; properly, and 0lh if an error occurs during the read or write
;
; in this case, we have saved the disk number in 'diskno' (0, 1)
; the track number in 'track' (0-76)
; the sector number in 'sector' (1-26)
; the dma address in 'dmaad' (0-65535)
ds 256 ;space reserved for i/o drivers
mvi a, 1 ;error condition
ret ;replaced when filled-in
;
; the remainder of the cbios is reserved uninitialized
; data area, and does not need to be a Part of the
; system memory image (the space must be available,
; however, between"begdat" and"enddat").
;
track: ds 2 ;two bytes for expansion
sector: ds 2 ;two bytes for expansion
dmaad: ds 2 ;direct memory address
diskno: ds 1 ;disk number 0-15
;
; scratch ram area for bdos use
begdat equ $ ;beginning of data area
dirbf: ds 128 ;scratch directory area
all00: ds 31 ;allocation vector 0
all01: ds 31 ;allocation vector 1
all02: ds 31 ;allocation vector 2
all03: ds 31 ;allocation vector 3
chk00: ds 16 ;check vector 0
chk01: ds 16 ;check vector 1
chk02: ds 16 ;check vector 2
chk03: ds 16 ;check vector 3
;
enddat equ $ ;end of data area
datsiz equ $-begdat; ;size of data area
end
Appendix B : A Sekletal CBIOS CP/M Operating System Manual
B-7