Kickstart (Amiga)

Kickstart 3.0 ROM chips installed in an Amiga 1200
Kickstart 1.2 floppy disk

Kickstart is the bootstrap firmware of the Amiga computers developed by Commodore International. Its purpose is to initialize the Amiga hardware and core components of AmigaOS and then attempt to boot from a bootable volume, such as a floppy disk. Most Amiga models were shipped with the Kickstart firmware stored on ROM chips.

Versions

[edit]
The default boot screen displayed under Kickstart 1.3

Commodore's AmigaOS was formed of both the Kickstart firmware and a software component provided on disk (with the software portion often termed as Workbench). For most AmigaOS updates the Kickstart version number was matched to the Workbench version number. Confusingly, Commodore also used internal revision numbers for Kickstart chips. For example, there were several Kickstart revisions designated as version 2.0.[1]

Version summary

[edit]
Kickstart version V-number Retailed with Amiga models Launch date ROM capacity Autoconfig present in ROM[2] Early boot menu Boot from PCMCIA and ATA Autodetect memory
<0.4[3] <V24[4] Lorraine, first prototype[5]    1983[6] 64 KB[5] No No No No
0.4[7] V23 V24[4] Amiga "Velvet"[7]    1984[7] 128 KB[7] No No No No
0.6, 0.7, 0.9[8] V26 V27 V29[2] Amiga 1000 Beta 1985 256 KB No No No No
1.0[9] (none)[2] Amiga 1000 1985 256 KB No No No No
1.1[10] V31 (NTSC) / V32 (PAL)[4] Amiga 1000 1985–1986 256 KB No Auto Boot from Hard Disk No No No
1.2[11] V33[4] Amiga 500, Amiga 1000, Amiga 2000 1987 256 KB No Auto Boot from Hard Disk No No No
1.3[12][13][14][15][16][17] V34[4] Amiga 500, Amiga 2000, Commodore CDTV, Amiga 3000 1988 256 KB Yes No No No
1.4[18] V35[4] Amiga 3000 1990 512 KB
2.02.05[19][20][21][22] V36-38[4] Amiga 500+, Amiga 600, Amiga 2000, Amiga 3000, Commodore CDTV-CR 1990 512 KB Yes Yes 2.05+ No
3.0[23] V39[4] Amiga 1200, Amiga 4000 1992 512 KB Yes Yes Yes No
3.1[24] V40[4] Amiga 1200, Amiga 4000T 1993 512 KB Yes Yes Yes Yes
Amiga CD32 1993 1 MB
old 3.2 beta (1996)[25] V43 Amiga Walker, last prototype 1996 1 MB
3.1.4[26] V46 update only 2018 512 KB
3.2 (2020)[27] V47 update only 2020 512 KB

The first Amiga model, the A1000, required that Kickstart 1.x be loaded from floppy disk into a 256 KB section of RAM called the writable control store (WCS). Some A1000 software titles (notably Dragon's Lair) provided an alternative code-base in order to use the extra 256 KB for data. Later Amiga models had Kickstart embedded in a ROM chip, thus improving boot times. Many Amiga 1000 computers were modified to take these chips.

Kickstart was stored in 256 KB ROM chips for releases prior to AmigaOS 2.0. Later releases used 512 KB ROM chips containing additional and improved functionality. The Amiga CD32 featured a 1 MB ROM (Kickstart 3.1) with additional firmware and an integrated file system for CD-ROM.

Early A3000 models were, like the A1000, also shipped with Kickstart on floppy disk, and used a 1.4 BETA ROM as bootstrap. Either Kickstart 1.3 or 2.0 could be extracted to a partition specifically named WB_1.3 or WB_2.x, respectively, and put in DEVS:kickstart, an absolute system location from where the A3000 system will find it at bootstrap and copy its image into RAM. This early A3000 supported both ROM based Kickstarts and disk-based Kickstarts, although not simultaneously. An A3000 configured to use disk-based Kickstart images had the benefit of being able to boot various versions of AmigaOS without additional tools, simply by selecting the appropriate Kickstart image at boot time.

The Commodore CDTV featured additional firmware ROMs which are not technically part of the Amiga Kickstart. The CDTV's original firmware ROMs must be upgraded in order to install a Kickstart version later than 1.3.

AmigaOS 2.1 was a pure software update and did not require matching Kickstart ROM chips. Workbench 2.1 ran on all Kickstart ROMs of the 2.0x family. Later releases of AmigaOS (3.5 and 3.9) were also software only and did not include matching ROM upgrades instead requiring Kickstart 3.1, with ROM-file based Kickstart components replacing those in ROM. Kickstart modules of AmigaOS 4 are stored on the boot disk partition.

Up to Kickstart v2.0 (V36) only 512-byte blocks were supported.[28] Motorola 68040 uses write caches that requires the use of the functions CacheClearU() and CacheControl() to flush cache when program code has been modified. These functions are only available in Kickstart 2.0 or better.[29]

Function

[edit]
The default boot screen displayed under Kickstart 2.0, requesting the user to insert a boot disk

Upon start-up or reset the Kickstart performs a number of diagnostic and system checks and then initializes the Amiga chipset and some core OS components. It will then check for connected boot devices and attempt to boot from the one with the highest boot priority. If no boot device is present a screen will be displayed asking the user to insert a boot disk – typically a floppy disk. Insertion of such a bootable disk (other than workbench-like disk) will result in:

a) a command line interface ("CLI") prompt to operate with ROM-internal and disks commands (including programs, scripts) (if the disk is non-workbench, or empty), or

