|
|
@ -968,6 +968,46 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK |
|
|
CALL DSKY_SHOWSEG |
|
|
CALL DSKY_SHOWSEG |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
|
|
|
; DISCOVER CPU TYPE |
|
|
|
|
|
; |
|
|
|
|
|
; THIS CODE IS DERIVED FROM UNA BY JOHN COFFMAN |
|
|
|
|
|
; |
|
|
|
|
|
; 0: Z80 |
|
|
|
|
|
; 1: Z80180 - ORIGINAL Z180 IDENTICAL TO HD64180 |
|
|
|
|
|
; 2: Z8S180 - ORIGINAL S-CLASS, REV. K, AKA SL1960, NO ASCI BRG |
|
|
|
|
|
; 3: Z8S180 - REVISED S-CLASS, REV. N, W/ ASCI BRG |
|
|
|
|
|
; |
|
|
|
|
|
LD HL,0 ; L = 0 MEANS Z80 |
|
|
|
|
|
; |
|
|
|
|
|
#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RCZ180)) |
|
|
|
|
|
; |
|
|
|
|
|
; TEST FOR ORIGINAL Z180 USING MLT |
|
|
|
|
|
LD DE,$0506 ; 5 X 6 |
|
|
|
|
|
MLT DE ; DE = 30 IF Z180 |
|
|
|
|
|
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 |
|
|
|
|
|
; |
|
|
|
|
|
; TEST FOR OLDER S-CLASS |
|
|
|
|
|
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 |
|
|
|
|
|
; |
|
|
|
|
|
; TEST FOR NEWER S-CLASS |
|
|
|
|
|
OUT0 (Z180_ASTC1L),D ; D = 0 AT THIS POINT |
|
|
|
|
|
IN0 A,(Z180_ASTC1L) ; COUNTER REG |
|
|
|
|
|
INC A ; FF -> 0 |
|
|
|
|
|
JR Z,HB_CPU1 |
|
|
|
|
|
INC L ; FLAG Z8S180 REV N W/ ASCI BRG |
|
|
|
|
|
; |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
|
|
|
HB_CPU1: |
|
|
|
|
|
LD A,L |
|
|
|
|
|
LD (HB_CPUTYPE),A |
|
|
|
|
|
; |
|
|
; PERFORM DYNAMIC CPU SPEED DERIVATION |
|
|
; PERFORM DYNAMIC CPU SPEED DERIVATION |
|
|
; |
|
|
; |
|
|
CALL HB_CPUSPD ; CPU SPEED DETECTION |
|
|
CALL HB_CPUSPD ; CPU SPEED DETECTION |
|
|
@ -1253,23 +1293,13 @@ PSCNX .EQU $ + 1 |
|
|
LD HL,(CB_CPUKHZ) |
|
|
LD HL,(CB_CPUKHZ) |
|
|
CALL PRTD3M ; PRINT AS DECIMAL WITH 3 DIGIT MANTISSA |
|
|
CALL PRTD3M ; PRINT AS DECIMAL WITH 3 DIGIT MANTISSA |
|
|
PRTS("MHz$") |
|
|
PRTS("MHz$") |
|
|
|
|
|
; |
|
|
#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RCZ180)) |
|
|
#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RCZ180)) |
|
|
LD L,1 ; flag Z180 |
|
|
|
|
|
LD D,0 |
|
|
|
|
|
OUT0 (Z180_ASTC1L),D ; D = 0 at this point |
|
|
|
|
|
IN0 A,(Z180_FRC) ; supposedly only on S-class |
|
|
|
|
|
INC A ; FF or 00 -> 0 or 1 (weak S-class or higher) |
|
|
|
|
|
ADD A,L |
|
|
|
|
|
LD L,A ; result to L and A |
|
|
|
|
|
IN0 A,(Z180_ASTC1L) ; counter reg |
|
|
|
|
|
INC A ; FF or 00 -> 0 or 1 (super-S) |
|
|
|
|
|
ADD A,L |
|
|
|
|
|
LD L,A ; 1 means Z180 - 80180 |
|
|
|
|
|
LD A,$30 ; 2 means Z180 S-class, SL1960 version |
|
|
|
|
|
ADD A,L ; 3 means Z180 advanced S-class, with Baud Rate Generator |
|
|
|
|
|
PRTS(" Type: $") |
|
|
|
|
|
CALL COUT ; Courtesy John Coffman MK IV UnaBIOS |
|
|
|
|
|
PRTS(", IO=0x$") |
|
|
|
|
|
|
|
|
LD A,(HB_CPUTYPE) ; GET CPU TYPE |
|
|
|
|
|
PRTS(" REV=$") |
|
|
|
|
|
ADD A,$30 ; MAKE DISPLAYABLE DIGIT |
|
|
|
|
|
CALL COUT |
|
|
|
|
|
PRTS(" IO=0x$") |
|
|
LD A,Z180_BASE |
|
|
LD A,Z180_BASE |
|
|
CALL PRTHEXBYTE |
|
|
CALL PRTHEXBYTE |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
@ -1930,7 +1960,8 @@ SYS_GETBOOTINFO: |
|
|
; DE: CPU SPEED IN KHZ |
|
|
; DE: CPU SPEED IN KHZ |
|
|
; |
|
|
; |
|
|
SYS_GETCPUINFO: |
|
|
SYS_GETCPUINFO: |
|
|
LD H,0 ; NOT YET DEFINED |
|
|
|
|
|
|
|
|
LD A,(HB_CPUTYPE) |
|
|
|
|
|
LD H,A |
|
|
LD A,(CB_CPUMHZ) |
|
|
LD A,(CB_CPUMHZ) |
|
|
LD L,A |
|
|
LD L,A |
|
|
LD DE,(CB_CPUKHZ) |
|
|
LD DE,(CB_CPUKHZ) |
|
|
@ -3593,6 +3624,8 @@ HEAPCURB .DW 0 ; MARK HEAP ADDRESS AFTER INITIALIZATION |
|
|
; |
|
|
; |
|
|
HB_TICKS .FILL 4,0 ; 32 BIT TICK COUNTER |
|
|
HB_TICKS .FILL 4,0 ; 32 BIT TICK COUNTER |
|
|
; |
|
|
; |
|
|
|
|
|
HB_CPUTYPE .DB 0 ; 0=Z80, 1=80180, 2=SL1960, 3=ASCI BRG |
|
|
|
|
|
; |
|
|
STR_BANNER .DB "RetroBrew HBIOS v", BIOSVER, ", ", TIMESTAMP, "$" |
|
|
STR_BANNER .DB "RetroBrew HBIOS v", BIOSVER, ", ", TIMESTAMP, "$" |
|
|
STR_PLATFORM .DB PLATFORM_NAME, "$" |
|
|
STR_PLATFORM .DB PLATFORM_NAME, "$" |
|
|
STR_SWITCH .DB "*** Activating CRT Console ***$" |
|
|
STR_SWITCH .DB "*** Activating CRT Console ***$" |
|
|
|