From fa3874ec45f05d4d7138b58c5f35dc7a15a49ee3 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Mon, 20 Feb 2023 22:20:33 +0800 Subject: [PATCH 1/3] 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$" From 08168681b6ad07db73b434528c9bb6ca0c575c2b Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Tue, 21 Feb 2023 19:37:43 +0800 Subject: [PATCH 2/3] Update hbios.asm --- Source/HBIOS/hbios.asm | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 8810942e..81f40c95 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -6570,11 +6570,7 @@ PS_PRTDT: 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) + CALL PS_PAD18 ; PAD TO 18 SPACES RET ; ; PRINT DISK CAPACITY (UNIT IN C, ATTRIBUTE IN E) @@ -6686,7 +6682,7 @@ PS_PRTST: ; PRINT SERIAL CONFIG (UNIT IN E, ATTRIBUTE IN C) ; PS_PRTSC: - BIT 6,C ; PARALLEL TYPE? + BIT 6,C ; PARALLEL TYPE? JR NZ,PSPRTPC0 BIT 7,C ; 0=RS-232, 1=TERMINAL @@ -6870,19 +6866,14 @@ PS_SOUND: LD B,BF_SNDQUERY ; FUNC=GET DEVICE INFO, UNIT NUM STILL IN C LD E,BF_SNDQ_DEV RST 08 - LD A,B - RLCA - RLCA - RLCA - RLCA - AND $0F + PUSH BC + LD C,B + LD A,11110000B ; TYPE IS IN UPPER NIBBLE LD DE,PS_SDSN76489 - CALL PRTIDXDEA - LD A,(PRTIDXCNT) - SUB 18 ; SUBTRACT FIELD WIDTH - NEG ; MAKE IT A POSITIVE NUMBER - CALL PS_PAD ; PAD AS NEEDED - + CALL PRTIDXMSK + CALL PS_PAD18 + POP BC +; ; DEVICE CHARACTERISTICS ; LD B,BF_SNDQUERY ; FUNC=GET DEVICE INFO, UNIT NUM STILL IN C @@ -6899,6 +6890,7 @@ PS_SOUND: ; POP BC RET + ; ; PRINT DEVICE NMEMONIC, DEVTYP/NUM SPECIFIED IN DE ; @@ -6934,6 +6926,14 @@ PS_PRT1: INC C ; BUMP COUNTER JR PS_PRT1 ; AND LOOP ; +; PAD 18 CHARACTER FIELD +; +PS_PAD18: + LD A,(PRTIDXCNT) + SUB 18 ; SUBTRACT FIELD WIDTH + NEG ; MAKE IT A POSITIVE NUMBER + JR PS_PAD ; PAD AS NEEDED +; ; PRINT STRING AT HL IN 18 CHARACTER FIELD ; PS_PRT18: From 23988056176877e2f9630f756f132f2908aa3430 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Tue, 21 Feb 2023 20:44:31 +0800 Subject: [PATCH 3/3] Update HBIOS --- Source/HBIOS/hbios.asm | 9 ++++----- Source/HBIOS/util.asm | 7 ++++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 81f40c95..4210ffd9 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -6890,7 +6890,6 @@ PS_SOUND: ; POP BC RET - ; ; PRINT DEVICE NMEMONIC, DEVTYP/NUM SPECIFIED IN DE ; @@ -6926,18 +6925,18 @@ PS_PRT1: INC C ; BUMP COUNTER JR PS_PRT1 ; AND LOOP ; -; PAD 18 CHARACTER FIELD +; PAD 18 CHARACTER FIELD ; PS_PAD18: LD A,(PRTIDXCNT) - SUB 18 ; SUBTRACT FIELD WIDTH - NEG ; MAKE IT A POSITIVE NUMBER - JR PS_PAD ; PAD AS NEEDED + LD C,A + JR PS_PRT18A ; ; PRINT STRING AT HL IN 18 CHARACTER FIELD ; PS_PRT18: CALL PS_PRT ; PRINT $ TERM STRING AT (HL), C:=CHARS PRINTED +PS_PRT18A: LD A,18 ; 18 CHAR FIELD SUB C ; CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A) diff --git a/Source/HBIOS/util.asm b/Source/HBIOS/util.asm index 0c914540..328edc65 100644 --- a/Source/HBIOS/util.asm +++ b/Source/HBIOS/util.asm @@ -140,8 +140,9 @@ PRTSTRD: ; PRINT A STRING INDIRECT: REFERENCED BY INDIRECT POINTER AT TOP OF STACK ; STRING MUST BE TERMINATED BY '$' ; USAGE: -; CALL PRTSTRI(MYSTRING) ; MYSTRING .DB "HELLO$" +; CALL PRTSTRI(MYSTRING) +; .DW MYSTRING ; PRTSTRI: EX (SP),HL @@ -366,13 +367,13 @@ WRITESTR: WRITESTR1: LD A,(DE) CP '$' ; TEST FOR STRING TERMINATOR - JP Z,WRITESTR2 + JR Z,WRITESTR2 CALL COUT LD A,(PRTIDXCNT) INC A LD (PRTIDXCNT),A INC DE - JP WRITESTR1 + JR WRITESTR1 WRITESTR2: POP AF RET