[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: vm02: calling all IIcs - Take 2
On Sep 2, 11:55 am, David Schmenk <dschm...@YUCH.gmail.com> wrote:
> > Actually, you're right. I just checked the specifics in the manual.
> > SYSTEM programs are supposed to start with a JMP instruction, which
> > can then be followed optionally by $EE $EE following that there would
> > be a (presumably) 65 byte buffer having the length of the argument
> > plus the argument (pascal string style)
>
> > That being the case, it should be pretty simple to add it to the
> > loader
>
> I can add this but I may need some help checking that I got it right.
Too easy... Just post another when you're done and I'll happily test
it...
> >>> I see what you mean with the quit code... Perhaps you could copy it to
> >>> the heap area and trash it only when memory becomes tight? As for 128k
> >>> systems, that's nice and easy. As long as /RAM is connected when your
> >>> SYS program starts, you can disconnect it then reclaim the entire aux
> >>> bank for your own purposes. It's only when /RAM is disconnected at
> >>> launch that the Aux LC reserved area must be respected.
> >> Maybe the Quit code should restart the Java environment after an
> >> application runs...
>
> > Even better, the loader could save the area to the end of a small
> > binary program that can sane-ify the environment before issuing a MLI
> > QUIT
>
> > Matt
>
> That's what rebooting does ;-) I'm unsure (can anyone fill me in?)
> about the AUX memory areas used by the RAM disk. I plan on trashing
> all of the the AUX LC and MAIN memory areas.
I suppose I don't really mind if the 64k behaviour is reboot, as long
as the 128k version doesn't break ProDOS at all ... :-)
As for the RAM disk usage of AUX, it's basically all of it, with the
exception of a part of AUX LC Bank 2 (reserved for third party RAM
drivers). The convention is if /RAM is there when your application
starts up, you're free to disconnect it from ProDOS and use the AUX
memory as you see fit. If you want IIc keyboard buffering
compatibility, steer clear of AUX page $02, and respect the AUX
equivalents of the screen holes. Before you quit, you need to
reconnect /RAM, otherwise most applications will refuse to start up.
The only other things to keep in mind: The top two bytes of the AUX
stack are used keep track of the two stack pointers. Since you're
running with interrupts turned on, you'll need to be concerned about
how they get processed in the two possible main area memory
configurations that can exist when the AUX LC is intercepting them.
Oh, and never make a ProDOS MLI call from auxiliary memory.
Matt