VM02/src/graphtabdrvr.s

67 lines
961 B
ArmAsm
Executable File

;*
;* GRAPHICS TABLET DEVICE DRIVER
;*
TEM EQU $280
XFLL EQU $281
XFLH EQU $282
YFLL EQU $283
YFLH EQU $284
MSLOT EQU $7F8
ROMREAD EQU $CBF4
ROMOFFSC EQU $CBC6
ROMSWCHK EQU $CBD0
ROMSW EQU $CFFF
GT_INIT: LDA #IOCTL_CLOSE
BNE GT_CTRL
GT_DRIVER:
GT_DRVR_SZ: .WORD GT_DRVR_END - GT_DRVR_START
GT_READ_OFS: .WORD GT_READ - GT_DRVR_START
GT_WRITE_OFS: .WORD GT_WRITE - GT_DRVR_START
GT_CTRL_OFS: .WORD GT_CTRL - GT_DRVR_START
GT_IRQ_OFS: .WORD GT_IRQ - GT_DRVR_START
GT_DRVR_START:
GT_READ:
GT_WRITE: SEC
RTS
GT_CTRL: TYA
AND #$F8 ; MASK OFF SLOT #
CMP #GTCTL_CALLFW
BNE :+
TYA
AND #$07
ORA #$C0
SEI
STA MSLOT
STA TMPTR+1
BIT ROMSW
LDY #$00
STY TMPTR
LDA (TMPTR),Y
JSR ROMREAD
CLI
BCC GTSWCHK
JMP ROMOFFSC
GTSWCHK: JMP ROMSWCHK
: CMP #IOCTL_OPEN
BNE :+
TYA
AND #$07
ASL
TAX
CLC
RTS
: CMP #IOCTL_CLOSE
BNE :+
CLC
RTS
: CMP #IOCTL_ID
BNE :+
LDA #$2F ; GRAPHICS TABLET ID
CLC
RTS
GT_IRQ:
: SEC
RTS
GT_DRVR_END EQU *