Browse Source

Merge pull request #319 from b1ackmai1er/dev

Update hbios.asm
pull/331/head
Wayne Warthen 3 years ago
committed by GitHub
parent
commit
f0183bdd8a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 86
      Source/HBIOS/hbios.asm
  2. 7
      Source/HBIOS/util.asm

86
Source/HBIOS/hbios.asm

@ -6564,25 +6564,14 @@ 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
CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A)
RET
JP NZ,PS_PRT18 ; IF FLOPPY, JUMP AHEAD
LD C,E
LD DE,PS_DTHARD
LD A,00111000B
CALL PRTIDXMSK
CALL PS_PAD18 ; PAD TO 18 SPACES
RET
;
; PRINT DISK CAPACITY (UNIT IN C, ATTRIBUTE IN E)
;
@ -6683,23 +6672,17 @@ 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)
;
PS_PRTSC:
BIT 6,C ; PARALLEL TYPE?
BIT 6,C ; PARALLEL TYPE?
JR NZ,PSPRTPC0
BIT 7,C ; 0=RS-232, 1=TERMINAL
@ -6832,11 +6815,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)
;
@ -6887,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
@ -6951,6 +6925,22 @@ PS_PRT1:
INC C ; BUMP COUNTER
JR PS_PRT1 ; AND LOOP
;
; PAD 18 CHARACTER FIELD
;
PS_PAD18:
LD A,(PRTIDXCNT)
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)
;
; PAD N SPACES SPECIFIED IN A
;
PS_PAD: LD B,A
@ -6983,10 +6973,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$"

7
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

Loading…
Cancel
Save