source: buchla-68k/ram/sreset.s@ 27c8d40

Last change on this file since 27c8d40 was 8325447, checked in by Thomas Lopatic <thomas@…>, 7 years ago

Removed _ prefix.

  • Property mode set to 100644
File size: 26.5 KB
RevLine 
[4f508e6]1| ------------------------------------------------------------------------------
2| sreset.s -- reset score highlighting
3| Version 14 -- 1988-07-28 -- D.N. Lynx Crowe
4| ------------------------------------------------------------------------------
[f40a309]5 .text
[4f508e6]6
[8325447]7 .xdef sreset | sreset()
8
9 .xref vputa | vputa(sbase, row, col, attrib)
10
11 .xref ndisp | WORD - display number
12 .xref obj8 | LONG - object base address
13 .xref vrbw08 | WORD - detail word for bit 8
14 .xref vrbw09 | WORD - detail word for bit 9
15 .xref vrbw10 | WORD - detail word for bit 10
16 .xref vrbw11 | WORD - detail word for bit 11
17 .xref vrbw12 | WORD - detail word for bit 12
18 .xref vrbw13 | WORD - detail word for bit 13
19 .xref vrbw14 | WORD - detail word for bit 14
20 .xref vrbw15 | WORD - detail word for bit 15
21 .xref vrcw | WORD - video reset control word
[4f508e6]22
23ROW = 4
24COL = 6
25ATR = 8
26
27AT01 = 0x0014
28AT04 = 0x0013
29AT05 = 0x0014
30AT06 = 0x0013
31AT07 = 0x0014
32AT08 = 0x0013
33AT09 = 0x0014
34AT10 = 0x0013
35AT11 = 0x0012
36AT12 = 0x0012
37
[f40a309]38 .page
[4f508e6]39
40| sreset() -- reset highlighting
41| -------- ------------------
[8325447]42sreset: link a6,#0 | link stack frame
43 cmp.w #2,ndisp | see if we should update display
[4f508e6]44 bne srsexit | jump if not
45
[8325447]46 move.w vrcw,d0 | get and check vrcw
[4f508e6]47 bne srs0 | jump if something to do
48
49srsexit: unlk a6 | unlink stack frame
50 rts | return to caller
51
52srs0: move.w sr,d1 | <<<<< disable interrupts >>>>>
53 ori.w #0x0700,sr | ...
54
[8325447]55 move.w vrcw,vrcw | make local copies of control variables
56 clr.w vrcw | ... and clear them for the next pass
57 move.w vrbw08,vrbw08 | ...
58 clr.w vrbw08 | ...
59 move.w vrbw09,vrbw09 | ...
60 clr.w vrbw09 | ...
61 move.w vrbw10,vrbw10 | ...
62 clr.w vrbw10 | ...
63 move.w vrbw11,vrbw11 | ...
64 clr.w vrbw11 | ...
65 move.w vrbw12,vrbw12 | ...
66 clr.w vrbw12 | ...
67 move.w vrbw13,vrbw13 | ...
68 clr.w vrbw13 | ...
69 move.w vrbw14,vrbw14 | ...
70 clr.w vrbw14 | ...
71 move.w vrbw15,vrbw15 | ...
72 clr.w vrbw15 | ...
[4f508e6]73
74 move.w d1,sr | <<<<< restore interrupts >>>>>
75
76| Setup STACK for subsequent calls to vputa(sbase, row, col, atr):
77
78| 0(a7) sbase
79
80| 4(a7) row ROW
81| 6(a7) col COL
82| 8(a7) atr ATR
83
84 clr.w -(a7) | put dummy attribute on stack
85 clr.w -(a7) | put dummy column on stack
86 clr.w -(a7) | put dummy row on stack
[8325447]87 move.l obj8,-(a7) | put sbase on stack
[4f508e6]88
[f40a309]89 .page
[4f508e6]90
91| assignment
92| ----------
93 btst #0,d0 | assignment ?
94 beq srs1 | jump if not
95
96 move.w #AT04,ATR(a7) | put attribute on stack
97 move.w #1,ROW(a7) | put row on stack
98 move.w #11,COL(a7) | put 1st column on stack
[8325447]99 jsr vputa | reset first column
[4f508e6]100 move.w #12,COL(a7) | put 2nd column on stack
[8325447]101 jsr vputa | reset second column
[4f508e6]102 move.w vrcw,d0 | restore vrcw to d0
103
104| tuning
105| ------
106srs1: btst #1,d0 | tuning ?
107 beq srs2 | jump if not
108
109 move.w #AT05,ATR(a7) | put attribute on stack
110 move.w #1,ROW(a7) | put row on stack
111 move.w #19,COL(a7) | put column on stack
[8325447]112 jsr vputa | reset column
[4f508e6]113 move.w vrcw,d0 | restore vrcw to d0
114
115| tempo
116| -----
117srs2: btst #2,d0 | tempo ?
118 beq srs3 | jump if not
119
120 move.w #AT06,ATR(a7) | put attribute on stack
121 move.w #1,ROW(a7) | put row on stack
122 move.w #27,COL(a7) | put 1st column on stack
[8325447]123 jsr vputa | reset first column
[4f508e6]124 move.w #28,COL(a7) | put 2nd column on stack
[8325447]125 jsr vputa | reset second column
[4f508e6]126 move.w #29,COL(a7) | put 3rd column on stack
[8325447]127 jsr vputa | reset third column
[4f508e6]128 move.w vrcw,d0 | restore vrcw to d0
129
[f40a309]130 .page
[4f508e6]131
132| interpolate
133| -----------
134srs3: btst #3,d0 | interpolate ?
135 beq srs4 | jump if not
136
137 move.w #AT07,ATR(a7) | put attribute on stack
138 move.w #1,ROW(a7) | put row on stack
139 move.w #35,COL(a7) | put 1st column on stack
[8325447]140 jsr vputa | reset first column
[4f508e6]141 move.w #36,COL(a7) | put 2nd column on stack
[8325447]142 jsr vputa | reset second column
[4f508e6]143 move.w #37,COL(a7) | put 3rd column on stack
[8325447]144 jsr vputa | reset third column
[4f508e6]145 move.w #38,COL(a7) | put 4th column on stack
[8325447]146 jsr vputa | reset fourth column
[4f508e6]147 move.w vrcw,d0 | restore vrcw to d0
148
149| section begin
150| -------------
151srs4: btst #4,d0 | section begin ?
152 beq srs5 | jump if not
153
154 move.w #AT01,ATR(a7) | put attribute on stack
155 move.w #0,ROW(a7) | put row on stack
156 move.w #6,COL(a7) | put 1st column on stack
[8325447]157 jsr vputa | reset first column
[4f508e6]158 move.w #7,COL(a7) | put 2nd column on stack
[8325447]159 jsr vputa | reset second column
[4f508e6]160
[f40a309]161 .page
[4f508e6]162
163| punch in
164| --------
165srs5: btst #5,d0 | punch in ?
166 beq srs6 | jump if not
167
168 move.w #AT09,ATR(a7) | put attribute on stack
169 move.w #1,ROW(a7) | put row on stack
170 move.w #50,COL(a7) | put 1st column on stack
[8325447]171 jsr vputa | reset first column
[4f508e6]172 move.w #51,COL(a7) | put 2nd column on stack
[8325447]173 jsr vputa | reset second column
[4f508e6]174 move.w vrcw,d0 | restore vrcw to d0
175
176| punch out
177| ---------
178srs6: btst #6,d0 | punch out ?
179 beq srs7 | jump if not
180
181 move.w #AT09,ATR(a7) | put attribute on stack
182 move.w #1,ROW(a7) | put row on stack
183 move.w #53,COL(a7) | put 1st column on stack
[8325447]184 jsr vputa | reset first column
[4f508e6]185 move.w #54,COL(a7) | put 2nd column on stack
[8325447]186 jsr vputa | reset second column
[4f508e6]187 move.w #55,COL(a7) | put 3rd column on stack
[8325447]188 jsr vputa | reset third column
[4f508e6]189 move.w vrcw,d0 | restore vrcw to d0
190
191| Output
192| ------
193srs7: btst #7,d0 | output ?
194 beq srs8 | jump if not
195
196 move.w #AT10,ATR(a7) | put attribute on stack
197 move.w #1,ROW(a7) | put row on stack
198 move.w #57,COL(a7) | put 1st column on stack
[8325447]199 jsr vputa | reset first column
[4f508e6]200 move.w #58,COL(a7) | put 2nd column on stack
[8325447]201 jsr vputa | reset second column
[4f508e6]202 move.w #59,COL(a7) | put 3rd column on stack
[8325447]203 jsr vputa | reset third column
[4f508e6]204 move.w #60,COL(a7) | put 4th column on stack
[8325447]205 jsr vputa | reset fourth column
[4f508e6]206 move.w #61,COL(a7) | put 5th column on stack
[8325447]207 jsr vputa | reset fifth column
[4f508e6]208 move.w #62,COL(a7) | put 6th column on stack
[8325447]209 jsr vputa | reset sixth column
[4f508e6]210 move.w vrcw,d0 | restore vrcw to d0
211
[f40a309]212 .page
[4f508e6]213
214| instrument
215| ----------
216srs8: btst #8,d0 | instrument ?
217 beq srs9 | jump if not
218
219 move.w #2,ROW(a7) | put row on stack
220 move.w #AT11,ATR(a7) | put attribute on stack
221 btst #0,vrbw08+1 | group 1 ?
222 beq srs8a | jump if not
223
224 move.w #7,COL(a7) | put 1st column on stack
[8325447]225 jsr vputa | reset first column
[4f508e6]226 move.w #8,COL(a7) | put 2nd column on stack
[8325447]227 jsr vputa | reset second column
[4f508e6]228
229srs8a: btst #1,vrbw08+1 | group 2 ?
230 beq srs8b | jump if not
231
232 move.w #12,COL(a7) | put 1st column on stack
[8325447]233 jsr vputa | reset first character
[4f508e6]234 move.w #13,COL(a7) | put 2nd column on stack
[8325447]235 jsr vputa | reset second character
[4f508e6]236
237srs8b: btst #2,vrbw08+1 | group 3 ?
238 beq srs8c | jump if not
239
240 move.w #17,COL(a7) | put 1st column on stack
[8325447]241 jsr vputa | reset first character
[4f508e6]242 move.w #18,COL(a7) | put 2nd column on stack
[8325447]243 jsr vputa | reset second character
[4f508e6]244
245srs8c: btst #3,vrbw08+1 | group 4 ?
246 beq srs8d | jump if not
247
248 move.w #22,COL(a7) | put 1st column on stack
[8325447]249 jsr vputa | reset first character
[4f508e6]250 move.w #23,COL(a7) | put 2nd column on stack
[8325447]251 jsr vputa | reset second character
[4f508e6]252
[f40a309]253 .page
[4f508e6]254
255srs8d: btst #4,vrbw08+1 | group 5 ?
256 beq srs8e | jump if not
257
258 move.w #27,COL(a7) | put 1st column on stack
[8325447]259 jsr vputa | reset first character
[4f508e6]260 move.w #28,COL(a7) | put 2nd column on stack
[8325447]261 jsr vputa | reset second character
[4f508e6]262
263srs8e: btst #5,vrbw08+1 | group 6 ?
264 beq srs8f | jump if not
265
266 move.w #32,COL(a7) | put 1st column on stack
[8325447]267 jsr vputa | reset first character
[4f508e6]268 move.w #33,COL(a7) | put 2nd column on stack
[8325447]269 jsr vputa | reset second character
[4f508e6]270
271srs8f: btst #6,vrbw08+1 | group 7 ?
272 beq srs8g | jump if not
273
274 move.w #37,COL(a7) | put 1st column on stack
[8325447]275 jsr vputa | reset first character
[4f508e6]276 move.w #38,COL(a7) | put 2nd column on stack
[8325447]277 jsr vputa | reset second character
[4f508e6]278
279srs8g: btst #7,vrbw08+1 | group 8 ?
280 beq srs8h | jump if not
281
282 move.w #42,COL(a7) | put 1st column on stack
[8325447]283 jsr vputa | reset first character
[4f508e6]284 move.w #43,COL(a7) | put 2nd column on stack
[8325447]285 jsr vputa | reset second character
[4f508e6]286
[f40a309]287 .page
[4f508e6]288
289srs8h: btst #0,vrbw08 | group 9
290 beq srs8j | jump if not
291
292 move.w #47,COL(a7) | put 1st column on stack
[8325447]293 jsr vputa | reset first character
[4f508e6]294 move.w #48,COL(a7) | put 2nd column on stack
[8325447]295 jsr vputa | reset second character
[4f508e6]296
297srs8j: btst #1,vrbw08 | group 10
298 beq srs8k | jump if not
299
300 move.w #52,COL(a7) | put 1st column on stack
[8325447]301 jsr vputa | reset first character
[4f508e6]302 move.w #53,COL(a7) | put 2nd column on stack
[8325447]303 jsr vputa | reset second character
[4f508e6]304
305srs8k: btst #2,vrbw08 | group 11
306 beq srs8m | jump if not
307
308 move.w #57,COL(a7) | put 1st column on stack
[8325447]309 jsr vputa | reset first character
[4f508e6]310 move.w #58,COL(a7) | put 2nd column on stack
[8325447]311 jsr vputa | reset second character
[4f508e6]312
313srs8m: btst #3,vrbw08 | group 12
314 beq srs8x | jump if not
315
316 move.w #62,COL(a7) | put 1st column on stack
[8325447]317 jsr vputa | reset first character
[4f508e6]318 move.w #63,COL(a7) | put 2nd column on stack
[8325447]319 jsr vputa | reset second character
[4f508e6]320
321srs8x: move.w vrcw,d0 | restore vrcw to d0
322
[f40a309]323 .page
[4f508e6]324
325| transpose
326| ---------
327srs9: btst #9,d0 | transpose ?
328 beq srs10 | jump if not
329
330 move.w #AT11,ATR(a7) | put attribute on stack
331 move.w #3,ROW(a7) | put row on stack
332 btst #0,vrbw09+1 | group 1 ?
333 beq srs9a | jump if not
334
335 move.w #5,COL(a7) | put 1st column on stack
[8325447]336 jsr vputa | reset first column
[4f508e6]337 move.w #6,COL(a7) | put 2nd column on stack
[8325447]338 jsr vputa | reset second column
[4f508e6]339 move.w #7,COL(a7) | put 3rd column on stack
[8325447]340 jsr vputa | reset third column
[4f508e6]341 move.w #8,COL(a7) | put 4th column on stack
[8325447]342 jsr vputa | reset fourth column
[4f508e6]343
344srs9a: btst #1,vrbw09+1 | group 2 ?
345 beq srs9b | jump if not
346
347 move.w #10,COL(a7) | put 1st column on stack
[8325447]348 jsr vputa | reset first column
[4f508e6]349 move.w #11,COL(a7) | put 2nd column on stack
[8325447]350 jsr vputa | reset second column
[4f508e6]351 move.w #12,COL(a7) | put 3rd column on stack
[8325447]352 jsr vputa | reset third column
[4f508e6]353 move.w #13,COL(a7) | put 4th column on stack
[8325447]354 jsr vputa | reset fourth column
[4f508e6]355
356srs9b: btst #2,vrbw09+1 | group 3 ?
357 beq srs9c | jump if not
358
359 move.w #15,COL(a7) | put 1st column on stack
[8325447]360 jsr vputa | reset first column
[4f508e6]361 move.w #16,COL(a7) | put 2nd column on stack
[8325447]362 jsr vputa | reset second column
[4f508e6]363 move.w #17,COL(a7) | put 3rd column on stack
[8325447]364 jsr vputa | reset third column
[4f508e6]365 move.w #18,COL(a7) | put 4th column on stack
[8325447]366 jsr vputa | reset fourth column
[4f508e6]367
[f40a309]368 .page
[4f508e6]369
370srs9c: btst #3,vrbw09+1 | group 4 ?
371 beq srs9d | jump if not
372
373 move.w #20,COL(a7) | put 1st column on stack
[8325447]374 jsr vputa | reset first column
[4f508e6]375 move.w #21,COL(a7) | put 2nd column on stack
[8325447]376 jsr vputa | reset second column
[4f508e6]377 move.w #22,COL(a7) | put 3rd column on stack
[8325447]378 jsr vputa | reset third column
[4f508e6]379 move.w #23,COL(a7) | put 4th column on stack
[8325447]380 jsr vputa | reset fourth column
[4f508e6]381
382srs9d: btst #4,vrbw09+1 | group 5 ?
383 beq srs9e | jump if not
384
385 move.w #25,COL(a7) | put 1st column on stack
[8325447]386 jsr vputa | reset first column
[4f508e6]387 move.w #26,COL(a7) | put 2nd column on stack
[8325447]388 jsr vputa | reset second column
[4f508e6]389 move.w #27,COL(a7) | put 3rd column on stack
[8325447]390 jsr vputa | reset third column
[4f508e6]391 move.w #28,COL(a7) | put 4th column on stack
[8325447]392 jsr vputa | reset fourth column
[4f508e6]393
394srs9e: btst #5,vrbw09+1 | group 6 ?
395 beq srs9f | jump if not
396
397 move.w #30,COL(a7) | put 1st column on stack
[8325447]398 jsr vputa | reset first column
[4f508e6]399 move.w #31,COL(a7) | put 2nd column on stack
[8325447]400 jsr vputa | reset second column
[4f508e6]401 move.w #32,COL(a7) | put 3rd column on stack
[8325447]402 jsr vputa | reset third column
[4f508e6]403 move.w #33,COL(a7) | put 4th column on stack
[8325447]404 jsr vputa | reset fourth column
[4f508e6]405
[f40a309]406 .page
[4f508e6]407
408srs9f: btst #6,vrbw09+1 | group 7 ?
409 beq srs9g | jump if not
410
411 move.w #35,COL(a7) | put 1st column on stack
[8325447]412 jsr vputa | reset first column
[4f508e6]413 move.w #36,COL(a7) | put 2nd column on stack
[8325447]414 jsr vputa | reset second column
[4f508e6]415 move.w #37,COL(a7) | put 3rd column on stack
[8325447]416 jsr vputa | reset third column
[4f508e6]417 move.w #38,COL(a7) | put 4th column on stack
[8325447]418 jsr vputa | reset fourth column
[4f508e6]419
420srs9g: btst #7,vrbw09+1 | group 8 ?
421 beq srs9h | jump if not
422
423 move.w #40,COL(a7) | put 1st column on stack
[8325447]424 jsr vputa | reset first column
[4f508e6]425 move.w #41,COL(a7) | put 2nd column on stack
[8325447]426 jsr vputa | reset second column
[4f508e6]427 move.w #42,COL(a7) | put 3rd column on stack
[8325447]428 jsr vputa | reset third column
[4f508e6]429 move.w #43,COL(a7) | put 4th column on stack
[8325447]430 jsr vputa | reset fourth column
[4f508e6]431
432srs9h: btst #0,vrbw09 | group 9
433 beq srs9j | jump if not
434
435 move.w #45,COL(a7) | put 1st column on stack
[8325447]436 jsr vputa | reset first column
[4f508e6]437 move.w #46,COL(a7) | put 2nd column on stack
[8325447]438 jsr vputa | reset second column
[4f508e6]439 move.w #47,COL(a7) | put 3rd column on stack
[8325447]440 jsr vputa | reset third column
[4f508e6]441 move.w #48,COL(a7) | put 4th column on stack
[8325447]442 jsr vputa | reset fourth column
[4f508e6]443
[f40a309]444 .page
[4f508e6]445
446srs9j: btst #1,vrbw09 | group 10
447 beq srs9k | jump if not
448
449 move.w #50,COL(a7) | put 1st column on stack
[8325447]450 jsr vputa | reset first column
[4f508e6]451 move.w #51,COL(a7) | put 2nd column on stack
[8325447]452 jsr vputa | reset second column
[4f508e6]453 move.w #52,COL(a7) | put 3rd column on stack
[8325447]454 jsr vputa | reset third column
[4f508e6]455 move.w #53,COL(a7) | put 4th column on stack
[8325447]456 jsr vputa | reset fourth column
[4f508e6]457
458srs9k: btst #2,vrbw09 | group 11
459 beq srs9m | jump if not
460
461 move.w #55,COL(a7) | put 1st column on stack
[8325447]462 jsr vputa | reset first column
[4f508e6]463 move.w #56,COL(a7) | put 2nd column on stack
[8325447]464 jsr vputa | reset second column
[4f508e6]465 move.w #57,COL(a7) | put 3rd column on stack
[8325447]466 jsr vputa | reset third column
[4f508e6]467 move.w #58,COL(a7) | put 4th column on stack
[8325447]468 jsr vputa | reset fourth column
[4f508e6]469
470srs9m: btst #3,vrbw09 | group 12
471 beq srs9x | jump if not
472
473 move.w #60,COL(a7) | put 1st column on stack
[8325447]474 jsr vputa | reset first column
[4f508e6]475 move.w #61,COL(a7) | put 2nd column on stack
[8325447]476 jsr vputa | reset second column
[4f508e6]477 move.w #62,COL(a7) | put 3rd column on stack
[8325447]478 jsr vputa | reset third column
[4f508e6]479 move.w #63,COL(a7) | put 4th column on stack
[8325447]480 jsr vputa | reset fourth column
[4f508e6]481
482srs9x: move.w vrcw,d0 | restore vrcw to d0
483
[f40a309]484 .page
[4f508e6]485
486| dynamics
487| --------
488srs10: btst #10,d0 | dynamics ?
489 beq srs11 | jump if not
490
491 move.w #AT11,ATR(a7) | put attribute on stack
492 move.w #4,ROW(a7) | put row on stack
493 btst #0,vrbw10+1 | group 1 ?
494 beq srs10a | jump if not
495
496 move.w #6,COL(a7) | put column on stack
[8325447]497 jsr vputa | reset column
[4f508e6]498
499srs10a: btst #1,vrbw10+1 | group 2 ?
500 beq srs10b | jump if not
501
502 move.w #11,COL(a7) | put column on stack
[8325447]503 jsr vputa | reset column
[4f508e6]504
505srs10b: btst #2,vrbw10+1 | group 3 ?
506 beq srs10c | jump if not
507
508 move.w #16,COL(a7) | put column on stack
[8325447]509 jsr vputa | reset column
[4f508e6]510
511srs10c: btst #3,vrbw10+1 | group 4 ?
512 beq srs10d | jump if not
513
514 move.w #21,COL(a7) | put column on stack
[8325447]515 jsr vputa | reset column
[4f508e6]516
[f40a309]517 .page
[4f508e6]518
519srs10d: btst #4,vrbw10+1 | group 5 ?
520 beq srs10e | jump if not
521
522 move.w #26,COL(a7) | put column on stack
[8325447]523 jsr vputa | reset column
[4f508e6]524
525srs10e: btst #5,vrbw10+1 | group 6 ?
526 beq srs10f | jump if not
527
528 move.w #31,COL(a7) | put column on stack
[8325447]529 jsr vputa | reset column
[4f508e6]530
531srs10f: btst #6,vrbw10+1 | group 7 ?
532 beq srs10g | jump if not
533
534 move.w #36,COL(a7) | put column on stack
[8325447]535 jsr vputa | reset column
[4f508e6]536
537srs10g: btst #7,vrbw10+1 | group 8 ?
538 beq srs10h | jump if not
539
540 move.w #41,COL(a7) | put column on stack
[8325447]541 jsr vputa | reset column
[4f508e6]542
[f40a309]543 .page
[4f508e6]544
545srs10h: btst #0,vrbw10 | group 9
546 beq srs10j | jump if not
547
548 move.w #46,COL(a7) | put column on stack
[8325447]549 jsr vputa | reset column
[4f508e6]550
551srs10j: btst #1,vrbw10 | group 10
552 beq srs10k | jump if not
553
554 move.w #51,COL(a7) | put column on stack
[8325447]555 jsr vputa | reset column
[4f508e6]556
557srs10k: btst #2,vrbw10 | group 11
558 beq srs10m | jump if not
559
560 move.w #56,COL(a7) | put column on stack
[8325447]561 jsr vputa | reset column
[4f508e6]562
563srs10m: btst #3,vrbw10 | group 12
564 beq srs10x | jump if not
565
566 move.w #61,COL(a7) | put column on stack
[8325447]567 jsr vputa | reset column
[4f508e6]568
569srs10x: move.w vrcw,d0 | restore vrcw to d0
570
[f40a309]571 .page
[4f508e6]572
573| location
574| --------
575srs11: btst #11,d0 | location ?
576 beq srs12 | jump if not
577
578 move.w #AT11,ATR(a7) | put attribute on stack
579 move.w #4,ROW(a7) | put row on stack
580 btst #0,vrbw11+1 | group 1 ?
581 beq srs11a | jump if not
582
583 move.w #8,COL(a7) | put column on stack
[8325447]584 jsr vputa | reset column
[4f508e6]585
586srs11a: btst #1,vrbw11+1 | group 2 ?
587 beq srs11b | jump if not
588
589 move.w #13,COL(a7) | put column on stack
[8325447]590 jsr vputa | reset column
[4f508e6]591
592srs11b: btst #2,vrbw11+1 | group 3 ?
593 beq srs11c | jump if not
594
595 move.w #18,COL(a7) | put column on stack
[8325447]596 jsr vputa | reset column
[4f508e6]597
598srs11c: btst #3,vrbw11+1 | group 4 ?
599 beq srs11d | jump if not
600
601 move.w #23,COL(a7) | put column on stack
[8325447]602 jsr vputa | reset column
[4f508e6]603
[f40a309]604 .page
[4f508e6]605
606srs11d: btst #4,vrbw11+1 | group 5 ?
607 beq srs11e | jump if not
608
609 move.w #28,COL(a7) | put column on stack
[8325447]610 jsr vputa | reset column
[4f508e6]611
612srs11e: btst #5,vrbw11+1 | group 6 ?
613 beq srs11f | jump if not
614
615 move.w #33,COL(a7) | put column on stack
[8325447]616 jsr vputa | reset column
[4f508e6]617
618srs11f: btst #6,vrbw11+1 | group 7 ?
619 beq srs11g | jump if not
620
621 move.w #38,COL(a7) | put column on stack
[8325447]622 jsr vputa | reset column
[4f508e6]623
624srs11g: btst #7,vrbw11+1 | group 8 ?
625 beq srs11h | jump if not
626
627 move.w #43,COL(a7) | put column on stack
[8325447]628 jsr vputa | reset column
[4f508e6]629
[f40a309]630 .page
[4f508e6]631
632srs11h: btst #0,vrbw11 | group 9
633 beq srs11j | jump if not
634
635 move.w #48,COL(a7) | put column on stack
[8325447]636 jsr vputa | reset column
[4f508e6]637
638srs11j: btst #1,vrbw11 | group 10
639 beq srs11k | jump if not
640
641 move.w #53,COL(a7) | put column on stack
[8325447]642 jsr vputa | reset column
[4f508e6]643
644srs11k: btst #2,vrbw11 | group 11
645 beq srs11m | jump if not
646
647 move.w #58,COL(a7) | put column on stack
[8325447]648 jsr vputa | reset column
[4f508e6]649
650srs11m: btst #3,vrbw11 | group 12
651 beq srs11x | jump if not
652
653 move.w #63,COL(a7) | put column on stack
[8325447]654 jsr vputa | reset column
[4f508e6]655
656srs11x: move.w vrcw,d0 | restore vrcw to d0
657
[f40a309]658 .page
[4f508e6]659
660| velocity
661| --------
662srs12: btst #12,d0 | velocity ?
663 beq srs13 | jump if not
664
665 move.w #AT11,ATR(a7) | put attribute on stack
666 move.w #5,ROW(a7) | put row on stack
667 btst #0,vrbw12+1 | group 1 ?
668 beq srs12a | jump if not
669
670 move.w #6,COL(a7) | put 1st column on stack
[8325447]671 jsr vputa | reset first column
[4f508e6]672 move.w #7,COL(a7) | put 2nd column on stack
[8325447]673 jsr vputa | reset second column
[4f508e6]674 move.w #8,COL(a7) | put 3rd column on stack
[8325447]675 jsr vputa | reset third column
[4f508e6]676
677srs12a: btst #1,vrbw12+1 | group 2 ?
678 beq srs12b | jump if not
679
680 move.w #11,COL(a7) | put 1st column on stack
[8325447]681 jsr vputa | reset first column
[4f508e6]682 move.w #12,COL(a7) | put 2nd column on stack
[8325447]683 jsr vputa | reset second column
[4f508e6]684 move.w #13,COL(a7) | put 3rd column on stack
[8325447]685 jsr vputa | reset third column
[4f508e6]686
687srs12b: btst #2,vrbw12+1 | group 3 ?
688 beq srs12c | jump if not
689
690 move.w #16,COL(a7) | put 1st column on stack
[8325447]691 jsr vputa | reset first column
[4f508e6]692 move.w #17,COL(a7) | put 2nd column on stack
[8325447]693 jsr vputa | reset second column
[4f508e6]694 move.w #18,COL(a7) | put 3rd column on stack
[8325447]695 jsr vputa | reset third column
[4f508e6]696
[f40a309]697 .page
[4f508e6]698
699srs12c: btst #3,vrbw12+1 | group 4 ?
700 beq srs12d | jump if not
701
702 move.w #21,COL(a7) | put 1st column on stack
[8325447]703 jsr vputa | reset first column
[4f508e6]704 move.w #22,COL(a7) | put 2nd column on stack
[8325447]705 jsr vputa | reset second column
[4f508e6]706 move.w #23,COL(a7) | put 3rd column on stack
[8325447]707 jsr vputa | reset third column
[4f508e6]708
709srs12d: btst #4,vrbw12+1 | group 5 ?
710 beq srs12e | jump if not
711
712 move.w #26,COL(a7) | put 1st column on stack
[8325447]713 jsr vputa | reset first column
[4f508e6]714 move.w #27,COL(a7) | put 2nd column on stack
[8325447]715 jsr vputa | reset second column
[4f508e6]716 move.w #28,COL(a7) | put 3rd column on stack
[8325447]717 jsr vputa | reset third column
[4f508e6]718
719srs12e: btst #5,vrbw12+1 | group 6 ?
720 beq srs12f | jump if not
721
722 move.w #31,COL(a7) | put 1st column on stack
[8325447]723 jsr vputa | reset first column
[4f508e6]724 move.w #32,COL(a7) | put 2nd column on stack
[8325447]725 jsr vputa | reset second column
[4f508e6]726 move.w #33,COL(a7) | put 3rd column on stack
[8325447]727 jsr vputa | reset third column
[4f508e6]728
[f40a309]729 .page
[4f508e6]730
731srs12f: btst #6,vrbw12+1 | group 7 ?
732 beq srs12g | jump if not
733
734 move.w #36,COL(a7) | put 1st column on stack
[8325447]735 jsr vputa | reset first column
[4f508e6]736 move.w #37,COL(a7) | put 2nd column on stack
[8325447]737 jsr vputa | reset second column
[4f508e6]738 move.w #38,COL(a7) | put 3rd column on stack
[8325447]739 jsr vputa | reset third column
[4f508e6]740
741srs12g: btst #7,vrbw12+1 | group 8 ?
742 beq srs12h | jump if not
743
744 move.w #41,COL(a7) | put 1st column on stack
[8325447]745 jsr vputa | reset first column
[4f508e6]746 move.w #42,COL(a7) | put 2nd column on stack
[8325447]747 jsr vputa | reset second column
[4f508e6]748 move.w #43,COL(a7) | put 3rd column on stack
[8325447]749 jsr vputa | reset third column
[4f508e6]750
751srs12h: btst #0,vrbw12 | group 9
752 beq srs12j | jump if not
753
754 move.w #46,COL(a7) | put 1st column on stack
[8325447]755 jsr vputa | reset first column
[4f508e6]756 move.w #47,COL(a7) | put 2nd column on stack
[8325447]757 jsr vputa | reset second column
[4f508e6]758 move.w #48,COL(a7) | put 3rd column on stack
[8325447]759 jsr vputa | reset third column
[4f508e6]760
[f40a309]761 .page
[4f508e6]762
763srs12j: btst #1,vrbw12 | group 10
764 beq srs12k | jump if not
765
766 move.w #51,COL(a7) | put 1st column on stack
[8325447]767 jsr vputa | reset first column
[4f508e6]768 move.w #52,COL(a7) | put 2nd column on stack
[8325447]769 jsr vputa | reset second column
[4f508e6]770 move.w #53,COL(a7) | put 3rd column on stack
[8325447]771 jsr vputa | reset third column
[4f508e6]772
773srs12k: btst #2,vrbw12 | group 11
774 beq srs12m | jump if not
775
776 move.w #56,COL(a7) | put 1st column on stack
[8325447]777 jsr vputa | reset first column
[4f508e6]778 move.w #57,COL(a7) | put 2nd column on stack
[8325447]779 jsr vputa | reset second column
[4f508e6]780 move.w #58,COL(a7) | put 3rd column on stack
[8325447]781 jsr vputa | reset third column
[4f508e6]782
783srs12m: btst #3,vrbw12 | group 12
784 beq srs12x | jump if not
785
786 move.w #61,COL(a7) | put 1st column on stack
[8325447]787 jsr vputa | reset first column
[4f508e6]788 move.w #62,COL(a7) | put 2nd column on stack
[8325447]789 jsr vputa | reset second column
[4f508e6]790 move.w #63,COL(a7) | put 3rd column on stack
[8325447]791 jsr vputa | reset third column
[4f508e6]792
793srs12x: move.w vrcw,d0 | restore vrcw to d0
794
[f40a309]795 .page
[4f508e6]796
797| resolution
798| ----------
799srs13: btst #13,d0 | resolution ?
800 beq srs14 | jump if not
801
802 move.w #AT12,ATR(a7) | put attribute on stack
803 move.w #7,ROW(a7) | put row on stack
804 btst #0,vrbw13+1 | variable 1 ?
805 beq srs13a | jump if not
806
807 move.w #6,COL(a7) | put column on stack
[8325447]808 jsr vputa | reset column
[4f508e6]809
810srs13a: btst #1,vrbw13+1 | variable 2 ?
811 beq srs13b | jump if not
812
813 move.w #15,COL(a7) | put column on stack
[8325447]814 jsr vputa | reset column
[4f508e6]815
816srs13b: btst #2,vrbw13+1 | variable 3 ?
817 beq srs13c | jump if not
818
819 move.w #24,COL(a7) | put column on stack
[8325447]820 jsr vputa | reset column
[4f508e6]821
822srs13c: btst #3,vrbw13+1 | variable 4 ?
823 beq srs13d | jump if not
824
825 move.w #33,COL(a7) | put column on stack
[8325447]826 jsr vputa | reset column
[4f508e6]827
828srs13d: btst #4,vrbw13+1 | variable 5 ?
829 beq srs13e | jump if not
830
831 move.w #42,COL(a7) | put column on stack
[8325447]832 jsr vputa | reset column
[4f508e6]833
834srs13e: btst #5,vrbw13+1 | variable 6 ?
835 beq srs13x | jump if not
836
837 move.w #51,COL(a7) | put column on stack
[8325447]838 jsr vputa | reset column
[4f508e6]839
840srs13x: move.w vrcw,d0 | restore vrcw to d0
841
[f40a309]842 .page
[4f508e6]843
844| analog value
845| ------------
846srs14: btst #14,d0 | analog value ?
847 beq srs15 | jump if not
848
849 move.w #AT12,ATR(a7) | put attribute on stack
850 move.w #7,ROW(a7) | put row on stack
851 btst #0,vrbw14+1 | variable 1 ?
852 beq srs14a | jump if not
853
854 move.w #8,COL(a7) | put 1st column on stack
[8325447]855 jsr vputa | reset first column
[4f508e6]856 move.w #9,COL(a7) | put 2nd column on stack
[8325447]857 jsr vputa | reset second column
[4f508e6]858 move.w #10,COL(a7) | put 3rd column on stack
[8325447]859 jsr vputa | reset third column
[4f508e6]860 move.w #11,COL(a7) | put 4th column on stack
[8325447]861 jsr vputa | reset fourth column
[4f508e6]862 move.w #12,COL(a7) | put 5th column on stack
[8325447]863 jsr vputa | reset fifth column
[4f508e6]864
865srs14a: btst #1,vrbw14+1 | variable 2 ?
866 beq srs14b | jump if not
867
868 move.w #17,COL(a7) | put 1st column on stack
[8325447]869 jsr vputa | reset first column
[4f508e6]870 move.w #18,COL(a7) | put 2nd column on stack
[8325447]871 jsr vputa | reset second column
[4f508e6]872 move.w #19,COL(a7) | put 3rd column on stack
[8325447]873 jsr vputa | reset third column
[4f508e6]874 move.w #20,COL(a7) | put 4th column on stack
[8325447]875 jsr vputa | reset fourth column
[4f508e6]876 move.w #21,COL(a7) | put 5th column on stack
[8325447]877 jsr vputa | reset fifth column
[4f508e6]878
[f40a309]879 .page
[4f508e6]880
881srs14b: btst #2,vrbw14+1 | variable 3 ?
882 beq srs14c | jump if not
883
884 move.w #26,COL(a7) | put 1st column on stack
[8325447]885 jsr vputa | reset first column
[4f508e6]886 move.w #27,COL(a7) | put 2nd column on stack
[8325447]887 jsr vputa | reset second column
[4f508e6]888 move.w #28,COL(a7) | put 3rd column on stack
[8325447]889 jsr vputa | reset third column
[4f508e6]890 move.w #29,COL(a7) | put 4th column on stack
[8325447]891 jsr vputa | reset fourth column
[4f508e6]892 move.w #30,COL(a7) | put 5th column on stack
[8325447]893 jsr vputa | reset fifth column
[4f508e6]894
895srs14c: btst #3,vrbw14+1 | variable 4 ?
896 beq srs14d | jump if not
897
898 move.w #35,COL(a7) | put 1st column on stack
[8325447]899 jsr vputa | reset first column
[4f508e6]900 move.w #36,COL(a7) | put 2nd column on stack
[8325447]901 jsr vputa | reset second column
[4f508e6]902 move.w #37,COL(a7) | put 3rd column on stack
[8325447]903 jsr vputa | reset third column
[4f508e6]904 move.w #38,COL(a7) | put 4th column on stack
[8325447]905 jsr vputa | reset fourth column
[4f508e6]906 move.w #39,COL(a7) | put 5th column on stack
[8325447]907 jsr vputa | reset fifth column
[4f508e6]908
[f40a309]909 .page
[4f508e6]910
911srs14d: btst #4,vrbw14+1 | variable 5 ?
912 beq srs14e | jump if not
913
914 move.w #44,COL(a7) | put 1st column on stack
[8325447]915 jsr vputa | reset first column
[4f508e6]916 move.w #45,COL(a7) | put 2nd column on stack
[8325447]917 jsr vputa | reset second column
[4f508e6]918 move.w #46,COL(a7) | put 3rd column on stack
[8325447]919 jsr vputa | reset third column
[4f508e6]920 move.w #47,COL(a7) | put 4th column on stack
[8325447]921 jsr vputa | reset fourth column
[4f508e6]922 move.w #48,COL(a7) | put 5th column on stack
[8325447]923 jsr vputa | reset fifth column
[4f508e6]924
925srs14e: btst #5,vrbw14+1 | variable 6 ?
926 beq srs14x | jump if not
927
928 move.w #53,COL(a7) | put 1st column on stack
[8325447]929 jsr vputa | reset first column
[4f508e6]930 move.w #54,COL(a7) | put 2nd column on stack
[8325447]931 jsr vputa | reset second column
[4f508e6]932 move.w #55,COL(a7) | put 3rd column on stack
[8325447]933 jsr vputa | reset third column
[4f508e6]934 move.w #56,COL(a7) | put 4th column on stack
[8325447]935 jsr vputa | reset fourth column
[4f508e6]936 move.w #57,COL(a7) | put 5th column on stack
[8325447]937 jsr vputa | reset fifth column
[4f508e6]938
939srs14x: move.w vrcw,d0 | restore vrcw to d0
940
[f40a309]941 .page
[4f508e6]942
943| stop/next
944| ---------
945srs15: btst #15,d0 | stop/next ?
946 beq srs16 | jump if not
947
948 btst #0,vrbw15 | stop ?
949 beq srs15a | jump if not
950
951 move.w #AT08,ATR(a7) | put attribute on stack
952 move.w #1,ROW(a7) | put row on stack
953 move.w #40,COL(a7) | put 1st column on stack
[8325447]954 jsr vputa | reset first column
[4f508e6]955 move.w #41,COL(a7) | put 2nd column on stack
[8325447]956 jsr vputa | reset second column
[4f508e6]957 move.w #42,COL(a7) | put 3rd column on stack
[8325447]958 jsr vputa | reset third column
[4f508e6]959 move.w #43,COL(a7) | put 4th column on stack
[8325447]960 jsr vputa | reset fourth column
[4f508e6]961
962srs15a: btst #1,vrbw15 | next ?
963 beq srs16 | jump if not
964
965 move.w #AT08,ATR(a7) | put attribute on stack
966 move.w #1,ROW(a7) | put row on stack
967 move.w #45,COL(a7) | put 1st column on stack
[8325447]968 jsr vputa | reset first column
[4f508e6]969 move.w #46,COL(a7) | put 2nd column on stack
[8325447]970 jsr vputa | reset second column
[4f508e6]971 move.w #47,COL(a7) | put 3rd column on stack
[8325447]972 jsr vputa | reset third column
[4f508e6]973 move.w #48,COL(a7) | put 4th column on stack
[8325447]974 jsr vputa | reset fourth column
[4f508e6]975
976srs16: add.l #10,a7 | clean up stack
977 bra srsexit | done
978
[f40a309]979 .page
[4f508e6]980
[f40a309]981 .bss
[4f508e6]982
[8325447]983| local copies of vrcw, vrbw08..vrbw15
[4f508e6]984
[f40a309]985vrcw: .ds.w 1
986vrbw08: .ds.w 1
987vrbw09: .ds.w 1
988vrbw10: .ds.w 1
989vrbw11: .ds.w 1
990vrbw12: .ds.w 1
991vrbw13: .ds.w 1
992vrbw14: .ds.w 1
993vrbw15: .ds.w 1
[4f508e6]994
[f40a309]995 .end
Note: See TracBrowser for help on using the repository browser.