CONST	COPPER_MOVE=0,
		COPPER_WAIT=1,
		CPRNXTBUF=2,
		CPR_NT_LOF=$8000,
		CPR_NT_SHT=$4000,
		CPR_NT_SYS=$2000

OBJECT CopIns
	OpCode:INT,
// a) next two INTs are unioned with "nxtlist:PTR TO coplist"
	VWaitPos|DestAddr:INT,
	HWaitPos|DestData:INT

/*
#define VWAITPOS vwaitpos
#define DESTADDR vwaitpos
#define HWAITPOS hwaitpos
#define DESTDATA hwaitpos
*/

OBJECT CprList
	Next:PTR TO CprList,
	Start:PTR TO UWORD,
	MaxCount:INT

OBJECT CopList
	Next:PTR TO CopList,
	_coplist_:PTR TO CopList,
	_viewport:PTR TO ViewPort,
	CopIns:PTR TO CopIns,
	CopPtr:PTR TO CopIns,
	CopLStart:PTR TO UWORD,
	CopSStart:PTR TO UWORD,
	Count:INT,
	MaxCount:INT,
	DYOffset:INT,
/*
#ifdef V1_3
	Cop2Start:PTR TO INT,
	Cop3Start:PTR TO INT,
	Cop4Start:PTR TO INT,
	Cop5Start:PTR TO INT,
#endif
*/
	SLRepeat:UWORD,
	Flags:UWORD

CONST	EXACT_LINE=1,
		HALF_LINE=2

OBJECT UCopList
	Next:PTR TO UCopList,
	FirstCopList:PTR TO CopList,
	CopList:PTR TO CopList

OBJECT CopInit
	VSync_HBlank[2]:UWORD,
	DiagStrt[12]:UWORD,
	Fm0[2]:UWORD,
	DiwStart[10]:UWORD,
	BplCon2[2]:UWORD,
	SprFix[16]:UWORD,
	SprStrtUp[32]:UWORD,
	Wait14[2]:UWORD,
	Norm_HBlank[2]:UWORD,
	Jump[2]:UWORD,
	Wait_Forever[6]:UWORD,
	SprStop[8]:UWORD
