Browse Source

More DSKY Cleanup

pull/212/head
Wayne Warthen 5 years ago
parent
commit
29878ceefb
  1. 39
      Source/HBIOS/PPI_Bus.txt
  2. 6
      Source/HBIOS/dbgmon.asm
  3. 105
      Source/HBIOS/dsky.asm
  4. 162
      Source/HBIOS/dskyng.asm
  5. 46
      Source/HBIOS/hbios.asm
  6. 12
      Source/HBIOS/romldr.asm
  7. 2
      Source/ver.inc
  8. 2
      Source/ver.lib

39
Source/HBIOS/PPI_Bus.txt

@ -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

6
Source/HBIOS/dbgmon.asm

@ -994,7 +994,7 @@ DSKY_ENTRY:
; ;
FRONTPANELLOOP: FRONTPANELLOOP:
LD HL,CPUUP ; SET POINTER TO CPU UP MSG LD HL,CPUUP ; SET POINTER TO CPU UP MSG
CALL DSKY_SHOWSEG ; DISPLAY UNENCODED
CALL DSKY_SHOW ; DISPLAY UNENCODED
#IF (DSKYMODE == DSKYMODE_NG) #IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTCMDKEYS CALL DSKY_HIGHLIGHTCMDKEYS
@ -1030,7 +1030,7 @@ FRONTPANELLOOP1:
; ;
DOBOOT: DOBOOT:
LD HL,MSGBOOT ; SET POINTER TO BOOT MESSAGE LD HL,MSGBOOT ; SET POINTER TO BOOT MESSAGE
CALL DSKY_SHOWSEG ; DISPLAY UNENCODED
CALL DSKY_SHOW ; DISPLAY UNENCODED
JP BOOT ; DO BOOT JP BOOT ; DO BOOT
; ;
;__DOPORTREAD_________________________________________________________________ ;__DOPORTREAD_________________________________________________________________
@ -1425,7 +1425,7 @@ ENCBUF1:
POP HL ; RESTORE POINTER POP HL ; RESTORE POINTER
DJNZ ENCBUF1 ; LOOP THRU ALL BUF POSITIONS DJNZ ENCBUF1 ; LOOP THRU ALL BUF POSITIONS
LD HL,DSKY_BUF ; POINT TO DECODED BUFFER LD HL,DSKY_BUF ; POINT TO DECODED BUFFER
CALL DSKY_SHOWSEG ; DISPLAY IT
CALL DSKY_SHOW ; DISPLAY IT
POP DE ; RESTORE DE POP DE ; RESTORE DE
POP BC ; RESTORE BC POP BC ; RESTORE BC
POP AF ; RESTORE AF POP AF ; RESTORE AF

105
Source/HBIOS/dsky.asm

