[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

   IFND  GRAPHICS_COPPER_I
GRAPHICS_COPPER_I SET	1
**
**	$Filename: graphics/copper.i $
**	$Release: 2.04 Includes, V37.4 $
**	$Revision: 37.1 $
**	$Date: 91/02/12 $
**
**	graphics copper list intruction definitions
**
**	(C) Copyright 1985-1999 Amiga, Inc.
**	    All Rights Reserved
**

    IFND    EXEC_TYPES_I
    include 'exec/types.i'
    ENDC

COPPER_MOVE equ 0	* pseude opcode for move #XXXX,dir
COPPER_WAIT equ 1	* pseudo opcode for wait y,x
CPRNXTBUF   equ 2	* continue processing with next buffer
CPR_NT_LOF  equ $8000	* copper instruction only for short frames
CPR_NT_SHT  equ $4000	* copper instruction only for long frames
CPR_NT_SYS  equ $2000	* copper user instruction only

   STRUCTURE   CopIns,0
      WORD  ci_OpCode	      * 0 = move, 1 = wait
      STRUCT   ci_nxtlist,0   * UNION
      STRUCT   ci_VWaitPos,0
      STRUCT   ci_DestAddr,2

      STRUCT   ci_HWaitPos,0
      STRUCT   ci_DestData,2

   LABEL ci_SIZEOF

* structure of cprlist that points to list that hardware actually executes
   STRUCTURE   cprlist,0
      APTR  crl_Next
      APTR  crl_start
      WORD  crl_MaxCount
   LABEL crl_SIZEOF

   STRUCTURE   CopList,0
      APTR  cl_Next	   * next block for this copper list
      APTR  cl__CopList    * system use
      APTR  cl__ViewPort   * system use
      APTR  cl_CopIns	   * start of this block
      APTR  cl_CopPtr	   * intermediate ptr
      APTR  cl_CopLStart   * mrgcop fills this in for Long Frame
      APTR  cl_CopSStart   * mrgcop fills this in for Short Frame
      WORD  cl_Count	   * intermediate counter
      WORD  cl_MaxCount    * max # of copins for this block
      WORD  cl_DyOffset    * offset this copper list vertical waits
   LABEL cl_SIZEOF

   STRUCTURE   UCopList,0
      APTR     ucl_Next
      APTR     ucl_FirstCopList * head node of this copper list
      APTR     ucl_CopList	* node in use
   LABEL ucl_SIZEOF

*  private graphics data structure
   STRUCTURE   copinit,0
	STRUCT	copinit_vsync_hblank,4
	STRUCT	copinit_diwstart,8
	STRUCT	copinit_diagstrt,8
	STRUCT	copinit_sprstrtup,2*(2*8*2)
	STRUCT	copinit_wait14,2*(2+2)
	STRUCT	copinit_genloc,2*(4+(2*2)+2)
	STRUCT	copinit_sprstop,8
   LABEL copinit_SIZEOF

   ENDC	; GRAPHICS_COPPER_I


[Back to Amiga Developer Docs]