TIP: Click on subject to list as thread! ANSI
echo: apple
to: comp.sys.apple2,comp.sys.apple2.pro
from: mdj
date: 2008-09-01 19:48:04
subject: Re: vm02: calling all IIcs - Take 2

On Sep 2, 11:55=A0am, David Schmenk  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 t=
o
> >>> the heap area and trash it only when memory becomes
tight? As for 128=
k
> >>> 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 ;-) =A0I'm unsure (can anyone fill me in?)
> about the AUX memory areas used by the RAM disk. =A0 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
--- SBBSecho 2.12-Win32
* Origin: Derby City Gateway (1:2320/100.2008)
SEEN-BY: 10/1 3 34/999 106/1 120/228 123/500 140/1 222/2 226/0 236/150 249/303
SEEN-BY: 250/306 261/20 38 100 1404 1406 1410 1418 266/1413 280/1027 320/119
SEEN-BY: 393/11 396/45 633/260 267 712/848 800/432 801/161 189 2222/700
SEEN-BY: 2320/100 105 200 2905/0
@PATH: 2320/100 261/38 633/260 267

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.