mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
More DSKY Cleanup
This commit is contained in:
39
Source/HBIOS/PPI_Bus.txt
Normal file
39
Source/HBIOS/PPI_Bus.txt
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
PPI Signal PPIDE PPISD DSKY DSKYNG (PROTO) DSKYNG (FINAL)
|
||||
---------- ----- ----- ----- ----- -----
|
||||
PA0 <>D0 >ID0 <>D0 <>D0
|
||||
PA1 <>D1 >ID1 <>D1 <>D1
|
||||
PA2 <>D2 >ID2 <>D2 <>D2
|
||||
PA3 <>D3 >ID3 <>D3 <>D3
|
||||
PA4 <>D4 >ID4 /SHUTDOWN <>D4 <>D4
|
||||
PA5 <>D5 >ID5 /DECODE <>D5 <>D5
|
||||
PA6 <>D6 >ID6 HEXA/CODEB <>D6 <>D6
|
||||
PA7 <>D7 >ID7 DAT_COMING <>D7 <>D7
|
||||
|
||||
PB0 <>D8 +<ROW5
|
||||
PB1 <>D9 +<ROW4
|
||||
PB2 <>D10 +<ROW3
|
||||
PB3 <>D11 +<ROW2
|
||||
PB4 <>D12 +<ROW1
|
||||
PB5 <>D13 +<ROW0
|
||||
PB6 <>D14 +
|
||||
PB7 <>D15 <MISO +
|
||||
|
||||
PC0 >DA0 >MOSI >COL0 >A0 >A0
|
||||
PC1 >DA1 >CLK >COL1 >/WR
|
||||
PC2 >DA2 >COL2 >/RD
|
||||
PC3 >CS0* >COL3 >CS&* >CS&*
|
||||
PC4 >CS1* >/CS >CS&* >CS&*
|
||||
PC5 >DIOW* >/WR
|
||||
PC6 >DIOR* >/WR >/RD
|
||||
PC7 >RESET* >MODE >RESET >RESET
|
||||
|
||||
* Inverted by adapter
|
||||
+ Pullup
|
||||
& Both signals must be asserted
|
||||
|
||||
Compatibility:
|
||||
|
||||
- PPISD & DSKY
|
||||
- PPIDE & DSKYNG
|
||||
- PPISD & DSKYNG
|
||||
@@ -994,7 +994,7 @@ DSKY_ENTRY:
|
||||
;
|
||||
FRONTPANELLOOP:
|
||||
LD HL,CPUUP ; SET POINTER TO CPU UP MSG
|
||||
CALL DSKY_SHOWSEG ; DISPLAY UNENCODED
|
||||
CALL DSKY_SHOW ; DISPLAY UNENCODED
|
||||
|
||||
#IF (DSKYMODE == DSKYMODE_NG)
|
||||
CALL DSKY_HIGHLIGHTCMDKEYS
|
||||
@@ -1030,7 +1030,7 @@ FRONTPANELLOOP1:
|
||||
;
|
||||
DOBOOT:
|
||||
LD HL,MSGBOOT ; SET POINTER TO BOOT MESSAGE
|
||||
CALL DSKY_SHOWSEG ; DISPLAY UNENCODED
|
||||
CALL DSKY_SHOW ; DISPLAY UNENCODED
|
||||
JP BOOT ; DO BOOT
|
||||
;
|
||||
;__DOPORTREAD_________________________________________________________________
|
||||
@@ -1425,7 +1425,7 @@ ENCBUF1:
|
||||
POP HL ; RESTORE POINTER
|
||||
DJNZ ENCBUF1 ; LOOP THRU ALL BUF POSITIONS
|
||||
LD HL,DSKY_BUF ; POINT TO DECODED BUFFER
|
||||
CALL DSKY_SHOWSEG ; DISPLAY IT
|
||||
CALL DSKY_SHOW ; DISPLAY IT
|
||||
POP DE ; RESTORE DE
|
||||
POP BC ; RESTORE BC
|
||||
POP AF ; RESTORE AF
|
||||
|
||||
@@ -4,31 +4,7 @@
|
||||
;==================================================================================================
|
||||
;
|
||||
; THE DSKY MAY COSESIDE ON THE SAME PPI BUS AS A PPISD. IT MAY NOT
|
||||
; SHARE A PPI BUS WITH A PPIDE.
|
||||
;
|
||||
PPIA .EQU DSKYPPIBASE + 0 ; PORT A
|
||||
PPIB .EQU DSKYPPIBASE + 1 ; PORT B
|
||||
PPIC .EQU DSKYPPIBASE + 2 ; PORT C
|
||||
PPIX .EQU DSKYPPIBASE + 3 ; PPI CONTROL PORT
|
||||
;
|
||||
; ICM7218A KEYPAD PPISD
|
||||
; -------- -------- --------
|
||||
; PA0-7 IO0-7
|
||||
; PB0-5 COLS 0-5
|
||||
; PB6
|
||||
; PB7 DO (<SD)
|
||||
; PC0 ROW 0 DI (>SD)
|
||||
; PC1 ROW 1 CLK (>SD)
|
||||
; PC2-3 ROWS 2-3
|
||||
; PC4 /CS (PRI)
|
||||
; PC5 /CS (SEC)
|
||||
; PC6 /WR
|
||||
; PC7 MODE
|
||||
;
|
||||
; DSKY SCAN CODES ARE ONE BYTE: CCRRRRRR
|
||||
; BITS 7-6 IDENTFY THE COLUMN OF THE KEY PRESSED
|
||||
; BITS 5-0 ARE A BITMAP, WITH A BIT ON TO INDICATE ROW OF KEY PRESSED
|
||||
;
|
||||
; SHARE A PPI BUS WITH A PPIDE. SEE PPI_BUS.TXT FOR MORE INFORMATION.
|
||||
;
|
||||
; LED SEGMENTS (BIT VALUES)
|
||||
;
|
||||
@@ -38,6 +14,10 @@ PPIX .EQU DSKYPPIBASE + 3 ; PPI CONTROL PORT
|
||||
; 08 10
|
||||
; +--01--+ 80
|
||||
;
|
||||
; DSKY SCAN CODES ARE ONE BYTE: CCRRRRRR
|
||||
; BITS 7-6 IDENTFY THE COLUMN OF THE KEY PRESSED
|
||||
; BITS 5-0 ARE A BITMAP, WITH A BIT ON TO INDICATE ROW OF KEY PRESSED
|
||||
;
|
||||
; ____PC0________PC1________PC2________PC3____
|
||||
; PB5 | $20 [D] $60 [E] $A0 [F] $E0 [BO]
|
||||
; PB4 | $10 [A] $50 [B] $90 [C] $D0 [GO]
|
||||
@@ -46,6 +26,12 @@ PPIX .EQU DSKYPPIBASE + 3 ; PPI CONTROL PORT
|
||||
; PB1 | $02 [1] $42 [2] $82 [3] $C2 [EN]
|
||||
; PB0 | $01 [FW] $41 [0] $81 [BK] $C1 [CL]
|
||||
;
|
||||
;
|
||||
PPIA .EQU DSKYPPIBASE + 0 ; PORT A
|
||||
PPIB .EQU DSKYPPIBASE + 1 ; PORT B
|
||||
PPIC .EQU DSKYPPIBASE + 2 ; PORT C
|
||||
PPIX .EQU DSKYPPIBASE + 3 ; PPI CONTROL PORT
|
||||
;
|
||||
;__DSKY_INIT_________________________________________________________________________________________
|
||||
;
|
||||
; CONFIGURE PARALLEL PORT AND CLEAR KEYPAD BUFFER
|
||||
@@ -240,51 +226,57 @@ DSKY_KEYBUF .DB 0
|
||||
#ENDIF ; DSKY_KBD
|
||||
;
|
||||
;==================================================================================================
|
||||
; DSKY HEX DISPLAY
|
||||
; CONVERT 32 BIT BINARY TO 8 BYTE HEX SEGMENT DISPLAY
|
||||
;==================================================================================================
|
||||
;
|
||||
DSKY_HEXOUT:
|
||||
LD B,DSKY_HEXBUFLEN
|
||||
LD HL,DSKY_BUF
|
||||
LD DE,DSKY_HEXBUF
|
||||
DSKY_HEXOUT1:
|
||||
; HL: ADR OF 32 BIT BINARY
|
||||
; DE: ADR OF DEST LED SEGMENT DISPLAY BUFFER (8 BYTES)
|
||||
;
|
||||
DSKY_BIN2SEG:
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
LD B,4 ; 4 BYTES OF INPUT
|
||||
EX DE,HL
|
||||
DSKY_BIN2SEG1:
|
||||
LD A,(DE) ; FIRST NIBBLE
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
PUSH HL
|
||||
LD HL,DSKY_HEXMAP
|
||||
CALL DSKY_ADDHLA
|
||||
LD A,(HL)
|
||||
POP HL
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,(DE) ; SECOND NIBBLE
|
||||
AND 0FH
|
||||
PUSH HL
|
||||
LD HL,DSKY_HEXMAP
|
||||
CALL DSKY_ADDHLA
|
||||
LD A,(HL)
|
||||
POP HL
|
||||
LD (HL),A
|
||||
INC HL
|
||||
INC DE ; NEXT BYTE
|
||||
DJNZ DSKY_HEXOUT1
|
||||
LD HL,DSKY_BUF
|
||||
JR DSKY_SHOWHEX
|
||||
DJNZ DSKY_BIN2SEG1
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
; DSKY SHOW BUFFER
|
||||
; HL: ADDRESS OF BUFFER
|
||||
; ENTER @ SHOWHEX FOR HEX DECODING
|
||||
; ENTER @ SHOWSEG FOR SEGMENT DECODING
|
||||
;==================================================================================================
|
||||
;
|
||||
DSKY_SHOWHEX:
|
||||
LD A,$D0 ; 7218 -> (DATA COMING, HEXA DECODE)
|
||||
JR DSKY_SHOW
|
||||
;
|
||||
DSKY_SHOWSEG:
|
||||
LD A,$F0 ; 7218 -> (DATA COMING, NO DECODE)
|
||||
JR DSKY_SHOW
|
||||
;
|
||||
DSKY_SHOW:
|
||||
PUSH AF ; SAVE 7218 CONTROL BITS
|
||||
;;PUSH AF ; SAVE 7218 CONTROL BITS
|
||||
LD A,82H ; SETUP PPI
|
||||
OUT (PPIX),A
|
||||
CALL DSKY_COFF
|
||||
POP AF
|
||||
;;POP AF
|
||||
LD A,$F0 ; 7218 -> (DATA COMING, NO DECODE)
|
||||
OUT (PPIA),A
|
||||
CALL DSKY_STROBEC ; STROBE COMMAND
|
||||
LD B,DSKY_BUFLEN ; NUMBER OF DIGITS
|
||||
@@ -313,11 +305,26 @@ DSKY_COFF:
|
||||
; CALL DSKY_DELAY ; WAIT
|
||||
RET
|
||||
;
|
||||
; CODES FOR NUMERICS
|
||||
; HIGH BIT ALWAYS SET TO SUPPRESS DECIMAL POINT
|
||||
; CLEAR HIGH BIT TO SHOW DECIMAL POINT
|
||||
;==================================================================================================
|
||||
; UTILTITY FUNCTIONS
|
||||
;==================================================================================================
|
||||
;
|
||||
DSKY_NUMS:
|
||||
DSKY_ADDHLA:
|
||||
ADD A,L
|
||||
LD L,A
|
||||
RET NC
|
||||
INC H
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
; STORAGE
|
||||
;==================================================================================================
|
||||
;
|
||||
; CODES FOR NUMERICS
|
||||
; HIGH BIT ALWAYS CLEAR TO SUPPRESS DECIMAL POINT
|
||||
; SET HIGH BIT TO SHOW DECIMAL POINT
|
||||
;
|
||||
DSKY_HEXMAP:
|
||||
.DB $7B ; 0
|
||||
.DB $30 ; 1
|
||||
.DB $6D ; 2
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
;==================================================================================================
|
||||
;
|
||||
; A DSKYNG CAN SHARE A PPI BUS WITH EITHER A PPIDE OR PPISD.
|
||||
; SEE PPI_BUS.TXT FOR MORE INFORMATION.
|
||||
;
|
||||
; LED SEGMENTS (BIT VALUES)
|
||||
;
|
||||
@@ -198,21 +199,25 @@ DSKY_KEYMAP:
|
||||
#ENDIF ; DSKY_KBD
|
||||
;
|
||||
;==================================================================================================
|
||||
; DSKY HEX DISPLAY
|
||||
; CONVERT 32 BIT BINARY TO 8 BYTE HEX SEGMENT DISPLAY
|
||||
;==================================================================================================
|
||||
;
|
||||
DSKY_HEXOUT:
|
||||
LD B,DSKY_HEXBUFLEN
|
||||
LD HL,DSKY_BUF
|
||||
LD DE,DSKY_HEXBUF
|
||||
DSKY_HEXOUT1:
|
||||
; HL: ADR OF 32 BIT BINARY
|
||||
; DE: ADR OF DEST LED SEGMENT DISPLAY BUFFER (8 BYTES)
|
||||
;
|
||||
DSKY_BIN2SEG:
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
LD B,4 ; 4 BYTES OF INPUT
|
||||
EX DE,HL
|
||||
DSKY_BIN2SEG1:
|
||||
LD A,(DE) ; FIRST NIBBLE
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
PUSH HL
|
||||
LD HL,HEXMAP
|
||||
LD HL,DSKY_HEXMAP
|
||||
CALL DSKY_ADDHLA
|
||||
LD A,(HL)
|
||||
POP HL
|
||||
@@ -221,49 +226,40 @@ DSKY_HEXOUT1:
|
||||
LD A,(DE) ; SECOND NIBBLE
|
||||
AND 0FH
|
||||
PUSH HL
|
||||
LD HL,HEXMAP
|
||||
LD HL,DSKY_HEXMAP
|
||||
CALL DSKY_ADDHLA
|
||||
LD A,(HL)
|
||||
POP HL
|
||||
LD (HL),A
|
||||
INC HL
|
||||
INC DE ; NEXT BYTE
|
||||
DJNZ DSKY_HEXOUT1
|
||||
LD HL,DSKY_BUF
|
||||
JR DSKY_SHOW
|
||||
DJNZ DSKY_BIN2SEG1
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
; DSKY SHOW BUFFER
|
||||
; HL: ADDRESS OF BUFFER
|
||||
; ENTER @ SHOWHEX FOR HEX DECODING
|
||||
; ENTER @ SHOWSEG FOR SEGMENT DECODING
|
||||
;==================================================================================================
|
||||
;
|
||||
DSKY_SHOWHEX:
|
||||
JR DSKY_SHOW
|
||||
;
|
||||
DSKY_SHOWSEG:
|
||||
JR DSKY_SHOW
|
||||
;
|
||||
DSKY_SHOW:
|
||||
; PUSH HL
|
||||
; CALL DSKY_RESET
|
||||
; POP HL
|
||||
LD C,0 ; STARTING DISPLAY POSITION
|
||||
LD B,DSKY_BUFLEN ; NUMBER OF CHARS
|
||||
JP DSKY_PUTSTR
|
||||
;
|
||||
;==================================================================================================
|
||||
; DSKYNG OUTPUT ROUTINES
|
||||
;==================================================================================================
|
||||
;
|
||||
;
|
||||
;
|
||||
; COMMAND IN A
|
||||
; SEND DSKY COMMAND BYTE IN REGISTER A
|
||||
; TRASHES BC
|
||||
;
|
||||
DSKY_CMD:
|
||||
LD B,$01
|
||||
JR DSKY_DOUT2
|
||||
;
|
||||
; DATA VALUE IN A
|
||||
; SEND DSKY DATA BYTE IN REGISTER A
|
||||
; TRASHES BC
|
||||
;
|
||||
DSKY_DOUT:
|
||||
@@ -317,21 +313,25 @@ DSKY_DOUT2:
|
||||
CALL DSKY_PPIIDLE
|
||||
RET
|
||||
;
|
||||
; STATUS VALUE IN A
|
||||
;==================================================================================================
|
||||
; DSKYNG OUTPUT ROUTINES
|
||||
;==================================================================================================
|
||||
;
|
||||
; RETURN DSKY STATUS VALUE IN A
|
||||
; TRASHES BC
|
||||
;
|
||||
DSKY_ST:
|
||||
LD B,$01
|
||||
JR DSKY_DIN2
|
||||
;
|
||||
; DATA VALUE RETURNED IN A
|
||||
; RETURN NEXT DATA VALUE IN A
|
||||
; TRASHES BC
|
||||
;
|
||||
DSKY_DIN:
|
||||
LD B,$00
|
||||
;
|
||||
DSKY_DIN2:
|
||||
; SET PPI LINE CONFIG TO WRITE MODE
|
||||
; SET PPI LINE CONFIG TO READ MODE
|
||||
CALL DSKY_PPIRD
|
||||
;
|
||||
; SETUP
|
||||
@@ -374,7 +374,11 @@ DSKY_DIN2:
|
||||
CALL DSKY_PPIIDLE
|
||||
RET
|
||||
;
|
||||
; BLANK THE DISPLAY (WITHOUT USING CLEAR)
|
||||
;==================================================================================================
|
||||
; DSKYNG UTILITY ROUTINES
|
||||
;==================================================================================================
|
||||
;
|
||||
; BLANK DSKYNG DISPLAY (WITHOUT USING CLEAR)
|
||||
;
|
||||
DSKY_BLANK:
|
||||
LD A,DSKY_CMD_WDSP
|
||||
@@ -456,39 +460,13 @@ DSKY_GETSTR1:
|
||||
DJNZ DSKY_GETSTR1
|
||||
RET
|
||||
;
|
||||
; HL IS ADR OF ENCODED STRING OF BYTES
|
||||
; B IS LEN OF STRING (BYTES)
|
||||
; C IS POSITION IN DISPLAY RAM TO WRITE
|
||||
;
|
||||
DSKY_PUTENCSTR:
|
||||
PUSH BC
|
||||
LD A,C
|
||||
ADD A,DSKY_CMD_WDSP
|
||||
CALL DSKY_CMD
|
||||
POP BC
|
||||
EX DE,HL
|
||||
DSKY_PUTENCSTR1:
|
||||
LD A,(DE)
|
||||
INC DE
|
||||
LD HL,HEXMAP
|
||||
CALL DSKY_ADDHLA
|
||||
LD A,(HL)
|
||||
XOR $FF
|
||||
PUSH BC
|
||||
CALL DSKY_DOUT
|
||||
POP BC
|
||||
DJNZ DSKY_PUTENCSTR1
|
||||
RET
|
||||
|
||||
;
|
||||
; This function is intended to update the LEDs. It expects 8 bytes following the call, and
|
||||
; updates the entire matrix.
|
||||
; This function is intended to update the LEDs. It expects 8 bytes
|
||||
; following the call, and updates the entire matrix.
|
||||
;
|
||||
; EXAMPLE:
|
||||
; CALL DSKY_PUTLED
|
||||
; .DB $00,$00,$00,$00,$00,$00,$00,$00
|
||||
;
|
||||
;
|
||||
DSKY_PUTLED:
|
||||
EX (SP),HL
|
||||
PUSH AF
|
||||
@@ -508,41 +486,38 @@ DSKY_PUTLED_1:
|
||||
POP AF
|
||||
EX (SP),HL
|
||||
RET
|
||||
|
||||
;
|
||||
; This function is intended to beep the speaker on the DSKY
|
||||
;
|
||||
;
|
||||
DSKY_BEEP:
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
|
||||
LD C,$0F
|
||||
CALL DSKY_GETBYTE
|
||||
or $20
|
||||
OR $20
|
||||
LD C,$0F
|
||||
CALL DSKY_PUTBYTE
|
||||
|
||||
;;; timer . . .
|
||||
PUSH HL
|
||||
ld hl,$8FFF
|
||||
LD hl,$8FFF
|
||||
DSKY_BEEP1:
|
||||
dec hl
|
||||
ld a,H
|
||||
cp 0
|
||||
jp nz,DSKY_BEEP1
|
||||
pop hl
|
||||
DEC HL
|
||||
LD A,H
|
||||
CP 0
|
||||
JP NZ,DSKY_BEEP1
|
||||
POP HL
|
||||
|
||||
LD C,$0F
|
||||
CALL DSKY_GETBYTE
|
||||
and $DF
|
||||
AND $DF
|
||||
LD C,$0F
|
||||
CALL DSKY_PUTBYTE
|
||||
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
|
||||
;
|
||||
; This function is intended to turn on DSKY L1
|
||||
;
|
||||
@@ -552,14 +527,13 @@ DSKY_L1ON:
|
||||
|
||||
LD C,$0D
|
||||
CALL DSKY_GETBYTE
|
||||
or $20
|
||||
OR $20
|
||||
LD C,$0D
|
||||
CALL DSKY_PUTBYTE
|
||||
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
|
||||
;
|
||||
; This function is intended to turn on DSKY L2
|
||||
;
|
||||
@@ -569,14 +543,13 @@ DSKY_L2ON:
|
||||
|
||||
LD C,$0E
|
||||
CALL DSKY_GETBYTE
|
||||
or $20
|
||||
OR $20
|
||||
LD C,$0E
|
||||
CALL DSKY_PUTBYTE
|
||||
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
|
||||
;
|
||||
; This function is intended to turn off DSKY L1
|
||||
;
|
||||
@@ -586,14 +559,13 @@ DSKY_L1OFF:
|
||||
|
||||
LD C,$0D
|
||||
CALL DSKY_GETBYTE
|
||||
and $DF
|
||||
AND $DF
|
||||
LD C,$0D
|
||||
CALL DSKY_PUTBYTE
|
||||
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
|
||||
;
|
||||
; This function is intended to turn off DSKY L2
|
||||
;
|
||||
@@ -603,16 +575,17 @@ DSKY_L2OFF:
|
||||
|
||||
LD C,$0E
|
||||
CALL DSKY_GETBYTE
|
||||
and $DF
|
||||
AND $DF
|
||||
LD C,$0E
|
||||
CALL DSKY_PUTBYTE
|
||||
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
|
||||
|
||||
|
||||
;
|
||||
;==================================================================================================
|
||||
; DSKYNG LINE CONTROL ROUTINES
|
||||
;==================================================================================================
|
||||
;
|
||||
; SETUP PPI FOR WRITING: PUT PPI PORT A IN OUTPUT MODE
|
||||
; AVOID REWRTING PPIX IF ALREADY IN OUTPUT MODE
|
||||
@@ -639,15 +612,6 @@ DSKY_PPIWR1:
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
DSKY_ADDHLA:
|
||||
ADD A,L
|
||||
LD L,A
|
||||
RET NC
|
||||
INC H
|
||||
RET
|
||||
;
|
||||
; SETUP PPI FOR READING: PUT PPI PORT A IN INPUT MODE
|
||||
; AVOID REWRTING PPIX IF ALREADY IN INPUT MODE
|
||||
;
|
||||
@@ -664,10 +628,6 @@ DSKY_PPIRD:
|
||||
OUT (PPIX),A
|
||||
LD (DSKY_PPIX_VAL),A
|
||||
;
|
||||
; ; DIAGNOSTIC
|
||||
; LD A,'R'
|
||||
; CALL COUT
|
||||
;
|
||||
DSKY_PPIRD1:
|
||||
POP AF
|
||||
RET
|
||||
@@ -677,12 +637,26 @@ DSKY_PPIRD1:
|
||||
DSKY_PPIIDLE:
|
||||
JR DSKY_PPIRD ; SAME AS READ MODE
|
||||
;
|
||||
;==================================================================================================
|
||||
; UTILTITY FUNCTIONS
|
||||
;==================================================================================================
|
||||
;
|
||||
DSKY_ADDHLA:
|
||||
ADD A,L
|
||||
LD L,A
|
||||
RET NC
|
||||
INC H
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
; STORAGE
|
||||
;==================================================================================================
|
||||
;
|
||||
; CODES FOR NUMERICS
|
||||
; HIGH BIT ALWAYS CLEAR TO SUPPRESS DECIMAL POINT
|
||||
; SET HIGH BIT TO SHOW DECIMAL POINT
|
||||
;
|
||||
HEXMAP:
|
||||
DSKY_NUMS:
|
||||
DSKY_HEXMAP:
|
||||
.DB $3F ; 0
|
||||
.DB $06 ; 1
|
||||
.DB $5B ; 2
|
||||
|
||||
@@ -1431,20 +1431,18 @@ SAVE_REC_M:
|
||||
CALL DSKY_INIT
|
||||
|
||||
LD HL,MSG_HBVER + 5
|
||||
LD A,(DSKY_NUMS + RMJ)
|
||||
;AND $7F
|
||||
LD A,(DSKY_HEXMAP + RMJ)
|
||||
OR $80
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,(DSKY_NUMS + RMN)
|
||||
;AND $7F
|
||||
LD A,(DSKY_HEXMAP + RMN)
|
||||
OR $80
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,(DSKY_NUMS + RUP)
|
||||
LD A,(DSKY_HEXMAP + RUP)
|
||||
LD (HL),A
|
||||
LD HL,MSG_HBVER
|
||||
CALL DSKY_SHOWSEG
|
||||
CALL DSKY_SHOW
|
||||
#ENDIF
|
||||
;
|
||||
#IF (WBWDEBUG == USEMIO) ; BUFFER OUTPUT UNTIL
|
||||
@@ -2862,7 +2860,11 @@ HB_DSKFUNC .DB 0 ; CURRENT DISK FUNCTION
|
||||
;
|
||||
; THE CURRENT DISK UNIT NUMBER WILL BE DISPLAYED IN THE FIRST
|
||||
; 2 SEG DISPLAYS. THE LOWER 24 BITS OF THE SECTOR WILL BE
|
||||
; DISPLAYED IN THE LAST 6 SEG DISPLAYS
|
||||
; DISPLAYED IN THE LAST 6 SEG DISPLAYS.
|
||||
;
|
||||
; A DOT IS DISPLAYED TO SEPARATE THE UNIT NUMBER FROM THE ADDRESS
|
||||
; DISPLAY. ALSO, A TRAILING DOT IS DISPLAYED IF THE I/O FUNCTION
|
||||
; IS A WRITE.
|
||||
;
|
||||
; HL: ADDRESS OF 32-BIT SECTOR NUMBER (LITTLE-ENDIAN)
|
||||
; ALL REGISTERS PERSERVED
|
||||
@@ -2882,7 +2884,22 @@ HB_DSKACT1:
|
||||
DJNZ HB_DSKACT1 ; LOOP
|
||||
LD A,(HB_DSKUNIT) ; GET DISK UNIT NUM
|
||||
LD (DE),A ; PUT AT HEAD OF BUF
|
||||
CALL DSKY_HEXOUT ; DISPLAY ON DSKY
|
||||
HB_DSKACT2:
|
||||
LD HL,DSKY_HEXBUF ; BINARY BUF
|
||||
LD DE,DSKY_BUF ; DISPLAY BUF
|
||||
CALL DSKY_BIN2SEG ; CONVERT TO SEG DISPLAY BUF
|
||||
LD A,(DSKY_BUF+1) ; SECOND SEGMENT
|
||||
OR %10000000 ; TURN ON DOT
|
||||
LD (DSKY_BUF+1),A ; SAVE IT
|
||||
LD A,(HB_DSKFUNC) ; GET CURRENT I/O FUNCTION
|
||||
CP BF_DIOWRITE ; IS IT A WRITE?
|
||||
JR NZ,HB_DSKACT3 ; IF NOT, NO DOT, SKIP AHEAD
|
||||
LD A,(DSKY_BUF+7) ; LAST SEGMENT
|
||||
OR %10000000 ; TURN ON DOT
|
||||
LD (DSKY_BUF+7),A ; SAVE IT
|
||||
HB_DSKACT3:
|
||||
EX DE,HL ; SEG DISPLAY BUF TO HL
|
||||
CALL DSKY_SHOW ; DISPLAY ON DSKY
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
@@ -2892,6 +2909,10 @@ HB_DSKACT1:
|
||||
; THIS IS THE CHS VARIANT OF THE ABOVE. THIS IS USED BY CHS ORIENTED
|
||||
; DISK DRIVERS (BASICALLY JUST FLOPPY).
|
||||
;
|
||||
; THE CURRENT DISK UNIT NUMBER WILL BE DISPLAYED IN THE FIRST
|
||||
; 2 SEG DISPLAYS. THE TRACK, HEAD, AND SECTOR WILL BE DISPLAYED IN
|
||||
; THE LAST 6 SEG DISPLAYS
|
||||
;
|
||||
; HL: ADDRESS OF CYL,HD,SEC IN THE FORMAT CCSH
|
||||
; ALL REGISTERS PRESERVED
|
||||
;
|
||||
@@ -2916,14 +2937,7 @@ HB_DSKACTCHS:
|
||||
DEC HL ; BACK TO SECTOR
|
||||
LD A,(HL) ; GET SECTOR
|
||||
LD (DE),A ; ADD TO BUF
|
||||
CALL DSKY_HEXOUT ; DISPLAY ON DSKY
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
HB_HEXBUF .FILL 4,0 ; 4 BYTE HEX DISPLAY BUFFER
|
||||
JR HB_DSKACT2
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
|
||||
@@ -208,7 +208,7 @@ prompt:
|
||||
#if (DSKYENABLE)
|
||||
call DSKY_RESET ; clear DSKY
|
||||
ld hl,msg_sel ; boot select msg
|
||||
call DSKY_SHOWSEG ; show on DSKY
|
||||
call DSKY_SHOW ; show on DSKY
|
||||
|
||||
#IF (DSKYMODE == DSKYMODE_NG)
|
||||
call DSKY_PUTLED
|
||||
@@ -606,7 +606,7 @@ reboot:
|
||||
;
|
||||
#if (DSKYENABLE)
|
||||
ld hl,msg_boot ; point to boot message
|
||||
call DSKY_SHOWSEG ; display message
|
||||
call DSKY_SHOW ; display message
|
||||
#endif
|
||||
;
|
||||
; cold boot system
|
||||
@@ -638,7 +638,7 @@ romload:
|
||||
;
|
||||
#if (DSKYENABLE)
|
||||
ld hl,msg_load ; point to load message
|
||||
call DSKY_SHOWSEG ; display message
|
||||
call DSKY_SHOW ; display message
|
||||
#endif
|
||||
;
|
||||
#if (BIOS == BIOS_WBW)
|
||||
@@ -722,7 +722,7 @@ romload1:
|
||||
;
|
||||
#if (DSKYENABLE)
|
||||
ld hl,msg_go ; point to go message
|
||||
call DSKY_SHOWSEG ; display message
|
||||
call DSKY_SHOW ; display message
|
||||
#endif
|
||||
;
|
||||
ld l,(ix+ra_ent) ; HL := app entry address
|
||||
@@ -747,7 +747,7 @@ diskboot:
|
||||
;
|
||||
#if (DSKYENABLE)
|
||||
ld hl,msg_load ; point to load message
|
||||
call DSKY_SHOWSEG ; display message
|
||||
call DSKY_SHOW ; display message
|
||||
#endif
|
||||
;
|
||||
#if (BIOS == BIOS_WBW)
|
||||
@@ -1031,7 +1031,7 @@ diskboot10:
|
||||
;
|
||||
#if (DSKYENABLE)
|
||||
ld hl,msg_go ; point to go message
|
||||
call DSKY_SHOWSEG ; display message
|
||||
call DSKY_SHOW ; display message
|
||||
#endif
|
||||
;
|
||||
; Jump to entry vector
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
#DEFINE RMN 1
|
||||
#DEFINE RUP 1
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.1.1-pre.89"
|
||||
#DEFINE BIOSVER "3.1.1-pre.90"
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 1
|
||||
rup equ 1
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.1.1-pre.89"
|
||||
db "3.1.1-pre.90"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user