mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
hbios: refactor HB_CPUTYPE values to use constants literal definitions instead of hard coded numbers
This commit is contained in:
@@ -2987,7 +2987,7 @@ HBIOS result code.
|
||||
|
||||
This function returns information about the active CPU environment. The
|
||||
Z80 CPU Variant (H) will be one of: 0=Z80, 1=Z180, 2=Z180-K, 3=Z180-N,
|
||||
4=Z280. The current CPU speed is provided as both CPU Speed MHz (L) and
|
||||
4=Z280, 5=eZ80. The current CPU speed is provided as both CPU Speed MHz (L) and
|
||||
CPU Speed KHz (DE). The raw oscillator speed is provided as Oscillator
|
||||
Speed KHz (BC). The returned Status (A) is a standard HBIOS result
|
||||
code.
|
||||
|
||||
@@ -54,8 +54,7 @@ EZ80_PREINIT:
|
||||
LD L, RTP
|
||||
|
||||
EZ80_UTIL_VER_EXCH()
|
||||
; TODO: MAP THE FIRMWARE CPU TO HBIOS (eZ80 ONLY HAS ONE CPU TYPE AS OF NOW)
|
||||
LD A, 5
|
||||
LD A, CPT_EZ80
|
||||
LD (HB_CPUTYPE),A
|
||||
|
||||
LD (EZ80_PLT_VERSION), HL
|
||||
|
||||
@@ -2464,7 +2464,7 @@ HB_CLRIVT_Z:
|
||||
; 4: Z8280
|
||||
; 5: eZ80
|
||||
;
|
||||
LD HL,0 ; L = 0 MEANS Z80
|
||||
LD HL,CPT_Z80 ; L = 0 MEANS Z80
|
||||
;
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
;
|
||||
@@ -2474,13 +2474,13 @@ HB_CLRIVT_Z:
|
||||
LD A,E ; CHECK IF MULTIPLY HAPPENED
|
||||
CP 30
|
||||
JR NZ,HB_CPU1 ; IT IS A Z80 IF != 30
|
||||
INC L ; FLAG Z80180 OR BETTER
|
||||
INC L ; CPT_Z180 - FLAG Z80180 OR BETTER
|
||||
;
|
||||
; TEST FOR OLDER S-CLASS (REV K)
|
||||
IN0 A,(Z180_CCR) ; SUPPOSEDLY ONLY ON S-CLASS
|
||||
INC A ; FF -> 0
|
||||
JR Z,HB_CPU1
|
||||
INC L ; FLAG Z8S180 REV K (SL1960) OR BETTER
|
||||
INC L ; CPT_Z180_K - FLAG Z8S180 REV K (SL1960) OR BETTER
|
||||
;
|
||||
; TEST FOR NEWER S-CLASS (REV N)
|
||||
; ON OLDER S-CLASS, ASCI TIME CONSTANT REG DOES NOT EXIST
|
||||
@@ -2489,7 +2489,7 @@ HB_CLRIVT_Z:
|
||||
IN0 A,(Z180_ASTC1L) ; ASCI TIME CONSTANT REG
|
||||
INC A ; FF -> 0
|
||||
JR Z,HB_CPU1
|
||||
INC L ; FLAG Z8S180 REV N W/ ASCI BRG
|
||||
INC L ; CPT_Z180_N - FLAG Z8S180 REV N W/ ASCI BRG
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
@@ -2501,7 +2501,7 @@ HB_CLRIVT_Z:
|
||||
; ON THE Z80 CPU AND CLEAR THE S FLAG
|
||||
; ON THE Z280 MPU.
|
||||
JP M,HB_CPU1 ; IF Z80, SKIP AHEAD
|
||||
LD L,4 ; WE ARE Z280
|
||||
LD L,CPT_Z280 ; WE ARE Z280
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
@@ -2735,7 +2735,7 @@ HB_CPU2:
|
||||
;
|
||||
#IF (Z180_CLKDIV >= 1)
|
||||
LD A,(HB_CPUTYPE) ; GET CPU TYPE
|
||||
CP 2 ; Z8S180 REV K OR BETTER?
|
||||
CP CPT_Z180_K ; Z8S180 REV K OR BETTER?
|
||||
JR C,HB_CPU3 ; IF NOT, NOT POSSIBLE!
|
||||
; SET CLOCK DIVIDE TO 1 RESULTING IN FULL XTAL SPEED
|
||||
LD A,$80
|
||||
@@ -2747,7 +2747,7 @@ HB_CPU2:
|
||||
;
|
||||
#IF (Z180_CLKDIV >= 2)
|
||||
LD A,(HB_CPUTYPE) ; GET CPU TYPE
|
||||
CP 3 ; Z8S180 REV N OR BETTER?
|
||||
CP CPT_Z180_N ; Z8S180 REV N OR BETTER?
|
||||
JR C,HB_CPU3 ; IF NOT, NOT POSSIBLE!
|
||||
; SET CPU MULTIPLIER TO 1 RESULTING IN XTAL * 2 SPEED
|
||||
; ALSO SET CCR AGAIN BECAUSE OF REPORTS THAT CCR
|
||||
@@ -6297,7 +6297,7 @@ SYS_GETCPUSPD1:
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
LD HL,0 ; INIT CPU SPEED TO HALF
|
||||
LD A,(HB_CPUTYPE) ; LOAD CPUTYPE
|
||||
CP 2 ; S-CLASS OR ABOVE?
|
||||
CP CPT_Z180_K ; S-CLASS OR ABOVE?
|
||||
JR C,SYS_GETCPUSPD1 ; IF NOT, NO CCR/CMR
|
||||
;
|
||||
; GET CCR BIT
|
||||
@@ -6307,7 +6307,7 @@ SYS_GETCPUSPD1:
|
||||
LD L,A ; SAVE IN L
|
||||
;
|
||||
LD A,(HB_CPUTYPE) ; LOAD CPUTYPE
|
||||
CP 3 ; REV. N?
|
||||
CP CPT_Z180_N ; REV. N?
|
||||
JR C,SYS_GETCPUSPD1 ; IF NOT, NO CMR
|
||||
;
|
||||
; GET CMR BIT
|
||||
@@ -6640,7 +6640,7 @@ SYS_SETCPUSPD2:
|
||||
LD A,L ; GET SPEED REQUESTED
|
||||
CP $FF ; NO CHANGE?
|
||||
JR Z,SYS_SETCPUSPD0A ; SKIP CHECK
|
||||
LD A,(HB_CPUTYPE) ; 1=ORIG, 2=REVK, 3=REVN
|
||||
LD A,(HB_CPUTYPE) ; 1=CPT_Z180=ORIG, 2=CPT_Z180_K=REVK, 3=CPT_Z180_N=REVN
|
||||
INC L ; 1=HALF,2=FULL,3=DOUBLE
|
||||
CP L ; TOO HIGH FOR CPU TYPE?
|
||||
JP C,SYS_SETCPUSPD_ERR ; CPU CAN'T DO SPD MULT
|
||||
@@ -8876,6 +8876,7 @@ PS_PRTSC0:
|
||||
;
|
||||
RET
|
||||
;
|
||||
; INDEXED AS PER CPT_xxx
|
||||
HB_CPU_STR: .TEXT " Z80$"
|
||||
.TEXT " Z80180$"
|
||||
.TEXT " Z8S180-K$"
|
||||
@@ -9482,7 +9483,7 @@ HB_TICKS .FILL 4,0 ; 32 BIT TICK COUNTER
|
||||
HB_SECTCK .DB TICKFREQ ; TICK COUNTER FOR FRACTIONAL SECONDS
|
||||
HB_SECS .FILL 4,0 ; 32 BIT SECONDS COUNTER
|
||||
;
|
||||
HB_CPUTYPE .DB 0 ; 0=Z80, 1=Z180, 2=Z180-K, 3=Z180-N, 4=Z280
|
||||
HB_CPUTYPE .DB 0 ; 0=Z80, 1=Z180, 2=Z180-K, 3=Z180-N, 4=Z280, 5=eZ80
|
||||
HB_CPUOSC .DW CPUOSC / 1000 ; ACTUAL CPU HARDWARE OSC FREQ IN KHZ
|
||||
;
|
||||
HB_BATCOND .DB 0 ; BATTERY CONDITION (0=LOW, 1=OK)
|
||||
|
||||
@@ -518,6 +518,7 @@ LCD_STR_IO .DB "Disk #", 0
|
||||
LCD_STR_XPU .DB " CPU",0
|
||||
LCD_STR_MHZ .DB " MHz",0
|
||||
;
|
||||
; INDEXED AS PER CPT_xxx
|
||||
LCD_CPU .DW LCD_CPU_Z80
|
||||
.DW LCD_CPU_Z180
|
||||
.DW LCD_CPU_Z180K
|
||||
|
||||
@@ -62,13 +62,22 @@ DL_INFO .EQU 16 ; HBIOS DISPLAYS INFORMATIONAL MESSAGES
|
||||
DL_DETAIL .EQU 20 ; HBIOS DISPLAYS DETAILED DIAGNOSTIC MESSAGES
|
||||
DL_VERBOSE .EQU 24 ; HBIOS DISPLAYS ANYTHING IT KNOWS HOW TO
|
||||
;
|
||||
; CPU TYPES
|
||||
; CPU FAMILY TYPES
|
||||
;
|
||||
CPU_NONE .EQU 0 ; NO CPU TYPE DEFINED
|
||||
CPU_Z80 .EQU 1 ; Z80 FAMILY
|
||||
CPU_Z180 .EQU 2 ; Z180 FAMILY
|
||||
CPU_Z280 .EQU 3 ; Z280 FAMILY
|
||||
CPU_EZ80 .EQU 4 ; eZ280 FAMILY
|
||||
CPU_EZ80 .EQU 4 ; eZ80 FAMILY
|
||||
;
|
||||
; CPU TYPES (AS RETURNED IN HBIOS SYSGET-CPUINFO)
|
||||
;
|
||||
CPT_Z80 .EQU 0 ; Z80
|
||||
CPT_Z180 .EQU 1 ; Z180
|
||||
CPT_Z180_K .EQU 2 ; Z180-K
|
||||
CPT_Z180_N .EQU 3 ; Z180-N
|
||||
CPT_Z280 .EQU 4 ; Z280
|
||||
CPT_EZ80 .EQU 5 ; eZ80
|
||||
;
|
||||
; BIOS MODE
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user