Commodore Amiga 1200 — Commodore Amiga 1200 (PAL) Hardware Reference Manual PDF (EN)

ABOUT THE EXAMPLES The examples in this book all demonstrate direct manipulation of the Amiga hardware. However, as a general rule, it is not permissible to directly access the hardware in the Amiga unless your software either has full control of the system, or has arbitrated via the OS for exclusive access to the particular parts of the hardware you wish to control. Almost all of the hardware discussed in this manual, most notably the Blitter, Copper, playfield, sprite, CIA, trackdisk, and system control hardware, are in either exclusive or arbitrated use by portions of the Amiga OS in any running Amiga system.

Additional hardware, such as the audio, parallel, and serial hardware, may be in use by applications which have allocated their use through the system software. Before attempting to directly manipulate any part of the hardware in the Amiga's multitasking environment, your application must first be granted exclusive access to that hardware by the operating system library, device, or resource which arbitrates its ownership. The operating system functions for requesting and receiving control of parts of the Amiga hardware are varied and are not within the scope of this manual.

Generally such functions, when available, will be found in the library, device, or resource which manages that portion of the Amiga hardware in the multitasking environment. The following list will help you to find the appropriate operating system functions or mechanisms which may exist for arbitrated access to the hardware discussed in this manual.

Copper, Playfield, Sprite, Blitter - graphics.library Audio - audio.device Trackdisk - trackdisk.device, disk.resource Serial - serial.device, misc.resource Parallel - parallel.device, cia.resource, misc.resource Gameport - input.device, gameport.device, potgo.resource Keyboard - input.device, keyboard.device System Control - graphics.library, exec.library (interrupts) Most of the examples in this book use the hw_examples.i file (see Appendix J) to define the chip register names. hw_examples.i uses the system include file hardware/custom.i to define the chip structures and relative addresses.

The values defined in hardware/custom.i and how examples.i are offsets from the base chip register address space. In general, this base value is defined as _custom and is resolved during linking from amiga.lib. (_ciaa and _ciab are also resolved in this way.) Normally, the base address is loaded into an address register and the offsets given by hardware/custom.i and hw_examples.i are then used to address the correct register. - Introduction 7 -