• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

AsaiYusuke / 6502_test_executor / 6767109495

06 Nov 2023 06:26AM CUT coverage: 96.667%. Remained the same
6767109495

Pull #64

github

web-flow
Merge 9beccc208 into 738fb1cd4
Pull Request #64: Bump third_party/json from `58d6aa5` to `6eab7a2`

145 of 150 relevant lines covered (96.67%)

45.25 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.67
/example/src/example.asm
1
.include "nes.inc"
2

3
.define BORDER_MIN        32
4
.define BORDER_MAX        224
5

6
.segment "HEADER"
7
        .byte        'N', 'E', 'S', $1A
8
        .byte        $02, $01, $00, $00
9
        .byte        $00, $00, $00, $00
10
        .byte        $00, $00, $00, $00
11

12
.segment "VECTORS"
13
        .word        nmi_vector
14
        .word        reset_vector
15
        .word        irq_vector
16

17
.segment "CHARS"
18
        .repeat 8
19
                .byte $FF
20
        .endrepeat
21

22
.segment "OAM"
23
oam:                .res 256
24

25
.segment "ZEROPAGE"
26
pos:                        .res 2
27
old_pos:                .res 2
28
nmi_lock:                .res 1
29
irq_lock:                .res 1
30
vector_addr:        .res 2
31

32
.segment "RODATA"
33
.define M(val)                 .lobyte(val * -1)
34
.define VADDR(val)        .lobyte(val - vector_dic)
35

36
vector_dic:
37
vector_dic_00:        .byte        6,        0,        VADDR(vector_dic_24),        VADDR(vector_dic_00)
38
vector_dic_04:        .byte        5,        3,        VADDR(vector_dic_20),        VADDR(vector_dic_44)
39
vector_dic_08:        .byte        3,        5,        VADDR(vector_dic_16),        VADDR(vector_dic_40)
40
vector_dic_12:        .byte        0,        6,        VADDR(vector_dic_12),        VADDR(vector_dic_36)
41
vector_dic_16:        .byte        M(3),        5,        VADDR(vector_dic_08),        VADDR(vector_dic_32)
42
vector_dic_20:        .byte        M(5),        3,        VADDR(vector_dic_04),        VADDR(vector_dic_28)
43
vector_dic_24:        .byte        M(6),        0,        VADDR(vector_dic_00),        VADDR(vector_dic_24)
44
vector_dic_28:        .byte        M(5),        M(3),        VADDR(vector_dic_44),        VADDR(vector_dic_20)
45
vector_dic_32:        .byte        M(3),        M(5),        VADDR(vector_dic_40),        VADDR(vector_dic_16)
46
vector_dic_36:        .byte        0,        M(6),        VADDR(vector_dic_36),        VADDR(vector_dic_12)
47
vector_dic_40:        .byte        3,        M(5),        VADDR(vector_dic_32),        VADDR(vector_dic_08)
48
vector_dic_44:        .byte        5,        M(3),        VADDR(vector_dic_28),        VADDR(vector_dic_04)
49

50
palette:        .byte $0F, $11, $21, $31
51

52
.segment "CODE"
53
.proc reset_vector
54
        sei
1✔
55
        lda #$40
1✔
56
        sta APU_PAD2
1✔
57
        lda #0
1✔
58
        sta PPU_CTRL1
1✔
59
        sta PPU_CTRL2
1✔
60
        sta APU_CHANCTRL
1✔
61
        sta APU_MODCTRL
1✔
62
        cld
1✔
63
        ldx #$FF
1✔
64
        txs
1✔
65

66
        bit PPU_STATUS
1✔
67
        :
68
        bit PPU_STATUS
1✔
69
        bpl :-
1✔
70

71
        ldx #0
1✔
72
        :
73
        .repeat 8, index
74
                sta index * $100, x
2,048✔
75
        .endrepeat
76
        inx
256✔
77
        bne :-
256✔
78

79
        lda #$FF
1✔
80
        .repeat 64, index
81
                sta oam + index * 4
64✔
82
        .endrepeat
83

84
        lda #$3f
1✔
85
        sta PPU_VRAM_ADDR2
1✔
86
        lda #$10
1✔
87
        sta PPU_VRAM_ADDR2
1✔
88
        .repeat 4, index
89
                lda palette + index
4✔
90
                sta PPU_VRAM_IO
4✔
91
        .endrepeat
92

93
        lda #128
1✔
94
        sta pos + 0
1✔
95
        sta pos + 1
1✔
96
        lda #0
1✔
97
        sta vector_addr
1✔
98

99
        lda #%10000000
1✔
100
        sta PPU_CTRL1
1✔
101
        lda #%00010000
1✔
102
        sta PPU_CTRL2
1✔
103

104
        main_loop:
105
        jsr control
×
106
        jmp main_loop
×
107
.endproc
108

109
.proc control
110
        not_pushed:
111
        jsr read_joypad_a_key
13✔
112
        bcc not_pushed
13✔
113

