Commodore logo

GEOS for the Commodore 64

(last updated 2023-11-04)
Commodore logo
GEOS or GTFO
GEOS desktop

GEOS desktop (click to enlarge)


GEOS lobster

the "GEOS lobster" (click to enlarge)


fonts in geoWrite

fonts in geoWrite (click to enlarge)

GEOS (Graphic Environment Operating System) is a disk-based GUI operating system for the Commodore 64, released by Berkeley Softworks in 1986. It includes features like pull-down menus, icons, dialog boxes, and proportional fonts. It also has extensive drag and drop capability (e.g. drag a data file to the printer icon to print it, to a disk icon to copy it, or to the trashcan to delete it). Some of its features are still considered modern, like the ability to double-click a data file and have it load in its parent application regardless of name (i.e. no file extensions or magic numbers). Later enhancements made it possible to use RAM expanders, CPU accelerators, hard drives, and more.

Berkeley's GEOS 2.0 brochure gives a good impression of what GEOS is like and how it was marketed. And here's their winter 1988 product catalog.

On these pages you can find everything you need to use GEOS on a Commodore 64: the operating system and applications (all cracked), programming tools and tips, and a few miscellaneous goodies (including a comprehensive analysis of GEOS fonts that includes a PDF catalog with samples of over 1000 of them). This isn't the entire contents of my collection, so if there's something you're looking for, email me (cenbe at protonmail dot com) and I'll see if I have it. But please note: the main purpose of these pages is not to provide a comprehensive archive of GEOS software. And I've never owned a 128, so if that's what you've got, you're on your own!

A word about system resources: GEOS pushes the Commodore 64 to its limits as far as hardware and memory usage are concerned; little bits of code and data are constantly being swapped in from disk. You can run it from a single 1541 drive, but you'll be sorry (remember the days of "Bad or missing COMMAND.COM"?). A 1541 and a 1581 or CMD FD are better, and a CMD HD is a joy to use (and well supported). An even faster solution is to get a RAM expansion unit (REU or geoRAM), and set it up as a RAMdisk using the CONFIGURE program. You can work from the RAMdisk and copy your data back to the "real" disk every so often during your session; the speed is really amazing even without an accelerator like the TurboMaster or SuperCPU. If you are using more than one type of drive without a RAM expander, you will need to have a copy of CONFIGURE on every disk that contains the deskTop (see GEOS 2.0 manual, page 27). This is because the disk drivers are normally loaded from CONFIGURE, but if you are using a RAM expander, they are cached there. This is one of the reasons why a RAM expander is strongly recommended to work with GEOS. (If you don't have a real '64 with an REU, the Ultimate 64 implements one of up to 16M. There is also a modern clone of the geoRAM made by GGLABS; a one-megabyte version called GRAM/1D can be found on eBay.)

back to the operating systems and programming languages page

Here's what you can find on these pages:

GEOS operating system images GEOS Programming Tools
Alternate Desktops for GEOS Programmer's Reference Guide errata
GEOS device drivers GEOS Programming Tips 'n' Tricks
GEOS applications Source Code for the GEOS kernel
GEOS manuals GEOS fonts article, PDF font catalog
the geoSpecific collection High-Level Programming Languages for GEOS
miscellaneous The Shadow Virus
Todd Elliott source code additional resources

geoCom presentation

geoCom presentation at VCFMW 2018

I gave a talk on geoCom (a BASIC compiler for GEOS) at VCFMW 2018; here are the slides. Follow the geoCom link for the source code.

At VCFMW 2017, I gave a talk on the gopher client for I wrote for GEOS called... (can you guess?) geoGopher. Follow the link for more information.

These are the slides from my "Introduction to GEOS Programming" talk at VCFMW 2015. Here's the demo disk image, which includes the source, executable, and debugger symbol table. You can also view the demo program's source code in your browser (but note that the graphics pasted into the geoWrite source files do not appear):

At VCFMW 2013, I gave an "Introduction to GEOS" talk that you can watch videos of (part 1, part 2). Here are the slides.


Drean GEOS

A visitor to the site from Argentina sent me these
pictures of GEOS 1.2 disks published there by Drean.

more places to find GEOS information

