added concrete implementations of putc(), getc(), getchar() and gets()
[tangerine.git] / compiler / include / graphics / copper.h
blob8a73d3ea8b0bf5197cad0349aca237116a9e8100
1 #ifndef GRAPHICS_COPPER_H
2 #define GRAPHICS_COPPER_H
4 /*
5 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: Copper definitions and structures.
9 Lang: english
12 #ifndef EXEC_TYPES_H
13 # include <exec/types.h>
14 #endif
16 struct CopIns
18 WORD OpCode;
20 union
22 struct CopList * nxtlist;
23 struct
25 union
27 WORD VWaitPos;
28 WORD DestAddr;
29 } u1;
30 union
32 WORD HWaitPos;
33 WORD DestData;
34 } u2;
35 } u4;
36 } u3;
38 #define NXTLIST u3.nxtlist
39 #define VWAITPOS u3.u4.u1.VWaitPos
40 #define DESTADDR u3.u4.u1.DestAddr
41 #define HWAITPOS u3.u4.u2.HWAitPos
42 #define DESTDATA u3.u4.u2.DestData
44 struct CopList
46 struct CopList * Next;
47 struct CopList * _CopList;
48 struct ViewPort * _ViewPort;
49 struct CopIns * CopIns;
50 struct CopIns * CopPtr;
52 UWORD * CopLStart;
53 UWORD * CopSStart;
54 WORD Count;
55 WORD MaxCount;
56 WORD DyOffset;
57 #ifdef V1_3
58 UWORD * Cop2Start;
59 UWORD * Cop3Start;
60 UWORD * Cop4Start;
61 UWORD * Cop5Start;
62 #endif
63 UWORD SLRepeat;
64 UWORD Flags; /* see below */
67 /* Flags (PRIVATE) */
68 #define EXACT_LINE 1
69 #define HALF_LINE 2
71 struct UCopList
73 struct UCopList * Next;
74 struct CopList * FirstCopList;
75 struct CopList * CopList;
78 struct cprlist
80 struct cprlist * Next;
81 UWORD * start;
82 WORD MaxCount;
85 #define COPPER_MOVE 0
86 #define COPPER_WAIT 1
87 #define CPRNXTBUF 2
88 #define CPR_NT_SYS 0x2000
89 #define CPR_NT_SHT 0x4000
90 #define CPR_NT_LOF 0x8000
92 struct copinit
94 UWORD vsync_hblank[2];
95 UWORD diagstrt[12];
96 UWORD fm0[2];
97 UWORD diwstart[10];
98 UWORD bplcon2[2];
99 UWORD sprfix[16];
100 UWORD sprstrtup[32];
101 UWORD wait14[2];
102 UWORD norm_hblank[2];
103 UWORD jump[2];
104 UWORD wait_forever[6];
105 UWORD sprstop[8];
108 #endif /* GRAPHICS_COPPER_H */