|
|
|
@ -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) |
|
|
|
|