114
        pushing:
115
        jsr read_joypad_a_key
308✔
116
        bcs pushing
307✔
117

118
        lda vector_addr
8✔
119
        clc
8✔
120
        adc #4
8✔
121
        cmp #VADDR(vector_dic_44) + 1
8✔
122
        bmi save_id
8✔
123
        lda #0
×
124
        save_id:
125
        sta vector_addr
12✔
126
        rts
8✔
127
.endproc
128

129
.proc read_joypad_a_key
130
        lda #1
320✔
131
        sta APU_PAD1
316✔
132
        lda #0
316✔
133
        sta APU_PAD1
316✔
134
        .repeat 2, index
135
                lda APU_PAD1 + index
14✔
136
                lsr
330✔
137
                bcs read_end
330✔
138
        .endrepeat
316✔
139
        read_end:
140
        rts
316✔
141
.endproc
142

143
.proc nmi_vector
144
        pha
5✔
145
        txa
5✔
146
        pha
5✔
147
        tya
5✔
148
        pha
5✔
149
        lda nmi_lock
5✔
150
        bne nmi_end
5✔
151
        inc nmi_lock
5✔
152
        jsr update_oam
5✔
153
        dec nmi_lock
5✔
154
        nmi_end:
155
        pla
5✔
156
        tay
5✔
157
        pla
5✔
158
        tax
5✔
159
        pla
5✔
160
        rti
5✔
161
.endproc
162

163
.proc update_oam
164
        jsr move_pos
5✔
165
        jsr check_collision
5✔
166
        lda pos + 0
5✔
167
        sta oam + 3
5✔
168
        lda pos + 1
5✔
169
        sta oam + 0
5✔
170
        lda #.hibyte(oam)
5✔
171
        sta APU_SPR_DMA
5✔
172
        rts
5✔
173
.endproc
174

175
.proc move_pos
176
        ldx vector_addr
5✔
177
        .repeat 2, index
178
                lda pos + index
5✔
179
                sta old_pos + index
10✔
180
                clc
10✔
181
                adc vector_dic + index, x
10✔
182
                sta pos + index
10✔
183
        .endrepeat
5✔
184
        rts
5✔
185
.endproc
186

187
.proc check_collision
188
        .repeat 2, index
189
                .scope
190
                        ldx vector_addr
73✔
191

192
                        lda vector_dic + index, x
72✔
193
                        bpl move_plus
72✔
194

195
                        lda #BORDER_MIN
3✔
196
                        cmp pos + index
3✔
197
                        bmi end_check
3✔
198
                        cmp old_pos + index
3✔
199
                        bpl end_check
3✔
200
                        jmp turn
×
201

202
                        move_plus:
203
                        lda #BORDER_MAX - 1
69✔
204
                        cmp pos + index
69✔
205
                        bpl end_check
69✔
206
                        cmp old_pos + index
69✔
207
                        bmi end_check
69✔
208

209
                        turn:
210
                        lda vector_dic + 2 + index, x
1✔
211
                        sta vector_addr
1✔
212

213
                        end_check:
214
                .endscope
215
        .endrepeat
216
        rts
36✔
217
.endproc
218

219
.proc irq_vector
220
        pha
1✔
221
        txa
1✔
222
        pha
1✔
223
        tya
1✔
224
        pha
1✔
225
        lda irq_lock
1✔
226
        bne irq_end
1✔
227
        inc irq_lock
1✔
228
        ldy #0
1✔
229
        dec irq_lock
1✔
230
        irq_end:
231
        pla
1✔
232
        tay
1✔
233
        pla
1✔
234
        tax
1✔
235
        pla
1✔
236
        rti
1✔
237
.endproc
238

239
.proc write_rodata
240
        lda #$55
1✔
241
        sta vector_dic
1✔
242
        rts
1✔
243
.endproc
244

245
.proc write_out_of_segment
246
        lda #$55
3✔
247
        sta $7fff
3✔
248
        rts
3✔
249
.endproc
250

251
.proc illegal_instruction
252
        .byte        $ff
1✔
253
.endproc
254

255
.proc update_stack_value
256
        pla
1✔
257
        clc
1✔
258
        adc #1
1✔
259
        pha
1✔
260
        lda #3
1✔
261
        pha
1✔
262
        end_update_stack:
263
.endproc
264

265
.proc call_subproc
266
        jsr subproc
×
267
        rts_from_subproc:
268
        beq end_call_subproc
2✔
269
        ldx #3
1✔
270
        end_call_subproc:
271
        rts
2✔
272
.endproc
273

274
.proc subproc
275
        ldx #2
2✔
276
        cmp #1
2✔
277
        rts
2✔
278
.endproc
279

280
.proc unauthorized_access
281
        lda old_pos
1✔
282
        lda unauthorized_access
1✔
283
        rts
1✔
284
.endproc
285

286
.proc uninitialized_read
287
        lda pos
1✔
288
        lda pos + 1
1✔
289
        rts
1✔
290
.endproc
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc