home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / nasm20b / libinc / header / os.h65 < prev    next >
Text File  |  1993-01-19  |  2KB  |  97 lines

  1.    .if .not .def _OS_
  2.  
  3. _OS_ = 1   
  4.  
  5.    .if .not .def _SYSTEM_
  6.       .include #system
  7.    .endif
  8.    .if .not .def _MACROS_
  9.       .include #macros
  10.    .endif
  11.    
  12. ;; -------------------------------------------------------------
  13. ;; Use this macro to install a handler into the 
  14. ;; device table.
  15. ;; Call it with:
  16. ;;    IHATABS  deviceID,table,overwriteflag[,select]
  17. ;; Afterwards CARRY SET will signal failure!
  18. ;; -------------------------------------------------------------
  19.    .macro IHATABS
  20. @3    .= @p1+@p2
  21.       .if %0=4
  22. @3       .= %4
  23.       .endif
  24.       
  25.       @moad  %1,[@3 & @p1] / @p1 ;; load dev ID
  26.       jsr  fhatabs              ;; find hatabs
  27.  
  28.       .if %3
  29.          bne  error
  30.       .else
  31.          bcs  error
  32.       .endif
  33.  
  34.       sta     hatabs,y
  35.       @dmoke_y %2,hatabs+1,[ @3 & @p1] / @p1
  36.  
  37.       .if %3
  38.          .byte $A9   ; make it a lda #..
  39. error    sec
  40.       .else
  41.          clc
  42. error
  43.       .endif       
  44.    .endm
  45.  
  46.    .macro SELECT_DRIVE
  47. @3    .= @p1
  48.       .if %0 = 2
  49. @3       .= %2
  50.       .endif
  51.       @moke %1,dunit,[@3 & @p1]
  52.    .endm
  53.       
  54.    .macro READSECTOR
  55. @3    .= @p1 ! @p2 ! @p3 
  56.       .if %0 = 4
  57. @3       .= %4
  58.       .endif
  59.       .if .not [@3 & @special]      
  60.          poke  dcomnd,'R
  61.       .endif
  62.       @dmoke %1,daux1,[@3 & @p1]
  63.       @dmoke %2,dbytlo,[@3 & @p2] / @p2
  64.       @dmoke %3,dbuflo,[@3 & @p3] / @p3
  65.       jsr   dskinv
  66.    .endm
  67.  
  68.    .macro WRITESECTOR
  69. @3    .= @p1 ! @p2 ! @p3
  70.       .if %0 = 4
  71. @3       .= %4
  72.       .endif
  73.       .if .not [@3 & @special]      
  74.          poke  dcomnd,'P
  75.       .endif
  76.       @dmoke %1,daux1,[@3 & @p1]
  77.       @dmoke %2,dbytlo,[@3 & @p2] / @p2
  78.       @dmoke %3,dbuflo,[@3 & @p3] / @p3
  79.       jsr   dskinv
  80.    .endm
  81.  
  82. SIOREAD  = 'R
  83. SIOWRITE = 'P
  84.  
  85.    .macro SETUP_SIO
  86. @3    .= @p1 ! @p2 ! @p3 ! @p4
  87.       .if %0 = 5
  88. @3       .= %5
  89.       .endif
  90.       @moke  %1,dunit, [@3 & @p1]
  91.       @moke  %2,dcomnd,[@3 & @p2] / @p2
  92.       @dmoke %3,daux1, [@3 & @p3] / @p3
  93.       @dmoke %4,dbuflo,[@3 & @p4] / @p4
  94.    .endm
  95.  
  96.    .endif
  97.