The Commodore Amiga 500
In 1987, Commodore introduced the Amiga 500, or simply the A500. It was a relatively inexpensive 16-bit home computer. Commodore's aim was to create a machine that could compete in the market against the other 16 bit machines such as the Atari and the Apple Computers.
The Amiga architecture is built around Motorola's 68000 processor. The Amiga 500 came standard with 512KByte of RAM, expandable to 9MByte. The RAM was devided into Chip RAM and Fast RAM. The Chip RAM was accessible by the Video and Sound Chip, and the Fast RAM was accessible by the CPU.
The Amiga could be connected to a monitor, but also to a TV set. The A500 is the best selling computer in the Amiga line-up. Amiga offered excellent graphics and performance at a reasonable price.
Graphics Capabilities, provided by the Denise Sound Chip.
- 320x200 in 32 colors (320x256 on PAL versions)
- 640x400 in 16 colors (640x512 on PAL versions)
- Planar graphics with up to five bit planes.
- Colors come from a 4096 color palette
- Extra half-brite mode for 32 additional colors at half brightness
- HAM (Hold And Modify) mode allowing 4096 colors simultaneous
Amiga had 8 hardware sprites, each is 16 pixels wide, by unlimited height, in 4 colours (3+transparent)
- Sprites 1&2 take their palette from Colours 16,17,18,19 (16 is ignored.. transparent)
- Sprites 3&4 take their palette from Colours 20,21,22,23 (20 is ignored.. transparent)
- Sprites 5&6 take their palette from Colours 24,25,26,27 (24 is ignored.. transparent)
- Sprites 7&8 take their palette from Colours 28,29,30,31 (16 is ignored.. transparent)
AmigaOS
AmigaOS, as it came to be known, was not a single monolithic package at first but rather a layered combination of Kickstart, Workbench, and supporting components like AmigaDOS and shared libraries. Kickstart, stored in ROM (except on the original Amiga 1000 where it was loaded from disk), contained the low-level core: the Exec kernel for preemptive multitasking, memory management, and interprocess communication, along with key libraries such as graphics.library and intuition.library. This firmware formed the foundation of the system, ensuring that hardware, multitasking, and UI primitives were always available at boot.
Workbench, by contrast, was the graphical desktop environment delivered on disk. It provided the user interface, window management, icon handling, and system tools. Workbench relied on the services of Kickstart, it drew windows through Intuition, accessed files via AmigaDOS, and extended the system with additional utilities and preferences. Together, Kickstart and Workbench formed the functional face of AmigaOS, Kickstart as the kernel and core subsystems, Workbench as the GUI and user-level workspace. In addition, the command-line shell (CLI) and AmigaDOS provided scripting and file management, while later releases added ARexx for inter-application scripting.
The system was modular by design. Kickstart provided the immutable low-level pieces in ROM, while Workbench and the CLI were extensible and upgradeable via disk distribution. This separation gave the Amiga an unusual balance, stability and performance at the kernel and library level, flexibility at the GUI and application layer. Devices and filesystems were implemented as modular components loaded into Exec’s device architecture, while the datatypes system (introduced later) allowed Workbench applications to dynamically support new file formats. The whole environment, though often referred to casually by its Workbench version number, was in fact a blend of firmware, disk software, and user interface conventions under the broader label of AmigaOS.
Compared with other operating systems of the 1980s and early 1990s, this distinction was unique. MS-DOS, for instance, had no resident GUI, its functionality was monolithic and text-driven. Classic Mac OS shipped with a graphical desktop tightly integrated into ROM and system files, but it used cooperative multitasking and lacked the modular separation that allowed the Amiga to upgrade Workbench independently of Kickstart. Unix variants offered true multitasking and networking but were hardware-heavy and lacked a consumer-friendly GUI. AmigaOS, by splitting Kickstart and Workbench yet tying them through Exec and Intuition, delivered a responsive multitasking operating system with multimedia capabilities that were far beyond most consumer systems of its time.
Workbench vs Kickstart ROM
Workbench 1.x
- Workbench 1.0/1.1 - Kickstart 1.0/1.1 (diskloaded on the A1000)
- Workbench 1.2 - Kickstart 1.2 (used on the A500, A2000)
- Workbench 1.3 - Kickstart 1.3 (used on the A500, A1500, A2000)
Workbench 2.x
- Workbench 2.0 - Kickstart 2.0 (A1200, A4000)
- Workbench 2.04 - Kickstart 2.04 (A500+, early A600 models)
- Workbench 2.05 - Kickstart 2.05 (IDE support, A600)
- Workbench 2.1 - Kickstart 2.04/2.05 (Disk based update)
Workbench 3.x
- Workbench 3.0 - Kickstart 3.0 (A1200, A4000)
- Workbench 3.1 - Kickstart 3.1 (A1200, A4000T, A-CD32)
- Workbench 3.5/3.9 - Kickstart 3.1 ROM (post Commodore updates)
- The Amiga 1000 was unique because it loaded Kickstart 1.0/1.1 from floppy into writable RAM rather than ROM
- From the Amiga 500 onward, Kickstart was permanently stored in ROM, and the workbench version had to match the Kickstart major revision number
- Workbench updates like 2.1 were software-only and could run on any existing 2.x Kickstart ROM, but major leaps 1.x -> 2.x or higher always required a new Kickstart ROM due to kernel and library changes.
Video - DENISE VDC
The DENISE chip was the video display controller in the original Commodore Amiga chipset (OCS, released with the Amiga 1000 in 1985). Functionally it acted as the pixel generator, taking bitplane data from RAM and combining it with sprite and playfield priority information to produce the final digital pixel stream. DENISE worked in conjunction with AGNUS (which performed DMA and copper/blitter control) and PAULA (audio and I/O), forming the three-chip custom chipset. Its role was highly specialized: it converted the planar bitplanes fetched by AGNUS into raster graphics, applied palette mapping, handled playfield priorities, and integrated hardware sprites and collision detection.
DENISE supported up to six bitplanes, which allowed 64 on-screen colors selected from a 12-bit (4096-entry) palette. It also introduced the Extra Half-Brite (EHB) mode, where a sixth bitplane acted as a brightness modifier, enabling 32 base colors plus 32 half-intensity versions, for a total of 64. Another key feature was Hold-And-Modify (HAM) mode, which extended color output dramatically by allowing each pixel to alter one channel (red, green, or blue) of the previous pixel’s color, yielding up to 4096 displayable colors on screen simultaneously. While HAM required careful programming to avoid color fringing artifacts, it was revolutionary for mid-1980s home computer graphics.
Beyond bitplanes, DENISE integrated an eight-sprite engine, each sprite being 16 pixels wide and up to 256 pixels tall, with two colors (or four when paired). These hardware sprites were independent of the playfields, could be multiplexed by the CPU for reuse down the screen, and were used heavily in Amiga games and GUIs. The chip also provided collision detection between sprites and playfields, essential for interactive software. Video output timing in DENISE supported NTSC and PAL standards, with horizontal resolutions up to 640 pixels in interlaced modes. Compared to contemporary systems such as the IBM PC CGA/EGA or the Atari ST’s Shifter, DENISE’s capabilities were both more flexible and more integrated, making it one of the defining components of the Amiga’s advanced multimedia hardware.
Sound - PAULA
The PAULA chip was the audio, disk, and system I/O controller in the Commodore Amiga custom chipset, complementing AGNUS and DENISE. Architecturally, PAULA was responsible for handling four independent DMA-driven audio channels, the floppy disk controller, serial I/O, and system-level interrupt control. By centralizing these diverse functions in a single IC, PAULA reduced system chip count while enabling the Amiga to provide advanced multimedia capabilities without relying on additional hardware. Its tight integration with AGNUS ensured that audio and disk DMA transfers were arbitrated alongside video memory requests, preserving real-time performance.
For audio, PAULA offered four 8-bit PCM channels, each with independent volume and sample rate control. The sample data was fetched directly from chip RAM via DMA, eliminating CPU overhead for playback. Two channels were hardwired to the left audio output and two to the right, providing true stereo sound. The sample rate was programmable by adjusting the DMA period registers, giving a practical range from a few kilohertz up to approximately 28 kHz in NTSC systems and 29 kHz in PAL. Clever software techniques, such as mixing or oversampling in the CPU, could extend fidelity further, but PAULA’s hardware alone already surpassed what was standard in most contemporaneous home computers, which were limited to simple PSG (programmable sound generator) chips.
In addition to audio, PAULA provided a floppy disk controller capable of handling the Amiga’s unusual variable-rate MFM encoding and custom disk formats, which allowed more flexible use of the 880 KB double-density 3.5" disks. It also handled serial communication, basic timers, and the central interrupt controller, which distributed and prioritized interrupts from all custom chips and I/O sources. Compared to dedicated PC sound cards and disk controllers of the mid-1980s, PAULA’s integration was unique: it combined stereo PCM playback, flexible disk handling, serial I/O, and interrupts in one IC, directly tied into the Amiga’s DMA framework. This made it a crucial part of the Amiga’s multimedia architecture and a key reason the platform could deliver advanced sound and storage features years ahead of mainstream competitors.
CPU - The Motorola 68000
The Motorola 68000 is a 16/32-bit microprocessor that was first released in 1979. It was widely used in computers and other electronic devices during the 1980s and early 1990s. The 68000 was known for its advanced architecture, which included a 32-bit internal bus and a 24-bit address bus, allowing it to access up to 16 megabytes of memory. This made it more powerful than many other processors of its time, such as the Intel 8086 and Zilog Z80. It was also designed to be highly modular and expandable, with a large number of on-chip and off-chip peripherals.
Some of the most famous and successful computers that used the 68000 was the Commodore Amiga and the Atari ST, both of which were popular in the home and personal computer markets. Additionally, it was also used in workstations, such as the Sun 3 and Apollo DN3000, and in a wide variety of embedded systems and industrial control systems. The 68000 was also used in the Macintosh, the first model of the Macintosh was powered by a Motorola 68000 CPU. The processor was eventually succeeded by the 68020 and 68030, which offered improved performance and additional features.
The 68000 has a 32-bit instruction set, with 32-bit registers and a 16-bit internal data bus. The address bus is 24-bit and does not use memory segmentation, making it easier to address memory. There are three ALU's (Arithmetic Logic Unit), two for calculating addresses, and one for data, and the chip has a 16-bit external address bus.
The 68000 architecture was expanded with 32-bit ALUs, and caches. Here is a list with some 680x0 versions and their major improvements:
- 68010 - Virtual memory support
- 68020 - 32-bit ALU & Instruction Cache
- 68030 - On-Chip MMU, 2x 256 byte cache
- 68040 - 2x 4K Cache, 6 stage pipeline, FPU
- 68LC040 - No Floating Point Unit (FPU)
- 68060 - 2x 8K Cache, 10 stage pipelinet
Source: WikiPedia - Motorola 6800
Source: WikiPedia - 68000 Series
RAM max: 8MB
640x200 in 16 colors
1280x200 in 4 colors
Vertical resolution could be doubled using interlacing.
