Remeber that in basic, ALL variables are global. There are no
"local" variables, so every variable HAS to have a unique
identifier and can not be reused between subroutines. One of
the simple disciplines to handle this is to start all "local"
variables for each sub-routine with a letter. Like Alist, Aindex,
Alocal, next subroutine is Blist, Bindex, Blocal etc.
Brute force, yes, but Basic was developed for small bitwidth
machines and small memory spaces. The Tiny Basic interpreter
is only 2K of 8 bit wide space. Elegant in it's own minimalist way.
Now that hardware has become stupidly cheap, there is no point
in conserving resources. But at one time computers only had 4K
of "core" ha,ha,ha, "core" memory yuck, yuck, "drum" memory
ha,ha, ha, punch cards ha, ha, ha, choke, cough, gasp...
OK I'll shut up now...
--- In SynthModules@yahoogroups.com, "john mahoney"
<jmahoney@g...> wrote:
> Dave,
> First of all, you rock! Nice work. (Never mind that I was soon
going to post
> something like, "MIDI in *would* be nice but I'll settle for MIDI
out -- if
> it includes MIDI Clock out." ;-)
>
> Second, a really dumb question: Where'd your MIDI interface
come from?
> --
> john
>
> P.S. Brice, the PSIM's limits keep expanding!
>
>
> ----- Original Message -----
> From: "djbrow54" <davebr@e...>
> To: <SynthModules@yahoogroups.com>
> Sent: Monday, April 12, 2004 11:45 PM
> Subject: [SynthModules] MIDI input and output code working!
>
>
> > It's working!!!
> >
> > I was bound and determined to figure out the occasional
glitches with
> > the interrupt-driven MIDI input. I'm used to assembly
language
> > stack-based machines. I was using the same variables in
the
> > interrupt service routine so I had problems with stepping on
the
> > variables in the main code during an interrupt. I had to
change to
> > local variables where possible in the interrupt service routine
and
> > disable interrupts in the main code when checking or
manipulating
> > these variables. This also corrects the issue I was having
with byte
> > variables. For some reason setting the variables to words
greatly
> > reduced the frequency of collision.
> >
> > I merged the polled and interrupt modes with a compile
option. You
> > can compile for either polled MIDI input or interrupt MIDI
input.
Show quoted textHide quoted text
> > The MIDI output is always polled.
> >
> > I'll upload the code later tonight.
> >
> > Dave
> >