Mercurial > repos > blastem
comparison tmss.s68 @ 2331:f500831f7fb4
Fix missing init in fake TMSS
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 23 Aug 2023 22:20:48 -0700 |
parents | 5b51f03b2227 |
children |
comparison
equal
deleted
inserted
replaced
2330:959a3e9aaac5 | 2331:f500831f7fb4 |
---|---|
93 dc.b " " | 93 dc.b " " |
94 dc.b " " | 94 dc.b " " |
95 dc.b " " | 95 dc.b " " |
96 dc.b " " | 96 dc.b " " |
97 dc.b "JUE " | 97 dc.b "JUE " |
98 | 98 |
99 frame_counter equ $FFFF8000 | 99 frame_counter equ $FFFF8000 |
100 ram_code equ $FFFF8002 | 100 ram_code equ $FFFF8002 |
101 | 101 |
102 empty_handler: | 102 empty_handler: |
103 rte | 103 rte |
116 move.w #$8B00, (a1) ;full screen scroll | 116 move.w #$8B00, (a1) ;full screen scroll |
117 move.w #$8C81, (a1) ;40 cell mode, no interlace | 117 move.w #$8C81, (a1) ;40 cell mode, no interlace |
118 move.w #$8D00, (a1) ;hscroll table at 0 | 118 move.w #$8D00, (a1) ;hscroll table at 0 |
119 move.w #$8F02, (a1) ;autoinc 2 | 119 move.w #$8F02, (a1) ;autoinc 2 |
120 move.w #$9011, (a1) ;64x64 scroll size | 120 move.w #$9011, (a1) ;64x64 scroll size |
121 | |
122 moveq.l #0, d0 | |
123 ;init palette | |
121 move.l #$C0000000, (a1) | 124 move.l #$C0000000, (a1) |
122 move.w #$000, (a0) | 125 move.w d0, (a0) |
123 move.w #$EEE, (a0) | 126 move.w #$EEE, (a0) |
124 | 127 |
125 ;clear scroll table | 128 ;clear scroll table |
126 move.l #$40000000, (a1) | 129 move.l #$40000000, (a1) |
127 move.l #0, (a0) | 130 move.l d0, (a0) |
131 | |
132 ;clear vsram | |
133 move.l #$40000010, (a1) | |
134 move.l d0, (a0) | |
135 | |
136 ;clear SAT | |
137 move.l #$40000003, (a1) | |
138 move.l d0, (a0) | |
139 move.l d0, (a0) | |
128 | 140 |
129 ;load tiles | 141 ;load tiles |
130 move.l #$44000000, (a1) | 142 move.l #$44000000, (a1) |
131 lea font, a2 | 143 lea font, a2 |
132 move.w #((fontend-font)/4 - 1), d0 | 144 move.w #((fontend-font)/4 - 1), d0 |
142 move.w d0, (a0) | 154 move.w d0, (a0) |
143 dbra d1, ploop | 155 dbra d1, ploop |
144 move.l #$45960002, d7 | 156 move.l #$45960002, d7 |
145 move.l d7, (a1) | 157 move.l d7, (a1) |
146 move.l #$800000, d6 | 158 move.l #$800000, d6 |
147 | 159 |
148 lea ram_code_src(pc), a6 | 160 lea ram_code_src(pc), a6 |
149 lea ram_code.w, a5 | 161 lea ram_code.w, a5 |
150 moveq #(font-ram_code_src)/2-1, d0 | 162 moveq #(font-ram_code_src)/2-1, d0 |
151 copy: | 163 copy: |
152 move.w (a6)+, (a5)+ | 164 move.w (a6)+, (a5)+ |
172 bne.s is_bad | 184 bne.s is_bad |
173 is_good: | 185 is_good: |
174 move.b d0, (a4) | 186 move.b d0, (a4) |
175 lea good(pc), a6 | 187 lea good(pc), a6 |
176 bsr.s print_string | 188 bsr.s print_string |
177 | 189 |
178 add.l d6, d7 | 190 add.l d6, d7 |
179 move.l d7, (a1) | 191 move.l d7, (a1) |
180 bsr.s print_string | 192 bsr.s print_string |
181 | 193 |
182 add.l d6, d7 | 194 add.l d6, d7 |
183 move.l d7, (a1) | 195 move.l d7, (a1) |
184 bsr.s print_string | 196 bsr.s print_string |
185 | 197 |
198 move.w #0, frame_counter.w | |
186 move.w #$8164, (a1) | 199 move.w #$8164, (a1) |
187 move #$2500, SR | 200 move #$2500, SR |
188 wait: | 201 wait: |
189 cmp.w frame_counter.w, d3 | 202 cmp.w frame_counter.w, d3 |
190 bne.s wait | 203 bne.s wait |
193 move.l $0.w, a7 | 206 move.l $0.w, a7 |
194 move.l $4.w, a6 | 207 move.l $4.w, a6 |
195 move.w #$8104, (a1) | 208 move.w #$8104, (a1) |
196 move.l d0, (a3) | 209 move.l d0, (a3) |
197 jmp (a6) | 210 jmp (a6) |
198 | 211 |
199 is_bad: | 212 is_bad: |
200 move.b d0, (a4) | 213 move.b d0, (a4) |
201 lea bad(pc), a6 | 214 lea bad(pc), a6 |
202 bsr.s print_string | 215 bsr.s print_string |
203 | 216 |
204 add.l d6, d7 | 217 add.l d6, d7 |
205 move.l d7, (a1) | 218 move.l d7, (a1) |
206 bsr.s print_string | 219 bsr.s print_string |
207 | 220 |
208 add.l d6, d7 | 221 add.l d6, d7 |
209 move.l d7, (a1) | 222 move.l d7, (a1) |
210 bsr.s print_string | 223 bsr.s print_string |
211 | 224 |
212 move.w #$8144, (a1) | 225 move.w #$8144, (a1) |
213 forever: | 226 forever: |
214 bra.s forever | 227 bra.s forever |
215 | 228 |
216 | 229 |
232 add.w d0, d1 | 245 add.w d0, d1 |
233 move.w d1, (a0) | 246 move.w d1, (a0) |
234 bra .loop | 247 bra .loop |
235 .end | 248 .end |
236 rts | 249 rts |
237 | 250 |
238 good: | 251 good: |
239 dc.b " BLASTEM THINKS", 0 | 252 dc.b " BLASTEM THINKS", 0 |
240 dc.b " THAT THIS CART", 0 | 253 dc.b " THAT THIS CART", 0 |
241 dc.b " TASTES DELICIOUS!", 0 | 254 dc.b " TASTES DELICIOUS!", 0 |
242 | 255 |
243 bad: | 256 bad: |
244 dc.b " *sniff* *sniff*", 0 | 257 dc.b " *sniff* *sniff*", 0 |
245 dc.b " something doesn't", 0 | 258 dc.b " something doesn't", 0 |
246 dc.b " smell right...", 0 | 259 dc.b " smell right...", 0 |
247 | 260 |