;Amiga Hardware Registers Include File ;CIA addresses ;These are absolute addresses ;Set Devpac tab setting to 16 for readable list. ;Custom Chip Register Values ;All values are offsets from $DFF000 CUSTOM = $DFF000 BLTDDAT = $000 ;early read-68000 can't access DMACONR = $002 ;DMA controller read VPOSR = $004 VHPOSR = $006 DSKDATR = $008 ;when non-DMA disk transferring JOY0DAT = $00A JOY1DAT = $00C CLXDAT = $00E ;sprite collision data ADKCONR = $010 ;disk/audio status read POT0DAT = $012 POT1DAT = $014 POTGOR = $016 SERDATA = $018 DSKBYTR = $01A INTENAR = $01C ;interrupt enable read INTREQR = $01E ;interrupt r=est read DSKPTH = $020 DSKPTL = $022 DSKLEN = $024 DSKDAT = $026 REFPTR = $028 ;refresh counter write (CARE!!) VPOSW = $02A VHPOSW = $02C COPCON = $02E ;COPPER danger bit SERDAT = $030 SERPER = $032 POTGO = $034 JOYTEST = $036 STREQU = $038 ;horizontal sync with VB and equal frame STRVBL = $03A ;horizontal sync with vertical blank STRHOR = $03C ;horizontal sync signal STRLONG = $03E ;following registers accessible when ;Copper Danger Bit set (COPCON = 1) BLTCON0 = $040 BLTCON1 = $042 BLTAFWM = $044 BLTALWM = $046 BLTCPTH = $048 BLTCPTL = $04A BLTBPTH = $04C BLTBPTL = $04E BLTAPTH = $050 BLTAPTL = $052 BLTDPTH = $054 BLTDPTL = $056 BLTSIZE = $058 BLTCMOD = $060 BLTBMOD = $062 BLTAMOD = $064 BLTDMOD = $066 BLTCDAT = $070 BLTBDAT = $072 BLTADAT = $074 DSKSYNC = $07E ;Following registers can always be written by the Copper COP1LCH = $080 COP1LCL = $082 COP2LCH = $084 COP2LCL = $086 COPJMP1 = $088 COPJMP2 = $08A COPINS = $08C ;COPPER command register DIWSTRT = $08E ;window start, stop values DIWSTOP = $090 DDFSTRT = $092 ;DMA data fetch start, stop DDFSTOP = $094 DMACON = $096 ;main DMA controller write (SETIT) CLXCON = $098 ;collision register INTENA = $09A ;interrupt enable write (SETIT) INTREQ = $09C ;interrupt request write (force an int) (SETIT) ADKCON = $09E ;audio/disk controller (SETIT) ;audio control registers AUD0LCH = $0A0 AUD0LCL = $0A2 AUD0LEN = $0A4 AUD0PER = $0A6 AUD0VOL = $0A8 AUD0DAT = $0AA AUD1LCH = $0B0 AUD1LCL = $0B2 AUD1LEN = $0B4 AUD1PER = $0B6 AUD1VOL = $0B8 AUD1DAT = $0BA AUD2LCH = $0C0 AUD2LCL = $0C2 AUD2LEN = $0C4 AUD2PER = $0C6 AUD2VOL = $0C8 AUD2DAT = $0CA AUD3LCH = $0D0 AUD3LCL = $0D2 AUD3LEN = $0D4 AUD3PER = $0D6 AUD3VOL = $0D8 AUD3DAT = $0DA ;bitplane DMA control registers BPL1PTH = $0E0 BPL1PTL = $0E2 BPL2PTH = $0E4 BPL2PTL = $0E6 BPL3PTH = $0E8 BPL3PTL = $0EA BPL4PTH = $0EC BPL4PTL = $0EE BPL5PTH = $0F0 BPL5PTL = $0F2 BPL6PTH = $0F4 BPL6PTL = $0F6 BPL7PTH = $0F8 BPL7PTL = $0FA BPL8PTH = $0FC BPL8PTL = $0FE BPLCON0 = $100 BPLCON1 = $102 BPLCON2 = $104 BPLCON3 = $106 BPL1MOD = $108 BPL2MOD = $10A BPLCON4 = $10C BPL1DAT = $110 BPL2DAT = $112 BPL3DAT = $114 BPL4DAT = $116 BPL5DAT = $118 BPL6DAT = $11A ;sprite control registers SPR0PTH = $120 SPR0PTL = $122 SPR1PTH = $124 SPR1PTL = $126 SPR2PTH = $128 SPR2PTL = $12A SPR3PTH = $12C SPR3PTL = $12E SPR4PTH = $130 SPR4PTL = $132 SPR5PTH = $134 SPR5PTL = $136 SPR6PTH = $138 SPR6PTL = $13A SPR7PTH = $13C SPR7PTL = $13E SPR0POS = $140 SPR0CTL = $142 SPR0DATA = $144 SPR0DATB = $146 SPR1POS = $148 SPR1CTL = $14A SPR1DATA = $14C SPR1DATB = $14E SPR2POS = $150 SPR2CTL = $152 SPR2DATA = $154 SPR2DATB = $156 SPR3POS = $158 SPR3CTL = $15A SPR3DATA = $15C SPR3DATB = $15E SPR4POS = $160 SPR4CTL = $162 SPR4DATA = $164 SPR4DATB = $166 SPR5POS = $168 SPR5CTL = $16A SPR5DATA = $16C SPR5DATB = $16E SPR6POS = $170 SPR6CTL = $172 SPR6DATA = $174 SPR6DATB = $176 SPR7POS = $178 SPR7CTL = $17A SPR7DATA = $17C SPR7DATB = $17E ;palette control registers COLOR00 = $180 COLOR01 = $182 COLOR02 = $184 COLOR03 = $186 COLOR04 = $188 COLOR05 = $18A COLOR06 = $18C COLOR07 = $18E COLOR08 = $190 COLOR09 = $192 COLOR10 = $194 COLOR11 = $196 COLOR12 = $198 COLOR13 = $19A COLOR14 = $19C COLOR15 = $19E COLOR16 = $1A0 COLOR17 = $1A2 COLOR18 = $1A4 COLOR19 = $1A6 COLOR20 = $1A8 COLOR21 = $1AA COLOR22 = $1AC COLOR23 = $1AE COLOR24 = $1B0 COLOR25 = $1B2 COLOR26 = $1B4 COLOR27 = $1B6 COLOR28 = $1B8 COLOR29 = $1BA COLOR30 = $1BC COLOR31 = $1BE FMODE = $1FC BEAMCON0 = $1DC * DMA and INT register bit assignments (SETIT used for DMACON * type registers throughout! All such registers comment flagged * with (SETIT) by name) SETIT = $8000 BBUSY = $4000 BZERO = $2000 BLTPRI = $0400 DMAEN = $0200 BPLEN = $0100 COPEN = $0080 BLTEN = $0040 SPREN = $0020 DSKEN = $0010 AUD3EN = $0008 AUD2EN = $0004 AUD1EN = $0002 AUD0EN = $0001 INTEN = $4000 EXTER = $2000 DSKSYN = $1000 RBF = $0800 AUD3 = $0400 AUD2 = $0200 AUD1 = $0100 AUD0 = $0080 BLIT = $0040 VERTB = $0020 COPER = $0010 PORTS = $0008 SOFT = $0004 DSKBLK = $0002 TBE = $0001 CDANG = $02E ;COPPER DANGER BIT REG * BPLCON0 BIT ASSIGNMENTS HIRES = $8000 ;HIRES mode on BPU2 = $4000 BPU1 = $2000 ;BPU2-0 = no of bit planes used BPU0 = $1000 HOMOD = $0800 ;HAM on DBPLF = $0400 ;Dual Playfield on COLOR = $0200 ;Video output colour GAUD = $0100 ;Genlock Audio on LPEN = $0008 ;Light Pen input active LACE = $0004 ;interlace on ERSY = $0002 ;external synchronsiation on * Blitter Minterm Definitions * NA = not A, NB = not B etc MINTERM_ABC = %111 MINTERM_ABNC = %110 MINTERM_ANBC = %101 MINTERM_ANBNC = %100 MINTERM_NABC = %011 MINTERM_NABNC = %010 MINTERM_NANBC = %001 MINTERM_NANBNC = %000 * BLTCON0 Bit Assignments ASH3 = $8000 ASH2 = $4000 ASH1 = $2000 ASH0 = $1000 USEA = $0800 USEB = $0400 USEC = $0200 USED = $0100 LF7 = $0080 LF6 = $0040 LF5 = $0020 LF4 = $0010 LF3 = $0008 LF2 = $0004 LF1 = $0002 LF0 = $0001 START3 = $8000 START2 = $4000 START1 = $2000 START0 = $1000 * BLTCON1 Bit Assignments BSH3 = $8000 BSH2 = $4000 BSH1 = $2000 BSH0 = $1000 EFE = $0010 IFE = $0008 FCI = $0004 DESC = $0002 LINE = $0001 TEXTURE3 = $8000 TEXTURE2 = $4000 TEXTURE1 = $2000 TEXTURE0 = $1000 SIGN = $0040 SUD = $0010 SUL = $0008 AUL = $0004 SING = $0002 * ADKCON bit assignments (SETIT) PRECOMP1 = $4000 PRECOMP0 = $2000 MFMPREC = $1000 UARTNRK = $0800 WORDSYNC = $0400 MSBSYNC = $0200 FAST = $0100 USE3PN = $0080 USE2P3 = $0040 USE1P2 = $0020 USE0P1 = $0010 USE3VN = $0008 USE2V3 = $0004 USE1V2 = $0002 USE0V1 = $0001 * POTGO bit assignments OUTRY = $8000 DATRY = $4000 OUTRX = $2000 DATRX = $1000 OUTLY = $0800 DATLY = $0400 OUTLX = $0200 DATLX = $0100 POTGOSTART = $0001 *SERPER bit assignments LONG = $8000 * SERDAT/SERDATR bit assignments SD_OVRUN = $8000 SD_RBF = $4000 SD_TBE = $2000 SD_RXD = $1000 SD_STP = $0200 SD_DB8 = $0100 SD_DB7 = $0080 SD_DB6 = $0040 SD_DB5 = $0020 SD_DB4 = $0010 SD_DB3 = $0008 SD_DB2 = $0004 SD_DB1 = $0002 SD_DB0 = $0001 *DSKBYT/DSKBYTR bit assignments BYTEREADY = $8000 DMAON = $4000 DSKWRITE = $2000 WORDEQUAL = $1000 DB_DATA7 = $0080 DB_DATA6 = $0040 DB_DATA5 = $0020 DB_DATA4 = $0010 DB_DATA3 = $0008 DB_DATA2 = $0004 DB_DATA1 = $0002 DB_DATA0 = $0001 * DSKLEN bit assignments DK_DMAEN = $8000 DK_WRITE = $4000 .