-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplayfield.dasm
105 lines (88 loc) · 1.81 KB
/
playfield.dasm
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
101
102
103
104
processor 6502
include "vcs.h"
include "macro.h"
seg Code
org $f000
Start:
CLEAN_START
; Blue for background
lda #$80
sta COLUBK
; Yellow for playfield
lda #$1F
sta COLUPF
NextFrame:
lda #2
sta VSYNC
sta VBLANK
; Wait for VSYNC
sta WSYNC
sta WSYNC
sta WSYNC
lda #0
sta VSYNC
; Wait for VBLANK
REPEAT 37
sta WSYNC
REPEND
sta VBLANK
; Setup playfield
ldx #%00000001 ; CTRLPF register (set D0 bit means reflect)
stx CTRLPF
; Visible part
; 7 lines of background color
ldx #0
stx PF0
stx PF1
stx PF2
REPEAT 7
sta WSYNC
REPEND
; 7 lines of yellow "line"
ldx #%11100000
stx PF0
ldx #$FF
stx PF1
stx PF2
REPEAT 7
sta WSYNC
REPEND
; 164 lines of yellow "wall pattern"
ldx #%01100000
stx PF0
ldx #$00
stx PF1
ldx #%10000000
stx PF2
REPEAT 164
sta WSYNC
REPEND
; 7 lines of yellow "line"
ldx #%11100000
stx PF0
ldx #$FF
stx PF1
stx PF2
REPEAT 7
sta WSYNC
REPEND
; 7 lines of background color
ldx #0
stx PF0
stx PF1
stx PF2
REPEAT 7
sta WSYNC
REPEND
; OVERSCAN
lda #2
sta VBLANK
REPEAT 30
sta WSYNC
REPEND
lda #0
sta VBLANK
jmp NextFrame
org $fffc
.word Start ; reset vector
.word Start ; BRK vector