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

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

Fix symbol collisions.

  • Property mode set to 100644
File size: 26.6 KB
Line 
1| ------------------------------------------------------------------------------
2| sreset.s -- reset score highlighting
3| Version 14 -- 1988-07-28 -- D.N. Lynx Crowe
4| ------------------------------------------------------------------------------
5 .text
6
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
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
38 .page
39
40| sreset() -- reset highlighting
41| -------- ------------------
42sreset: link a6,#0 | link stack frame
43 cmp.w #2,ndisp | see if we should update display
44 bne srsexit | jump if not
45
46 move.w vrcw,d0 | get and check vrcw
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
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 | ...
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
87 move.l obj8,-(a7) | put sbase on stack
88
89 .page
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
99 jsr vputa | reset first column
100 move.w #12,COL(a7) | put 2nd column on stack
101 jsr vputa | reset second column
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
112 jsr vputa | reset column
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
123 jsr vputa | reset first column
124 move.w #28,COL(a7) | put 2nd column on stack
125 jsr vputa | reset second column
126 move.w #29,COL(a7) | put 3rd column on stack
127 jsr vputa | reset third column
128 move.w _vrcw,d0 | restore _vrcw to d0
129
130 .page
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
140 jsr vputa | reset first column
141 move.w #36,COL(a7) | put 2nd column on stack
142 jsr vputa | reset second column
143 move.w #37,COL(a7) | put 3rd column on stack
144 jsr vputa | reset third column
145 move.w #38,COL(a7) | put 4th column on stack
146 jsr vputa | reset fourth column
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
157 jsr vputa | reset first column
158 move.w #7,COL(a7) | put 2nd column on stack
159 jsr vputa | reset second column
160
161 .page
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
171 jsr vputa | reset first column
172 move.w #51,COL(a7) | put 2nd column on stack
173 jsr vputa | reset second column
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
184 jsr vputa | reset first column
185 move.w #54,COL(a7) | put 2nd column on stack
186 jsr vputa | reset second column
187 move.w #55,COL(a7) | put 3rd column on stack
188 jsr vputa | reset third column
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
199 jsr vputa | reset first column
200 move.w #58,COL(a7) | put 2nd column on stack
201 jsr vputa | reset second column
202 move.w #59,COL(a7) | put 3rd column on stack
203 jsr vputa | reset third column
204 move.w #60,COL(a7) | put 4th column on stack
205 jsr vputa | reset fourth column
206 move.w #61,COL(a7) | put 5th column on stack
207 jsr vputa | reset fifth column
208 move.w #62,COL(a7) | put 6th column on stack
209 jsr vputa | reset sixth column
210 move.w _vrcw,d0 | restore _vrcw to d0
211
212 .page
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
225 jsr vputa | reset first column
226 move.w #8,COL(a7) | put 2nd column on stack
227 jsr vputa | reset second column
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
233 jsr vputa | reset first character
234 move.w #13,COL(a7) | put 2nd column on stack
235 jsr vputa | reset second character
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
241 jsr vputa | reset first character
242 move.w #18,COL(a7) | put 2nd column on stack
243 jsr vputa | reset second character
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
249 jsr vputa | reset first character
250 move.w #23,COL(a7) | put 2nd column on stack
251 jsr vputa | reset second character
252
253 .page
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
259 jsr vputa | reset first character
260 move.w #28,COL(a7) | put 2nd column on stack
261 jsr vputa | reset second character
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
267 jsr vputa | reset first character
268 move.w #33,COL(a7) | put 2nd column on stack
269 jsr vputa | reset second character
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
275 jsr vputa | reset first character
276 move.w #38,COL(a7) | put 2nd column on stack
277 jsr vputa | reset second character
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
283 jsr vputa | reset first character
284 move.w #43,COL(a7) | put 2nd column on stack
285 jsr vputa | reset second character
286
287 .page
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
293 jsr vputa | reset first character
294 move.w #48,COL(a7) | put 2nd column on stack
295 jsr vputa | reset second character
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
301 jsr vputa | reset first character
302 move.w #53,COL(a7) | put 2nd column on stack
303 jsr vputa | reset second character
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
309 jsr vputa | reset first character
310 move.w #58,COL(a7) | put 2nd column on stack
311 jsr vputa | reset second character
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
317 jsr vputa | reset first character
318 move.w #63,COL(a7) | put 2nd column on stack
319 jsr vputa | reset second character
320
321srs8x: move.w _vrcw,d0 | restore _vrcw to d0
322
323 .page
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
336 jsr vputa | reset first column
337 move.w #6,COL(a7) | put 2nd column on stack
338 jsr vputa | reset second column
339 move.w #7,COL(a7) | put 3rd column on stack
340 jsr vputa | reset third column
341 move.w #8,COL(a7) | put 4th column on stack
342 jsr vputa | reset fourth column
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
348 jsr vputa | reset first column
349 move.w #11,COL(a7) | put 2nd column on stack
350 jsr vputa | reset second column
351 move.w #12,COL(a7) | put 3rd column on stack
352 jsr vputa | reset third column
353 move.w #13,COL(a7) | put 4th column on stack
354 jsr vputa | reset fourth column
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
360 jsr vputa | reset first column
361 move.w #16,COL(a7) | put 2nd column on stack
362 jsr vputa | reset second column
363 move.w #17,COL(a7) | put 3rd column on stack
364 jsr vputa | reset third column
365 move.w #18,COL(a7) | put 4th column on stack
366 jsr vputa | reset fourth column
367
368 .page
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
374 jsr vputa | reset first column
375 move.w #21,COL(a7) | put 2nd column on stack
376 jsr vputa | reset second column
377 move.w #22,COL(a7) | put 3rd column on stack
378 jsr vputa | reset third column
379 move.w #23,COL(a7) | put 4th column on stack
380 jsr vputa | reset fourth column
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
386 jsr vputa | reset first column
387 move.w #26,COL(a7) | put 2nd column on stack
388 jsr vputa | reset second column
389 move.w #27,COL(a7) | put 3rd column on stack
390 jsr vputa | reset third column
391 move.w #28,COL(a7) | put 4th column on stack
392 jsr vputa | reset fourth column
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
398 jsr vputa | reset first column
399 move.w #31,COL(a7) | put 2nd column on stack
400 jsr vputa | reset second column
401 move.w #32,COL(a7) | put 3rd column on stack
402 jsr vputa | reset third column
403 move.w #33,COL(a7) | put 4th column on stack
404 jsr vputa | reset fourth column
405
406 .page
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
412 jsr vputa | reset first column
413 move.w #36,COL(a7) | put 2nd column on stack
414 jsr vputa | reset second column
415 move.w #37,COL(a7) | put 3rd column on stack
416 jsr vputa | reset third column
417 move.w #38,COL(a7) | put 4th column on stack
418 jsr vputa | reset fourth column
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
424 jsr vputa | reset first column
425 move.w #41,COL(a7) | put 2nd column on stack
426 jsr vputa | reset second column
427 move.w #42,COL(a7) | put 3rd column on stack
428 jsr vputa | reset third column
429 move.w #43,COL(a7) | put 4th column on stack
430 jsr vputa | reset fourth column
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
436 jsr vputa | reset first column
437 move.w #46,COL(a7) | put 2nd column on stack
438 jsr vputa | reset second column
439 move.w #47,COL(a7) | put 3rd column on stack
440 jsr vputa | reset third column
441 move.w #48,COL(a7) | put 4th column on stack
442 jsr vputa | reset fourth column
443
444 .page
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
450 jsr vputa | reset first column
451 move.w #51,COL(a7) | put 2nd column on stack
452 jsr vputa | reset second column
453 move.w #52,COL(a7) | put 3rd column on stack
454 jsr vputa | reset third column
455 move.w #53,COL(a7) | put 4th column on stack
456 jsr vputa | reset fourth column
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
462 jsr vputa | reset first column
463 move.w #56,COL(a7) | put 2nd column on stack
464 jsr vputa | reset second column
465 move.w #57,COL(a7) | put 3rd column on stack
466 jsr vputa | reset third column
467 move.w #58,COL(a7) | put 4th column on stack
468 jsr vputa | reset fourth column
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
474 jsr vputa | reset first column
475 move.w #61,COL(a7) | put 2nd column on stack
476 jsr vputa | reset second column
477 move.w #62,COL(a7) | put 3rd column on stack
478 jsr vputa | reset third column
479 move.w #63,COL(a7) | put 4th column on stack
480 jsr vputa | reset fourth column
481
482srs9x: move.w _vrcw,d0 | restore _vrcw to d0
483
484 .page
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
497 jsr vputa | reset column
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
503 jsr vputa | reset column
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
509 jsr vputa | reset column
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
515 jsr vputa | reset column
516
517 .page
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
523 jsr vputa | reset column
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
529 jsr vputa | reset column
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
535 jsr vputa | reset column
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
541 jsr vputa | reset column
542
543 .page
544
545srs10h: btst #0,_vrbw10 | group 9
546 beq srs10j | jump if not
547
548 move.w #46,COL(a7) | put column on stack
549 jsr vputa | reset column
550
551srs10j: btst #1,_vrbw10 | group 10
552 beq srs10k | jump if not
553
554 move.w #51,COL(a7) | put column on stack
555 jsr vputa | reset column
556
557srs10k: btst #2,_vrbw10 | group 11
558 beq srs10m | jump if not
559
560 move.w #56,COL(a7) | put column on stack
561 jsr vputa | reset column
562
563srs10m: btst #3,_vrbw10 | group 12
564 beq srs10x | jump if not
565
566 move.w #61,COL(a7) | put column on stack
567 jsr vputa | reset column
568
569srs10x: move.w _vrcw,d0 | restore _vrcw to d0
570
571 .page
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
584 jsr vputa | reset column
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
590 jsr vputa | reset column
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
596 jsr vputa | reset column
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
602 jsr vputa | reset column
603
604 .page
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
610 jsr vputa | reset column
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
616 jsr vputa | reset column
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
622 jsr vputa | reset column
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
628 jsr vputa | reset column
629
630 .page
631
632srs11h: btst #0,_vrbw11 | group 9
633 beq srs11j | jump if not
634
635 move.w #48,COL(a7) | put column on stack
636 jsr vputa | reset column
637
638srs11j: btst #1,_vrbw11 | group 10
639 beq srs11k | jump if not
640
641 move.w #53,COL(a7) | put column on stack
642 jsr vputa | reset column
643
644srs11k: btst #2,_vrbw11 | group 11
645 beq srs11m | jump if not
646
647 move.w #58,COL(a7) | put column on stack
648 jsr vputa | reset column
649
650srs11m: btst #3,_vrbw11 | group 12
651 beq srs11x | jump if not
652
653 move.w #63,COL(a7) | put column on stack
654 jsr vputa | reset column
655
656srs11x: move.w _vrcw,d0 | restore _vrcw to d0
657
658 .page
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
671 jsr vputa | reset first column
672 move.w #7,COL(a7) | put 2nd column on stack
673 jsr vputa | reset second column
674 move.w #8,COL(a7) | put 3rd column on stack
675 jsr vputa | reset third column
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
681 jsr vputa | reset first column
682 move.w #12,COL(a7) | put 2nd column on stack
683 jsr vputa | reset second column
684 move.w #13,COL(a7) | put 3rd column on stack
685 jsr vputa | reset third column
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
691 jsr vputa | reset first column
692 move.w #17,COL(a7) | put 2nd column on stack
693 jsr vputa | reset second column
694 move.w #18,COL(a7) | put 3rd column on stack
695 jsr vputa | reset third column
696
697 .page
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
703 jsr vputa | reset first column
704 move.w #22,COL(a7) | put 2nd column on stack
705 jsr vputa | reset second column
706 move.w #23,COL(a7) | put 3rd column on stack
707 jsr vputa | reset third column
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
713 jsr vputa | reset first column
714 move.w #27,COL(a7) | put 2nd column on stack
715 jsr vputa | reset second column
716 move.w #28,COL(a7) | put 3rd column on stack
717 jsr vputa | reset third column
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
723 jsr vputa | reset first column
724 move.w #32,COL(a7) | put 2nd column on stack
725 jsr vputa | reset second column
726 move.w #33,COL(a7) | put 3rd column on stack
727 jsr vputa | reset third column
728
729 .page
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
735 jsr vputa | reset first column
736 move.w #37,COL(a7) | put 2nd column on stack
737 jsr vputa | reset second column
738 move.w #38,COL(a7) | put 3rd column on stack
739 jsr vputa | reset third column
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
745 jsr vputa | reset first column
746 move.w #42,COL(a7) | put 2nd column on stack
747 jsr vputa | reset second column
748 move.w #43,COL(a7) | put 3rd column on stack
749 jsr vputa | reset third column
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
755 jsr vputa | reset first column
756 move.w #47,COL(a7) | put 2nd column on stack
757 jsr vputa | reset second column
758 move.w #48,COL(a7) | put 3rd column on stack
759 jsr vputa | reset third column
760
761 .page
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
767 jsr vputa | reset first column
768 move.w #52,COL(a7) | put 2nd column on stack
769 jsr vputa | reset second column
770 move.w #53,COL(a7) | put 3rd column on stack
771 jsr vputa | reset third column
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
777 jsr vputa | reset first column
778 move.w #57,COL(a7) | put 2nd column on stack
779 jsr vputa | reset second column
780 move.w #58,COL(a7) | put 3rd column on stack
781 jsr vputa | reset third column
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
787 jsr vputa | reset first column
788 move.w #62,COL(a7) | put 2nd column on stack
789 jsr vputa | reset second column
790 move.w #63,COL(a7) | put 3rd column on stack
791 jsr vputa | reset third column
792
793srs12x: move.w _vrcw,d0 | restore _vrcw to d0
794
795 .page
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
808 jsr vputa | reset column
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
814 jsr vputa | reset column
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
820 jsr vputa | reset column
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
826 jsr vputa | reset column
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
832 jsr vputa | reset column
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
838 jsr vputa | reset column
839
840srs13x: move.w _vrcw,d0 | restore _vrcw to d0
841
842 .page
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
855 jsr vputa | reset first column
856 move.w #9,COL(a7) | put 2nd column on stack
857 jsr vputa | reset second column
858 move.w #10,COL(a7) | put 3rd column on stack
859 jsr vputa | reset third column
860 move.w #11,COL(a7) | put 4th column on stack
861 jsr vputa | reset fourth column
862 move.w #12,COL(a7) | put 5th column on stack
863 jsr vputa | reset fifth column
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
869 jsr vputa | reset first column
870 move.w #18,COL(a7) | put 2nd column on stack
871 jsr vputa | reset second column
872 move.w #19,COL(a7) | put 3rd column on stack
873 jsr vputa | reset third column
874 move.w #20,COL(a7) | put 4th column on stack
875 jsr vputa | reset fourth column
876 move.w #21,COL(a7) | put 5th column on stack
877 jsr vputa | reset fifth column
878
879 .page
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
885 jsr vputa | reset first column
886 move.w #27,COL(a7) | put 2nd column on stack
887 jsr vputa | reset second column
888 move.w #28,COL(a7) | put 3rd column on stack
889 jsr vputa | reset third column
890 move.w #29,COL(a7) | put 4th column on stack
891 jsr vputa | reset fourth column
892 move.w #30,COL(a7) | put 5th column on stack
893 jsr vputa | reset fifth column
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
899 jsr vputa | reset first column
900 move.w #36,COL(a7) | put 2nd column on stack
901 jsr vputa | reset second column
902 move.w #37,COL(a7) | put 3rd column on stack
903 jsr vputa | reset third column
904 move.w #38,COL(a7) | put 4th column on stack
905 jsr vputa | reset fourth column
906 move.w #39,COL(a7) | put 5th column on stack
907 jsr vputa | reset fifth column
908
909 .page
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
915 jsr vputa | reset first column
916 move.w #45,COL(a7) | put 2nd column on stack
917 jsr vputa | reset second column
918 move.w #46,COL(a7) | put 3rd column on stack
919 jsr vputa | reset third column
920 move.w #47,COL(a7) | put 4th column on stack
921 jsr vputa | reset fourth column
922 move.w #48,COL(a7) | put 5th column on stack
923 jsr vputa | reset fifth column
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
929 jsr vputa | reset first column
930 move.w #54,COL(a7) | put 2nd column on stack
931 jsr vputa | reset second column
932 move.w #55,COL(a7) | put 3rd column on stack
933 jsr vputa | reset third column
934 move.w #56,COL(a7) | put 4th column on stack
935 jsr vputa | reset fourth column
936 move.w #57,COL(a7) | put 5th column on stack
937 jsr vputa | reset fifth column
938
939srs14x: move.w _vrcw,d0 | restore _vrcw to d0
940
941 .page
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
954 jsr vputa | reset first column
955 move.w #41,COL(a7) | put 2nd column on stack
956 jsr vputa | reset second column
957 move.w #42,COL(a7) | put 3rd column on stack
958 jsr vputa | reset third column
959 move.w #43,COL(a7) | put 4th column on stack
960 jsr vputa | reset fourth column
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
968 jsr vputa | reset first column
969 move.w #46,COL(a7) | put 2nd column on stack
970 jsr vputa | reset second column
971 move.w #47,COL(a7) | put 3rd column on stack
972 jsr vputa | reset third column
973 move.w #48,COL(a7) | put 4th column on stack
974 jsr vputa | reset fourth column
975
976srs16: add.l #10,a7 | clean up stack
977 bra srsexit | done
978
979 .page
980
981 .bss
982
983| local copies of vrcw, vrbw08..vrbw15
984
985_vrcw: .ds.w 1
986_vrbw08: .ds.w 1
987_vrbw09: .ds.w 1
988_vrbw10: .ds.w 1
989_vrbw11: .ds.w 1
990_vrbw12: .ds.w 1
991_vrbw13: .ds.w 1
992_vrbw14: .ds.w 1
993_vrbw15: .ds.w 1
994
995 .end
Note: See TracBrowser for help on using the repository browser.