Browse Source

hbios - sys/time.h functions

pull/54/head
Phillip Stevens 6 years ago
parent
commit
6ab3ecd0cc
  1. 1
      Source/HBIOS/cfg_master.asm
  2. 21
      Source/HBIOS/hbios.asm

1
Source/HBIOS/cfg_master.asm

@ -20,6 +20,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
;
CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
;

21
Source/HBIOS/hbios.asm

@ -2396,12 +2396,25 @@ SYS_GETTIMER:
; GET SECONDS
; RETURNS:
; DE:HL: SECONDS VALUE (32 BIT)
; C TICKS OF TICKSPERSEC (8 BIT)
;
SYS_GETSECS:
LD HL,HB_SECS
LD HL,HB_SECTCK
LD A,TICKSPERSEC-1
HB_DI
CALL LD32
SUB (HL)
INC HL ; NOW POINTING TO HB_SECS
LD C,(HL)
INC HL
LD B,(HL)
INC HL
LD E,(HL)
INC HL
LD D,(HL)
HB_EI
LD L,C
LD H,B
LD C,A
XOR A
RET
;
@ -2739,7 +2752,7 @@ HB_TIMINT2:
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 A,TICKSPERSEC-1 ; 50 TICKS PER SECOND
LD (HL),A ; RESET COUNTDOWN REGISTER
; INCREMENT SECONDS COUNTER
LD HL,HB_SECS ; POINT TO SECONDS COUNTER
@ -4049,7 +4062,7 @@ 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_SECTCK .DB TICKSPERSEC-1 ; TICK COUNTER FOR FRACTIONAL SECONDS
HB_SECS .FILL 4,0 ; 32 BIT SECONDS COUNTER
;
HB_CPUTYPE .DB 0 ; 0=Z80, 1=80180, 2=SL1960, 3=ASCI BRG

Loading…
Cancel
Save