home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / utils / sysutl / chgdsk11.lbr / DIOBIOS.AZM / DIOBIOS.ASM
Encoding:
Assembly Source File  |  1987-04-26  |  1.0 KB  |  68 lines

  1.     title    'Direct Disk I/O'
  2.     name    'DIOBIOS'
  3.  
  4.     public    home,seldsk,settrk,setsec,setdma,read,write
  5.  
  6. ;------------------------------------------------
  7. ; define bios entry points relative to warm boot
  8.  
  9. hme    equ    0018H - 3
  10. sldsk    equ    001BH - 3
  11. sttrk    equ    001EH - 3
  12. stsec    equ    0021H - 3
  13. stdma    equ    0024H - 3
  14. rd    equ    0027H - 3
  15. wr    equ    002AH - 3
  16.  
  17. ;-----------------------------------------------
  18.  
  19.  
  20. home:    lxi    d,hme
  21.     jmp    gobios
  22.  
  23.  
  24. seldsk:    call    getword
  25.     mov    a,c        ;save resel flag
  26.     lxi    d,sldsk
  27.     jmp    gobios
  28.  
  29. settrk:    lxi    d,sttrk
  30.     jmp    gobios
  31.  
  32.  
  33. setsec:    lxi    d,stsec
  34.     jmp    gobios
  35.  
  36. setdma:    lxi    d,stdma
  37.     jmp    gobios
  38.  
  39. read:    lxi    d,rd
  40.     jmp    gobios
  41.  
  42. write:    lxi    d,wr
  43.     jmp    gobios
  44.  
  45.  
  46. gobios:    call    getword
  47.     lhld    1    ;get pointer
  48.     dad    d    ;add in offset
  49.     mov    e,a    ;special case for select disk
  50.     pchl        ;go to it
  51.  
  52.  
  53. getword:
  54.     push    d
  55.     mov    e,m
  56.     inx    h
  57.     mov    d,m
  58.     inx    h
  59.     xchg
  60.     mov    c,m
  61.     inx    h
  62.     mov    b,m
  63.     xchg
  64.     pop    d
  65.     ret
  66.  
  67.     end
  68.  ╘SELECT_MASK$J
  69. WD_FLAG
  70. $J∞╘FLOPPY_STATUS$J╒╒MULTIPLEX_FLAG p╩*