@ -4,31 +4,7 @@
;================================================================================================== ;==================================================================================================
; ;
; THE DSKY MAY COSESIDE ON THE SAME PPI BUS AS A PPISD. IT MAY NOT ; 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) ; LED SEGMENTS (BIT VALUES)
; ;
@ -38,6 +14,10 @@ PPIX .EQU DSKYPPIBASE + 3 ; PPI CONTROL PORT
; 08 10 ; 08 10
; +--01--+ 80 ; +--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____ ; ____PC0________PC1________PC2________PC3____
; PB5 | $20 [D] $60 [E] $A0 [F] $E0 [BO] ; PB5 | $20 [D] $60 [E] $A0 [F] $E0 [BO]
; PB4 | $10 [A] $50 [B] $90 [C] $D0 [GO] ; 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] ; PB1 | $02 [1] $42 [2] $82 [3] $C2 [EN]
; PB0 | $01 [FW] $41 [0] $81 [BK] $C1 [CL] ; 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_________________________________________________________________________________________ ;__DSKY_INIT_________________________________________________________________________________________
; ;
; CONFIGURE PARALLEL PORT AND CLEAR KEYPAD BUFFER ; CONFIGURE PARALLEL PORT AND CLEAR KEYPAD BUFFER
@ -240,51 +226,57 @@ DSKY_KEYBUF .DB 0
#ENDIF ; DSKY_KBD #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 LD A,(DE) ; FIRST NIBBLE
SRL A SRL A
SRL A SRL A
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 LD (HL),A
INC HL INC HL
LD A,(DE) ; SECOND NIBBLE LD A,(DE) ; SECOND NIBBLE
AND 0FH AND 0FH
PUSH HL
LD HL,DSKY_HEXMAP
CALL DSKY_ADDHLA
LD A,(HL)
POP HL
LD (HL),A LD (HL),A
INC HL INC HL
INC DE ; NEXT BYTE 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 ; DSKY SHOW BUFFER
; HL: ADDRESS OF 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: DSKY_SHOW:
PUSH AF ; SAVE 7218 CONTROL BITS
;;PUSH AF ; SAVE 7218 CONTROL BITS
LD A,82H ; SETUP PPI LD A,82H ; SETUP PPI
OUT (PPIX),A OUT (PPIX),A
CALL DSKY_COFF CALL DSKY_COFF
POP AF
;;POP AF
LD A,$F0 ; 7218 -> (DATA COMING, NO DECODE)
OUT (PPIA),A OUT (PPIA),A
CALL DSKY_STROBEC ; STROBE COMMAND CALL DSKY_STROBEC ; STROBE COMMAND
LD B,DSKY_BUFLEN ; NUMBER OF DIGITS LD B,DSKY_BUFLEN ; NUMBER OF DIGITS
@ -313,11 +305,26 @@ DSKY_COFF:
; CALL DSKY_DELAY ; WAIT ; CALL DSKY_DELAY ; WAIT
RET RET
; ;
;==================================================================================================
; UTILTITY FUNCTIONS
;==================================================================================================
;
DSKY_ADDHLA:
ADD A,L
LD L,A
RET NC
INC H
RET
;
;==================================================================================================
; STORAGE
;==================================================================================================
;
; CODES FOR NUMERICS ; CODES FOR NUMERICS
; HIGH BIT ALWAYS SET TO SUPPRESS DECIMAL POINT
; CLEAR HIGH BIT TO SHOW DECIMAL POINT
; HIGH BIT ALWAYS CLEAR TO SUPPRESS DECIMAL POINT
; SET HIGH BIT TO SHOW DECIMAL POINT
; ;
DSKY_NUMS:
DSKY_HEXMAP:
.DB $7B ; 0 .DB $7B ; 0
.DB $30 ; 1 .DB $30 ; 1
.DB $6D ; 2 .DB $6D ; 2

162
Source/HBIOS/dskyng.asm

