home *** CD-ROM | disk | FTP | other *** search
-
- {
- Copper.i
-
- This file contains definitions for the various Copper
- structures.
- }
-
- Const
- COPPER_MOVE = 0; { pseude opcode for move #XXXX,dir }
- COPPER_WAIT = 1; { pseudo opcode for wait y,x }
- CPRNXTBUF = 2; { continue processing with next buffer }
- CPR_NT_LOF = $8000; { copper instruction only for short frames }
- CPR_NT_SHT = $4000; { copper instruction only for long frames }
-
- Type
- CopIns = Record
- OpCode : Short;
- VWaitPos: Short;
- VDest : Short; { Since PCQ doesn't have variant records, }
- end; { this is the best we can do. }
- CopInsPtr = ^CopIns;
-
- { structure of cprlist that points to list that hardware actually executes }
-
- cprlist = Record
- Next : ^cprlist;
- start : Address; { start of copper list }
- MaxCount: Short; { number of long instructions }
- end;
- cprlistPtr = ^cprlist;
-
- CopList = Record
- Next : ^CopList; { next block for this copper list }
- _CopList: ^CopList; { system use }
- _ViewPort : Address; { system use }
- CopIns : CopInsPtr; { start of this block }
- CopPtr : CopInsPtr; { intermediate ptr }
- CopLStart : Address; { mrgcop fills this in for Long Frame}
- CopSStart : Address; { mrgcop fills this in for Short Frame}
- Count : Short; { intermediate counter }
- MaxCount : Short; { max # of copins for this block }
- DyOffset : Short; { offset this copper list vertical waits }
- end;
- CopListPtr = ^CopList;
-
- UCopList = Record
- Next : ^UCopList;
- FirstCopList : CopListPtr; { head node of this copper list }
- CopList : CopListPtr; { node in use }
- end;
- UCopListPtr = ^UCopList;
-
- copinit = record
- diagstrt : Array [0..3] of Short; { copper list for first bitplane }
- sprstrtup : Array [0..(2*8*2)+2+(2*2)+1] of Short;
- sprstop : Array [0..1] of Short;
- end;
- CopInitPtr = ^copinit;
-