ez80: implemented timer get/set function - delegates to firmware

This commit is contained in:
Dean Netherton
2024-07-08 16:35:38 +10:00
parent 44d890be59
commit ce9778e189
4 changed files with 34 additions and 3 deletions

View File

@@ -31,7 +31,7 @@ AUTOCON .EQU TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (EZ80 operates with IM 2 - simulating IM 1)
DEFSERCFG .EQU SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)

View File

@@ -5058,6 +5058,13 @@ SYS_GETFN:
; DE:HL: TIMER VALUE (32 BIT)
;
SYS_GETTIMER:
#IF (CPUFAM == CPU_EZ80)
LD A, 2
LD B, 0 ; GET TIMER TICK
EZ80_FN
RET
#ELSE
LD HL,HB_TICKS
HB_DI
CALL LD32
@@ -5065,6 +5072,8 @@ SYS_GETTIMER:
LD C, TICKFREQ
XOR A
RET
#ENDIF
;
; GET SECONDS
; RETURNS:
@@ -5072,6 +5081,13 @@ SYS_GETTIMER:
; C: NUM TICKS WITHIN CURRENT SECOND
;
SYS_GETSECS:
#IF (CPUFAM == CPU_EZ80)
LD A, 2
LD B, 1 ; GET SECOND TICK
EZ80_FN
RET
#ELSE
LD HL,HB_SECS
HB_DI
CALL LD32
@@ -5082,6 +5098,7 @@ SYS_GETSECS:
LD C,A
XOR A
RET
#ENDIF
;
; GET BOOT INFORMATION
; RETURNS:
@@ -5289,24 +5306,38 @@ SYS_SETBOOTINFO:
; DE:HL: TIMER VALUE (32 BIT)
;
SYS_SETTIMER:
#IF (CPUFAM == CPU_EZ80)
LD A, 2
LD B, 2 ; SET TICKS
EZ80_FN
RET
#ELSE
LD BC,HB_TICKS
HB_DI
CALL ST32
HB_EI
XOR A
RET
#ENDIF
;
; SET SECS
; ON ENTRY:
; DE:HL: SECONDS VALUE (32 BIT)
;
SYS_SETSECS:
#IF (CPUFAM == CPU_EZ80)
LD A, 2
LD B, 3 ; SET SECS
EZ80_FN
RET
#ELSE
LD BC,HB_SECS
HB_DI
CALL ST32
HB_EI
XOR A
RET
#ENDIF
;
; SET SYSTEM CPU SPEED ATTRIBUTES
; ON ENTRY:

View File

@@ -6,8 +6,8 @@ include $(TOOLS)/Makefile.inc
.SHELLFLAGS = -ce
ROMAPPS1 := assign mode rtc syscopy xm ../../Source/Images/Common/All/WDATE
ROMAPPS2 := fdu format survey sysgen talk timer cpuspd
ROMAPPS1 := assign mode rtc syscopy xm
ROMAPPS2 := fdu format survey sysgen talk cpuspd
rom128_%.dat: DISKDEF=wbw_rom128
rom256_%.dat: DISKDEF=wbw_rom256

Binary file not shown.