Browse Source

Refactor of device summary cleanup

pull/44/head
b1ackmai1er 7 years ago
parent
commit
0307fe1aa9
  1. 194
      Source/HBIOS/hbios.asm
  2. 8
      Source/HBIOS/pio.asm
  3. 10
      Source/HBIOS/uf.asm

194
Source/HBIOS/hbios.asm

@ -1359,28 +1359,6 @@ HB_SPDTST:
LD A,(HB_CPUTYPE) ; GET CPU TYPE
LD DE,HB_CPU_STR ; DISPLAY IT
CALL PRTIDXDEA
; OR A ; SET FLAGS
; LD DE,HB_STRZ80 ; Z80
; JR Z,HB_PCPU ; IF Z80, PRINT IT
; DEC A ; NEXT CPU TYPE
; LD DE,HB_STRZ180 ; Z80180
; JR Z,HB_PCPU ; IF Z80180, PRINT IT
; DEC A ; NEXT CPU TYPE
; LD DE,HB_STRZS180K ; Z8S180 REV K
; JR Z,HB_PCPU ; IF Z8S180-K, PRINT IT
; LD DE,HB_STRZS180N ; Z8S180 REV N
JR HB_PCPU ; PRINT Z8S180-N
;
HB_CPU_STR:
HB_STRZ80 .TEXT " Z80$"
HB_STRZ180 .TEXT " Z80180$"
HB_STRZS180K .TEXT " Z8S180-K$"
HB_STRZS180N .TEXT " Z8S180-N$"
;
HB_PCPU:
CALL WRITESTR ; PRINT IT
;
PRTS(" @ $")
LD HL,(CB_CPUKHZ)
@ -3059,72 +3037,10 @@ PRT_ALLD1:
POP HL
POP DE
POP BC ; RESTORE LOOP CONTROL
INC C ; BUMP DISK UNIT INDEX
DJNZ PRT_ALLD1 ; LOOP THRU ALL DISK DEVICES
INC C ; BUMP UNIT INDEX
DJNZ PRT_ALLD1 ; LOOP THRU ALL DEVICES
RET
;
;==================================================================================================
; DISPLAY SUMMARY OF ATTACHED UNITS/DEVICES
;==================================================================================================
;
;PRTSUM:
; CALL NEWLINE2 ; SKIP A LINE
; LD DE,PS_STRHDR ; POINT TO HEADER
; CALL WRITESTR ; PRINT IT
;
; ; PRINT DISK DEVICES
; LD B,BF_SYSGET ; FUNC: SYSTEM INFO GET
; LD C,BF_SYSGET_DIOCNT ; SUBFUNC: DISK UNIT COUNT
; RST 08 ; E := DISK UNIT COUNT
; LD B,E ; MOVE TO B FOR LOOP COUNT
; LD A,E ; MOVE TO ACCUM
; OR A ; SET FLAGS
; JR Z,PRTSUM1A ; IF NONE, BYPASS
; LD C,0 ; C WILL BE UNIT INDEX
;PRTSUM1:
; PUSH BC ; SAVE LOOP CONTROL
; CALL PS_DISK ; PRINT DISK INFO
; POP BC ; RESTORE LOOP CONTROL
; INC C ; BUMP DISK UNIT INDEX
; DJNZ PRTSUM1 ; LOOP THRU ALL DISK DEVICES
;
;PRTSUM1A:
; ; PRINT SERIAL DEVICES
; LD B,BF_SYSGET ; FUNC: SYSTEM INFO GET
; LD C,BF_SYSGET_CIOCNT ; SUBFUNC: SERIAL UNIT COUNT
; RST 08 ; E := SERIAL UNIT COUNT
; LD B,E ; MOVE TO B FOR LOOP COUNT
; LD A,E ; MOVE TO ACCUM
; OR A ; SET FLAGS
; JR Z,PRTSUM2A ; IF NONE, BYPASS
; LD C,0 ; C WILL BE UNIT INDEX
;PRTSUM2:
; PUSH BC ; SAVE LOOP CONTROL
; CALL PS_SERIAL ; PRINT SERIAL INFO
; POP BC ; RESTORE LOOP CONTROL
; INC C ; BUMP SERIAL UNIT INDEX
; DJNZ PRTSUM2 ; LOOP THRU ALL SERIAL DEVICES
;
;PRTSUM2A:
; ; PRINT VIDEO DEVICES
; LD B,BF_SYSGET ; FUNC: SYSTEM INFO GET
; LD C,BF_SYSGET_VDACNT ; SUBFUNC: VIDEO UNIT COUNT
; RST 08 ; E := SERIAL UNIT COUNT
; LD B,E ; MOVE TO B FOR LOOP COUNT
; LD A,E ; MOVE TO ACCUM
; OR A ; SET FLAGS
; JR Z,PRTSUM3A ; IF NONE, BYPASS
; LD C,0 ; C WILL BE UNIT INDEX
;PRTSUM3:
; PUSH BC ; SAVE LOOP CONTROL
; CALL PS_VIDEO ; PRINT VIDEO INFO
; POP BC ; RESTORE LOOP CONTROL
; INC C ; BUMP VIDEO UNIT INDEX
; DJNZ PRTSUM3 ; LOOP THRU ALL VIDEO DEVICES
;
;PRTSUM3A:
; RET ; DONE
;
; PRINT ONE LINE DISK UNIT/DEVICE INFO, DISK UNIT INDEX IN C
;
PS_DISK:
@ -3225,62 +3141,16 @@ PS_PRTDC2:
LD C,E ; ATTRIBUTE TO C FOR SAFE KEEPING
;
LD A,01100000B ; DISPLAY FORM FACTOR
LD DE,PS_FLP8 ; WHICH IS DEFINED IN
LD DE,PS_FLP_FSTR ; WHICH IS DEFINED IN
CALL PRTIDXMSK ; BITS 5 AND 6.
;
LD A,00010000B ; DISPLAY SIDES
LD DE,PS_FLPSS ; WHICH IS DEFINED
LD DE,PS_FLP_SSTR ; WHICH IS DEFINED
CALL PRTIDXMSK ; IN BIT 4
;
LD A,00001100B ; DISPLAY DENSITY
LD DE,PS_FLPSD ; WHICH IS DEFINED IN
CALL PRTIDXMSK ; BITS 1 AND 2.
;
; ; PRINT FLOPPY TYPE
; LD A,C ; ATTRIBUTE TO ACCUM
; RLCA ; ISOLATE FORM FACTOR BITS
; RLCA
; RLCA
; AND $03
; LD DE,PS_FLP8 ; ASSUME 8"
; CP 0
; JR Z,PS_PRTDC2A
; LD DE,PS_FLP5 ; ASSUME 5.25"
; CP 1
; JR Z,PS_PRTDC2A
; LD DE,PS_FLP3 ; ASSUME 3.5"
; CP 2
; JR Z,PS_PRTDC2A
; LD DE,PS_FLPN ; ASSUME OTHER"
;PS_PRTDC2A:
; CALL WRITESTR
;; ; PRINT FLOPPY SIDES
; LD A,C ; ATTRIBUTE TO ACCUM
; LD DE,PS_FLPSS ; ASSUME SINGLE SIDED
; BIT 4,A ; DS?
; JR Z,PS_PRTDC2B
; LD DE,PS_FLPDS ; DOUBLE SIDED
;PS_PRTDC2B:
; CALL WRITESTR
; ; PRINT FLOPPY DENSITY
; LD A,C ; ATTRIBUTE TO ACCUM
; RRCA ; ISOLATE DENSITY BITS
; RRCA
; AND $03
; LD DE,PS_FLPSD ; SINGLE DENSITY
; CP 0
; JR Z,PS_PRTDC2C
; LD DE,PS_FLPDD ; DOUBLE DENSITY
; CP 1
; JR Z,PS_PRTDC2C
; LD DE,PS_FLPHD ; HIGH DENSITY
; CP 2
; JR Z,PS_PRTDC2C
; LD DE,PS_FLPED ; EXTENDED DENSITY
; CP 3
; JR Z,PS_PRTDC2C
PS_PRTDC2C:
; CALL WRITESTR
LD DE,PS_FLP_DSTR ; WHICH IS DEFINED IN
CALL PRTIDXMSK ; BITS 2 AND 3.
;
CALL PC_COMMA
PRTS("CHS$") ; FOR NOW, WE ASSUME HARD DISK DOES LBA
@ -3408,15 +3278,11 @@ PSPRTPC0:
JP Z,PS_PRTNUL ; $FF == NO CONFIG DEFINED
;
PS_PRTPC0:
LD A,E ; CONVERT THE TYPE TO
RLCA ; A TABLE INDEX 0..5
RLCA ; AND DISPLAY THE TYPE
AND 00000011B
PUSH DE
LD DE,PIO_MODE_STR
CALL PRTIDXDEA
POP DE
RET
LD C,E ; DISPLAY PIO TYPE
LD A,11000000B ; WHICH IS DEFINE BY
LD DE,PIO_MODE_STR ; BITS 6 AND 7
JP PRTIDXMSK
; RET ; TRICK RETURN
;
PS_PRTSC1:
; PRINT TERMINAL CONFIG
@ -3547,7 +3413,10 @@ PS_PAD1:
DJNZ PS_PAD1
RET
;
;
HB_CPU_STR: .TEXT " Z80$" ; HB_STRZ80
.TEXT " Z80180$" ; HB_STRZ180
.TEXT " Z8S180-K$" ; HB_STRZS180K
.TEXT " Z8S180-N$" ; HB_STRZS180N
;
PS_STRNUL .TEXT "--$" ; DISPLAY STRING FOR NUL VALUE
;
@ -3586,20 +3455,20 @@ PS_DTOTHER .TEXT "???$"
;
; FLOPPY ATTRIBUTE STRINGS
;
PS_FLP8 .TEXT "8\",$"
PS_FLP5 .TEXT "5.25\",$"
PS_FLP3 .TEXT "3.5\",$"
PS_FLPN .TEXT "???\",$"
PS_FLP_FSTR: .TEXT "8\",$" ; PS_FLP8
.TEXT "5.25\",$" ; PS_FLP5
.TEXT "3.5\",$" ; PS_FLP3
.TEXT "???\",$" ; PS_FLPN
;
PS_FLPSS .TEXT "SS/$"
PS_FLPDS .TEXT "DS/$"
PS_FLP_SSTR: .TEXT "SS/$" ; PS_FLPSS
.TEXT "DS/$" ; PS_FLPDS
;
PS_FLPSD .TEXT "SD$"
PS_FLPDD .TEXT "DD$"
PS_FLPHD .TEXT "HD$"
PS_FLPED .TEXT "ED$"
PS_FLP_DSTR: .TEXT "SD$" ; PS_FLPSD
.TEXT "DD$" ; PS_FLPDD
.TEXT "HD$" ; PS_FLPHD
.TEXT "ED$" ; PS_FLPED
;
; SERIAL DEVICE STRINGS
; CHARACTER DEVICE STRINGS
;
PS_SDSTRREF:
.DW PS_SDUART, PS_SDASCI, PS_SDTERM,
@ -3615,7 +3484,7 @@ PS_SDACIA .TEXT "ACIA$"
PS_SDPIO .TEXT "PORT$"
PS_SDUF .TEXT "UF$"
;
; SERIAL TYPE STRINGS
; CHARACTER SUB TYPE STRINGS
;
PS_STRS232 .TEXT "RS-232$"
PS_STTERM .TEXT "Terminal$"
@ -3623,10 +3492,9 @@ PS_STPPT .TEXT "Parallel$"
;
PS_STPARMAP .DB "NONENMNS"
;
; PIO TYPE STRINGS
; PARALLEL TYPE STRINGS
;
PIO_MODE_STR:
.TEXT "Output$"
PIO_MODE_STR: .TEXT "Output$"
.TEXT "Input$"
.TEXT "Bidirectional$"
.TEXT "BitCtrl$"
@ -3646,10 +3514,6 @@ PS_VDVGA .TEXT "VGA$"
;
PS_VTCRT .TEXT "CRT$"
;
; VIDEO CONFIG STRINGS
;
;
;
; 0 1 2 3 4 5 6 7
; 01234567890123456789012345678901234567890123456789012345678901234567890123456789
PS_STRHDR .TEXT "Unit Device Type Capacity/Mode\r\n"

