Quantcast
Channel: camen design · c64

GEOS: The Graphical Environment Operating System

$
0
0

GEOS: The Graphical Environment Operating System

  1. A Quick History of GEOS
  2. An Introduction to GEOS
    1. What Role Does GEOS Serve?
    2. Why Review GEOS?
    3. How Is GEOS ‘Alternative’?
    4. Hardware Requirements
    5. How to Get GEOS
    6. Booting GEOS
    7. The deskTop
  3. Configuring GEOS
    1. Hardware
    2. User Interface Customisation
  4. Productivity
    1. geoWrite
    2. A Cautionary Tale
    3. The Real Deal
    4. Other Apps
  5. Modernising GEOS
  6. Where Did GEOS Go?
    1. Geoworks
    2. New Deal Inc.
    3. Breadbox Ensemble
    4. Airset
  7. The O.S. That Could Have Been
  8. Cited Sources and References

This article was originally written for, and published by osnews.com as part of an “alternative operating system contest” where it won first prize, and made the front page of Digg.

This is an improved version based on the original text and layout instead of the heavy alterations to layout made by osnews to fit within their content management system.


About the Author

Kroc Camen started programming at the age of 7 on a Commodore 64 home computer. The first thing he typed into a computer was Hello. It responded cheerfully with Syntax Error. Ever since then he has been searching for emotion in computers in a variety of operating systems spanning a brief 15 years. From the O.S. you are about to see today, to all the versions of Windows, RISC OS, Amiga OS and recently Mac OS X.

Yet one thing hasn’t changed despite the difference in computing power over these years. Computers still have Syntax Errors. Is human emotion garbage, if garbage in equals garbage out? The quality of an operating system is down to the love and emotion put into it by the designers & programmers.

An Introduction to This Article

As we take time to look at the grand variety of operating systems available, it shows us that there is no one right way to ‘do it’. With hardware already a commodity, the way we interact with our computers is taken as a standard, and a given best-practice of design. The joy of alternative operating systems is the variety of Computer ↔ Human interface models available.

Even now, the modern Operating System is designed from the perspective of the engineer. Whilst actual human guinea-pig testing is done on new interfaces, it still does not make up the bulk of the design process. User involvement in design is almost an after-thought.

What we’ve come to accept as the standard way of interacting with a computer was cemented in the early days by the extremely knowledgeable and technical system engineers of the day, through a process of creating:

  1. What they felt was right
  2. What the limited hardware was capable of

So, for my article, I have decided to focus on an operating system born in the early days of consumer-available ‘WIMP’ interfaces, on extremely restrictive hardware.

It is my belief that the restraint of hardware is the true muse of the software engineer.
Good software does not come from being given unlimited resources; just take a look at the hardware requirements for modern PC games, for graphics that were reproducible (until recently) on a 300 MHz, 4 MBV-RAM Playstation 2.

A Quick History of GEOS

The history surrounding GEOS and its implementation within hardware restraints unimaginable nowadays makes for the most interesting parts of the O.S., rather than just the GUI itself. Below is a brief history of the operating system up to its heyday, where we’ll then get into usage, screenshots and technical details :)

This history has been carefully gathered and researched through actual GEOS manuals, cited sources and websites.

When you think of the history of our modern day operating systems, they are either the works of individuals and volunteers based on technical ability and software beliefs, or the work of large corporations employing many programmers. Rarely is the history of an operating system based in the vibrant gaming era of the 1980s.

The Graphical Environment Operating System was released in 1986, created by Berkeley Softworks: a small company start-up by serial entrepreneur Brian Dougherty. GEOS is a classic Mac-like GUI running on Commodore 64 / 128 hardware, then later the Apple Ⅱ, and PC.

Around 1980, Brian turned down a job at IBM to go join the games manufacturer Mattel, then maker of the Intellivision gaming system. Brian helped write games for the system for about a year, before leaving with other engineers to form Imagic, a very successful games company that rivalled Activision, before being wounded in the games industry crash of 1983. Whilst Imagic went under in 1986, Brian did not.

Dougherty formed Berkeley Softworks (later Geoworks), who in collaboration with a firm that made batteries, worked on a product for the airlines named “Sky Tray”. The concept was a computer built into the backs of the seats, and Brian and his team would develop the O.S. for it.1

GEOS was coded by Dougherty’s elite team of programmers, who had cut their teeth on the very restricted Atari 2600 and Intellivision games consoles of the time (usually 4 KBROM). However, after the O.S. had been written, airline deregulation mandated that all in-flight extras were to be trimmed down to save weight and fuel, culling the Sky Tray project.1

With all that time put into an O.S., Dougherty looked at the compatible (6502 Microprocessor-based) Commodore 64. A few changes were needed and the O.S. sprang to life on the affordable home computer, complimenting the powerful graphics capabilities of the machine with a GUI.

Even though Berkeley Softworks started out small, with only two salespeople - the new software proved very popular because of low price for the necessary hardware (and of course the capability of the O.S.). This was due in part to the aggressive pricing of the Commodore 64 as a games machine and home computer (With rebates, the C64 was going for as little as $100 at the time). This was in comparison to an atypical PC for $2000 (which required MS-DOS, and another $99 for Windows 1.02) or the venerable “Mac 512K Enhanced” also $2000.3

In 1986, Commodore Business Machines announced the C-Model revision of the Commodore 64 in a new Amiga-like case (dropping the breadbox look), and bundling GEOS in the United States.

At its peak, GEOS was the second most widely used GUI, next to Mac OS, and the third most popular operating system (by units shipped) next to MS-DOS and Mac OS.4

An Introduction to GEOS

What Role Does GEOS Serve?

GEOS is a classic Mac OS like operating system, providing a GUI for performing disk functions and running productivity software. It was targeted at the business user for in-office word processing, as well as the home user for tasks like desktop publishing and keeping records.

The original GEOS is no longer used, having died out in the early 90s due to strong competition from IBM, Microsoft, Apple and new trends in computer hardware. The history of what happened to GEOS and Berkeley Softworks will be covered at the end of this article.

Why Review GEOS?

To give balance and perspective. GEOS managed to offer nearly all the functionality of the original Mac in a 1 MHz computer with 64 Kilobytes of RAM. It also wasn’t an operating system written to run on a generic ×86 chip on a moving hardware platform. It was written using absolute immense knowledge of the hardware and the tricks one could use to maximise speed. The closest thing to GEOS in this modern era is MenuetOS, written entirely in ×86 assembly code.

GEOS came at a time before the World Wide Web, before home computers were PCs, before mass storage that you could afford, and long before Bill Gates and Windows were №1.

GEOS did not pioneer the GUI; most of its features were already present in the larger operating systems of the day, like the classic Mac (albeit, not Windows). What GEOS did show is that cheap, low-power commodity hardware and simple office productivity software worked. You did not need a $2000 machine to type a simple letter and print it. This gave some sense of perspective in the heady “Golden Age of Computing” of the ’80s and even now, as some alternative OSes struggle to port bloated software from other platforms.

Many operating systems can claim all sorts of things, and in-fight over who invented what- first. GEOS helped drive the proliferation of the newfangled GUI concept to regular users without the need for the famous Apple Hype Machine (likely one reason why GEOS is now all but forgotten).

GEOS was able to introduce home users to Point & Click, Cut / Copy / Paste, WYSIWYG Word Processing and what you expect from a GUI without having to afford an expensive Mac or PC with Windows. Before GEOS, the home user had to go to work to even see a GUI.

Then there was GEOS on the PC (more about this at the end of the article), which had the “Start Menu” concept two and a half years before Windows, and a PDF-like user interface model 10 years before Mac OS X ;)

How Is GEOS ‘Alternative’?

When we speak of operating systems, the word ‘alternative’ is not quite as it is from the dictionary. Mac OS X is an alternative to Windows just as much as Windows is an alternative to OS X. It is simply one choice over the other. But with operating systems, ‘alternative’ has come to mean ‘niche’, ‘minority’ and ‘hobby’. How can GEOS be ‘alternative’, if it was at one time more popular than Windows?

