While I’m typing this I’m sitting in the train from Cologne to Berlin, on my way to this year’s Vintage Computer Festival Berlin (VCFB). It’s beautiful sunny weather, unlike last year, when an autumn storm turned my train trip into a nightmare.
Like last year, I have brought a little exhibit with me again, this time about GEOS, a graphical user interface for the masses that was very popular in the second half of the 1980s. In addition, I’ve spent the last few weeks collecting my thoughts and pictures about the evolution of wireless networks and mobile data communication in the past decades. I will present the result in a 90 minute talk tomorrow, Saturday, 12 October. The talk will be recorded and perhaps also live streamed in case you are interested. I intend to hold the talk in German but there will surely opportunities in the future to record an English version as well.
Back to my Graphical User Interface exhibit and the thoughts behind it. Back in the 1980s, most computers had a text based user interface. History books tell us that Douglas Engelbart was the first to demonstrate a graphical computing environment during the ‘mother of all demos‘ in 1968, researchers at Xerox Parc picked up from there and drove the development forward by developing the ‘Alto’ in the 1970s, and Apple then developed the Macintosh and released it in the 1980s. And finally, the graphical user interface made it to the PC where it became popular starting with Windows 3.1 and reached a much larger audience in the early 1990s. But there is an important piece of the puzzle missing in this picture which is rarely mentioned:
History books say that Apple brought the Graphical User interface to the masses in the mid 1980s with the Macintosh. While this statement is certainly true, the word ‘masses’ should be set into context. When the Macintosh came out in 1985, it cost US $2495, which is the equivalent of US $5877 in 2018. It might have become somewhat cheaper over time but in the 1980s, only very few people were able to afford a computer for this amount of money. Millions of teenagers like me certainly couldn’t. In the second half of the 1980s when the Macintosh became popular, most teenagers had computers like the Commodore C64 that only cost a fraction of a Macintosh and had a text based user interface. But that all changed when Berkeley Softworks released GEOS, the Graphical Environment Operating System, in 1987 for the C64.
A C64 and a floppy disk drive was all that was needed to run GEOS and do meaningful things with it. It had a great office suite with a fantastic graphical word processor, a spreadsheet program and even a full publishing program. And all in 64 kbytes of memory! So to me and millions of others, it was NOT Apple that brought the GUI to the masses, but Berkeley Softworks with their GEOS Operating System. To me, Brian Dougherty and his team, shown in the picture on the left, are the unsung heroes of the GUI revolution! This whole thing has such a long lasting effect on me that I still think of my C64 and GEOS so fondly 30 years later.
A Small Mac Clone
If you take a closer look at the pictures of the GEOS desktop and GeoWrite on the left you will notice that a lot was copied from the Mac. To fit into the little memory, the OS and applications were programmed in assembly language. Berkeley Softworks also developed and released a GUI based assembler that used the GeoWrite text processor as editor and a text based debugger for developers to produce their own GEOS applications. Third party companies complemented this with basic interpreters and other ways to create GEOS applications. Back then, I wrote a few GEOS programs in Basic and made my first steps into the world of assembly programming. But programming GEOS in assembly language on the C64 was hard and my only sources for information were the GeoAssembler Manual, the GEOS Reference Guide, of which I got a copied version because it was not available in Germany, and a book about programming the 6502 processor. So I didn’t get very far back then.
C64 GEOS Programming on the PC
30 years later, however, I revisited the topic as it’s possible to emulate a C64 on the PC and run GEOS there so it’s much easier to program for the platform this way, being no longer restricted by the original hardware, 64 kbytes of RAM and long code, assemble, link, run, debug cycles. On Linux, and perhaps other platforms, the cc65 cross assembler and compiler is available so one can program the C64 in either assembly or C on the PC and then cross-assemble/compile and run the resulting binary in the emulator. For novice C64 programmers that require a lot of trial and error iterations it makes the process very smooth. The cc65 package that can be installed from the Debian repositories supports many 6502 based platforms, including, of course, the C64, and there’s also a rich library to program for GEOS and to create the required binary files with desktop icons and all. To understand the libraries and demo code, some background in GEOS programming is required which is easy to acquire these days with searchable PDFs of the original GEOS Programmer’s Reference Manual and other great material available on the Internet.
So what I will show at this year’s VCFB is GEOS, the great word processing and spreadsheet applications running on a real C64 and a demo program of mine, written in C on a PC and cross compiled for GEOS. Also, I will show how I’ve set-up my programming environment on Ubuntu Linux and how one can interate through the code, compile, run, debug cycle on the PC with a C64 emulator running GEOS inside. For me the perfect combination of my interest in programming, computing history in general and my personal computing history, all in one project!
(*) Picture of the GEOS development team from ’64er Magazin’, 5/1987, page 158, available at archive.org.