|
|
|
@ -87,9 +87,10 @@ PKD_PRESCL .EQU PKDOSC/100000 ; PRESCALER |
|
|
|
; HARDWARE RESET 8279 BY PULSING RESET LINE |
|
|
|
; |
|
|
|
PKD_PREINIT: |
|
|
|
LD A,(DSKY_DISPACT) ; DSKY DISPATCHER ALREADY SET? |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET NZ ; IF ALREADY ACTIVE, ABORT |
|
|
|
; |
|
|
|
; RESET PRESENCE FLAG |
|
|
|
XOR A ; ASSUME NOT PRESENT |
|
|
|
LD (PKD_PRESENT),A ; SAVE IT |
|
|
|
; |
|
|
|
; CHECK FOR PPI |
|
|
|
CALL PKD_PPIDETECT ; TEST FOR PPI HARDWARE |
|
|
|
@ -247,9 +248,6 @@ PKD_RESET2: |
|
|
|
; CHECK FOR KEY PRESS, SAVE RAW VALUE, RETURN STATUS |
|
|
|
; |
|
|
|
PKD_STAT: |
|
|
|
LD A,(PKD_PRESENT) ; DOES IT EXIST? |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET Z ; ABORT WITH A=0 IF NOT THERE |
|
|
|
CALL PKD_ST |
|
|
|
AND $0F ; ISOLATE THE CUR FIFO LEN |
|
|
|
RET |
|
|
|
@ -257,9 +255,6 @@ PKD_STAT: |
|
|
|
; WAIT FOR A DSKY KEYPRESS AND RETURN |
|
|
|
; |
|
|
|
PKD_GETKEY: |
|
|
|
LD A,(PKD_PRESENT) ; DOES IT EXIST? |
|
|
|
OR A ; SET FLAGS |
|
|
|
JR Z,PKD_GETKEY1A ; ABORT IF NOT PRESENT |
|
|
|
CALL PKD_STAT |
|
|
|
JR Z,PKD_GETKEY ; LOOP IF NOTHING THERE |
|
|
|
LD A,PKD_CMD_FIFO |
|
|
|
@ -278,7 +273,6 @@ PKD_GETKEY1: |
|
|
|
INC C ; BUMP INDEX |
|
|
|
DJNZ PKD_GETKEY1 ; LOOP UNTIL EOT |
|
|
|
POP AF ; FIX STACK |
|
|
|
PKD_GETKEY1A: |
|
|
|
LD A,$FF ; NOT FOUND ERR, RETURN $FF |
|
|
|
RET |
|
|
|
PKD_GETKEY2: |
|
|
|
|