Operating systems can change over time, even change purpose. OS/2 and BeOS are considered alternative, despite being big important OSes in their day. I believe that the same is of GEOS. At the end of this article, I will cover how GEOS has been retro-fitted by fans to add modern-day functionality, as well as the OS that came after GEOS, extending the life of GEOS well into new millennium. The fact that people still boot GEOS on real Commodore 64 hardware and make real things with them, because they can, certainly defines GEOS a hobby O.S. Because those who run it on real hardware are few and far between, that makes GEOS a minority O.S.; and because GEOS is generally only run by core C64 fans it also makes GEOS a niche O.S. :)

Hardware Requirements

Although GEOS later became available on the Apple Ⅱ and then eventually the PC (more about this later), this article will be covering the Commodore 64 version of GEOS due to free availability and wealth of accessible information. I also own a real GEOS disk set for my Commodore 64 and hope to make use of them in this article.

GEOS ran on any Commodore 64 home computer. Because of the popularity of the Commodore 64 as a games machine, GEOS can also be easily run on most C64 emulators on modern computers. GEOS itself is now available for free download - more details soon.

The Commodore 64

Commodore Business Machines released the Commodore 64 in 1982 at a price of $5955. Designed primarily as a home computer for playing (initially educational) games and business software, its low price and powerful features made it a runaway success. Here follows some technical details of the hardware.

1 MHz 8-Bit MOS Technology 6510 Processor
The 6510 was a 6502-based processor, that which can be found (as variants) in the Atari 2600, NES, Apple Ⅱ & BBC Micro computers. It is a RISC style processor, utilising very few registers (Just A, X, Y& a 256-Byte Stack)
64 Kilobytes RAM (+20K ROM of which 7 KB “Kernal”)
16 Colours in 40 × 25 text mode (320 × 200 resolution)
8 Sprites
MOS 6581 (C64rA,B) / 8580 (C64rC) SID sound chip
Three sound channels (2 MIDI like sound synthesisers, and one White Noise)
‘Datassette’ Tape Drive, later, 1541 Disk Drive
Programs on tape cassette. Later a 5¼″ Disk Drive was released with support for 170 KB per disk.

As you can see, this is a very tight amount of space to fit a full operating system, including user-land apps! The original Mac OS was 400 KB, with 128 KB of RAM to play with.

Expansions

GEOS made good use of the many expansions available for the Commodore 64. As well as supporting two disk drives and many printers, you could also purchase a RAM expansion to add 128, 256 or 512 KB of extra RAM to the system. The biggest upgrade, late in the life of the C64, was the SuperCPU - a 20 MHz upgrade module!

How to Get GEOS

The OSNews Contest Rules state that the O.S. must be available to the public for download or purchase. GEOS is available as a free download, and can actually be purchased, as a set of 5¼″ disks with manuals! I personally own a GEOS 1.5 disk set with manual.

Get an Emulator

In order to run GEOS on your PC or Mac, you will need a Commodore 64 emulator to simulate the hardware. I recommend these emulators for the necessary emulation accuracy needed to run GEOS on PC/Mac.

CCS64 (Windows)
Has 99.9% emulation accuracy and still in active development (for over 10 years). CCS64 can emulate almost every last timing quirk of the real hardware and thus is accurate enough to run GEOS (which does contain some extremely clever hacks that can fool most emulators)

