mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Merge pull request #209 from danwerner21/dw-071121-dskyng-work
Dw 071121 dskyng work
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
FALSE: .EQU 0
|
||||
TRUE: .EQU !FALSE
|
||||
;
|
||||
DSKY_OSC: .EQU 2000000 ; OSCILLATOR FREQ IN HZ
|
||||
DSKY_OSC: .EQU 1000000 ; 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
|
||||
|
||||
@@ -13,25 +13,25 @@
|
||||
; 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 CTRL
|
||||
;
|
||||
; 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 10
|
||||
;
|
||||
PPIA .EQU DSKYPPIBASE + 0 ; PORT A
|
||||
PPIB .EQU DSKYPPIBASE + 1 ; PORT B
|
||||
@@ -44,12 +44,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)
|
||||
@@ -87,8 +87,8 @@ DSKY_REINIT:
|
||||
; SET CLOCK SCALER TO 20
|
||||
LD A,DSKY_CMD_CLK | DSKY_PRESCL
|
||||
CALL DSKY_CMD
|
||||
LD A,%00001000 ; dan
|
||||
CALL DSKY_CMD
|
||||
; LD A,%00001000 ; dan
|
||||
; CALL DSKY_CMD
|
||||
; FALL THRU
|
||||
;
|
||||
DSKY_RESET:
|
||||
@@ -123,6 +123,10 @@ KY_DE .EQU $14 ; DEPOSIT
|
||||
KY_EX .EQU $15 ; EXAMINE
|
||||
KY_GO .EQU $16 ; GO
|
||||
KY_BO .EQU $17 ; BOOT
|
||||
KY_F4 .EQU $18 ; F4
|
||||
KY_F3 .EQU $19 ; F3
|
||||
KY_F2 .EQU $20 ; F2
|
||||
KY_F1 .EQU $21 ; F1
|
||||
;
|
||||
;__DSKY_STAT_________________________________________________________________________________________
|
||||
;
|
||||
@@ -145,7 +149,8 @@ DSKY_GETKEY:
|
||||
LD A,DSKY_CMD_FIFO
|
||||
CALL DSKY_CMD
|
||||
CALL DSKY_DIN
|
||||
LD B,24 ; SIZE OF DECODE TABLE
|
||||
AND $3F ; STRIP OFF SHIFT AND CONTROL KEYS (FOR NOW)
|
||||
LD B,28 ; SIZE OF DECODE TABLE
|
||||
LD C,0 ; INDEX
|
||||
LD HL,DSKY_KEYMAP ; POINT TO BEGINNING OF TABLE
|
||||
DSKY_GETKEY1:
|
||||
@@ -167,14 +172,19 @@ DSKY_KEYMAP:
|
||||
; POS $00 $01 $02 $03 $04 $05 $06 $07
|
||||
; KEY [0] [1] [2] [3] [4] [5] [6] [7]
|
||||
.DB $0D, $04, $0C, $14, $03, $0B, $13, $02
|
||||
;
|
||||
;
|
||||
; POS $08 $09 $0A $0B $0C $0D $0E $0F
|
||||
; KEY [8] [9] [A] [B] [C] [D] [E] [F]
|
||||
.DB $0A, $12, $01, $09, $11, $00, $08, $10
|
||||
;
|
||||
;
|
||||
; POS $10 $11 $12 $13 $14 $15 $16 $17
|
||||
; KEY [FW] [BK] [CL] [EN] [DE] [EX] [GO] [BO]
|
||||
.DB $05, $15, $1D, $1C, $1B, $1A, $19, $18
|
||||
|
||||
; POS $18 $19 $20 $21
|
||||
; KEY [F4] [F3] [F2] [F1]
|
||||
.DB $23, $22, $21, $20
|
||||
|
||||
;
|
||||
#ENDIF ; DSKY_KBD
|
||||
;
|
||||
@@ -279,10 +289,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
|
||||
@@ -332,14 +342,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
|
||||
@@ -406,7 +416,7 @@ DSKY_PUTSTR:
|
||||
ADD A,DSKY_CMD_WDSP
|
||||
CALL DSKY_CMD
|
||||
POP BC
|
||||
;
|
||||
;
|
||||
DSKY_PUTSTR1:
|
||||
LD A,(HL)
|
||||
XOR $FF
|
||||
@@ -426,7 +436,7 @@ DSKY_GETSTR:
|
||||
ADD A,DSKY_CMD_RDSP
|
||||
CALL DSKY_CMD
|
||||
POP BC
|
||||
;
|
||||
;
|
||||
DSKY_GETSTR1:
|
||||
PUSH BC
|
||||
CALL DSKY_DIN
|
||||
@@ -471,7 +481,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
|
||||
@@ -505,7 +515,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
|
||||
|
||||
Reference in New Issue
Block a user