Browse Source

CPU Speed Calc Tweek

- Exit CPU speed detection routine earlier if the clock is not ticking.
- Fix minor regression in the SBC_simh.asm config file.
pull/340/head v3.2.1-rc.2
Wayne Warthen 3 years ago
parent
commit
f640630a06
  1. 3
      Source/HBIOS/Config/SBC_simh.asm
  2. 10
      Source/HBIOS/hbios.asm
  3. 2
      Source/ver.inc
  4. 2
      Source/ver.lib
  5. 5
      Tools/simh/Sim.cmd

3
Source/HBIOS/Config/SBC_simh.asm

@ -30,6 +30,9 @@ INTMODE .SET 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
;
HTIMENABLE .SET TRUE ; ENABLE SIMH TIMER SUPPORT
;
SIMRTCENABLE .SET TRUE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
DSRTCENABLE .SET FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
;
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
UARTSBCFORCE .SET TRUE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH)
;

10
Source/HBIOS/hbios.asm

@ -6286,13 +6286,18 @@ HB_CPUSPD1:
#ENDIF
; WAIT FOR AN INITIAL TICK TO ALIGN, THEN WAIT
; FOR SECOND TICK AND TO GET A FULL ONE SECOND LOOP COUNT
; FOR A SECOND TICK TO GET A FULL ONE SECOND LOOP COUNT.
; WAITSEC WILL SET ZF IF AN OVERFLOW OCCURS (MEANING THAT THE
; CLOCK IS NOT TICKING). THERE IS NO
; POINT IN CALLING HB_WAITSEC AGAIN IN THAT CASE, SO WE ONLY
; CALL HB_WAITSEC AGAIN IF ZF IS NOT SET.
CALL DSRTC_START
CALL HB_RDSEC ; GET SECONDS
LD (HB_CURSEC),A ; AND INIT CURSEC
CALL HB_WAITSEC ; WAIT FOR SECONDS TICK
LD (HB_CURSEC),A ; SAVE NEW VALUE
CALL HB_WAITSEC ; WAIT FOR SECONDS TICK
; CALL HB_WAITSEC AGAIN, BUT ONLY IF ZF IS NOT SET
CALL NZ,HB_WAITSEC ; WAIT FOR SECONDS TICK
;
#IF (CPUFAM == CPU_Z180)
; RESTORE W/S SETTINGS FROM BEFORE TEST
@ -6323,6 +6328,7 @@ HB_CPUSPD1:
HB_WAITSEC:
; WAIT FOR SECONDS TICK
; RETURN SECS VALUE IN A, LOOP COUNT IN DE
; ZF IS SET ON OVERFLOW (CLOCK NOT TICKING)
LD DE,0 ; INIT LOOP COUNTER
HB_WAITSEC1:
;

2
Source/ver.inc

@ -2,7 +2,7 @@
#DEFINE RMN 2
#DEFINE RUP 1
#DEFINE RTP 0
#DEFINE BIOSVER "3.2.1-rc.1"
#DEFINE BIOSVER "3.2.1-rc.2"
#define rmj RMJ
#define rmn RMN
#define rup RUP

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 2
rup equ 1
rtp equ 0
biosver macro
db "3.2.1-rc.1"
db "3.2.1-rc.2"
endm

5
Tools/simh/Sim.cmd

@ -2,8 +2,9 @@
set ROM=..\..\Binary\SBC_simh.rom
if not "%1"=="" set ROM=..\..\Binary\%1.rom
if not exist %ROM% goto romerr
rem start C:\Users\WWarthen\Bin\putty.exe -load "SIMH Telnet"
start /w altairz80.exe sim.cfg %ROM%
:: start C:\Users\WWarthen\Bin\putty.exe -load "SIMH Telnet"
:: start /w altairz80.exe sim.cfg %ROM%
altairz80.exe sim.cfg %ROM%
goto :eof
:romerr

Loading…
Cancel
Save