Browse Source

Update hbios.asm

- No dynamic speed detection for Z280 at this point.
pull/143/head
Wayne Warthen 6 years ago
parent
commit
a5a590cc4a
  1. 97
      Source/HBIOS/hbios.asm

97
Source/HBIOS/hbios.asm

@ -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
;

Loading…
Cancel
Save