annotate controller.s16 @ 39:52d601e13ea4

WIP documentation
author Michael Pavone <pavone@retrodev.com>
date Wed, 06 Apr 2016 12:15:25 -0700
parents 44c057a640b2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 ldim vectors, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 ldimh vectors, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 setvbr r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 ;load palette
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 ldim 0, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 ldimh $FF,r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 outi $E, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 ldim colors, r1
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 ldimh colors, r1
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 ;copy 3 colors for 1st palette
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 ldim 0, r2
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 ldim 3, r3
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 ldim copy_data, r12
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 ldimh copy_data, r12
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 call r12, r13
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 ;setup writes to 2nd palette
34
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
19 ldim $20, r0
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 ldimh $FF,r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 outi $E, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 ;copy 3 colors for 2nd palette
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24 ldim 3, r3
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 call r12, r13
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26
35
5a5e02d1acf1 No need to initialize name table with starting values other than zero as we copy the relevant parts during VBlank anyway
Michael Pavone <pavone@retrodev.com>
parents: 34
diff changeset
27
5a5e02d1acf1 No need to initialize name table with starting values other than zero as we copy the relevant parts during VBlank anyway
Michael Pavone <pavone@retrodev.com>
parents: 34
diff changeset
28 ;zero out name table
5a5e02d1acf1 No need to initialize name table with starting values other than zero as we copy the relevant parts during VBlank anyway
Michael Pavone <pavone@retrodev.com>
parents: 34
diff changeset
29 ldim $00, r0
5a5e02d1acf1 No need to initialize name table with starting values other than zero as we copy the relevant parts during VBlank anyway
Michael Pavone <pavone@retrodev.com>
parents: 34
diff changeset
30 ldim $60, r0
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 outi $E, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 ldim write_zeros, r11
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
34 ldimh write_zeros, r11
35
5a5e02d1acf1 No need to initialize name table with starting values other than zero as we copy the relevant parts during VBlank anyway
Michael Pavone <pavone@retrodev.com>
parents: 34
diff changeset
35 ldim 0, r3
5a5e02d1acf1 No need to initialize name table with starting values other than zero as we copy the relevant parts during VBlank anyway
Michael Pavone <pavone@retrodev.com>
parents: 34
diff changeset
36 ldimh $20, r3
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
37 call r11, r13
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
38
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
39 ;setup writes to tile data area
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
40 ldim 0, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
41 outi $E, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
42
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
43 ;zero out first tile
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
44 ldim $10, r3
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
45 call r11, r13
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47 ;copy tiles
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
48 ldim $C0, r3
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
49 ldimh 0, r3
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
50 call r12, r13
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
51
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
52
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
53
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
54 ;copy tile map to ram
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
55 ldim 0, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
56 ldimh $C0, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
57
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
58 ldim map, r1
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
59 ldimh map, r1
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
60
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
61 ldim 0, r2
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
62 ldim 27, r3
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
63
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
64 ldim memcpy16, r10
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
65 ldimh memcpy16, r10
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
66 call r10, r13
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
67
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
68 ;make a second copy of tile map for controller #2
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
69 ldim $36, r0
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
70 ldimh $C0, r0
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
71 ldim 0, r2
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
72 ldim 27, r3
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
73 call r10, r13
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
74
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
75 ;enable vertical interrupts
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
76 ori 2, sr
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
77
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
78 ;vscroll reg
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
79 ldim 0, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
80 ldimh $C6, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
81 outi $C, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
82 ;hscroll reg + enable display
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
83 ldim 0, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
84 ldimh $80, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
85 outi $D, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
86
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
87 forever:
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
88 bra forever
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
89
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
90 copy_data:
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
91 ld16 r1, r2, r4
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
92 outi $F, r4
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
93
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
94 addi 2, r2
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
95 addi -1, r3
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
96 bne copy_data
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
97 mov r13, pc
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
98
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
99 memcpy16:
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
100 ld16 r1, r2, r4
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
101 str16 r0, r2, r4
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
102
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
103 addi 2, r2
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
104 addi -1, r3
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
105 bne memcpy16
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
106 mov r13, pc
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
107
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
108 write_zeros:
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
109 ldim 0, r4
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
110 zloop:
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
111 outi $f, r4
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
112
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
113 addi -1, r3
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
114 bne zloop
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
115 mov r13, pc
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
116
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
117
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
118
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
119 vectors:
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
120 dc.w 0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
121 dc.w vint_handler
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
122
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
123 vint_handler
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
124 setuer r13
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
125 ;handler code goes here
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
126
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
127 ;VRAM address of first element of diagram
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
128 ldim $84, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
129 ldimh $60, r0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
130
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
131 ;distance between rows
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
132 ldim 128, r5
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
133 ldimh 0, r5
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
134
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
135 ;RAM address of map
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
136 ldim 0, r1
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
137 ldimh $C0, r1
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
138
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
139 ;index
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
140 ldim 0, r2
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
141
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
142 ;iteration count
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
143 ldim 3, r6
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
144
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
145 ldim copy_rows, r9
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
146 ldimh copy_rows, r9
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
147
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
148 call r9, r8
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
149
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
150 ;VRAM address of first element of 2nd diagram
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
151 ldim $AC, r0
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
152 ldimh $60, r0
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
153 ldim 3, r6
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
154 call r9, r8
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
155
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
156
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
157
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
158
34
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
159 ;update map for next frame
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
160
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
161 ;read controller 1
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
162 ini $0, r0
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
163 ;r1 = map
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
164
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
165 ldim update_map, r10
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
166 ldimh update_map, r10
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
167 call r10, r10
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
168
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
169 ;read controller 2
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
170 ini $1, r0
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
171 ldim $36, r1
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
172 ldimh $C0, r1
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
173
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
174 ldim update_map, r10
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
175 ldimh update_map, r10
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
176 call r10, r10
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
177
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
178 reti r13
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
179
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
180 update_map:
34
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
181 ldim offsets, r2
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
182 ldimh offsets, r2
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
183 ;index
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
184 ldim 0, r3
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
185 ;mask to test bits
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
186 ldim 1, r4
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
187 ;constant $2000
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
188 ldim 0, r9
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
189 ldimh $20, r9
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
190 ;limit
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
191 ldim 12, r5
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
192 modify_loop
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
193 ;load offset
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
194 ld8 r2, r3, r6
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
195 ;load existing value
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
196 ld16 r1, r6, r7
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
197 ;test for button pressed
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
198 and r0, r4, r8
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
199 beq not_pressed
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
200 or r9, r7, r7
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
201 bra store_modified
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
202 not_pressed
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
203 not r9, r9
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
204 and r9, r7, r7
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
205 not r9, r9
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
206 store_modified
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
207 str16 r1, r6, r7
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
208 ;shift mask to the left
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
209 add r4, r4, r4
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
210 addi 1, r3
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
211 cmp r3, r5
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
212 bne modify_loop
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
213
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
214 mov r10, pc
34
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
215
37
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
216 copy_rows
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
217 outi $E, r0
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
218
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
219 ;copy row of updated tile map
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
220 ldim 9, r3
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
221 call r12, r13
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
222
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
223 add r5, r0, r0
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
224 addi -1, r6
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
225 bne copy_rows
44c057a640b2 Display state of both controllers in controller test ROM
Michael Pavone <pavone@retrodev.com>
parents: 35
diff changeset
226 mov r8, pc
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
227
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
228 offsets:
34
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
229 dc.b 34 ;Z
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
230 dc.b 32 ;Y
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
231 dc.b 30 ;X
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
232 dc.b 52 ;C
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
233 dc.b 50 ;B
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
234 dc.b 48 ;A
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
235 dc.b 44 ;Mode
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
236 dc.b 26 ;Start
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
237
34
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
238 dc.b 22 ;Right
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
239 dc.b 18 ;Left
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
240 dc.b 38 ;Down
4a093f15fb1b Finish controller test for controller 1
Michael Pavone <pavone@retrodev.com>
parents: 32
diff changeset
241 dc.b 2 ;Up
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
242
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
243 colors:
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
244 dc.w $000
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
245 dc.w $777
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
246 dc.w $333
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
247 ;second palette
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
248 dc.w $000
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
249 dc.w $FFF
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
250 dc.w $00F
35
5a5e02d1acf1 No need to initialize name table with starting values other than zero as we copy the relevant parts during VBlank anyway
Michael Pavone <pavone@retrodev.com>
parents: 34
diff changeset
251 tiles:
5a5e02d1acf1 No need to initialize name table with starting values other than zero as we copy the relevant parts during VBlank anyway
Michael Pavone <pavone@retrodev.com>
parents: 34
diff changeset
252 incbin buttons.tiles
32
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
253 map:
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
254 dc.w 0, 1, 0, 0, 0, 0, 0, 0, 0
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
255 dc.w 3, 0, 4, 0, 5, 0, 7, 8, 9
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
256 dc.w 0, 2, 0, 0, 6, 0, 10, 11, 12
8642cb2ceb89 WIP button test ROM
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
257