Make sure to enable the mouse by pressing F9 to bring up the menu and navigate to the input section. Also, for accurate disk speed (i.e. slow), go to the “Special” menu and disable “1541 Turbo speed” or GEOS may fail to boot.
Power64 (Mac OS 9 / X)
There are not nearly enough emulators on Mac OS X :(. Power64 is a shareware app that emulates the C64 accurately enough to use GEOS. Whilst Frodo is free it is not accurate enough to run GEOS; it hangs at the boot screen. Power64 has excellent mouse support and is ideal for running GEOS. Although it’s not a universal binary, it runs without flaw under Rosetta on Intel Macs.

The VICE Emulator is also capable of running GEOS on just about every other alternative O.S. available. Configuration is much more complex, and if you are technically inclined you can compile the source code to produce an X11 app for Mac OS X for free.

Download the GEOS Disk Images

GEOS was made available for free download in February 2004 by CMD, makers of modern day Commodore add-ons (like the 20 MHz SuperCPU)—see the Slashdot article.

Instructions on downloading GEOS and getting the disk images available here:
cmdrkey.com/cbm/geos/geos1.html

Follow the I Agree link, and then the first link labelled go here. Download the GEOS 64 1541 boot disks.

Booting GEOS

GEOS requires no installation as the Commodore 64 has no mass storage besides a floppy disk drive, and GEOS comes on floppy disks anyway.

Attach the “GEOS64.d64” disk image to the emulator on drive 8 (the first disk drive on a C64) and then start the emulator. Most emulators will allow you to double click, or “open-with” the ‘.d64’ file with the emulator to attach the disk automatically.

Screenshot of the C64 boot screen

This is the Commodore 64’s normal operating system. A text-mode command-driven system. In normal configuration, the system reserves just 38 KB for writing BASIC programs. The C64’s architecture is incredibly flexible however, and by switching out the ROM shadows in the upper areas of RAM, you could free up almost the entire 64 KB (if you wrote your own I/O drivers)13. GEOS itself ditches a large amount of the default system to fit into the memory available.

Type load"geos",8,1 and press return. Don’t hold shift otherwise you’ll get symbols instead of letters. The C64 had a series of ASCII-like symbols printed underneath each key. When in normal mode, holding Shift and pressing a key would display the symbol, allowing you to draw ASCII art in the C64 character set. On the C64, this character set is known as PETSCII, as in PET-ASCII (The Commodore PET was an earlier education market computer).

The deskTop

You are quickly presented with the GEOS deskTop, the main interface where you’ll do basic disk & file management, configuration and launching programs.

Screnshot of the GEOS “deskTop”

The Commodore 64 supported several video modes. Although the resolution of the C64 was always 320 × 200 in aspect, the way it interpreted the screen data could be changed in a number of ways.

In order to produce the user interface in GEOS, the C64’s high resolution bit-mapped mode was utilised. A full 8 KB of memory had to be reserved to store the monochrome pixel data, where one byte represented the on/off states of 8 pixels. Rather than the screen data being ordered in a continuous stream from the left to right and then down each line, the screen data was split into 40 × 25 characters of 8 × 8 pixels. 8 bytes represented one character, running from top to bottom of the character and then left to right across the screen in characters.

Programmatically this made it difficult to draw diagonal lines unless they aligned with the 8 × 8 characters, but it meant that large block copies of memory were easy to do. It also meant that referencing the right hand side of the screen (whose pixel locations were greater than 255, what one byte allowed) was easy, because technically the screen was only 40 characters wide, each of eight bytes in height.

The downside is that whilst you get full fidelity to draw the letters manually and thus fit in more than 40 letters per line - it was monochrome. The mouse pointer is blue because the mouse is created using the C64’s hardware sprite support. A sprite could freely be moved around without erasing and redrawing the screen contents below. The C64 itself would not be fast enough to handle redrawing screen contents in the bitmap, as the mouse moved.

Although bit-mapped graphics ate 8 KB of RAM, it meant that the programmers could erase the 4 KB of PETSCII graphics from the standard text-mode, and better use these resources for storing the O.S. and freeing enough RAM for any user-land apps to run.

DeskTop Features

Along the top of the screen there is a “command menu”. Just like Mac OS, there is only one menu bar and it displays the menu according to what app is running. Considering that there is no multi tasking at all in GEOS, it makes little difference. The Commodore 64 has a key with the Commodore logo on it - much like the Windows or Apple key on modern keyboards.

The menu strip

The disk note pad is the main window that shows the contents of the current disk. It cannot be moved or resized and doesn’t have scrollbars. Instead, the page curl at the bottom left can be clicked either on the curl to go forward one page, or on the page behind to go back a page (also accessible with the 1-9 keys). You can have up to 18 pages depending on how many files are on the disk.

The disk note pad

There are no file extensions, and no subfolders! The disk contents are a confusing mix of utility applications, key system files and drivers. Whilst files inside of GEOS can have their own icon, normal C64 files from outside GEOS will always show as the “C=64” folder-like icon. Double clicking these instantly exits GEOS and loads the C64 program.

The GEOS boot disk however is not meant to be a place to store your own files, or your productivity apps. With only 170 KB per disk, each productivity app usually comes on a separate floppy disk. Once GEOS is booted you can switch disks to run new applications. When you exit the application you must insert the GEOS boot disk so that it can load the “deskTop” application. If you copy the deskTop application to other disks (or use two disk drives) you can avoid massive amounts of disk swapping.

The single button on the title bar is the close button. It does not close the window entirely, but rather ‘eject’ the disk from the system, leaving the window blank. Clicking on the disk drive symbol on the right of the deskTop will load that disk’s contents.

Moving a file to the border

The “border” (the blank area underneath the disk note pad which holds the current printer and the waste basket) can be used to place up to 8 files off of the disk note pad, so that you can change either pages or disks and move the files to the new location. Clicking an icon selects it in inverted graphics, and then clicking again turns the mouse into a ghost of the file icon, allowing you to move it to the border.

Files in the border

The icons in GEOS are all 24×21 pixels in size. This is because the Commodore 64’s sprites are always 24×21 in size which equates to 3 characters (8 pixels wide) across and almost 3 characters high. Whilst GEOS’s icons are not sprites themselves (they could be of any particular size because they are drawn dot for dot on the bit-mapped screen), 24×21 is used so that the mouse pointer (a sprite) can become a ghosted icon in drag and drop operations.

The reason for falling short of three bytes tall is so that when the 8 supported sprite images of 504 bytes each are counted it adds up to 4032 bytes, leaving 64 bytes in a 4 KB block of RAM to control the positions, visibility, order and colours of the 8 available hardware sprites.

The Commodore 64 also included a programmable Interrupt ReQuest controller (IRQ). Every 1⁄50th of a second, a routine in RAM was called. The programmer could tap into this in order to run instructions before the screen refresh, half way through (or even a few tiny instructions within the time it took for the electron beam to “fly-back” to left hand side of the screen, from the right)13. This gave the programmer the power to redirect the pointer to the sprite data halfway down the screen, in order to produce 16 working hardware sprites. 64 simultaneous hardware sprites have been demonstrated using this method!

Configuring GEOS

Hardware

GEOS must be told which drives you have connected. Double-click on the “CONFIGURE 2.0” icon on the deskTop and you are presented with a simple screen with options for the different types of drives.

CONFIGURE 2.0

Here, two disk drives are attached and a 512 KBRAM expansion. The “shadowed” option appears so that you can use the RAM expansion to facilitate disk copying and speed up GEOS. (Not that this is a problem in an emulator, but the disk drive could be very slow at times). It is a known problem that a hardware bug ended up in the read speed of the disk drive being much slower than it should be6,7. Programmers relied on ‘fast-loaders’, essentially decompression software loaded into the disk drive’s RAM& CPU, to speed things up again.

User Interface Customisation

The application “preference mgr” on the first page of the GEOS boot disk allows you to customise some basic U.I. Settings.

preference mgr

The sliders allow you set mouse acceleration and speed. If you were not the proud owner of a mouse for your C64 (hands up those who had a mouse for their PSX?) you were stuck using a joystick to navigate the U.I.

The C64 has no built in battery and is unable to maintain the time between power resets. On a normal C64 you would have to (if you could be bothered) set the time every boot by selecting the “Options” command menu and selecting “set clock”. The emulator I am using (Power64) has excellent GEOS support and sets the clock for me. If you purchase a FD-2000 floppy disk drive or RAM-Link cart from CMD, you could also add an optional extra to the configuration - a real time clock chip, allowing GEOS to keep accurate time.

Custom icon

Interestingly, GEOS lets you edit the mouse pointer directly in a fashion very similar to how you could change the desktop pattern on the original Mac.

Colour!?

The small squares next to “Border”, “B.Ground”, “F.Ground” and “Mouse” can be clicked to cycle the colours (out of the 16 available) for that element.

If this is supposed to be a monochrome U.I., how is it doing the colour here? As stated before, the mouse (and those sliders) are hardware sprites, composited over the monochrome bitmap data, but the C64 has more tricks up its sleeve.

Though the bitmap data in memory is monochrome, the C64 could set the background and foreground colours to draw the bitmap with. Here as the light grey and dark grey combo of GEOS. In addition to this a 1 KB section of upper memory representing a 40 × 25 character gird let the computer assign changes to the chosen monochrome colours in each 8×8 pixel character.

The Preferences Manager ‘Window’ effectively aligns perfectly within the 40 × 25 grid of characters, so that the colours underneath could be changed using the colour map. The one byte that represents the colour under one of the 8 × 8 pixel characters is divided into two nybbles of 4-bits. Each of these nybbles can store a number from 0–15, representing the 16 available colours, and thus the Foreground and Background colours to use for the graphics in that character square.13

Productivity

geoWrite

Probably the most important application of an operating system is the word processor (and now, arguably the web-browser). Long before GNOME & KDE was GNaming everythinK with odd letters, GEOS was naming their productivity apps with geo-Something.

geoWrite in the disk note pad

geoWrite takes up a dangerously large 35 KB. You are also provided with 7 fonts of decent variety, but Berkeley Softworks also made available an add-on font disk with 53 extra fonts. When you start the app you are presented with a simple dialog. You can also double click on geoWrite documents in the disk note pad and geoWrite will automatically load them.

The geoWrite title dialog

The geoWrite interface is extremely simple. There are no scrollbars, you simply jam your mouse against the top or bottom of the screen and the page scrolls.

The geoWrite interface

At the end of the menu strip is a page with a black rectangle representing the current visible portion of the page on the screen. By clicking the rectangle you can move it to another part of the small page and the view in the main window will jump to the relevant location.

The geoWrite page navigation rectangle

1 MHz is barely enough to redraw an entire screen in under a second, so scrolling is naturally, very slow. Scrolling up the page is far slower than scrolling down. However selecting text is very responsive.

Once some text is selected you can either click the small squares below the ruler to set justification or line spacing, or explore the menus.

The font menu

Not all the fonts come in any size. Each font has a select list of sizes depending on the font and some have only one size. Whilst this may seem a problem it is really down to the very pixellated and low resolution screen. All the fonts are very carefully designed for maximum readability on the screen and on a printed page. If any size were allowed, the pixels would mash together at certain sizes making most letters illegible.

geoWrite’s fonts

Considering the low resolution of the screen, the provided fonts are of superb quality, providing a perfect mix of serif and non-serif fonts with lots of variations on letter widths, curve styles and clarity. For a word processor, this is probably the best set of provided fonts given the hardware, for any word processor. There are enough sans-serif professional fonts that look great at all sizes, as well as a couple of fun fonts for those wanting to experiment. A great lot of care has gone into providing for both the business user who wishes to impress their clients with professional typesetting and the home user who wants to make a fun looking flyer.

geoWrite’s styles

The style menu lets you select between Plain Text, Bold, Italic, Outline, Underline, Superscript and Subscript styles. The interesting Outline option even works on the most complex of fonts. This feature is not seen in any version of Microsoft Word, or any word processor that I’m aware of, outside of the classic Mac and GEOS. (Likely because the transition from bitmap fonts to true type and postscript fonts)

A Cautionary Tale

GEOS, like other alternative operating systems, is dependent on certain hardware. GEOS might not compare with BeOS, RISC OS, or even Amiga OS for features and power, but it is easy to run today on any PC/Mac, and free.

There are also great disadvantages to this as well. Running GEOS on a TFT doesn’t compare to running it on a TV or old monitor. The chroma blurring on the C64’s rather weak RF unit caused the dithered background to look like yellow and white bands going down the screen.

This very problem was used to an advantage in some advanced C64 games, where certain colours could be dithered to create seemingly new colours. Nearly 52 colours could be faked using this method. This of course is not actually ideal in an O.S. where clarity is what’s needed, but it does help to explain the dreary greyness of GEOS, which would look significantly different and softer on a TV.

“Nothing compares to the real deal” is an important adage in any review of an alternative operating system. Whilst those that have not used GEOS first hand, or extensively played the C64 will look at GEOS’s monochrome, low resolution graphics and laugh at how it doesn’t even compare to Windows 3.1; I personally see wonderment in how a 1 MHz computer with such little RAM can do so much.

After-all, most games on the C64 could not afford to use the bit-mapped graphics mode as it was too slow. Thus the great variety and flexibility of geoWrite’s display is completely unseen outside of the most hardcore demo-scene disks.

Putting a disk in to a real C64 and hearing that loud clunking and whirring as 250 bytes per second come down the serial bus is not the same as a little blinking light showing disk activity in an emulator.

The Real Deal

Therefore, I have hooked up my Commodore 64 and booted the real GEOS for you :). Find below a 17 minute guide to the Commodore 64 and GEOS, including geoWrite and geoPaint.

