Browse Source

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

pull/424/head
Dean Netherton 2 years ago
parent
commit
ce9778e189
  1. 2
      Source/HBIOS/cfg_rcez80.asm
  2. 31
      Source/HBIOS/hbios.asm
  3. 4
      Source/RomDsk/Makefile
  4. BIN
      Source/RomDsk/ROM_384KB/timer.com

2
Source/HBIOS/cfg_rcez80.asm

@ -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 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 CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ 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) 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!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)

31
Source/HBIOS/hbios.asm

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

4
Source/RomDsk/Makefile

@ -6,8 +6,8 @@ include $(TOOLS)/Makefile.inc
.SHELLFLAGS = -ce .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 rom128_%.dat: DISKDEF=wbw_rom128
rom256_%.dat: DISKDEF=wbw_rom256 rom256_%.dat: DISKDEF=wbw_rom256

BIN
Source/RomDsk/ROM_384KB/timer.com

Binary file not shown.
Loading…
Cancel
Save