|
|
|
@ -16,7 +16,7 @@ |
|
|
|
FALSE: .EQU 0 |
|
|
|
TRUE: .EQU !FALSE |
|
|
|
; |
|
|
|
DSKY_OSC: .EQU 2000000 ; OSCILLATOR FREQ IN HZ |
|
|
|
DSKY_OSC: .EQU 100000 ; OSCILLATOR FREQ IN HZ |
|
|
|
; |
|
|
|
BDOS: .EQU FALSE ; BDOS OR DIRECT TO 8250ISH |
|
|
|
; |
|
|
|
@ -31,25 +31,25 @@ PPI_BASE: .EQU $60 ; PPI BASE IO PORT |
|
|
|
; 10 04 |
|
|
|
; +--08--+ 80 |
|
|
|
; |
|
|
|
; KEY CODE MAP (KEY CODES) --CCCRRR |
|
|
|
; KEY CODE MAP (KEY CODES) --CCCRRR |
|
|
|
; |
|
|
|
; 00 08 10 18 |
|
|
|
; 01 09 11 19 |
|
|
|
; 02 0A 12 1A |
|
|
|
; 03 0B 13 1B |
|
|
|
; 04 0C 14 1C |
|
|
|
; 05 0D 15 1D |
|
|
|
; 00 08 10 18 23 |
|
|
|
; 01 09 11 19 22 |
|
|
|
; 02 0A 12 1A 21 |
|
|
|
; 03 0B 13 1B 20 |
|
|
|
; 04 0C 14 1C SHIFT |
|
|
|
; 05 0D 15 1D CONTROL |
|
|
|
; |
|
|
|
; LED BIT MAP (BIT VALUES) |
|
|
|
; |
|
|
|
; $08 $09 $0A $0B |
|
|
|
; --- --- --- --- |
|
|
|
; 01 01 01 01 |
|
|
|
; 02 02 02 02 |
|
|
|
; 04 04 04 04 |
|
|
|
; 08 08 08 08 |
|
|
|
; 10 10 10 10 |
|
|
|
; 20 20 20 20 |
|
|
|
; $08 $09 $0A $0B $0C |
|
|
|
; --- --- --- --- --- |
|
|
|
; 01 01 01 01 01 |
|
|
|
; 02 02 02 02 02 |
|
|
|
; 04 04 04 04 04 |
|
|
|
; 08 08 08 08 08 |
|
|
|
; 10 10 10 10 10 |
|
|
|
; 20 20 20 20 20 |
|
|
|
; |
|
|
|
PPIA: .EQU PPI_BASE + 0 ; PORT A |
|
|
|
PPIB: .EQU PPI_BASE + 1 ; PORT B |
|
|
|
@ -62,12 +62,12 @@ DSKY_PPIX_WR: .EQU %10000010 ; PPIX VALUE FOR WRITES |
|
|
|
; PIO CHANNEL C: |
|
|
|
; |
|
|
|
; 7 6 5 4 3 2 1 0 |
|
|
|
; RES /RD /WR CS CS 0 0 A0 |
|
|
|
; RES 0 0 CS CS /RD /WR A0 |
|
|
|
; |
|
|
|
; SETTING BITS 3 & 4 WILL ASSERT /CS ON 3279 |
|
|
|
; CLEAR BITS 5 OR 6 TO ASSERT READ/WRITE |
|
|
|
; CLEAR BITS 1 OR 2 TO ASSERT READ/WRITE |
|
|
|
; |
|
|
|
DSKY_PPI_IDLE: .EQU %01100000 |
|
|
|
DSKY_PPI_IDLE: .EQU %00000110 |
|
|
|
; |
|
|
|
DSKY_CMD_CLR: .EQU %11011111 ; CLEAR (ALL OFF) |
|
|
|
DSKY_CMD_CLRX: .EQU %11010011 ; CLEAR (ALL ON) |
|
|
|
@ -176,7 +176,7 @@ M1: |
|
|
|
LD C,0 |
|
|
|
LD HL,DSPBUF |
|
|
|
CALL DSKY_PUTENCSTR |
|
|
|
; |
|
|
|
; |
|
|
|
M2: |
|
|
|
CALL CST ; CONSOLE STATUS |
|
|
|
JR NZ,M4 ; ABORT IF KEY PRESSED |
|
|
|
@ -243,12 +243,18 @@ M4: |
|
|
|
; DANCING LIGHTS |
|
|
|
CALL PRTSTRD |
|
|
|
.DB "\r\nDance, Baby, Dance (console key to end)...$" |
|
|
|
|
|
|
|
LD A,DSKY_CMD_CLR |
|
|
|
CALL DSKY_CMD |
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LD E,$01 ; STARTING VALUE |
|
|
|
M5: |
|
|
|
CALL CST ; CONSOLE STATUS |
|
|
|
JR NZ,M8 ; ABORT IF KEY PRESSED |
|
|
|
LD B,12 ; NUMBER OF BYTES |
|
|
|
LD B,16 ; NUMBER OF BYTES |
|
|
|
LD C,$00 ; STARTING LOCATION (BYTE) |
|
|
|
M6: |
|
|
|
LD A,E |
|
|
|
@ -268,14 +274,14 @@ M8: |
|
|
|
LD A,DSKY_CMD_CLR |
|
|
|
CALL DSKY_CMD |
|
|
|
; |
|
|
|
EXIT: |
|
|
|
EXIT: |
|
|
|
; GOODBYE |
|
|
|
CALL PRTSTRD |
|
|
|
.DB "\r\nThank you, please call again\r\n$" |
|
|
|
; |
|
|
|
; CLEAN UP AND RETURN TO OS |
|
|
|
LD SP,(STACKSAV) |
|
|
|
; |
|
|
|
; |
|
|
|
RET |
|
|
|
; |
|
|
|
; SETUP PPI FOR WRITING: PUT PPI PORT A IN OUTPUT MODE |
|
|
|
@ -288,7 +294,7 @@ DSKY_PPIWR: |
|
|
|
LD A,(DSKY_PPIX_VAL) |
|
|
|
CP DSKY_PPIX_WR |
|
|
|
JR Z,DSKY_PPIWR1 |
|
|
|
; |
|
|
|
; |
|
|
|
; SET PPI TO WRITE MODE |
|
|
|
LD A,DSKY_PPIX_WR |
|
|
|
OUT (PPIX),A |
|
|
|
@ -317,7 +323,7 @@ DSKY_PPIRD: |
|
|
|
LD A,(DSKY_PPIX_VAL) |
|
|
|
CP DSKY_PPIX_RD |
|
|
|
JR Z,DSKY_PPIRD1 |
|
|
|
; |
|
|
|
; |
|
|
|
; SET PPI TO READ MODE |
|
|
|
LD A,DSKY_PPIX_RD |
|
|
|
OUT (PPIX),A |
|
|
|
@ -409,10 +415,10 @@ DSKY_DOUT2: |
|
|
|
OUT (PPIA),A |
|
|
|
; |
|
|
|
; PULSE /WR |
|
|
|
RES 5,B |
|
|
|
RES 1,B |
|
|
|
OUT (C),B |
|
|
|
NOP ; MAY NOT BE NEEDED |
|
|
|
SET 5,B |
|
|
|
SET 1,B |
|
|
|
OUT (C),B |
|
|
|
; |
|
|
|
; DEASSERT /CS |
|
|
|
@ -462,14 +468,14 @@ DSKY_DIN2: |
|
|
|
LD B,A |
|
|
|
; |
|
|
|
; ASSERT /RD |
|
|
|
RES 6,B |
|
|
|
RES 2,B |
|
|
|
OUT (C),B |
|
|
|
; |
|
|
|
; GET VALUE |
|
|
|
IN A,(PPIA) |
|
|
|
; |
|
|
|
; DEASSERT /RD |
|
|
|
SET 6,B |
|
|
|
SET 2,B |
|
|
|
OUT (C),B |
|
|
|
; |
|
|
|
; DEASSERT /CS |
|
|
|
@ -536,7 +542,7 @@ DSKY_PUTSTR: |
|
|
|
ADD A,DSKY_CMD_WDSP |
|
|
|
CALL DSKY_CMD |
|
|
|
POP BC |
|
|
|
; |
|
|
|
; |
|
|
|
DSKY_PUTSTR1: |
|
|
|
LD A,(HL) |
|
|
|
XOR $FF |
|
|
|
@ -556,7 +562,7 @@ DSKY_GETSTR: |
|
|
|
ADD A,DSKY_CMD_RDSP |
|
|
|
CALL DSKY_CMD |
|
|
|
POP BC |
|
|
|
; |
|
|
|
; |
|
|
|
DSKY_GETSTR1: |
|
|
|
PUSH BC |
|
|
|
CALL DSKY_DIN |
|
|
|
@ -623,7 +629,7 @@ DSKY_READ: |
|
|
|
CALL DSKY_GETSTR |
|
|
|
LD B,$10 |
|
|
|
LD HL,DSPBUF |
|
|
|
DSKY_READ1: |
|
|
|
DSKY_READ1: |
|
|
|
LD A,(HL) |
|
|
|
INC HL |
|
|
|
CALL PC_SPACE |
|
|
|
@ -639,7 +645,7 @@ COUT: |
|
|
|
PUSH DE ; |
|
|
|
PUSH HL ; |
|
|
|
|
|
|
|
#IF BDOS |
|
|
|
#IF BDOS |
|
|
|
LD C,2 ; BDOS FUNC: CONSOLE OUTPUT |
|
|
|
LD E,A ; CHARACTER TO E |
|
|
|
CALL $0005 ; CALL BDOS |
|
|
|
@ -984,7 +990,7 @@ DSKY_PPIX_VAL: .DB 0 |
|
|
|
DSPBUF: .FILL 16,0 |
|
|
|
; |
|
|
|
PAT1: .DB $01,$02,$04,$08,$10,$20,$40,$80 |
|
|
|
.DB $11,$22,$44,$88,$FF,$FF,$FF,$FF |
|
|
|
.DB $11,$22,$44,$88,$00,$00,$00,$00 |
|
|
|
PAT1LN: .EQU $ - PAT1 |
|
|
|
PAT2: .DB $01,$03,$07,$0F,$1F,$3F,$7F,$FF |
|
|
|
.DB $11,$33,$77,$FF,$00,$00,$00,$00 |
|
|
|
|