b) a (basic) point and click UI named "Workbench" if the disk contains at least "loadwb" in the "startup-sequence" script residing inside the "s"-folder on this disk.

c) the disk booting into a customized workbench or an application, keeping the OS "alive" in the background.

d) a game or other application directly starting up, taking over all the hardware resources of this computer by avoiding to establish core Exec multitasking, driver initialization etc.

The Kickstart contains many of the core components of the Amiga's operating system, such as:

  • 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 1.3 is the first version to support booting from a hard disk drive.[30]

From AmigaOS release 2.0 onwards Kickstart also contained device drivers to boot from devices on IDE controllers, support for PC Card ports and various other hardware built into Amiga models.

Diagnostic test

[edit]

At power-on self-test will run from the ROM, this is a short program that can produce a color on the screen corresponding with a fault.

If everything works correctly, the following screen color sequence will be displayed on older Kickstarts:

  • Dark grey – Hardware working and the registers are readable.[31]
  • Light grey – ROM verified.[31]
  • White – Initialization has succeeded and the Amiga is ready to boot.[31]


The following colors indicate a problem:

  • Red – Bad result on Kickstart-ROM test (Checksum error). A small fault in ROM data will cause a checksum error.[32]
  • Green – Bad result on lower part of chip RAM (256 KB). However, this does not always mean the RAM is at fault.[32]
  • Blue – Custom chip problem (Denise, Paula, Agnus) (used by kickstart 3.0 and higher)[32]
  • Yellow – CPU exception occurred, this is a CPU error detection by the processor itself and can be an illegal instruction executed or address bus error – Cause can be a bad CPU or a bad Zorro expansion card.[32] CPU exception happened before the "Guru Meditation" trapping software took over the trapping of exceptions.[31]
  • Purple – Bad Paula on older kickstart Amigas. [32]
  • Light greenCIA problem, not a color produced by the selftest.[33]
  • Light Grey – If it stops at grey the CIA may be defective.[33]
  • White - If it stops at white, the RAM chips that were used may not work well on an A500 mainboard in combination with other "RAM" chips.
  • Black/stripes/glitching – random code (ROMs swapped/ROM garbage) or CIA problem.[33]
  • Black – No video output or CPU not running for some reason.[33]

However, if an Amiga received a colorcode, it does not always mean that the error comes from a hardware fault, red can also happen if a ROM is mapped to fastmem or by ROM-patches from software. For yellow it can be unstable software in memory. Some Amigas can give a short color on screen at power-on which can be the last background color. Keep in mind that bad activity on the databus that should not be there can have effect on other chips on the bus.