@ -4,6 +4,7 @@
;================================================================================================== ;==================================================================================================
; ;
; A DSKYNG CAN SHARE A PPI BUS WITH EITHER A PPIDE OR PPISD. ; A DSKYNG CAN SHARE A PPI BUS WITH EITHER A PPIDE OR PPISD.
; SEE PPI_BUS.TXT FOR MORE INFORMATION.
; ;
; LED SEGMENTS (BIT VALUES) ; LED SEGMENTS (BIT VALUES)
; ;
@ -198,21 +199,25 @@ DSKY_KEYMAP:
#ENDIF ; DSKY_KBD #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 LD A,(DE) ; FIRST NIBBLE
SRL A SRL A
SRL A SRL A
SRL A SRL A
SRL A SRL A
PUSH HL PUSH HL
LD HL,HEXMAP
LD HL,DSKY_HEXMAP
CALL DSKY_ADDHLA CALL DSKY_ADDHLA
LD A,(HL) LD A,(HL)
POP HL POP HL
@ -221,49 +226,40 @@ DSKY_HEXOUT1:
LD A,(DE) ; SECOND NIBBLE LD A,(DE) ; SECOND NIBBLE
AND 0FH AND 0FH
PUSH HL PUSH HL
LD HL,HEXMAP
LD HL,DSKY_HEXMAP
CALL DSKY_ADDHLA CALL DSKY_ADDHLA
LD A,(HL) LD A,(HL)
POP HL POP HL
LD (HL),A LD (HL),A
INC HL INC HL
INC DE ; NEXT BYTE 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 ; DSKY SHOW BUFFER
; HL: ADDRESS OF 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: DSKY_SHOW:
; PUSH HL
; CALL DSKY_RESET
; POP HL
LD C,0 ; STARTING DISPLAY POSITION LD C,0 ; STARTING DISPLAY POSITION
LD B,DSKY_BUFLEN ; NUMBER OF CHARS LD B,DSKY_BUFLEN ; NUMBER OF CHARS
JP DSKY_PUTSTR JP DSKY_PUTSTR
; ;
;==================================================================================================
; DSKYNG OUTPUT ROUTINES
;==================================================================================================
; ;
;
;
; COMMAND IN A
; SEND DSKY COMMAND BYTE IN REGISTER A
; TRASHES BC ; TRASHES BC
; ;
DSKY_CMD: DSKY_CMD:
LD B,$01 LD B,$01
JR DSKY_DOUT2 JR DSKY_DOUT2
; ;
; DATA VALUE IN A
; SEND DSKY DATA BYTE IN REGISTER A
; TRASHES BC ; TRASHES BC
; ;
DSKY_DOUT: DSKY_DOUT:
@ -317,21 +313,25 @@ DSKY_DOUT2:
CALL DSKY_PPIIDLE CALL DSKY_PPIIDLE
RET RET
; ;
; STATUS VALUE IN A
;==================================================================================================
; DSKYNG OUTPUT ROUTINES
;==================================================================================================
;
; RETURN DSKY STATUS VALUE IN A
; TRASHES BC ; TRASHES BC
; ;
DSKY_ST: DSKY_ST:
LD B,$01 LD B,$01
JR DSKY_DIN2 JR DSKY_DIN2
; ;
; DATA VALUE RETURNED IN A
; RETURN NEXT DATA VALUE IN A
; TRASHES BC ; TRASHES BC
; ;
DSKY_DIN: DSKY_DIN:
LD B,$00 LD B,$00
; ;
DSKY_DIN2: DSKY_DIN2:
; SET PPI LINE CONFIG TO WRITE MODE
; SET PPI LINE CONFIG TO READ MODE
CALL DSKY_PPIRD CALL DSKY_PPIRD
; ;
; SETUP ; SETUP
@ -374,7 +374,11 @@ DSKY_DIN2:
CALL DSKY_PPIIDLE CALL DSKY_PPIIDLE
RET RET
; ;
; BLANK THE DISPLAY (WITHOUT USING CLEAR)
;==================================================================================================
; DSKYNG UTILITY ROUTINES
;==================================================================================================
;
; BLANK DSKYNG DISPLAY (WITHOUT USING CLEAR)
; ;
DSKY_BLANK: DSKY_BLANK:
LD A,DSKY_CMD_WDSP LD A,DSKY_CMD_WDSP
@ -456,39 +460,13 @@ DSKY_GETSTR1:
DJNZ DSKY_GETSTR1 DJNZ DSKY_GETSTR1
RET 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: ; EXAMPLE:
; CALL DSKY_PUTLED ; CALL DSKY_PUTLED
; .DB $00,$00,$00,$00,$00,$00,$00,$00 ; .DB $00,$00,$00,$00,$00,$00,$00,$00
; ;
;
DSKY_PUTLED: DSKY_PUTLED:
EX (SP),HL EX (SP),HL
PUSH AF PUSH AF
@ -508,41 +486,38 @@ DSKY_PUTLED_1:
POP AF POP AF
EX (SP),HL EX (SP),HL
RET RET
; ;
; This function is intended to beep the speaker on the DSKY ; This function is intended to beep the speaker on the DSKY
; ;
;
DSKY_BEEP: DSKY_BEEP:
PUSH AF PUSH AF
PUSH BC PUSH BC
LD C,$0F LD C,$0F
CALL DSKY_GETBYTE CALL DSKY_GETBYTE
or $20
OR $20
LD C,$0F LD C,$0F
CALL DSKY_PUTBYTE CALL DSKY_PUTBYTE
;;; timer . . . ;;; timer . . .
PUSH HL PUSH HL
ld hl,$8FFF
LD hl,$8FFF
DSKY_BEEP1: 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 LD C,$0F
CALL DSKY_GETBYTE CALL DSKY_GETBYTE
and $DF
AND $DF
LD C,$0F LD C,$0F
CALL DSKY_PUTBYTE CALL DSKY_PUTBYTE
POP BC POP BC
POP AF POP AF
RET RET
; ;
; This function is intended to turn on DSKY L1 ; This function is intended to turn on DSKY L1
; ;
@ -552,14 +527,13 @@ DSKY_L1ON:
LD C,$0D LD C,$0D
CALL DSKY_GETBYTE CALL DSKY_GETBYTE
or $20
OR $20
LD C,$0D LD C,$0D
CALL DSKY_PUTBYTE CALL DSKY_PUTBYTE
POP BC POP BC
POP AF POP AF
RET RET
; ;
; This function is intended to turn on DSKY L2 ; This function is intended to turn on DSKY L2
; ;
@ -569,14 +543,13 @@ DSKY_L2ON:
LD C,$0E LD C,$0E
CALL DSKY_GETBYTE CALL DSKY_GETBYTE
or $20
OR $20
LD C,$0E LD C,$0E
CALL DSKY_PUTBYTE CALL DSKY_PUTBYTE
POP BC POP BC
POP AF POP AF
RET RET
; ;
; This function is intended to turn off DSKY L1 ; This function is intended to turn off DSKY L1
; ;
@ -586,14 +559,13 @@ DSKY_L1OFF:
LD C,$0D LD C,$0D
CALL DSKY_GETBYTE CALL DSKY_GETBYTE
and $DF
AND $DF
LD C,$0D LD C,$0D
CALL DSKY_PUTBYTE CALL DSKY_PUTBYTE
POP BC POP BC
POP AF POP AF
RET RET
; ;
; This function is intended to turn off DSKY L2 ; This function is intended to turn off DSKY L2
; ;
@ -603,16 +575,17 @@ DSKY_L2OFF:
LD C,$0E LD C,$0E
CALL DSKY_GETBYTE CALL DSKY_GETBYTE
and $DF
AND $DF
LD C,$0E LD C,$0E
CALL DSKY_PUTBYTE CALL DSKY_PUTBYTE
POP BC POP BC
POP AF POP AF
RET RET
;
;==================================================================================================
; DSKYNG LINE CONTROL ROUTINES
;==================================================================================================
; ;
; SETUP PPI FOR WRITING: PUT PPI PORT A IN OUTPUT MODE ; SETUP PPI FOR WRITING: PUT PPI PORT A IN OUTPUT MODE
; AVOID REWRTING PPIX IF ALREADY IN OUTPUT MODE ; AVOID REWRTING PPIX IF ALREADY IN OUTPUT MODE
@ -639,15 +612,6 @@ DSKY_PPIWR1:
POP AF POP AF
RET 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 ; SETUP PPI FOR READING: PUT PPI PORT A IN INPUT MODE
; AVOID REWRTING PPIX IF ALREADY IN INPUT MODE ; AVOID REWRTING PPIX IF ALREADY IN INPUT MODE
; ;
@ -664,10 +628,6 @@ DSKY_PPIRD:
OUT (PPIX),A OUT (PPIX),A
LD (DSKY_PPIX_VAL),A LD (DSKY_PPIX_VAL),A
; ;
; ; DIAGNOSTIC
; LD A,'R'
; CALL COUT
;
DSKY_PPIRD1: DSKY_PPIRD1:
POP AF POP AF
RET RET
@ -677,12 +637,26 @@ DSKY_PPIRD1:
DSKY_PPIIDLE: DSKY_PPIIDLE:
JR DSKY_PPIRD ; SAME AS READ MODE 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 ; CODES FOR NUMERICS
; HIGH BIT ALWAYS CLEAR TO SUPPRESS DECIMAL POINT ; HIGH BIT ALWAYS CLEAR TO SUPPRESS DECIMAL POINT
; SET HIGH BIT TO SHOW DECIMAL POINT ; SET HIGH BIT TO SHOW DECIMAL POINT
; ;
HEXMAP:
DSKY_NUMS:
DSKY_HEXMAP:
.DB $3F ; 0 .DB $3F ; 0
.DB $06 ; 1 .DB $06 ; 1
.DB $5B ; 2 .DB $5B ; 2

