Browse Source

Refactor of device summary floppy

pull/44/head
b1ackmai1er 7 years ago
parent
commit
4cc4fc0ffe
  1. 102
      Source/HBIOS/hbios.asm
  2. 24
      Source/HBIOS/util.asm

102
Source/HBIOS/hbios.asm

@ -3223,51 +3223,65 @@ PS_PRTDC1:
; ;
PS_PRTDC2: PS_PRTDC2:
LD C,E ; ATTRIBUTE TO C FOR SAFE KEEPING LD C,E ; ATTRIBUTE TO C FOR SAFE KEEPING
; 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
;
LD A,01100000B ; DISPLAY FORM FACTOR
LD DE,PS_FLP8 ; WHICH IS DEFINED IN
CALL PRTIDXMSK ; BITS 5 AND 6.
;
LD A,00010000B ; DISPLAY SIDES
LD DE,PS_FLPSS ; 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: PS_PRTDC2C:
CALL WRITESTR
; CALL WRITESTR
;
CALL PC_COMMA CALL PC_COMMA
PRTS("CHS$") ; FOR NOW, WE ASSUME HARD DISK DOES LBA PRTS("CHS$") ; FOR NOW, WE ASSUME HARD DISK DOES LBA
; ;

24
Source/HBIOS/util.asm

@ -298,6 +298,30 @@ DB_END:
RET RET
; ;
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $ ; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $
; C REGISTER CONTAINS THE INDEX TO THE STRING TO BE DISPLAYED.
; A REGISTER CONTAINS A MASK TO BE APPLIED TO THE INDEX
; THE INDEX IS NORMALIZED TO A RANGE 0..N USING THE MASK AND THEN THE nTH
; STRING IS PRINTED IN A LIST DEFINED BY DE
;
; C = ATTRIBUTE
; A = MASK
; DE = STRING LIST
;
PRTIDXMSK:
PUSH BC
PRTIDXMSK0:
BIT 0,A
JR NZ,PRTIDXMSK1
SRL A
SRL C
JR PRTIDXMSK0
PRTIDXMSK1:
LD B,A
LD A,C
AND B
POP BC
;
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $
; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS ; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS
; TO THE START OF THE STRING LIST. ; TO THE START OF THE STRING LIST.
; ;

Loading…
Cancel
Save