If you'd like to chat about GEOS usage and writing GEOS programs, join us in the #c64friends IRC channel on Libera. I've also started a Google group for questions and answers about GEOS.

A little bit of searching will turn up many GEOS archives on the 'net, including these:

geoSpecific

Another great resource is the geoSpecific collection, which you could spend years exploring. Originally distributed on a CD, it contains over 270 disk images grouped by origin, and has HTML indexes with brief descriptions of what's on them. You can also download the whole thing as either a tarball or a ZIP file (the files are each about 48M).

Note: While I've done my best to fix the few typos and corrupt disk images I've found, there are HTML links pointing to sites that have not existed for untold vigintillions of aeons. If you want to see what those sites looked like, feel free to copy and paste the links into archive.org.

This is the ultimate GEOS collection, and was compiled by Bruce Thomas, who has given his permission for me to post the contents on this site. Among the jewels in this collection are the endless collections of fonts... and Dick Estel's Fontastic newsletters and FontMania! columns. Thanks to Bruce for making this wonderful resource available to all GEOS users!

GEOS font information

Berkeley sold several "FontPack" disks, including the following (see the font page for pictures of the boxes):

geoSpecific includes Dick Estel's article on mega fonts, which explains them in some detail. You can find it here, in geoSpecific's Fontastic newsletter collection (it's on page 18 of the PDF). Dick's work with GEOS fonts inspired me to do some research, which I've summarized in an article about how GEOS fonts work. I've also re-created Dick's Font Resource Directory (on a PC from disk images); it includes all the fonts in my collection (over 1000).

The "GEOS Scans" collection

The provenance of this collection is uncertain, but from the plaintext files on some disks, it looks as though much of it came from QuantumLink. There are over a hundred disk images in this ZIP file, containing all sorts of software, including fonts, geoPaint images, and more. Much of it is duplicated elsewhere, but the GEOS aficionado will find much of interest here.

Caveat utilitor!  Some of these disk images are corrupt; in fact I've used some as test subjects for the image analysis methods in my Java disk image library.


GEOS manual

GEOS operating system images

Here's a bootable D64 image of GEOS, made with my modification of a utility by Paul Bosacki. It must be booted from device #8, and is configured for a single 1541 drive (although you can change that once it's booted by double-clicking the CONFIGURE icon). Mouse goes in port one (closest to you as you face the computer), or if you don't have a mouse, press Commodore-I (that's I for input) and select the joystick driver. This image will also boot from an SD card in a 1541 Ultimate. The kernel has been patched to fix the extra pixel on one side of the lower-case 'z', and to try and recover to the deskTop on a crash. This image also includes a utility (QUIKPIK/QUIKSTASH) to automatically copy files to a RAM drive at boot time if so configured.

If you'd like to try (or explore) original GEOS disks with the copy protection intact, here are G64 images of the system disk and backup disk. GEOS was notorious for its vicious copy protection schemes: see p. 107 of the KrackerJax Trilogy for an understanding of what happens at boot time, and this article by Michael Steil for information about the "Trojan Horse" late-checks.

Here's a D64 boot disk of the 2.0r version of GEOS (for use with a geoRAM or clone). It was made by cracking the kernel and deskTop of a system disk with Maverick, then booting it and snapshotting it with geoSnap. The copy of CONFIGURE on this disk can be used with 1581s and 1581 partitions on CMD hard drives. I've also got a G64 of a GEOS 2.0r backup system disk with the protection intact (I assume it was keyed by the original owner). Here's an article about geoRAM from Compute's Gazette, and here's a brief text file I found with some programming information.

CMD released a GEOS utility disk with their hard drives (which are of course no longer available and fabulously rare even on eBay). This includes a patched version of CONFIGURE that includes disk drivers for the CMD devices. I've also got the CMD RAMLink utilities disk; on the other side, you can also find a copy of gateWay 2.0 (but see below for the 2.51 version).

