Browse Source

Use IY to retrieve status and data port values from idat tables.

pull/460/head
b1ackmai1er 1 year ago
parent
commit
7a663e2a3c
  1. 28
      Source/HBIOS/ps2iface.inc

28
Source/HBIOS/ps2iface.inc

@ -9,30 +9,27 @@
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
; ;
#IF ((INTMODE == 2) & INTPS2KBD)) #IF ((INTMODE == 2) & INTPS2KBD))
;
; SETUP POINTER TO KEYBOARD PORT
;
#IF (TMSENABLE) #IF (TMSENABLE)
KBDPORTD .DB TMS_KBDDATA ; KBD CTLR DATA PORT
KBDPORTS .DB TMS_KBDST ; KBD CTLR STATUS/CMD PORT
KBDIDAT .EQU TMS_IDAT ; KBD INSTANCE DATA TABLE
#ELSE #ELSE
#IF (GDCENABLE) #IF (GDCENABLE)
KBDPORTD .DB GDC_KBDDATA ; KBD CTLR DATA PORT
KBDPORTS .DB GDC_KBDST ; KBD CTLR STATUS/CMD PORT
KBDIDAT .EQU GDC_IDAT ; KBD INSTANCE DATA TABLE
#ELSE #ELSE
#IF (CVDUENABLE) #IF (CVDUENABLE)
KBDPORTD .DB CVDU_KBDDATA ; KBD CTLR DATA PORT
KBDPORTS .DB CVDU_KBDST ; KBD CTLR STATUS/CMD PORT
KBDIDAT .EQU CVDU_IDAT ; KBD INSTANCE DATA TABLE
#ELSE #ELSE
#IF (VRCENABLE) #IF (VRCENABLE)
KBDPORTD .DB VRC_KBDDATA ; KBD CTLR DATA PORT
KBDPORTS .DB VRC_KBDST ; KBD CTLR STATUS/CMD PORT
KBDIDAT .EQU VRC_IDAT ; KBD INSTANCE DATA TABLE
#ELSE #ELSE
#IF (VGAENABLE) #IF (VGAENABLE)
KBDPORTD .DB VGA_KBDDATA ; KBD CTLR DATA PORT
KBDPORTS .DB VGA_KBDST ; KBD CTLR STATUS/CMD PORT
KBDIDAT .EQU VGA_IDAT ; KBD INSTANCE DATA TABLE
#ENDIF #ENDIF
#ENDIF #ENDIF
@ -68,14 +65,13 @@ KBDQ .FILL KBDQSIZ,0 ; CIRCULAR KEYBOARD BUFFER
; ;
KBD_INT: KBD_INT:
; CALL KBDQDBG ; CALL KBDQDBG
LD A,(KBDPORTS) ; READ CONTROLLER STATUS
LD C,A
LD IY,KBDIDAT
LD C,(IY+KBD_ST) ; READ CONTROLLER STATUS
EZ80_IO EZ80_IO
IN A,(C) IN A,(C)
AND 1 AND 1
RET Z RET Z
LD A,(KBDPORTD) ; GET THE RESPONSE
LD C,A
LD C,(IY+KBD_DAT) ; GET THE RESPONSE
EZ80_IO EZ80_IO
IN A,(C) IN A,(C)
; CALL KBDQPUSH ; SAVE KEYBOARD SCAN CODE ; CALL KBDQPUSH ; SAVE KEYBOARD SCAN CODE
@ -148,8 +144,6 @@ KBDQPOP:
KBD_IN: KBD_IN:
#ENDIF #ENDIF
KBD_IN_P: KBD_IN_P:
EZ80_IO
IN A,(C) ; GET THE DATA VALUE
LD C,(IY+KBD_DAT) ; DATA PORT LD C,(IY+KBD_DAT) ; DATA PORT
EZ80_IO EZ80_IO
IN A,(C) ; GET THE DATA VALUE IN A,(C) ; GET THE DATA VALUE

Loading…
Cancel
Save