This video is available only in Ogg format. You can download it here and play it using VideoLAN

I hope that’s helped get across the actual responsiveness of the O.S. on the real hardware, and the visual differences caused by using a TV.

I could continue to detail every function of every app in the operating system but I don’t think that will add anything more useful. GEOS is an impressive technical feat, and at least a ‘good-enough’ O.S. considering the hardware and the price. GEOS couldn’t compare to the original Mac OS because of such vast differences in power. (The original mac was 32-bit and with 128 KB of RAM)

Other Apps

A word processor and paint app an operating system do not make. GEOS is very fully featured, it would take far too long to go into great detail over GEOS’s other apps. But what I will do is list them with a basic overview and you can either try them on an emulator, or imagine for yourselves!

geoCalc

geoCalc

geoCalc was the Excel (or rather VisiCalc) of GEOS. The view can be split into two so you can edit two parts of the spreadsheet at the same time as well as supporting a host of functions for calculating data. Due to RAM limitations graphing was handled by a separate program that you could paste your spreadsheet data into.

geoChart

geoChart

geoChart can show that data in impressive charts that can really make that data speak. With text-mode fully out of the window, the data labels always lined up neatly and there were many ways you could present your sales figures.

geoFile

geoFile

A Very MS Access like database application with the ability to design input forms and also mail merge to geoWrite.

geoPublish

geoPublisher

geoPublish is the largest GEOS application I’ve seen. A serious desktop publishing program supporting master pages, text orientation, patterns, shapes, guides and rulers and all the basics. A busy page is very heavy on the little computer so two disk drives and a RAM upgrade is a bear minimum to do any serious work. geoPublish is still being used by the most die-hard GEOS users.

Modernising GEOS

If there’s one thing a Commodore 64 can’t do, it’s nothing.

Thanks to the rather hardcore followers of the C64, various tasks have been performed on a C64 thought impossible, including real time 3D graphics, viewing JPGs, hosting websites and of course - viewing them.

At the same time, supporters of GEOS have improved upon GEOS creating new derivative operating systems. “Wheels” is one such example of this. Wheels is an add-on for GEOS 2.0 that adds multi tasking, support for more hardware (including hard disks and RAM expansions up to 16 MB) and new user interface with multiple movable, resizable windows whilst keeping backwards compatibility with GEOS apps.

Wheels requires at least 128 KBRAM expansion and ideally a 20 MHz upgrade with as much disk space as you can throw at it. Even browsing the Internet is not outside the limits of Wheels, “The Wave” is a browser with hefty requirements but nether-less shows that it can be done.

Where Did GEOS Go?

For an operating system second only to Mac OS, and surpassing Windows, where did it go? How can it be so forgotten now?

GEOS on the Commodore platform faded out for a number of reasons:

The IBM ‘Standard’
The PC platform had a larger capacity for upgrades and peripherals. The Commodore was already largely dated hardware by the time the 90s rolled in. With the growing complexity and power of applications, new hardware was needed - and the PC as a more modular system could grow with new innovations. However, the Commodore 64 / 128 were stuck in time, much like a games console, something that the C64 had become in the end.
Commodore’s bad management
Commodore Business Machines had begun to lose its edge after the heady success of the Commodore 64. After several bad decisions, the company collapsed and filed for bankruptcy in 1994. 8
An operating system dependent on the hardware
When GEOS was first created it was meant to be an embedded system (the Sky Tray). It was hand coded to utilise the processor to its maximum. You could not just write it in a high level language and compile for the hardware, it would take up too much RAM and would be slow. The 6502 processor was simple enough that a programmer could hand type the assembly code far better than any machine could. whilst this made the Commodore 64, and the 6502 in it, sing - it also meant that moving to a new processor architecture basically meant a total rewrite. This ruled out the Commodore 64 / 128’s successor - the Amiga, which used a different processor architecture.

GEOS was not entirely out of the game though; the 6502 processor was being used in several other products at the time, and additional ports of GEOS were made. Most notably, on Apple’s popular home computer the Apple Ⅱ in 1988. 9

Geoworks

At the start of the 90s, Berkeley Softworks became Geoworks, and with the new name—a whole new strategy and a new O.S.

Geoworks moved into Microsoft territory by creating a PC based operating system to compete with Windows. However, in GEOS fashion, “Geoworks Ensemble” (known internally as PC/GEOS) was leaner, meaner and faster than Windows 3.0 on the same hardware. Geoworks Ensemble would run nicely on a 386 or 486 PC that would not normally be powerful enough to run Windows 95.

Bill Gates called Brian Dougherty to discuss buying Geoworks and moving the developers to Seattle to incorporate some of the innovations in PC/GEOS into Windows. PC/GEOS had the Start Menu concept a full 2½ years before Microsoft. The developers were not interested in moving, and the lead VC advised against it.14

He Bill Gates was actually very charming. Ballmer was the hammer. I met with Bill and several of the engineers on the Windows development team first, it turns out that several of those engineers were in another small Berkeley company with Nathan Myhrvold that Microsoft had acquired earlier. They were complimentary of what we had done and talked about joining forces to work on the next version of Windows. I should have listened to them, especially considering how MS stock appreciated from 1989 on.

Ballmer was the bad cop, he came in and said, «Look if you don’t sell or license to us, we really have to crush you, we can’t afford to have a competing PC operating system». I don’t think he was trying to be mean or intimidating; it was just matter of fact. As I look back on it, if I were in his or Gates shoes I would have had the same attitude. The PC OS standard was a winner-take-all sweepstakes with billions of dollars hanging in the balance, the world doesn’t really want to have to write software for multiple OSes.

A lot of people vanquished by Microsoft cry about their unfair business practices, I look at it differently; they were there first and fought tooth and nail to defend their business. I’d have done the same in their place.14

Brian Dougherty

PC/GEOS was a full pre-emptive multi-tasking, multi-threaded operating system (yes, in 1990!). It had a postscript-like imaging model, complete with outline font technology and separate rotation, translation & scaling matrices for both the application and the user interface.14 (a leaf from Mac OS X’s book; 10 years before)

Brian Dougherty describes PC/GEOS’s user interface:-

The object oriented flexible user interface technology in PC GEOS is to this day the most sophisticated U.I. technology ever built into an OS. The team at Sun that developed Java studied it and stole some of the concepts but in my opinion did not achieve the same level of sophistication.

Applications in PC GEOS contained a generic tree of objects describing the user interface features the app required with the ability to provide hints for how to realize those elements. The operating system then had a specific user interface library that would map those generic UI objects to specific UI elements like menus or dialog boxes.

The same binary of an application could be made to run under an entirely different look and feel. For example, at one point we wrote a Mac UI that turned a PC running GEOS into a machine that was almost indistinguishable from a Mac. You could go to preferences and select either the Mac UI or the Motif UI (Windows-like) and the system would restart and all of the applications would come up under the look and feel you selected. You almost have to see this live to believe how cool it was.

We actually got into extensive discussions with Apple about developing a low cost notebook that would run GEOS with the Mac UI. It got killed by the hardware group doing Mac notebooks, but it went all the way to a board meeting we attended with Scully et al before it died. 14

Brian Dougherty

The original GEOS still continued its life through licensing the O.S. to mobile phone and PDA manufacturers, appearing on early PDA devices like the Nokia Communicator 9000 & 9110 10,11. This provided users with the power of the GEOS user interface (and geoCalc) on the emerging hardware.