8
Source/HBIOS/pio.asm

@ -812,10 +812,10 @@ PIO_DEV .DB 0 ; DEVICE NUM USED DURING INIT
; DESCRIPTION OF DIFFERENT PORT TYPES
;
PIO_TYPE_STR:
PIO_STR_NONE .TEXT "<NOT PRESENT>$" ; IDX 0
PIO_STR_PIO .TEXT "Zilog PIO$" ; IDX 1
PIO_STR_8255 .TEXT "i8255 PPI$" ; IDX 2
PIO_STR_PORT .TEXT "IO Port$" ; IDX 3
.TEXT "<NOT PRESENT>$" ; IDX 0
.TEXT "Zilog PIO$" ; IDX 1
.TEXT "i8255 PPI$" ; IDX 2
.TEXT "IO Port$" ; IDX 3
;
; Z80 PIO PORT TABLE - EACH ENTRY IS FOR 1 CHIP I.E. TWO PORTS
;

10
Source/HBIOS/uf.asm

@ -56,15 +56,15 @@ UF_INITUNIT:
;
UF_INIT:
CALL NEWLINE ; PRINT DEVICE
PRTS("USB-FIFO: $")
PRTS("IO=0x$")
CALL PRTSTRD
.TEXT "USB-FIFO: IO=0x$")
LD A,UFBASE ; PRINT PORT
CALL PRTHEXBYTE
LD A,(UF_USB_ACTIVE) ; PRINT CONNECTION STATUS
OR A ; REQUIRES TERMINAL PROGRAM
RET NZ ; TO HAVE INITIALIZED PORT
PRTS(" No $") ; ON PC SIDE.
PRTS("connection$")
CALL PRTSTRD ; ON PC SIDE.
.TEXT "No connection$"
RET
;
; INPUT A CHARACTER AND RETURN IT IN E
@ -119,7 +119,7 @@ UF_INITDEV:
INC A ; ... SO Z SET IF -1
JR NZ,UF_INITDEV1 ; IF DE == -1, REINIT CURRENT CONFIG
;
; GET CURRENT PSW. WE ALWAYS RESAVE AT END
; GET CURRENT SPW. WE ALWAYS RESAVE AT END
LD E,(IY+0) ; LOW BYTE
LD D,(IY+1) ; HIGH BYTE
;

Loading…
Cancel
Save