|
|
@ -1003,6 +1003,7 @@ TXT_HELP: |
|
|
; |
|
|
; |
|
|
#IF DSKYENABLE |
|
|
#IF DSKYENABLE |
|
|
; |
|
|
; |
|
|
|
|
|
#DEFINE DSKY_KBD |
|
|
#INCLUDE "dsky.asm" |
|
|
#INCLUDE "dsky.asm" |
|
|
; |
|
|
; |
|
|
; |
|
|
; |
|
|
@ -1337,6 +1338,45 @@ GETADDRDISP: |
|
|
LD (ADDR+3),A ; |
|
|
LD (ADDR+3),A ; |
|
|
JP GETADDR1 ; |
|
|
JP GETADDR1 ; |
|
|
; |
|
|
; |
|
|
|
|
|
;__DSPSECTOR__________________________________________________________________ |
|
|
|
|
|
; |
|
|
|
|
|
; DISPLAY SECTOR IN HL ON FRONT PANEL |
|
|
|
|
|
;_____________________________________________________________________________ |
|
|
|
|
|
; |
|
|
|
|
|
DSPSECTOR: |
|
|
|
|
|
PUSH BC ; STORE BC |
|
|
|
|
|
PUSH HL ; STORE HL |
|
|
|
|
|
LD A,H ; DISPLAY HIGH BYTE, HIGH NIBBLE |
|
|
|
|
|
SRL A ; |
|
|
|
|
|
SRL A ; |
|
|
|
|
|
SRL A ; |
|
|
|
|
|
SRL A ; |
|
|
|
|
|
AND 0FH ; |
|
|
|
|
|
CALL DECODEDISPLAY ; |
|
|
|
|
|
LD (SEC+3),A ; |
|
|
|
|
|
LD A,H ; DISPLAY HIGH BYTE, LOW NIBBLE |
|
|
|
|
|
AND 0FH ; |
|
|
|
|
|
CALL DECODEDISPLAY ; |
|
|
|
|
|
LD (SEC+2),A ; |
|
|
|
|
|
LD A,L ; DISPLAY LOW BYTE, HIGH NIBBLE |
|
|
|
|
|
AND 0F0H ; |
|
|
|
|
|
SRL A ; |
|
|
|
|
|
SRL A ; |
|
|
|
|
|
SRL A ; |
|
|
|
|
|
SRL A ; |
|
|
|
|
|
AND 0FH ; |
|
|
|
|
|
CALL DECODEDISPLAY ; |
|
|
|
|
|
LD (SEC+1),A ; DISPLAY LOW BYTE, LOW NIBBLE |
|
|
|
|
|
LD A,L ; |
|
|
|
|
|
AND 0FH ; |
|
|
|
|
|
CALL DECODEDISPLAY ; |
|
|
|
|
|
LD (SEC),A ; |
|
|
|
|
|
LD HL,SEC ; DISPLAY PROMPT |
|
|
|
|
|
CALL SEGDISPLAY ; |
|
|
|
|
|
POP HL ; RESTORE HL |
|
|
|
|
|
POP BC ; RESTORE BC |
|
|
|
|
|
RET |
|
|
|
|
|
; |
|
|
;__GETPORT____________________________________________________________________ |
|
|
;__GETPORT____________________________________________________________________ |
|
|
; |
|
|
; |
|
|
; GET PORT FROM FRONT PANEL |
|
|
; GET PORT FROM FRONT PANEL |
|
|
@ -1463,91 +1503,11 @@ MTERM_INIT: |
|
|
;_____________________________________________________________________________ |
|
|
;_____________________________________________________________________________ |
|
|
; |
|
|
; |
|
|
KB_GET: |
|
|
KB_GET: |
|
|
PUSH HL ; STORE HL |
|
|
|
|
|
KB_GET_LOOP: ; WAIT FOR KEY |
|
|
|
|
|
CALL KB_SCAN ; SCAN KB ONCE |
|
|
|
|
|
CP 00H ; NULL? |
|
|
|
|
|
JR Z,KB_GET_LOOP ; LOOP WHILE NOT ZERO |
|
|
|
|
|
LD D,A ; STORE A |
|
|
|
|
|
LD A,4FH | 30H ; SCAN ALL COL LINES |
|
|
|
|
|
OUT (PPIC),A ; SEND TO COLUMN LINES |
|
|
|
|
|
CALL KB_SCAN_DELAY ; DELAY TO ALLOW LINES TO STABILIZE |
|
|
|
|
|
KB_CLEAR_LOOP: ; WAIT FOR KEY TO CLEAR |
|
|
|
|
|
IN A,(PPIB) ; GET ROWS |
|
|
|
|
|
AND 7FH ;ignore PB7 for PPISD |
|
|
|
|
|
CP 00H ; ANYTHING PRESSED? |
|
|
|
|
|
JR NZ,KB_CLEAR_LOOP ; YES, EXIT |
|
|
|
|
|
LD A,D ; RESTORE A |
|
|
|
|
|
LD D,00H ; |
|
|
|
|
|
LD HL,KB_DECODE ; POINT TO BEGINNING OF TABLE |
|
|
|
|
|
KB_GET_LLOOP: |
|
|
|
|
|
CP (HL) ; MATCH? |
|
|
|
|
|
JR Z,KB_GET_DONE ; FOUND, DONE |
|
|
|
|
|
INC HL |
|
|
|
|
|
INC D ; D + 1 |
|
|
|
|
|
JP NZ,KB_GET_LLOOP ; NOT FOUND, LOOP UNTIL EOT |
|
|
|
|
|
KB_GET_DONE: |
|
|
|
|
|
LD A,D ; RESULT INTO A |
|
|
|
|
|
|
|
|
PUSH HL ; SAVE HL |
|
|
|
|
|
CALL KY_GET ; GET A KEY |
|
|
POP HL ; RESTORE HL |
|
|
POP HL ; RESTORE HL |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
;__KB_SCAN____________________________________________________________________ |
|
|
|
|
|
; |
|
|
|
|
|
; SCAN KEYBOARD MATRIX FOR AN INPUT |
|
|
|
|
|
; |
|
|
|
|
|
;_____________________________________________________________________________ |
|
|
|
|
|
; |
|
|
|
|
|
KB_SCAN: |
|
|
|
|
|
LD C,0000H |
|
|
|
|
|
LD A,41H | 30H ; SCAN COL ONE |
|
|
|
|
|
OUT (PPIC),A ; SEND TO COLUMN LINES |
|
|
|
|
|
CALL KB_SCAN_DELAY ; DELAY TO ALLOW LINES TO STABILIZE |
|
|
|
|
|
IN A,(PPIB) ; GET ROWS |
|
|
|
|
|
AND 7FH ;ignore PB7 for PPISD |
|
|
|
|
|
CP 00H ; ANYTHING PRESSED? |
|
|
|
|
|
JR NZ,KB_SCAN_FOUND ; YES, EXIT |
|
|
|
|
|
|
|
|
|
|
|
LD C,0040H |
|
|
|
|
|
LD A,42H | 30H ; SCAN COL TWO |
|
|
|
|
|
OUT (PPIC),A ; SEND TO COLUMN LINES |
|
|
|
|
|
CALL KB_SCAN_DELAY ; DELAY TO ALLOW LINES TO STABILIZE |
|
|
|
|
|
IN A,(PPIB) ; GET ROWS |
|
|
|
|
|
AND 7FH ;ignore PB7 for PPISD |
|
|
|
|
|
CP 00H ; ANYTHING PRESSED? |
|
|
|
|
|
JR NZ,KB_SCAN_FOUND ; YES, EXIT |
|
|
|
|
|
|
|
|
|
|
|
LD C,0080H |
|
|
|
|
|
LD A,44H | 30H ; SCAN COL THREE |
|
|
|
|
|
OUT (PPIC),A ; SEND TO COLUMN LINES |
|
|
|
|
|
CALL KB_SCAN_DELAY ; DELAY TO ALLOW LINES TO STABILIZE |
|
|
|
|
|
IN A,(PPIB) ; GET ROWS |
|
|
|
|
|
AND 7FH ;ignore PB7 for PPISD |
|
|
|
|
|
CP 00H ; ANYTHING PRESSED? |
|
|
|
|
|
JR NZ,KB_SCAN_FOUND ; YES, EXIT |
|
|
|
|
|
|
|
|
|
|
|
LD C,00C0H ; |
|
|
|
|
|
LD A,48H | 30H ; SCAN COL FOUR |
|
|
|
|
|
OUT (PPIC),A ; SEND TO COLUMN LINES |
|
|
|
|
|
CALL KB_SCAN_DELAY ; DELAY TO ALLOW LINES TO STABILIZE |
|
|
|
|
|
IN A,(PPIB) ; GET ROWS |
|
|
|
|
|
AND 7FH ;ignore PB7 for PPISD |
|
|
|
|
|
CP 00H ; ANYTHING PRESSED? |
|
|
|
|
|
JR NZ,KB_SCAN_FOUND ; YES, EXIT |
|
|
|
|
|
|
|
|
|
|
|
LD A, 40H | 30H ; TURN OFF ALL COLUMNS |
|
|
|
|
|
OUT (PPIC),A ; SEND TO COLUMN LINES |
|
|
|
|
|
LD A, 00H ; RETURN NULL |
|
|
|
|
|
RET ; EXIT |
|
|
|
|
|
|
|
|
|
|
|
KB_SCAN_FOUND: |
|
|
|
|
|
AND 3FH ; CLEAR TOP TWO BITS |
|
|
|
|
|
OR C ; ADD IN ROW BITS |
|
|
|
|
|
LD C,A ; STORE VALUE |
|
|
|
|
|
LD A, 00H | 30H ; TURN OFF ALL COLUMNS |
|
|
|
|
|
OUT (PPIC),A ; SEND TO COLUMN LINES |
|
|
|
|
|
LD A,C ; RESTORE VALUE |
|
|
|
|
|
RET |
|
|
|
|
|
|
|
|
|
|
|
PAUSE: |
|
|
PAUSE: |
|
|
KB_SCAN_DELAY: |
|
|
KB_SCAN_DELAY: |
|
|
NOP |
|
|
NOP |
|
|
@ -1656,10 +1616,10 @@ SEGDISPLAY_LP: |
|
|
POP AF ; RESTORE AF |
|
|
POP AF ; RESTORE AF |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
CPUUP .DB $84,$EE,$BB,$80,$BB,$EE,$CB,$84 ; "-CPU UP-" |
|
|
|
|
|
ADDR .DB $00,$00,$00,$00,$8C,$BD,$BD,$FE ; "Addr " |
|
|
|
|
|
PORT .DB $00,$00,$80,$80,$94,$8C,$9D,$EE ; "Port .." |
|
|
|
|
|
SEC .DB $80,$80,$80,$80,$80,$CB,$CF,$D7 ; "SEC " |
|
|
|
|
|
|
|
|
CPUUP .DB $84,$EE,$BB,$80,$BB,$EE,$CB,$84 |
|
|
|
|
|
ADDR .DB $00,$00,$00,$00,$8C,$BD,$BD,$FE |
|
|
|
|
|
PORT .DB $00,$00,$80,$80,$94,$8C,$9D,$EE |
|
|
|
|
|
SEC .DB $80,$80,$80,$80,$80,$CB,$CF,$D7 |
|
|
|
|
|
|
|
|
;_KB DECODE TABLE_____________________________________________________________ |
|
|
;_KB DECODE TABLE_____________________________________________________________ |
|
|
; |
|
|
; |
|
|
@ -1683,13 +1643,11 @@ KB_DECODE: |
|
|
; |
|
|
; |
|
|
;_HEX 7_SEG_DECODE_TABLE______________________________________________________ |
|
|
;_HEX 7_SEG_DECODE_TABLE______________________________________________________ |
|
|
; |
|
|
; |
|
|
; 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, ,-,.,P,o |
|
|
|
|
|
|
|
|
; 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, ,- |
|
|
; AND WITH 7FH TO TURN ON DP |
|
|
; AND WITH 7FH TO TURN ON DP |
|
|
;_____________________________________________________________________________ |
|
|
;_____________________________________________________________________________ |
|
|
SEGDECODE: |
|
|
SEGDECODE: |
|
|
; 0 1 2 3 4 5 6 7 8 9 A B |
|
|
|
|
|
.DB $FB,$B0,$ED,$F5,$B6,$D7,$DF,$F0,$FF,$F7,$FE,$9F |
|
|
.DB $FB,$B0,$ED,$F5,$B6,$D7,$DF,$F0,$FF,$F7,$FE,$9F |
|
|
; C D E F - . P o |
|
|
|
|
|
.DB $CB,$BD,$CF,$CE,$80,$84,$00,$EE,$9D |
|
|
.DB $CB,$BD,$CF,$CE,$80,$84,$00,$EE,$9D |
|
|
; |
|
|
; |
|
|
DISPLAYBUF: .FILL 8,0 |
|
|
DISPLAYBUF: .FILL 8,0 |
|
|
|