Amiga custom chip registers
Every OCS, ECS and AGA custom chip register at $DFF000, searchable; bit-field decoders for DMACON, INTENA, BPLCON0–4, ADKCON, POTGO and more; a display-window and data-fetch calculator; a blitter minterm calculator; and a copper list assembler and disassembler.
Added
Works with
- Amiga blitter lab Retro computingopens its register values here to decode
How to use it
-
Register map — search by name, offset (
$096,DFF096), or words in the description; filter by chip and by OCS, ECS, or AGA. Registers with bit fields have a bits button. -
Bit fields — pick a register and type a value (
$83C0,%1000…, or decimal), or click the bits. Each field is decoded with its meaning. For SET/CLR registers it explains what the write does; BPLCON0 summarises the screen mode; VPOSR names the Agnus or Alice revision; BLTCON0 shows its minterm. -
Display window — width, height, resolution, video standard, and planes give DIWSTRT/DIWSTOP/DDFSTRT/DDFSTOP, BPLCON0, modulos, the chip RAM needed, and a ready-to-use copper list. Out-of-range values are flagged.
-
Blitter minterms — type the function of sources A, B and C (
AB + aC,A&B | ~A&C,A^C) and get the LF byte for BLTCON0 with its truth table. -
Copper lists — write
MOVE,WAIT,SKIP,ENDwith register names, and getdc.wwords, a C array, or hex. Paste words into Disassemble to read an existing list.
Notes
-
Registers are 16-bit at
$DFF000+ offset. Writing a SET/CLR register (DMACON, INTENA, INTREQ, ADKCON) with bit 15 = 1 sets the other bits written as 1; with bit 15 = 0 it clears them. Bits written as 0 are left unchanged. -
Display window: DIWSTRT holds V7–V0 and H7–H0 of the top-left corner (H8 = 0 implied); DIWSTOP holds the bottom-right corner, with H8 = 1 implied and V8 = NOT V7, so the stop line must be between
$80and$17F. ECS DIWHIGH supplies the missing bits. Standard values for a 320×256 PAL screen are$2C81and$2CC1. -
Data fetch: lowres DDFSTRT = (HSTART − 17) / 2 and DDFSTOP = DDFSTRT + 8 × (words − 1); hires uses (HSTART − 9) / 2 and 4 × (words − 2). That gives
$38/$D0for 320 pixels lowres and$3C/$D4for 640 pixels hires. -
Minterms: bit n of LF is the output for the source combination where n = 4A + 2B + C. So A =
$F0, B =$CC, C =$AA, A AND B =$C0, and the cookie-cutAB + aC=$CA. -
Copper: MOVE is
register, valuewith an even register offset. WAIT and SKIP have bit 0 of the first word set:VP << 8 | HP | 1, thenBFD << 15 | VE << 8 | HE | (1 for SKIP). HP has two-pixel resolution (bit 0 is the opcode bit).$FFFF,$FFFEwaits for a position that never comes, so it ends the list. To reach PAL lines beyond 255, wait for$FFDFfirst. -
Sources: Amiga Hardware Reference Manual (3rd edition), the ECS and AGA chip documents.
Sharing
Share link copies a link to the open tab with its settings. Readable parameters: ?q= (register map search), ?reg= and ?val= (bit fields; value in decimal), and ?mt= (blitter minterm expression) — for example ?reg=INTENA&val=49152#bits. Display-window settings and copper lists travel packed in ?s=.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.