46
Source/HBIOS/hbios.asm

@ -1431,20 +1431,18 @@ SAVE_REC_M:
CALL DSKY_INIT CALL DSKY_INIT
LD HL,MSG_HBVER + 5 LD HL,MSG_HBVER + 5
LD A,(DSKY_NUMS + RMJ)
;AND $7F
LD A,(DSKY_HEXMAP + RMJ)
OR $80 OR $80
LD (HL),A LD (HL),A
INC HL INC HL
LD A,(DSKY_NUMS + RMN)
;AND $7F
LD A,(DSKY_HEXMAP + RMN)
OR $80 OR $80
LD (HL),A LD (HL),A
INC HL INC HL
LD A,(DSKY_NUMS + RUP)
LD A,(DSKY_HEXMAP + RUP)
LD (HL),A LD (HL),A
LD HL,MSG_HBVER LD HL,MSG_HBVER
CALL DSKY_SHOWSEG
CALL DSKY_SHOW
#ENDIF #ENDIF
; ;
#IF (WBWDEBUG == USEMIO) ; BUFFER OUTPUT UNTIL #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 ; THE CURRENT DISK UNIT NUMBER WILL BE DISPLAYED IN THE FIRST
; 2 SEG DISPLAYS. THE LOWER 24 BITS OF THE SECTOR WILL BE ; 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) ; HL: ADDRESS OF 32-BIT SECTOR NUMBER (LITTLE-ENDIAN)
; ALL REGISTERS PERSERVED ; ALL REGISTERS PERSERVED
@ -2882,7 +2884,22 @@ HB_DSKACT1:
DJNZ HB_DSKACT1 ; LOOP DJNZ HB_DSKACT1 ; LOOP
LD A,(HB_DSKUNIT) ; GET DISK UNIT NUM LD A,(HB_DSKUNIT) ; GET DISK UNIT NUM
LD (DE),A ; PUT AT HEAD OF BUF 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 HL
POP DE POP DE
POP BC POP BC
@ -2892,6 +2909,10 @@ HB_DSKACT1:
; THIS IS THE CHS VARIANT OF THE ABOVE. THIS IS USED BY CHS ORIENTED ; THIS IS THE CHS VARIANT OF THE ABOVE. THIS IS USED BY CHS ORIENTED
; DISK DRIVERS (BASICALLY JUST FLOPPY). ; 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 ; HL: ADDRESS OF CYL,HD,SEC IN THE FORMAT CCSH
; ALL REGISTERS PRESERVED ; ALL REGISTERS PRESERVED
; ;
@ -2916,14 +2937,7 @@ HB_DSKACTCHS:
DEC HL ; BACK TO SECTOR DEC HL ; BACK TO SECTOR
LD A,(HL) ; GET SECTOR LD A,(HL) ; GET SECTOR
LD (DE),A ; ADD TO BUF 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 #ENDIF
; ;

