Changeset 4f508e6 in buchla-68k for ram/sreset.s


Ignore:
Timestamp:
07/01/2017 02:34:46 PM (7 years ago)
Author:
Thomas Lopatic <thomas@…>
Branches:
master
Children:
08e1da1
Parents:
f40a309
Message:

Converted assembly language files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ram/sreset.s

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