Changeset 8325447 in buchla-68k for ram


Ignore:
Timestamp:
08/07/2017 02:04:35 PM (7 years ago)
Author:
Thomas Lopatic <thomas@…>
Branches:
master
Children:
27c8d40
Parents:
84c0125
Message:

Removed _ prefix.

Location:
ram
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • ram/execins.s

    r84c0125 r8325447  
    1010DOUBLED         =       1                       | double output to WS table
    1111
    12                 .xdef   _execins
    13 
    14                 .xref   _clrvce
    15                 .xref   _execkey
    16 
    17                 .xref   _io_fpu
    18                 .xref   _instmod
    19                 .xref   _s_inst
    20                 .xref   _idefs
    21                 .xref   _vbufs
     12                .xdef   execins
     13
     14                .xref   clrvce
     15                .xref   execkey
     16
     17                .xref   io_fpu
     18                .xref   instmod
     19                .xref   s_inst
     20                .xref   idefs
     21                .xref   vbufs
    2222
    2323| register equates
     
    4242                .page
    4343
    44 _execins:       link    A6,#0                   | link stack frames
     44execins:        link    A6,#0                   | link stack frames
    4545                movem.l D3-VCE/P2-IP,-(sp)      | preserve registers
    4646                move.w  VOICE(A6),VCE           | get voice number
     
    5050                lea     vibtabl,A0              | ...
    5151                movea.l 0(A0,D0.W),IP           | ...
    52                 add.l   #_vbufs,IP              | ...
     52                add.l   #vbufs,IP               | ...
    5353                move.w  VCE,(sp)                | clrvce(vce)
    54                 jsr     _clrvce                 | ...
     54                jsr     clrvce                  | ...
    5555                tst.w   TAG(A6)                 | if (tag) {
    5656                beq     L2                      | ...
     
    6262                lea     vibtabl,A0              | ...
    6363                movea.l 0(A0,D0.W),P2           | ...
    64                 add.l   #_idefs,P2              | ...
     64                add.l   #idefs,P2               | ...
    6565                move.w  #1968,D0                | set move count
    6666
     
    7777                move.l  D0,P1                   | ...
    7878                move.l  D0,P3                   | ...
    79                 add.l   #_io_fpu,P1             | point P1 at FPU WS A
     79                add.l   #io_fpu,P1              | point P1 at FPU WS A
    8080                add.l   #0x202,P1               | ...
    8181                lea     1778(IP),P2             | point P2 at instdef WS A
    82                 add.l   #_io_fpu,P3             | point P3 at FPU WS B
     82                add.l   #io_fpu,P3              | point P3 at FPU WS B
    8383                add.l   #2,P3                   | ...
    8484                lea     2858(IP),P4             | point P4 at instdef WS B
     
    129129                move.w  VCE,A0                  | instmod[vce] = FALSE
    130130                add.l   A0,A0                   | ...
    131                 add.l   #_instmod,A0            | ...
     131                add.l   #instmod,A0             | ...
    132132                clr.w   (A0)                    | ...
    133133                move.w  VCE,A0                  | s_inst[vce] = ins
    134134                add.l   A0,A0                   | ...
    135                 add.l   #_s_inst,A0             | ...
     135                add.l   #s_inst,A0              | ...
    136136                move.w  INS(A6),(A0)            | ...
    137137                move.b  70(IP),SYNC             | get config bits
     
    155155L17:            move.w  VCE,A0                  | send sync to FPU
    156156                add.l   A0,A0                   | ...
    157                 add.l   #_io_fpu,A0             | ...
     157                add.l   #io_fpu,A0              | ...
    158158                add.l   #0x5FE0,A0              | ...
    159159                move.w  SYNC,(A0)               | ...
     
    163163                clr.w   -(sp)                   | ...
    164164                move.w  #-1,-(sp)               | ...
    165                 jsr     _execkey                | ...
     165                jsr     execkey                 | ...
    166166                addq.l  #6,sp                   | ...
    167167                tst.l   (sp)+                   | clean up stack
  • ram/execkey.s

    r84c0125 r8325447  
    99LOC_SUB         =       1
    1010
    11                 .xdef   _execkey
    12 
    13                 .xref   _xgetran
    14 
    15                 .xref   _rsntab
    16                 .xref   _expbit
    17                 .xref   _io_fpu
    18                 .xref   _legato
    19                 .xref   _prstab
    20                 .xref   _ptoftab
    21                 .xref   _timemlt
    22                 .xref   _valents
    23                 .xref   _vbufs
    24                 .xref   _vce2grp
    25                 .xref   _vce2trg
    26                 .xref   _veltab
    27                 .xref   _vpsms
     11                .xdef   execkey
     12
     13                .xref   xgetran
     14
     15                .xref   rsntab
     16                .xref   expbit
     17                .xref   io_fpu
     18                .xref   legato
     19                .xref   prstab
     20                .xref   ptoftab
     21                .xref   timemlt
     22                .xref   valents
     23                .xref   vbufs
     24                .xref   vce2grp
     25                .xref   vce2trg
     26                .xref   veltab
     27                .xref   vpsms
    2828
    2929                .page
     
    8181| {
    8282
    83 _execkey:       link    A6,#LASTLOCL
     83execkey:        link    A6,#LASTLOCL
    8484                movem.l D2-R_FPMANT/A_SMP-A_FP,-(sp)
    8585
     
    9494
    9595                lsr.w   #1,D0
    96                 lea     _vce2trg,A0
     96                lea     vce2trg,A0
    9797                move.w  TRG(A6),0(A0,D0.W)
    9898
     
    101101                move.w  VCE(A6),A0
    102102                add.l   A0,A0
    103                 move.l  #_vce2grp,A1
     103                move.l  #vce2grp,A1
    104104                clr.l   D0
    105105                move.w  0(A0,A1.l),D0
     
    136136                ext.l   D0
    137137                move.l  D0,A_FPU
    138                 add.l   #_io_fpu+0x4000,A_FPU
     138                add.l   #io_fpu+0x4000,A_FPU
    139139
    140140|       fp = &ip->idhfnc[0];
     
    172172                lsl.l   #2,D0
    173173                add.l   D1,D0
    174                 add.l   #_valents,D0
     174                add.l   #valents,D0
    175175                move.l  D0,VEP(A6)
    176176
     
    180180                add.l   A0,A0
    181181                add.l   A0,A0
    182                 add.l   #_vpsms,A0
     182                add.l   #vpsms,A0
    183183                move.l  (A0),A_SMP
    184184
     
    261261
    262262F00L117:        move    MLTVAL(A6),(sp)
    263                 jsr     _xgetran
     263                jsr     xgetran
    264264                move    D0,TSRCVAL(A6)
    265265
     
    287287                move.w  D0,A0
    288288                add.l   A0,A0
    289                 add.l   #_ptoftab,A0
     289                add.l   #ptoftab,A0
    290290                move.w  (A0),TSRCVAL(A6)
    291291
     
    299299F00L120:        move.w  TRG(A6),A0
    300300                add.l   A0,A0
    301                 add.l   #_veltab,A0
     301                add.l   #veltab,A0
    302302                move.w  (A0),TSRCVAL(A6)
    303303
     
    311311F00L121:        move.w  TRG(A6),A0
    312312                add.l   A0,A0
    313                 add.l   #_prstab,A0
     313                add.l   #prstab,A0
    314314                move.w  (A0),TSRCVAL(A6)
    315315
     
    369369F00L139:        move.l  PT(A6),A0
    370370                move    4(A0),(sp)
    371                 jsr     _xgetran
     371                jsr     xgetran
    372372                ext.l   D0
    373373                move.l  D0,LTMP(A6)
     
    397397                move    D0,A0
    398398                add.l   A0,A0
    399                 move.l  #_ptoftab,A1
     399                move.l  #ptoftab,A1
    400400                move    0(A0,A1.l),D0
    401401                ext.l   D0
     
    411411F00L142:        move    TRG(A6),A0
    412412                add.l   A0,A0
    413                 move.l  #_veltab,A1
     413                move.l  #veltab,A1
    414414                move    0(A0,A1.l),D0
    415415                ext.l   D0
     
    427427F00L143:        move    TRG(A6),A0
    428428                add.l   A0,A0
    429                 move.l  #_prstab,A1
     429                move.l  #prstab,A1
    430430                move    0(A0,A1.l),D0
    431431                ext.l   D0
     
    450450                add.l   D1,D0
    451451                move.l  D0,A0
    452                 move.l  #_valents,A1
     452                move.l  #valents,A1
    453453                clr.l   D0
    454454                move    8(A0,A1.l),D0
     
    517517                move.w  D0,D2
    518518                andi.w  #0xFFF0,D0
    519                 move.w  _timemlt,D1
     519                move.w  timemlt,D1
    520520                muls    D1,D0
    521521                move.l  #15,D1
     
    528528                move    D2,A0
    529529                add.l   A0,A0
    530                 add.l   #_expbit,A0
     530                add.l   #expbit,A0
    531531                move    (A0),R_FPEXP
    532532
     
    700700|       return;
    701701|    }
    702 FN01:           tst.w   _legato
     702FN01:           tst.w   legato
    703703                beq     FN01AA
    704704
    705                 clr.w   _legato
     705                clr.w   legato
    706706                bra     FNEXIT
    707707
     
    729729                ext.l   D0
    730730                move.l  D0,A_FPU
    731                 add.l   #_io_fpu+0x4000,A_FPU
     731                add.l   #io_fpu+0x4000,A_FPU
    732732
    733733|       fp = &ip->idhfnc[1];
     
    766766                lsl.l   #2,D0
    767767                add.l   D1,D0
    768                 add.l   #_valents,D0
     768                add.l   #valents,D0
    769769                move.l  D0,VEP(A6)
    770770
     
    774774                add.l   A0,A0
    775775                add.l   A0,A0
    776                 add.l   #_vpsms,A0
     776                add.l   #vpsms,A0
    777777                move.l  (A0),A_SMP
    778778
     
    855855
    856856F01L117:        move    MLTVAL(A6),(sp)
    857                 jsr     _xgetran
     857                jsr     xgetran
    858858                move    D0,TSRCVAL(A6)
    859859
     
    881881                move    D0,A0
    882882                add.l   A0,A0
    883                 add.l   #_ptoftab,A0
     883                add.l   #ptoftab,A0
    884884                move    (A0),TSRCVAL(A6)
    885885
     
    893893F01L120:        move    TRG(A6),A0
    894894                add.l   A0,A0
    895                 add.l   #_veltab,A0
     895                add.l   #veltab,A0
    896896                move    (A0),TSRCVAL(A6)
    897897
     
    905905F01L121:        move    TRG(A6),A0
    906906                add.l   A0,A0
    907                 add.l   #_prstab,A0
     907                add.l   #prstab,A0
    908908                move    (A0),TSRCVAL(A6)
    909909
     
    963963F01L139:        move.l  PT(A6),A0
    964964                move    4(A0),(sp)
    965                 jsr     _xgetran
     965                jsr     xgetran
    966966                ext.l   D0
    967967                move.l  D0,LTMP(A6)
     
    991991                move    D0,A0
    992992                add.l   A0,A0
    993                 move.l  #_ptoftab,A1
     993                move.l  #ptoftab,A1
    994994                move    0(A0,A1.l),D0
    995995                ext.l   D0
     
    10051005F01L142:        move    TRG(A6),A0
    10061006                add.l   A0,A0
    1007                 move.l  #_veltab,A1
     1007                move.l  #veltab,A1
    10081008                move    0(A0,A1.l),D0
    10091009                ext.l   D0
     
    10211021F01L143:        move    TRG(A6),A0
    10221022                add.l   A0,A0
    1023                 move.l  #_prstab,A1
     1023                move.l  #prstab,A1
    10241024                move    0(A0,A1.l),D0
    10251025                ext.l   D0
     
    10441044                add.l   D1,D0
    10451045                move.l  D0,A0
    1046                 move.l  #_valents,A1
     1046                move.l  #valents,A1
    10471047                clr.l   D0
    10481048                move    8(A0,A1.l),D0
     
    11111111                move.w  D0,D2
    11121112                andi.w  #0xFFF0,D0
    1113                 move.w  _timemlt,D1
     1113                move.w  timemlt,D1
    11141114                muls    D1,D0
    11151115                move.l  #15,D1
     
    11221122                move    D2,A0
    11231123                add.l   A0,A0
    1124                 add.l   #_expbit,A0
     1124                add.l   #expbit,A0
    11251125                move    (A0),R_FPEXP
    11261126
     
    12781278                ext.l   D0
    12791279                move.l  D0,A_FPU
    1280                 add.l   #_io_fpu+0x4000,A_FPU
     1280                add.l   #io_fpu+0x4000,A_FPU
    12811281
    12821282|       fp = &ip->idhfnc[2];
     
    13151315                lsl.l   #2,D0
    13161316                add.l   D1,D0
    1317                 add.l   #_valents,D0
     1317                add.l   #valents,D0
    13181318                move.l  D0,VEP(A6)
    13191319
     
    13231323                add.l   A0,A0
    13241324                add.l   A0,A0
    1325                 add.l   #_vpsms,A0
     1325                add.l   #vpsms,A0
    13261326                move.l  (A0),A_SMP
    13271327
     
    14041404
    14051405F02L117:        move    MLTVAL(A6),(sp)
    1406                 jsr     _xgetran
     1406                jsr     xgetran
    14071407                move    D0,TSRCVAL(A6)
    14081408
     
    14301430                move    D0,A0
    14311431                add.l   A0,A0
    1432                 add.l   #_ptoftab,A0
     1432                add.l   #ptoftab,A0
    14331433                move    (A0),TSRCVAL(A6)
    14341434
     
    14421442F02L120:        move    TRG(A6),A0
    14431443                add.l   A0,A0
    1444                 add.l   #_veltab,A0
     1444                add.l   #veltab,A0
    14451445                move    (A0),TSRCVAL(A6)
    14461446
     
    14541454F02L121:        move    TRG(A6),A0
    14551455                add.l   A0,A0
    1456                 add.l   #_prstab,A0
     1456                add.l   #prstab,A0
    14571457                move    (A0),TSRCVAL(A6)
    14581458
     
    15121512F02L139:        move.l  PT(A6),A0
    15131513                move    4(A0),(sp)
    1514                 jsr     _xgetran
     1514                jsr     xgetran
    15151515                ext.l   D0
    15161516                move.l  D0,LTMP(A6)
     
    15401540                move    D0,A0
    15411541                add.l   A0,A0
    1542                 move.l  #_ptoftab,A1
     1542                move.l  #ptoftab,A1
    15431543                move    0(A0,A1.l),D0
    15441544                ext.l   D0
     
    15541554F02L142:        move    TRG(A6),A0
    15551555                add.l   A0,A0
    1556                 move.l  #_veltab,A1
     1556                move.l  #veltab,A1
    15571557                move    0(A0,A1.l),D0
    15581558                ext.l   D0
     
    15701570F02L143:        move    TRG(A6),A0
    15711571                add.l   A0,A0
    1572                 move.l  #_prstab,A1
     1572                move.l  #prstab,A1
    15731573                move    0(A0,A1.l),D0
    15741574                ext.l   D0
     
    15931593                add.l   D1,D0
    15941594                move.l  D0,A0
    1595                 move.l  #_valents,A1
     1595                move.l  #valents,A1
    15961596                clr.l   D0
    15971597                move    8(A0,A1.l),D0
     
    16601660                move.w  D0,D2
    16611661                andi.w  #0xFFF0,D0
    1662                 move.w  _timemlt,D1
     1662                move.w  timemlt,D1
    16631663                muls    D1,D0
    16641664                move.l  #15,D1
     
    16711671                move    D2,A0
    16721672                add.l   A0,A0
    1673                 add.l   #_expbit,A0
     1673                add.l   #expbit,A0
    16741674                move    (A0),R_FPEXP
    16751675
     
    18271827                ext.l   D0
    18281828                move.l  D0,A_FPU
    1829                 add.l   #_io_fpu+0x4000,A_FPU
     1829                add.l   #io_fpu+0x4000,A_FPU
    18301830
    18311831|       fp = &ip->idhfnc[3];
     
    18641864                lsl.l   #2,D0
    18651865                add.l   D1,D0
    1866                 add.l   #_valents,D0
     1866                add.l   #valents,D0
    18671867                move.l  D0,VEP(A6)
    18681868
     
    18721872                add.l   A0,A0
    18731873                add.l   A0,A0
    1874                 add.l   #_vpsms,A0
     1874                add.l   #vpsms,A0
    18751875                move.l  (A0),A_SMP
    18761876
     
    19531953
    19541954F03L117:        move    MLTVAL(A6),(sp)
    1955                 jsr     _xgetran
     1955                jsr     xgetran
    19561956                move    D0,TSRCVAL(A6)
    19571957
     
    19791979                move    D0,A0
    19801980                add.l   A0,A0
    1981                 add.l   #_ptoftab,A0
     1981                add.l   #ptoftab,A0
    19821982                move    (A0),TSRCVAL(A6)
    19831983
     
    19911991F03L120:        move    TRG(A6),A0
    19921992                add.l   A0,A0
    1993                 add.l   #_veltab,A0
     1993                add.l   #veltab,A0
    19941994                move    (A0),TSRCVAL(A6)
    19951995
     
    20032003F03L121:        move    TRG(A6),A0
    20042004                add.l   A0,A0
    2005                 add.l   #_prstab,A0
     2005                add.l   #prstab,A0
    20062006                move    (A0),TSRCVAL(A6)
    20072007
     
    20612061F03L139:        move.l  PT(A6),A0
    20622062                move    4(A0),(sp)
    2063                 jsr     _xgetran
     2063                jsr     xgetran
    20642064                ext.l   D0
    20652065                move.l  D0,LTMP(A6)
     
    20892089                move    D0,A0
    20902090                add.l   A0,A0
    2091                 move.l  #_ptoftab,A1
     2091                move.l  #ptoftab,A1
    20922092                move    0(A0,A1.l),D0
    20932093                ext.l   D0
     
    21032103F03L142:        move    TRG(A6),A0
    21042104                add.l   A0,A0
    2105                 move.l  #_veltab,A1
     2105                move.l  #veltab,A1
    21062106                move    0(A0,A1.l),D0
    21072107                ext.l   D0
     
    21192119F03L143:        move    TRG(A6),A0
    21202120                add.l   A0,A0
    2121                 move.l  #_prstab,A1
     2121                move.l  #prstab,A1
    21222122                move    0(A0,A1.l),D0
    21232123                ext.l   D0
     
    21422142                add.l   D1,D0
    21432143                move.l  D0,A0
    2144                 move.l  #_valents,A1
     2144                move.l  #valents,A1
    21452145                clr.l   D0
    21462146                move    8(A0,A1.l),D0
     
    22092209                move.w  D0,D2
    22102210                andi.w  #0xFFF0,D0
    2211                 move.w  _timemlt,D1
     2211                move.w  timemlt,D1
    22122212                muls    D1,D0
    22132213                move.l  #15,D1
     
    22202220                move    D2,A0
    22212221                add.l   A0,A0
    2222                 add.l   #_expbit,A0
     2222                add.l   #expbit,A0
    22232223                move    (A0),R_FPEXP
    22242224
     
    23762376                ext.l   D0
    23772377                move.l  D0,A_FPU
    2378                 add.l   #_io_fpu+0x4000,A_FPU
     2378                add.l   #io_fpu+0x4000,A_FPU
    23792379
    23802380|       fp = &ip->idhfnc[4];
     
    23902390|               output resonance via table lookup with FPU interrupts off
    23912391
    2392                 lea     _rsntab,A0
     2392                lea     rsntab,A0
    23932393                clr.w   D0
    23942394                move.b  9(A_FP),D0
     
    24012401                ext.l   D0
    24022402                move.l  D0,A0
    2403                 add.l   #_io_fpu+0x4000,A0
     2403                add.l   #io_fpu+0x4000,A0
    24042404                move.w  sr,OLDI(A6)
    24052405                move.w  #FPU_DI,sr
     
    24402440                lsl.l   #2,D0
    24412441                add.l   D1,D0
    2442                 add.l   #_valents,D0
     2442                add.l   #valents,D0
    24432443                move.l  D0,VEP(A6)
    24442444
     
    24482448                add.l   A0,A0
    24492449                add.l   A0,A0
    2450                 add.l   #_vpsms,A0
     2450                add.l   #vpsms,A0
    24512451                move.l  (A0),A_SMP
    24522452
     
    25292529
    25302530F04L117:        move    MLTVAL(A6),(sp)
    2531                 jsr     _xgetran
     2531                jsr     xgetran
    25322532                move    D0,TSRCVAL(A6)
    25332533
     
    25552555                move    D0,A0
    25562556                add.l   A0,A0
    2557                 add.l   #_ptoftab,A0
     2557                add.l   #ptoftab,A0
    25582558                move    (A0),TSRCVAL(A6)
    25592559
     
    25672567F04L120:        move    TRG(A6),A0
    25682568                add.l   A0,A0
    2569                 add.l   #_veltab,A0
     2569                add.l   #veltab,A0
    25702570                move    (A0),TSRCVAL(A6)
    25712571
     
    25792579F04L121:        move    TRG(A6),A0
    25802580                add.l   A0,A0
    2581                 add.l   #_prstab,A0
     2581                add.l   #prstab,A0
    25822582                move    (A0),TSRCVAL(A6)
    25832583
     
    26562656F04L139:        move.l  PT(A6),A0
    26572657                move    4(A0),(sp)
    2658                 jsr     _xgetran
     2658                jsr     xgetran
    26592659                ext.l   D0
    26602660                move.l  D0,LTMP(A6)
     
    26842684                move    D0,A0
    26852685                add.l   A0,A0
    2686                 move.l  #_ptoftab,A1
     2686                move.l  #ptoftab,A1
    26872687                move    0(A0,A1.l),D0
    26882688                ext.l   D0
     
    26982698F04L142:        move    TRG(A6),A0
    26992699                add.l   A0,A0
    2700                 move.l  #_veltab,A1
     2700                move.l  #veltab,A1
    27012701                move    0(A0,A1.l),D0
    27022702                ext.l   D0
     
    27142714F04L143:        move    TRG(A6),A0
    27152715                add.l   A0,A0
    2716                 move.l  #_prstab,A1
     2716                move.l  #prstab,A1
    27172717                move    0(A0,A1.l),D0
    27182718                ext.l   D0
     
    27372737                add.l   D1,D0
    27382738                move.l  D0,A0
    2739                 move.l  #_valents,A1
     2739                move.l  #valents,A1
    27402740                clr.l   D0
    27412741                move    8(A0,A1.l),D0
     
    28042804                move.w  D0,D2
    28052805                andi.w  #0xFFF0,D0
    2806                 move.w  _timemlt,D1
     2806                move.w  timemlt,D1
    28072807                muls    D1,D0
    28082808                move.l  #15,D1
     
    28152815                move    D2,A0
    28162816                add.l   A0,A0
    2817                 add.l   #_expbit,A0
     2817                add.l   #expbit,A0
    28182818                move    (A0),R_FPEXP
    28192819
     
    29902990                ext.l   D0
    29912991                move.l  D0,A_FPU
    2992                 add.l   #_io_fpu+0x4000,A_FPU
     2992                add.l   #io_fpu+0x4000,A_FPU
    29932993
    29942994|       fp = &ip->idhfnc[5];
     
    30273027                lsl.l   #2,D0
    30283028                add.l   D1,D0
    3029                 add.l   #_valents,D0
     3029                add.l   #valents,D0
    30303030                move.l  D0,VEP(A6)
    30313031
     
    30353035                add.l   A0,A0
    30363036                add.l   A0,A0
    3037                 add.l   #_vpsms,A0
     3037                add.l   #vpsms,A0
    30383038                move.l  (A0),A_SMP
    30393039
     
    31163116
    31173117F05L117:        move    MLTVAL(A6),(sp)
    3118                 jsr     _xgetran
     3118                jsr     xgetran
    31193119                move    D0,TSRCVAL(A6)
    31203120
     
    31423142                move    D0,A0
    31433143                add.l   A0,A0
    3144                 add.l   #_ptoftab,A0
     3144                add.l   #ptoftab,A0
    31453145                move    (A0),TSRCVAL(A6)
    31463146
     
    31543154F05L120:        move    TRG(A6),A0
    31553155                add.l   A0,A0
    3156                 add.l   #_veltab,A0
     3156                add.l   #veltab,A0
    31573157                move    (A0),TSRCVAL(A6)
    31583158
     
    31663166F05L121:        move    TRG(A6),A0
    31673167                add.l   A0,A0
    3168                 add.l   #_prstab,A0
     3168                add.l   #prstab,A0
    31693169                move    (A0),TSRCVAL(A6)
    31703170
     
    32143214F05L139:        move.l  PT(A6),A0
    32153215                move    4(A0),(sp)
    3216                 jsr     _xgetran
     3216                jsr     xgetran
    32173217                ext.l   D0
    32183218                move.l  D0,LTMP(A6)
     
    32423242                move    D0,A0
    32433243                add.l   A0,A0
    3244                 move.l  #_ptoftab,A1
     3244                move.l  #ptoftab,A1
    32453245                move    0(A0,A1.l),D0
    32463246                ext.l   D0
     
    32563256F05L142:        move    TRG(A6),A0
    32573257                add.l   A0,A0
    3258                 move.l  #_veltab,A1
     3258                move.l  #veltab,A1
    32593259                move    0(A0,A1.l),D0
    32603260                ext.l   D0
     
    32723272F05L143:        move    TRG(A6),A0
    32733273                add.l   A0,A0
    3274                 move.l  #_prstab,A1
     3274                move.l  #prstab,A1
    32753275                move    0(A0,A1.l),D0
    32763276                ext.l   D0
     
    32953295                add.l   D1,D0
    32963296                move.l  D0,A0
    3297                 move.l  #_valents,A1
     3297                move.l  #valents,A1
    32983298                clr.l   D0
    32993299                move    8(A0,A1.l),D0
     
    33623362                move.w  D0,D2
    33633363                andi.w  #0xFFF0,D0
    3364                 move.w  _timemlt,D1
     3364                move.w  timemlt,D1
    33653365                muls    D1,D0
    33663366                move.l  #15,D1
     
    33733373                move    D2,A0
    33743374                add.l   A0,A0
    3375                 add.l   #_expbit,A0
     3375                add.l   #expbit,A0
    33763376                move    (A0),R_FPEXP
    33773377
     
    35493549                ext.l   D0
    35503550                move.l  D0,A_FPU
    3551                 add.l   #_io_fpu+0x4000,A_FPU
     3551                add.l   #io_fpu+0x4000,A_FPU
    35523552
    35533553|       fp = &ip->idhfnc[6];
     
    35863586                lsl.l   #2,D0
    35873587                add.l   D1,D0
    3588                 add.l   #_valents,D0
     3588                add.l   #valents,D0
    35893589                move.l  D0,VEP(A6)
    35903590
     
    35943594                add.l   A0,A0
    35953595                add.l   A0,A0
    3596                 add.l   #_vpsms,A0
     3596                add.l   #vpsms,A0
    35973597                move.l  (A0),A_SMP
    35983598
     
    36753675
    36763676F06L117:        move    MLTVAL(A6),(sp)
    3677                 jsr     _xgetran
     3677                jsr     xgetran
    36783678                move    D0,TSRCVAL(A6)
    36793679
     
    37013701                move    D0,A0
    37023702                add.l   A0,A0
    3703                 add.l   #_ptoftab,A0
     3703                add.l   #ptoftab,A0
    37043704                move    (A0),TSRCVAL(A6)
    37053705
     
    37133713F06L120:        move    TRG(A6),A0
    37143714                add.l   A0,A0
    3715                 add.l   #_veltab,A0
     3715                add.l   #veltab,A0
    37163716                move    (A0),TSRCVAL(A6)
    37173717
     
    37253725F06L121:        move    TRG(A6),A0
    37263726                add.l   A0,A0
    3727                 add.l   #_prstab,A0
     3727                add.l   #prstab,A0
    37283728                move    (A0),TSRCVAL(A6)
    37293729
     
    37733773F06L139:        move.l  PT(A6),A0
    37743774                move    4(A0),(sp)
    3775                 jsr     _xgetran
     3775                jsr     xgetran
    37763776                ext.l   D0
    37773777                move.l  D0,LTMP(A6)
     
    38013801                move    D0,A0
    38023802                add.l   A0,A0
    3803                 move.l  #_ptoftab,A1
     3803                move.l  #ptoftab,A1
    38043804                move    0(A0,A1.l),D0
    38053805                ext.l   D0
     
    38153815F06L142:        move    TRG(A6),A0
    38163816                add.l   A0,A0
    3817                 move.l  #_veltab,A1
     3817                move.l  #veltab,A1
    38183818                move    0(A0,A1.l),D0
    38193819                ext.l   D0
     
    38313831F06L143:        move    TRG(A6),A0
    38323832                add.l   A0,A0
    3833                 move.l  #_prstab,A1
     3833                move.l  #prstab,A1
    38343834                move    0(A0,A1.l),D0
    38353835                ext.l   D0
     
    38543854                add.l   D1,D0
    38553855                move.l  D0,A0
    3856                 move.l  #_valents,A1
     3856                move.l  #valents,A1
    38573857                clr.l   D0
    38583858                move    8(A0,A1.l),D0
     
    39213921                move.w  D0,D2
    39223922                andi.w  #0xFFF0,D0
    3923                 move.w  _timemlt,D1
     3923                move.w  timemlt,D1
    39243924                muls    D1,D0
    39253925                move.l  #15,D1
     
    39323932                move    D2,A0
    39333933                add.l   A0,A0
    3934                 add.l   #_expbit,A0
     3934                add.l   #expbit,A0
    39353935                move    (A0),R_FPEXP
    39363936
     
    40744074                ext.l   D0
    40754075                move.l  D0,A_FPU
    4076                 add.l   #_io_fpu+0x4000,A_FPU
     4076                add.l   #io_fpu+0x4000,A_FPU
    40774077
    40784078|       fp = &ip->idhfnc[7];
     
    41114111                lsl.l   #2,D0
    41124112                add.l   D1,D0
    4113                 add.l   #_valents,D0
     4113                add.l   #valents,D0
    41144114                move.l  D0,VEP(A6)
    41154115
     
    41194119                add.l   A0,A0
    41204120                add.l   A0,A0
    4121                 add.l   #_vpsms,A0
     4121                add.l   #vpsms,A0
    41224122                move.l  (A0),A_SMP
    41234123
     
    42004200
    42014201F07L117:        move    MLTVAL(A6),(sp)
    4202                 jsr     _xgetran
     4202                jsr     xgetran
    42034203                move    D0,TSRCVAL(A6)
    42044204
     
    42264226                move    D0,A0
    42274227                add.l   A0,A0
    4228                 add.l   #_ptoftab,A0
     4228                add.l   #ptoftab,A0
    42294229                move    (A0),TSRCVAL(A6)
    42304230
     
    42384238F07L120:        move    TRG(A6),A0
    42394239                add.l   A0,A0
    4240                 add.l   #_veltab,A0
     4240                add.l   #veltab,A0
    42414241                move    (A0),TSRCVAL(A6)
    42424242
     
    42504250F07L121:        move    TRG(A6),A0
    42514251                add.l   A0,A0
    4252                 add.l   #_prstab,A0
     4252                add.l   #prstab,A0
    42534253                move    (A0),TSRCVAL(A6)
    42544254
     
    42984298F07L139:        move.l  PT(A6),A0
    42994299                move    4(A0),(sp)
    4300                 jsr     _xgetran
     4300                jsr     xgetran
    43014301                ext.l   D0
    43024302                move.l  D0,LTMP(A6)
     
    43264326                move    D0,A0
    43274327                add.l   A0,A0
    4328                 move.l  #_ptoftab,A1
     4328                move.l  #ptoftab,A1
    43294329                move    0(A0,A1.l),D0
    43304330                ext.l   D0
     
    43404340F07L142:        move    TRG(A6),A0
    43414341                add.l   A0,A0
    4342                 move.l  #_veltab,A1
     4342                move.l  #veltab,A1
    43434343                move    0(A0,A1.l),D0
    43444344                ext.l   D0
     
    43564356F07L143:        move    TRG(A6),A0
    43574357                add.l   A0,A0
    4358                 move.l  #_prstab,A1
     4358                move.l  #prstab,A1
    43594359                move    0(A0,A1.l),D0
    43604360                ext.l   D0
     
    43794379                add.l   D1,D0
    43804380                move.l  D0,A0
    4381                 move.l  #_valents,A1
     4381                move.l  #valents,A1
    43824382                clr.l   D0
    43834383                move    8(A0,A1.l),D0
     
    44464446                move.w  D0,D2
    44474447                andi.w  #0xFFF0,D0
    4448                 move.w  _timemlt,D1
     4448                move.w  timemlt,D1
    44494449                muls    D1,D0
    44504450                move.l  #15,D1
     
    44574457                move    D2,A0
    44584458                add.l   A0,A0
    4459                 add.l   #_expbit,A0
     4459                add.l   #expbit,A0
    44604460                move    (A0),R_FPEXP
    44614461
     
    45994599                ext.l   D0
    46004600                move.l  D0,A_FPU
    4601                 add.l   #_io_fpu+0x4000,A_FPU
     4601                add.l   #io_fpu+0x4000,A_FPU
    46024602
    46034603|       fp = &ip->idhfnc[8];
     
    46364636                lsl.l   #2,D0
    46374637                add.l   D1,D0
    4638                 add.l   #_valents,D0
     4638                add.l   #valents,D0
    46394639                move.l  D0,VEP(A6)
    46404640
     
    46444644                add.l   A0,A0
    46454645                add.l   A0,A0
    4646                 add.l   #_vpsms,A0
     4646                add.l   #vpsms,A0
    46474647                move.l  (A0),A_SMP
    46484648
     
    47254725
    47264726F08L117:        move    MLTVAL(A6),(sp)
    4727                 jsr     _xgetran
     4727                jsr     xgetran
    47284728                move    D0,TSRCVAL(A6)
    47294729
     
    47514751                move    D0,A0
    47524752                add.l   A0,A0
    4753                 add.l   #_ptoftab,A0
     4753                add.l   #ptoftab,A0
    47544754                move    (A0),TSRCVAL(A6)
    47554755
     
    47634763F08L120:        move    TRG(A6),A0
    47644764                add.l   A0,A0
    4765                 add.l   #_veltab,A0
     4765                add.l   #veltab,A0
    47664766                move    (A0),TSRCVAL(A6)
    47674767
     
    47754775F08L121:        move    TRG(A6),A0
    47764776                add.l   A0,A0
    4777                 add.l   #_prstab,A0
     4777                add.l   #prstab,A0
    47784778                move    (A0),TSRCVAL(A6)
    47794779
     
    48234823F08L139:        move.l  PT(A6),A0
    48244824                move    4(A0),(sp)
    4825                 jsr     _xgetran
     4825                jsr     xgetran
    48264826                ext.l   D0
    48274827                move.l  D0,LTMP(A6)
     
    48514851                move    D0,A0
    48524852                add.l   A0,A0
    4853                 move.l  #_ptoftab,A1
     4853                move.l  #ptoftab,A1
    48544854                move    0(A0,A1.l),D0
    48554855                ext.l   D0
     
    48654865F08L142:        move    TRG(A6),A0
    48664866                add.l   A0,A0
    4867                 move.l  #_veltab,A1
     4867                move.l  #veltab,A1
    48684868                move    0(A0,A1.l),D0
    48694869                ext.l   D0
     
    48814881F08L143:        move    TRG(A6),A0
    48824882                add.l   A0,A0
    4883                 move.l  #_prstab,A1
     4883                move.l  #prstab,A1
    48844884                move    0(A0,A1.l),D0
    48854885                ext.l   D0
     
    49044904                add.l   D1,D0
    49054905                move.l  D0,A0
    4906                 move.l  #_valents,A1
     4906                move.l  #valents,A1
    49074907                clr.l   D0
    49084908                move    8(A0,A1.l),D0
     
    49714971                move.w  D0,D2
    49724972                andi.w  #0xFFF0,D0
    4973                 move.w  _timemlt,D1
     4973                move.w  timemlt,D1
    49744974                muls    D1,D0
    49754975                move.l  #15,D1
     
    49824982                move    D2,A0
    49834983                add.l   A0,A0
    4984                 add.l   #_expbit,A0
     4984                add.l   #expbit,A0
    49854985                move    (A0),R_FPEXP
    49864986
     
    51245124                ext.l   D0
    51255125                move.l  D0,A_FPU
    5126                 add.l   #_io_fpu+0x4000,A_FPU
     5126                add.l   #io_fpu+0x4000,A_FPU
    51275127
    51285128|       fp = &ip->idhfnc[9];
     
    51615161                lsl.l   #2,D0
    51625162                add.l   D1,D0
    5163                 add.l   #_valents,D0
     5163                add.l   #valents,D0
    51645164                move.l  D0,VEP(A6)
    51655165
     
    51695169                add.l   A0,A0
    51705170                add.l   A0,A0
    5171                 add.l   #_vpsms,A0
     5171                add.l   #vpsms,A0
    51725172                move.l  (A0),A_SMP
    51735173
     
    52505250
    52515251F09L117:        move    MLTVAL(A6),(sp)
    5252                 jsr     _xgetran
     5252                jsr     xgetran
    52535253                move    D0,TSRCVAL(A6)
    52545254
     
    52765276                move    D0,A0
    52775277                add.l   A0,A0
    5278                 add.l   #_ptoftab,A0
     5278                add.l   #ptoftab,A0
    52795279                move    (A0),TSRCVAL(A6)
    52805280
     
    52885288F09L120:        move    TRG(A6),A0
    52895289                add.l   A0,A0
    5290                 add.l   #_veltab,A0
     5290                add.l   #veltab,A0
    52915291                move    (A0),TSRCVAL(A6)
    52925292
     
    53005300F09L121:        move    TRG(A6),A0
    53015301                add.l   A0,A0
    5302                 add.l   #_prstab,A0
     5302                add.l   #prstab,A0
    53035303                move    (A0),TSRCVAL(A6)
    53045304
     
    53485348F09L139:        move.l  PT(A6),A0
    53495349                move    4(A0),(sp)
    5350                 jsr     _xgetran
     5350                jsr     xgetran
    53515351                ext.l   D0
    53525352                move.l  D0,LTMP(A6)
     
    53765376                move    D0,A0
    53775377                add.l   A0,A0
    5378                 move.l  #_ptoftab,A1
     5378                move.l  #ptoftab,A1
    53795379                move    0(A0,A1.l),D0
    53805380                ext.l   D0
     
    53905390F09L142:        move    TRG(A6),A0
    53915391                add.l   A0,A0
    5392                 move.l  #_veltab,A1
     5392                move.l  #veltab,A1
    53935393                move    0(A0,A1.l),D0
    53945394                ext.l   D0
     
    54065406F09L143:        move    TRG(A6),A0
    54075407                add.l   A0,A0
    5408                 move.l  #_prstab,A1
     5408                move.l  #prstab,A1
    54095409                move    0(A0,A1.l),D0
    54105410                ext.l   D0
     
    54295429                add.l   D1,D0
    54305430                move.l  D0,A0
    5431                 move.l  #_valents,A1
     5431                move.l  #valents,A1
    54325432                clr.l   D0
    54335433                move    8(A0,A1.l),D0
     
    54965496                move.w  D0,D2
    54975497                andi.w  #0xFFF0,D0
    5498                 move.w  _timemlt,D1
     5498                move.w  timemlt,D1
    54995499                muls    D1,D0
    55005500                move.l  #15,D1
     
    55075507                move    D2,A0
    55085508                add.l   A0,A0
    5509                 add.l   #_expbit,A0
     5509                add.l   #expbit,A0
    55105510                move    (A0),R_FPEXP
    55115511
     
    56495649                ext.l   D0
    56505650                move.l  D0,A_FPU
    5651                 add.l   #_io_fpu+0x4000,A_FPU
     5651                add.l   #io_fpu+0x4000,A_FPU
    56525652
    56535653|       fp = &ip->idhfnc[10];
     
    56865686                lsl.l   #2,D0
    56875687                add.l   D1,D0
    5688                 add.l   #_valents,D0
     5688                add.l   #valents,D0
    56895689                move.l  D0,VEP(A6)
    56905690
     
    56945694                add.l   A0,A0
    56955695                add.l   A0,A0
    5696                 add.l   #_vpsms,A0
     5696                add.l   #vpsms,A0
    56975697                move.l  (A0),A_SMP
    56985698
     
    57755775
    57765776F10L117:        move    MLTVAL(A6),(sp)
    5777                 jsr     _xgetran
     5777                jsr     xgetran
    57785778                move    D0,TSRCVAL(A6)
    57795779
     
    58015801                move    D0,A0
    58025802                add.l   A0,A0
    5803                 add.l   #_ptoftab,A0
     5803                add.l   #ptoftab,A0
    58045804                move    (A0),TSRCVAL(A6)
    58055805
     
    58135813F10L120:        move    TRG(A6),A0
    58145814                add.l   A0,A0
    5815                 add.l   #_veltab,A0
     5815                add.l   #veltab,A0
    58165816                move    (A0),TSRCVAL(A6)
    58175817
     
    58255825F10L121:        move    TRG(A6),A0
    58265826                add.l   A0,A0
    5827                 add.l   #_prstab,A0
     5827                add.l   #prstab,A0
    58285828                move    (A0),TSRCVAL(A6)
    58295829
     
    58735873F10L139:        move.l  PT(A6),A0
    58745874                move    4(A0),(sp)
    5875                 jsr     _xgetran
     5875                jsr     xgetran
    58765876                ext.l   D0
    58775877                move.l  D0,LTMP(A6)
     
    59015901                move    D0,A0
    59025902                add.l   A0,A0
    5903                 move.l  #_ptoftab,A1
     5903                move.l  #ptoftab,A1
    59045904                move    0(A0,A1.l),D0
    59055905                ext.l   D0
     
    59155915F10L142:        move    TRG(A6),A0
    59165916                add.l   A0,A0
    5917                 move.l  #_veltab,A1
     5917                move.l  #veltab,A1
    59185918                move    0(A0,A1.l),D0
    59195919                ext.l   D0
     
    59315931F10L143:        move    TRG(A6),A0
    59325932                add.l   A0,A0
    5933                 move.l  #_prstab,A1
     5933                move.l  #prstab,A1
    59345934                move    0(A0,A1.l),D0
    59355935                ext.l   D0
     
    59545954                add.l   D1,D0
    59555955                move.l  D0,A0
    5956                 move.l  #_valents,A1
     5956                move.l  #valents,A1
    59575957                clr.l   D0
    59585958                move    8(A0,A1.l),D0
     
    60216021                move.w  D0,D2
    60226022                andi.w  #0xFFF0,D0
    6023                 move.w  _timemlt,D1
     6023                move.w  timemlt,D1
    60246024                muls    D1,D0
    60256025                move.l  #15,D1
     
    60326032                move    D2,A0
    60336033                add.l   A0,A0
    6034                 add.l   #_expbit,A0
     6034                add.l   #expbit,A0
    60356035                move    (A0),R_FPEXP
    60366036
     
    61746174                ext.l   D0
    61756175                move.l  D0,A_FPU
    6176                 add.l   #_io_fpu+0x4000,A_FPU
     6176                add.l   #io_fpu+0x4000,A_FPU
    61776177
    61786178|       fp = &ip->idhfnc[11];
     
    62116211                lsl.l   #2,D0
    62126212                add.l   D1,D0
    6213                 add.l   #_valents,D0
     6213                add.l   #valents,D0
    62146214                move.l  D0,VEP(A6)
    62156215
     
    62196219                add.l   A0,A0
    62206220                add.l   A0,A0
    6221                 add.l   #_vpsms,A0
     6221                add.l   #vpsms,A0
    62226222                move.l  (A0),A_SMP
    62236223
     
    63006300
    63016301F11L117:        move    MLTVAL(A6),(sp)
    6302                 jsr     _xgetran
     6302                jsr     xgetran
    63036303                move    D0,TSRCVAL(A6)
    63046304
     
    63266326                move    D0,A0
    63276327                add.l   A0,A0
    6328                 add.l   #_ptoftab,A0
     6328                add.l   #ptoftab,A0
    63296329                move    (A0),TSRCVAL(A6)
    63306330
     
    63386338F11L120:        move    TRG(A6),A0
    63396339                add.l   A0,A0
    6340                 add.l   #_veltab,A0
     6340                add.l   #veltab,A0
    63416341                move    (A0),TSRCVAL(A6)
    63426342
     
    63506350F11L121:        move    TRG(A6),A0
    63516351                add.l   A0,A0
    6352                 add.l   #_prstab,A0
     6352                add.l   #prstab,A0
    63536353                move    (A0),TSRCVAL(A6)
    63546354
     
    63986398F11L139:        move.l  PT(A6),A0
    63996399                move    4(A0),(sp)
    6400                 jsr     _xgetran
     6400                jsr     xgetran
    64016401                ext.l   D0
    64026402                move.l  D0,LTMP(A6)
     
    64266426                move    D0,A0
    64276427                add.l   A0,A0
    6428                 move.l  #_ptoftab,A1
     6428                move.l  #ptoftab,A1
    64296429                move    0(A0,A1.l),D0
    64306430                ext.l   D0
     
    64406440F11L142:        move    TRG(A6),A0
    64416441                add.l   A0,A0
    6442                 move.l  #_veltab,A1
     6442                move.l  #veltab,A1
    64436443                move    0(A0,A1.l),D0
    64446444                ext.l   D0
     
    64566456F11L143:        move    TRG(A6),A0
    64576457                add.l   A0,A0
    6458                 move.l  #_prstab,A1
     6458                move.l  #prstab,A1
    64596459                move    0(A0,A1.l),D0
    64606460                ext.l   D0
     
    64796479                add.l   D1,D0
    64806480                move.l  D0,A0
    6481                 move.l  #_valents,A1
     6481                move.l  #valents,A1
    64826482                clr.l   D0
    64836483                move    8(A0,A1.l),D0
     
    65466546                move.w  D0,D2
    65476547                andi.w  #0xFFF0,D0
    6548                 move.w  _timemlt,D1
     6548                move.w  timemlt,D1
    65496549                muls    D1,D0
    65506550                move.l  #15,D1
     
    65576557                move    D2,A0
    65586558                add.l   A0,A0
    6559                 add.l   #_expbit,A0
     6559                add.l   #expbit,A0
    65606560                move    (A0),R_FPEXP
    65616561
     
    66996699                ext.l   D0
    67006700                move.l  D0,A_FPU
    6701                 add.l   #_io_fpu+0x4000,A_FPU
     6701                add.l   #io_fpu+0x4000,A_FPU
    67026702
    67036703|       fp = &ip->idhfnc[12];
     
    67366736                lsl.l   #2,D0
    67376737                add.l   D1,D0
    6738                 add.l   #_valents,D0
     6738                add.l   #valents,D0
    67396739                move.l  D0,VEP(A6)
    67406740
     
    67446744                add.l   A0,A0
    67456745                add.l   A0,A0
    6746                 add.l   #_vpsms,A0
     6746                add.l   #vpsms,A0
    67476747                move.l  (A0),A_SMP
    67486748
     
    68256825
    68266826F12L117:        move    MLTVAL(A6),(sp)
    6827                 jsr     _xgetran
     6827                jsr     xgetran
    68286828                move    D0,TSRCVAL(A6)
    68296829
     
    68516851                move    D0,A0
    68526852                add.l   A0,A0
    6853                 add.l   #_ptoftab,A0
     6853                add.l   #ptoftab,A0
    68546854                move    (A0),TSRCVAL(A6)
    68556855
     
    68636863F12L120:        move    TRG(A6),A0
    68646864                add.l   A0,A0
    6865                 add.l   #_veltab,A0
     6865                add.l   #veltab,A0
    68666866                move    (A0),TSRCVAL(A6)
    68676867
     
    68756875F12L121:        move    TRG(A6),A0
    68766876                add.l   A0,A0
    6877                 add.l   #_prstab,A0
     6877                add.l   #prstab,A0
    68786878                move    (A0),TSRCVAL(A6)
    68796879
     
    69236923F12L139:        move.l  PT(A6),A0
    69246924                move    4(A0),(sp)
    6925                 jsr     _xgetran
     6925                jsr     xgetran
    69266926                ext.l   D0
    69276927                move.l  D0,LTMP(A6)
     
    69516951                move    D0,A0
    69526952                add.l   A0,A0
    6953                 move.l  #_ptoftab,A1
     6953                move.l  #ptoftab,A1
    69546954                move    0(A0,A1.l),D0
    69556955                ext.l   D0
     
    69656965F12L142:        move    TRG(A6),A0
    69666966                add.l   A0,A0
    6967                 move.l  #_veltab,A1
     6967                move.l  #veltab,A1
    69686968                move    0(A0,A1.l),D0
    69696969                ext.l   D0
     
    69816981F12L143:        move    TRG(A6),A0
    69826982                add.l   A0,A0
    6983                 move.l  #_prstab,A1
     6983                move.l  #prstab,A1
    69846984                move    0(A0,A1.l),D0
    69856985                ext.l   D0
     
    70047004                add.l   D1,D0
    70057005                move.l  D0,A0
    7006                 move.l  #_valents,A1
     7006                move.l  #valents,A1
    70077007                clr.l   D0
    70087008                move    8(A0,A1.l),D0
     
    70717071                move.w  D0,D2
    70727072                andi.w  #0xFFF0,D0
    7073                 move.w  _timemlt,D1
     7073                move.w  timemlt,D1
    70747074                muls    D1,D0
    70757075                move.l  #15,D1
     
    70827082                move    D2,A0
    70837083                add.l   A0,A0
    7084                 add.l   #_expbit,A0
     7084                add.l   #expbit,A0
    70857085                move    (A0),R_FPEXP
    70867086
     
    75187518| vbtab -- vbuf pointer table -- indexed by voice number
    75197519| -----    ---------------------------------------------
    7520 vbtab:          .dc.l   _vbufs
    7521                 .dc.l   _vbufs+VBLEN
    7522                 .dc.l   _vbufs+(2*VBLEN)
    7523                 .dc.l   _vbufs+(3*VBLEN)
    7524                 .dc.l   _vbufs+(4*VBLEN)
    7525                 .dc.l   _vbufs+(5*VBLEN)
    7526                 .dc.l   _vbufs+(6*VBLEN)
    7527                 .dc.l   _vbufs+(7*VBLEN)
    7528                 .dc.l   _vbufs+(8*VBLEN)
    7529                 .dc.l   _vbufs+(9*VBLEN)
    7530                 .dc.l   _vbufs+(10*VBLEN)
    7531                 .dc.l   _vbufs+(11*VBLEN)
     7520vbtab:          .dc.l   vbufs
     7521                .dc.l   vbufs+VBLEN
     7522                .dc.l   vbufs+(2*VBLEN)
     7523                .dc.l   vbufs+(3*VBLEN)
     7524                .dc.l   vbufs+(4*VBLEN)
     7525                .dc.l   vbufs+(5*VBLEN)
     7526                .dc.l   vbufs+(6*VBLEN)
     7527                .dc.l   vbufs+(7*VBLEN)
     7528                .dc.l   vbufs+(8*VBLEN)
     7529                .dc.l   vbufs+(9*VBLEN)
     7530                .dc.l   vbufs+(10*VBLEN)
     7531                .dc.l   vbufs+(11*VBLEN)
    75327532
    75337533                .end
  • ram/fpuint.s

    r84c0125 r8325447  
    55                .text
    66
    7                 .xdef   _fpuint         | process an FPU interrupt
    8                 .xdef   _fpuclr         | reset the FPU
    9                 .xdef   _clrvce         | quiet a voice
    10 
    11                 .xdef   _fputrap        | a very good debug trap point
    12 
    13                 .xdef   _fp_resv        | 'spare' function reset value table
    14                 .xdef   _fpuifnc        | FPU interrupt code  (voice / function)
    15 
    16                 .xref   _irand          | ranged random number function
    17                 .xref   _scope          | diagnostic scope function
    18                 .xref   _xgetran        | random number function
    19 
    20                 .xref   _expbit
    21                 .xref   _funcndx
    22                 .xref   _initcfg
    23                 .xref   _ndisp
    24                 .xref   _pflist
    25                 .xref   _pfqhdr
    26                 .xref   _prstab
    27                 .xref   _ptoftab
    28                 .xref   _scopef
    29                 .xref   _timemlt
    30                 .xref   _trgtab
    31                 .xref   _valents
    32                 .xref   _vce2grp
    33                 .xref   _vce2trg
    34                 .xref   _veltab
     7                .xdef   fpuint          | process an FPU interrupt
     8                .xdef   fpuclr          | reset the FPU
     9                .xdef   clrvce          | quiet a voice
     10
     11                .xdef   fputrap         | a very good debug trap point
     12
     13                .xdef   fp_resv         | 'spare' function reset value table
     14                .xdef   fpuifnc         | FPU interrupt code  (voice / function)
     15
     16                .xref   irand           | ranged random number function
     17                .xref   scope           | diagnostic scope function
     18                .xref   xgetran         | random number function
     19
     20                .xref   expbit
     21                .xref   funcndx
     22                .xref   initcfg
     23                .xref   ndisp
     24                .xref   pflist
     25                .xref   pfqhdr
     26                .xref   prstab
     27                .xref   ptoftab
     28                .xref   scopef
     29                .xref   timemlt
     30                .xref   trgtab
     31                .xref   valents
     32                .xref   vce2grp
     33                .xref   vce2trg
     34                .xref   veltab
    3535
    3636                .page
     
    194194                .page
    195195| ------------------------------------------------------------------------------
    196 | _fpuint() -- process FPU interrupts
     196| fpuint() -- process FPU interrupts
    197197
    198198|       void
     
    204204| ------------------------------------------------------------------------------
    205205
    206 _fpuint:        movem.l d0-d5/a0-a3,-(a7)       | preserve registers we use
     206fpuint:         movem.l d0-d5/a0-a3,-(a7)       | preserve registers we use
    207207                move.w  FPUINT1,d0      | read FPU interrupt status
    208208                andi.w  #0x00FF,d0      | mask out garbage in MS bits
    209                 move.w  d0,_fpuifnc     | save for later use
    210                 move.w  _ndisp,d1       | get display number
     209                move.w  d0,fpuifnc      | save for later use
     210                move.w  ndisp,d1        | get display number
    211211                cmpi.w  #11,d1          | see if we display
    212212                bne     nodisp          | jump if not
    213213
    214                 tst.w   _scopef         | ...
     214                tst.w   scopef          | ...
    215215                beq     nodisp          | ...
    216216
    217217                move.w  d0,-(a7)        | display value
    218                 jsr     _scope          | ...
     218                jsr     scope           | ...
    219219                tst.w   (a7)+           | ...
    220220
    221                 move.w  _fpuifnc,d0     | get FPU status
     221                move.w  fpuifnc,d0      | get FPU status
    222222
    223223nodisp:         move.w  d0,d1           | save in d1  (becomes function offset)
     
    227227
    228228                lsl.w   #3,d0           | develop funcndx[] index
    229                 lea     _funcndx,a0     | setup funcndx[] base address
     229                lea     funcndx,a0      | setup funcndx[] base address
    230230
    231231                tst.l   0(a0,d0.W)      | see if function is defined
     
    299299| ------------------------------------------------------------------------------
    300300
    301 _fputrap:       jmp     (a0)            | dispatch to action handler
     301fputrap:        jmp     (a0)            | dispatch to action handler
    302302
    303303                .page
     
    320320                move.w  d3,d0                   | extract mantissa
    321321                andi.w  #MSK_MNT,d0             | ...
    322                 mulu    _timemlt,d0             | multiply by panel time pot value
     322                mulu    timemlt,d0              | multiply by panel time pot value
    323323                lsr.l   #8,d0                   | ... and scale it
    324324                lsr.l   #7,d0                   | ...
     
    326326                andi.w  #MSK_EXP,d3             | extract exponent code
    327327                add.w   d3,d3                   | look up decoded exponent
    328                 lea     _expbit,a0              | ... in expbit
     328                lea     expbit,a0               | ... in expbit
    329329                move.w  0(a0,d3.W),F_EXP(a3,d1.W)       | send exponent to FPU
    330330                move.w  PT_VAL(a2,d2.W),d3      | get the function value
     
    348348                movem.l d1-d2/a0-a2,-(a7)       | preserve registers around call
    349349                move.w  PT_VMLT(a2,d2.W),-(a7)  | pass multiplier to xgetran()
    350                 jsr     _xgetran                | call for a random number
     350                jsr     xgetran                 | call for a random number
    351351                tst.w   (a7)+                   | clean up stack
    352352                movem.l (a7)+,d1-d2/a0-a2       | restore registers
     
    364364                lsr.w   #6,d0           | shift to a word index
    365365                andi.w  #0x01FE,d0      | mask out extraneous bits
    366                 lea     _ptoftab,a0     | get entry from ptoftab[]
     366                lea     ptoftab,a0      | get entry from ptoftab[]
    367367                move.w  0(a0,d0.W),d5   | ...
    368368                bra     applym          | go apply the multiplier
     
    385385                move.w  FH_TRG(a1),d0   | get the trigger number
    386386                add.w   d0,d0           | ... as a word index
    387                 lea     _veltab,a0      | ... into veltab[]
     387                lea     veltab,a0       | ... into veltab[]
    388388                move.w  0(a0,d0.W),d5   | get the velocity from veltab[trg]
    389389                bra     applym          | go apply the multiplier
     
    397397                move.w  FH_TRG(a1),d0   | get the trigger number
    398398                add.w   d0,d0           | ... as a word index
    399                 lea     _prstab,a0      | ... into prstab[]
     399                lea     prstab,a0       | ... into prstab[]
    400400                move.w  0(a0,d0.W),d5   | get the pressure from prstab[trg]
    401401                bra     applym          | go apply the multiplier
     
    405405| all other sources come out of the valents[] array
    406406| ------------------------------------------------------------------------------
    407 srctyp4:        lea     _vce2grp,a0     | point at vce2grp[]
    408                 move.w  _fpuifnc,d5     | get voice number in d5
     407srctyp4:        lea     vce2grp,a0      | point at vce2grp[]
     408                move.w  fpuifnc,d5      | get voice number in d5
    409409                lsr.w   #3,d5           | ...
    410410                andi.w  #0x001E,d5      | ... as a word index
     
    417417                lsl.w   #2,d0           | ...  via shift and add)
    418418                add.w   d5,d0           | ...
    419                 lea     _valents,a0     | get base of valents[]
     419                lea     valents,a0      | get base of valents[]
    420420                move.w  VT_VAL(a0,d0.W),d5      | get value
    421421
     
    556556| act1 -- AC_SUST -- pause if key is down  (sustain)
    557557| ----    ------------------------------------------
    558 act1:           move.w  _fpuifnc,d0     | get voice as a word index
     558act1:           move.w  fpuifnc,d0      | get voice as a word index
    559559                lsr.w   #3,d0           | ...
    560560                andi.w  #0x001E,d0      | ...
    561                 lea     _vce2trg,a0     | point at voice to trigger table
     561                lea     vce2trg,a0      | point at voice to trigger table
    562562                move.w  0(a0,d0.W),d0   | get trigger table entry into d0
    563563                cmpi.w  #-1,d0          | see if voice is free
     
    570570                bne     act1a           | sustain if so
    571571
    572                 lea     _trgtab,a0      | point at trigger table
     572                lea     trgtab,a0       | point at trigger table
    573573                tst.b   0(a0,d0.W)      | check trigger status
    574574                beq     act0            | continue function if not active
    575575
    576 act1a:          move.l  _pfqhdr,d3      | see if any pflist entries remain
     576act1a:          move.l  pfqhdr,d3       | see if any pflist entries remain
    577577                beq     act0            | continue if not  (shouldn't happen!)
    578578
     
    586586                addi.w  #PT_LEN,d2              | advance the point index
    587587                movea.l d3,a0                   | acquire a new pflist entry
    588                 move.l  (a0),_pfqhdr            | ...
    589                 move.l  _pflist,(a0)            | chain it to pflist
    590                 move.l  a0,_pflist              | ...
     588                move.l  (a0),pfqhdr             | ...
     589                move.l  pflist,(a0)             | chain it to pflist
     590                move.l  a0,pflist               | ...
    591591                move.w  FH_TRG(a1),PF_TRIG(a0)          | set trigger number in entry
    592                 move.w  _fpuifnc,PF_FUNC(a0)            | set v/p word in entry
     592                move.w  fpuifnc,PF_FUNC(a0)             | set v/p word in entry
    593593                movem.l d1-d2/d4/a1-a3,PF_D1(a0)        | set registers in entry
    594594                move.b  FH_TMD(a1),d0           | stop the function
     
    606606| act2 -- AC_ENBL -- stop if key is up
    607607| ----    ----------------------------
    608 act2:           move.w  _fpuifnc,d0     | get voice as a word index
     608act2:           move.w  fpuifnc,d0      | get voice as a word index
    609609                lsr.w   #3,d0           | ...
    610610                andi.w  #0x001E,d0      | ...
    611                 lea     _vce2trg,a0     | check to see if voice is free
     611                lea     vce2trg,a0      | check to see if voice is free
    612612                move.w  0(a0,d0.W),d0   | ...
    613613                cmpi.w  #-1,d0          | ...
     
    620620                bne     act0            | ...
    621621
    622                 lea     _trgtab,a0      | check trigger table entry
     622                lea     trgtab,a0       | check trigger table entry
    623623                tst.b   0(a0,d0.W)      | ...
    624624                bne     act0            | if trigger is active, continue
     
    656656                movem.l d1-d2/a0-a2,-(a7)       | get ranged random number
    657657                move.w  d0,-(a7)                | ...
    658                 jsr     _irand                  | ...
     658                jsr     irand                   | ...
    659659                tst.w   (a7)+                   | ...
    660660                movem.l (a7)+,d1-d2/a0-a2       | ...
     
    677677| act5 -- AC_KYUP -- jump if key is up
    678678| ----    ----------------------------
    679 act5:           move.w  _fpuifnc,d0     | get voice as a word index
     679act5:           move.w  fpuifnc,d0      | get voice as a word index
    680680                lsr.w   #3,d0           | ...
    681681                andi.w  #0x001E,d0      | ...
    682                 lea     _vce2trg,a0     | check to see if voice is free
     682                lea     vce2trg,a0      | check to see if voice is free
    683683                move.w  0(a0,d0.W),d0   | ...
    684684                cmpi.w  #-1,d0          | ...
     
    691691                bne     act0            | ...
    692692
    693                 lea     _trgtab,a0      | check trigger table entry
     693                lea     trgtab,a0       | check trigger table entry
    694694                tst.b   0(a0,d0.W)      | see if the trigger is active
    695695                beq     act3            | if not, do the jump
     
    702702| act6 -- AC_KYDN -- jump if key is down
    703703| ----    ------------------------------
    704 act6:           move.w  _fpuifnc,d0     | get voice as a word index
     704act6:           move.w  fpuifnc,d0      | get voice as a word index
    705705                lsr.w   #3,d0           | ...
    706706                andi.w  #0x001E,d0      | ...
    707                 lea     _vce2trg,a0     | check to see if voice is free
     707                lea     vce2trg,a0      | check to see if voice is free
    708708                move.w  0(a0,d0.W),d0   | ...
    709709                cmpi.w  #-1,d0          | ...
     
    716716                bne     act3            | ...
    717717
    718                 lea     _trgtab,a0      | check trigger table entry
     718                lea     trgtab,a0       | check trigger table entry
    719719                tst.b   0(a0,d0.W)      | see if the trigger is active
    720720                bne     act3            | if so, do the jump
     
    730730| ------------------------------------------------------------------------------
    731731
    732 | _fpuclr -- clear the FPU
    733 | -------    -------------
     732| fpuclr -- clear the FPU
     733| ------    -------------
    734734
    735735|       void
     
    740740| ------------------------------------------------------------------------------
    741741
    742 _fpuclr:        link    a6,#0                   | link stack frames
     742fpuclr:         link    a6,#0                   | link stack frames
    743743                move.w  sr,-(a7)                | save the interrupt level
    744744                ori.w   #0x0700,sr              | turn off interrupts
    745745
    746746                lea     FPUFUNC,a0              | point at the first function
    747                 lea     _fp_resv,a2             | point at reset value table
     747                lea     fp_resv,a2              | point at reset value table
    748748                move.w  #11,d1                  | set the outer loop count
    749749
     
    854854                .page
    855855
    856 | _clrvce -- quiet a voice
    857 | -------    -------------
     856| clrvce -- quiet a voice
     857| ------    -------------
    858858
    859859|       void
     
    863863|               Quiet the voice by resetting the FPU functions it uses.
    864864
    865 _clrvce:        link    a6,#0                   | link stack frames
     865clrvce:         link    a6,#0                   | link stack frames
    866866                move.w  sr,-(a7)                | save the interrupt level
    867867                ori.w   #0x0700,sr              | turn off interrupts
     
    964964| ------------------------------------------------------------------------------
    965965
    966 _fp_resv:       .ds.w   12              | fpu spare function reset values
    967 _fpuifnc:       .ds.w   1               | interrupting function number from FPU
     966fp_resv:        .ds.w   12              | fpu spare function reset values
     967fpuifnc:        .ds.w   1               | interrupting function number from FPU
    968968
    969969                .end
  • ram/procpfl.s

    r84c0125 r8325447  
    55                .text
    66
    7                 .xdef   _procpfl
     7                .xdef   procpfl
    88
    99                .xdef   _curpf_f        | current function (v/p)
     
    1111                .xdef   _curpf_t        | current trigger
    1212
    13                 .xref   _irand
    14                 .xref   _xgetran
    15 
    16                 .xref   _expbit
    17                 .xref   _funcndx
    18                 .xref   _pflist
    19                 .xref   _pfqhdr
    20                 .xref   _prstab
    21                 .xref   _ptoftab
    22                 .xref   _timemlt
    23                 .xref   _trgtab
    24                 .xref   _valents
    25                 .xref   _vce2grp
    26                 .xref   _vce2trg
    27                 .xref   _veltab
     13                .xref   irand
     14                .xref   xgetran
     15
     16                .xref   expbit
     17                .xref   funcndx
     18                .xref   pflist
     19                .xref   pfqhdr
     20                .xref   prstab
     21                .xref   ptoftab
     22                .xref   timemlt
     23                .xref   trgtab
     24                .xref   valents
     25                .xref   vce2grp
     26                .xref   vce2trg
     27                .xref   veltab
    2828
    2929                .page
     
    196196                .page
    197197| ------------------------------------------------------------------------------
    198 | _procpfl() -- process pendant functions
     198| procpfl() -- process pendant functions
    199199
    200200|       void
     
    208208| ------------------------------------------------------------------------------
    209209
    210 _procpfl:       nop                             | FOR DEBUGGING PATCH
     210procpfl:        nop                             | FOR DEBUGGING PATCH
    211211
    212212                link    a6,#0                   | allocate stack frame
     
    218218                move.w  TRIG(a6),d6             | get trigger we're processing
    219219                move.w  d6,_curpf_t             | ...
    220                 movea.l #_pflist,RPRV           | point at 'previous' pflist entry
     220                movea.l #pflist,RPRV            | point at 'previous' pflist entry
    221221                bra     pfscan                  | go scan the chain
    222222
     
    241241
    242242pfnext:         move.l  (RCUR),(RPRV)           | remove entry from pflist
    243                 move.l  _pfqhdr,(RCUR)          | chain entry to free list
    244                 move.l  RCUR,_pfqhdr            | ...
     243                move.l  pfqhdr,(RCUR)           | chain entry to free list
     244                move.l  RCUR,pfqhdr             | ...
    245245                bra     pfscan                  | go look at next entry
    246246
     
    319319                move.w  d3,d0                   | extract mantissa
    320320                andi.w  #MSK_MNT,d0             | ...
    321                 mulu    _timemlt,d0             | multiply by panel time pot value
     321                mulu    timemlt,d0              | multiply by panel time pot value
    322322                lsr.l   #8,d0                   | ... and scale it
    323323                lsr.l   #7,d0                   | ...
     
    325325                andi.w  #MSK_EXP,d3             | extract exponent code
    326326                add.w   d3,d3                   | look up decoded exponent
    327                 lea     _expbit,a0              | ... in expbit
     327                lea     expbit,a0               | ... in expbit
    328328                move.w  0(a0,d3.W),F_EXP(a3,d1.W)       | send exponent to FPU
    329329                move.w  PT_VAL(a2,d2.W),d3      | get the function value
     
    348348                movem.l d1-d2/a0-a2,-(a7)       | preserve registers around call
    349349                move.w  PT_VMLT(a2,d2.W),-(a7)  | pass multiplier to xgetran()
    350                 jsr     _xgetran                | call for a random number
     350                jsr     xgetran                 | call for a random number
    351351                tst.w   (a7)+                   | clean up stack
    352352                movem.l (a7)+,d1-d2/a0-a2       | restore registers
     
    364364                lsr.w   #6,d0           | shift to a word index
    365365                andi.w  #0x01FE,d0      | mask out extraneous bits
    366                 lea     _ptoftab,a0     | get entry from ptoftab[]
     366                lea     ptoftab,a0      | get entry from ptoftab[]
    367367                move.w  0(a0,d0.W),d5   | ...
    368368                bra     applym          | go apply the multiplier
     
    385385                move.w  FH_TRG(a1),d0   | get the trigger number
    386386                add.w   d0,d0           | ... as a word index
    387                 lea     _veltab,a0      | ... into veltab[]
     387                lea     veltab,a0       | ... into veltab[]
    388388                move.w  0(a0,d0.W),d5   | get the velocity from veltab[trg]
    389389                bra     applym          | go apply the multiplier
     
    397397                move.w  FH_TRG(a1),d0   | get the trigger number
    398398                add.w   d0,d0           | ... as a word index
    399                 lea     _prstab,a0      | ... into prstab[]
     399                lea     prstab,a0       | ... into prstab[]
    400400                move.w  0(a0,d0.W),d5   | get the pressure from prstab[trg]
    401401                bra     applym          | go apply the multiplier
     
    405405| all other sources come out of the valents[] array
    406406| ------------------------------------------------------------------------------
    407 srctyp4:        lea     _vce2grp,a0     | point at vce2grp[]
     407srctyp4:        lea     vce2grp,a0      | point at vce2grp[]
    408408                move.w  _curpf_f,d5     | get voice number in d5
    409409                lsr.w   #3,d5           | ...
     
    417417                lsl.w   #2,d0           | ...  via shift and add)
    418418                add.w   d5,d0           | ...
    419                 lea     _valents,a0     | get base of valents[]
     419                lea     valents,a0      | get base of valents[]
    420420                move.w  VT_VAL(a0,d0.W),d5      | get value
    421421
     
    559559                lsr.w   #3,d0           | ...
    560560                andi.w  #0x001E,d0      | ...
    561                 lea     _vce2trg,a0     | check to see if voice is free
     561                lea     vce2trg,a0      | check to see if voice is free
    562562                move.w  0(a0,d0.W),d0   | ...
    563563                cmpi.w  #-1,d0          | ...
     
    570570                bne     act0            | ...
    571571
    572                 lea     _trgtab,a0      | check trigger table entry
     572                lea     trgtab,a0       | check trigger table entry
    573573                tst.b   0(a0,d0.W)      | ...
    574574                bne     act0            | if trigger is active, continue
     
    606606                movem.l d1-d2/a0-a2,-(a7)       | get ranged random number
    607607                move.w  d0,-(a7)                | ...
    608                 jsr     _irand                  | ...
     608                jsr     irand                   | ...
    609609                tst.w   (a7)+                   | ...
    610610                movem.l (a7)+,d1-d2/a0-a2       | ...
     
    630630                lsr.w   #3,d0           | ...
    631631                andi.w  #0x001E,d0      | ...
    632                 lea     _vce2trg,a0     | check to see if voice is free
     632                lea     vce2trg,a0      | check to see if voice is free
    633633                move.w  0(a0,d0.W),d0   | ...
    634634                cmpi.w  #-1,d0          | ...
     
    641641                bne     act0            | ...
    642642
    643                 lea     _trgtab,a0      | check trigger table entry
     643                lea     trgtab,a0       | check trigger table entry
    644644                tst.b   0(a0,d0.W)      | see if the trigger is active
    645645                beq     act3            | if not, do the jump
     
    655655                lsr.w   #3,d0           | ...
    656656                andi.w  #0x001E,d0      | ...
    657                 lea     _vce2trg,a0     | check to see if voice is free
     657                lea     vce2trg,a0      | check to see if voice is free
    658658                move.w  0(a0,d0.W),d0   | ...
    659659                cmpi.w  #-1,d0          | ...
     
    666666                bne     act3            | ...
    667667
    668                 lea     _trgtab,a0      | check trigger table entry
     668                lea     trgtab,a0       | check trigger table entry
    669669                tst.b   0(a0,d0.W)      | see if the trigger is active
    670670                bne     act3            | if so, do the jump
     
    682682                lsr.w   #3,d0           | ...
    683683                andi.w  #0x001E,d0      | ...
    684                 lea     _vce2trg,a0     | point at voice to trigger table
     684                lea     vce2trg,a0      | point at voice to trigger table
    685685                move.w  0(a0,d0.W),d0   | get trigger table entry
    686686                cmpi.w  #-1,d0          | see if voice is free
     
    693693                bne     act1a           | sustain if so
    694694
    695                 lea     _trgtab,a0      | point at trigger table
     695                lea     trgtab,a0       | point at trigger table
    696696                tst.b   0(a0,d0.W)      | check trigger status
    697697                beq     act0            | continue if not active
    698698
    699 act1a:          move.l  _pfqhdr,d3      | see if any pflist entries remain
     699act1a:          move.l  pfqhdr,d3       | see if any pflist entries remain
    700700                beq     act0            | no-op if not  (shouldn't happen ...)
    701701
     
    709709                addi.w  #PT_LEN,d2              | update point index
    710710                movea.l d3,a0                   | acquire a new pflist entry
    711                 move.l  (a0),_pfqhdr            | ...
    712                 move.l  _pflist,(a0)            | ...
    713                 move.l  a0,_pflist              | ...
     711                move.l  (a0),pfqhdr             | ...
     712                move.l  pflist,(a0)             | ...
     713                move.l  a0,pflist               | ...
    714714                move.w  FH_TRG(a1),PF_TRIG(a0)  | set trigger number in entry
    715715                move.w  _curpf_f,PF_FUNC(a0)    | set v/p word in entry
  • ram/sedisp.s

    r84c0125 r8325447  
    1717                .text
    1818
    19                 .xdef   _se_disp
    20 
    21                 .xdef   _ac_code
     19                .xdef   se_disp
     20
     21                .xdef   ac_code
    2222                .xdef   numstr
    2323
    24                 .xref   _dclkmd
    25                 .xref   _dsgmodz
    26                 .xref   _fromfpu
    27                 .xref   _mpcupd
    28                 .xref   _vputa
    29                 .xref   _vputc
    30                 .xref   _vputs
    31 
    32                 .xref   _angroup
    33                 .xref   _ctrsw
    34                 .xref   _grpstat
    35                 .xref   _ins2grp
    36                 .xref   _ndisp
    37                 .xref   _obj8
    38                 .xref   _gdfsep
    39                 .xref   _lastvel
    40                 .xref   _nsvtab
    41                 .xref   _velflag
    42                 .xref   _vrbw08
    43                 .xref   _vrbw09
    44                 .xref   _vrbw10
    45                 .xref   _vrbw11
    46                 .xref   _vrbw12
    47                 .xref   _vrbw13
    48                 .xref   _vrbw14
    49                 .xref   _vrbw15
    50                 .xref   _vrcw
     24                .xref   dclkmd
     25                .xref   dsgmodz
     26                .xref   fromfpu
     27                .xref   mpcupd
     28                .xref   vputa
     29                .xref   vputc
     30                .xref   vputs
     31
     32                .xref   angroup
     33                .xref   ctrsw
     34                .xref   grpstat
     35                .xref   ins2grp
     36                .xref   ndisp
     37                .xref   obj8
     38                .xref   gdfsep
     39                .xref   lastvel
     40                .xref   nsvtab
     41                .xref   velflag
     42                .xref   vrbw08
     43                .xref   vrbw09
     44                .xref   vrbw10
     45                .xref   vrbw11
     46                .xref   vrbw12
     47                .xref   vrbw13
     48                .xref   vrbw14
     49                .xref   vrbw15
     50                .xref   vrcw
    5151
    5252                .page
     
    132132| hardware limited by the maximum rate of the timer, and the VSDD update rate.
    133133
    134 _se_disp:       link    a6,#0                   | allocate and link stack frame
     134se_disp:        link    a6,#0                   | allocate and link stack frame
    135135                movea.l P_EP(a6),a0             | get event pointer 'ep' into a0
    136136                move.b  E_TYPE(a0),d1           | get event type into d1.W
     
    170170                move.w  d0,d1                   | save group in d1
    171171                add.w   d0,d0                   | make d0 a word offset
    172                 lea     _grpstat,a1             | check grpstat[grp]
     172                lea     grpstat,a1              | check grpstat[grp]
    173173                tst.w   0(a1,d0.W)              | ...
    174174                beq     dsexit                  | done if not enabled
     
    177177                beq     dsnb0                   | jump if not center slice
    178178
    179                 tst.w   _velflag                | see if we display velocity
     179                tst.w   velflag                 | see if we display velocity
    180180                beq     dsnvx                   | jump if not
    181181
     
    185185                move.w  d1,d2                   | point into lastvel[]
    186186                add.w   d2,d2                   | ...
    187                 lea     _lastvel,a1             | ...
     187                lea     lastvel,a1              | ...
    188188                move.w  d0,0(a1,d2.W)           | update lastvel[group]
    189189                ext.l   d0                      | scale
     
    214214                move.w  d0,-(a7)                | put column on stack
    215215                move.w  #5,-(a7)                | put row on stack
    216                 move.l  _obj8,-(a7)             | put VSDD address on stack
    217                 jsr     _vputs                  | update the screen
     216                move.l  obj8,-(a7)              | put VSDD address on stack
     217                jsr     vputs                   | update the screen
    218218                add.l   #14,a7                  | clean up stack
    219219                movea.l (a7)+,a0                | restore event pointer
     
    225225                bcc     dsnv2                   | jump if in MS byte
    226226
    227                 bset    d0,_vrbw12+1            | set group bit in LS byte
     227                bset    d0,vrbw12+1             | set group bit in LS byte
    228228                bra     dsnv3                   | ...
    229229
    230 dsnv2:          bset    d0,_vrbw12              | set group bit in MS byte
    231 
    232 dsnv3:          bset    #4,_vrcw                | set video reset type bit
     230dsnv2:          bset    d0,vrbw12               | set group bit in MS byte
     231
     232dsnv3:          bset    #4,vrcw                 | set video reset type bit
    233233                move.w  (a7)+,d2                | get new-note flag from stack
    234234
     
    244244                bgt     dsexit                  | done if not displayable
    245245
    246                 move.l  _gdfsep,d0              | quit if no elements left
    247                 beq     dsexit                  | ...
    248 
    249                 movea.l d0,a1                   | a1 = gdsp
    250                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     246                move.l  gdfsep,d0               | quit if no elements left
     247                beq     dsexit                  | ...
     248
     249                movea.l d0,a1                   | a1 = gdsp
     250                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    251251                clr.w   d2                      | d2 = ep->group
    252252                move.b  E_GROUP(a0),d2          | ...
     
    256256                move.l  a1,0(a2,d2.W)           | gdstb[ep->group] = gdsp
    257257                move.w  d1,G_NOTE(a1)           | gdsp->note = nn
    258                 lea     _nsvtab,a2              | a2 points at nsvtab
     258                lea     nsvtab,a2               | a2 points at nsvtab
    259259                tst.b   0(a2,d1.W)              | check nsvtab[nn]
    260260                beq     dsnb1                   | jump if natural note
    261261
    262                 move.b  _ac_code,d1             | setup for an accidental note
     262                move.b  ac_code,d1              | setup for an accidental note
    263263                bra     dsnb2                   | ...
    264264
     
    284284                move.b  E_GROUP(a0),d0          | ... in d0
    285285                add.w   d0,d0                   | ... as a word offset
    286                 lea     _grpstat,a1             | check grpstat[grp]
     286                lea     grpstat,a1              | check grpstat[grp]
    287287                tst.w   0(a1,d0.W)              | ...
    288288                beq     dsexit                  | done if not enabled
     
    341341                move.w  #6,-(a7)                | put column on stack
    342342                move.w  #0,-(a7)                | put row on stack
    343                 move.l  _obj8,-(a7)             | put sbase on stack
    344                 jsr     _vputs                  | update the screen
     343                move.l  obj8,-(a7)              | put sbase on stack
     344                jsr     vputs                   | update the screen
    345345                add.l   #14,a7                  | clean up stack
    346                 bset    #4,_vrcw+1              | set video reset type bit
    347                 tst.w   _ctrsw                  | update center for scupd ?
    348                 beq     dsexit                  | done if not
    349 
    350 dsbgn0:         move.l  _gdfsep,d0              | quit if no elements left
    351                 beq     dsexit                  | ...
    352 
    353                 movea.l d0,a1                   | a1 = gdsp
    354                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     346                bset    #4,vrcw+1               | set video reset type bit
     347                tst.w   ctrsw                   | update center for scupd ?
     348                beq     dsexit                  | done if not
     349
     350dsbgn0:         move.l  gdfsep,d0               | quit if no elements left
     351                beq     dsexit                  | ...
     352
     353                movea.l d0,a1                   | a1 = gdsp
     354                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    355355                move.w  #48,d2                  | d2 = event PRIORITY * 4
    356356                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    368368                beq     dssend0                 | jump if not
    369369
    370                 tst.w   _ctrsw                  | update center for scupd ?
    371                 beq     dsexit                  | done if not
    372 
    373 dssend0:        move.l  _gdfsep,d0              | quit if no elements left
    374                 beq     dsexit                  | ...
    375 
    376                 movea.l d0,a1                   | a1 = gdsp
    377                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     370                tst.w   ctrsw                   | update center for scupd ?
     371                beq     dsexit                  | done if not
     372
     373dssend0:        move.l  gdfsep,d0               | quit if no elements left
     374                beq     dsexit                  | ...
     375
     376                movea.l d0,a1                   | a1 = gdsp
     377                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    378378                move.w  #48,d2                  | d2 = event PRIORITY * 4
    379379                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    389389                bne     dsexit                  | done if so
    390390
    391                 move.l  _gdfsep,d0              | quit if no elements left
    392                 beq     dsexit                  | ...
    393 
    394                 movea.l d0,a1                   | a1 = gdsp
    395                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     391                move.l  gdfsep,d0               | quit if no elements left
     392                beq     dsexit                  | ...
     393
     394                movea.l d0,a1                   | a1 = gdsp
     395                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    396396                move.w  #48,d2                  | d2 = event PRIORITY * 4
    397397                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    416416                move.w  #19,-(a7)               | put column on stack
    417417                move.w  #1,-(a7)                | put row on stack
    418                 move.l  _obj8,-(a7)             | put sbase on stack
    419                 jsr     _vputc                  | display character
     418                move.l  obj8,-(a7)              | put sbase on stack
     419                jsr     vputc                   | display character
    420420                add.l   #12,a7                  | clean up stack
    421                 bset    #1,_vrcw+1              | set video reset type bit
    422                 tst.w   _ctrsw                  | update center for scupd ?
    423                 beq     dsexit                  | done if not
    424 
    425 dstune0:        move.l  _gdfsep,d0              | quit if no elements left
    426                 beq     dsexit                  | ...
    427 
    428                 movea.l d0,a1                   | a1 = gdsp
    429                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     421                bset    #1,vrcw+1               | set video reset type bit
     422                tst.w   ctrsw                   | update center for scupd ?
     423                beq     dsexit                  | done if not
     424
     425dstune0:        move.l  gdfsep,d0               | quit if no elements left
     426                beq     dsexit                  | ...
     427
     428                movea.l d0,a1                   | a1 = gdsp
     429                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    430430                move.w  #52,d2                  | d2 = event PRIORITY * 4
    431431                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    443443                move.b  E_DATA1(a0),d0          | ... in d0
    444444                add.w   d0,d0                   | ... as a word offset
    445                 lea     _grpstat,a1             | check grpstat[grp]
     445                lea     grpstat,a1              | check grpstat[grp]
    446446                tst.w   0(a1,d0.W)              | ...
    447447                beq     dsexit                  | done if not enabled
     
    497497                move.w  d1,-(a7)                | ...
    498498                move.w  #3,-(a7)                | ...
    499                 move.l  _obj8,-(a7)             | ...
    500                 jsr     _vputs                  | ...
     499                move.l  obj8,-(a7)              | ...
     500                jsr     vputs                   | ...
    501501                add.l   #14,a7                  | ...
    502502                move.w  (a7)+,d0                | get group number
     
    504504                bcc     dstrns5                 | jump if in MS byte
    505505
    506                 bset    d0,_vrbw09+1            | set group bit in LS byte
     506                bset    d0,vrbw09+1             | set group bit in LS byte
    507507                bra     dstrns6                 | ...
    508508
    509509dstrns5:        sub.w   #8,d0                   | adjust for byte
    510                 bset    d0,_vrbw09              | set group bit in MS byte
    511 
    512 dstrns6:        bset    #1,_vrcw                | set video reset type bit
    513                 tst.w   _ctrsw                  | update center for scupd ?
    514                 beq     dsexit                  | done if not
    515 
    516 dstrns0:        move.l  _gdfsep,d0              | quit if no elements left
    517                 beq     dsexit                  | ...
    518 
    519                 movea.l d0,a1                   | a1 = gdsp
    520                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     510                bset    d0,vrbw09               | set group bit in MS byte
     511
     512dstrns6:        bset    #1,vrcw                 | set video reset type bit
     513                tst.w   ctrsw                   | update center for scupd ?
     514                beq     dsexit                  | done if not
     515
     516dstrns0:        move.l  gdfsep,d0               | quit if no elements left
     517                beq     dsexit                  | ...
     518
     519                movea.l d0,a1                   | a1 = gdsp
     520                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    521521                move.w  #52,d2                  | d2 = event PRIORITY * 4
    522522                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    534534                move.b  E_DATA1(a0),d0          | ... in d0
    535535                add.w   d0,d0                   | ... as a word offset
    536                 lea     _grpstat,a1             | check grpstat[grp]
     536                lea     grpstat,a1              | check grpstat[grp]
    537537                tst.w   0(a1,d0.W)              | ...
    538538                beq     dsexit                  | done if not enabled
     
    560560                move.w  d0,-(a7)                | put column on stack
    561561                move.w  #4,-(a7)                | put row on stack
    562                 move.l  _obj8,-(a7)             | put object address on stack
    563                 jsr     _vputc                  | update the screen
     562                move.l  obj8,-(a7)              | put object address on stack
     563                jsr     vputc                   | update the screen
    564564                add.l   #12,a7                  | clean up stack
    565565                move.w  (a7)+,d0                | get group number
     
    567567                bcc     dsdyn1                  | jump if in MS word
    568568
    569                 bset    d0,_vrbw10+1            | set group bit in LS byte
     569                bset    d0,vrbw10+1             | set group bit in LS byte
    570570                bra     dsdyn2                  | ...
    571571
    572572dsdyn1:         sub.w   #8,d0                   | adjust for for byte
    573                 bset    d0,_vrbw10              | set group bit in MS byte
    574 
    575 dsdyn2:         bset    #2,_vrcw                | set video reset type bit
    576                 tst.w   _ctrsw                  | update center for scupd ?
    577                 beq     dsexit                  | done if not
    578 
    579                 .page
    580 dsdyn00:        move.l  _gdfsep,d0              | quit if no elements left
    581                 beq     dsexit                  | ...
    582 
    583                 movea.l d0,a1                   | a1 = gdsp
    584                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     573                bset    d0,vrbw10               | set group bit in MS byte
     574
     575dsdyn2:         bset    #2,vrcw                 | set video reset type bit
     576                tst.w   ctrsw                   | update center for scupd ?
     577                beq     dsexit                  | done if not
     578
     579                .page
     580dsdyn00:        move.l  gdfsep,d0               | quit if no elements left
     581                beq     dsexit                  | ...
     582
     583                movea.l d0,a1                   | a1 = gdsp
     584                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    585585                move.w  #52,d2                  | d2 = event PRIORITY * 4
    586586                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    598598                move.b  E_DATA1(a0),d0          | ... in d0
    599599                add.w   d0,d0                   | ... as a word offset
    600                 lea     _grpstat,a1             | check grpstat[grp]
     600                lea     grpstat,a1              | check grpstat[grp]
    601601                tst.w   0(a1,d0.W)              | ...
    602602                beq     dsexit                  | done if not enabled
     
    624624                move.w  d0,-(a7)                | put column on stack
    625625                move.w  #4,-(a7)                | put row on stack
    626                 move.l  _obj8,-(a7)             | put object address on stack
    627                 jsr     _vputc                  | update the screen
     626                move.l  obj8,-(a7)              | put object address on stack
     627                jsr     vputc                   | update the screen
    628628                add.l   #12,a7                  | clean up stack
    629629                move.w  (a7)+,d0                | get group number
     
    631631                bcc     dslocn1                 | jump if in MS word
    632632
    633                 bset    d0,_vrbw11+1            | set group bit in LS byte
     633                bset    d0,vrbw11+1             | set group bit in LS byte
    634634                bra     dslocn2                 | ...
    635635
    636636dslocn1:        sub.w   #8,d0                   | adjust for for byte
    637                 bset    d0,_vrbw11              | set group bit in MS byte
    638 
    639 dslocn2:        bset    #3,_vrcw                | set video reset type bit
    640                 tst.w   _ctrsw                  | update center for scupd ?
    641                 beq     dsexit                  | done if not
    642 
    643                 .page
    644 dsloc00:        move.l  _gdfsep,d0              | quit if no elements left
    645                 beq     dsexit                  | ...
    646 
    647                 movea.l d0,a1                   | a1 = gdsp
    648                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     637                bset    d0,vrbw11               | set group bit in MS byte
     638
     639dslocn2:        bset    #3,vrcw                 | set video reset type bit
     640                tst.w   ctrsw                   | update center for scupd ?
     641                beq     dsexit                  | done if not
     642
     643                .page
     644dsloc00:        move.l  gdfsep,d0               | quit if no elements left
     645                beq     dsexit                  | ...
     646
     647                movea.l d0,a1                   | a1 = gdsp
     648                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    649649                move.w  #52,d2                  | d2 = event PRIORITY * 4
    650650                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    663663                andi.w  #0x000F,d0              | ... in d0
    664664                add.w   d0,d0                   | ... as a word offset
    665                 lea     _grpstat,a1             | check grpstat[grp]
     665                lea     grpstat,a1              | check grpstat[grp]
    666666                tst.w   0(a1,d0.W)              | ...
    667667                beq     dsexit                  | done if not enabled
     
    670670                beq     dsanrs0                 | jump if not
    671671
    672                 move.w  _angroup,d2             | see if we display
     672                move.w  angroup,d2              | see if we display
    673673                bmi     dsexit                  | jump if not
    674674
     
    692692                move.w  d1,-(a7)                | put column on stack
    693693                move.w  #7,-(a7)                | put row on stack
    694                 move.l  _obj8,-(a7)             | put sbase on stack
    695                 jsr     _vputc                  | update the screen
     694                move.l  obj8,-(a7)              | put sbase on stack
     695                jsr     vputc                   | update the screen
    696696                add.l   #12,a7                  | clean up stack
    697697                move.w  (a7)+,d0                | get variable number
    698                 bset    d0,_vrbw13+1            | set variable bit
    699                 bset    #5,_vrcw                | set video reset type bit
    700                 tst.w   _ctrsw                  | update center for scupd ?
    701                 beq     dsexit                  | done if not
    702 
    703                 .page
    704 dsanrs0:        move.l  _gdfsep,d0              | quit if no elements left
    705                 beq     dsexit                  | ...
    706 
    707                 movea.l d0,a1                   | a1 = gdsp
    708                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     698                bset    d0,vrbw13+1             | set variable bit
     699                bset    #5,vrcw                 | set video reset type bit
     700                tst.w   ctrsw                   | update center for scupd ?
     701                beq     dsexit                  | done if not
     702
     703                .page
     704dsanrs0:        move.l  gdfsep,d0               | quit if no elements left
     705                beq     dsexit                  | ...
     706
     707                movea.l d0,a1                   | a1 = gdsp
     708                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    709709                move.w  #52,d2                  | d2 = event PRIORITY * 4
    710710                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    719719| dsanvl -- display analog value
    720720| ------    --------------------
    721 dsanvl:         move.w  _angroup,d2             | see if we display
     721dsanvl:         move.w  angroup,d2              | see if we display
    722722                bmi     dsexit                  | jump if not
    723723
     
    726726                andi.w  #0x000F,d0              | ... in d0
    727727                add.w   d0,d0                   | ... as a word offset
    728                 lea     _grpstat,a1             | check grpstat[grp]
     728                lea     grpstat,a1              | check grpstat[grp]
    729729                tst.w   0(a1,d0.W)              | ...
    730730                beq     dsexit                  | done if not enabled
     
    777777                move.w  d1,-(a7)                | put column on stack
    778778                move.w  #7,-(a7)                | put row on stack
    779                 move.l  _obj8,-(a7)             | put sbase on stack
    780                 jsr     _vputs                  | update the screen
     779                move.l  obj8,-(a7)              | put sbase on stack
     780                jsr     vputs                   | update the screen
    781781                add.l   #14,a7                  | clean up stack
    782782                move.w  (a7)+,d0                | get variable number
    783                 bset    d0,_vrbw14+1            | set variable bit
    784                 bset    #6,_vrcw                | set video reset type bit
    785                 tst.w   _ctrsw                  | update center for scupd ?
    786                 beq     dsexit                  | done if not
    787 
    788 dsanvl0:        move.l  _gdfsep,d0              | quit if no elements left
    789                 beq     dsexit                  | ...
    790 
    791                 movea.l d0,a1                   | a1 = gdsp
    792                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     783                bset    d0,vrbw14+1             | set variable bit
     784                bset    #6,vrcw                 | set video reset type bit
     785                tst.w   ctrsw                   | update center for scupd ?
     786                beq     dsexit                  | done if not
     787
     788dsanvl0:        move.l  gdfsep,d0               | quit if no elements left
     789                beq     dsexit                  | ...
     790
     791                movea.l d0,a1                   | a1 = gdsp
     792                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    793793                move.w  #52,d2                  | d2 = event PRIORITY * 4
    794794                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    807807
    808808                move.l  a0,-(a7)                | stash a0
    809                 jsr     _mpcupd                 | update changed stuff
     809                jsr     mpcupd                  | update changed stuff
    810810                movea.l (a7)+,a0                | restore a0
    811811                clr.w   d1                      | get assignment
     
    822822                move.w  #11,-(a7)               | put column on stack
    823823                move.w  #1,-(a7)                | put row on stack
    824                 move.l  _obj8,-(a7)             | put sbase on stack
    825                 jsr     _vputs                  | update the screen
     824                move.l  obj8,-(a7)              | put sbase on stack
     825                jsr     vputs                   | update the screen
    826826                add.l   #14,a7                  | clean up stack
    827                 bset    #0,_vrcw+1              | set video reset type bit
    828                 tst.w   _ctrsw                  | update center for scupd ?
    829                 beq     dsexit                  | done if not
    830 
    831 dsasgn0:        move.l  _gdfsep,d0              | quit if no elements left
    832                 beq     dsexit                  | ...
    833 
    834                 movea.l d0,a1                   | a1 = gdsp
    835                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     827                bset    #0,vrcw+1               | set video reset type bit
     828                tst.w   ctrsw                   | update center for scupd ?
     829                beq     dsexit                  | done if not
     830
     831dsasgn0:        move.l  gdfsep,d0               | quit if no elements left
     832                beq     dsexit                  | ...
     833
     834                movea.l d0,a1                   | a1 = gdsp
     835                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    836836                move.w  #56,d2                  | d2 = event PRIORITY * 4
    837837                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    868868                move.w  #27,-(a7)               | put column on stack
    869869                move.w  #1,-(a7)                | put row on stack
    870                 move.l  _obj8,-(a7)             | put sbase on stack
    871                 jsr     _vputs                  | display tempo
     870                move.l  obj8,-(a7)              | put sbase on stack
     871                jsr     vputs                   | display tempo
    872872                add.l   #14,a7                  | clean up stack
    873                 bset    #2,_vrcw+1              | set video reset type bit
    874                 tst.w   _ctrsw                  | update center for scupd ?
    875                 beq     dsexit                  | done if not
    876 
    877 dstmpo0:        move.l  _gdfsep,d0              | quit if no elements left
    878                 beq     dsexit                  | ...
    879 
    880                 movea.l d0,a1                   | a1 = gdsp
    881                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     873                bset    #2,vrcw+1               | set video reset type bit
     874                tst.w   ctrsw                   | update center for scupd ?
     875                beq     dsexit                  | done if not
     876
     877dstmpo0:        move.l  gdfsep,d0               | quit if no elements left
     878                beq     dsexit                  | ...
     879
     880                movea.l d0,a1                   | a1 = gdsp
     881                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    882882                move.w  #56,d2                  | d2 = event PRIORITY * 4
    883883                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    895895                beq     dsstop0                 | jump if not
    896896
    897                 jsr     _dclkmd                 | show that clock is stopped
     897                jsr     dclkmd                  | show that clock is stopped
    898898                move.w  #AT08,-(a7)             | put attribute on stack
    899899                move.w  #40,-(a7)               | put 1st column on stack
    900900                move.w  #1,-(a7)                | put row on stack
    901                 move.l  _obj8,-(a7)             | put sbase on stack
    902                 jsr     _vputa                  | hilite first column
     901                move.l  obj8,-(a7)              | put sbase on stack
     902                jsr     vputa                   | hilite first column
    903903                move.w  #41,COL(a7)             | put 2nd column on stack
    904                 jsr     _vputa                  | hilite second column
     904                jsr     vputa                   | hilite second column
    905905                move.w  #42,COL(a7)             | put 3rd column on stack
    906                 jsr     _vputa                  | hilite third column
     906                jsr     vputa                   | hilite third column
    907907                move.w  #43,COL(a7)             | put 4th column on stack
    908                 jsr     _vputa                  | hilite fourth column
     908                jsr     vputa                   | hilite fourth column
    909909                add.l   #10,a7                  | clean up stack
    910                 bset    #7,_vrcw                | set video reset type bits
    911                 bset    #0,_vrbw15              | ...
    912                 tst.w   _ctrsw                  | update center for scupd ?
    913                 beq     dsexit                  | done if not
    914 
    915 dsstop0:        move.l  _gdfsep,d0              | quit if no elements left
    916                 beq     dsexit                  | ...
    917 
    918                 movea.l d0,a1                   | a1 = gdsp
    919                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     910                bset    #7,vrcw                 | set video reset type bits
     911                bset    #0,vrbw15               | ...
     912                tst.w   ctrsw                   | update center for scupd ?
     913                beq     dsexit                  | done if not
     914
     915dsstop0:        move.l  gdfsep,d0               | quit if no elements left
     916                beq     dsexit                  | ...
     917
     918                movea.l d0,a1                   | a1 = gdsp
     919                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    920920                move.w  #56,d2                  | d2 = event PRIORITY * 4
    921921                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    936936                move.w  #45,-(a7)               | put 1st column on stack
    937937                move.w  #1,-(a7)                | put row on stack
    938                 move.l  _obj8,-(a7)             | put sbase on stack
    939                 jsr     _vputa                  | hilite first column
     938                move.l  obj8,-(a7)              | put sbase on stack
     939                jsr     vputa                   | hilite first column
    940940                move.w  #46,COL(a7)             | put 2nd column on stack
    941                 jsr     _vputa                  | hilite second column
     941                jsr     vputa                   | hilite second column
    942942                move.w  #47,COL(a7)             | put 3rd column on stack
    943                 jsr     _vputa                  | hilite third column
     943                jsr     vputa                   | hilite third column
    944944                move.w  #48,COL(a7)             | put 4th column on stack
    945                 jsr     _vputa                  | hilite fourth column
     945                jsr     vputa                   | hilite fourth column
    946946                add.l   #10,a7                  | clean up stack
    947                 bset    #7,_vrcw                | set video reset type bits
    948                 bset    #1,_vrbw15              | ...
    949                 tst.w   _ctrsw                  | update center for scupd ?
    950                 beq     dsexit                  | done if not
    951 
    952 dsnext0:        move.l  _gdfsep,d0              | quit if no elements left
    953                 beq     dsexit                  | ...
    954 
    955                 movea.l d0,a1                   | a1 = gdsp
    956                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     947                bset    #7,vrcw                 | set video reset type bits
     948                bset    #1,vrbw15               | ...
     949                tst.w   ctrsw                   | update center for scupd ?
     950                beq     dsexit                  | done if not
     951
     952dsnext0:        move.l  gdfsep,d0               | quit if no elements left
     953                beq     dsexit                  | ...
     954
     955                movea.l d0,a1                   | a1 = gdsp
     956                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    957957                move.w  #56,d2                  | d2 = event PRIORITY * 4
    958958                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    970970                beq     dsgrp0                  | jump if not
    971971
    972                 tst.w   _ctrsw                  | update center for scupd ?
    973                 beq     dsexit                  | done if not
    974 
    975 dsgrp0:         move.l  _gdfsep,d0              | quit if no elements left
    976                 beq     dsexit                  | ...
    977 
    978                 movea.l d0,a1                   | a1 = gdsp
    979                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     972                tst.w   ctrsw                   | update center for scupd ?
     973                beq     dsexit                  | done if not
     974
     975dsgrp0:         move.l  gdfsep,d0               | quit if no elements left
     976                beq     dsexit                  | ...
     977
     978                movea.l d0,a1                   | a1 = gdsp
     979                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    980980                move.w  #60,d2                  | d2 = event PRIORITY * 4
    981981                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    993993                move.b  E_DATA1(a0),d0          | ... in d0
    994994                add.w   d0,d0                   | ... as a word offset
    995                 lea     _grpstat,a1             | check grpstat[grp]
     995                lea     grpstat,a1              | check grpstat[grp]
    996996                tst.w   0(a1,d0.W)              | ...
    997997                beq     dsexit                  | done if not enabled
     
    10001000                beq     dsins00                 | jump if not
    10011001
    1002                 lea     _ins2grp,a1             | point at ins2grp[]
     1002                lea     ins2grp,a1              | point at ins2grp[]
    10031003                clr.w   d0                      | get instrument number
    10041004                move.b  E_DATA2(a0),d0          | ... in d0
     
    10261026                move.w  d0,-(a7)                | put column on stack
    10271027                move.w  #2,-(a7)                | put row on stack
    1028                 move.l  _obj8,-(a7)             | put object address on stack
    1029                 jsr     _vputs                  | update the screen
     1028                move.l  obj8,-(a7)              | put object address on stack
     1029                jsr     vputs                   | update the screen
    10301030                add.l   #14,a7                  | clean up stack
    10311031
     
    10351035                bcc     dsinst1                 | jump if in MS word
    10361036
    1037                 bset    d0,_vrbw08+1            | set group bit in LS byte
     1037                bset    d0,vrbw08+1             | set group bit in LS byte
    10381038                bra     dsinst2                 | ...
    10391039
    10401040dsinst1:        sub.w   #8,d0                   | adjust for for byte
    1041                 bset    d0,_vrbw08              | set group bit in MS byte
    1042 
    1043 dsinst2:        bset    #0,_vrcw                | set video reset type bit
    1044                 tst.w   _ctrsw                  | update center for scupd ?
    1045                 beq     dsexit                  | done if not
    1046 
    1047 dsins00:        move.l  _gdfsep,d0              | quit if no elements left
    1048                 beq     dsexit                  | ...
    1049 
    1050                 movea.l d0,a1                   | a1 = gdsp
    1051                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     1041                bset    d0,vrbw08               | set group bit in MS byte
     1042
     1043dsinst2:        bset    #0,vrcw                 | set video reset type bit
     1044                tst.w   ctrsw                   | update center for scupd ?
     1045                beq     dsexit                  | done if not
     1046
     1047dsins00:        move.l  gdfsep,d0               | quit if no elements left
     1048                beq     dsexit                  | ...
     1049
     1050                movea.l d0,a1                   | a1 = gdsp
     1051                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    10521052                move.w  #60,d2                  | d2 = event PRIORITY * 4
    10531053                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    10661066
    10671067                move.w  E_DATA1(a0),-(a7)       | get interpolate value
    1068                 jsr     _fromfpu                | convert to milliseconds
     1068                jsr     fromfpu                 | convert to milliseconds
    10691069                tst.w   (a7)+                   | ...
    10701070                andi.l  #0x0000FFFF,d0          | clear high bits
     
    10881088                move.w  #35,-(a7)               | ...
    10891089                move.w  #1,-(a7)                | ...
    1090                 move.l  _obj8,-(a7)             | ...
    1091                 jsr     _vputs                  | ...
     1090                move.l  obj8,-(a7)              | ...
     1091                jsr     vputs                   | ...
    10921092                add.l   #14,a7                  | ...
    1093                 bset    #3,_vrcw+1              | set video reset bit
    1094                 tst.w   _ctrsw                  | update center for scupd ?
    1095                 beq     dsexit                  | done if not
    1096 
    1097 dsintp0:        move.l  _gdfsep,d0              | quit if no elements left
    1098                 beq     dsexit                  | ...
    1099 
    1100                 movea.l d0,a1                   | a1 = gdsp
    1101                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     1093                bset    #3,vrcw+1               | set video reset bit
     1094                tst.w   ctrsw                   | update center for scupd ?
     1095                beq     dsexit                  | done if not
     1096
     1097dsintp0:        move.l  gdfsep,d0               | quit if no elements left
     1098                beq     dsexit                  | ...
     1099
     1100                movea.l d0,a1                   | a1 = gdsp
     1101                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    11021102                move.w  #60,d2                  | d2 = event PRIORITY * 4
    11031103                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    11211121                move.w  #50,-(a7)               | put 1st col on stack
    11221122                move.w  #1,-(a7)                | put row on stack
    1123                 move.l  _obj8,-(a7)             | put object address on stack
    1124                 jsr     _vputa                  | highlight 1st column
     1123                move.l  obj8,-(a7)              | put object address on stack
     1124                jsr     vputa                   | highlight 1st column
    11251125                move.w  #51,COL(a7)             | put 2nd col on stack
    1126                 jsr     _vputa                  | highlight 2nd col
     1126                jsr     vputa                   | highlight 2nd col
    11271127                add.l   #10,a7                  | clean up stack
    1128                 bset    #5,_vrcw+1              | set video reset bit
     1128                bset    #5,vrcw+1               | set video reset bit
    11291129                bra     dspnch2                 | go do maker update
    11301130
     
    11321132                move.w  #53,-(a7)               | put 1st col on stack
    11331133                move.w  #1,-(a7)                | put row on stack
    1134                 move.l  _obj8,-(a7)             | put object address on stack
    1135                 jsr     _vputa                  | highlight 1st column
     1134                move.l  obj8,-(a7)              | put object address on stack
     1135                jsr     vputa                   | highlight 1st column
    11361136                move.w  #54,COL(a7)             | put 2nd col on stack
    1137                 jsr     _vputa                  | highlight 2nd column
     1137                jsr     vputa                   | highlight 2nd column
    11381138                move.w  #55,COL(a7)             | put 3rd col on stack
    1139                 jsr     _vputa                  | highlight 3rd column
     1139                jsr     vputa                   | highlight 3rd column
    11401140                add.l   #10,a7                  | clean up stack
    1141                 bset    #6,_vrcw+1              | set video reset bit
    1142 
    1143 dspnch2:        jsr     _dsgmodz                | display updated modes
    1144                 tst.w   _ctrsw                  | update center for scupd ?
    1145                 beq     dsexit                  | done if not
    1146 
    1147 dspnch0:        move.l  _gdfsep,d0              | quit if no elements left
    1148                 beq     dsexit                  | ...
    1149 
    1150                 movea.l d0,a1                   | a1 = gdsp
    1151                 move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
     1141                bset    #6,vrcw+1               | set video reset bit
     1142
     1143dspnch2:        jsr     dsgmodz                 | display updated modes
     1144                tst.w   ctrsw                   | update center for scupd ?
     1145                beq     dsexit                  | done if not
     1146
     1147dspnch0:        move.l  gdfsep,d0               | quit if no elements left
     1148                beq     dsexit                  | ...
     1149
     1150                movea.l d0,a1                   | a1 = gdsp
     1151                move.l  G_NEXT(a1),gdfsep       | gdfsep = gdsp->next
    11521152                move.w  #60,d2                  | d2 = event PRIORITY * 4
    11531153                movea.l P_SL(a6),a2             | a2 points at gdstb
     
    11721172                beq     dsbar0                  | jump if not
    11731173
    1174                 tst.w   _ctrsw                  | update center for scupd ?
     1174                tst.w   ctrsw                   | update center for scupd ?
    11751175                beq     dsexit                  | done if not
    11761176
     
    12191219| globals:
    12201220| --------
    1221 _ac_code:       .ds.b   1               | accidental code
     1221ac_code:        .ds.b   1               | accidental code
    12221222
    12231223| locals:
  • ram/seexec.s

    r84c0125 r8325447  
    1313                .text
    1414
    15                 .xdef   _se_exec
     15                .xdef   se_exec
    1616
    1717                .xdef   BadEvnt
    1818
    19                 .xdef   _xevent
    20 
    21                 .xref   _asgvce
    22                 .xref   _clkset
    23                 .xref   _getasg
    24                 .xref   _gettun
    25                 .xref   _procpfl
    26                 .xref   _selscor
    27                 .xref   _setdyn
    28                 .xref   _setloc
    29                 .xref   _setsv
    30                 .xref   _settmpo
    31                 .xref   _settune
    32                 .xref   _setv2gi
    33 
    34                 .xref   _anrs
    35                 .xref   _var2src
    36                 .xref   _curasg
    37                 .xref   _curintp
    38                 .xref   _cursect
    39                 .xref   _grpmode
    40                 .xref   _grpstat
    41                 .xref   _ins2grp
    42                 .xref   _nxtflag
    43                 .xref   _recsw
    44                 .xref   _s_trns
    45                 .xref   _trgtab
    46                 .xref   _varmode
    47                 .xref   _vce2grp
    48                 .xref   _vce2trg
    49                 .xref   _veltab
     19                .xdef   xevent
     20
     21                .xref   asgvce
     22                .xref   clkset
     23                .xref   getasg
     24                .xref   gettun
     25                .xref   procpfl
     26                .xref   selscor
     27                .xref   setdyn
     28                .xref   setloc
     29                .xref   setsv
     30                .xref   settmpo
     31                .xref   settune
     32                .xref   setv2gi
     33
     34                .xref   anrs
     35                .xref   var2src
     36                .xref   curasg
     37                .xref   curintp
     38                .xref   cursect
     39                .xref   grpmode
     40                .xref   grpstat
     41                .xref   ins2grp
     42                .xref   nxtflag
     43                .xref   recsw
     44                .xref   s_trns
     45                .xref   trgtab
     46                .xref   varmode
     47                .xref   vce2grp
     48                .xref   vce2trg
     49                .xref   veltab
    5050
    5151                .page
     
    9898| hardware limited by the timer.
    9999
    100 _se_exec:       link    a6,#0                   | link stack frames
     100se_exec:        link    a6,#0                   | link stack frames
    101101                movea.l P_EP(a6),a0             | get event pointer 'ep' into a0
    102102                move.l  a0,_xevent              | save in xevent
     
    144144                move.b  E_GROUP(a0),d1          | get group number
    145145                add.w   d1,d1                   | ... * 2
    146                 lea     _grpstat,a1             | point at grpstat
     146                lea     grpstat,a1              | point at grpstat
    147147                tst.w   0(a1,d1.W)              | see if group is enabled
    148148                beq     exexit                  | done if not
     
    151151                move.w  #LCL_PCH,d2             | put port and channel in d2
    152152                add.w   d1,d2                   | d2 = trg
    153                 lea     _trgtab,a1              | point at trgtab[trg]
     153                lea     trgtab,a1               | point at trgtab[trg]
    154154                move.b  0(a1,d2.W),d0           | ...
    155155                or.b    #M_KSTATE,d0            | set trigger table entry on
    156156                move.b  d0,0(a1,d2.W)           | ...
    157                 lea     _veltab,a1              | point at veltab
     157                lea     veltab,a1               | point at veltab
    158158                add.w   d2,d2                   | ...
    159159                move.w  E_VEL(a0),0(a1,d2.W)    | put velocity in veltab
     
    164164                move.b  E_GROUP(a0),d1          | d1 = group number  (0..11)
    165165                move.w  d1,-(a7)                | put group number on the stack
    166                 jsr     _asgvce                 | start the note
     166                jsr     asgvce                  | start the note
    167167                add.l   #10,a7                  | clean up the stack
    168168                bra     exexit                  | done
     
    182182                move.b  E_GROUP(a0),d1          | get group number
    183183                add.w   d1,d1                   | ... * 2
    184                 lea     _grpstat,a1             | point at grpstat
     184                lea     grpstat,a1              | point at grpstat
    185185                tst.w   0(a1,d1.W)              | check group status
    186186                beq     exexit                  | done if disabled
     
    190190                add.w   d1,d2                   | d2 = trg * 2
    191191                add.w   d2,d2                   | ...
    192                 lea     _trgtab,a1              | set trigger table entry off
     192                lea     trgtab,a1               | set trigger table entry off
    193193                move.b  0(a1,d2.W),d0           | ...
    194194                and.b   #N_KSTATE,d0            | ...
     
    200200                lsr.w   #1,d2                   | adjust d2
    201201                clr.w   d1                      | set loop index
    202                 lea     _vce2trg,a2             | point at vce2trg table
     202                lea     vce2trg,a2              | point at vce2trg table
    203203
    204204exnend1:        cmp.w   (a2),d2                 | see if this voice uses trg
     
    209209                move.w  d1,-(a7)                | save d1 on stack
    210210                move.w  d2,-(a7)                | save d2 on stack
    211                 lea     _vce2grp,a1             | put group on stack
     211                lea     vce2grp,a1              | put group on stack
    212212                move.w  d1,d0                   | ...
    213213                add.w   d0,d0                   | ...
    214214                move.w  0(a1,d0.W),-(a7)        | ...
    215215                move.w  d2,-(a7)                | put trg on stack
    216                 jsr     _procpfl                | process sustained voices
     216                jsr     procpfl                 | process sustained voices
    217217                addq.l  #4,a7                   | clean up stack
    218218                move.w  (a7)+,d2                | restore d2
     
    233233exsbgn:         clr.w   d0                      | get section number
    234234                move.b  E_DATA1(a0),d0          | ...
    235                 move.w  d0,_cursect             | set section number
     235                move.w  d0,cursect              | set section number
    236236                bra     exexit                  | done
    237237
     
    241241                move.b  E_DATA1(a0),d0          | ...
    242242                move.w  d0,-(a7)                | getasg(curasg = asgn)
    243                 move.w  d0,_curasg              | ...
    244                 jsr     _getasg                 | ...
     243                move.w  d0,curasg               | ...
     244                jsr     getasg                  | ...
    245245                tst.w   (a7)+                   | ...
    246246                bra     exexit                  | done
     
    251251                move.b  E_DATA1(a0),d0          | ...
    252252                move.w  d0,-(a7)                | gettun(tuning)
    253                 jsr     _gettun                 | ...
     253                jsr     gettun                  | ...
    254254                tst.w   (a7)+                   | ...
    255255                bra     exexit                  | done
     
    260260                move.b  E_DATA1(a0),d0          | ...
    261261                add.w   d0,d0                   | ... as an index in d0
    262                 lea     _grpstat,a1             | check grpstat[grp]
     262                lea     grpstat,a1              | check grpstat[grp]
    263263                tst.w   0(a1,d0.W)              | ...
    264264                beq     exexit                  | done if disabled
    265265
    266                 lea     _s_trns,a1              | set group transposition
     266                lea     s_trns,a1               | set group transposition
    267267                move.w  E_LFT(a0),0(a1,d0.W)    | ...
    268                 jsr     _settune                | ...
     268                jsr     settune                 | ...
    269269                bra     exexit                  | done
    270270
     
    276276                move.b  E_DATA1(a0),d0          | ...
    277277                move.w  d0,-(a7)                | settmpo(tempo)
    278                 jsr     _settmpo                | ...
     278                jsr     settmpo                 | ...
    279279                tst.w   (a7)+                   | ...
    280280                bra     exexit                  | done
     
    283283| ------    ------------------
    284284exstop:         clr.w   -(a7)                   | stop the clock
    285                 jsr     _clkset                 | ...
     285                jsr     clkset                  | ...
    286286                tst.w   (a7)+                   | ...
    287287                bra     exexit                  | that's all, folks
     
    289289| exintp -- execute interpolate event
    290290| ------    -------------------------
    291 exintp:         move.w  E_DATA1(a0),_curintp    | set interpolate value
     291exintp:         move.w  E_DATA1(a0),curintp     | set interpolate value
    292292                bra     exexit                  | done
    293293
     
    299299                move.b  E_DATA1(a0),d0          | ... in d0
    300300                add.w   d0,d0                   | ... as a word offset
    301                 lea     _grpstat,a1             | check grpstat[grp]
     301                lea     grpstat,a1              | check grpstat[grp]
    302302                tst.w   0(a1,d0.W)              | ...
    303303                beq     exexit                  | done if not enabled
    304304
    305                 lea     _ins2grp,a1             | point at ins2grp[]
     305                lea     ins2grp,a1              | point at ins2grp[]
    306306                clr.w   d0                      | get instrument number
    307307                move.b  E_DATA2(a0),d0          | ... in d0
     
    314314                or.w    d0,d2                   | OR in new instrument number
    315315                move.w  d2,0(a1,d1.W)           | set ins2grp[group]
    316                 jsr     _setv2gi                | setv2gi(group)
     316                jsr     setv2gi                 | setv2gi(group)
    317317                tst.w   (a7)+                   | clean up stack
    318318                bra     exexit                  | done
     
    325325                move.b  E_DATA1(a0),d0          | ... in d0
    326326                add.w   d0,d0                   | ... as a word offset
    327                 lea     _grpstat,a1             | check grpstat[grp]
     327                lea     grpstat,a1              | check grpstat[grp]
    328328                tst.w   0(a1,d0.W)              | ...
    329329                beq     exexit                  | done if not enabled
     
    335335                move.w  d0,-(a7)                | setdyn(group, dyn)
    336336                move.w  d1,-(a7)                | ...
    337                 jsr     _setdyn                 | ...
     337                jsr     setdyn                  | ...
    338338                adda.l  #4,a7                   | clean up stack
    339339                bra     exexit                  | done
     
    344344                move.b  E_DATA1(a0),d0          | ... in d0
    345345                add.w   d0,d0                   | ... as a word offset
    346                 lea     _grpstat,a1             | check grpstat[grp]
     346                lea     grpstat,a1              | check grpstat[grp]
    347347                tst.w   0(a1,d0.W)              | ...
    348348                beq     exexit                  | done if not enabled
     
    354354                move.w  d0,-(a7)                | setloc(group, loc)
    355355                move.w  d1,-(a7)                | ...
    356                 jsr     _setloc                 | ...
     356                jsr     setloc                  | ...
    357357                adda.l  #4,a7                   | clean up stack
    358358                bra     exexit                  | done
     
    365365                andi.w  #0x000F,d0              | ... in d0
    366366                add.w   d0,d0                   | ... as a word offset
    367                 lea     _grpstat,a1             | check grpstat[grp]
     367                lea     grpstat,a1              | check grpstat[grp]
    368368                tst.w   0(a1,d0.W)              | ...
    369369                beq     exexit                  | done if not enabled
     
    374374                clr.w   d0                      | get resolution
    375375                move.b  E_DATA2(a0),d0          | ... in d0
    376                 lea     _anrs,a1                | point at resolution table base
     376                lea     anrs,a1                 | point at resolution table base
    377377                move.w  d0,0(a1,d1.W)           | save resolution in table
    378378                bra     exexit                  | done
     
    383383                andi.w  #0x000F,d0              | ... in d0
    384384                add.w   d0,d0                   | ... as a word offset
    385                 lea     _grpstat,a1             | check grpstat[grp]
     385                lea     grpstat,a1              | check grpstat[grp]
    386386                tst.w   0(a1,d0.W)              | ...
    387387                beq     exexit                  | done if not enabled
     
    394394                lsr.w   #3,d2                   | extract variable number
    395395                andi.w  #0x001E,d2              | ... as a word index in d2
    396                 lea     _var2src,a1             | point at variable map
     396                lea     var2src,a1              | point at variable map
    397397                move.w  0(a1,d2.W),-(a7)        | put source number on stack
    398398                move.w  d1,-(a7)                | put group number on stack
    399                 jsr     _setsv                  | setsv(group, src, val)
     399                jsr     setsv                   | setsv(group, src, val)
    400400                adda.l  #6,a7                   | clean up stack
    401401                bra     exexit                  | done
     
    403403| exnext -- next score
    404404| ------    ----------
    405 exnext:         move.w  #1,_nxtflag             | set next score flag
     405exnext:         move.w  #1,nxtflag              | set next score flag
    406406                bra     exexit                  | done
    407407
     
    410410| expnch -- execute punch in/out
    411411| ------    --------------------
    412 expnch:         tst.w   _recsw                  | recording ?
     412expnch:         tst.w   recsw                   | recording ?
    413413                beq     exexit                  | ignore if not
    414414
     
    418418| punch out
    419419
    420                 lea     _grpmode,a1             | setup for group modes
     420                lea     grpmode,a1              | setup for group modes
    421421                move.w  #11,d0                  | ...
    422422
     
    429429                dbra    d0,expnch0              | loop through all groups
    430430
    431                 lea     _varmode,a1             | setup for variable modes
     431                lea     varmode,a1              | setup for variable modes
    432432                move.w  #5,d1                   | set variable count
    433433
     
    452452| punch in
    453453
    454 expnch5:        lea     _grpmode,a1             | setup for group modes
     454expnch5:        lea     grpmode,a1              | setup for group modes
    455455                move.w  #11,d0                  | ...
    456456
     
    463463                dbra    d0,expnch6              | loop through all groups
    464464
    465                 lea     _varmode,a1             | setup for variable modes
     465                lea     varmode,a1              | setup for variable modes
    466466                move.w  #5,d1                   | set variable count
    467467
  • ram/serintr.s

    r84c0125 r8325447  
    1313                .text
    1414
    15                 .xdef   _setsio
    16 
    17                 .xdef   _foot1
    18                 .xdef   _foot2
    19                 .xdef   _pulse1
    20                 .xdef   _pulse2
     15                .xdef   setsio
     16
     17                .xdef   foot1
     18                .xdef   foot2
     19                .xdef   pulse1
     20                .xdef   pulse2
    2121
    2222                .xdef   serintr
     
    108108                lea     SR1IOREC,a0             | Point at Serial-1 iorec
    109109                lea     SR1ACIA,a1              | Point at Serial-1 ACIA
    110                 movea.l _foot1,a2               | Point at foot sw. 1 processor
     110                movea.l foot1,a2                | Point at foot sw. 1 processor
    111111                bsr     serint                  | Go process (possible) int.
    112112
    113113                lea     SR2IOREC,a0             | Point at Serial-2 iorec
    114114                lea     SR2ACIA,a1              | Point at Serial-2 ACIA
    115                 movea.l _foot2,a2               | Point at foot sw. 2 processor
     115                movea.l foot2,a2                | Point at foot sw. 2 processor
    116116                bsr     serint                  | Go process (possible) int.
    117117
    118118                lea     MC1IOREC,a0             | Point at MIDI-1 iorec
    119119                lea     MC1ACIA,a1              | Point at MIDI-1 ACIA
    120                 movea.l _pulse1,a2              | Point at pulse 1 processor
     120                movea.l pulse1,a2               | Point at pulse 1 processor
    121121                bsr     midint                  | Go process (possible) int.
    122122
    123123                lea     MC2IOREC,a0             | Point at MIDI-2 iorec
    124124                lea     MC2ACIA,a1              | Point at MIDI-2 ACIA
    125                 movea.l _pulse2,a2              | Point at pulse 2 processor
     125                movea.l pulse2,a2               | Point at pulse 2 processor
    126126                bsr     midint                  | Go process (possible) int.
    127127
     
    490490                .page
    491491
    492 | _setsio -- setsio() -- initialize serial I/O vectors and DCD interrupts
    493 | -------    ------------------------------------------------------------
    494 _setsio:        move.w  sr,-(a7)                | Preserve status register
     492| setsio -- setsio() -- initialize serial I/O vectors and DCD interrupts
     493| ------    ------------------------------------------------------------
     494setsio:         move.w  sr,-(a7)                | Preserve status register
    495495                ori.w   #IPL7,sr                | DISABLE INTERRUPTS
    496496
    497497                lea     nulsiox,a0              | Get null return address
    498                 move.l  a0,_foot1               | Initialize foot1 vector
    499                 move.l  a0,_foot2               | Initialize foot2 vector
    500                 move.l  a0,_pulse1              | Initialize pulse1 vector
    501                 move.l  a0,_pulse2              | Initialize pulse2 vector
     498                move.l  a0,foot1                | Initialize foot1 vector
     499                move.l  a0,foot2                | Initialize foot2 vector
     500                move.l  a0,pulse1               | Initialize pulse1 vector
     501                move.l  a0,pulse2               | Initialize pulse2 vector
    502502
    503503                lea     SR1ACIA,a1              | Point at Serial-1 ACIA
     
    524524| DCD interrupt processor vectors
    525525| -------------------------------
    526 _foot1:         .ds.l   1                       | short (*foot1)();
    527 _foot2:         .ds.l   1                       | short (*foot2)();
    528 _pulse1:        .ds.l   1                       | short (*pulse1)();
    529 _pulse2:        .ds.l   1                       | short (*pulse2)();
     526foot1:          .ds.l   1                       | short (*foot1)();
     527foot2:          .ds.l   1                       | short (*foot2)();
     528pulse1:         .ds.l   1                       | short (*pulse1)();
     529pulse2:         .ds.l   1                       | short (*pulse2)();
    530530
    531531                .end
  • ram/sreset.s

    r84c0125 r8325447  
    55                .text
    66
    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
     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
    2222
    2323ROW             =       4
     
    4040| sreset() -- reset highlighting
    4141| --------    ------------------
    42 _sreset:        link    a6,#0           | link stack frame
    43                 cmp.w   #2,_ndisp       | see if we should update display
     42sreset:         link    a6,#0           | link stack frame
     43                cmp.w   #2,ndisp        | see if we should update display
    4444                bne     srsexit         | jump if not
    4545
    46                 move.w  _vrcw,d0        | get and check vrcw
     46                move.w  vrcw,d0         | get and check vrcw
    4747                bne     srs0            | jump if something to do
    4848
     
    5353                ori.w   #0x0700,sr      | ...
    5454
    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         | ...
     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          | ...
    7373
    7474                move.w  d1,sr           | <<<<< restore interrupts >>>>>
     
    8585                clr.w   -(a7)           | put dummy column on stack
    8686                clr.w   -(a7)           | put dummy row on stack
    87                 move.l  _obj8,-(a7)     | put sbase on stack
     87                move.l  obj8,-(a7)      | put sbase on stack
    8888
    8989                .page
     
    9797                move.w  #1,ROW(a7)      | put row on stack
    9898                move.w  #11,COL(a7)     | put 1st column on stack
    99                 jsr     _vputa          | reset first column
     99                jsr     vputa           | reset first column
    100100                move.w  #12,COL(a7)     | put 2nd column on stack
    101                 jsr     _vputa          | reset second column
     101                jsr     vputa           | reset second column
    102102                move.w  vrcw,d0         | restore vrcw to d0
    103103
     
    110110                move.w  #1,ROW(a7)      | put row on stack
    111111                move.w  #19,COL(a7)     | put column on stack
    112                 jsr     _vputa          | reset column
     112                jsr     vputa           | reset column
    113113                move.w  vrcw,d0         | restore vrcw to d0
    114114
     
    121121                move.w  #1,ROW(a7)      | put row on stack
    122122                move.w  #27,COL(a7)     | put 1st column on stack
    123                 jsr     _vputa          | reset first column
     123                jsr     vputa           | reset first column
    124124                move.w  #28,COL(a7)     | put 2nd column on stack
    125                 jsr     _vputa          | reset second column
     125                jsr     vputa           | reset second column
    126126                move.w  #29,COL(a7)     | put 3rd column on stack
    127                 jsr     _vputa          | reset third column
     127                jsr     vputa           | reset third column
    128128                move.w  vrcw,d0         | restore vrcw to d0
    129129
     
    138138                move.w  #1,ROW(a7)      | put row on stack
    139139                move.w  #35,COL(a7)     | put 1st column on stack
    140                 jsr     _vputa          | reset first column
     140                jsr     vputa           | reset first column
    141141                move.w  #36,COL(a7)     | put 2nd column on stack
    142                 jsr     _vputa          | reset second column
     142                jsr     vputa           | reset second column
    143143                move.w  #37,COL(a7)     | put 3rd column on stack
    144                 jsr     _vputa          | reset third column
     144                jsr     vputa           | reset third column
    145145                move.w  #38,COL(a7)     | put 4th column on stack
    146                 jsr     _vputa          | reset fourth column
     146                jsr     vputa           | reset fourth column
    147147                move.w  vrcw,d0         | restore vrcw to d0
    148148
     
    155155                move.w  #0,ROW(a7)      | put row on stack
    156156                move.w  #6,COL(a7)      | put 1st column on stack
    157                 jsr     _vputa          | reset first column
     157                jsr     vputa           | reset first column
    158158                move.w  #7,COL(a7)      | put 2nd column on stack
    159                 jsr     _vputa          | reset second column
     159                jsr     vputa           | reset second column
    160160
    161161                .page
     
    169169                move.w  #1,ROW(a7)      | put row on stack
    170170                move.w  #50,COL(a7)     | put 1st column on stack
    171                 jsr     _vputa          | reset first column
     171                jsr     vputa           | reset first column
    172172                move.w  #51,COL(a7)     | put 2nd column on stack
    173                 jsr     _vputa          | reset second column
     173                jsr     vputa           | reset second column
    174174                move.w  vrcw,d0         | restore vrcw to d0
    175175
     
    182182                move.w  #1,ROW(a7)      | put row on stack
    183183                move.w  #53,COL(a7)     | put 1st column on stack
    184                 jsr     _vputa          | reset first column
     184                jsr     vputa           | reset first column
    185185                move.w  #54,COL(a7)     | put 2nd column on stack
    186                 jsr     _vputa          | reset second column
     186                jsr     vputa           | reset second column
    187187                move.w  #55,COL(a7)     | put 3rd column on stack
    188                 jsr     _vputa          | reset third column
     188                jsr     vputa           | reset third column
    189189                move.w  vrcw,d0         | restore vrcw to d0
    190190
     
    197197                move.w  #1,ROW(a7)      | put row on stack
    198198                move.w  #57,COL(a7)     | put 1st column on stack
    199                 jsr     _vputa          | reset first column
     199                jsr     vputa           | reset first column
    200200                move.w  #58,COL(a7)     | put 2nd column on stack
    201                 jsr     _vputa          | reset second column
     201                jsr     vputa           | reset second column
    202202                move.w  #59,COL(a7)     | put 3rd column on stack
    203                 jsr     _vputa          | reset third column
     203                jsr     vputa           | reset third column
    204204                move.w  #60,COL(a7)     | put 4th column on stack
    205                 jsr     _vputa          | reset fourth column
     205                jsr     vputa           | reset fourth column
    206206                move.w  #61,COL(a7)     | put 5th column on stack
    207                 jsr     _vputa          | reset fifth column
     207                jsr     vputa           | reset fifth column
    208208                move.w  #62,COL(a7)     | put 6th column on stack
    209                 jsr     _vputa          | reset sixth column
     209                jsr     vputa           | reset sixth column
    210210                move.w  vrcw,d0         | restore vrcw to d0
    211211
     
    223223
    224224                move.w  #7,COL(a7)      | put 1st column on stack
    225                 jsr     _vputa          | reset first column
     225                jsr     vputa           | reset first column
    226226                move.w  #8,COL(a7)      | put 2nd column on stack
    227                 jsr     _vputa          | reset second column
     227                jsr     vputa           | reset second column
    228228
    229229srs8a:          btst    #1,vrbw08+1     | group 2 ?
     
    231231
    232232                move.w  #12,COL(a7)     | put 1st column on stack
    233                 jsr     _vputa          | reset first character
     233                jsr     vputa           | reset first character
    234234                move.w  #13,COL(a7)     | put 2nd column on stack
    235                 jsr     _vputa          | reset second character
     235                jsr     vputa           | reset second character
    236236
    237237srs8b:          btst    #2,vrbw08+1     | group 3 ?
     
    239239
    240240                move.w  #17,COL(a7)     | put 1st column on stack
    241                 jsr     _vputa          | reset first character
     241                jsr     vputa           | reset first character
    242242                move.w  #18,COL(a7)     | put 2nd column on stack
    243                 jsr     _vputa          | reset second character
     243                jsr     vputa           | reset second character
    244244
    245245srs8c:          btst    #3,vrbw08+1     | group 4 ?
     
    247247
    248248                move.w  #22,COL(a7)     | put 1st column on stack
    249                 jsr     _vputa          | reset first character
     249                jsr     vputa           | reset first character
    250250                move.w  #23,COL(a7)     | put 2nd column on stack
    251                 jsr     _vputa          | reset second character
     251                jsr     vputa           | reset second character
    252252
    253253                .page
     
    257257
    258258                move.w  #27,COL(a7)     | put 1st column on stack
    259                 jsr     _vputa          | reset first character
     259                jsr     vputa           | reset first character
    260260                move.w  #28,COL(a7)     | put 2nd column on stack
    261                 jsr     _vputa          | reset second character
     261                jsr     vputa           | reset second character
    262262
    263263srs8e:          btst    #5,vrbw08+1     | group 6 ?
     
    265265
    266266                move.w  #32,COL(a7)     | put 1st column on stack
    267                 jsr     _vputa          | reset first character
     267                jsr     vputa           | reset first character
    268268                move.w  #33,COL(a7)     | put 2nd column on stack
    269                 jsr     _vputa          | reset second character
     269                jsr     vputa           | reset second character
    270270
    271271srs8f:          btst    #6,vrbw08+1     | group 7 ?
     
    273273
    274274                move.w  #37,COL(a7)     | put 1st column on stack
    275                 jsr     _vputa          | reset first character
     275                jsr     vputa           | reset first character
    276276                move.w  #38,COL(a7)     | put 2nd column on stack
    277                 jsr     _vputa          | reset second character
     277                jsr     vputa           | reset second character
    278278
    279279srs8g:          btst    #7,vrbw08+1     | group 8 ?
     
    281281
    282282                move.w  #42,COL(a7)     | put 1st column on stack
    283                 jsr     _vputa          | reset first character
     283                jsr     vputa           | reset first character
    284284                move.w  #43,COL(a7)     | put 2nd column on stack
    285                 jsr     _vputa          | reset second character
     285                jsr     vputa           | reset second character
    286286
    287287                .page
     
    291291
    292292                move.w  #47,COL(a7)     | put 1st column on stack
    293                 jsr     _vputa          | reset first character
     293                jsr     vputa           | reset first character
    294294                move.w  #48,COL(a7)     | put 2nd column on stack
    295                 jsr     _vputa          | reset second character
     295                jsr     vputa           | reset second character
    296296
    297297srs8j:          btst    #1,vrbw08       | group 10
     
    299299
    300300                move.w  #52,COL(a7)     | put 1st column on stack
    301                 jsr     _vputa          | reset first character
     301                jsr     vputa           | reset first character
    302302                move.w  #53,COL(a7)     | put 2nd column on stack
    303                 jsr     _vputa          | reset second character
     303                jsr     vputa           | reset second character
    304304
    305305srs8k:          btst    #2,vrbw08       | group 11
     
    307307
    308308                move.w  #57,COL(a7)     | put 1st column on stack
    309                 jsr     _vputa          | reset first character
     309                jsr     vputa           | reset first character
    310310                move.w  #58,COL(a7)     | put 2nd column on stack
    311                 jsr     _vputa          | reset second character
     311                jsr     vputa           | reset second character
    312312
    313313srs8m:          btst    #3,vrbw08       | group 12
     
    315315
    316316                move.w  #62,COL(a7)     | put 1st column on stack
    317                 jsr     _vputa          | reset first character
     317                jsr     vputa           | reset first character
    318318                move.w  #63,COL(a7)     | put 2nd column on stack
    319                 jsr     _vputa          | reset second character
     319                jsr     vputa           | reset second character
    320320
    321321srs8x:          move.w  vrcw,d0         | restore vrcw to d0
     
    334334
    335335                move.w  #5,COL(a7)      | put 1st column on stack
    336                 jsr     _vputa          | reset first column
     336                jsr     vputa           | reset first column
    337337                move.w  #6,COL(a7)      | put 2nd column on stack
    338                 jsr     _vputa          | reset second column
     338                jsr     vputa           | reset second column
    339339                move.w  #7,COL(a7)      | put 3rd column on stack
    340                 jsr     _vputa          | reset third column
     340                jsr     vputa           | reset third column
    341341                move.w  #8,COL(a7)      | put 4th column on stack
    342                 jsr     _vputa          | reset fourth column
     342                jsr     vputa           | reset fourth column
    343343
    344344srs9a:          btst    #1,vrbw09+1     | group 2 ?
     
    346346
    347347                move.w  #10,COL(a7)     | put 1st column on stack
    348                 jsr     _vputa          | reset first column
     348                jsr     vputa           | reset first column
    349349                move.w  #11,COL(a7)     | put 2nd column on stack
    350                 jsr     _vputa          | reset second column
     350                jsr     vputa           | reset second column
    351351                move.w  #12,COL(a7)     | put 3rd column on stack
    352                 jsr     _vputa          | reset third column
     352                jsr     vputa           | reset third column
    353353                move.w  #13,COL(a7)     | put 4th column on stack
    354                 jsr     _vputa          | reset fourth column
     354                jsr     vputa           | reset fourth column
    355355
    356356srs9b:          btst    #2,vrbw09+1     | group 3 ?
     
    358358
    359359                move.w  #15,COL(a7)     | put 1st column on stack
    360                 jsr     _vputa          | reset first column
     360                jsr     vputa           | reset first column
    361361                move.w  #16,COL(a7)     | put 2nd column on stack
    362                 jsr     _vputa          | reset second column
     362                jsr     vputa           | reset second column
    363363                move.w  #17,COL(a7)     | put 3rd column on stack
    364                 jsr     _vputa          | reset third column
     364                jsr     vputa           | reset third column
    365365                move.w  #18,COL(a7)     | put 4th column on stack
    366                 jsr     _vputa          | reset fourth column
     366                jsr     vputa           | reset fourth column
    367367
    368368                .page
     
    372372
    373373                move.w  #20,COL(a7)     | put 1st column on stack
    374                 jsr     _vputa          | reset first column
     374                jsr     vputa           | reset first column
    375375                move.w  #21,COL(a7)     | put 2nd column on stack
    376                 jsr     _vputa          | reset second column
     376                jsr     vputa           | reset second column
    377377                move.w  #22,COL(a7)     | put 3rd column on stack
    378                 jsr     _vputa          | reset third column
     378                jsr     vputa           | reset third column
    379379                move.w  #23,COL(a7)     | put 4th column on stack
    380                 jsr     _vputa          | reset fourth column
     380                jsr     vputa           | reset fourth column
    381381
    382382srs9d:          btst    #4,vrbw09+1     | group 5 ?
     
    384384
    385385                move.w  #25,COL(a7)     | put 1st column on stack
    386                 jsr     _vputa          | reset first column
     386                jsr     vputa           | reset first column
    387387                move.w  #26,COL(a7)     | put 2nd column on stack
    388                 jsr     _vputa          | reset second column
     388                jsr     vputa           | reset second column
    389389                move.w  #27,COL(a7)     | put 3rd column on stack
    390                 jsr     _vputa          | reset third column
     390                jsr     vputa           | reset third column
    391391                move.w  #28,COL(a7)     | put 4th column on stack
    392                 jsr     _vputa          | reset fourth column
     392                jsr     vputa           | reset fourth column
    393393
    394394srs9e:          btst    #5,vrbw09+1     | group 6 ?
     
    396396
    397397                move.w  #30,COL(a7)     | put 1st column on stack
    398                 jsr     _vputa          | reset first column
     398                jsr     vputa           | reset first column
    399399                move.w  #31,COL(a7)     | put 2nd column on stack
    400                 jsr     _vputa          | reset second column
     400                jsr     vputa           | reset second column
    401401                move.w  #32,COL(a7)     | put 3rd column on stack
    402                 jsr     _vputa          | reset third column
     402                jsr     vputa           | reset third column
    403403                move.w  #33,COL(a7)     | put 4th column on stack
    404                 jsr     _vputa          | reset fourth column
     404                jsr     vputa           | reset fourth column
    405405
    406406                .page
     
    410410
    411411                move.w  #35,COL(a7)     | put 1st column on stack
    412                 jsr     _vputa          | reset first column
     412                jsr     vputa           | reset first column
    413413                move.w  #36,COL(a7)     | put 2nd column on stack
    414                 jsr     _vputa          | reset second column
     414                jsr     vputa           | reset second column
    415415                move.w  #37,COL(a7)     | put 3rd column on stack
    416                 jsr     _vputa          | reset third column
     416                jsr     vputa           | reset third column
    417417                move.w  #38,COL(a7)     | put 4th column on stack
    418                 jsr     _vputa          | reset fourth column
     418                jsr     vputa           | reset fourth column
    419419
    420420srs9g:          btst    #7,vrbw09+1     | group 8 ?
     
    422422
    423423                move.w  #40,COL(a7)     | put 1st column on stack
    424                 jsr     _vputa          | reset first column
     424                jsr     vputa           | reset first column
    425425                move.w  #41,COL(a7)     | put 2nd column on stack
    426                 jsr     _vputa          | reset second column
     426                jsr     vputa           | reset second column
    427427                move.w  #42,COL(a7)     | put 3rd column on stack
    428                 jsr     _vputa          | reset third column
     428                jsr     vputa           | reset third column
    429429                move.w  #43,COL(a7)     | put 4th column on stack
    430                 jsr     _vputa          | reset fourth column
     430                jsr     vputa           | reset fourth column
    431431
    432432srs9h:          btst    #0,vrbw09       | group 9
     
    434434
    435435                move.w  #45,COL(a7)     | put 1st column on stack
    436                 jsr     _vputa          | reset first column
     436                jsr     vputa           | reset first column
    437437                move.w  #46,COL(a7)     | put 2nd column on stack
    438                 jsr     _vputa          | reset second column
     438                jsr     vputa           | reset second column
    439439                move.w  #47,COL(a7)     | put 3rd column on stack
    440                 jsr     _vputa          | reset third column
     440                jsr     vputa           | reset third column
    441441                move.w  #48,COL(a7)     | put 4th column on stack
    442                 jsr     _vputa          | reset fourth column
     442                jsr     vputa           | reset fourth column
    443443
    444444                .page
     
    448448
    449449                move.w  #50,COL(a7)     | put 1st column on stack
    450                 jsr     _vputa          | reset first column
     450                jsr     vputa           | reset first column
    451451                move.w  #51,COL(a7)     | put 2nd column on stack
    452                 jsr     _vputa          | reset second column
     452                jsr     vputa           | reset second column
    453453                move.w  #52,COL(a7)     | put 3rd column on stack
    454                 jsr     _vputa          | reset third column
     454                jsr     vputa           | reset third column
    455455                move.w  #53,COL(a7)     | put 4th column on stack
    456                 jsr     _vputa          | reset fourth column
     456                jsr     vputa           | reset fourth column
    457457
    458458srs9k:          btst    #2,vrbw09       | group 11
     
    460460
    461461                move.w  #55,COL(a7)     | put 1st column on stack
    462                 jsr     _vputa          | reset first column
     462                jsr     vputa           | reset first column
    463463                move.w  #56,COL(a7)     | put 2nd column on stack
    464                 jsr     _vputa          | reset second column
     464                jsr     vputa           | reset second column
    465465                move.w  #57,COL(a7)     | put 3rd column on stack
    466                 jsr     _vputa          | reset third column
     466                jsr     vputa           | reset third column
    467467                move.w  #58,COL(a7)     | put 4th column on stack
    468                 jsr     _vputa          | reset fourth column
     468                jsr     vputa           | reset fourth column
    469469
    470470srs9m:          btst    #3,vrbw09       | group 12
     
    472472
    473473                move.w  #60,COL(a7)     | put 1st column on stack
    474                 jsr     _vputa          | reset first column
     474                jsr     vputa           | reset first column
    475475                move.w  #61,COL(a7)     | put 2nd column on stack
    476                 jsr     _vputa          | reset second column
     476                jsr     vputa           | reset second column
    477477                move.w  #62,COL(a7)     | put 3rd column on stack
    478                 jsr     _vputa          | reset third column
     478                jsr     vputa           | reset third column
    479479                move.w  #63,COL(a7)     | put 4th column on stack
    480                 jsr     _vputa          | reset fourth column
     480                jsr     vputa           | reset fourth column
    481481
    482482srs9x:          move.w  vrcw,d0         | restore vrcw to d0
     
    495495
    496496                move.w  #6,COL(a7)      | put column on stack
    497                 jsr     _vputa          | reset column
     497                jsr     vputa           | reset column
    498498
    499499srs10a:         btst    #1,vrbw10+1     | group 2 ?
     
    501501
    502502                move.w  #11,COL(a7)     | put column on stack
    503                 jsr     _vputa          | reset column
     503                jsr     vputa           | reset column
    504504
    505505srs10b:         btst    #2,vrbw10+1     | group 3 ?
     
    507507
    508508                move.w  #16,COL(a7)     | put column on stack
    509                 jsr     _vputa          | reset column
     509                jsr     vputa           | reset column
    510510
    511511srs10c:         btst    #3,vrbw10+1     | group 4 ?
     
    513513
    514514                move.w  #21,COL(a7)     | put column on stack
    515                 jsr     _vputa          | reset column
     515                jsr     vputa           | reset column
    516516
    517517                .page
     
    521521
    522522                move.w  #26,COL(a7)     | put column on stack
    523                 jsr     _vputa          | reset column
     523                jsr     vputa           | reset column
    524524
    525525srs10e:         btst    #5,vrbw10+1     | group 6 ?
     
    527527
    528528                move.w  #31,COL(a7)     | put column on stack
    529                 jsr     _vputa          | reset column
     529                jsr     vputa           | reset column
    530530
    531531srs10f:         btst    #6,vrbw10+1     | group 7 ?
     
    533533
    534534                move.w  #36,COL(a7)     | put column on stack
    535                 jsr     _vputa          | reset column
     535                jsr     vputa           | reset column
    536536
    537537srs10g:         btst    #7,vrbw10+1     | group 8 ?
     
    539539
    540540                move.w  #41,COL(a7)     | put column on stack
    541                 jsr     _vputa          | reset column
     541                jsr     vputa           | reset column
    542542
    543543                .page
     
    547547
    548548                move.w  #46,COL(a7)     | put column on stack
    549                 jsr     _vputa          | reset column
     549                jsr     vputa           | reset column
    550550
    551551srs10j:         btst    #1,vrbw10       | group 10
     
    553553
    554554                move.w  #51,COL(a7)     | put column on stack
    555                 jsr     _vputa          | reset column
     555                jsr     vputa           | reset column
    556556
    557557srs10k:         btst    #2,vrbw10       | group 11
     
    559559
    560560                move.w  #56,COL(a7)     | put column on stack
    561                 jsr     _vputa          | reset column
     561                jsr     vputa           | reset column
    562562
    563563srs10m:         btst    #3,vrbw10       | group 12
     
    565565
    566566                move.w  #61,COL(a7)     | put column on stack
    567                 jsr     _vputa          | reset column
     567                jsr     vputa           | reset column
    568568
    569569srs10x:         move.w  vrcw,d0         | restore vrcw to d0
     
    582582
    583583                move.w  #8,COL(a7)      | put column on stack
    584                 jsr     _vputa          | reset column
     584                jsr     vputa           | reset column
    585585
    586586srs11a:         btst    #1,vrbw11+1     | group 2 ?
     
    588588
    589589                move.w  #13,COL(a7)     | put column on stack
    590                 jsr     _vputa          | reset column
     590                jsr     vputa           | reset column
    591591
    592592srs11b:         btst    #2,vrbw11+1     | group 3 ?
     
    594594
    595595                move.w  #18,COL(a7)     | put column on stack
    596                 jsr     _vputa          | reset column
     596                jsr     vputa           | reset column
    597597
    598598srs11c:         btst    #3,vrbw11+1     | group 4 ?
     
    600600
    601601                move.w  #23,COL(a7)     | put column on stack
    602                 jsr     _vputa          | reset column
     602                jsr     vputa           | reset column
    603603
    604604                .page
     
    608608
    609609                move.w  #28,COL(a7)     | put column on stack
    610                 jsr     _vputa          | reset column
     610                jsr     vputa           | reset column
    611611
    612612srs11e:         btst    #5,vrbw11+1     | group 6 ?
     
    614614
    615615                move.w  #33,COL(a7)     | put column on stack
    616                 jsr     _vputa          | reset column
     616                jsr     vputa           | reset column
    617617
    618618srs11f:         btst    #6,vrbw11+1     | group 7 ?
     
    620620
    621621                move.w  #38,COL(a7)     | put column on stack
    622                 jsr     _vputa          | reset column
     622                jsr     vputa           | reset column
    623623
    624624srs11g:         btst    #7,vrbw11+1     | group 8 ?
     
    626626
    627627                move.w  #43,COL(a7)     | put column on stack
    628                 jsr     _vputa          | reset column
     628                jsr     vputa           | reset column
    629629
    630630                .page
     
    634634
    635635                move.w  #48,COL(a7)     | put column on stack
    636                 jsr     _vputa          | reset column
     636                jsr     vputa           | reset column
    637637
    638638srs11j:         btst    #1,vrbw11       | group 10
     
    640640
    641641                move.w  #53,COL(a7)     | put column on stack
    642                 jsr     _vputa          | reset column
     642                jsr     vputa           | reset column
    643643
    644644srs11k:         btst    #2,vrbw11       | group 11
     
    646646
    647647                move.w  #58,COL(a7)     | put column on stack
    648                 jsr     _vputa          | reset column
     648                jsr     vputa           | reset column
    649649
    650650srs11m:         btst    #3,vrbw11       | group 12
     
    652652
    653653                move.w  #63,COL(a7)     | put column on stack
    654                 jsr     _vputa          | reset column
     654                jsr     vputa           | reset column
    655655
    656656srs11x:         move.w  vrcw,d0         | restore vrcw to d0
     
    669669
    670670                move.w  #6,COL(a7)      | put 1st column on stack
    671                 jsr     _vputa          | reset first column
     671                jsr     vputa           | reset first column
    672672                move.w  #7,COL(a7)      | put 2nd column on stack
    673                 jsr     _vputa          | reset second column
     673                jsr     vputa           | reset second column
    674674                move.w  #8,COL(a7)      | put 3rd column on stack
    675                 jsr     _vputa          | reset third column
     675                jsr     vputa           | reset third column
    676676
    677677srs12a:         btst    #1,vrbw12+1     | group 2 ?
     
    679679
    680680                move.w  #11,COL(a7)     | put 1st column on stack
    681                 jsr     _vputa          | reset first column
     681                jsr     vputa           | reset first column
    682682                move.w  #12,COL(a7)     | put 2nd column on stack
    683                 jsr     _vputa          | reset second column
     683                jsr     vputa           | reset second column
    684684                move.w  #13,COL(a7)     | put 3rd column on stack
    685                 jsr     _vputa          | reset third column
     685                jsr     vputa           | reset third column
    686686
    687687srs12b:         btst    #2,vrbw12+1     | group 3 ?
     
    689689
    690690                move.w  #16,COL(a7)     | put 1st column on stack
    691                 jsr     _vputa          | reset first column
     691                jsr     vputa           | reset first column
    692692                move.w  #17,COL(a7)     | put 2nd column on stack
    693                 jsr     _vputa          | reset second column
     693                jsr     vputa           | reset second column
    694694                move.w  #18,COL(a7)     | put 3rd column on stack
    695                 jsr     _vputa          | reset third column
     695                jsr     vputa           | reset third column
    696696
    697697                .page
     
    701701
    702702                move.w  #21,COL(a7)     | put 1st column on stack
    703                 jsr     _vputa          | reset first column
     703                jsr     vputa           | reset first column
    704704                move.w  #22,COL(a7)     | put 2nd column on stack
    705                 jsr     _vputa          | reset second column
     705                jsr     vputa           | reset second column
    706706                move.w  #23,COL(a7)     | put 3rd column on stack
    707                 jsr     _vputa          | reset third column
     707                jsr     vputa           | reset third column
    708708
    709709srs12d:         btst    #4,vrbw12+1     | group 5 ?
     
    711711
    712712                move.w  #26,COL(a7)     | put 1st column on stack
    713                 jsr     _vputa          | reset first column
     713                jsr     vputa           | reset first column
    714714                move.w  #27,COL(a7)     | put 2nd column on stack
    715                 jsr     _vputa          | reset second column
     715                jsr     vputa           | reset second column
    716716                move.w  #28,COL(a7)     | put 3rd column on stack
    717                 jsr     _vputa          | reset third column
     717                jsr     vputa           | reset third column
    718718
    719719srs12e:         btst    #5,vrbw12+1     | group 6 ?
     
    721721
    722722                move.w  #31,COL(a7)     | put 1st column on stack
    723                 jsr     _vputa          | reset first column
     723                jsr     vputa           | reset first column
    724724                move.w  #32,COL(a7)     | put 2nd column on stack
    725                 jsr     _vputa          | reset second column
     725                jsr     vputa           | reset second column
    726726                move.w  #33,COL(a7)     | put 3rd column on stack
    727                 jsr     _vputa          | reset third column
     727                jsr     vputa           | reset third column
    728728
    729729                .page
     
    733733
    734734                move.w  #36,COL(a7)     | put 1st column on stack
    735                 jsr     _vputa          | reset first column
     735                jsr     vputa           | reset first column
    736736                move.w  #37,COL(a7)     | put 2nd column on stack
    737                 jsr     _vputa          | reset second column
     737                jsr     vputa           | reset second column
    738738                move.w  #38,COL(a7)     | put 3rd column on stack
    739                 jsr     _vputa          | reset third column
     739                jsr     vputa           | reset third column
    740740
    741741srs12g:         btst    #7,vrbw12+1     | group 8 ?
     
    743743
    744744                move.w  #41,COL(a7)     | put 1st column on stack
    745                 jsr     _vputa          | reset first column
     745                jsr     vputa           | reset first column
    746746                move.w  #42,COL(a7)     | put 2nd column on stack
    747                 jsr     _vputa          | reset second column
     747                jsr     vputa           | reset second column
    748748                move.w  #43,COL(a7)     | put 3rd column on stack
    749                 jsr     _vputa          | reset third column
     749                jsr     vputa           | reset third column
    750750
    751751srs12h:         btst    #0,vrbw12       | group 9
     
    753753
    754754                move.w  #46,COL(a7)     | put 1st column on stack
    755                 jsr     _vputa          | reset first column
     755                jsr     vputa           | reset first column
    756756                move.w  #47,COL(a7)     | put 2nd column on stack
    757                 jsr     _vputa          | reset second column
     757                jsr     vputa           | reset second column
    758758                move.w  #48,COL(a7)     | put 3rd column on stack
    759                 jsr     _vputa          | reset third column
     759                jsr     vputa           | reset third column
    760760
    761761                .page
     
    765765
    766766                move.w  #51,COL(a7)     | put 1st column on stack
    767                 jsr     _vputa          | reset first column
     767                jsr     vputa           | reset first column
    768768                move.w  #52,COL(a7)     | put 2nd column on stack
    769                 jsr     _vputa          | reset second column
     769                jsr     vputa           | reset second column
    770770                move.w  #53,COL(a7)     | put 3rd column on stack
    771                 jsr     _vputa          | reset third column
     771                jsr     vputa           | reset third column
    772772
    773773srs12k:         btst    #2,vrbw12       | group 11
     
    775775
    776776                move.w  #56,COL(a7)     | put 1st column on stack
    777                 jsr     _vputa          | reset first column
     777                jsr     vputa           | reset first column
    778778                move.w  #57,COL(a7)     | put 2nd column on stack
    779                 jsr     _vputa          | reset second column
     779                jsr     vputa           | reset second column
    780780                move.w  #58,COL(a7)     | put 3rd column on stack
    781                 jsr     _vputa          | reset third column
     781                jsr     vputa           | reset third column
    782782
    783783srs12m:         btst    #3,vrbw12       | group 12
     
    785785
    786786                move.w  #61,COL(a7)     | put 1st column on stack
    787                 jsr     _vputa          | reset first column
     787                jsr     vputa           | reset first column
    788788                move.w  #62,COL(a7)     | put 2nd column on stack
    789                 jsr     _vputa          | reset second column
     789                jsr     vputa           | reset second column
    790790                move.w  #63,COL(a7)     | put 3rd column on stack
    791                 jsr     _vputa          | reset third column
     791                jsr     vputa           | reset third column
    792792
    793793srs12x:         move.w  vrcw,d0         | restore vrcw to d0
     
    806806
    807807                move.w  #6,COL(a7)      | put column on stack
    808                 jsr     _vputa          | reset column
     808                jsr     vputa           | reset column
    809809
    810810srs13a:         btst    #1,vrbw13+1     | variable 2 ?
     
    812812
    813813                move.w  #15,COL(a7)     | put column on stack
    814                 jsr     _vputa          | reset column
     814                jsr     vputa           | reset column
    815815
    816816srs13b:         btst    #2,vrbw13+1     | variable 3 ?
     
    818818
    819819                move.w  #24,COL(a7)     | put column on stack
    820                 jsr     _vputa          | reset column
     820                jsr     vputa           | reset column
    821821
    822822srs13c:         btst    #3,vrbw13+1     | variable 4 ?
     
    824824
    825825                move.w  #33,COL(a7)     | put column on stack
    826                 jsr     _vputa          | reset column
     826                jsr     vputa           | reset column
    827827
    828828srs13d:         btst    #4,vrbw13+1     | variable 5 ?
     
    830830
    831831                move.w  #42,COL(a7)     | put column on stack
    832                 jsr     _vputa          | reset column
     832                jsr     vputa           | reset column
    833833
    834834srs13e:         btst    #5,vrbw13+1     | variable 6 ?
     
    836836
    837837                move.w  #51,COL(a7)     | put column on stack
    838                 jsr     _vputa          | reset column
     838                jsr     vputa           | reset column
    839839
    840840srs13x:         move.w  vrcw,d0         | restore vrcw to d0
     
    853853
    854854                move.w  #8,COL(a7)      | put 1st column on stack
    855                 jsr     _vputa          | reset first column
     855                jsr     vputa           | reset first column
    856856                move.w  #9,COL(a7)      | put 2nd column on stack
    857                 jsr     _vputa          | reset second column
     857                jsr     vputa           | reset second column
    858858                move.w  #10,COL(a7)     | put 3rd column on stack
    859                 jsr     _vputa          | reset third column
     859                jsr     vputa           | reset third column
    860860                move.w  #11,COL(a7)     | put 4th column on stack
    861                 jsr     _vputa          | reset fourth column
     861                jsr     vputa           | reset fourth column
    862862                move.w  #12,COL(a7)     | put 5th column on stack
    863                 jsr     _vputa          | reset fifth column
     863                jsr     vputa           | reset fifth column
    864864
    865865srs14a:         btst    #1,vrbw14+1     | variable 2 ?
     
    867867
    868868                move.w  #17,COL(a7)     | put 1st column on stack
    869                 jsr     _vputa          | reset first column
     869                jsr     vputa           | reset first column
    870870                move.w  #18,COL(a7)     | put 2nd column on stack
    871                 jsr     _vputa          | reset second column
     871                jsr     vputa           | reset second column
    872872                move.w  #19,COL(a7)     | put 3rd column on stack
    873                 jsr     _vputa          | reset third column
     873                jsr     vputa           | reset third column
    874874                move.w  #20,COL(a7)     | put 4th column on stack
    875                 jsr     _vputa          | reset fourth column
     875                jsr     vputa           | reset fourth column
    876876                move.w  #21,COL(a7)     | put 5th column on stack
    877                 jsr     _vputa          | reset fifth column
     877                jsr     vputa           | reset fifth column
    878878
    879879                .page
     
    883883
    884884                move.w  #26,COL(a7)     | put 1st column on stack
    885                 jsr     _vputa          | reset first column
     885                jsr     vputa           | reset first column
    886886                move.w  #27,COL(a7)     | put 2nd column on stack
    887                 jsr     _vputa          | reset second column
     887                jsr     vputa           | reset second column
    888888                move.w  #28,COL(a7)     | put 3rd column on stack
    889                 jsr     _vputa          | reset third column
     889                jsr     vputa           | reset third column
    890890                move.w  #29,COL(a7)     | put 4th column on stack
    891                 jsr     _vputa          | reset fourth column
     891                jsr     vputa           | reset fourth column
    892892                move.w  #30,COL(a7)     | put 5th column on stack
    893                 jsr     _vputa          | reset fifth column
     893                jsr     vputa           | reset fifth column
    894894
    895895srs14c:         btst    #3,vrbw14+1     | variable 4 ?
     
    897897
    898898                move.w  #35,COL(a7)     | put 1st column on stack
    899                 jsr     _vputa          | reset first column
     899                jsr     vputa           | reset first column
    900900                move.w  #36,COL(a7)     | put 2nd column on stack
    901                 jsr     _vputa          | reset second column
     901                jsr     vputa           | reset second column
    902902                move.w  #37,COL(a7)     | put 3rd column on stack
    903                 jsr     _vputa          | reset third column
     903                jsr     vputa           | reset third column
    904904                move.w  #38,COL(a7)     | put 4th column on stack
    905                 jsr     _vputa          | reset fourth column
     905                jsr     vputa           | reset fourth column
    906906                move.w  #39,COL(a7)     | put 5th column on stack
    907                 jsr     _vputa          | reset fifth column
     907                jsr     vputa           | reset fifth column
    908908
    909909                .page
     
    913913
    914914                move.w  #44,COL(a7)     | put 1st column on stack
    915                 jsr     _vputa          | reset first column
     915                jsr     vputa           | reset first column
    916916                move.w  #45,COL(a7)     | put 2nd column on stack
    917                 jsr     _vputa          | reset second column
     917                jsr     vputa           | reset second column
    918918                move.w  #46,COL(a7)     | put 3rd column on stack
    919                 jsr     _vputa          | reset third column
     919                jsr     vputa           | reset third column
    920920                move.w  #47,COL(a7)     | put 4th column on stack
    921                 jsr     _vputa          | reset fourth column
     921                jsr     vputa           | reset fourth column
    922922                move.w  #48,COL(a7)     | put 5th column on stack
    923                 jsr     _vputa          | reset fifth column
     923                jsr     vputa           | reset fifth column
    924924
    925925srs14e:         btst    #5,vrbw14+1     | variable 6 ?
     
    927927
    928928                move.w  #53,COL(a7)     | put 1st column on stack
    929                 jsr     _vputa          | reset first column
     929                jsr     vputa           | reset first column
    930930                move.w  #54,COL(a7)     | put 2nd column on stack
    931                 jsr     _vputa          | reset second column
     931                jsr     vputa           | reset second column
    932932                move.w  #55,COL(a7)     | put 3rd column on stack
    933                 jsr     _vputa          | reset third column
     933                jsr     vputa           | reset third column
    934934                move.w  #56,COL(a7)     | put 4th column on stack
    935                 jsr     _vputa          | reset fourth column
     935                jsr     vputa           | reset fourth column
    936936                move.w  #57,COL(a7)     | put 5th column on stack
    937                 jsr     _vputa          | reset fifth column
     937                jsr     vputa           | reset fifth column
    938938
    939939srs14x:         move.w  vrcw,d0         | restore vrcw to d0
     
    952952                move.w  #1,ROW(a7)      | put row on stack
    953953                move.w  #40,COL(a7)     | put 1st column on stack
    954                 jsr     _vputa          | reset first column
     954                jsr     vputa           | reset first column
    955955                move.w  #41,COL(a7)     | put 2nd column on stack
    956                 jsr     _vputa          | reset second column
     956                jsr     vputa           | reset second column
    957957                move.w  #42,COL(a7)     | put 3rd column on stack
    958                 jsr     _vputa          | reset third column
     958                jsr     vputa           | reset third column
    959959                move.w  #43,COL(a7)     | put 4th column on stack
    960                 jsr     _vputa          | reset fourth column
     960                jsr     vputa           | reset fourth column
    961961
    962962srs15a:         btst    #1,vrbw15       | next ?
     
    966966                move.w  #1,ROW(a7)      | put row on stack
    967967                move.w  #45,COL(a7)     | put 1st column on stack
    968                 jsr     _vputa          | reset first column
     968                jsr     vputa           | reset first column
    969969                move.w  #46,COL(a7)     | put 2nd column on stack
    970                 jsr     _vputa          | reset second column
     970                jsr     vputa           | reset second column
    971971                move.w  #47,COL(a7)     | put 3rd column on stack
    972                 jsr     _vputa          | reset third column
     972                jsr     vputa           | reset third column
    973973                move.w  #48,COL(a7)     | put 4th column on stack
    974                 jsr     _vputa          | reset fourth column
     974                jsr     vputa           | reset fourth column
    975975
    976976srs16:          add.l   #10,a7          | clean up stack
     
    981981                .bss
    982982
    983 | local copies of _vrcw, _vrbw08.._vrbw15
     983| local copies of vrcw, vrbw08..vrbw15
    984984
    985985vrcw:           .ds.w   1
  • ram/timeint.s

    r84c0125 r8325447  
    2626                .text
    2727
    28                 .xdef   _tsetup         | tsetup() -- timer setup function
     28                .xdef   tsetup          | tsetup() -- timer setup function
    2929                .xdef   timeint         | timer interrupt handler
    3030
    31                 .xdef   _M1IoRec        | MIDI channel 1 IoRec
    32                 .xdef   _M2IoRec        | MIDI channel 2 IoRec
    33                 .xdef   _S1IoRec        | RS232 channel 1 IoRec
    34                 .xdef   _S2IoRec        | RS232 channel 2 IoRec
    35                 .xdef   _timers         | timer array -- short timers[NTIMERS]
    36                 .xdef   _vi_clk         | VSDD scroll delay timer
    37                 .xdef   _vi_tag         | VSDD VI tag
     31                .xdef   M1IoRec         | MIDI channel 1 IoRec
     32                .xdef   M2IoRec         | MIDI channel 2 IoRec
     33                .xdef   S1IoRec         | RS232 channel 1 IoRec
     34                .xdef   S2IoRec         | RS232 channel 2 IoRec
     35                .xdef   timers          | timer array -- short timers[NTIMERS]
     36                .xdef   vi_clk          | VSDD scroll delay timer
     37                .xdef   vi_tag          | VSDD VI tag
    3838
    3939                .xref   lclsadr         | score object base address
    4040                .xref   lclscrl         | score object scroll offset
    41                 .xref   _v_odtab        | VSDD object descriptor table
     41                .xref   v_odtab         | VSDD object descriptor table
    4242
    4343                .page
     
    130130                .page
    131131| ==============================================================================
    132 | _tsetup -- tsetup() -- timer setup function
    133 | ==============================================================================
    134 
    135 _tsetup:        move.w  sr,-(a7)                | Save old interrupt mask
     132| tsetup -- tsetup() -- timer setup function
     133| ==============================================================================
     134
     135tsetup:         move.w  sr,-(a7)                | Save old interrupt mask
    136136                ori.w   #IPL7,sr                | Disable interrupts
    137137
     
    140140                trap    #XBIOS                  | ...
    141141                add.l   #4,a7                   | ...
    142                 move.l  d0,_S1IoRec             | ...
     142                move.l  d0,S1IoRec              | ...
    143143
    144144                move.w  #SR2_DEV,-(a7)          | Establish S2IoRec
     
    146146                trap    #XBIOS                  | ...
    147147                add.l   #4,a7                   | ...
    148                 move.l  d0,_S2IoRec             | ...
     148                move.l  d0,S2IoRec              | ...
    149149
    150150                move.w  #MC1_DEV,-(a7)          | Establish M1IoRec
     
    152152                trap    #XBIOS                  | ...
    153153                add.l   #4,a7                   | ...
    154                 move.l  d0,_M1IoRec             | ...
     154                move.l  d0,M1IoRec              | ...
    155155
    156156                move.w  #MC2_DEV,-(a7)          | Establish M2IoRec
     
    158158                trap    #XBIOS                  | ...
    159159                add.l   #4,a7                   | ...
    160                 move.l  d0,_M2IoRec             | ...
     160                move.l  d0,M2IoRec              | ...
    161161
    162162                .page
     
    164164                clr.w   FC_SW                   | Stop the frame clock
    165165                clr.l   FC_VAL                  | ... and reset it
    166                 clr.w   _vi_tag                 | Clear VSDD VI tag
    167                 clr.w   _vi_clk                 | Clear VSDD delay timer
     166                clr.w   vi_tag                  | Clear VSDD VI tag
     167                clr.w   vi_clk                  | Clear VSDD delay timer
    168168                clr.w   lclsadr                 | Clear score scroll address
    169169                clr.w   lclscrl                 | Clear score scroll offset
    170170
    171                 lea     _timers,a0              | Point at timer array
     171                lea     timers,a0               | Point at timer array
    172172                move.w  #NTIMERS-1,d0           | Setup to clear timer array
    173173
     
    217217| process VSDD timer
    218218| ------------------------------------------------------------------------------
    219                 tst.w   _vi_tag                 | Does the VSDD need service ?
     219                tst.w   vi_tag                  | Does the VSDD need service ?
    220220                beq     updtime                 | Jump if not
    221221
    222                 move.w  _vi_clk,d0              | Get VSDD scroll delay timer
     222                move.w  vi_clk,d0               | Get VSDD scroll delay timer
    223223                subq.w  #1,d0                   | Decrement timer
    224                 move.w  d0,_vi_clk              | Update timer
     224                move.w  d0,vi_clk               | Update timer
    225225                bne     updtime                 | Jump if it's not zero yet
    226226
    227                 move.w  lclsadr,_v_odtab+12     | Update scroll address
    228                 move.w  lclscrl,_v_odtab+10     | Update scroll offset
    229                 clr.w   _vi_tag                 | Reset the tag
     227                move.w  lclsadr,v_odtab+12      | Update scroll address
     228                move.w  lclscrl,v_odtab+10      | Update scroll offset
     229                clr.w   vi_tag                  | Reset the tag
    230230
    231231                .page
     
    236236
    237237updtime:        move.w  #NTIMERS-1,d0           | Setup timer array counter
    238                 lea     _timers,a0              | Point at timer array
     238                lea     timers,a0               | Point at timer array
    239239
    240240tdcr:           move.w  (a0),d1                 | Get timer array entry
     
    325325                ori.w   #0x0700,sr              | Disable interrupts
    326326
    327                 movea.l _M1IoRec,a0             | Point at M1IoRec
     327                movea.l M1IoRec,a0              | Point at M1IoRec
    328328                move.b  IO_CFR1(a0),d0          | Get MIDI-1 CFR1 value
    329329                or.b    #0x80,d0                | Force MSB = 1 for CFR1 output
     
    372372| ------------------------------------------------------------------------------
    373373
    374 _timers:        .ds.w   NTIMERS         | Timer array -- short timers[NTIMERS];
    375 
    376 _vi_clk:        .ds.w   1               | VSDD scroll delay timer
    377 _vi_tag:        .ds.w   1               | VSDD VI 'needs service' tag
    378 
    379 _S1IoRec:       .ds.l   1               | address of RS232 channel 1 IoRec
    380 _S2IoRec:       .ds.l   1               | address of RS232 channel 2 IoRec
    381 _M1IoRec:       .ds.l   1               | address of MIDI channel 1 IoRec
    382 _M2IoRec:       .ds.l   1               | address of MIDI channel 2 IoRec
     374timers:         .ds.w   NTIMERS         | Timer array -- short timers[NTIMERS];
     375
     376vi_clk:         .ds.w   1               | VSDD scroll delay timer
     377vi_tag:         .ds.w   1               | VSDD VI 'needs service' tag
     378
     379S1IoRec:        .ds.l   1               | address of RS232 channel 1 IoRec
     380S2IoRec:        .ds.l   1               | address of RS232 channel 2 IoRec
     381M1IoRec:        .ds.l   1               | address of MIDI channel 1 IoRec
     382M2IoRec:        .ds.l   1               | address of MIDI channel 2 IoRec
    383383| ==============================================================================
    384384
  • ram/tofpu.s

    r84c0125 r8325447  
    1717                .text
    1818
    19                 .xdef   _tofpu
    20                 .xdef   _fromfpu
     19                .xdef   tofpu
     20                .xdef   fromfpu
    2121
    2222TIME            =       8               | WORD - time argument  (either format)
     
    2525
    2626                .page
    27 _tofpu:         link    a6,#0           | link stack frames
     27tofpu:          link    a6,#0           | link stack frames
    2828                move.w  TIME(a6),d1     | get time interval
    2929                beq     notime          | jump if zero time
     
    5151
    5252                .page
    53 _fromfpu:       link    a6,#0           | link stack frames
     53fromfpu:        link    a6,#0           | link stack frames
    5454                move.w  TIME(a6),d1     | get FPU formatted time
    5555                beq     zerotime        | done if it's zero
  • ram/verdate.s

    r84c0125 r8325447  
    2121                .data
    2222
    23                 .xdef   _VerDate
     23                .xdef   VerDate
    2424
    25 _VerDate:       .asciz  "19881027.01"           | Date and version number
     25VerDate:        .asciz  "19881027.01"           | Date and version number
    2626
    2727                .end
Note: See TracChangeset for help on using the changeset viewer.