Yahoo Groups archive

SynthModules

Index last updated: 2026-04-28 23:14 UTC

Message

Re: MIDI interupts

2004-04-11 by grantrichter2001

You have to use "resume" at the end of ISRs and not "end".

I'm guessing "resume" clears the interupt flag and passes 
variables back through the stack? Dpoe this thing even have a 
stack?

--- In SynthModules@yahoogroups.com, "djbrow54" 
<davebr@e...> wrote:
> --- In SynthModules@yahoogroups.com, "grantrichter2001"
> <grichter@a...> wrote:
> > Dave,
> > 
> > See syncable.bas in the file section under Code 
> > Fragments/Mbasic for how to talk to registers and enable 
and 
> > disable interupts. At least as far as we have figured out yet. 
That 
> > particular segment uses timer W, but the serial port should 
be 
> > similar.
> > 
> > The interupt commands are compiler directives, not 
keywords. 
> > For example, disable the interupt right before the interupt 
handler 
> > name label, not inside the interupt handler routine itself.
> > Grant
> 
> This is getting more weird.  I followed your lead and re-wrote 
the
> interrupt routine.  In debug mode I can follow the code and see 
it
> execute through the ISR and then exit.  This is significant 
progress
> as before I could never exit the ISR.  However, none of the code
> after executing the ISR seems to work correctly.  I traced it 
down to
> all the variables I set within the ISR always are returned as 0.  I
> wrote the following simple code:
> 
> 	DISABLE SCI3INT_RDRF
> MIDI_IN_ISR:
> 		MIDIDATA=RDR	'Read Receiver Data Register
> 		ctr=10
> 		debug [dec ctr,"=ctr "]
> 		end
> 
> When sent a MIDI command, it enters the ISR, prints in the 
debug
> console, and halts.  However, the data written to the debug 
window
> is:  0=ctr
> 
> No matter what variable or flag I put in the ISR, everthing reads
> back as 0.  This is the same effect I saw in trying to read the 
SSR
> register inside the ISR.  They also read as all 0's.
> 
> Your code clearly passes back MSEX.  I don't understand the
> difference.
> 
> Dave

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.