From fa3874ec45f05d4d7138b58c5f35dc7a15a49ee3 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Mon, 20 Feb 2023 22:20:33 +0800 Subject: [PATCH] Update hbios.asm Device display list improvements --- Source/HBIOS/hbios.asm | 59 ++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 36 deletions(-) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 6766e870..8810942e 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -6564,25 +6564,18 @@ PS_PRTDT: LD A,E ; ATTRIBUTES TO A BIT 7,A ; FLOPPY BIT SET? LD HL,PS_DTFLOP ; ASSUME FLOPPY - JR NZ,PS_PRTDT1 ; IF FLOPPY, JUMP AHEAD - RRCA ; SHIFT TYPE BITS - RRCA - RRCA - AND $07 ; AND ISOLATE THEM - RLCA ; X2 FOR WORD OFFSET IN STRING TABLE - LD HL,PS_DTSTRREF + 2 ; POINT TO STR REF TABLE (SKIP FLOPPY STRING) - CALL ADDHLA - LD A,(HL) - INC HL - LD H,(HL) - LD L,A -; -PS_PRTDT1: - CALL PS_PRT ; PRINT $ TERM STRING AT (HL), C:=CHARS PRINTED - LD A,18 ; 18 CHAR FIELD - SUB C + JP NZ,PS_PRT18 ; IF FLOPPY, JUMP AHEAD + + LD C,E + LD DE,PS_DTHARD + LD A,00111000B + CALL PRTIDXMSK + + LD A,(PRTIDXCNT) + SUB 18 ; 18 CHAR FIELD + NEG CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A) - RET + RET ; ; PRINT DISK CAPACITY (UNIT IN C, ATTRIBUTE IN E) ; @@ -6683,18 +6676,12 @@ PS_SERIAL: PS_PRTST: LD HL,PS_STPPT BIT 6,C - JR NZ,PS_PRTST1 ; PARALLEL TYPE? + JP NZ,PS_PRT18 ; PARALLEL TYPE? LD HL,PS_STRS232 ; ASSUME RS-232 BIT 7,C ; 0=RS-232, 1=TERMINAL - JR Z,PS_PRTST1 ; HANDLE TERMINAL TYPE + JP Z,PS_PRT18 ; HANDLE TERMINAL TYPE LD HL,PS_STTERM ; TYPE IS TERMINAL -; -PS_PRTST1: - CALL PS_PRT ; PRINT $ TERM STRING AT (HL), C:=CHARS PRINTED - LD A,18 ; 18 CHAR FIELD - SUB C - CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A) - RET + JP PS_PRT18 ; ; PRINT SERIAL CONFIG (UNIT IN E, ATTRIBUTE IN C) ; @@ -6832,11 +6819,7 @@ PS_VIDEO: ; PS_PRTVT: LD HL,PS_VTCRT ; ASSUME CRT - CALL PS_PRT ; PRINT $ TERM STRING AT (HL), C:=CHARS PRINTED - LD A,18 ; 18 CHAR FIELD - SUB C - CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A) - RET + JP PS_PRT18 ; PRINT ; ; PRINT VIDEO CONFIG (UNIT IN C, ATTRIBUTE IN E) ; @@ -6951,6 +6934,14 @@ PS_PRT1: INC C ; BUMP COUNTER JR PS_PRT1 ; AND LOOP ; +; PRINT STRING AT HL IN 18 CHARACTER FIELD +; +PS_PRT18: + CALL PS_PRT ; PRINT $ TERM STRING AT (HL), C:=CHARS PRINTED + LD A,18 ; 18 CHAR FIELD + SUB C +; CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A) +; ; PAD N SPACES SPECIFIED IN A ; PS_PAD: LD B,A @@ -6983,10 +6974,6 @@ PS_DDHDSK .TEXT "HDSK$" ; ; DISK TYPE STRINGS ; -PS_DTSTRREF: - .DW PS_DTFLOP, PS_DTHARD, PS_DTCF, PS_DTSD - .DW PS_DTUSB, PS_DTROM, PS_DTRAM, PS_DTRF, PS_DTFSH -; PS_DTFLOP .TEXT "Floppy Disk$" PS_DTHARD .TEXT "Hard Disk$" PS_DTCF .TEXT "CompactFlash$"