[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: .SYSTEM file extensions
In article <Aug02.211715.34110@acs.ucalgary.ca> sbdocker@acs.ucalgary.ca (Sean Brendan Dockery) writes:
> In article <1993Aug2.105937.5110@actrix.gen.nz>
> dempson@swell.actrix.gen.nz (David Empson) writes:
>
> |buffers (about $9200 if you have no files open).
> ~~~~~
> Actually $9A00. $9600-$99FF is BASIC.SYSTEM's general purpose buffer
> (which is used to garbage collection in Applesoft among other things),
> but I don't believe that it is protected in the ProDOS memory usage
> bitmap table.
Well it would be $9600 then - BASIC.SYSTEM must allocate one file
buffer to load in the SYS file!
I just tried this - a SYS file of $7600 bytes can be launched, but
$7601 produces a NO BUFFERS AVAILABLE message.
Note: this assumes you haven't allocated any memory behind BASIC's
buffers, of course.
I wasn't aware that the general purpose buffer was used for garbage
collection - I thought it was for doing CATALOGs and the like.
> I think that the SHRINKIT.SYSTEM file zeroes all memory usage in the
> ProDOS bitmap except for ProDOS itself. That way when it tries to
> load the SHRINKIT file at $2000, the overwrite of BASIC.SYSTEM code is
> no longer considered a memory violation.
Of course it does - all SYS files are supposed to initialize the
ProDOS bitmap to appropriate values. Once BASIC.SYSTEM has loaded
a SYS file and done a JMP $2000, it is no longer part of the picture -
the new file has complete control (and should set up ProDOS's global
page as required).
SHRINKIT.SYSTEM just happens to be a very simple SYS program whose
only purpose is to launch another one (SHRINKIT).
> Now, to be standing corrected, someone has to give me an example of a
> type SYS file with a .SYSTEM extension that exceeds $7A00 bytes in
> size (without conveniently renaming one). Anyone, anyone, anyone,
> anyone...
The ".SYSTEM" extension has nothing to do with BASIC! You can rename
SHRINKIT to SHRINKIT.SYSTEM, and ProDOS will load it (if it is the
first .SYSTEM file) when you boot the disk.
I just tried this, and it works fine with ShrinkIt 3.4 and ProDOS-8
2.0.3.
> o Pre-ProDOS 8 v1.9 QUIT code could not load system files larger than
> 38K in size (even though there is 39.75K free). Any type SYS file
> could still be loaded from the selector as long as it was smaller
> than 38K. Since that version, system files up to 39.75K are
> loadable.
OK - I wasn't aware of that. Still, my statement holds. I was talking
about third-party program selectors, not the "enter pathname of next
application" abomination.
> I don't believe that SHRINKIT is larger than 38K in size. So, it
> should* be launchable from the pre-v 1.9 selector.
Nope. Version 3.4 is 39984 bytes (39.05 KB), hence can't be loaded by
the pre-1.9 quit code.
I just repeated the above experiment with ProDOS-8 1.4, and it hung
during boot (when trying to load SHRINKIT, which I'd renamed as
SHRINKIT.SYSTEM).
However, it seemed to load SHRINKIT correctly from the "quit" code
launcher.
--
David Empson
dempson@swell.actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand