Changeset 4f508e6 in buchla-68k for ram/sreset.s
- Timestamp:
- 07/01/2017 02:34:46 PM (7 years ago)
- Branches:
- master
- Children:
- 08e1da1
- Parents:
- f40a309
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ram/sreset.s
rf40a309 r4f508e6 1 *------------------------------------------------------------------------------2 *sreset.s -- reset score highlighting3 *Version 14 -- 1988-07-28 -- D.N. Lynx Crowe4 *------------------------------------------------------------------------------1 | ------------------------------------------------------------------------------ 2 | sreset.s -- reset score highlighting 3 | Version 14 -- 1988-07-28 -- D.N. Lynx Crowe 4 | ------------------------------------------------------------------------------ 5 5 .text 6 * 7 .xdef _sreset *sreset()8 * 9 .xref _vputa *vputa(sbase, row, col, attrib)10 * 11 .xref _ndisp *WORD - display number12 .xref _obj8 *LONG - object base address13 .xref _vrbw08 *WORD - detail word for bit 814 .xref _vrbw09 *WORD - detail word for bit 915 .xref _vrbw10 *WORD - detail word for bit 1016 .xref _vrbw11 *WORD - detail word for bit 1117 .xref _vrbw12 *WORD - detail word for bit 1218 .xref _vrbw13 *WORD - detail word for bit 1319 .xref _vrbw14 *WORD - detail word for bit 1420 .xref _vrbw15 *WORD - detail word for bit 1521 .xref _vrcw *WORD - video reset control word22 * 23 ROW .equ424 COL .equ625 ATR .equ826 * 27 AT01 .equ $001428 AT04 .equ $001329 AT05 .equ $001430 AT06 .equ $001331 AT07 .equ $001432 AT08 .equ $001333 AT09 .equ $001434 AT10 .equ $001335 AT11 .equ $001236 AT12 .equ $001237 * 38 .page 39 * 40 *sreset() -- reset highlighting41 *-------- ------------------42 _sreset: link a6,#0 *link stack frame43 cmp.w #2,_ndisp *see if we should update display44 bne srsexit *jump if not45 * 46 move.w _vrcw,d0 *get and check vrcw47 bne srs0 *jump if something to do48 * 49 srsexit: unlk a6 *unlink stack frame50 rts *return to caller51 * 52 srs0: move.w sr,d1 *<<<<< disable interrupts >>>>>53 ori.w # $0700,sr *...54 * 55 move.w _vrcw,vrcw *make local copies of control variables56 clr.w _vrcw *... and clear them for the next pass57 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) sbase79 * 80 *4(a7) row ROW81 *6(a7) col COL82 *8(a7) atr ATR83 * 84 clr.w -(a7) *put dummy attribute on stack85 clr.w -(a7) *put dummy column on stack86 clr.w -(a7) *put dummy row on stack87 move.l _obj8,-(a7) *put sbase on stack88 * 89 .page 90 * 91 *assignment92 *----------93 btst #0,d0 *assignment ?94 beq srs1 *jump if not95 * 96 move.w #AT04,ATR(a7) *put attribute on stack97 move.w #1,ROW(a7) *put row on stack98 move.w #11,COL(a7) *put 1st column on stack99 jsr _vputa *reset first column100 move.w #12,COL(a7) *put 2nd column on stack101 jsr _vputa *reset second column102 move.w vrcw,d0 *restore vrcw to d0103 * 104 *tuning105 *------106 srs1: btst #1,d0 *tuning ?107 beq srs2 *jump if not108 * 109 move.w #AT05,ATR(a7) *put attribute on stack110 move.w #1,ROW(a7) *put row on stack111 move.w #19,COL(a7) *put column on stack112 jsr _vputa *reset column113 move.w vrcw,d0 *restore vrcw to d0114 * 115 *tempo116 *-----117 srs2: btst #2,d0 *tempo ?118 beq srs3 *jump if not119 * 120 move.w #AT06,ATR(a7) *put attribute on stack121 move.w #1,ROW(a7) *put row on stack122 move.w #27,COL(a7) *put 1st column on stack123 jsr _vputa *reset first column124 move.w #28,COL(a7) *put 2nd column on stack125 jsr _vputa *reset second column126 move.w #29,COL(a7) *put 3rd column on stack127 jsr _vputa *reset third column128 move.w vrcw,d0 *restore vrcw to d0129 * 130 .page 131 * 132 *interpolate133 *-----------134 srs3: btst #3,d0 *interpolate ?135 beq srs4 *jump if not136 * 137 move.w #AT07,ATR(a7) *put attribute on stack138 move.w #1,ROW(a7) *put row on stack139 move.w #35,COL(a7) *put 1st column on stack140 jsr _vputa *reset first column141 move.w #36,COL(a7) *put 2nd column on stack142 jsr _vputa *reset second column143 move.w #37,COL(a7) *put 3rd column on stack144 jsr _vputa *reset third column145 move.w #38,COL(a7) *put 4th column on stack146 jsr _vputa *reset fourth column147 move.w vrcw,d0 *restore vrcw to d0148 * 149 *section begin150 *-------------151 srs4: btst #4,d0 *section begin ?152 beq srs5 *jump if not153 * 154 move.w #AT01,ATR(a7) *put attribute on stack155 move.w #0,ROW(a7) *put row on stack156 move.w #6,COL(a7) *put 1st column on stack157 jsr _vputa *reset first column158 move.w #7,COL(a7) *put 2nd column on stack159 jsr _vputa *reset second column160 * 161 .page 162 * 163 *punch in164 *--------165 srs5: btst #5,d0 *punch in ?166 beq srs6 *jump if not167 * 168 move.w #AT09,ATR(a7) *put attribute on stack169 move.w #1,ROW(a7) *put row on stack170 move.w #50,COL(a7) *put 1st column on stack171 jsr _vputa *reset first column172 move.w #51,COL(a7) *put 2nd column on stack173 jsr _vputa *reset second column174 move.w vrcw,d0 *restore vrcw to d0175 * 176 *punch out177 *---------178 srs6: btst #6,d0 *punch out ?179 beq srs7 *jump if not180 * 181 move.w #AT09,ATR(a7) *put attribute on stack182 move.w #1,ROW(a7) *put row on stack183 move.w #53,COL(a7) *put 1st column on stack184 jsr _vputa *reset first column185 move.w #54,COL(a7) *put 2nd column on stack186 jsr _vputa *reset second column187 move.w #55,COL(a7) *put 3rd column on stack188 jsr _vputa *reset third column189 move.w vrcw,d0 *restore vrcw to d0190 * 191 *Output192 *------193 srs7: btst #7,d0 *output ?194 beq srs8 *jump if not195 * 196 move.w #AT10,ATR(a7) *put attribute on stack197 move.w #1,ROW(a7) *put row on stack198 move.w #57,COL(a7) *put 1st column on stack199 jsr _vputa *reset first column200 move.w #58,COL(a7) *put 2nd column on stack201 jsr _vputa *reset second column202 move.w #59,COL(a7) *put 3rd column on stack203 jsr _vputa *reset third column204 move.w #60,COL(a7) *put 4th column on stack205 jsr _vputa *reset fourth column206 move.w #61,COL(a7) *put 5th column on stack207 jsr _vputa *reset fifth column208 move.w #62,COL(a7) *put 6th column on stack209 jsr _vputa *reset sixth column210 move.w vrcw,d0 *restore vrcw to d0211 * 212 .page 213 * 214 *instrument215 *----------216 srs8: btst #8,d0 *instrument ?217 beq srs9 *jump if not218 * 219 move.w #2,ROW(a7) *put row on stack220 move.w #AT11,ATR(a7) *put attribute on stack221 btst #0,vrbw08+1 *group 1 ?222 beq srs8a *jump if not223 * 224 move.w #7,COL(a7) *put 1st column on stack225 jsr _vputa *reset first column226 move.w #8,COL(a7) *put 2nd column on stack227 jsr _vputa *reset second column228 * 229 srs8a: btst #1,vrbw08+1 *group 2 ?230 beq srs8b *jump if not231 * 232 move.w #12,COL(a7) *put 1st column on stack233 jsr _vputa *reset first character234 move.w #13,COL(a7) *put 2nd column on stack235 jsr _vputa *reset second character236 * 237 srs8b: btst #2,vrbw08+1 *group 3 ?238 beq srs8c *jump if not239 * 240 move.w #17,COL(a7) *put 1st column on stack241 jsr _vputa *reset first character242 move.w #18,COL(a7) *put 2nd column on stack243 jsr _vputa *reset second character244 * 245 srs8c: btst #3,vrbw08+1 *group 4 ?246 beq srs8d *jump if not247 * 248 move.w #22,COL(a7) *put 1st column on stack249 jsr _vputa *reset first character250 move.w #23,COL(a7) *put 2nd column on stack251 jsr _vputa *reset second character252 * 253 .page 254 * 255 srs8d: btst #4,vrbw08+1 *group 5 ?256 beq srs8e *jump if not257 * 258 move.w #27,COL(a7) *put 1st column on stack259 jsr _vputa *reset first character260 move.w #28,COL(a7) *put 2nd column on stack261 jsr _vputa *reset second character262 * 263 srs8e: btst #5,vrbw08+1 *group 6 ?264 beq srs8f *jump if not265 * 266 move.w #32,COL(a7) *put 1st column on stack267 jsr _vputa *reset first character268 move.w #33,COL(a7) *put 2nd column on stack269 jsr _vputa *reset second character270 * 271 srs8f: btst #6,vrbw08+1 *group 7 ?272 beq srs8g *jump if not273 * 274 move.w #37,COL(a7) *put 1st column on stack275 jsr _vputa *reset first character276 move.w #38,COL(a7) *put 2nd column on stack277 jsr _vputa *reset second character278 * 279 srs8g: btst #7,vrbw08+1 *group 8 ?280 beq srs8h *jump if not281 * 282 move.w #42,COL(a7) *put 1st column on stack283 jsr _vputa *reset first character284 move.w #43,COL(a7) *put 2nd column on stack285 jsr _vputa *reset second character286 * 287 .page 288 * 289 srs8h: btst #0,vrbw08 *group 9290 beq srs8j *jump if not291 * 292 move.w #47,COL(a7) *put 1st column on stack293 jsr _vputa *reset first character294 move.w #48,COL(a7) *put 2nd column on stack295 jsr _vputa *reset second character296 * 297 srs8j: btst #1,vrbw08 *group 10298 beq srs8k *jump if not299 * 300 move.w #52,COL(a7) *put 1st column on stack301 jsr _vputa *reset first character302 move.w #53,COL(a7) *put 2nd column on stack303 jsr _vputa *reset second character304 * 305 srs8k: btst #2,vrbw08 *group 11306 beq srs8m *jump if not307 * 308 move.w #57,COL(a7) *put 1st column on stack309 jsr _vputa *reset first character310 move.w #58,COL(a7) *put 2nd column on stack311 jsr _vputa *reset second character312 * 313 srs8m: btst #3,vrbw08 *group 12314 beq srs8x *jump if not315 * 316 move.w #62,COL(a7) *put 1st column on stack317 jsr _vputa *reset first character318 move.w #63,COL(a7) *put 2nd column on stack319 jsr _vputa *reset second character320 * 321 srs8x: move.w vrcw,d0 *restore vrcw to d0322 * 323 .page 324 * 325 *transpose326 *---------327 srs9: btst #9,d0 *transpose ?328 beq srs10 *jump if not329 * 330 move.w #AT11,ATR(a7) *put attribute on stack331 move.w #3,ROW(a7) *put row on stack332 btst #0,vrbw09+1 *group 1 ?333 beq srs9a *jump if not334 * 335 move.w #5,COL(a7) *put 1st column on stack336 jsr _vputa *reset first column337 move.w #6,COL(a7) *put 2nd column on stack338 jsr _vputa *reset second column339 move.w #7,COL(a7) *put 3rd column on stack340 jsr _vputa *reset third column341 move.w #8,COL(a7) *put 4th column on stack342 jsr _vputa *reset fourth column343 * 344 srs9a: btst #1,vrbw09+1 *group 2 ?345 beq srs9b *jump if not346 * 347 move.w #10,COL(a7) *put 1st column on stack348 jsr _vputa *reset first column349 move.w #11,COL(a7) *put 2nd column on stack350 jsr _vputa *reset second column351 move.w #12,COL(a7) *put 3rd column on stack352 jsr _vputa *reset third column353 move.w #13,COL(a7) *put 4th column on stack354 jsr _vputa *reset fourth column355 * 356 srs9b: btst #2,vrbw09+1 *group 3 ?357 beq srs9c *jump if not358 * 359 move.w #15,COL(a7) *put 1st column on stack360 jsr _vputa *reset first column361 move.w #16,COL(a7) *put 2nd column on stack362 jsr _vputa *reset second column363 move.w #17,COL(a7) *put 3rd column on stack364 jsr _vputa *reset third column365 move.w #18,COL(a7) *put 4th column on stack366 jsr _vputa *reset fourth column367 * 368 .page 369 * 370 srs9c: btst #3,vrbw09+1 *group 4 ?371 beq srs9d *jump if not372 * 373 move.w #20,COL(a7) *put 1st column on stack374 jsr _vputa *reset first column375 move.w #21,COL(a7) *put 2nd column on stack376 jsr _vputa *reset second column377 move.w #22,COL(a7) *put 3rd column on stack378 jsr _vputa *reset third column379 move.w #23,COL(a7) *put 4th column on stack380 jsr _vputa *reset fourth column381 * 382 srs9d: btst #4,vrbw09+1 *group 5 ?383 beq srs9e *jump if not384 * 385 move.w #25,COL(a7) *put 1st column on stack386 jsr _vputa *reset first column387 move.w #26,COL(a7) *put 2nd column on stack388 jsr _vputa *reset second column389 move.w #27,COL(a7) *put 3rd column on stack390 jsr _vputa *reset third column391 move.w #28,COL(a7) *put 4th column on stack392 jsr _vputa *reset fourth column393 * 394 srs9e: btst #5,vrbw09+1 *group 6 ?395 beq srs9f *jump if not396 * 397 move.w #30,COL(a7) *put 1st column on stack398 jsr _vputa *reset first column399 move.w #31,COL(a7) *put 2nd column on stack400 jsr _vputa *reset second column401 move.w #32,COL(a7) *put 3rd column on stack402 jsr _vputa *reset third column403 move.w #33,COL(a7) *put 4th column on stack404 jsr _vputa *reset fourth column405 * 406 .page 407 * 408 srs9f: btst #6,vrbw09+1 *group 7 ?409 beq srs9g *jump if not410 * 411 move.w #35,COL(a7) *put 1st column on stack412 jsr _vputa *reset first column413 move.w #36,COL(a7) *put 2nd column on stack414 jsr _vputa *reset second column415 move.w #37,COL(a7) *put 3rd column on stack416 jsr _vputa *reset third column417 move.w #38,COL(a7) *put 4th column on stack418 jsr _vputa *reset fourth column419 * 420 srs9g: btst #7,vrbw09+1 *group 8 ?421 beq srs9h *jump if not422 * 423 move.w #40,COL(a7) *put 1st column on stack424 jsr _vputa *reset first column425 move.w #41,COL(a7) *put 2nd column on stack426 jsr _vputa *reset second column427 move.w #42,COL(a7) *put 3rd column on stack428 jsr _vputa *reset third column429 move.w #43,COL(a7) *put 4th column on stack430 jsr _vputa *reset fourth column431 * 432 srs9h: btst #0,vrbw09 *group 9433 beq srs9j *jump if not434 * 435 move.w #45,COL(a7) *put 1st column on stack436 jsr _vputa *reset first column437 move.w #46,COL(a7) *put 2nd column on stack438 jsr _vputa *reset second column439 move.w #47,COL(a7) *put 3rd column on stack440 jsr _vputa *reset third column441 move.w #48,COL(a7) *put 4th column on stack442 jsr _vputa *reset fourth column443 * 444 .page 445 * 446 srs9j: btst #1,vrbw09 *group 10447 beq srs9k *jump if not448 * 449 move.w #50,COL(a7) *put 1st column on stack450 jsr _vputa *reset first column451 move.w #51,COL(a7) *put 2nd column on stack452 jsr _vputa *reset second column453 move.w #52,COL(a7) *put 3rd column on stack454 jsr _vputa *reset third column455 move.w #53,COL(a7) *put 4th column on stack456 jsr _vputa *reset fourth column457 * 458 srs9k: btst #2,vrbw09 *group 11459 beq srs9m *jump if not460 * 461 move.w #55,COL(a7) *put 1st column on stack462 jsr _vputa *reset first column463 move.w #56,COL(a7) *put 2nd column on stack464 jsr _vputa *reset second column465 move.w #57,COL(a7) *put 3rd column on stack466 jsr _vputa *reset third column467 move.w #58,COL(a7) *put 4th column on stack468 jsr _vputa *reset fourth column469 * 470 srs9m: btst #3,vrbw09 *group 12471 beq srs9x *jump if not472 * 473 move.w #60,COL(a7) *put 1st column on stack474 jsr _vputa *reset first column475 move.w #61,COL(a7) *put 2nd column on stack476 jsr _vputa *reset second column477 move.w #62,COL(a7) *put 3rd column on stack478 jsr _vputa *reset third column479 move.w #63,COL(a7) *put 4th column on stack480 jsr _vputa *reset fourth column481 * 482 srs9x: move.w vrcw,d0 *restore vrcw to d0483 * 484 .page 485 * 486 *dynamics487 *--------488 srs10: btst #10,d0 *dynamics ?489 beq srs11 *jump if not490 * 491 move.w #AT11,ATR(a7) *put attribute on stack492 move.w #4,ROW(a7) *put row on stack493 btst #0,vrbw10+1 *group 1 ?494 beq srs10a *jump if not495 * 496 move.w #6,COL(a7) *put column on stack497 jsr _vputa *reset column498 * 499 srs10a: btst #1,vrbw10+1 *group 2 ?500 beq srs10b *jump if not501 * 502 move.w #11,COL(a7) *put column on stack503 jsr _vputa *reset column504 * 505 srs10b: btst #2,vrbw10+1 *group 3 ?506 beq srs10c *jump if not507 * 508 move.w #16,COL(a7) *put column on stack509 jsr _vputa *reset column510 * 511 srs10c: btst #3,vrbw10+1 *group 4 ?512 beq srs10d *jump if not513 * 514 move.w #21,COL(a7) *put column on stack515 jsr _vputa *reset column516 * 517 .page 518 * 519 srs10d: btst #4,vrbw10+1 *group 5 ?520 beq srs10e *jump if not521 * 522 move.w #26,COL(a7) *put column on stack523 jsr _vputa *reset column524 * 525 srs10e: btst #5,vrbw10+1 *group 6 ?526 beq srs10f *jump if not527 * 528 move.w #31,COL(a7) *put column on stack529 jsr _vputa *reset column530 * 531 srs10f: btst #6,vrbw10+1 *group 7 ?532 beq srs10g *jump if not533 * 534 move.w #36,COL(a7) *put column on stack535 jsr _vputa *reset column536 * 537 srs10g: btst #7,vrbw10+1 *group 8 ?538 beq srs10h *jump if not539 * 540 move.w #41,COL(a7) *put column on stack541 jsr _vputa *reset column542 * 543 .page 544 * 545 srs10h: btst #0,vrbw10 *group 9546 beq srs10j *jump if not547 * 548 move.w #46,COL(a7) *put column on stack549 jsr _vputa *reset column550 * 551 srs10j: btst #1,vrbw10 *group 10552 beq srs10k *jump if not553 * 554 move.w #51,COL(a7) *put column on stack555 jsr _vputa *reset column556 * 557 srs10k: btst #2,vrbw10 *group 11558 beq srs10m *jump if not559 * 560 move.w #56,COL(a7) *put column on stack561 jsr _vputa *reset column562 * 563 srs10m: btst #3,vrbw10 *group 12564 beq srs10x *jump if not565 * 566 move.w #61,COL(a7) *put column on stack567 jsr _vputa *reset column568 * 569 srs10x: move.w vrcw,d0 *restore vrcw to d0570 * 571 .page 572 * 573 *location574 *--------575 srs11: btst #11,d0 *location ?576 beq srs12 *jump if not577 * 578 move.w #AT11,ATR(a7) *put attribute on stack579 move.w #4,ROW(a7) *put row on stack580 btst #0,vrbw11+1 *group 1 ?581 beq srs11a *jump if not582 * 583 move.w #8,COL(a7) *put column on stack584 jsr _vputa *reset column585 * 586 srs11a: btst #1,vrbw11+1 *group 2 ?587 beq srs11b *jump if not588 * 589 move.w #13,COL(a7) *put column on stack590 jsr _vputa *reset column591 * 592 srs11b: btst #2,vrbw11+1 *group 3 ?593 beq srs11c *jump if not594 * 595 move.w #18,COL(a7) *put column on stack596 jsr _vputa *reset column597 * 598 srs11c: btst #3,vrbw11+1 *group 4 ?599 beq srs11d *jump if not600 * 601 move.w #23,COL(a7) *put column on stack602 jsr _vputa *reset column603 * 604 .page 605 * 606 srs11d: btst #4,vrbw11+1 *group 5 ?607 beq srs11e *jump if not608 * 609 move.w #28,COL(a7) *put column on stack610 jsr _vputa *reset column611 * 612 srs11e: btst #5,vrbw11+1 *group 6 ?613 beq srs11f *jump if not614 * 615 move.w #33,COL(a7) *put column on stack616 jsr _vputa *reset column617 * 618 srs11f: btst #6,vrbw11+1 *group 7 ?619 beq srs11g *jump if not620 * 621 move.w #38,COL(a7) *put column on stack622 jsr _vputa *reset column623 * 624 srs11g: btst #7,vrbw11+1 *group 8 ?625 beq srs11h *jump if not626 * 627 move.w #43,COL(a7) *put column on stack628 jsr _vputa *reset column629 * 630 .page 631 * 632 srs11h: btst #0,vrbw11 *group 9633 beq srs11j *jump if not634 * 635 move.w #48,COL(a7) *put column on stack636 jsr _vputa *reset column637 * 638 srs11j: btst #1,vrbw11 *group 10639 beq srs11k *jump if not640 * 641 move.w #53,COL(a7) *put column on stack642 jsr _vputa *reset column643 * 644 srs11k: btst #2,vrbw11 *group 11645 beq srs11m *jump if not646 * 647 move.w #58,COL(a7) *put column on stack648 jsr _vputa *reset column649 * 650 srs11m: btst #3,vrbw11 *group 12651 beq srs11x *jump if not652 * 653 move.w #63,COL(a7) *put column on stack654 jsr _vputa *reset column655 * 656 srs11x: move.w vrcw,d0 *restore vrcw to d0657 * 658 .page 659 * 660 *velocity661 *--------662 srs12: btst #12,d0 *velocity ?663 beq srs13 *jump if not664 * 665 move.w #AT11,ATR(a7) *put attribute on stack666 move.w #5,ROW(a7) *put row on stack667 btst #0,vrbw12+1 *group 1 ?668 beq srs12a *jump if not669 * 670 move.w #6,COL(a7) *put 1st column on stack671 jsr _vputa *reset first column672 move.w #7,COL(a7) *put 2nd column on stack673 jsr _vputa *reset second column674 move.w #8,COL(a7) *put 3rd column on stack675 jsr _vputa *reset third column676 * 677 srs12a: btst #1,vrbw12+1 *group 2 ?678 beq srs12b *jump if not679 * 680 move.w #11,COL(a7) *put 1st column on stack681 jsr _vputa *reset first column682 move.w #12,COL(a7) *put 2nd column on stack683 jsr _vputa *reset second column684 move.w #13,COL(a7) *put 3rd column on stack685 jsr _vputa *reset third column686 * 687 srs12b: btst #2,vrbw12+1 *group 3 ?688 beq srs12c *jump if not689 * 690 move.w #16,COL(a7) *put 1st column on stack691 jsr _vputa *reset first column692 move.w #17,COL(a7) *put 2nd column on stack693 jsr _vputa *reset second column694 move.w #18,COL(a7) *put 3rd column on stack695 jsr _vputa *reset third column696 * 697 .page 698 * 699 srs12c: btst #3,vrbw12+1 *group 4 ?700 beq srs12d *jump if not701 * 702 move.w #21,COL(a7) *put 1st column on stack703 jsr _vputa *reset first column704 move.w #22,COL(a7) *put 2nd column on stack705 jsr _vputa *reset second column706 move.w #23,COL(a7) *put 3rd column on stack707 jsr _vputa *reset third column708 * 709 srs12d: btst #4,vrbw12+1 *group 5 ?710 beq srs12e *jump if not711 * 712 move.w #26,COL(a7) *put 1st column on stack713 jsr _vputa *reset first column714 move.w #27,COL(a7) *put 2nd column on stack715 jsr _vputa *reset second column716 move.w #28,COL(a7) *put 3rd column on stack717 jsr _vputa *reset third column718 * 719 srs12e: btst #5,vrbw12+1 *group 6 ?720 beq srs12f *jump if not721 * 722 move.w #31,COL(a7) *put 1st column on stack723 jsr _vputa *reset first column724 move.w #32,COL(a7) *put 2nd column on stack725 jsr _vputa *reset second column726 move.w #33,COL(a7) *put 3rd column on stack727 jsr _vputa *reset third column728 * 729 .page 730 * 731 srs12f: btst #6,vrbw12+1 *group 7 ?732 beq srs12g *jump if not733 * 734 move.w #36,COL(a7) *put 1st column on stack735 jsr _vputa *reset first column736 move.w #37,COL(a7) *put 2nd column on stack737 jsr _vputa *reset second column738 move.w #38,COL(a7) *put 3rd column on stack739 jsr _vputa *reset third column740 * 741 srs12g: btst #7,vrbw12+1 *group 8 ?742 beq srs12h *jump if not743 * 744 move.w #41,COL(a7) *put 1st column on stack745 jsr _vputa *reset first column746 move.w #42,COL(a7) *put 2nd column on stack747 jsr _vputa *reset second column748 move.w #43,COL(a7) *put 3rd column on stack749 jsr _vputa *reset third column750 * 751 srs12h: btst #0,vrbw12 *group 9752 beq srs12j *jump if not753 * 754 move.w #46,COL(a7) *put 1st column on stack755 jsr _vputa *reset first column756 move.w #47,COL(a7) *put 2nd column on stack757 jsr _vputa *reset second column758 move.w #48,COL(a7) *put 3rd column on stack759 jsr _vputa *reset third column760 * 761 .page 762 * 763 srs12j: btst #1,vrbw12 *group 10764 beq srs12k *jump if not765 * 766 move.w #51,COL(a7) *put 1st column on stack767 jsr _vputa *reset first column768 move.w #52,COL(a7) *put 2nd column on stack769 jsr _vputa *reset second column770 move.w #53,COL(a7) *put 3rd column on stack771 jsr _vputa *reset third column772 * 773 srs12k: btst #2,vrbw12 *group 11774 beq srs12m *jump if not775 * 776 move.w #56,COL(a7) *put 1st column on stack777 jsr _vputa *reset first column778 move.w #57,COL(a7) *put 2nd column on stack779 jsr _vputa *reset second column780 move.w #58,COL(a7) *put 3rd column on stack781 jsr _vputa *reset third column782 * 783 srs12m: btst #3,vrbw12 *group 12784 beq srs12x *jump if not785 * 786 move.w #61,COL(a7) *put 1st column on stack787 jsr _vputa *reset first column788 move.w #62,COL(a7) *put 2nd column on stack789 jsr _vputa *reset second column790 move.w #63,COL(a7) *put 3rd column on stack791 jsr _vputa *reset third column792 * 793 srs12x: move.w vrcw,d0 *restore vrcw to d0794 * 795 .page 796 * 797 *resolution798 *----------799 srs13: btst #13,d0 *resolution ?800 beq srs14 *jump if not801 * 802 move.w #AT12,ATR(a7) *put attribute on stack803 move.w #7,ROW(a7) *put row on stack804 btst #0,vrbw13+1 *variable 1 ?805 beq srs13a *jump if not806 * 807 move.w #6,COL(a7) *put column on stack808 jsr _vputa *reset column809 * 810 srs13a: btst #1,vrbw13+1 *variable 2 ?811 beq srs13b *jump if not812 * 813 move.w #15,COL(a7) *put column on stack814 jsr _vputa *reset column815 * 816 srs13b: btst #2,vrbw13+1 *variable 3 ?817 beq srs13c *jump if not818 * 819 move.w #24,COL(a7) *put column on stack820 jsr _vputa *reset column821 * 822 srs13c: btst #3,vrbw13+1 *variable 4 ?823 beq srs13d *jump if not824 * 825 move.w #33,COL(a7) *put column on stack826 jsr _vputa *reset column827 * 828 srs13d: btst #4,vrbw13+1 *variable 5 ?829 beq srs13e *jump if not830 * 831 move.w #42,COL(a7) *put column on stack832 jsr _vputa *reset column833 * 834 srs13e: btst #5,vrbw13+1 *variable 6 ?835 beq srs13x *jump if not836 * 837 move.w #51,COL(a7) *put column on stack838 jsr _vputa *reset column839 * 840 srs13x: move.w vrcw,d0 *restore vrcw to d0841 * 842 .page 843 * 844 *analog value845 *------------846 srs14: btst #14,d0 *analog value ?847 beq srs15 *jump if not848 * 849 move.w #AT12,ATR(a7) *put attribute on stack850 move.w #7,ROW(a7) *put row on stack851 btst #0,vrbw14+1 *variable 1 ?852 beq srs14a *jump if not853 * 854 move.w #8,COL(a7) *put 1st column on stack855 jsr _vputa *reset first column856 move.w #9,COL(a7) *put 2nd column on stack857 jsr _vputa *reset second column858 move.w #10,COL(a7) *put 3rd column on stack859 jsr _vputa *reset third column860 move.w #11,COL(a7) *put 4th column on stack861 jsr _vputa *reset fourth column862 move.w #12,COL(a7) *put 5th column on stack863 jsr _vputa *reset fifth column864 * 865 srs14a: btst #1,vrbw14+1 *variable 2 ?866 beq srs14b *jump if not867 * 868 move.w #17,COL(a7) *put 1st column on stack869 jsr _vputa *reset first column870 move.w #18,COL(a7) *put 2nd column on stack871 jsr _vputa *reset second column872 move.w #19,COL(a7) *put 3rd column on stack873 jsr _vputa *reset third column874 move.w #20,COL(a7) *put 4th column on stack875 jsr _vputa *reset fourth column876 move.w #21,COL(a7) *put 5th column on stack877 jsr _vputa *reset fifth column878 * 879 .page 880 * 881 srs14b: btst #2,vrbw14+1 *variable 3 ?882 beq srs14c *jump if not883 * 884 move.w #26,COL(a7) *put 1st column on stack885 jsr _vputa *reset first column886 move.w #27,COL(a7) *put 2nd column on stack887 jsr _vputa *reset second column888 move.w #28,COL(a7) *put 3rd column on stack889 jsr _vputa *reset third column890 move.w #29,COL(a7) *put 4th column on stack891 jsr _vputa *reset fourth column892 move.w #30,COL(a7) *put 5th column on stack893 jsr _vputa *reset fifth column894 * 895 srs14c: btst #3,vrbw14+1 *variable 4 ?896 beq srs14d *jump if not897 * 898 move.w #35,COL(a7) *put 1st column on stack899 jsr _vputa *reset first column900 move.w #36,COL(a7) *put 2nd column on stack901 jsr _vputa *reset second column902 move.w #37,COL(a7) *put 3rd column on stack903 jsr _vputa *reset third column904 move.w #38,COL(a7) *put 4th column on stack905 jsr _vputa *reset fourth column906 move.w #39,COL(a7) *put 5th column on stack907 jsr _vputa *reset fifth column908 * 909 .page 910 * 911 srs14d: btst #4,vrbw14+1 *variable 5 ?912 beq srs14e *jump if not913 * 914 move.w #44,COL(a7) *put 1st column on stack915 jsr _vputa *reset first column916 move.w #45,COL(a7) *put 2nd column on stack917 jsr _vputa *reset second column918 move.w #46,COL(a7) *put 3rd column on stack919 jsr _vputa *reset third column920 move.w #47,COL(a7) *put 4th column on stack921 jsr _vputa *reset fourth column922 move.w #48,COL(a7) *put 5th column on stack923 jsr _vputa *reset fifth column924 * 925 srs14e: btst #5,vrbw14+1 *variable 6 ?926 beq srs14x *jump if not927 * 928 move.w #53,COL(a7) *put 1st column on stack929 jsr _vputa *reset first column930 move.w #54,COL(a7) *put 2nd column on stack931 jsr _vputa *reset second column932 move.w #55,COL(a7) *put 3rd column on stack933 jsr _vputa *reset third column934 move.w #56,COL(a7) *put 4th column on stack935 jsr _vputa *reset fourth column936 move.w #57,COL(a7) *put 5th column on stack937 jsr _vputa *reset fifth column938 * 939 srs14x: move.w vrcw,d0 *restore vrcw to d0940 * 941 .page 942 * 943 *stop/next944 *---------945 srs15: btst #15,d0 *stop/next ?946 beq srs16 *jump if not947 * 948 btst #0,vrbw15 *stop ?949 beq srs15a *jump if not950 * 951 move.w #AT08,ATR(a7) *put attribute on stack952 move.w #1,ROW(a7) *put row on stack953 move.w #40,COL(a7) *put 1st column on stack954 jsr _vputa *reset first column955 move.w #41,COL(a7) *put 2nd column on stack956 jsr _vputa *reset second column957 move.w #42,COL(a7) *put 3rd column on stack958 jsr _vputa *reset third column959 move.w #43,COL(a7) *put 4th column on stack960 jsr _vputa *reset fourth column961 * 962 srs15a: btst #1,vrbw15 *next ?963 beq srs16 *jump if not964 * 965 move.w #AT08,ATR(a7) *put attribute on stack966 move.w #1,ROW(a7) *put row on stack967 move.w #45,COL(a7) *put 1st column on stack968 jsr _vputa *reset first column969 move.w #46,COL(a7) *put 2nd column on stack970 jsr _vputa *reset second column971 move.w #47,COL(a7) *put 3rd column on stack972 jsr _vputa *reset third column973 move.w #48,COL(a7) *put 4th column on stack974 jsr _vputa *reset fourth column975 * 976 srs16: add.l #10,a7 *clean up stack977 bra srsexit *done978 * 979 .page 980 * 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 23 ROW = 4 24 COL = 6 25 ATR = 8 26 27 AT01 = 0x0014 28 AT04 = 0x0013 29 AT05 = 0x0014 30 AT06 = 0x0013 31 AT07 = 0x0014 32 AT08 = 0x0013 33 AT09 = 0x0014 34 AT10 = 0x0013 35 AT11 = 0x0012 36 AT12 = 0x0012 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 49 srsexit: unlk a6 | unlink stack frame 50 rts | return to caller 51 52 srs0: 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 | ------ 106 srs1: 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 | ----- 117 srs2: 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 | ----------- 134 srs3: 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 | ------------- 151 srs4: 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 | -------- 165 srs5: 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 | --------- 178 srs6: 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 | ------ 193 srs7: 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 | ---------- 216 srs8: 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 229 srs8a: 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 237 srs8b: 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 245 srs8c: 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 255 srs8d: 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 263 srs8e: 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 271 srs8f: 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 279 srs8g: 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 289 srs8h: 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 297 srs8j: 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 305 srs8k: 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 313 srs8m: 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 321 srs8x: move.w vrcw,d0 | restore vrcw to d0 322 323 .page 324 325 | transpose 326 | --------- 327 srs9: 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 344 srs9a: 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 356 srs9b: 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 370 srs9c: 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 382 srs9d: 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 394 srs9e: 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 408 srs9f: 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 420 srs9g: 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 432 srs9h: 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 446 srs9j: 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 458 srs9k: 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 470 srs9m: 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 482 srs9x: move.w vrcw,d0 | restore vrcw to d0 483 484 .page 485 486 | dynamics 487 | -------- 488 srs10: 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 499 srs10a: 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 505 srs10b: 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 511 srs10c: 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 519 srs10d: 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 525 srs10e: 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 531 srs10f: 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 537 srs10g: 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 545 srs10h: 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 551 srs10j: 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 557 srs10k: 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 563 srs10m: 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 569 srs10x: move.w vrcw,d0 | restore vrcw to d0 570 571 .page 572 573 | location 574 | -------- 575 srs11: 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 586 srs11a: 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 592 srs11b: 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 598 srs11c: 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 606 srs11d: 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 612 srs11e: 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 618 srs11f: 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 624 srs11g: 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 632 srs11h: 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 638 srs11j: 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 644 srs11k: 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 650 srs11m: 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 656 srs11x: move.w vrcw,d0 | restore vrcw to d0 657 658 .page 659 660 | velocity 661 | -------- 662 srs12: 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 677 srs12a: 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 687 srs12b: 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 699 srs12c: 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 709 srs12d: 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 719 srs12e: 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 731 srs12f: 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 741 srs12g: 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 751 srs12h: 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 763 srs12j: 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 773 srs12k: 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 783 srs12m: 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 793 srs12x: move.w vrcw,d0 | restore vrcw to d0 794 795 .page 796 797 | resolution 798 | ---------- 799 srs13: 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 810 srs13a: 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 816 srs13b: 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 822 srs13c: 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 828 srs13d: 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 834 srs13e: 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 840 srs13x: move.w vrcw,d0 | restore vrcw to d0 841 842 .page 843 844 | analog value 845 | ------------ 846 srs14: 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 865 srs14a: 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 881 srs14b: 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 895 srs14c: 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 911 srs14d: 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 925 srs14e: 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 939 srs14x: move.w vrcw,d0 | restore vrcw to d0 940 941 .page 942 943 | stop/next 944 | --------- 945 srs15: 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 962 srs15a: 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 976 srs16: add.l #10,a7 | clean up stack 977 bra srsexit | done 978 979 .page 980 981 981 .bss 982 * 983 *local copies of _vrcw, _vrbw08.._vrbw15984 * 982 983 | local copies of _vrcw, _vrbw08.._vrbw15 984 985 985 vrcw: .ds.w 1 986 986 vrbw08: .ds.w 1 … … 992 992 vrbw14: .ds.w 1 993 993 vrbw15: .ds.w 1 994 * 994 995 995 .end
Note:
See TracChangeset
for help on using the changeset viewer.