Whilst Geoworks Ensemble is a newer O.S. than GEOS, I am reviewing the original Commodore 64 version because I have much more experience with it, and I feel that the first version is an important factor in explaining where GEOS went later on in life. For this reason, I won’t be going into any detail about how Geoworks Ensemble functions in this article. I leave below a couple of links where you can find some more information about this system:

New Deal Inc.

This company took over development of PC/GEOS, naming it “NewDeal Office” in 1996 to compete in the education space with Microsoft. NewDeal Office required far less hardware resources than Windows 95, suiting older equipment perfectly. The last version was NewDeal Office 2000 before New Deal Inc. went under and PC/GEOS passed hands once more.

Breadbox Ensemble

PC/GEOS returned again in 2002, after Breadbox Computer Company LLC took up the O.S., finally licensing all the rights to GEOS in 2003. 12

Geoworks were eventually beaten out of the market, disappearing from the map around 2004.

Airset

Geoworks was not the end of the line; in 2003 Airena was formed to produce products for managing information with mobile phones. With some of the GEOS programmers onboard14 their first product “Airset” is a web/java application that lets you manage bookmarks, to do lists, calendars & contacts between a PC and mobile phone.

The O.S. That Could Have Been

Anybody can wax lyrical about “what could have been”, at the end of the day GEOS, both Commodore and PC versions, were genuine technical masterpieces in their own right - involving great skill. They stood true to being an affordable O.S., that got the most power out of the least hardware. GEOS might not be an open-source system but just because it’s commercial, that does not negate the clear love for engineering that went into it.

Sure GEOS is all but forgotten now, but that doesn’t mean it didn’t contribute to what helped shape computer usage in the 80s and 90s. Considering that even an O.S. as popular as GEOS was can fade away, then there is no accuracy or inaccuracy in waxing lyrical that even Microsoft could be entirely forgotten one day in the far future. These things happen.

I love Commodore/GEOS because it represents something that no longer exists in the computer industry anymore. The Commodore 64’s hardware is (programatically) beautifully designed. It is possible for one person to know the entirety of the machine, every function, every chip, every quirk. This gave the individual the power to create almost without limits, as shown by the continual modern day upgrades of the C64 and the popular demo and music scene. Today’s hardware is just too complex to fully understand the whole system. Only a small percentage of the PC’s actual power is ever used because of a rapidly moving platform that solves problems by throwing more hardware in.

Now It’s Your Choice

Alternative operating systems exist because people continue to see value in their choice of what makes a better interface. Because Windows is so prevalent, and frankly ‘good enough’ but not great as a whole, this only livens the world of alternative operating systems. Pretty much all alternative OSes do something different or better than Windows, something that gives them value and worth to their users.

Be it the Amiga WorkBench, BeOS Tracker, SkyOS’s Viewer or GEOS’s low requirements and killer apps of the day; this review has been written to only provide insight into one more ‘alternative’ system and not proclaim any religious software / U.I. / kernel beliefs. I hope that this article has been interesting, insightful and entertaining and I thank you for reading it. I only hope that you’ve been able to enjoy it from the comfort of your own chosen operating system ;)


Special Thanks

I would like to thank the following individuals and groups for their input on this article:

  • Brian Dougherty - founder, Berkely Softworks / Geoworks,
    for producing GEOS, reading this article & responding to my e-mails
  • Roland Lieger, creator of the Power64 emulator on the Mac platform,
    which was used to record the screenshots in this article
  • Google Video, for their hosting
  • Maurice Randall & Click Here Software Co. / CMD,
    for making GEOS available for free

