-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtimer.inc
86 lines (74 loc) · 932 Bytes
/
timer.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
jmp Timer_end
!macro PRINT_DECIMAL .num {
lda .num
lsr
lsr
lsr
lsr
ora #$30
jsr CHROUT
lda .num
and #$0F
ora #$30
jsr CHROUT
}
Reset
stz ticks
stz seconds
stz minutes
ldx #30
ldy #29
jsr Go_XY
ldx #<Game
ldy #>Game
jsr Print_Str ;Print game time label
lda Timer_enabled
bne @Timer
jmp @end
@Timer
sed ;Enter decimal mode
lda ticks
clc
adc #1
cmp #$60
bne @next_tick
stz ticks
bra @update_seconds
@next_tick
cld ;Exit decimal mode
sta ticks
jmp @end
@update_seconds
lda seconds
clc
adc #1
cmp #$60
bne @next_second
stz seconds
bra @update_minute
@next_second
sta seconds
bra @print
@update_minute
lda minutes
clc
adc #1
cmp #$90
bne @next_minute
stz minutes
bra @print
@next_minute
sta minutes
@print
cld ;Exit decimal mode
ldx #0
ldy #0
jsr Go_XY
+PRINT_DECIMAL minutes
ldx #<Colon
ldy #>Colon
jsr Print_Str
+PRINT_DECIMAL seconds
@end:
rts
Timer_end