#ifndef HARDWARE_CUSTOM_H
#define HARDWARE_CUSTOM_H
/*
** $Filename: hardware/custom.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 36.4 $
** $Date: 90/11/05 $
**
** Offsets of Amiga custom chip registers
**
** (C) Copyright 1985-1991 Commodore-Amiga, Inc.
** All Rights Reserved
*/

#ifndef EXEC_TYPES_H
#include "exec/types.h"
#endif 






struct Custom {
 UWORD bltddat;
 UWORD dmaconr;
 UWORD vposr;
 UWORD vhposr;
 UWORD dskdatr;
 UWORD joy0dat;
 UWORD joy1dat;
 UWORD clxdat;
 UWORD adkconr;
 UWORD pot0dat;
 UWORD pot1dat;
 UWORD potinp;
 UWORD serdatr;
 UWORD dskbytr;
 UWORD intenar;
 UWORD intreqr;
 APTR dskpt;
 UWORD dsklen;
 UWORD dskdat;
 UWORD refptr;
 UWORD vposw;
 UWORD vhposw;
 UWORD copcon;
 UWORD serdat;
 UWORD serper;
 UWORD potgo;
 UWORD joytest;
 UWORD strequ;
 UWORD strvbl;
 UWORD strhor;
 UWORD strlong;
 UWORD bltcon0;
 UWORD bltcon1;
 UWORD bltafwm;
 UWORD bltalwm;
 APTR bltcpt;
 APTR bltbpt;
 APTR bltapt;
 APTR bltdpt;
 UWORD bltsize;
 UBYTE pad2d;
 UBYTE bltcon0l; 
 UWORD bltsizv;
 UWORD bltsizh; 
 UWORD bltcmod;
 UWORD bltbmod;
 UWORD bltamod;
 UWORD bltdmod;
 UWORD pad34[4];
 UWORD bltcdat;
 UWORD bltbdat;
 UWORD bltadat;
 UWORD pad3b[3];
 UWORD deniseid; 
 UWORD dsksync;
 ULONG cop1lc;
 ULONG cop2lc;
 UWORD copjmp1;
 UWORD copjmp2;
 UWORD copins;
 UWORD diwstrt;
 UWORD diwstop;
 UWORD ddfstrt;
 UWORD ddfstop;
 UWORD dmacon;
 UWORD clxcon;
 UWORD intena;
 UWORD intreq;
 UWORD adkcon;
 struct AudChannel {
 UWORD *ac_ptr; 
 UWORD ac_len; 
 UWORD ac_per; 
 UWORD ac_vol; 
 UWORD ac_dat; 
 UWORD ac_pad[2]; 
 } aud[4];
 APTR bplpt[8];
 UWORD bplcon0;
 UWORD bplcon1;
 UWORD bplcon2;
 UWORD bplcon3;
 UWORD bpl1mod;
 UWORD bpl2mod;
 UWORD bplhmod;
 UWORD pad86[1];
 UWORD bpldat[8];
 APTR sprpt[8];
 struct SpriteDef {
 UWORD pos;
 UWORD ctl;
 UWORD dataa;
 UWORD datab;
 } spr[8];
 UWORD color[32];
 UWORD htotal;
 UWORD hsstop;
 UWORD hbstrt;
 UWORD hbstop;
 UWORD vtotal;
 UWORD vsstop;
 UWORD vbstrt;
 UWORD vbstop;
 UWORD sprhstrt;
 UWORD sprhstop;
 UWORD bplhstrt;
 UWORD bplhstop;
 UWORD hhposw;
 UWORD hhposr;
 UWORD beamcon0;
 UWORD hsstrt;
 UWORD vsstrt;
 UWORD hcenter;
 UWORD diwhigh; 
};

#ifdef ECS_SPECIFIC


#define VARVBLANK 0x1000 
#define LOLDIS 0x0800 
#define CSCBLANKEN 0x0400 
#define VARVSYNC 0x0200 
#define VARHSYNC 0x0100 
#define VARBEAM 0x0080 
#define DISPLAYDUAL 0x0040 
#define DISPLAYPAL 0x0020 
#define VARCSYNC 0x0010 
#define CSBLANK 0x0008 
#define CSYNCTRUE 0x0004 
#define VSYNCTRUE 0x0002 
#define HSYNCTRUE 0x0001 


#define USE_BPLCON3 1


#define BPLCON2_ZDCTEN (1<<10) 
#define BPLCON2_ZDBPEN (1<<11) 
#define BPLCON2_ZDBPSEL0 (1<<12) 
#define BPLCON2_ZDBPSEL1 (1<<13) 
#define BPLCON2_ZDBPSEL2 (1<<14) 


#define BPLCON3_EXTBLNKEN (1<<0) 
#define BPLCON3_EXTBLKZD (1<<1) 
#define BPLCON3_ZDCLKEN (1<<2) 
#define BPLCON3_BRDNTRAN (1<<4) 
#define BPLCON3_BRDNBLNK (1<<5) 

#endif 

#endif 