Cited Sources and References

  1. bizjournals.com/entrepreneur/2005/06/23/1.html?page=1
    Biz Journal’s Article/Interview about Brian Dougherty (article incorrectly states—for simplicity—that Berkeley softworks was called “Geoworks Corp.” at formation. The Geoworks name was not adopted until the 90s)
  2. guidebookgallery.org/ads/magazines/windows/win10-powerwindows-8
    Advert for Microsoft Windows 1.0 in 1986
  3. oldcomputers.net/macintosh.html
    A brief history of the Macintosh
  4. en.wikipedia.org/wiki/GEOS_%288-bit_operating_system%29
    The Wikipedia Article on GEOS (could do with some love)
  5. islandnet.com/~kpolsson/c64hist/index.htm
    Chronology of the Commodore 64
  6. en.wikipedia.org/wiki/Commodore_1541
    The Wikipedia Article on the Commodore 1541 5¼″ Floppy Disk Drive
  7. binarydinosaurs.co.uk/Museum/Commodore/c64/c64notes.php
    Jim Brain discusses the hardware bug that resulted in the very slow disk access times of the 1541
  8. en.wikipedia.org/wiki/Commodore_Business_Machines
    The Wikipedia entry on Commodore Business Machines
  9. guidebookgallery.org/timelines/geos
    GUIdebook Gallery’s GEOS timeline
  10. en.wikipedia.org/wiki/GEOS_%2816-bit_operating_system%29
    The Wikipedia article on Geoworks Ensemble, New Deal Inc. and Breadbox
  11. web.archive.org/web/*/http://www.geoworks.com
    The Geoworks website 1996 - 2004 (from the Wayback Machine at archive.org)
  12. breadbox.com/newsdetail.asp?id=40
    News from Breadbox LLC of the licensing of GEOS
  13. Commodore 64 Programmer’s Reference Guide
    Howard W. Sams & Co., Inc. ISBN: 0-672-22056-3
  14. Personal contact with Brian Dougherty via e-mail

Discuss this in the forum


“It’s a Shame the Games Industry Is So Closed; …”

$
0
0

It’s a shame the games industry is so closed; if the Wii was like the C64, it’d have a ‘Programming Channel’ and bedroom-coders would drive the industry forward

Kroc Camen

Discuss this in the forum

““Ready”. …”

$
0
0

Ready. What a beautiful thing for a computer to say. It sums up everything. I’ve only realised today that computers no longer say this.

Kroc Camen

Discuss this in the forum

What’s Missing on the Virtual Console?

$
0
0

What’s Missing on the Virtual Console?

I have a love-hate thing with the Nintendo Wii Virtual Console.
I love it on principle, but hate it in practice. It’s over-priced, unpolished and lacks the right games.

Super Mariokart

(Update: Now available, it only took two years.)

Why didn’t Nintendo release Super Mariokart on the Virtual Console alongside Mariokart Wii for a double-whammy of handling goodness? I saw a SNES + Mariokart bundle at a local game shop going for £45. The demand is immense.

Sonic The Hedgehog (Master System)

(Update: This is now on the U.K. Virtual Console)

Already released in America, but held up here in Europe. This is not the same as Sonic The Hedgehog on the Mega Drive. What the 8-Bit Master System couldn’t do with graphics, it made up with gameplay. The levels are creative and well designed, adding clever additions like the auto-scrolling Bridge level and my personal favourite the vertical waterfall level that (a bit like Super Mario Bros. on the NES) would not allow you to go back; which when climbing a waterfall meant that if you missed a jump, you died – there was no retracing your steps. The Game Gear version of the game however left this facet out as the screen was too small to do the tricky jumping sections.

The only letdown with the game is the lacklustre bosses. The 8-Bit system was just unable to fill the screen in the same way the 16-Bit Mega Drive could.

Screenshot of Sonic The Hedgehog—Sega Master System. Image via mobygames.com/game/sega-master-system/sonic-the-hedgehog/screenshots

The strength and longevity of the 8-Bit systems even meant that it remained commercially viable for some time to release new games on the older Master System as Sonic The Hedgehog was followed up by a number of Master System-specific games that did their own thing, rather than trying to imitate the Mega Drive releases; most notably Sonic 2 and Sonic Chaos. (Both of which of course should be on Virtual Console)

Pokémon

What are you afraid of Nintendo? That somehow Virtual Console sales will prevent people from purchasing DSes?

Love or hate Pokémon, the original games (Pokémon Blue / Red) stand alone as superb RPGs in their own right, before all the Pokémon craze took off. If anything, the over hype / marketing / craze of Pokémon that followed soured the image of the games in some people’s minds.

Much like how Tomb Raider lost the plot when the marketing-men ran with the idea that everybody liked the game solely because of Lara Croft©, when the truth was that the first Tomb Raider was I.M.O. the nearest to perfect game ever created. Ignore what you don’t like about the Pokémon brand, and you will find an RPG that will truly grip you.

That said, I am still of that crowd that swear by the original 151 and refuse to get with the times. Just keep remaking Pokémon Blue every five years, and I’ll be happy, thanks.

Metal Gear Solid Ghost Babel (Gameboy Advance)

Everything that made Metal Gear Solid great, in a Gameboy. Sheer 8-Bit brilliance.

Screenshot of Metal Gear Solid: Ghost Babel. Image via gamespite.net/toastywiki/index.php/Games/MetalGearGhostBabel
Ys (Master System)

(Update: The Turbo Grafx 16 version of Ys Book Ⅰ & Ⅱ is now on the U.K. Virtual Console, but it lacks the difficulty level of the Master System version, and what took me weeks, only takes a few days)

Just the most immensely big RPG for the Master System. Huge. How it was crammed into a Master System cart I will not know. The combat would be considered very weak now, but it struck a balance between Zelda-esque exploration and stat-based battles without being turn-based. Yes, you just “bumped” into each other until HP0, but the immense maze-like world you had to explore and the equipment upgrades made it worth it.

Screenshot of Ys—Sega Master System. Image via //www.mobygames.com/game/sega-master-system/ys/screenshots
Commodore 64 games that matter

There’s about 6’000 games for the Commodore 64. During late 80s the U.K. was the centre of the gaming world, with America having to wait to get games released in Europe first (imagine that!). During those years, you could quite literally code a game in your bedroom and it become a top-selling game overnight. Many of the companies in the industry now came from those days of idea-tolerance. Your game’s hero could be anybody or anything —even if it was ridiculous. You didn’t need millions in venture capital, a strong “brand” and “attitude” just to make an entrance into the market.

Do you honestly think you could get away with “James Pond” now?

Here’s some “missing” C64 games in the Virtual Console from my stand-point: (In no order)


Any other suggestions of your own?
Mail me on the signature link below.

Discuss this in the forum

“Are You Ready?”

$
0
0

“Are You Ready?”

Because despite being so obvious, apparently nobody has thought to do it properly, so I’ve created a simple Commodore 64 boot screen wallpaper in a plethora of screen sizes:

Coverflow view of C64 wallpapers
  • 480×272—Playstation Portable (PSP)
  • 800×480—WGA—Netbook 7″
  • 1024×600—Netbook 9″—2 versions
  • 1024×768—XGA
  • 1280×800—WXGA—2 versions
  • 1280×1024—SXGA—2 versions
  • 1440×900—WXGA—2 versions
  • 1440×960—PowerBook G4—2 versions
  • 1600×1200—UXGA—3 versions
  • 1680×1050—WSXGA—2 versions
  • 1080p
  • 1920×1200—WUGXA—2 versions
  • 2560×1600—30″ Apple Cinema Display—3 versions

  • Download Here

I have not just taken a screenshot and then resized it to each dimension; to keep the chunky pixels perfectly square and even, and avoid aliasing I have instead doubled, tripled, quadrupled &c. the size of the dark blue screen area and filled the border space in to fit the screen size. This way, the C64’s pixels stay perfect and crisp regardless of your resolution. As multiples of the 320×200 screen vary in how they fit into various resolutions some wallpapers are provided in two or three different versions that use different sized pixels.

Secondly every wallpaper is also offered in two different palettes:

The Timmermann and VICE palettes side by side

The Timmermann palette (left) is based on very complex mathematic analysis of the real C64 hardware as documented in “All you ever wanted to know about the colors of the Commodore 64”. This gives an accurate representation of the colours of a C64 as they would be seen on a 1980’s TV. The VICE palette (right) is from the VICE emulator and strikes a balance of accuracy and brightness for modern screens.

Many of the sizes are also offered in Windows XP, Windows 7 and Mac types, which are different as follows:

“WinXP” types
The image is centred based on a 30px Task Bar being at the bottom of the screen. This means that the light blue space at the top of the screen and above the Task Bar is even. This also applies to Windows Vista
“Win7” types
The image is centred based on a 40px Task Bar being at the bottom of the screen.
Mac types
The image is bumped down 22 pixels from the top to account for the global menu bar.

Any suggestions you have for additions to the package are welcome. (Should I do avatars?)
“C64” and “Commodore 64” are the property of Commodore, whoever owns them these days.

Discuss this in the forum

Camen Design: Now With Added Forums

$
0
0

Camen Design: Now With Added Forums

  1. History
  2. Goals
  3. Code

Where I have said before that I do not want comment threads on my website because they promote thoughtlessness, I am not opposed to good old fashioned discussion. For me, e-mail and letting you write on your own preferred websites serves as the right medium for discussion of my articles, it’s a formal relationship whereby I serve you the content and you pass it about.

Now for something completely different:

Camen Design forums, in a Commodore 64 theme
The new Camen Design forums, click image to enter

History

When I started out on the Internet in 1996 it was undergoing a generation shift; usenet, the mainstay of message board systems was eventually brushed aside by the browser wars and the momentum of what became the dot-com bubble. With so many people getting online, and their first experience of the Internet being through content portals such as Compuserve and AOL, a new generation of (much hated) users were exposed to an Internet composed of just the web, rather than the more complicated usenet and IRC (with BBSes before that).

This gave rise to the ‘Forum’, a completely over-engineered hack-job of spaghetti code re-implementing a fraction of the capability of usenet in browsers that were never designed for the task. It worked, though, and it lowered the bar for entry so that everybody could participate. One of the early successors was ezBoard, effectively the GeoCities of forums. By 2005, phpBB and other board software had taken over.

Before Facebook, Twitter and all this ‘social’ junk, the forum was king. It was the way things got done on the Internet and I’ve spent more time in forums than just about anywhere else on the web. Having grown up on a diet of ill-fated forum-based projects, I of course wanted my own. In 2003 I embarked in a massively over-engineered project to build my own website, encompassing all my favourite things. A central database and shared functions was to provide forums for each of the differently themed sections of the website, one of which dedicated to the Commodore 64:

Commodore 64 themed web site
Scrolling marquee and background music? Yeah, that would be 2004

The forums for this were particularly nice because nothing like this had been done before due to the complexity of existing forum software.

Commodore 64 themed Internet forum

The irony of this being that this was possible because Internet Explorer had supported font-embedding since version 4. Firefox was released in November 2004 and rapidly gained traction. I rewrote portions of my site to work with Firefox standards, and the Commodore 64 site was dropped because there was no font-embedding support in Firefox—a limitation that would take another five years for them to fix. Regardless, I never completed my website, having written too much code with no clear sense of direction and purpose.

It was the modern, clean HTML5 iteration of Camen Design that completely turned me around. With the experience of failure before, I set myself the goal to write the most minimal website I could finally complete. Since then I’ve always been striving for the most elegant and straight forward solutions to all problems without all the cruft that is common everywhere I look. I now make my own decisions on what is actually necessary rather than following trends. I couldn’t be a more different programmer than I was before!

Goals

Modern forum software has become so bloated these days that it seems to have lost the goal of facilitating actual discussion. So many features are dedicated to massaging everybody’s bloody ego, it’s a joke. Signatures chock full of images, user ranks and badges, user profile pages, “social networking”. I wouldn’t be having any of this crap.

In creating the forums, I set some primary goals in mind that would help keep the design focused and let me put together something that worked in the least amount of time.

No database
Too much extra code to manage. Each discussion thread is a single file on disk. Want to delete a thread? Delete the file. Want to move a thread? Move the file. No code required.
One format, one file per thread

Each discussion thread is itself an actual RSS feed; i.e.the data is stored as RSS. Since there’s no database there’s no e-mail subscription feature, if you want to follow a thread add it to your RSS reader. That means that there’s no duplication on disk, whereby I have to keep a data store (like JSON) and then cache that out to RSS files when it changes. When you add a post to a thread, your post goes directly into the RSS file meaning that the change is seen instantly, no caching is needed (as the RSS file is static) and no code is needed to manage both data and RSS—they are the same thing.

It’s not as simple code-wise as using JSON, for example, but it’s worth it to not have the same content spread across more than one file.

No session, no login, no registration

Has no purpose other than to facilitate all the ego-features. RSS would serve for getting updates, so e-mail isn’t required. Anyone can sign up for a free / fake e-mail, so it doesn’t prevent abuse or spam.

I do respect that people prefer to stick to a particular name / alias / handle, and it wouldn’t be right to allow anybody to post under any name as they could reuse someone else’s name to cause trouble. For that reason, I have implemented a very simple system of name reservation that allows someone to keep their desired name and prevent others from using it.

When you post or reply on the forums, it asks you for a name and password along with your message. Your chosen name and password form a unique key that prevents others from using that name. You do not have to pre-register in order to post like most forums. The very act of posting forms the ‘registration’. Just simply use the same name and password each time you post in order to re-use that name. You never have to log in through a dedicated login page beforehand every time, and there’s no session and no cookies so the forum never has to bother you about logging in to post. Get your web browser to remember your username and password and you won’t have to enter it again at all!

Users are stored as a text file in a folder. The name of the file is the hash of the user’s name, and in the text file is the hash of the password; neither are stored in clear text.

The user folders, containing two text files

This makes user authentication blindingly simple:

$user = "users/".md5 ("C64:$NAME").".txt";
//create the user, if new
if (!file_exists ($user)) file_put_contents ($user, md5 ("C64:$PASS"));
//does password match?
if (file_get_contents ($user) == md5 ("C64:$PASS")) {
	⋮
}

Thus you can post under your desired name, also reserving it from others, without having to register, login or use JavaScript, a session, or cookies.

This is obviously not a system for preventing spam (confusing the problems of name reservation and spam is bad systems design). I have put in a very basic anti-spam feature via a hidden field but if the spam bots come along then I will probably integrate Akismet, but any suggestions are welcome; they just have to work without a database, JavaScript, sessions, or cookies :P

Focus on discussion

As has been alluded to so far, I’ve cut a lot of crap that is standard in forums these days. There won’t ever be signatures or user pages, crowd-spam and the like. People’s “rank” should be known simply from their participation and generosity—their actual deeds, rather than a label. In essence the forums should let humans be humans.

I’m not against personal expression, I just don’t believe that bling is personality. As the code improves, I’m happy to add bbcode and other means to better express text, you can even draw PETSCII art using unicode and a proper interface for this would be good.

The forum is unique (I believe) by keeping the initial post of a thread at the top and paging the replies so that the discussion can hopefully remain on-topic by always displaying the initial post. I will have to see how this works out, but I think it a good addition.

Code

The prototype for all of this was a programming exercise I set myself called “Few Lines As Possible” (FLAP). I decided to set myself the task to complete something in the most basic fashion to see what could be done. Programming, for programming’s sake. You can view the result of that exercise here (it’s 125 lines long).

Of course, it had absolutely zero security (that I believe to be the fault of language design—why shouldn’t this code be secure by default?) but it showed that it was possible to simplify things a great deal by using files on disk as the data store.

I have put the new forums together faster than just about anything I’ve ever made before. I have purposely forced myself to be untidy and unfussy in implementing it in order to get a basic but functional system out to you quickly and then improving from there rather than my usual habit of keeping things tucked away for years before releasing them.

You can download the code here and view the source on github where continual improvements will be baked into the code.

Many thanks has to go to Style64 for the high quality C64 font that made this possible. (The font I used on the 2004 design didn’t include the PETSCII graphics).

I hope to see you in the forums soon!

Discuss this in the forum

shift_space

$
0
0

Still, 20 years later, backspace if I accidentally do shift+space. On a C64 space was ASCII 32 and shift+space was 192, a different char!

Kroc Camen

Discuss this in the forum

Stuff for Clint

$
0
0

Update: Sorry, due to unforseen circumstances the auction has had to be put on hold and may be resumed at a later date. :(

Stuff for Clint

This is an auction in order to raise money for my Internet-underprivliged friend Clint. I have a few rare / interesting / curious items I would like to sell. Now I could do this via eBay, and probably gain a lot more attention for my items, but ultimately I don’t believe that flocking to the monopoly is always the best option, so we’re going to do this a little differently.

This will be an e-mail auction. Just e-mail me with your bid for an item and you will be included in a BCC with everybody else and mailed with updates. The auction runs from the 1st of September to the 1st of October (12pm GMT).

I will be personally paying for the postage to anywhere in the world, so is not included, nor extra, on top of your bid. You will pay exactly what you say for the item as all proceeds will go directly to Clint. Payment will need to be made via PayPal, though you will not necessarily require a PayPal account (see the Rules for full details on the auction and payment).

Auction Items

Please bid generously, as your money will be going to a good cause.

Shortlist
  1. Advanced Machine Language Book for the Commodore 64
  2. PCW Games Collection for the Commodore 64
  3. Commodore 64 Exposed
  4. Companion to the Commodore 64 + Sixty Programs for the Commodore 64
  5. Elite: Gold Edition
  6. Simons’ BASIC
  7. High Score! The Illlustrated History of Electronic Games
  8. Best of the Super Mario Bros. + The Giant Asterix Omnibus

1. Advanced Machine Language Book for the Commodore 64

This exceptionally rare 1985 programming book for the Commodore 64 is in very good condition. The pages within are pristine and the cardboard binding is slightly worn at the edges with a crease in the front top-right corner, but otherwise in good condition. This is the First Publishing Ltd. UK version 1984, not the more common American edition by Abacus.

Introduction

In this book we will show you how to make use of many the Commodore 64′s special features and capabilities using machine language.

The book is divided into three major sections. The first section concerns the internal representation of numbers on the Commodore 64 and describes in detail how the computer performs calculations and how its math routines can be used from machine language. In addition to the conversion of numbers between the various formats, the main emphasis of this section lies in writing arithmetic functions which can be used from BASIC with the help of the USR function.

The second section deals with a specialty of the machine language: interrupts. After explaining some of the terms, interrupts are discussed in detail. Many sample programs illustrate the variety of uses for interrupt handling. At the close of this section, a machine language program demonstrates how BASIC subroutines can be controlled with interrupts.

The third and final section presents the concept of vectors in both BASIC interpreter and kernal. The individual vectors are described and the procedure for adding your own commands is explained. The implementation of the REPEAT-UNTIL structure is used to demonstrate this.

  • Author: Lothar Englisch
  • Publisher: Data Becker / First Publishing Limited, 1984
  • ISBN: 0-948015-055
  • Size: W:150mm (5.9″) H:210mm (8.3″) D:11mm (0.4″) / 300g (10½ oz)
  • Reserve price: $80
  • Current bid: Sorry, auction postponed!

2. PCW Games Collection for the Commodore 64

A traditional program-listing book providing the source code of 20 games. This is how things were done before we had the internet—you typed in 10 pages of code from a book and hoped you made no typos. This collection is quite good, notable for a number of good board games: Splash!, Omniopoly (a Monopoly clone) and Othello. Splash is particularly interesting a game and plays very well, especially two-player, so much so that I made a PC port of Splash in 2001. (You can run it on a Mac using Wineskin)

Condition of this book is very good, the pages have yellowed around the edges a few millimetres, but the condition of the pages is excellent (no rips). There are some pencil numbers written on the contents page (mine, but I don’t recall why they’re there or what they mean).

  • Author: Jeremy Hammett
  • Publisher: Century Communications Ltd., 1984
  • ISBN: 0-7126-0622-X
  • Size: W:135mm (5.3″) H:214mm (8.5″) D:12mm (0.4″) / 275g (9½ oz)
  • Reserve price: $10
  • Current bid: Sorry, auction postponed!

3. Commodore 64 Exposed

This is a dense, learning / reference guide book that covers the whole spectrum of the Commodore 64. It’s chocked full with a full reference of BASIC commands—including examples, memory maps—including a listing of all of the 64’s RAM/ROM addresses with what each address does, a Kernal routines reference, 6510 opcode reference, an invaluable “Keyboard Graphics and how to get them” legend—essential for typing in game books—and lots more. As a book to both learn from and serve as a reference, it’s invaluable and right up there as a lightweight alternative to the official Commodore 64 Programmer’s Reference Guide.

Quality of this book is okay; the outside carboard cover is scratched a lot, but has not broken through the lamination. The book’s page edge is uneven due to the way this book is bound and the pages have yellowed at the edge but not on the page-face. There will be some pencilling on a few pages from me where this book has had a lot of use.

  • Author: Bruce Bayley
  • Publisher: Beam Software / Melbourne House (Publishers) Ltd., 1984
  • ISBN: 0-86161-133-0
  • Size: W:140mm (5½″) H:210mm (8.2″) D:14mm (½″) / 310g (11 oz)
  • Reserve price: $30
  • Current bid: Sorry, auction postponed!

4. Companion to the Commodore 64 + Sixty Programs for the Commodore 64

I am selling these two books together as they are from the same publisher and are only in okay / poor condition.

The Companion to the Commodore 64

An extremely interesting read for being deeply technical and informative but also written in a loving and characteristic manner.

Rotating sprites

This subject appears to cause a great deal of confusion. There is no hardware on the Commodore 64 to rotate sprites. It has to be done with software, i.e. sprite animation. One day, sprites may well consist of sets of three dimensional data, and it will be possible to not only move them around the screen, but also to view them from any desired distance or perspective. Until then, we have to rely on generating the data for each view in advance, switching the sprite pointers between the data blocks to create the effect of rotation.

As a child, this was very inspiring to think there would be a future where one could easily describe characters and worlds in 3D. I thought Starfox (Starwing in the U.K.) was as good as it was ever going to get.

  • Author: Keith Bowden
  • Publisher: Pan Books Ltd., 1984
  • ISBN: 0-330-28479-7
  • Size: W:152mm (6″) H:233mm (9.1″) D:15mm (½″) / 250g (9 oz)

Sixty Programs for the Commodore 64

This chunky compendium does what it says on the cover. Notable games I enjoyed are Stellar Run which was simple and easy to hack and Fall Guy, an interesting two player game where you must slide walls around to get your guy to fall under gravity to the bottom of the screen. I made a PC port in 2001. The book also includes “Evolution”, a three part program that is almost the exact precursor to Spore containing an amoeba stage, a monkey stage and a ‘global thermo-nuclear war’ stage.

  • Author: Robert Erskine, Humphery Walwyn, Paul Stanley & Michael Bews
  • Publisher: Pan Books Ltd., 1983
  • ISBN: 0-330-28358-8
  • Size: W:152mm (6″) H:233mm (9.1″) D:24mm (1″) / 450g (1 lb)

For both;

  • Reserve price: $10
  • Current bid: Sorry, auction postponed!

5. Elite: Gold Edition

Elite: the genesis of sandbox games, also arguably one of the best games of all time. You are given a basic space ship, some money and set off into a truly vast galaxy full of planets to trade with and space pirates and aliens to fight, trying to survive any way you can. I can remember intense times fighting off Thargoid invaders whilst trying to skim a sun (to replenish energy) without crashing into it. For a modern, faithful, remake see Oolite.

This is the Cassette Tape, Gold Edition of Elite and includes the tape, ‘Quick Key Control Guide’, ‘Space Traders Flight Training Manual’ (64 pages) and The Dark Wheel 48-page novella (sadly I appear to be missing the key overlay and ‘Ship Identification Chart’). I will also include for free a 5¼″ 1541 floppy disk copy of the game I made using an Action Reply cartridge, since even the tape version of the game allows saving and loading of your data to floppy disk.

Sadly, the quality of this is poor. The box is scuffed a lot, and one corner has split open. The internal contents are in better condition overal.

  • Size: W:155mm (6″) H:215mm (8½″) D:28mm (1.1″) / 325g (11½ oz)
  • Reserve price: $20
  • Current bid: Sorry, auction postponed!

6. Simons’ BASIC

Simons’ BASIC (‘sim-ons’, not ‘sy-mons’ as is commonly thought) is one of the best things to come out of Commodore—or more technically accurate: out of a 16 year old David Simons. Simons’ BASIC fills in where the lacklustre Microsoft BASIC v2 left off, by adding 114 new BASIC commands to make all kinds of C64 programming work more productive. Initialising the hi-res display and drawing lines on the C64 required quite some expertise and would be too slow writing software routines from BASIC; machine code was the only viable option. Simons’ BASIC combines the speed of machine code and simplicity of BASIC; it’s nothing more than the “HIRES” command to enter graphics mode and then simple “LINE” commands to draw.

This item is in poor, but working condition. The cartridge is fine, but the manual is bent, scuffed, scratched, stained, ripped, marked and just about anything else you can think of. I have no box, just the manual (apparently rare) and the cart.

  • Size: W:140mm (5½″) H:210mm (8.2″) D:28mm (1.1″) / 200g (7 oz)
  • Reserve price: $20
  • Current bid: Sorry, auction postponed!

7. High Score! the Illlustrated History of Electronic Games

This is a full colour ‘coffee-table’ style book detailing the history of the computer game from the invention of electronic computers in the ’40s to the establishment of gaming as a booming business through the ’70s, 80’s and 90s.

Being from 2002, the book doesn’t go beyond mentioning the original XBox, but is very educational as far as the earlier gaming history is concerned and there’s a lot you will learn about the ’70s and ’80s you didn’t know if you weren’t around (or too young) in those times, especially industry founders and the histories of companies like Activision, Blizzard, Id and EA.

  • Author: Russel Demaria & Johnny L. Wilson
  • Publisher: McGraw-Hill / Osbourne, 2002
  • ISBN: 0-07-222428-2
  • Size: W:255mm (10″) H:202mm (8″) D:20mm (0.8″) / 1.025 Kg (2 lbs 4 oz)
  • Reserve price: $20
  • Current bid: Sorry, auction postponed!

8. Best of the Super Mario Bros. + the Giant Asterix Omnibus

These two hardback comic book collections are being sold together.

The Best of the Super Mario Bros.

A superb collection of Super Mario Bros. comics with the same style of humour as the much loved television show. It is in quite good condtion, however there is written in biro on the first leaf the name / address of the previous owner (I bought this at a car-boot sale in the ’90s), and then some writing on a short quiz at page 3.

  • Author: Nintendo of America, Laura Hitchcock
  • Publisher: The Mallard Press, 1990
  • ISBN: 0-7924-5530-4
  • Size: W:220mm (8.7″) H:283 (11.1″) D:18mm (0.7″) / 725g (9 oz)

The Giant Asterix Omnibus

Six Asteric comics combined into one book, including: Asterix the Gual, Asterix and the Goths, Asterix in Britain, Asterix in Spain, Asterix and the Soothsayer (there is a good telvision adaptation of this) and Asterix in Belgium.

  • Author: Goscinny and Uderzo
  • Publisher: Hodder Dargaud, 1988
  • ISBN: 0-340-49495-6
  • Size: W:223mm (8.7″) H:296 (11.6″) D:20mm (0.7″) / 850g (14 oz)

For both;

  • Reserve price: $10
  • Current bid: Sorry, auction postponed!

Rules

  • The auction will be conducted using US dollars. The prices you bid and pay must be in US dollars. You must bid in whole dollar amounts

  • To place a bid, e-mail me with your bid with the item name as the subject line (you can use the e-mail links under each item to do this for you). I will BCC all other bidders with news of the new highest bid

  • At the end of the auction (1st October 12pm GMT) instructions will be distributed to winning bidders on how to pay. Please wait for these instructions before sending any money. Payment will be made via PayPal’s donation process, so you will not necessarily (depending on country) be required to sign up for a PayPal account. See this page for accepted international payment methods (credit / debit / bank).

    • Once payment is received and cleared, I will post your item to you via a tracked courier.
      Please allow up to 28 days for delivery

    • If payment is not received within two weeks, the item will be offerred to the previous bidder for their bid price

  • Any possible taxes in your country / state related to the transaction are your own responsibility

  • I reserve the right to refuse bids or bidders for any reason

  • The money you commit to pay is given as a gift to Clint V Franklin. The item you receive is in turn a gift from me, Kroc Camen, and is provided as-advertised / seen on this website. No returns or refunds are accepted unless under extreme circumstances, and return delivery costs are your own responsibility

Discuss this in the forum