Bare-Metal Amiga Programming

Paperback now available on Amazon.

The second book in my "Amiga Programming" series has just been published. Where my previous book concentrated mainly on using the functionality provided by AmigaOS, this book is about programming the hardware of the Amiga directly. Programming the hardware directly is known as "bare-metal programming", which is a technique employed by a large number of game and demo programmers in order to squeeze the last drop op performance from the system.

Front cover of the Bare-Metal Amiga Programming book

This book covers all three chipset versions released by Commodore: OCS, ECS and AGA. Each of the sub systems has its own chapter that explains the workings and gives an overview of the registers of the sub system. Amongst the subjects covered are the audio hardware, the Copper, the Blitter, sprites and playfields. This book also covers using the disk controller as well as interfacing with joysticks, paddles, mice and the keyboard. I have provided the table of contents as a download here. I have also published a small number of corrections as a PDF, which can be downloaded from here.

Most chapters end with a number of examples that show how to use the functionality of the sub system covered by the chapter. The book does not list the full assembly source code of each example, but instead highlights the more interesting parts while ignoring the standard boilerplate code required to make it work. The full assembly code of all examples can be downloaded from the downloads page of this blog.

Please note: an understanding of Motorola 680x0 assembly programming is required to get the best out of this book. Some knowledge of the workings of AmigaOS and the Workbench is useful but not necessarily required.

Posted on