Changeset 8325447 in buchla-68k


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

Removed _ prefix.

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

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

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

    r84c0125 r8325447  
    2121                .data
    2222
    23                 .xdef   _VerDate
     23                .xdef   VerDate
    2424
    25 _VerDate:       .asciz  "19881027.01"           | Date and version number
     25VerDate:        .asciz  "19881027.01"           | Date and version number
    2626
    2727                .end
  • rom/bios.s

    r84c0125 r8325447  
    4444
    4545                .xref   start_          | Where ROMP starts
    46                 .xref   _errno          | Start of ROMP bss space
     46                .xref   errno           | Start of ROMP bss space
    4747
    4848                .xdef   basepage        | Pseudo base page for romp
    49                 .xdef   _rsflag         | Register save area overflow flag
     49                .xdef   rsflag          | Register save area overflow flag
    5050
    5151                .ifne   BUCHLA
    5252
    53                 .xdef   _hdvini         | Disk init
    54 
    55                 .endc
    56 
    57                 .xdef   _wzcrsh         | ROMP crash flag
    58                 .xdef   _crshvc         | Crash vector
    59                 .xdef   _crshsr         | Crash SR
    60                 .xdef   _crshpc         | Crash PC
    61                 .xdef   _crshsp         | Crash SP
    62                 .xdef   _crshus         | Crash USP
    63                 .xdef   _crshrg         | Crash SP registers
    64                 .xdef   _crshst         | Crash top of stack
     53                .xdef   hdvini          | Disk init
     54
     55                .endc
     56
     57                .xdef   wzcrsh          | ROMP crash flag
     58                .xdef   crshvc          | Crash vector
     59                .xdef   crshsr          | Crash SR
     60                .xdef   crshpc          | Crash PC
     61                .xdef   crshsp          | Crash SP
     62                .xdef   crshus          | Crash USP
     63                .xdef   crshrg          | Crash SP registers
     64                .xdef   crshst          | Crash top of stack
    6565
    6666                .page
     
    6868                .ifne   BUCHLA
    6969
    70                 .xdef   _hz_1k
    71                 .xdef   _hz_200
     70                .xdef   hz_1k
     71                .xdef   hz_200
    7272                .xdef   frclock
    7373                .xdef   t1count
     
    516516                move.l  #timeint,0x0070         | Set timer trap vector
    517517
    518                 move.l  #_hdvini,hdv_init       | Set disk init vector
     518                move.l  #hdvini,hdv_init        | Set disk init vector
    519519                move.l  #getbpb,hdv_bpb         | Set get BPB vector
    520520                move.l  #rwabs,hdv_rw           | Set disk I/O vector
     
    644644                move.w  #INITIPL,sr             | Enable interrupts
    645645                lea     basepage,a1             | Pass start_ a pseudo base page
    646                 move.l  #_errno,p_bbase(a1)     | ...
     646                move.l  #errno,p_bbase(a1)      | ...
    647647                clr.l   p_blen(a1)              | ...
    648648                move.l  a1,-(a7)                | ...
     
    679679| badtrap -- Bad trap handler
    680680| -------    ----------------
    681 badtrap:        move.w  (a7)+,_crshsr           | Get crash SR
    682                 move.l  (a7)+,_crshpc           | Get crash PC
    683                 move.l  a7,_crshsp              | Get crash SP
     681badtrap:        move.w  (a7)+,crshsr            | Get crash SR
     682                move.l  (a7)+,crshpc            | Get crash PC
     683                move.l  a7,crshsp               | Get crash SP
    684684                bsr     badtr1                  | Get TRAP PC with vector number
    685685                nop
    686686
    687 badtr1:         move.l  (a7)+,_crshvc           | Save for analysis of vector #
    688                 movem.l d0-d7/a0-a7,_crshrg     | Save crash registers
     687badtr1:         move.l  (a7)+,crshvc            | Save for analysis of vector #
     688                movem.l d0-d7/a0-a7,crshrg      | Save crash registers
    689689                move.l  usp,a0                  | Preserve crash USP
    690                 move.l  a0,_crshus              | ...
     690                move.l  a0,crshus               | ...
    691691                move.l  a7,d0                   | Get SP
    692692                andi.l  #0xFFFFFFFE,d0          | ... make sure it's even
    693693                movea.l d0,a1                   | ...
    694694                move.w  #15,d0                  | Save top 16 words
    695                 lea     _crshst,a0              | ... of crash stack in _crshst
     695                lea     crshst,a0               | ... of crash stack in crshst
    696696
    697697badtr2:         move.w  (a1)+,(a0)+             | Save a stack value
     
    699699
    700700                clr.l   d0                      | Get TRAP number
    701                 move.b  _crshvc,d0              | ... as LS byte of d0
    702                 move.l  _crshpc,a0              | Save crash PC in a0
    703                 move.w  #0xFFFF,_wzcrsh         | Indicate we crashed
     701                move.b  crshvc,d0               | ... as LS byte of d0
     702                move.l  crshpc,a0               | Save crash PC in a0
     703                move.w  #0xFFFF,wzcrsh          | Indicate we crashed
    704704                move.l  #rsarea,savptr          | Restore system save pointer
    705705                move.l  #SSTACK,a7              | Reset the stack pointer
     
    725725                move.w  d1,t3count              | ... and save it
    726726
    727                 addq.l  #1,_hz_1k               | Update 1ms clock  (1 KHz)
     727                addq.l  #1,hz_1k                | Update 1ms clock  (1 KHz)
    728728
    729729                move.w  tdiv1,d1                | Update divider
     
    731731                move.w  d1,tdiv1                | ...
    732732
    733                 cmpi.w  #5,d1                   | Do we need to update _hz_200 ?
     733                cmpi.w  #5,d1                   | Do we need to update hz_200 ?
    734734                blt     tmi02                   | Jump if not
    735735
    736                 addq.l  #1,_hz_200              | Update 5ms clock   (200 Hz)
     736                addq.l  #1,hz_200               | Update 5ms clock   (200 Hz)
    737737
    738738                move.w  tdiv2,d1                | Update divider
     
    16111611                .page
    16121612
    1613 | _hdvini -- Drive initialization
    1614 | -------    --------------------
    1615 _hdvini:        link    a6,#-18                 | Reserve space on stack
     1613| hdvini -- Drive initialization
     1614| ------    --------------------
     1615hdvini:         link    a6,#-18                 | Reserve space on stack
    16161616                movem.l d3-d7/a3-a5,-(a7)       | Preserve registers
    16171617                move.l  #300,maxactim           | maxactim = 300 * 20ms
     
    18371837                move.b  #1,(a5)                 | Set dskmode to "Uncertain"
    18381838
    1839 media4:         move.l  _hz_200,d0              | Get time in d0
     1839media4:         move.l  hz_200,d0               | Get time in d0
    18401840                movea.w d7,a1                   | Calculate acctim table address
    18411841                add.l   a1,a1                   | ... = drive # * 4
     
    27342734                lsl.w   #2,d0                   | Use as index
    27352735                lea     acctim(a5),a0           | ... into acctim
    2736                 move.l  _hz_200(a5),0(a0,d0)    | Set last access time
     2736                move.l  hz_200(a5),0(a0,d0)     | Set last access time
    27372737                cmp.w   #1,nflops(a5)
    27382738                bne     flopok01
    27392739
    2740                 move.l  _hz_200(a5),4(a0)       | Time for other drive
     2740                move.l  hz_200(a5),4(a0)        | Time for other drive
    27412741
    27422742flopok01:       move.w  flpsrsv,sr              | Restore sr  (enable ints)
     
    29132913bootload:       link    a6,#0                   | Link stack frames
    29142914                movem.l d6-d7,-(a7)             | Save registers
    2915                 jsr     _hdvini                 | Init drive
     2915                jsr     hdvini                  | Init drive
    29162916                tst.w   nflops                  | See if any connected
    29172917                beq     bootld01                | Jump if drive there
     
    30463046                bne     rand01                  | Jump if not
    30473047
    3048                 move.l  _hz_200,d0              | Pick up the 200 Hz clock
     3048                move.l  hz_200,d0               | Pick up the 200 Hz clock
    30493049                moveq.l #16,d1                  | Shift it left
    30503050                asl.l   d1,d0                   | ...
    3051                 or.l    _hz_200,d0              | OR in current 200 Hz clock
     3051                or.l    hz_200,d0               | OR in current 200 Hz clock
    30523052                move.l  d0,rseed                | Use that as the seed
    30533053
     
    36883688fc_val:         .ds.l   1               | Frame clock value  (0..FCMAX)
    36893689
    3690 _wzcrsh:        .ds.w   1               | Crash area: flag for ROMP
    3691 _crshsr:        .ds.w   1               | Crash area: SR
    3692 _crshpc:        .ds.l   1               | Crash area: PC
    3693 _crshsp:        .ds.l   1               | Crash area: SP
    3694 _crshus:        .ds.l   1               | Crash area: USP
    3695 _crshvc:        .ds.l   1               | Crash area: vector # in MS byte
    3696 _crshrg:        .ds.l   16              | Crash area: registers
    3697 _crshst:        .ds.w   16              | Crash area: top 16 words of stack
     3690wzcrsh:         .ds.w   1               | Crash area: flag for ROMP
     3691crshsr:         .ds.w   1               | Crash area: SR
     3692crshpc:         .ds.l   1               | Crash area: PC
     3693crshsp:         .ds.l   1               | Crash area: SP
     3694crshus:         .ds.l   1               | Crash area: USP
     3695crshvc:         .ds.l   1               | Crash area: vector # in MS byte
     3696crshrg:         .ds.l   16              | Crash area: registers
     3697crshst:         .ds.w   16              | Crash area: top 16 words of stack
    36983698
    36993699| The area from biosram to SSTACK-1 is cleared on reset.
     
    37033703                .ifne   BUCHLA
    37043704
    3705 _hz_1k:         .ds.l   1               | 1000 Hz clock
    3706 _hz_200:        .ds.l   1               | 200 Hz clock
     3705hz_1k:          .ds.l   1               | 1000 Hz clock
     3706hz_200:         .ds.l   1               | 200 Hz clock
    37073707frclock:        .ds.l   1               | 50 Hz clock
    37083708t1count:        .ds.w   1               | Timer 1 count
     
    37583758fverify:        .ds.w   1               | Floppy verify flag
    37593759
    3760 tdiv1:          .ds.w   1               | Timer divider 1  (divides _hz_1k)
    3761 tdiv2:          .ds.w   1               | Timer divider 2  (divides _hz_200)
     3760tdiv1:          .ds.w   1               | Timer divider 1  (divides hz_1k)
     3761tdiv2:          .ds.w   1               | Timer divider 2  (divides hz_200)
    37623762
    37633763retrycnt:       .ds.w   1               | Re-try count
  • rom/lowram.s

    r84c0125 r8325447  
    2020|        ...                    -text-
    2121|        ...
    22 |       _etext          end of 'text' area + 1
    23 |       basedat         start of 'data' area  (will usually be _etext)
     22|       etext           end of 'text' area + 1
     23|       basedat         start of 'data' area  (will usually be etext)
    2424|        ...
    2525|        ...                    -data-
    2626|        ...
    27 |       _edata          end of 'data' area + 1
    28 |       basebss         start of 'bss' area   (will usually be _edata)
     27|       edata           end of 'data' area + 1
     28|       basebss         start of 'bss' area   (will usually be edata)
    2929|        ...
    3030|        ...                    -BSS-
    3131|        ...
    32 |       _end            end of actual 'bss' area + 1
     32|       end             end of actual 'bss' area + 1
    3333|        ...
    3434|        ...                    -heap-
     
    5555
    5656                .xdef   LOWRAM
    57                 .xdef   _Lo_RAM
    58                 .xdef   _Hi_RAM
     57                .xdef   Lo_RAM
     58                .xdef   Hi_RAM
    5959
    6060                .xdef   basebss
     
    6363                .xdef   p_env
    6464
    65                 .xdef   _p_tlen
    66                 .xdef   _p_dlen
     65                .xdef   p_tlen
     66                .xdef   p_dlen
    6767
    6868| Globals referred to here:
    6969
    7070                .xref   start_                  | entry point in fsmain.s
    71                 .xref   _panic                  | entry point in fsmain.s
     71                .xref   panic                   | entry point in fsmain.s
    7272
    73                 .xref   _edata                  | supplied by loader
    74                 .xref   _etext                  | supplied by loader
     73                .xref   edata                   | supplied by loader
     74                .xref   etext                   | supplied by loader
    7575
    7676| ------------------------------------------------------------------------------
    7777| Memory setup:
    78 | ------------
     78| -------------
    7979| The equate for HI_RAM must be set to match the memory configuration used.
    8080
     
    8888| LOWRAM -- Startup code for Buchla 700 application programs
    8989| ------    ------------------------------------------------
    90 _Lo_RAM:
     90Lo_RAM:
    9191LOWRAM:         lea     basebss,a0              | setup bss base
    9292                move.l  a0,p_bbase              | ...
     
    9797                lea     basedat,a0              | setup data base
    9898                move.l  a0,p_dbase              | ...
    99                 lea     _edata,a1               | setup data length
     99                lea     edata,a1                | setup data length
    100100                suba.l  a0,a1                   | ...
    101101                move.l  a1,p_dlen               | ...
     
    103103                lea     start_,a0               | setup text base
    104104                move.l  a0,p_tbase              | ...
    105                 lea     _etext,a1               | setup text length
     105                lea     etext,a1                | setup text length
    106106                suba.l  a0,a1                   | ...
    107107                move.l  a1,p_tlen               | ...
     
    118118
    119119                move.l  #pmsg,-(a7)             | OOPS:  panic()
    120                 jsr     _panic                  | ... shouldn't ever return
     120                jsr     panic                   | ... shouldn't ever return
    121121                addq.l  #4,a7
    122122
     
    148148BPLEN           =       current-p_lowtpa        | MUST be 0x0100 (or we goofed)
    149149
    150 _p_tlen         =       p_tlen                  | text length for MIDAS-VII
    151 _p_dlen         =       p_dlen                  | data length for MIDAS-VII
    152 
    153150| ------------------------------------------------------------------------------
    154151                .data
  • vlib/acctrl.s

    r84c0125 r8325447  
    2828                .text
    2929
    30                 .xdef   _objclr,_objoff,_objon
     30                .xdef   objclr,_objoff,objon
    3131
    32                 .xref   _v_actab
     32                .xref   v_actab
    3333
    3434SCSIZE          =       350             | Screen height
     
    4747|               its bit in all words of the access table.
    4848| ------------------------------------------------------------------------------
    49 _objclr:        link    a6,#0           | Link stack frames
     49objclr:         link    a6,#0           | Link stack frames
    5050                move.w  OBJ(a6),d1      | Get object bit number in d1
    51                 lea     _v_actab,a0     | Get base of object table in a0
     51                lea     v_actab,a0      | Get base of object table in a0
    5252                move.w  #SCSIZE-1,d2    | Put line count in d2
    5353
     
    7373                move.w  LINE(a6),d2     | Get top line number
    7474                add.w   d2,d2           | Convert to word offset
    75                 lea     _v_actab,a0     | Get base address of access table
     75                lea     v_actab,a0      | Get base address of access table
    7676                move.w  0(a0,d2),d0     | Get top line access word
    7777                bset.l  d1,d0           | Set object bit
     
    101101|               at 'line' thru 'line'+'num'.  Enables the object.
    102102| ------------------------------------------------------------------------------
    103 _objon:         link    a6,#0           | Link stack frames
     103objon:          link    a6,#0           | Link stack frames
    104104                move.w  OBJ(a6),d1      | Get object bit number into d1
    105105                move.w  LINE(a6),d2     | Get top line number
    106106                add.w   d2,d2           | Convert to word offset
    107                 lea     _v_actab,a0     | Get base address of access table
     107                lea     v_actab,a0      | Get base address of access table
    108108                move.w  0(a0,d2),d0     | Get top line access word
    109109                bclr.l  d1,d0           | Clear object bit
  • vlib/glcplot.s

    r84c0125 r8325447  
    1414                .text
    1515
    16                 .xdef   _GLCplot
    17                 .xref   _lcd_a0,_lcd_a1,_lcdbase
     16                .xdef   GLCplot
     17                .xref   lcd_a0,lcd_a1,lcdbase
    1818
    1919XLOC            =       8                       | 'x' parameter offset
     
    2727                .page
    2828
    29 _GLCplot:       link    a6,#0                   | Link stack frames
     29GLCplot:        link    a6,#0                   | Link stack frames
    3030                moveq   #63,d0                  | d0 = (63-y) * 85
    3131                sub.w   YLOC(a6),d0             | ...
     
    4141                lsr.w   #3,d1                   | d1 = (x%6) / 8
    4242                add.w   d1,d0                   | d0 = cursor address
    43                 add.w   _lcdbase,d0             | ...
     43                add.w   lcdbase,d0              | ...
    4444                move.w  d0,d1                   | d1 = cursor address, too
    45                 move.b  #G_CRSWR,_lcd_a1        | Send cursor address to GLC
    46                 move.b  d0,_lcd_a0              | ...
     45                move.b  #G_CRSWR,lcd_a1         | Send cursor address to GLC
     46                move.b  d0,lcd_a0               | ...
    4747                lsr.w   #8,d0                   | ...
    48                 move.b  d0,_lcd_a0              | ...
    49                 move.b  #G_MREAD,_lcd_a1        | Read old pixel byte
    50                 move.b  _lcd_a1,d0              | ... into d0
     48                move.b  d0,lcd_a0               | ...
     49                move.b  #G_MREAD,lcd_a1         | Read old pixel byte
     50                move.b  lcd_a1,d0               | ... into d0
    5151                tst.w   VAL(a6)                 | Check val for zero
    5252                beq     glcplt1                 | Jump if val EQ 0
     
    5757glcplt1:        bclr    d2,d0                   | Clear the pixel to 0
    5858
    59 glcplt2:        move.b  #G_CRSWR,_lcd_a1        | Send cursor address to GLC
    60                 move.b  d1,_lcd_a0              | ...
     59glcplt2:        move.b  #G_CRSWR,lcd_a1         | Send cursor address to GLC
     60                move.b  d1,lcd_a0               | ...
    6161                lsr.w   #8,d1                   | ...
    62                 move.b  d1,_lcd_a0              | ...
    63                 move.b  #G_MWRITE,_lcd_a1       | Setup GLC to write pixel
    64                 move.b  d0,_lcd_a0              | Write pixel
     62                move.b  d1,lcd_a0               | ...
     63                move.b  #G_MWRITE,lcd_a1        | Setup GLC to write pixel
     64                move.b  d0,lcd_a0               | Write pixel
    6565                unlk    a6                      | Unlink stack frames
    6666                rts                             | Return to caller
  • vlib/tsplot4.s

    r84c0125 r8325447  
    2222                .text
    2323
    24                 .xdef   _tsplot4
     24                .xdef   tsplot4
    2525
    26                 .xref   _cgtable
     26                .xref   cgtable
    2727
    2828| Argument offsets from a6:
     
    6868                .page
    6969
    70 _tsplot4:       link    a6,#0           | Link stack frames
     70tsplot4:        link    a6,#0           | Link stack frames
    7171                movem.l d3-d6/a3,-(a7)  | Save registers we use
    7272                move.w  #PSHIFT,d1      | Set shift constant
     
    9494                movea.l a3,a1           | Establish output pointer in a1
    9595                adda.l  #HCW,a3         | Update output pointer for next char.
    96                 lea     _cgtable,a0     | Establish CG pointer in a0
     96                lea     cgtable,a0      | Establish CG pointer in a0
    9797                lsl.w   #1,d0           | ... 2 * character
    98                 adda.w  d0,a0           | ... + _cgtable address
     98                adda.w  d0,a0           | ... + cgtable address
    9999                move.w  #VPIX-1,d6      | Set scan line counter in d6
    100100
  • vlib/vbank.s

    r84c0125 r8325447  
    1515|               Wait for a FRAMESTOP update to transpire.
    1616| ------------------------------------------------------------------------------
    17                 .xdef   _vbank
    18                 .xdef   _vfwait
     17                .xdef   vbank
     18                .xdef   vfwait
    1919
    20                 .xref   _v_regs
     20                .xref   v_regs
    2121
    2222                .text
     
    4242
    4343
    44 _vbank:         link    a6,#0                   | link stack frames
     44vbank:          link    a6,#0                   | link stack frames
    4545                movem.l d5-d7,-(sp)             | preserve registers
    46                 move.w  _v_regs+VSDD_R5,OLDB    | get v_regs[5]
     46                move.w  v_regs+VSDD_R5,OLDB     | get v_regs[5]
    4747                lsr.w   #6,OLDB                 | extract BS bits
    4848                move.w  OLDB,d0                 | ...
     
    6666                andi.w  #256,NEWB               | ...
    6767                or.w    NEWB,d0                 | ...
    68                 move.w  d0,_v_regs+VSDD_R5      | set v_regs[5] with new BS bits
     68                move.w  d0,v_regs+VSDD_R5       | set v_regs[5] with new BS bits
    6969
    70 vw1b:           cmp.w   #VT_1,_v_regs+VSDD_R11  | wait for FRAMESTOP
     70vw1b:           cmp.w   #VT_1,v_regs+VSDD_R11   | wait for FRAMESTOP
    7171                bcc     vw1b                    | ...
    7272
    73 vw2b:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     73vw2b:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    7474                bcs     vw2b                    | ...
    7575
    76 vw3b:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     76vw3b:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    7777                bcc     vw3b                    | ...
    7878
    79 vw4b:           cmp.w   #VT_2,_v_regs+VSDD_R11  | ...
     79vw4b:           cmp.w   #VT_2,v_regs+VSDD_R11   | ...
    8080                bcs     vw4b                    | ...
    8181
     
    9393| ------------------------------------------------------------------------------
    9494
    95 _vfwait:        link    a6,#0                   | link stack frames
     95vfwait:         link    a6,#0                   | link stack frames
    9696
    97 vw1a:           cmp.w   #VT_1,_v_regs+VSDD_R11  | wait for FRAMESTOP
     97vw1a:           cmp.w   #VT_1,v_regs+VSDD_R11   | wait for FRAMESTOP
    9898                bcc     vw1a                    | ...
    9999
    100 vw2a:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     100vw2a:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    101101                bcs     vw2a                    | ...
    102102
    103 vw3a:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     103vw3a:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    104104                bcc     vw3a                    | ...
    105105
    106 vw4a:           cmp.w   #VT_2,_v_regs+VSDD_R11  | ...
     106vw4a:           cmp.w   #VT_2,v_regs+VSDD_R11   | ...
    107107                bcs     vw4a                    | ...
    108108
  • vlib/vclrav.s

    r84c0125 r8325447  
    1414                .text
    1515
    16                 .xdef   _vclrav
     16                .xdef   vclrav
    1717
    1818P_ADR           =       8
     
    2222P_LEN           =       18
    2323
    24 _vclrav:        link    a6,#0           | Link stack frame pointer
     24vclrav:         link    a6,#0           | Link stack frame pointer
    2525                move.w  P_ROW(a6),d0    | Get row
    2626                mulu    P_LEN(a6),d0    | Multiply by len
  • vlib/vcputsv.s

    r84c0125 r8325447  
    2222                .text
    2323
    24                 .xdef   _vcputsv
     24                .xdef   vcputsv
    2525
    26                 .xref   _cgtable
     26                .xref   cgtable
    2727
    2828| Argument offsets from a6:
     
    6969                .page
    7070
    71 _vcputsv:       link    a6,#0           | Link stack frames
     71vcputsv:        link    a6,#0           | Link stack frames
    7272                movem.l d3-d6/a3,-(a7)  | Save registers we use
    7373                move.w  #PSHIFT,d1      | Set shift constant
     
    9797                movea.l a3,a1           | Establish output pointer in a1
    9898                adda.l  #HCW,a3         | Update output pointer for next char.
    99                 lea     _cgtable,a0     | Establish CG pointer in a0
     99                lea     cgtable,a0      | Establish CG pointer in a0
    100100                lsl.w   #1,d0           | ... 2 * character
    101                 adda.w  d0,a0           | ... + _cgtable address
     101                adda.w  d0,a0           | ... + cgtable address
    102102                move.w  #VPIX-1,d6      | Set scan line counter in d6
    103103
  • vlib/viint.s

    r84c0125 r8325447  
    1919                .text
    2020
    21                 .xdef   _VIint                  | Vertical Interval int. handler
    22 
    23                 .xdef   _vi_sadr                | score object base address
    24                 .xdef   _vi_scrl                | score object scroll offset
     21                .xdef   VIint                   | Vertical Interval int. handler
     22
     23                .xdef   vi_sadr                 | score object base address
     24                .xdef   vi_scrl                 | score object scroll offset
    2525                .xdef   lclsadr                 | local scroll address
    2626                .xdef   lclscrl                 | local scroll offset
     
    3232                .xdef   VIct4                   | VSDD interrupt R11
    3333
    34                 .xref   _v_regs                 | VSDD registers
    35                 .xref   _v_odtab                | VSDD object descriptor table
    36 
    37                 .xref   _vi_clk                 | scroll delay timer
    38                 .xref   _vi_ctl                 | unblank control word
    39                 .xref   _vi_tag                 | VSDD 'needs service' tag
     34                .xref   v_regs                  | VSDD registers
     35                .xref   v_odtab                 | VSDD object descriptor table
     36
     37                .xref   vi_clk                  | scroll delay timer
     38                .xref   vi_ctl                  | unblank control word
     39                .xref   vi_tag                  | VSDD 'needs service' tag
    4040
    4141                .page
     
    4747STACKSR         =       32                      | offset to sr on stack
    4848V_BLA           =       4                       | V_BLA (blank) bit number
    49 VSDD_R5         =       10                      | VSDD R5 byte offset in _v_regs
    50 VSDD_R11        =       22                      | VSDD R11 byte offset in _v_regs
     49VSDD_R5         =       10                      | VSDD R5 byte offset in v_regs
     50VSDD_R11        =       22                      | VSDD R11 byte offset in v_regs
    5151
    5252VT_BASE         =       128                     | word offset of VSDD Access Table
     
    7474                .page
    7575
    76 | _VIint -- Vertical interval interrupt handler
    77 | ------    -----------------------------------
    78 _VIint:         movem.l d0-d3/a0-a2/a6,-(a7)    | save registers
     76| VIint -- Vertical interval interrupt handler
     77| -----    -----------------------------------
     78VIint:          movem.l d0-d3/a0-a2/a6,-(a7)    | save registers
    7979                addi.w  #0x0100,STACKSR(a7)     | raise IPL in sr on the stack
    8080
    81                 move.w  _v_regs+VSDD_R11,VIct1  | save the VSDD R11 value
    82 
    83                 tst.w   _vi_sadr                | see if we should scroll
     81                move.w  v_regs+VSDD_R11,VIct1   | save the VSDD R11 value
     82
     83                tst.w   vi_sadr                 | see if we should scroll
    8484                beq     viunbl                  | jump if not
    8585
     
    8787| setup delayed scroll parameters
    8888| ------------------------------------------------------------------------------
    89                 move.w  _v_regs+VSDD_R5,d0      | get VSDD R5
     89                move.w  v_regs+VSDD_R5,d0       | get VSDD R5
    9090                move.w  d0,d1                   | save it for later
    9191                andi.w  #0x0180,d0              | see if we're already in bank 0
    9292                beq     dlyscrl                 | jump if so
    9393
    94                 clr.w   _v_regs+VSDD_R5         | set bank 0
    95 
    96                 move.w  _v_regs+VSDD_R11,VIct2  | save the VSDD R11 value
    97 
    98 vw1a:           cmp.w   #VT_1,_v_regs+VSDD_R11  | wait for FRAMESTOP
     94                clr.w   v_regs+VSDD_R5          | set bank 0
     95
     96                move.w  v_regs+VSDD_R11,VIct2   | save the VSDD R11 value
     97
     98vw1a:           cmp.w   #VT_1,v_regs+VSDD_R11   | wait for FRAMESTOP
    9999                bcc     vw1a                    | ...
    100100
    101 vw2a:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     101vw2a:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    102102                bcs     vw2a                    | ...
    103103
    104 vw3a:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     104vw3a:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    105105                bcc     vw3a                    | ...
    106106
    107 vw4a:           cmp.w   #VT_2,_v_regs+VSDD_R11  | ...
     107vw4a:           cmp.w   #VT_2,v_regs+VSDD_R11   | ...
    108108                bcs     vw4a                    | ...
    109109
    110 dlyscrl:        tst.w   _vi_tag                 | wait for previous scroll
     110dlyscrl:        tst.w   vi_tag                  | wait for previous scroll
    111111                bne     dlyscrl                 | ...
    112112
    113                 move.w  _vi_sadr,lclsadr        | save address for timeint
    114                 move.w  _vi_scrl,lclscrl        | save offset for timeint
    115                 clr.w   _vi_sadr                | reset for next time
    116                 clr.w   _vi_scrl                | ...
    117                 move.w  vdelay,_vi_clk          | set the scroll delay timer
    118                 st      _vi_tag                 | set the 'need service' tag
     113                move.w  vi_sadr,lclsadr         | save address for timeint
     114                move.w  vi_scrl,lclscrl         | save offset for timeint
     115                clr.w   vi_sadr                 | reset for next time
     116                clr.w   vi_scrl                 | ...
     117                move.w  vdelay,vi_clk           | set the scroll delay timer
     118                st      vi_tag                  | set the 'need service' tag
    119119| ------------------------------------------------------------------------------
    120120| check for unblank requests
    121121| ------------------------------------------------------------------------------
    122                 move.w  _vi_ctl,d2              | get the unblank control word
     122                move.w  vi_ctl,d2               | get the unblank control word
    123123                beq     viexit                  | exit if nothing to unblank
    124124
    125125                bra     unblnk                  | go unblank some objects
    126126
    127 viunbl:         move.w  _vi_ctl,d2              | get the unblank control word
     127viunbl:         move.w  vi_ctl,d2               | get the unblank control word
    128128                beq     vidone                  | exit if nothing to unblank
    129129
    130                 move.w  _v_regs+VSDD_R5,d0      | get VSDD R5
     130                move.w  v_regs+VSDD_R5,d0       | get VSDD R5
    131131                move.w  d0,d1                   | save it for later
    132132                andi.w  #0x0180,d0              | see if we're already in bank 0
    133133                beq     unblnk                  | jump if so
    134134
    135                 clr.w   _v_regs+VSDD_R5         | set bank 0
    136 
    137                 move.w  _v_regs+VSDD_R11,VIct3  | save the VSDD R11 value
    138 
    139 vw1b:           cmp.w   #VT_1,_v_regs+VSDD_R11  | wait for FRAMESTOP
     135                clr.w   v_regs+VSDD_R5          | set bank 0
     136
     137                move.w  v_regs+VSDD_R11,VIct3   | save the VSDD R11 value
     138
     139vw1b:           cmp.w   #VT_1,v_regs+VSDD_R11   | wait for FRAMESTOP
    140140                bcc     vw1b                    | ...
    141141
    142 vw2b:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     142vw2b:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    143143                bcs     vw2b                    | ...
    144144
    145 vw3b:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     145vw3b:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    146146                bcc     vw3b                    | ...
    147147
    148 vw4b:           cmp.w   #VT_2,_v_regs+VSDD_R11  | ...
     148vw4b:           cmp.w   #VT_2,v_regs+VSDD_R11   | ...
    149149                bcs     vw4b                    | ...
    150150
     
    152152
    153153| ------------------------------------------------------------------------------
    154 | unblank objects indicated by contents of d2  (loaded earlier from _vi_ctl)
     154| unblank objects indicated by contents of d2  (loaded earlier from vi_ctl)
    155155| ------------------------------------------------------------------------------
    156156
    157157unblnk:         clr.w   d3                      | clear the counter
    158                 clr.w   _vi_ctl                 | clear the unblank control word
    159                 lea     _v_odtab,a1             | point at first object
     158                clr.w   vi_ctl                  | clear the unblank control word
     159                lea     v_odtab,a1              | point at first object
    160160
    161161vicheck:        btst    d3,d2                   | check the object bit
     
    181181                beq     vidone                  | jump if so
    182182
    183 viwait:         tst.w   _vi_tag                 | wait for timer to run out
     183viwait:         tst.w   vi_tag                  | wait for timer to run out
    184184                bne     viwait                  | ... so timeint sees bank 0
    185185
    186                 move.w  d1,_v_regs+VSDD_R5      | restore v_regs[5] to old bank
    187 
    188                 move.w  _v_regs+VSDD_R11,VIct4  | save the VSDD R11 value
    189 
    190 vw1c:           cmp.w   #VT_1,_v_regs+VSDD_R11  | wait for FRAMESTOP
     186                move.w  d1,v_regs+VSDD_R5       | restore v_regs[5] to old bank
     187
     188                move.w  v_regs+VSDD_R11,VIct4   | save the VSDD R11 value
     189
     190vw1c:           cmp.w   #VT_1,v_regs+VSDD_R11   | wait for FRAMESTOP
    191191                bcc     vw1c                    | ...
    192192
    193 vw2c:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     193vw2c:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    194194                bcs     vw2c                    | ...
    195195
    196 vw3c:           cmp.w   #VT_1,_v_regs+VSDD_R11  | ...
     196vw3c:           cmp.w   #VT_1,v_regs+VSDD_R11   | ...
    197197                bcc     vw3c                    | ...
    198198
    199 vw4c:           cmp.w   #VT_2,_v_regs+VSDD_R11  | ...
     199vw4c:           cmp.w   #VT_2,v_regs+VSDD_R11   | ...
    200200                bcs     vw4c                    | ...
    201201
     
    219219| ------------------------------------------------------------------------------
    220220
    221 _vi_sadr:       .ds.w   1                       | score object base address
    222 _vi_scrl:       .ds.w   1                       | score object scroll offset
     221vi_sadr:        .ds.w   1                       | score object base address
     222vi_scrl:        .ds.w   1                       | score object scroll offset
    223223
    224224lclsadr:        .ds.w   1                       | local copy of vi_sadr
  • vlib/vputa.s

    r84c0125 r8325447  
    1414                .text
    1515
    16                 .xdef   _vputa
     16                .xdef   vputa
    1717
    1818SBASE           =       8               | LONG - 'sbase'
     
    2121ATTR            =       16              | WORD - 'attrib'
    2222
    23 _vputa:         link    a6,#0           | Link stack frame pointer
     23vputa:          link    a6,#0           | Link stack frame pointer
    2424                clr.l   d0              | Clear out d0
    2525                move.w  ROW(a6),d0      | Get row
  • vlib/vputc.s

    r84c0125 r8325447  
    1414                .text
    1515
    16                 .xdef   _vputc
     16                .xdef   vputc
    1717
    18 _vputc:         link    a6,#0           | Link stack frame pointer
     18vputc:          link    a6,#0           | Link stack frame pointer
    1919                clr.l   d0              | Clear out d0
    2020                move.w  12(a6),d0       | Get row
  • vlib/vputcv.s

    r84c0125 r8325447  
    1515                .text
    1616
    17                 .xdef   _vputcv
     17                .xdef   vputcv
    1818
    1919P_ADR           =       8
     
    2626                .page
    2727
    28 _vputcv:        link    a6,#0           | Link stack frame pointer
     28vputcv:         link    a6,#0           | Link stack frame pointer
    2929                move.w  P_ROW(a6),d0    | Get row
    3030                mulu    P_LEN(a6),d0    | Multiply by len
  • vlib/vputp.s

    r84c0125 r8325447  
    3232                .text
    3333
    34                 .xdef   _vputp
     34                .xdef   vputp
    3535
    3636OCTAD           =       8
     
    5151                .page
    5252
    53 _vputp:         link    a6,#0                   | Link stack frames
     53vputp:          link    a6,#0                   | Link stack frames
    5454                movea.l OCTAD(a6),a1            | Get OCTAD base into a1
    5555                move.w  XLOC(a6),d0             | Get XLOC into d0
  • vlib/vsetav.s

    r84c0125 r8325447  
    1414                .text
    1515
    16                 .xdef   _vsetav
     16                .xdef   vsetav
    1717
    1818P_ADR           =       8
     
    2222P_LEN           =       18
    2323
    24 _vsetav:        link    a6,#0           | Link stack frame pointer
     24vsetav:         link    a6,#0           | Link stack frame pointer
    2525                move.w  P_ROW(a6),d0    | Get row
    2626                mulu    P_LEN(a6),d0    | Multiply by len
  • vlib/vsetcv.s

    r84c0125 r8325447  
    1414                .text
    1515
    16                 .xdef   _vsetcv
     16                .xdef   vsetcv
    1717
    1818P_ADR           =       8
     
    2222P_LEN           =       18
    2323
    24 _vsetcv:        link    a6,#0           | Link stack frame pointer
     24vsetcv:         link    a6,#0           | Link stack frame pointer
    2525                move.w  P_ROW(a6),d0    | Get row
    2626                mulu    P_LEN(a6),d0    | Multiply by len
  • vlib/vsplot4.s

    r84c0125 r8325447  
    2424                .text
    2525
    26                 .xdef   _vsplot4
     26                .xdef   vsplot4
    2727
    2828| Argument offsets from a6:
     
    6969                .page
    7070
    71 _vsplot4:       link    a6,#0           | Link stack frames
     71vsplot4:        link    a6,#0           | Link stack frames
    7272                movem.l d3-d6/a3,-(a7)  | Save registers we use
    7373                move.w  #PSHIFT,d1      | Set shift constant
  • vlib/vvputsv.s

    r84c0125 r8325447  
    2222                .text
    2323
    24                 .xdef   _vvputsv
     24                .xdef   vvputsv
    2525
    2626| Argument offsets from a6:
     
    6868                .page
    6969
    70 _vvputsv:       link    a6,#0           | Link stack frames
     70vvputsv:        link    a6,#0           | Link stack frames
    7171                movem.l d3-d6/a3,-(a7)  | Save registers we use
    7272                move.w  #PSHIFT,d1      | Set shift constant
  • vlib/vwputp.s

    r84c0125 r8325447  
    3535                .text
    3636
    37                 .xdef   _vputp
     37                .xdef   vputp
    3838
    3939OCTAD           =       8
Note: See TracChangeset for help on using the changeset viewer.