mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:13:13 -06:00
Add Seconds Counter to HBIOS
This commit is contained in:
@@ -2368,6 +2368,8 @@ SYS_GET:
|
||||
JR Z,SYS_GETVDACNT
|
||||
CP BF_SYSGET_TIMER
|
||||
JR Z,SYS_GETTIMER
|
||||
CP BF_SYSGET_SECS
|
||||
JR Z,SYS_GETSECS
|
||||
CP BF_SYSGET_BOOTINFO
|
||||
JR Z,SYS_GETBOOTINFO
|
||||
CP BF_SYSGET_CPUINFO
|
||||
@@ -2391,6 +2393,18 @@ SYS_GETTIMER:
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; GET SECONDS
|
||||
; RETURNS:
|
||||
; DE:HL: SECONDS VALUE (32 BIT)
|
||||
;
|
||||
SYS_GETSECS:
|
||||
LD HL,HB_SECS
|
||||
HB_DI
|
||||
CALL LD32
|
||||
HB_EI
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; GET BOOT INFORMATION
|
||||
; RETURNS:
|
||||
; L: BOOT BANK ID
|
||||
@@ -2473,6 +2487,8 @@ SYS_SET:
|
||||
LD A,C ; GET REQUESTED SUB-FUNCTION
|
||||
CP BF_SYSSET_TIMER
|
||||
JR Z,SYS_SETTIMER
|
||||
CP BF_SYSSET_SECS
|
||||
JR Z,SYS_SETSECS
|
||||
CP BF_SYSSET_BOOTINFO
|
||||
JR Z,SYS_SETBOOTINFO
|
||||
OR $FF ; SIGNAL ERROR
|
||||
@@ -2502,6 +2518,18 @@ SYS_SETTIMER:
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; SET SECS
|
||||
; ON ENTRY:
|
||||
; DE:HL: TIMER VALUE (32 BIT)
|
||||
;
|
||||
SYS_SETSECS:
|
||||
LD BC,HB_SECS
|
||||
HB_DI
|
||||
CALL ST32
|
||||
HB_EI
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; RETURN A BYTE OF MEMORY FROM SPECIFIED BANK
|
||||
; ENTRY: D=BANK ID, HL=ADDRESS
|
||||
; RETURN: E=BYTE VALUE
|
||||
@@ -2687,16 +2715,7 @@ HB_IM1PTR .DW HB_IVT ; POINTER FOR NEXT IM1 ENTRY
|
||||
HB_TIMINT:
|
||||
; INCREMENT TICK COUNTER (32 BIT)
|
||||
LD HL,HB_TICKS ; POINT TO TICK COUNTER
|
||||
INC (HL)
|
||||
JR NZ,HB_TIMINT1
|
||||
INC HL
|
||||
INC (HL)
|
||||
JR NZ,HB_TIMINT1
|
||||
INC HL
|
||||
INC (HL)
|
||||
JR NZ,HB_TIMINT1
|
||||
INC HL
|
||||
INC (HL)
|
||||
CALL INC32HL
|
||||
;
|
||||
HB_TIMINT1:
|
||||
;
|
||||
@@ -2716,6 +2735,17 @@ TEMPCNT .DB 250
|
||||
#ENDIF
|
||||
;
|
||||
HB_TIMINT2:
|
||||
LD HL,HB_SECTCK ; POINT TO SECONDS TICK COUNTER
|
||||
DEC (HL) ; COUNTDOWN 50 TICKS
|
||||
JR NZ,HB_TIMINT3 ; NOT ZERO YET, DONE FOR THIS CYCLE
|
||||
; 50 TICKS HAVE ELAPSED
|
||||
LD A,50 ; 50 TICKS PER SECOND
|
||||
LD (HL),A ; RESET COUNTDOWN REGISTER
|
||||
; INCREMENT SECONDS COUNTER
|
||||
LD HL,HB_SECS ; POINT TO SECONDS COUNTER
|
||||
CALL INC32HL
|
||||
;
|
||||
HB_TIMINT3:
|
||||
;
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
; ACK/RESET Z180 TIMER INTERRUPT
|
||||
@@ -4019,6 +4049,8 @@ IDLECOUNT .DB 0
|
||||
HEAPCURB .DW 0 ; MARK HEAP ADDRESS AFTER INITIALIZATION
|
||||
;
|
||||
HB_TICKS .FILL 4,0 ; 32 BIT TICK COUNTER
|
||||
HB_SECTCK .DB 50 ; TICK COUNTER FOR SECONDS
|
||||
HB_SECS .FILL 4,0 ; 32 BIT SECONDS COUNTER
|
||||
;
|
||||
HB_CPUTYPE .DB 0 ; 0=Z80, 1=80180, 2=SL1960, 3=ASCI BRG
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user