Changeset 8325447 in buchla-68k


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

Removed _ prefix.

Files:
42 edited

Legend:

Unmodified
Added
Removed
  • iolib/hwdefs.s

    r84c0125 r8325447  
    55                .text
    66
    7                 .xdef   _io_time,_io_lcd,_io_ser,_io_midi
    8                 .xdef   _io_disk,_io_tone,_io_leds,_io_kbrd
    9                 .xdef   _io_vreg,_io_vraw,_io_vram,_io_fpu
    10                 .xdef   _lcd_a0,_lcd_a1
     7                .xdef   io_time,io_lcd,io_ser,io_midi
     8                .xdef   io_disk,io_tone,io_leds,io_kbrd
     9                .xdef   io_vreg,io_vraw,io_vram,io_fpu
     10                .xdef   lcd_a0,lcd_a1
    1111
    12                 .xdef   _v_regs,_v_odtab,_v_actab
    13                 .xdef   _v_ct0
    14                 .xdef   _v_gt1
    15                 .xdef   _v_score,_v_cgtab
     12                .xdef   v_regs,v_odtab,v_actab
     13                .xdef   v_ct0
     14                .xdef   v_gt1
     15                .xdef   v_score,v_cgtab
    1616
    17                 .xdef   _v_curs0,_v_curs1,_v_curs2,_v_curs3
    18                 .xdef   _v_curs4,_v_curs5,_v_curs6,_v_curs7
    19                 .xdef   _v_kbobj,_v_lnobj,_v_tcur
    20                 .xdef   _v_win0
    21                 .xdef   _v_cur
     17                .xdef   v_curs0,v_curs1,v_curs2,v_curs3
     18                .xdef   v_curs4,v_curs5,v_curs6,v_curs7
     19                .xdef   v_kbobj,v_lnobj,v_tcur
     20                .xdef   v_win0
     21                .xdef   v_cur
    2222
    23                 .xdef   _fc_sw,_fc_val
     23                .xdef   fc_sw,fc_val
    2424
    2525| ------------------------------------------------------------------------------
     
    2727| Hardware base addresses
    2828| -----------------------
    29 _io_fpu         =       0x180000        | FPU base address
     29io_fpu          =       0x180000        | FPU base address
    3030
    3131VB              =       0x200000        | VSDD base address
    3232
    33 _io_time        =       0x3A0001        | Timer chip
    34 _io_lcd         =       0x3A4001        | LCD controller
    35 _io_ser         =       0x3A8001        | Serial ports  (RS232)
    36 _io_midi        =       0x3AC001        | MIDI ports
    37 _io_disk        =       0x3B0001        | Disk controller
    38 _io_tone        =       0x3B4001        | Sound generator chip
    39 _io_leds        =       0x3B8001        | LED driver
    40 _io_kbrd        =       0x3BC001        | Keyboard / panel processor
     33io_time         =       0x3A0001        | Timer chip
     34io_lcd          =       0x3A4001        | LCD controller
     35io_ser          =       0x3A8001        | Serial ports  (RS232)
     36io_midi         =       0x3AC001        | MIDI ports
     37io_disk =               0x3B0001        | Disk controller
     38io_tone         =       0x3B4001        | Sound generator chip
     39io_leds         =       0x3B8001        | LED driver
     40io_kbrd         =       0x3BC001        | Keyboard / panel processor
    4141
    42 _lcd_a0         =       _io_lcd         | LCD port a0
    43 _lcd_a1         =       _io_lcd+2       | LCD port a1
     42lcd_a0          =       io_lcd          | LCD port a0
     43lcd_a1          =       io_lcd+2        | LCD port a1
    4444
    4545                .page
     
    4747| Video definitions
    4848| -----------------
    49 _io_vreg        =       VB              | Relocated video registers after setup
    50 _io_vraw        =       VB+0x400        | Raw video registers at RESET
    51 _io_vram        =       VB              | Video RAM base address
     49io_vreg         =       VB              | Relocated video registers after setup
     50io_vraw         =       VB+0x400        | Raw video registers at RESET
     51io_vram         =       VB              | Video RAM base address
    5252
    5353| Name                  Offset            Usage                        Bank
    5454| -------               ---------         -------------------------    ----
    55 _v_regs         =       VB              | Video registers              0,1
     55v_regs          =       VB              | Video registers              0,1
    5656
    57 _v_odtab        =       VB+128          | Object Descriptor Table       0
    58 _v_actab        =       VB+256          | Access Table                  0
    59 _v_ct0          =       VB+1024         | Character Text-0              0
    60 _v_gt1          =       VB+1304         | Graphics Text-1               0
    61 _v_score        =       VB+8192         | Score object                  0
    62 _v_cgtab        =       VB+122880       | Character Generator Table     0
     57v_odtab         =       VB+128          | Object Descriptor Table       0
     58v_actab         =       VB+256          | Access Table                  0
     59v_ct0           =       VB+1024         | Character Text-0              0
     60v_gt1           =       VB+1304         | Graphics Text-1               0
     61v_score         =       VB+8192         | Score object                  0
     62v_cgtab         =       VB+122880       | Character Generator Table     0
    6363
    64 _v_curs0        =       VB+1024         | Cursor object 0  (arrow ULE)  1
    65 _v_curs1        =       VB+1152         | Cursor object 1  (arrow ULO)  1
    66 _v_curs2        =       VB+1280         | Cursor object 2  (arrow URE)  1
    67 _v_curs3        =       VB+1408         | Cursor object 3  (arrow URO)  1
    68 _v_curs4        =       VB+1536         | Cursor object 4  (arrow LLE)  1
    69 _v_curs5        =       VB+1664         | Cursor object 5  (arrow LLO)  1
    70 _v_curs6        =       VB+1792         | Cursor object 6  (arrow LRE)  1
    71 _v_curs7        =       VB+1920         | Cursor object 7  (arrow LRO)  1
    72 _v_tcur         =       VB+2048         | Typewriter cursor             1
    73 _v_kbobj        =       VB+2880         | Keyboard object               1
    74 _v_lnobj        =       VB+4672         | Line object                   1
    75 _v_cur          =       VB+6464         | Underline cursor              1
    76 _v_win0         =       VB+16384        | Window-0 object               1
     64v_curs0         =       VB+1024         | Cursor object 0  (arrow ULE)  1
     65v_curs1         =       VB+1152         | Cursor object 1  (arrow ULO)  1
     66v_curs2         =       VB+1280         | Cursor object 2  (arrow URE)  1
     67v_curs3         =       VB+1408         | Cursor object 3  (arrow URO)  1
     68v_curs4         =       VB+1536         | Cursor object 4  (arrow LLE)  1
     69v_curs5         =       VB+1664         | Cursor object 5  (arrow LLO)  1
     70v_curs6         =       VB+1792         | Cursor object 6  (arrow LRE)  1
     71v_curs7         =       VB+1920         | Cursor object 7  (arrow LRO)  1
     72v_tcur          =       VB+2048         | Typewriter cursor             1
     73v_kbobj         =       VB+2880         | Keyboard object               1
     74v_lnobj         =       VB+4672         | Line object                   1
     75v_cur           =       VB+6464         | Underline cursor              1
     76v_win0          =       VB+16384        | Window-0 object               1
    7777
    7878| BIOS RAM definitions
     
    8181| variables defined in bios.s or chaos is guaranteed.
    8282
    83 _fc_sw          =       0x420           | word - Frame counter switch
    84 _fc_val         =       0x422           | long - Frame counter value
     83fc_sw           =       0x420           | word - Frame counter switch
     84fc_val          =       0x422           | long - Frame counter value
    8585
    8686                .end
  • iolib/rtraps.s

    r84c0125 r8325447  
    55                .text
    66
    7                 .xdef   _trap15
     7                .xdef   trap15
    88
    9                 .xref   _rompbp
     9                .xref   rompbp
    1010
    1111                .xref   tr1sav,tr13sav,tr14sav
     
    2424IPL7            =       0x0700          | IPL 7
    2525
    26 | _trap15 -- ROMP debug trap  (used to implement breakpoints)
    27 | -------    ------------------------------------------------
    28 _trap15:        ori.w   #IPL7,sr                | Disable interrupts
     26| trap15 -- ROMP debug trap  (used to implement breakpoints)
     27| ------    ------------------------------------------------
     28trap15:         ori.w   #IPL7,sr                | Disable interrupts
    2929                move.w  #0,-(a7)                | Keep stack long aligned
    3030                movem.l d0-d7/a0-a7,-(a7)       | Save regs on stack
     
    3636                ori.w   #IPLEVEL,d0             | ...
    3737                move.w  d0,sr                   | ...
    38                 jsr     _rompbp                 | Pass control to ROMP
     38                jsr     rompbp                  | Pass control to ROMP
    3939
    4040                ori.w   #IPL7,sr                | Disable interrupts
  • iolib/setipl.s

    r84c0125 r8325447  
    1616                .text
    1717
    18                 .xdef   _setipl
     18                .xdef   setipl
    1919
    20 _setipl:        link    a6,#0                   | Link up stack frames
     20setipl:         link    a6,#0                   | Link up stack frames
    2121                move.w  8(a6),d0                | Get argument
    2222                tst.w   d0                      | Check lower limit
  • iolib/setsr.s

    r84c0125 r8325447  
    1919                .text
    2020
    21                 .xdef   _setsr
     21                .xdef   setsr
    2222
    23 _setsr:         move.w  sr,d0                   | Get current sr
     23setsr:          move.w  sr,d0                   | Get current sr
    2424                move.w  4(sp),sr                | Set new sr
    2525                rts                             | Return to caller
  • iolib/traps.s

    r84c0125 r8325447  
    77| don't use them in interrupt processing code.
    88
    9 | An exception is made for ROMP in _trap15 for breakpoints so that the
     9| An exception is made for ROMP in trap15 for breakpoints so that the
    1010| debug code can be debugged.
    1111
    1212                .text
    1313
    14                 .xdef   _trap1
    15                 .xdef   _trap13,_trap14
    16                 .xdef   _xtrap15
     14                .xdef   trap1
     15                .xdef   trap13,trap14
     16                .xdef   xtrap15
    1717
    1818                .xdef   tr1sav,tr13sav,tr14sav
    1919                .xdef   tr1rmp,tr13rmp,tr14rmp
    2020
    21 | _trap1 -- provide access to BDOS functions
    22 | ------    --------------------------------
    23 _trap1:         move.l  (a7)+,tr1sav            | Save return address
     21| trap1 -- provide access to BDOS functions
     22| -----    --------------------------------
     23trap1:          move.l  (a7)+,tr1sav            | Save return address
    2424                trap    #1                      | Do the trap
    2525                move.l  tr1sav,-(a7)            | Restore return address
    2626                rts                             | Return to caller
    2727
    28 | _trap13 -- provide access to BIOS functions
    29 | -------    --------------------------------
    30 _trap13:        move.l  (a7)+,tr13sav           | Save return address
     28| trap13 -- provide access to BIOS functions
     29| ------    --------------------------------
     30trap13:         move.l  (a7)+,tr13sav           | Save return address
    3131                trap    #13                     | Do the trap
    3232                move.l  tr13sav,-(a7)           | Restore return address
    3333                rts                             | Return to caller
    3434
    35 | _trap14 -- provide access to extended BIOS functions
    36 | -------    -----------------------------------------
    37 _trap14:        move.l  (a7)+,tr14sav           | Save return address
     35| trap14 -- provide access to extended BIOS functions
     36| ------    -----------------------------------------
     37trap14:         move.l  (a7)+,tr14sav           | Save return address
    3838                trap    #14                     | Do the trap
    3939                move.l  tr14sav,-(a7)           | Restore return address
    4040                rts                             | Return to caller
    4141
    42 | _xtrap15 -- Setup initial register trap for ROMP
    43 | --------    ------------------------------------
    44 _xtrap15:       trap    #15                     | TRAP into ROMP
     42| xtrap15 -- Setup initial register trap for ROMP
     43| -------    ------------------------------------
     44xtrap15:        trap    #15                     | TRAP into ROMP
    4545                rts                             | Return  (usually won't happen)
    4646
  • lib700/jumpto.s

    r84c0125 r8325447  
    4040                .text
    4141
    42                 .xdef   _halt,_jumpto,_rjumpto,_sjumpto,_xreset
     42                .xdef   halt,jumpto,rjumpto,sjumpto,xreset
    4343
    4444                .page
    4545
    46 _halt:          stop    #0x2700                 | stop dead, interrupts disabled
    47                 jmp     _halt                   | stay stopped if stepped thru
     46halt:           stop    #0x2700                 | stop dead, interrupts disabled
     47                jmp     halt                    | stay stopped if stepped thru
    4848
    49 _jumpto:        movea.l 4(a7),a0                | get jump address
     49jumpto:         movea.l 4(a7),a0                | get jump address
    5050                jmp     (a0)                    | go to the jump address
    5151
    52 _rjumpto:       reset                           | reset external devices
     52rjumpto:        reset                           | reset external devices
    5353                movea.l 4(a7),a0                | get jump address
    5454                jmp     (a0)                    | go to the jump address
    5555
    56 _sjumpto:       movea.l 4(a7),a0                | get jump address
     56sjumpto:        movea.l 4(a7),a0                | get jump address
    5757                movea.l 8(a7),a7                | set stack pointer
    5858                jmp     (a0)                    | go to the jump address
    5959
    60 _xreset:        reset                           | reset external devices
     60xreset:         reset                           | reset external devices
    6161                rts                             | return to caller
    6262
  • lib700/rand24.s

    r84c0125 r8325447  
    2929                .text
    3030
    31                 .xdef   _rand24
     31                .xdef   rand24
    3232
    3333                .xdef   _rseed
     
    8787                .page
    8888
    89 | _rand24 -- Generate a random number
    90 | -------    ------------------------
    91 _rand24:        link    a6,#0                   | Link stack frames
     89| rand24 -- Generate a random number
     90| ------    ------------------------
     91rand24:         link    a6,#0                   | Link stack frames
    9292                tst.l   _rseed                  | See if the seed is zero
    9393                bne     rand01                  | Jump if not
  • lib700/setjmp.s

    r84c0125 r8325447  
    66                .text
    77
    8                 .xdef   _setjmp,_longjmp
     8                .xdef   setjmp,longjmp
    99
    10 _setjmp:        movea.l 4(a7),a0                | Get env pointer
     10setjmp:         movea.l 4(a7),a0                | Get env pointer
    1111                move.l  (a7),(a0)               | Put return address in env
    1212                movem.l d1-d7/a1-a7,4(a0)       | Save registers in env
     
    1414                rts                             | Return to caller
    1515
    16 _longjmp:       move.w  8(a7),d0                | Get ret value
     16longjmp:        move.w  8(a7),d0                | Get ret value
    1717                bne     lj1                     | Jump if non-zero
    1818
  • lib700/uldiv.s

    r84c0125 r8325447  
    33| Version 2 -- 1987-06-08 -- D.N. Lynx Crowe
    44| Lifted from the Alcyon C library by disassembly so I could fix a bug -
    5 |       _uldivr must be in the bss segment so the code will work in PROM.
     5|       uldivr must be in the bss segment so the code will work in PROM.
    66
    77|       long
     
    1919                .text
    2020
    21                 .xdef   _uldiv,_uldivr
     21                .xdef   uldiv,uldivr
    2222
    2323DIVIDEND        =       8
    2424DIVISOR         =       12
    2525
    26 _uldiv:         link    a6,#0                   | Link stack frames
     26uldiv:          link    a6,#0                   | Link stack frames
    2727                movem.l d3-d7,-(a7)             | Save registers
    2828                move.l  DIVIDEND(a6),d7         | d7 = DIVIDEND
     
    3131                bne     notdzero                | Jump if not
    3232
    33                 move.l  #0x80000000,_uldivr     | Force error result
     33                move.l  #0x80000000,uldivr      | Force error result
    3434                move.l  #0x80000000,d0          | ... by dividing
    3535                divu    #0,d0                   | ... by zero
     
    3939                bls     notunflo                | Jump if not
    4040
    41                 move.l  d7,_uldivr              | Remainder = dividend
     41                move.l  d7,uldivr               | Remainder = dividend
    4242                clr.l   d0                      | Quotient = 0
    4343                bra     ulexit                  | Exit
     
    8181                bra     divloop3                | Loop for next bit
    8282
    83 setreslt:       move.l  d7,_uldivr              | Store remainder
     83setreslt:       move.l  d7,uldivr               | Store remainder
    8484                move.l  d5,d0                   | Put quotient in d0
    8585
     
    9292                .even
    9393
    94 _uldivr:        .ds.l   1
     94uldivr:         .ds.l   1
    9595
    9696                .end
  • libcio/ptcl12.s

    r84c0125 r8325447  
    44| ------------------------------------------------------------------------------
    55                .text
    6                 .xdef   __ptcl12
     6                .xdef   _ptcl12
    77
    88CL              =       12
     
    1313FAT             =       a5
    1414
    15 __ptcl12:       link    A6,#0
     15_ptcl12:        link    A6,#0
    1616                movem.l CLT-CLA/FAT-FAT,-(sp)
    1717                move.l  8(A6),FAT
  • misc/ram.ld

    r84c0125 r8325447  
    55    .text (0x10000):
    66    {
    7         _stext = .;
     7        stext = .;
    88        *(.text .text.*)
    99        *(.rodata .rodata.*)
    1010        . = ALIGN(0x10);
    11         _etext = .;
     11        etext = .;
    1212    }
    1313
    14     .data (_etext):
     14    .data (etext):
    1515    {
    16         _sdata = .;
     16        sdata = .;
    1717        *(.data .data.*)
    1818        . = ALIGN(0x10);
    19         _edata = .;
     19        edata = .;
    2020    }
    2121
    22     .bss (_edata):
     22    .bss (edata):
    2323    {
    24         _sbss = .;
     24        sbss = .;
    2525        *(.bss .bss.*)
    26         _ebss = .;
     26        ebss = .;
    2727    }
    2828
    29     _end = .;
     29    end = .;
    3030}
  • misc/rom.ld

    r84c0125 r8325447  
    55    .text (0x100000):
    66    {
    7         _stext = .;
     7        stext = .;
    88        *(.text .text.*)
    99        *(.rodata .rodata.*)
    1010        . = ALIGN(0x10);
    11         _etext = .;
     11        etext = .;
    1212    }
    1313
    14     .data (_etext):
     14    .data (etext):
    1515    {
    16         _sdata = .;
     16        sdata = .;
    1717        *(.data .data.*)
    18         _edata = .;
     18        edata = .;
    1919    }
    2020
    2121    .bss (0x400):
    2222    {
    23         _sbss = .;
     23        sbss = .;
    2424        *(.bss .bss.*)
    25         _ebss = .;
     25        ebss = .;
    2626    }
    2727}
  • prolog/fsmain.s

    r84c0125 r8325447  
    1313                .xdef   start_
    1414
    15                 .xref   _Croot
     15                .xref   Croot
    1616
    17                 .xdef   _panic
    18                 .xdef   _brk
     17                .xdef   panic
     18                .xdef   brk
    1919
    20                 .xdef   __heap
    21                 .xdef   __break
    22                 .xdef   __pmesg
     20                .xdef   _heap
     21                .xdef   _break
     22                .xdef   _pmesg
    2323
    24                 .xdef   _errno
     24                .xdef   errno
    2525
    2626p_bbase         =       0x18            | bss base
     
    5353                move.l  p_bbase(a1),d0  | Calculate break address
    5454                add.l   p_blen(a1),d0   | ...
    55                 move.l  d0,__break      | Set initial break
    56                 move.l  d0,__heap       | Set heap start
     55                move.l  d0,_break       | Set initial break
     56                move.l  d0,_heap        | Set heap start
    5757
    5858                move.l  #0,-(a7)        | Pass NULL to Croot  (no command line)
    59                 jsr     _Croot          | call Croot() routine
     59                jsr     Croot           | call Croot() routine
    6060                addq.l  #4,a7           | ...
    6161
    6262                move.l  #pmsg1,-(a7)    | panic(pmsg1);
    63                 jsr     _panic          | ...
     63                jsr     panic           | ...
    6464                addq.l  #4,a7           | ...
    6565
     
    6969                .page
    7070
    71 | _panic -- hard halt for fatal errors
    72 | ------    --------------------------
    73 _panic:         movea.l 4(a7),a0        | Save panic message address
    74                 move.l  a0,__pmesg      | ...
     71| panic -- hard halt for fatal errors
     72| -----    --------------------------
     73panic:          movea.l 4(a7),a0        | Save panic message address
     74                move.l  a0,_pmesg       | ...
    7575
    7676                trap    #15             | Invoke ROMP  (we hope ...)
     
    8181                .page
    8282
    83 | _brk -- set break value
    84 | ----    ---------------
     83| brk -- set break value
     84| ---    ---------------
    8585| WARNING:  This only works if the stack is above the heap.
    8686
    87 _brk:           cmpa.l  __break,a7      | compare current break with stack
     87brk:            cmpa.l  _break,a7       | compare current break with stack
    8888                bcs     pstop           | actual stack overflow!
    8989
     
    9494                bcs     badbrk          |       bad break;
    9595
    96                 move.l  d0,__break      | OK break: save the break
     96                move.l  d0,_break       | OK break: save the break
    9797                clr.l   d0              | Set OK return
    9898                rts                     | return
     
    118118                .even
    119119
    120 __pmesg:        .ds.l   1       | panic() message string address
    121 __heap:         .ds.l   1       | Heap start  (initial break)
    122 __break:        .ds.l   1       | Current break location
    123 _errno:         .ds.w   1       | System error number
     120_pmesg:         .ds.l   1       | panic() message string address
     121_heap:          .ds.l   1       | Heap start  (initial break)
     122_break:         .ds.l   1       | Current break location
     123errno:          .ds.w   1       | System error number
    124124
    125125        .end
  • 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