For those who own the almost impossible to find SuperCPU, try this D64 image, which contains the SuperCPU kernel patches (it's an autoexec). If you have the SuperCPU manual, you can use the original "SuperInstall" program from CMD's SuperCPU utilities disk to make your own.

The 1541 Ultimate works well with any D64 GEOS image.

If you want to run GEOS on a uIEC (or sd2iec), try this bootable D81 image, which contains a cracked copy of GEOS and all the major apps, plus the PostScript programs and a few fonts (both standard and laser). It also contains copies of uIecSwitch 1.2 and geoSnap (see below). The boot files on this image were created with geoSnap. Note that there's actually nothing uIEC-specific about this image. Just make sure you are booting it from device 8.


I've written an autoexec program that will set the GEOS clock from an Ultimate 64 or Ultimate II+ (make sure to get the latest version, as I fixed an AM/PM bug). The disk name is "UltimateTime 1.1", and if you view the info block for the UltimateTime app itself, it will show a permanent name string of "UltimateTimeV1.1".

Just put UltimateTime on your boot disk; you can also run it by double-clicking. Note: make sure the command interface on your Ultimate device is set to "Enabled", and not "Enabled (1.x)" on a 1541 UII+. Here's a disk image with source and executable as well as (GEOS-generated!) Postscript of the source files. I've converted the Postscript to PDF files for your viewing pleasure:


I wrote a utility called uIecSwitch for switching between disk images on a uIEC or sd2iec. The latest version is 1.2, updated in June 2017 with the following features:

Here's a D64 image containing the source, executable, and a symbol table for geoDebugger. I've also included the trimmed symbol and macro files I used to build it. You can also look at the text dumps of the source files in your browser (note that the graphics pasted into the geoWrite source files do not appear):

I wrote an IRC client for GEOS, but it was not a big success. It was written for the RR-Net, a horrible network card that requires running a TCP/IP stack on the Commodore 64, which is madness. I lost a year of my life writing this, and will never touch an RR-Net again as long as I live. But if you enjoy hurting yourself, you can still see the page I made up for it.


If you want to create your own bootable copy of GEOS, you can use the same tool I did, which I based on a utility by Paul Bosacki (it appears to be the same code that creates a gateWay boot disk). It was originally meant to create a patched GEOS snapshot for the Turbo Master/Master Adapter, but I removed the Master Adapter patches, added a GUI, and made it write out a loader in addition to the snapshot. For want of a better name, it's called geoSnap (link to D64 image). The D64 image has the program along with the source code and a geoDebugger symbol table. To use it:

That will leave you with two files: GEOS and TURBOBOOT. Load GEOS with ",8,1" or ",9,1" depending on whether drive A or drive B was active when you ran geoSnap, and GEOS should start right up. Mind the instructions that the program displays; you'll need both the deskTop and CONFIGURE on your shiny new boot disk. There's not much to it, really, although a read through Paul's original code that does the snapshot is very interesting.


gateWay

gateWay 2.51 (click to enlarge)

Alternate Desktops for GEOS

Here's a D64 image with some alternate desktops for GEOS. WormDesk offers a single-column view (no icons), and is set up as an autoexec. QUIK TOP also offers a filename-only view, but shows eight directory pages at once to speed up file operations. I've included its companion program QUIKSTASH, which is an autoexec to copy files to your REU at boot time (use QUIKPIK to select the files that will be copied). DUAL_TOP offers a two-drive filename view and has many options. It's also got a module system, although I only know of one module: the Convert64.MOD file, which adds support for converting GEOS files into the CONVERT format (see the README for details). MiniDesk is a DA (meaning it can be invoked from within applications).

gateWay was CMD's radical replacement for the deskTop, and required creating its own GEOS boot disk with kernel patches. It has a very different interface than the deskTop, but supports all CMD devices (including support for native partitions), as well as including a task switcher. Early versions had a reputation for being buggy, but here is the last released version (gateWay 2.51), which includes support for CMD's FD series floppy drives. I reconstructed the manual in LibreOffice from a geoWrite version of the text, added scans of the original illustrations, then typed in the addendum by hand. Finally, I converted the result to a PDF file for your viewing pleasure. For the tl;dr crowd, here's a bootable disk (boot from a 1541 on device 8). There is some documentation for writing gateWay "documents" (see manual), which was made available as an .SDA file; I've extracted and converted the files and put them on a D64 image (GWDEVPAC). One of the files is an include file for gateWay from which much can be learned. Also, for the adventurous, there's the source code for the unreleased 2.6 version.

TopDesk was the deskTop replacement on the final "official" version of GEOS (2.5), which was only released in Germany (see Bo Zimmerman's FAQ). It shipped with TopDesk 1.2 (screenshot), which featured movable, resizable windows. This D64 image is a bootable copy (all in German). I've also got a copy of TopDesk 3.2 (screenshot), with four-drive support; here are D64s of topDesk 3.2 and the help system that goes with it (all in German).

geoDOS is another interesting German deskTop replacement (screenshot). It allows copying between Commodore and DOS-formatted diskettes with on-the-fly file conversion (among many other features). There's a copy of geoDOS in the geoSpecific collection; I extracted the ZIP files, converted the resulting .CVT files to GEOS files, then replaced the German help files with the ones that Bruce Thomas translated. Here's a D81 image of the result.


GEOS device drivers

This D64 image contains device drivers for GEOS, including input drivers (mouse, light pen, Koala Pad, even the SuperSketch tablet) and a wide variety of printer drivers. There are many more in my collection, so if there's something specific you're looking for, drop me an email (cenbe at protonmail dot com).

This disk (from CMD) appears to have all the BSW printer drivers on it, complete with a geoWrite "READ ME" file detailing their characteristics. It also contains the BSW laser fonts.

CMD print drivers   |  side A
CMD print drivers   |  side B

CMD made a "smart mouse" that had a real-time clock; here is a D64 image of the disk that came with it.


geoPublish screen shot

geoPublish, showing a zoom view of my horoscope

GEOS applications

Here are all of the major apps released by Berkeley Softworks for GEOS. The copy protection has been removed using Maverick (i.e. the serial number check has been defeated).

This geoWrite disk image (see GEOS 2.0 manual) contains:

geoWrite
the Text Manager
desk accessories for switching the font list or the printer from within geoWrite
a utility to combine two geoWrite files into one
a utility to change the version of a geoWrite file
the Text Grabber (import from other formats)
as many cool fonts as would fit

Michael Steil has written a series of articles about geoWrite; he's also got a disassembly in his repo.

Here's a collection of almost 100 GEOS fonts, in D64 images. If you put more than eight fonts on your geoWrite disk, you'll want to grab the geoWrite disk image above, which contains a desk accessory to choose which eight will appear in the menu.

GEOS fonts #1  |  download
GEOS fonts #2  |  download
GEOS fonts #3  |  download
GEOS fonts #4  |  download

I had a request for geoSpell, so here it is in all its glory. The disk image contains geoSpell, geoDictionary, and geoFont.

This disk is labeled "GEOS Font Collection 2", from Comm-Plex Software. It includes Jim Collette's Font Editor 2.5, generally considered to be best of breed. There are also lots of fonts on the disk:

GEOS Font Collection 2  |  side A
GEOS Font Collection 2  |  side B

Here's a D64 image of geoPaint (see GEOS 2.0 manual), with some utilities for image conversion, photo scrap manipulation, etc. geoGIF (see below) is on this disk too.

Here's a D64 containing geoGIF, a utility that can convert .gif files to geoPaint files. I've included a .gif of a photo I took, scaled down and then converted to a geoPaint image.

This D64 contains geoCalc (spreadsheet) and geoChart (charting tools).

This D64 contains geoFile (database), geoMerge (mail merge), and geoDex (a "rolodex" application).

These D64s contain Desk Pack Plus, side A and side B. It includes the Graphics Grabber, Calendar, Icon Editor, geoDex, geoMerge, Photo Manager, and some laser fonts and utilities. There's even a game of Blackjack!

These are D64s of geoPublish (desktop publishing), side A and side B. Between the two sides, you'll find geoPublish and its master page libraries, geoPubLaser, some LW and Mega fonts, the Text Manager, and the Text Grabber (for importing other Commodore word processing formats).

Bruce Thomas created a geoPublish tutorial that came with two 1581 disks: here are D81 images of the first and second disks. Here's the tutorial as a PDF. There's also some interesting geoPublish information in PDFs from Laser Direct, which was a laser printing service from the old days. Here are their info kit and publisher's kit.

Bruce also sent me this GEOS Programs Directory 1990 (PDF) with a list of available programs and where to find them (oh nuts, my Q-Link account doesn't work anymore!). It's useful both to know what's out there and probably to archivists looking for GEOS software that has fallen into obscurity.

Better Working Corp. produced a word processor for GEOS called Word Publisher. Here is the disk: side A contains the program, and the spellcheck index is on side B. Here's the manual (PDF).

Perfect Print was an interesting hack for geoWrite that depended on interpolating printer drivers and special fonts, and produced high-resolution printouts on dot-matrix printers using multiple passes. Here's the manual and its addendum.

PostScript: But the real way to get quality hardcopy from GEOS is to generate PostScript output that can be sent to a laser printer. There's a lot of history behind this, and there have been a lot of different hacks for it over the years, starting with programs to connect an Apple LaserWriter to your Commodore via serial port. But I think the easiest way to do it now is to generate the PostScript file from within GEOS, then copy it over to a PC and deal with it there (print, convert to PDF, or whatever else). Here is the software you need:

Side A contains the programs that will do this; there are two for geoPublish and two for geoWrite. geoPublsrDskA will generate PostScript on drive A from a geoPublish file, and geoPublsrDiskB will do the same on drive B. geoLasrDiskA will generate PostScript on drive A from a geoWrite file, and geoLasrDiskB will do the same on drive B. They should be on the same drive as your geoPublish or geoWrite file. These images also contain "LW" (laser writer) fonts, which you need to use in your documents to get the proper resolution (you must also use the most recent versions of geoPublish and geoWrite). There are additional laser fonts on side B.

The output will be a Commodore SEQ file (not a GEOS file), so you can use whatever utility you like to get the file onto your PC (the name will start with "PS."). What I do is to use WCOPY+ to get the file to a CMD FD, then mount that in a USB floppy drive on a Linux box. You could also make a D64 and extract the file on the PC (or whatever other technique you might come up with).

Here's an example (Postscript file): it's the "geoTips" document I handed out laser-printed copies of at ECCC 2013, which was made with geoPublish. In case you have trouble viewing PostScript files, I've converted it to a PDF file. Recently, I also ran across this newsletter created by Allan Bairstow as part of the British Commodore Scene magazine, which uses more advanced techniques.

I've also got Dale Sidebottom's Laser Lovers Disk.

geoCope is an assembler for GEOS. I haven't used it, so I can't give any advice, although Corey pointed me to a review in the Transactor. I have two copies, both of which appear to be version 1.3: here's one, and here's the other.

geoWizard is a very interesting utility by Jim Collette (in fact, he referred to it as "The Ultimate GEOS Utility", although I'd call it "the most interesting GEOS program in the world..."). You thought GEOS wasn't a multi-tasking operating system, right? Well it isn't... but with geoWizard, you can "freeze" the current state of the machine into the REU and start another application; when it's terminated, the first is restored where you left off. See the documentation on the disk image for full details. geoWizard was later integrated into gateWay.

geoShell is a command-line interface for GEOS; these are D64 images of version 2.2 (side A,  side B), and here's the manual.
There's also a developer's package explaining how to write geoShell commands: here's the manual, and here are the files.
These are some new commands (the "geoShell Extras"); the disk is marked "LACC PD LIBRARY" (one side only), and here's the manual.
This appears to be another version of the same disk (side A,  side B).

Susan Lamb geoWorld ad

geoWorld ad for Susan Lamb's "Graphic Idea Files" disks (click to enlarge)

These are some software collections I've picked up at the shows in recent years.

Here's the "Graphic Idea Files" collection from Susan Lamb (see geoWorld ad at right):

CAVEAT UTILITOR! At least one of these images (disk 7) is corrupt! I'll do a proper analysis and repair (or replacement with different images) as time permits.

This D64 image contains archiving utilities for GEOS, including Convert 2.5, geoBEAP 2.1, geoPack, and GeoConvertE98f. I made up a D64 with the geoBEAP source when I was studying the Convert file format (which can be found on Peter Scheppers' site).

geoBEAP (Bo's Excellent Archive Program) relies on a massive project, also by Bo Zimmerman, to create a library of GEOS routines for programmers. The project is called geoModules, and after extracting and converting the Lynx files available on his site for my own use (with geoBEAP, of course), I took the liberty of making the resulting files available here on D64s to make them easier for GEOS programmers who prefer to work from disk images. Make sure to visit the link to his site for documentation. As the saying goes, "Bo knows GEOS!"

Here's a grab bag of GEOS utilities in a D81 image. Have a lot of fun!

Here's the first of the "Red Storm" disks by Joe Buckley (side A and side B). Anyone know where I can find more of these?

I've removed the geoWorld disks that I had here, since they're in the geoSpecific collection.


Programmer's Reference Guide cover
geoProgrammer cover

Hitchhiker's Guide cover
geoCom manual

GEOS manuals

Here's an entire set of GEOS manuals that DLH scanned.


GEOS Programming Tools

I've got a page of GEOS programming tips 'n' tricks that I've collected over the years.

This D64 contains geoProgrammer (geoAssembler, geoLinker, and geoDebugger), along with a few utilities (sector editor, header and icon editors, onscreen ruler, fast file copier). Note that this is the 1.1 version. The 1.0 versions of geoAssembler and geoLinker are known to be buggy: in particular, that version of geoLinker will not correctly assemble a VLIR application, and will sometimes trash the disk as well!

This is the geoProgrammer manual (all 439 pages of it, scanned by DLH). It includes sections on the assembler, linkage editor, and debugger. Here is a handy PDF list of geoDebugger commands from the manual.

Here's a D64 of the sample apps that came with geoProgrammer (source code only). This disk also contains the symbol file (geosSym) and the macro file (geosMac).

Several disassemblers have recently come to light; or rather, their proper versions have. On this disk image you will find:

If anyone has any information on the ancient history behind the hacked versions of these programs, please email me using the link at the top of this page.

A geoProgrammer sample program was also published in the October 1988 issue of Compute!'s Gazette (available on Bombjack). There's a review of geoProgrammer on page 59, and the sample program is on page 76; Bruce Thomas has typed in the source and provided the icons as well. This prompted a lively discussion, which I've summarized on my tips 'n' tricks page.

Berkeley was working on a 2.0 version of geoProgrammer, but it was never released. geoDebugger 2.0, though (according to the beta tester notes), was ready to go, and Jim Collette uploaded it to Q-Link and GEnie. Here's a D64 image containing his SFX and the two files it contained. (To create them, you'd have to LOAD and RUN the SFX from BASIC, then convert the two extracted files to GEOS files.)

Here is the official GEOS Programmer's Reference Guide, complete with errata sheets, as published by Berkeley Softworks (scan and OCR by DLH). I have my own set of errata, only a couple of which are in the sheets published by Berkeley.

As above; Italian version (includes additional information).

Here is Alexander Boyce's GEOS Programmer's Reference Guide (text file), a commentary on the GEOS kernel routines that was based on his disassembly of the operating system. This is the version revised by Bo Zimmerman, and replaces Boyce's labels with the official ones from the Berkeley version. Note the following errors in the geoWrite file format description:

And here is the legendary Hitchhiker's Guide To GEOS (all 568 pages of it), scanned from a photocopy of my precious original by DLH. HHGG is the working version of a never-published book by Berkeley Softworks. Many pages have edit marks on them, and a few are even stamped "CONFIDENTIAL". This is the ultimate guide to GEOS programming, and includes late additions to the API not present in the above two books (including the REU APIs), as well as information on Apple GEOS. Note: it looks like there are a couple of pages missing from DLH's scan: here are two missing APIs: CopyString and CRC.

High-Level Programming Languages for GEOS

There were a few attempts at creating interpreters or compilers for high-level languages in GEOS, but it was a difficult task at best because of the memory constraints. Perhaps the best-known was geoBasic, which was picked up from Berkeley Softworks in an incomplete state and released by RUN magazine. Although it's very interesting and shows a lot of promise, it has enough bugs to make it essentially unusable. (Note: there is a patch for it, but I haven't tried it. Caveat utilitor.)

cnc screenshot

geoCom demo program (click to enlarge)

There is also a German product called geoCom by Falk Rehwagen. It's a true compiler (machine-language output) with a BASIC-like syntax. Here's a D81 image of the full version (in German); there's also an English version translated by the authors (this D64 image is the demo version). Here's the full documentation, thanks to Bo Zimmerman who scanned his copy. Thanks, Bo! I've read that the German magazine 64'er had tutorials for geoCom, although I haven't located them. Stefan Haubenthal sent me a link to a series of tutorials in German that may be the same ones: here's a PDF of an English translation that Mr Google helped me with (the code samples haven't been verified yet). For German speakers, the original articles can be found here.

I gave a presentation (PDF) about geoCom at VCFMW 2018 in Chicago; here is the source code for my demo program as text and as a PDF (created from a Postscript file generated by GEOS). And if you want to hack on the demo program (cnc), here's a D64 that includes it, as well as the source (cnc_com) and object definition files (cnc_icons, cnc_constants, cnc_obj).

Abacus also published a BASIC for use with GEOS, called BeckerBASIC. Here is a D64 of the disk, and here is the manual (scanned by DLH).

Did you know that there are two implementations of the Forth programming language for GEOS? One is by Hank Wilkinson and is known as Brian; here are D64 images of side A and side B. There's another one called geoForth, by Nick Vrtis (who also gave us Micro-Lisp).

ISI workstation article

article about an ISI workstation

Source Code for the GEOS kernel

An interesting tidbit from the geoProgrammer manual (at the beginning of chapter 1):

geoProgrammer is a scaled-down version of the UNIX™ based development environment Berkeley Softworks actually uses to develop GEOS programs. In fact, nearly all the functionality of our microPORT system has been preserved in the conversion to the Commodore environment.

This is reinforced by a Q-Link post quoted in geoWorld issue 1:

We develop our code on an ISI UNIX system. This is a lot like a SUN microsystems UNIX box if you are familiar with that product. We use cross-assemblers that we wrote ourselves and we download the assembled code to the C64.

On the right is an article about an ISI workstation (click for full-size). If anyone has more information on this, I'd love to see it (or of course the original GEOS source code).

If you're interested in studying the GEOS source directly, Maciej "YTM/Elysium" Witkowiak undertook a complete disassembly of the GEOS 2.0 kernel, including the 1541, 1571, and 1581 disk drivers, some years ago. Later, he put it up on GitHub. To make it easier to study, I've prepared an alphabetical list of the APIs and their actual addresses (rather than jump table entries) in the disassembly.

In August 2016, Michael Steil posted a revised version of Maciej' disassembly. According to the GitHub page, he "ported the sources to cc65, reconstructed the original code layout, did some more reverse-engineering and cleanups, and modularized the code aggressively." And if you look at recent versions, you'll see some disassembled Wheels code, as well. Here is his blog entry.

Michael also has a disassembly of geoWrite in his GitHub repo.

Paul Murdaugh (best known as the author of Dual Top) has recently made a disassembly of CONFIGURE 2.1. (There's also an older disassembly that came from a site that's no longer available; here's the tarball.)


Miscellaneous

This is a D64 of the GEOS demo disk as distributed by Berkeley. Double click the icon from GEOS to start it. It includes the famous "lobster picture".

Here's something for Star Trek fans: A D64 image of a GEOS disk containing the Organian Peace Treaty as a geoWrite file... in Klingon (tlhIngan Hol). There's actually a Klingon font on this disk; there's also a nice geoPaint image of a Klingon ship.

The creators of GEOS went on to build a PC version of their product variously known as PC/GEOS or GeoWorks Ensemble. In 1990, they released a draft version of a System Software Overview which I ordered a copy of, and I've scanned it to a PDF.


The Shadow Virus

Years ago, I was fascinated by the early computer viruses, and at one point it occurred to me that it might be possible to write a virus for GEOS. So I tried to do it... and succeeded. I've put it here partly to brag about it, and partly because the code shows some interesting (if unorthodox) examples of using the GEOS APIs. Obviously, this is something you want to handle carefully, but this is how the Shadow Virus works:

Given the above, I hope it's unnecessary to point out the following:
Here's the source code, viewable in your browser. I have not provided an executable for obvious reasons; it you want to try it out, you'll have to figure out a way to build it yourself.

back to main Commodore page