-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdli.INC
100 lines (75 loc) · 1.45 KB
/
dli.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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
; -*- text -*-
;
; VBI and Display List Interrupts
;
.local
@init_vbi
lda VVBLKI
sta ?store_vvblki
lda VVBLKI+1
sta ?store_vvblki+1
jsr @stop_displaylist_interrupts
LDA #6 ; use inferred(6) VBI
LDY #<?GAME_VBI
LDX #>?GAME_VBI
JMP SETVBV
@stop_displaylist_interrupts
lda #$40
sta ?nmien_value
rts
@start_displaylist_interrupts
lda #$c0
sta ?nmien_value
rts
?nmien_value
.byte 0
?store_vvblki
.word 0
@deinit_vbi
LDA #6 ; use inferred(6) VBI
LDY ?store_vvblki
LDX ?store_vvblki+1
JMP SETVBV
;
; OO OO OOOOO OOOO
; OO OO OO OO OO
; OO OO OO OO OO
; OO OO OOOOO OO
; OO OO OO OO OO
; OO OO OO OO OO
; OOO OOOOO OOOO
;
?GAME_VBI
LDA #0
STA 77 ; no colorswitch
LDA #$0
STA NMIEN ; Displaylist Interrupt must not occur
jsr @reset_meter
; Show Game Screen
LDA #<@displaylist ; Game Screen
STA SDLSTL
LDA #>@displaylist
STA SDLSTL+1
LDA #<?DLI
STA VDSLST
LDA #>?DLI
STA VDSLST+1
LDA ?nmien_value
STA NMIEN ; Displaylist Interrupt are possible
JMP SYSVBV
; OOOOO OO OOOO
; OO OO OO OO
; OO OO OO OO
; OO OO OO OO
; OO OO OO OO
; OO OO OO OO
; OOOOO OOOOOO OOOO
?DLI
pha
lda #8 ; shows a gray line
sta colbk
jsr @multi_sprite_dli_sub
lda #0
sta colbk
pla
rti