The keyboard LED uses blink codes that come from the keyboard controller chip where:

  • One blink means the keyboard ROM has a checksum error.[33]
  • Two blinks means keyboard RAM failure.[33]
  • Three blinks means watchdog timer failure.[33]
  • When the Caps Lock key is repeatedly pressed approx. 10 times, and the Caps Lock LED is not turning on and off each time it is pressed, the CPU is not reading out key presses and mostly indicate a CPU crash. The CIA-A serial register is used and a CIA interrupt can be used to pickup key presses from the keyboard buffer. If the Caps Lock LED sticks on or off, the CPU is probably not servicing CIA interrupt requests.[33]

Usage

[edit]

In general, to run a specific Workbench version, it is generally required to run a Kickstart with a corresponding or greater version number.

It is not generally possible to boot directly into the Workbench windowing environment from Kickstart alone. Though much of the functionality required for Workbench is contained in Kickstart, as some disk-based components are needed to launch it.

From release 2.0 onwards it is possible to enter a boot menu by holding down both mouse buttons at power on or reset. This allows the user to choose a boot device, set parameters for backwards compatibility and examine Autoconfig hardware.

With third-party software, it is possible to use an alternate Kickstart to the version stored in the embedded ROM chip. Such software allows a Kickstart version to be loaded from file into RAM – for example Kickstart 1.3 may be loaded in order to run old software incompatible with Kickstart 2.0 or later. Several third-party vendors produced hardware Kickstart switchers (dual-boot systems) in the form of socket doublers in order to allow two ROM chips to plug into a single motherboard socket with some mechanism to switch between them. These became popular with users who had problems with later Kickstart versions causing incompatibility with earlier software titles.

An MMU-enabled Amiga is able to "shadow" Kickstart from the embedded ROM chip (or from file) into RAM and pass control to it at start-up. This is often preferable as RAM access times are significantly faster than ROM, particularly on expanded systems. At subsequent resets the copy of Kickstart is re-used, reducing boot time and allowing faster access and execution of Kickstart functionality. Similar shadowing functions were also developed for some devices without MMU hardware.

References

[edit]
  1. ^ "The Big Book of Amiga Hardware - Custom Chips: Kickstart".
  2. ^ a b c "Kickstart Roms Explained". Classic Amiga Wiki.
  3. ^ "Version".
  4. ^ a b c d e f g h i "Mysterious Ways - How to Code the Amiga - Important Kickstart Differences on Amiga". mways.co.uk. Archived from the original on 25 July 2014. Retrieved 2013-06-09.
  5. ^ a b "Amiga Lorraine". amigahistory.co.uk. 2007-06-10. Archived from the original on 2016-10-23. Retrieved 2013-06-09.
  6. ^ "The History of the Amiga". amigahistory.co.uk. 2007-06-10. Retrieved 2013-06-09.
  7. ^ a b c d "Amiga 1000 Developer 'VELVET'". Stefan Egger. 2015–2016. Retrieved 2016-07-30.[dead link]
  8. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Beta 0.6, 0.7, 0.9".
  9. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 1.0".
  10. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 1.1".
  11. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 1.2".
  12. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 1.3".
  13. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 1.3.1".
  14. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 1.3.2".
  15. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 1.3.3".
  16. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 1.3.4".
  17. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 1.3/2024".
  18. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Beta 1.4".
  19. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Beta 2.0x".
  20. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 2.0".
  21. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 2.04".
  22. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 2.05".
  23. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 3.0".
  24. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Release 3.1".
  25. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): Beta 3.2/4.0".
  26. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): 3.1.4.1".
  27. ^ "Workbench Nostalgia: The history of the AmigaOS Graphic User Interface (GUI): 3.2".
  28. ^ "32 / Expansion Board Drivers / RigidDiskBlock and Alternate Filesystems". amigadev.elowar.com. Retrieved 2013-06-09.
  29. ^ "Mysterious Ways - How to Code the Amiga - General Guidelines". mways.co.uk. Retrieved 2013-06-13.
  30. ^ "WORDSYNC" ADDENDUM to the SupraDrive Operator s Manual" (PDF). 090429 amiga.resource.cx
  31. ^ a b c d amigahistory.co.uk - What your Amiga is telling you
  32. ^ a b c d e "blinking power led/no screen on Amiga 500". abime.net. Archived from the original on 2012-04-03.
  33. ^ a b c d e f g h "A3000 Booting Problems". amiga.serveftp.net. Archived from the original on 2019-12-03. Retrieved 2011-11-03.