gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
gbdk-lib/libc/targets/z80/timer.s
1 .include "global.s"
2
3 .title "Timer dispatcher"
4 .module TIMDispatcher
5
6 .globl .add_int, .remove_int
7 .globl .TIM_DISPATCHER
8
9 .area _HOME
10
11 LowPri_TIM_Dispatcher:
12 ld hl, #_TIMA_REG
13 inc (hl)
14 ret nz
15 ei
16 jp .TIM_continue
17 TIM_Dispatcher:
18 ld hl, #_TIMA_REG
19 inc (hl)
20 ret nz
21 .TIM_continue:
22 ld a, (_TMA_REG)
23 ld (hl), a
24
25 .irp idx,.TIM_HANDLER0,.TIM_HANDLER1,.TIM_HANDLER2
26 ld hl, (idx)
27 ld a, h
28 or l
29 jp z, 1$
30 CALL_HL
31 .endm
32 1$:
33 ret
34
35 _remove_TIM::
36 ld b, h
37 ld c, l
38 ld hl, #.TIM_HANDLER0
39 jp .remove_int
40
41 _add_low_priority_TIM::
42 ld b, h
43 ld c, l
44 ld hl, #LowPri_TIM_Dispatcher
45 jr .add_TIM
46 _add_TIM::
47 ld b, h
48 ld c, l
49 ld hl, #TIM_Dispatcher
50 .add_TIM:
51 ld (.TIM_DISPATCHER), hl
52 ld hl, #.TIM_HANDLER0
53 jp .add_int
54
55 .area _DATA
56
57 _TAC_REG::
58 .ds 0x01
59
60 .area _INITIALIZED
61
62 _TIMA_REG::
63 .ds 0x01
64 _TMA_REG::
65 .ds 0x01
66 .TIM_HANDLER0:
67 .ds 0x02
68 .TIM_HANDLER1:
69 .ds 0x02
70 .TIM_HANDLER2:
71 .ds 0x02
72 .ds 0x02
73
74 .area _INITIALIZER
75
76 .db 0xff
77 .db 0xff
78 .dw 0x0000
79 .dw 0x0000
80 .dw 0x0000
81 .dw 0x0000
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.