home *** CD-ROM | disk | FTP | other *** search
- .if .not .def _OS_
-
- _OS_ = 1
-
- .if .not .def _SYSTEM_
- .include #system
- .endif
- .if .not .def _MACROS_
- .include #macros
- .endif
-
- ;; -------------------------------------------------------------
- ;; Use this macro to install a handler into the
- ;; device table.
- ;; Call it with:
- ;; IHATABS deviceID,table,overwriteflag[,select]
- ;; Afterwards CARRY SET will signal failure!
- ;; -------------------------------------------------------------
- .macro IHATABS
- @3 .= @p1+@p2
- .if %0=4
- @3 .= %4
- .endif
-
- @moad %1,[@3 & @p1] / @p1 ;; load dev ID
- jsr fhatabs ;; find hatabs
-
- .if %3
- bne error
- .else
- bcs error
- .endif
-
- sta hatabs,y
- @dmoke_y %2,hatabs+1,[ @3 & @p1] / @p1
-
- .if %3
- .byte $A9 ; make it a lda #..
- error sec
- .else
- clc
- error
- .endif
- .endm
-
- .macro SELECT_DRIVE
- @3 .= @p1
- .if %0 = 2
- @3 .= %2
- .endif
- @moke %1,dunit,[@3 & @p1]
- .endm
-
- .macro READSECTOR
- @3 .= @p1 ! @p2 ! @p3
- .if %0 = 4
- @3 .= %4
- .endif
- .if .not [@3 & @special]
- poke dcomnd,'R
- .endif
- @dmoke %1,daux1,[@3 & @p1]
- @dmoke %2,dbytlo,[@3 & @p2] / @p2
- @dmoke %3,dbuflo,[@3 & @p3] / @p3
- jsr dskinv
- .endm
-
- .macro WRITESECTOR
- @3 .= @p1 ! @p2 ! @p3
- .if %0 = 4
- @3 .= %4
- .endif
- .if .not [@3 & @special]
- poke dcomnd,'P
- .endif
- @dmoke %1,daux1,[@3 & @p1]
- @dmoke %2,dbytlo,[@3 & @p2] / @p2
- @dmoke %3,dbuflo,[@3 & @p3] / @p3
- jsr dskinv
- .endm
-
- SIOREAD = 'R
- SIOWRITE = 'P
-
- .macro SETUP_SIO
- @3 .= @p1 ! @p2 ! @p3 ! @p4
- .if %0 = 5
- @3 .= %5
- .endif
- @moke %1,dunit, [@3 & @p1]
- @moke %2,dcomnd,[@3 & @p2] / @p2
- @dmoke %3,daux1, [@3 & @p3] / @p3
- @dmoke %4,dbuflo,[@3 & @p4] / @p4
- .endm
-
- .endif
-