mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Update hbios.asm
- No dynamic speed detection for Z280 at this point.
This commit is contained in:
@@ -474,7 +474,6 @@ HBX_BC_SP .EQU $ - 2 ; ... TO ORIGINAL VALUE
|
||||
#IF (CPUFAM == CPU_Z280)
|
||||
POP IY
|
||||
PUSH BC
|
||||
;LD C,$00
|
||||
LD C,Z280_MSR
|
||||
;LDCTL (C),IY
|
||||
.DB $FD,$ED,$6E
|
||||
@@ -844,7 +843,6 @@ HB_START:
|
||||
LD SP,HBX_LOC ; SETUP INITIAL STACK JUST BELOW HBIOS PROXY
|
||||
;
|
||||
#IF (CPUFAM == CPU_Z280)
|
||||
;;LD C,$12 ; CACHE CONTROL REGISTER
|
||||
;LD C,Z280_CCR ; CACHE CONTROL REGISTER
|
||||
;LD HL,$0060 ; DISABLE INSTRUCTION CACHE
|
||||
;;LDCTL (C),HL ; SET IT (8 BITS)
|
||||
@@ -852,7 +850,6 @@ HB_START:
|
||||
;;PCACHE ; PURGE ANY REMNANTS OF CACHE
|
||||
;.DB $ED,$65
|
||||
;
|
||||
;LD C,$02 ; BUS TIMING AND CONTROL REGISTER
|
||||
LD C,Z280_BTCR ; BUS TIMING AND CONTROL REGISTER
|
||||
LD HL,$0033 ; 3 I/O WAIT STATES ADDED
|
||||
;LD HL,$00F3 ; 3 I/O W/S & 3 INT ACK W/S
|
||||
@@ -1219,16 +1216,6 @@ HB_CPU2:
|
||||
LD (CB_CPUKHZ),DE
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
;#IF (CPUFAM == CPU_Z280)
|
||||
;;
|
||||
; ; Z280 PHI IS OSC / 2
|
||||
; LD A,(CPUOSC / 2) / 1000000
|
||||
; LD (CB_CPUMHZ),A
|
||||
; LD DE,(CPUOSC / 2) / 1000
|
||||
; LD (CB_CPUKHZ),DE
|
||||
;;
|
||||
;#ENDIF
|
||||
;
|
||||
DIAG(%00011111)
|
||||
;
|
||||
@@ -2970,71 +2957,8 @@ SYS_PEEK:
|
||||
;
|
||||
SYS_POKE:
|
||||
#IF (INTMODE == 1)
|
||||
|
||||
;EI
|
||||
;
|
||||
;LD C,$00
|
||||
;.DB $ED,$66
|
||||
;CALL PC_SPACE
|
||||
;CALL PRTHEXWORDHL
|
||||
;
|
||||
;CALL PC_SPACE
|
||||
;LD A,I
|
||||
;PUSH AF
|
||||
;POP HL
|
||||
;CALL PRTHEXWORDHL
|
||||
;
|
||||
;DI
|
||||
;
|
||||
;LD C,$00
|
||||
;.DB $ED,$66
|
||||
;CALL PC_SPACE
|
||||
;CALL PRTHEXWORDHL
|
||||
;
|
||||
;CALL PC_SPACE
|
||||
;LD A,I
|
||||
;PUSH AF
|
||||
;POP HL
|
||||
;CALL PRTHEXWORDHL
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
;OUT (DIAGPORT),A
|
||||
;DI
|
||||
;HALT
|
||||
;
|
||||
;;PUSH HL
|
||||
;;;LD C,$00
|
||||
;;LD C,Z280_MSR
|
||||
;;LDCTL HL,(C)
|
||||
;;BIT 5,L
|
||||
;;POP HL
|
||||
;;PUSH AF
|
||||
;;DI
|
||||
;
|
||||
;;POP AF
|
||||
;;JP Z,$+4
|
||||
;;EI
|
||||
;
|
||||
;
|
||||
;
|
||||
;;PUSH IY
|
||||
;;;LD C,$00
|
||||
;;LD C,Z280_MSR
|
||||
;;LDCTL IY,(C)
|
||||
;;PUSH IY
|
||||
;;DI
|
||||
;
|
||||
;;;LD C,$00
|
||||
;;LD C,Z280_MSR
|
||||
;;POP IY
|
||||
;;LDCTL (C),IY
|
||||
;;POP IY
|
||||
|
||||
#IF (CPUFAM == CPU_Z280)
|
||||
PUSH IY
|
||||
;LD C,$00
|
||||
LD C,Z280_MSR
|
||||
;LDCTL IY,(C)
|
||||
.DB $FD,$ED,$66
|
||||
@@ -3049,7 +2973,6 @@ SYS_POKE:
|
||||
CALL HBX_POKE ; IMPLEMENTED IN PROXY
|
||||
#IF (INTMODE == 1)
|
||||
#IF (CPUFAM == CPU_Z280)
|
||||
;LD C,$00
|
||||
LD C,Z280_MSR
|
||||
POP IY
|
||||
;LDCTL (C),IY
|
||||
@@ -3815,21 +3738,21 @@ SIZ_AY38910 .EQU $ - ORG_AY38910
|
||||
;
|
||||
HB_CPUSPD:
|
||||
;
|
||||
#IF (DSRTCENABLE)
|
||||
#IF (DSRTCENABLE & ((CPUFAM == CPU_Z80) | (CPUFAM == CPU_Z180)))
|
||||
;
|
||||
LD A,(DSRTC_STAT) ; GET RTC STATUS
|
||||
OR A ; SET FLAGS
|
||||
RET NZ ; NOT ZERO IS ERROR
|
||||
;
|
||||
HB_CPUSPD1:
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
; USE MEM W/S = 2 AND I/O W/S = 3 FOR TEST
|
||||
IN0 A,(Z180_DCNTL)
|
||||
PUSH AF
|
||||
LD A,$B0
|
||||
;LD A,$F0
|
||||
OUT0 (Z180_DCNTL),A
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
|
||||
; WAIT FOR AN INITIAL TICK TO ALIGN, THEN WAIT
|
||||
; FOR SECOND TICK AND TO GET A FULL ONE SECOND LOOP COUNT
|
||||
@@ -3839,11 +3762,11 @@ HB_CPUSPD1:
|
||||
LD (HB_CURSEC),A ; SAVE NEW VALUE
|
||||
CALL HB_WAITSEC ; WAIT FOR SECONDS TICK
|
||||
;
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
; RESTORE W/S SETTINGS FROM BEFORE TEST
|
||||
POP AF
|
||||
OUT0 (Z180_DCNTL),A
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
LD A,H
|
||||
OR L
|
||||
@@ -3874,7 +3797,7 @@ HB_WAITSEC:
|
||||
LD DE,0 ; INIT LOOP COUNTER
|
||||
HB_WAITSEC1:
|
||||
;
|
||||
#IF (CPUFAM == CPU_Z80)
|
||||
#IF (CPUFAM == CPU_Z80)
|
||||
; LOOP TARGET IS 4000 T-STATES, SO CPU FREQ IN KHZ = LOOP COUNT * 4
|
||||
CALL DLY32
|
||||
CALL DLY16
|
||||
@@ -3883,9 +3806,9 @@ HB_WAITSEC1:
|
||||
SBC HL,HL ; 15 TSTATES
|
||||
INC HL ; 6 TSTATES
|
||||
INC HL ; 6 TSTATES
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
; LOOP TARGET IS 4000 T-STATES, SO CPU FREQ IN KHZ = LOOP COUNT * 4
|
||||
CALL DLY2
|
||||
ADD IX,BC ; 10 + 4 = 14 TSTATES
|
||||
@@ -3893,7 +3816,7 @@ HB_WAITSEC1:
|
||||
NOP ; 5 TSTATES
|
||||
NOP ; 5 TSTATES
|
||||
NOP ; 5 TSTATES
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
PUSH DE ; SAVE COUNTER
|
||||
CALL HB_RDSEC ; GET SECONDS
|
||||
@@ -3916,7 +3839,7 @@ HB_RDSEC:
|
||||
LD A,E ; VALUE TO A
|
||||
RET
|
||||
;
|
||||
#ELSE
|
||||
#ELSE
|
||||
;
|
||||
RET ; NO RTC, ABORT
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user