TIP: Click on subject to list as thread! ANSI
echo: apple
to: comp.sys.apple2,comp.sys.apple2.pro
from: David Schmenk
date: 2008-09-01 20:51:36
subject: Re: vm02: calling all IIcs - Take 2

mdj wrote:
> On Sep 2, 11:55 am, 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 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.

Good. I can work that just fine.

> 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.
> 


I will handle the IIc keyboard interrupts myself and leave the AUX 
screen holes alone.

> 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

Right.  I need to remember the stack pointer thing as I swap them around 
a lot during thread switching.  Matt, you are definitely a wealth of 
information.

Dave...
--- 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™.