The Amiga Kickstart and Workbench
Back in 1985 if you had a home computer it tended to boot into a form of BASIC, from which you then typed in a command to drive the cassette or disk drive to load programs. This BASIC was stored in firmware inside the computer (a software program stored in a ROM chip), so there was no need to load it from cassette or disk.
When the 16-bit wave hit, we were presented with more than just faster, more capable technology. This page is dedicated to explaining the Amiga "bootstrap" called Kickstart, and the Workbench software that came with every new Amiga computer.
Most Amiga computers shipped with the "Kickstart" program in ROM, just like the BASIC interpreter used to be in the earlier 8-bit computers, such as the Commodore 64 and Sinclair ZX Spectrum. The purpose of this program was to initialize and check the Amiga hardware and if all was well attempt to boot from a bootable volume (such as a floppy disk). Kickstart formed half of what was termed AmigaOS (Operating System).
The other half of AmigaOS was called "Workbench", and this shipped usually on a bootable floppy disk. The Workbench software version usually matched the same version of Kickstart, and you typically couldn't run a newer version of Workbench with an older version of Kickstart. Workbench provided a graphical interface similar to Microsoft Windows that consisted of a file manager and application launcher. You could of course boot directly into a game or other application without first loading Workbench, simply by inserting the bootable disk and resetting the Amiga.
Kickstart in More detail
The kickstart firmware performed a Power-On Self Test (POST) on all the system's hardware and initialised it, but also consisted of the following:
- Exec - the Amiga's multi-tasking kernel
- Intuition - functionality for GUI, screens, windowing and handling of input/output devices
- Autoconfig - functionality to automatically initialize or boot from compliant expansion hardware
- Floppy disk device driver and file system to read and boot from floppy disk
- DOS library for file access and handling
- AmigaDOS - Command Line Interface (CLI) functionality and a number of core CLI commands
- Graphics library for basic drawing and raster graphics functions using the native Amiga chipset
- Audio device driver for the native Amiga sound hardware
- Device drivers for the Amiga keyboard and mouse/gameports
Kickstart was updated with each Amiga hardware evolution, and eventually required a 1 megabyte ROM chip to house the software:
|Kickstart version||Retailed with Amiga models||Launch date||ROM capacity|
|1.0 - 1.1||Amiga 1000 (on floppy disk)||1985||256 kB|
|1.2||Amiga 500, Amiga 2000||1987||256 kB|
|1.3||Amiga 500, Amiga 2000, Commodore CDTV, Amiga 3000||1988||256 kB|
|1.4||Amiga 3000||1990||512 kB|
|2.0||Amiga 500+, Amiga 600, Amiga 2000, Amiga 3000||1990||512 kB|
|3.0||Amiga 1200, Amiga 4000||1992||512 kB|
|3.1||Amiga 1200, Amiga 4000T||1993||512 kB|
|Amiga CD32||1993||1 MB|
Kickstart 1.3 is the first version to support booting from a hard disk drive.
From AmigaOS release 2.0 onwards Kickstart also contained device drivers to boot from devices on IDE controllers, support for PC Card (PCMCIA) ports and various other hardware built into Amiga models.
The workbench software program was very advanced for its time. Whilst not the first to do so, it made use of a 'trash can' to hold files no longer needed, and also exposed files and their locations as 'folders'. The underlying AmigaOS in combination with Workbench allowed for multiple applications to run completely independently and simultaneously.
The Amiga did not use filename extensions to normally distinguish file types. Instead the Workbench used a separate file of the same name but followed by .info. That was the only file extension Workbench recognized. This file supplied information such as the icon graphic to display, the application to launch with, etc, similar in many ways to a Windows .pif file. Most files were human recognized by name (32 cased characters) or associated icon, or by applications using embedded metadata. The common format containing open metadata was the Interchange File Format which allowed applications to access the known parts of even a completely foreign IFF format file.
Version 1.0 through to Version 1.3 came with the following features:
- Integrated into system ROMs
- Color Desktop 4 colors out a palette of 4096
- Maximum resolution with interlace 640x512 on PAL or 640x400 on NTSC (640x256 and 640x200 without interlace)
- Fully customizable aspect of icons and their position on screen
- Gauge meter to show free space of removable devices
- Two states icons with images to represent quiet and activated state creating a pseudo-animation effect when clicked on
- Two button mouse with double functions. On icons: left mouse click activates icons, right mousebutton activates .info metadata. On desktop: right mousebutton activates Menus
- Busy pointer (sleeping buzzing mouse pointer with a comics ballon saying: "Zzz..." was active during loading/writing disk activities)
- Asynchronous Desktop (could perform operations while system was busy with other operations)
Until AmigaOS 2.0 shipped with its GUI Workbench 2.0 (in 1990, with the Amiga 500+), there was no unified look and feel design standard - application developers had to write their own widgets (both buttons and menus) if they want to enhance standard basic widgets, with Intuition providing minimal support. With Workbench 2.0 gadtools.library was created, which provided standard widget sets, the Amiga User Interface Style Guide, which explained how applications should be laid out for consistency. Intuition was improved with BOOPSI (Basic Object Oriented Programming system for Intuition) which enhanced the system with an object oriented interface with a system of classes in which every class individuate a single widget or describes an interface event. It can be used to program Object Oriented interfaces into Amiga at any level.
Workbench 2.0 also added support for public screens. Instead of the Workbench screen being the only shareable screen, applications could create their own named screens to share with other applications.
Workbench 2.0 introduced AmigaGuide, a simple text-only hypertext markup scheme and browser, for providing online help inside applications. It also introduced Installer, a standard software installation program, driven by a LISP-like scripting language.
Finally, Workbench 2.0 rectified the problem of applications hooking directly into the input-events stream to capture keyboard and mouse movements, sometimes locking up the whole system. Workbench 2.0 provided Commodities, a standard interface for modifying or scanning input events. This included a standard method for specifying global "hotkey" key-sequences, and a Commodities Exchange registry for the user to see what commodities were running.