title 'Direct Disk I/O' name 'DIOBIOS' public home,seldsk,settrk,setsec,setdma,read,write ;------------------------------------------------ ; define bios entry points relative to warm boot hme equ 0018H - 3 sldsk equ 001BH - 3 sttrk equ 001EH - 3 stsec equ 0021H - 3 stdma equ 0024H - 3 rd equ 0027H - 3 wr equ 002AH - 3 ;----------------------------------------------- home: lxi d,hme jmp gobios seldsk: call getword mov a,c ;save resel flag lxi d,sldsk jmp gobios settrk: lxi d,sttrk jmp gobios setsec: lxi d,stsec jmp gobios setdma: lxi d,stdma jmp gobios read: lxi d,rd jmp gobios write: lxi d,wr jmp gobios gobios: call getword lhld 1 ;get pointer dad d ;add in offset mov e,a ;special case for select disk pchl ;go to it getword: push d mov e,m inx h mov d,m inx h xchg mov c,m inx h mov b,m xchg pop d ret end