Browse Source

Minor Cleanup

patch
Wayne Warthen 7 years ago
parent
commit
346b190f97
  1. 1
      Doc/ChangeLog.txt
  2. 67
      Source/HBIOS/hbios.asm

1
Doc/ChangeLog.txt

@ -29,6 +29,7 @@ Version 2.9.1
- WBW: Support LBA style access in floppy driver - WBW: Support LBA style access in floppy driver
- WBW: Added beta version of FAT filesystem utility (copy, dir, del, ren) - WBW: Added beta version of FAT filesystem utility (copy, dir, del, ren)
- SCC: Added support for native memory addressing on Z180-based RC2014 - SCC: Added support for native memory addressing on Z180-based RC2014
- PMS: Dynamically discover and display processor type at boot
Version 2.9.0 Version 2.9.0
------------- -------------

67
Source/HBIOS/hbios.asm

@ -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 ***$"

Loading…
Cancel
Save