Minor Cleanup

This commit is contained in:
Wayne Warthen
2019-05-24 18:13:21 -07:00
parent aaaac827d1
commit 346b190f97
2 changed files with 51 additions and 17 deletions

View File

@@ -968,6 +968,46 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
CALL DSKY_SHOWSEG
#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
;
CALL HB_CPUSPD ; CPU SPEED DETECTION
@@ -1253,23 +1293,13 @@ PSCNX .EQU $ + 1
LD HL,(CB_CPUKHZ)
CALL PRTD3M ; PRINT AS DECIMAL WITH 3 DIGIT MANTISSA
PRTS("MHz$")
;
#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
CALL PRTHEXBYTE
#ENDIF
@@ -1930,7 +1960,8 @@ SYS_GETBOOTINFO:
; DE: CPU SPEED IN KHZ
;
SYS_GETCPUINFO:
LD H,0 ; NOT YET DEFINED
LD A,(HB_CPUTYPE)
LD H,A
LD A,(CB_CPUMHZ)
LD L,A
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_CPUTYPE .DB 0 ; 0=Z80, 1=80180, 2=SL1960, 3=ASCI BRG
;
STR_BANNER .DB "RetroBrew HBIOS v", BIOSVER, ", ", TIMESTAMP, "$"
STR_PLATFORM .DB PLATFORM_NAME, "$"
STR_SWITCH .DB "*** Activating CRT Console ***$"