Final Cartridge III with GEOS
This project replaces the Final Cartridge III "Desktop" UI with the GEOS 2.0 KERNAL.
- Booting with C= held down will boot into GEOS.
- The BASIC instruction
DESKTOPwill boot into GEOS.
It takes about 5 seconds until GEOS initializes. The ROM contents do not include the "deskTop" file manager, which it then has to load from disk.
You need to put this repository, the GEOS source and the original FC3
.CRT image into the same directory and run build.sh:
mkdir fc3 cd fc3 cp /path/to/Final_Cartridge_3_1988-12.crt . git clone https://github.com/mist64/geos git clone https://github.com/mist64/fc3-geos cd fc3-geos ./build.sh
fc3-geos.crt is the resulting
fc3-geos-basic.crt is a patched version that boots into BASIC instead of GEOS.
By default, the image includes the 1541 disk driver and the joystick input driver. You can change this through the options for the GEOS build. See the README in the
geos repository for more information.
Binaries are available here: https://www.pagetable.com/?p=1180
The inner workings are quite straightforward. The default build of the GEOS repository produces a pucrunch-compressed
PRG executable that is just below 16 KB. A small loader that copies the ROM contents to $0801 is added to it, and the 16 KB bank 2 of the FC3 ROM are replaced with the resulting data.
During the 5 seconds decompression phase, "BOOTING GEOS ..." is displayed on the screen. An optional codepath in
fc3-geos.s can instead show the GEOS background pattern during this time.
If the data in ROM was uncompressed, the 5 seconds could be reduced to a quarter second, but this would require more of the FC3 ROM contents to be sacrificed, since the total uncompressed size of the GEOS KERNAL is a little over 20 KB:
Michael Steil firstname.lastname@example.org, Public Domain.