12
Source/HBIOS/romldr.asm

@ -208,7 +208,7 @@ prompt:
#if (DSKYENABLE) #if (DSKYENABLE)
call DSKY_RESET ; clear DSKY call DSKY_RESET ; clear DSKY
ld hl,msg_sel ; boot select msg ld hl,msg_sel ; boot select msg
call DSKY_SHOWSEG ; show on DSKY
call DSKY_SHOW ; show on DSKY
#IF (DSKYMODE == DSKYMODE_NG) #IF (DSKYMODE == DSKYMODE_NG)
call DSKY_PUTLED call DSKY_PUTLED
@ -606,7 +606,7 @@ reboot:
; ;
#if (DSKYENABLE) #if (DSKYENABLE)
ld hl,msg_boot ; point to boot message ld hl,msg_boot ; point to boot message
call DSKY_SHOWSEG ; display message
call DSKY_SHOW ; display message
#endif #endif
; ;
; cold boot system ; cold boot system
@ -638,7 +638,7 @@ romload:
; ;
#if (DSKYENABLE) #if (DSKYENABLE)
ld hl,msg_load ; point to load message ld hl,msg_load ; point to load message
call DSKY_SHOWSEG ; display message
call DSKY_SHOW ; display message
#endif #endif
; ;
#if (BIOS == BIOS_WBW) #if (BIOS == BIOS_WBW)
@ -722,7 +722,7 @@ romload1:
; ;
#if (DSKYENABLE) #if (DSKYENABLE)
ld hl,msg_go ; point to go message ld hl,msg_go ; point to go message
call DSKY_SHOWSEG ; display message
call DSKY_SHOW ; display message
#endif #endif
; ;
ld l,(ix+ra_ent) ; HL := app entry address ld l,(ix+ra_ent) ; HL := app entry address
@ -747,7 +747,7 @@ diskboot:
; ;
#if (DSKYENABLE) #if (DSKYENABLE)
ld hl,msg_load ; point to load message ld hl,msg_load ; point to load message
call DSKY_SHOWSEG ; display message
call DSKY_SHOW ; display message
#endif #endif
; ;
#if (BIOS == BIOS_WBW) #if (BIOS == BIOS_WBW)
@ -1031,7 +1031,7 @@ diskboot10:
; ;
#if (DSKYENABLE) #if (DSKYENABLE)
ld hl,msg_go ; point to go message ld hl,msg_go ; point to go message
call DSKY_SHOWSEG ; display message
call DSKY_SHOW ; display message
#endif #endif
; ;
; Jump to entry vector ; Jump to entry vector

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1 #DEFINE RMN 1
#DEFINE RUP 1 #DEFINE RUP 1
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.89"
#DEFINE BIOSVER "3.1.1-pre.90"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1 rup equ 1
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.1.1-pre.89"
db "3.1.1-pre.90"
endm endm

Loading…
Cancel
Save