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

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

Removed _ prefix.

  • Property mode set to 100644
File size: 26.5 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
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.