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

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

Converted assembly language files.

  • Property mode set to 100644
File size: 26.7 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
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
[f40a309]38 .page
[4f508e6]39
40| sreset() -- reset highlighting
41| -------- ------------------
42_sreset: 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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[f40a309]979 .page
[4f508e6]980
[f40a309]981 .bss
[4f508e6]982
983| local copies of _vrcw, _vrbw08.._vrbw15
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.