Changeset 8325447 in buchla-68k for ram/timeint.s
- Timestamp:
- 08/07/2017 02:04:35 PM (7 years ago)
- Branches:
- master
- Children:
- 27c8d40
- Parents:
- 84c0125
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ram/timeint.s
r84c0125 r8325447 26 26 .text 27 27 28 .xdef _tsetup | tsetup() -- timer setup function28 .xdef tsetup | tsetup() -- timer setup function 29 29 .xdef timeint | timer interrupt handler 30 30 31 .xdef _M1IoRec| MIDI channel 1 IoRec32 .xdef _M2IoRec| MIDI channel 2 IoRec33 .xdef _S1IoRec| RS232 channel 1 IoRec34 .xdef _S2IoRec| RS232 channel 2 IoRec35 .xdef _timers | timer array -- short timers[NTIMERS]36 .xdef _vi_clk | VSDD scroll delay timer37 .xdef _vi_tag | VSDD VI tag31 .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 38 38 39 39 .xref lclsadr | score object base address 40 40 .xref lclscrl | score object scroll offset 41 .xref _v_odtab| VSDD object descriptor table41 .xref v_odtab | VSDD object descriptor table 42 42 43 43 .page … … 130 130 .page 131 131 | ============================================================================== 132 | _tsetup -- tsetup() -- timer setup function133 | ============================================================================== 134 135 _tsetup:move.w sr,-(a7) | Save old interrupt mask132 | tsetup -- tsetup() -- timer setup function 133 | ============================================================================== 134 135 tsetup: move.w sr,-(a7) | Save old interrupt mask 136 136 ori.w #IPL7,sr | Disable interrupts 137 137 … … 140 140 trap #XBIOS | ... 141 141 add.l #4,a7 | ... 142 move.l d0, _S1IoRec | ...142 move.l d0,S1IoRec | ... 143 143 144 144 move.w #SR2_DEV,-(a7) | Establish S2IoRec … … 146 146 trap #XBIOS | ... 147 147 add.l #4,a7 | ... 148 move.l d0, _S2IoRec | ...148 move.l d0,S2IoRec | ... 149 149 150 150 move.w #MC1_DEV,-(a7) | Establish M1IoRec … … 152 152 trap #XBIOS | ... 153 153 add.l #4,a7 | ... 154 move.l d0, _M1IoRec | ...154 move.l d0,M1IoRec | ... 155 155 156 156 move.w #MC2_DEV,-(a7) | Establish M2IoRec … … 158 158 trap #XBIOS | ... 159 159 add.l #4,a7 | ... 160 move.l d0, _M2IoRec | ...160 move.l d0,M2IoRec | ... 161 161 162 162 .page … … 164 164 clr.w FC_SW | Stop the frame clock 165 165 clr.l FC_VAL | ... and reset it 166 clr.w _vi_tag | Clear VSDD VI tag167 clr.w _vi_clk | Clear VSDD delay timer166 clr.w vi_tag | Clear VSDD VI tag 167 clr.w vi_clk | Clear VSDD delay timer 168 168 clr.w lclsadr | Clear score scroll address 169 169 clr.w lclscrl | Clear score scroll offset 170 170 171 lea _timers,a0 | Point at timer array171 lea timers,a0 | Point at timer array 172 172 move.w #NTIMERS-1,d0 | Setup to clear timer array 173 173 … … 217 217 | process VSDD timer 218 218 | ------------------------------------------------------------------------------ 219 tst.w _vi_tag | Does the VSDD need service ?219 tst.w vi_tag | Does the VSDD need service ? 220 220 beq updtime | Jump if not 221 221 222 move.w _vi_clk,d0 | Get VSDD scroll delay timer222 move.w vi_clk,d0 | Get VSDD scroll delay timer 223 223 subq.w #1,d0 | Decrement timer 224 move.w d0, _vi_clk | Update timer224 move.w d0,vi_clk | Update timer 225 225 bne updtime | Jump if it's not zero yet 226 226 227 move.w lclsadr, _v_odtab+12 | Update scroll address228 move.w lclscrl, _v_odtab+10 | Update scroll offset229 clr.w _vi_tag | Reset the tag227 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 230 230 231 231 .page … … 236 236 237 237 updtime: move.w #NTIMERS-1,d0 | Setup timer array counter 238 lea _timers,a0 | Point at timer array238 lea timers,a0 | Point at timer array 239 239 240 240 tdcr: move.w (a0),d1 | Get timer array entry … … 325 325 ori.w #0x0700,sr | Disable interrupts 326 326 327 movea.l _M1IoRec,a0 | Point at M1IoRec327 movea.l M1IoRec,a0 | Point at M1IoRec 328 328 move.b IO_CFR1(a0),d0 | Get MIDI-1 CFR1 value 329 329 or.b #0x80,d0 | Force MSB = 1 for CFR1 output … … 372 372 | ------------------------------------------------------------------------------ 373 373 374 _timers:.ds.w NTIMERS | Timer array -- short timers[NTIMERS];375 376 _vi_clk:.ds.w 1 | VSDD scroll delay timer377 _vi_tag:.ds.w 1 | VSDD VI 'needs service' tag378 379 _S1IoRec: .ds.l 1 | address of RS232 channel 1 IoRec380 _S2IoRec: .ds.l 1 | address of RS232 channel 2 IoRec381 _M1IoRec: .ds.l 1 | address of MIDI channel 1 IoRec382 _M2IoRec: .ds.l 1 | address of MIDI channel 2 IoRec374 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 383 383 | ============================================================================== 384 384
Note:
See TracChangeset
for help on using the changeset viewer.