Apple GEOS file structures unveiled

50 views
Skip to first unread message

Oliver Schmidt

unread,
Mar 8, 2012, 6:52:31 AM3/8/12
to
Hi everybody,

Although the Apple GEOS filesystem is based on ProDOS 8 the Apple GEOS
files are not standard ProDOS 8 files. I'm not refering to file
content here but to the file structure - meaning that Apple GEOS files
aren't seedling, sapling nor tree files.

I've done some reverse-engineering and have documented my findings
here:
http://wiki.cc65.org/doku.php?id=cc65:apple2:geosfileformats

GEOS files are more than the usual byte stream with a few attributes.
Therefore they need to be converted in order to represent them in
other filesystems. This is just the same as with GEOS 64/128. And
again just the same as with GEOS 64/128 it is desirable to have this
conversion work "in place" instead of creating copies. To facilitate
this a suitable "convert format" has to be specified. I defined one
here:
http://wiki.cc65.org/doku.php?id=cc65:apple2:geosconvertformat

Who can make use of this "convert format"?

1. Convert tools running on Apple GEOS (like on GEOS 64/128) or on
ProDOS 8. I've already written a ProDOS 8 convert - which however
currently only supports the "deconversion".

2. Apple disk image tools like CiderPress or AppleCommander. They
could use the "convert format" to represent Apple GEOS files in the
host filesystem - and do the (de-)convert on-the-fly when moving files
from/to an Apple GEOS disk image.

What's the benefit of all this?

1. In general it becomes possible to move Apple GEOS files around,
transfer them with any filetransfer technicque and share them on the
net etc.

2. I'm working on porting the cc65 GEOSLib (http://www.cc65.org/
snapshot-doc/geos.html) from GEOS 64/128 to Apple GEOS. The cc65
linker creates a "convert format" file which is then tranfered to the
Apple GEOS filesystem and finally deconverted there. That's the reason
why my ProDOS 8 convert tool only supports this direction.

3. Now that the basic Apple GEOS file structures are known one can
apply the already present knowledge on GEOS file contents - as they
are the same for Apple GEOS and GEOS 64/128. Thus it becomes i.e.
possible to implement an Apple geoPaint file viewer (or editor):
ftp://ftp.zimmers.net/pub/cbm/geos/programming/documents/geoPaint%20format.txt

From the cc65 developers perspective it would of course be great if
CiderPress and/or AppleCommander would allow to place the output file
of the cc65 linker directly in an Apple GEOS disk image as Apple GEOS
file, thus superseding the additional convert step.

Regards,
Oliver

David Schmidt

unread,
Apr 16, 2012, 11:53:15 PM4/16/12
to
On 3/8/2012 6:52 AM, Oliver Schmidt wrote:
> [...]
> From the cc65 developers perspective it would of course be great if
> CiderPress and/or AppleCommander would allow to place the output file
> of the cc65 linker directly in an Apple GEOS disk image as Apple GEOS
> file, thus superseding the additional convert step.

With that gauntlet thrown down, who could resist? AppleCommander
command line support has been added to properly place cc65-produced GEOS
files on ProDOS images. John Matthews has posted the 1.3.5.11 build in
the AC download page:
https://sites.google.com/site/drjohnbmatthews/applecommander

This pico-release adds the -geos argument. Given a GEOS file in
Oliver's CONVERT format:
http://wiki.cc65.org/doku.php?id=cc65:apple2:geosconvertformat
AC can be invoked like so to place that file on a disk image:

java ac.jar -geos disk.po < file.cvt

Since the CONVERT format includes a filename and other ProDOS atributes
as part of the specification, there's no need to add anything more on
the command line. If you like to do things by hand, though, you can
achieve the same result this way:

java ac.jar -p disk.po foo GEO < file.cvt

Again, since the CONVERT spec includes all of the ProDOS attributes, the
filename (foo) and filetype (GEO/0x82) are actually overwritten and/or
ignored as part of the process. But the presence of GEO as filetype is
the thing that triggers the special GEOS handling.

Oliver Schmidt

unread,
Apr 18, 2012, 2:28:47 AM4/18/12
to
Hi David,

>> [...]
>> From the cc65 developers perspective it would of course be great if
>> CiderPress and/or AppleCommander would allow to place the output file
>> of the cc65 linker directly in an Apple GEOS disk image as Apple GEOS
>> file, thus superseding the additional convert step.

>With that gauntlet thrown down, who could resist?

So you interpreted correctly what looked like just a friendly remark
to everybody else ;-))

>AppleCommander
>command line support has been added to properly place cc65-produced GEOS
>files on ProDOS images.
>[...]

Cool stuff! Exactly what the upcoming crowd of Apple GEOS hackers
needs to significantly cut down turnaround times. Many thanks :-)

Regards,
Oliver
Reply all
Reply to author
Forward
0 new messages