source: buchla-68k/orig/RAM/SRESET.S@ b8080f6

Last change on this file since b8080f6 was 3ae31e9, checked in by Thomas Lopatic <thomas@…>, 8 years ago

Imported original source code.

  • Property mode set to 100755
File size: 27.9 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 .equ 4
24COL .equ 6
25ATR .equ 8
26*
27AT01 .equ $0014
28AT04 .equ $0013
29AT05 .equ $0014
30AT06 .equ $0013
31AT07 .equ $0014
32AT08 .equ $0013
33AT09 .equ $0014
34AT10 .equ $0013
35AT11 .equ $0012
36AT12 .equ $0012
37*
38 .page
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 #$0700,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*
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
994*
995 .end
Note: See TracBrowser for help on using the repository browser.