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

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

Fix symbol collisions.

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