diff --git a/Source/HBIOS/cfg_rcez80.asm b/Source/HBIOS/cfg_rcez80.asm index a04ac19f..3cd7910b 100644 --- a/Source/HBIOS/cfg_rcez80.asm +++ b/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 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!!!) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 6d476148..9d22a730 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -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: diff --git a/Source/RomDsk/Makefile b/Source/RomDsk/Makefile index c4ab2ec3..57e5ff7c 100644 --- a/Source/RomDsk/Makefile +++ b/Source/RomDsk/Makefile @@ -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 diff --git a/Source/RomDsk/ROM_384KB/timer.com b/Source/RomDsk/ROM_384KB/timer.com new file mode 100644 index 00000000..be41c754 Binary files /dev/null and b/Source/RomDsk/ROM_384KB/timer.com differ