Browse Source

Merge pull request #54 from feilipu/master

hbios - system ticks
pull/80/head
Wayne Warthen 6 years ago
committed by GitHub
parent
commit
9895c4d47d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      Source/HBIOS/cfg_master.asm
  2. 23
      Source/HBIOS/hbios.asm
  3. 26
      Source/HBIOS/util.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)
;

23
Source/HBIOS/hbios.asm

@ -1245,7 +1245,7 @@ HB_CPU1:
LD (IVT(INT_TIM0)),HL ; Z180 TIMER 0
; SETUP PERIODIC TIMER INTERRUPT ON TIMER 0
LD HL,(CB_CPUKHZ) ; 50HZ = 18432000 / 20 / 50 / X, SO X = CPU KHZ
LD HL,CPUOSC/TICKSPERSEC/20-1 ; 50HZ = 18432000 / 50 / 20
LD B,0
LD C,Z180_RLDR0L ; INITIALIZE TIMER 0 RELOAD REGISTER
OUT (C),L
@ -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
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 ; 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 ; 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

26
Source/HBIOS/util.asm

@ -258,7 +258,7 @@ DB_BLKRD:
LD C,16 ; SET FOR 16 LOCS
PUSH HL ; SAVE STARTING HL
DB_NXTONE:
LD A,(HL) ; GET BYTE
LD A,(HL) ; GET BYTE
CALL PRTHEXBYTE ; PRINT IT
CALL PC_SPACE ;
DB_UPDH:
@ -789,7 +789,7 @@ DIV32X8:
XOR A
LD B,32
DIV32X8A:
ADD HL,HL
ADD HL,HL
RL E
RL D
RLA
@ -798,7 +798,7 @@ DIV32X8A:
SUB C
INC L
DIV32X8B:
DJNZ DIV32X8A
DJNZ DIV32X8A
RET
;
; FILL MEMORY AT HL WITH VALUE A, LENGTH IN BC, ALL REGS USED
@ -984,19 +984,15 @@ SUB32:
; INCREMENT 32 BIT BINARY AT ADDRESS
;
INC32HL:
PUSH HL
PUSH BC
LD B,4
INC32HL1:
INC (HL)
RET NZ
INC HL
JR NZ,INC32HL2
DJNZ INC32HL1
INC32HL2:
POP BC
POP HL
INC (HL)
RET NZ
INC HL
INC (HL)
RET NZ
INC HL
INC (HL)
RET

Loading…
Cancel
Save