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

NOTE The offset values of the registers are the addresses that the Copper must use to talk to the registers. For example, in assembler: INCLUDE "exec/types.i" INCLUDE "hardware/custom.i" XREF custom ; External reference Start: lea _custom,a0 ; Use a0 as base register move.w #$7FFF,intena(a0) ; Disable all interrupts In C, you would use the structure definitions in hardware/custom.h For example: #include "exec/types.h" #include "hardware/custom.h" extern struct Custom custom; /* You may need to define the above external as ** extern struct Custom far custom; ** Check you compiler manual.

*/ main() { custom.intena = 0x7FFF; /* Disable all interrupts */ } The Amiga hardware include files are generally supplied with your compiler or assembler. Listings of the hardware include files may also be found in the Addison-Wesley Amiga ROM Kernel Manual "Includes and Autodocs". Generally, the include file label names are very similar to the equivalent hardware register list names with the following typical differences. o Address registers which have low word and high word components are generally listed as two word sized registers in the hardware register list, with each register name containing either a suffix or embedded "L" or "H" for low and high.

The include file label for the same register will generally treat the whole register as a longword (32 bit) register, and therefore will not contain the "L" or "H" distinction. o Related sequential registers which are given individual names with number suffixes in the hardware register list, are generally referenced from a single base register definition in the include files. For example, the color registers in the hardware list (COLOR00, COLOR01, etc.) would be referenced from the "color" label defined in "hardware/custom.i" (color+0, color+2, etc.). o Examples of how to define the correct register offset can be found in the hw_examples.i file listed in Appendix J. - 8 Introduction -