/* Contents: exec/types.h
             exec/nodes.h
             exec/lists.h
             exec/tasks.h
             exec/libraries.h
             exec/interrupts.h
             exec/ports.h
             hardware/blit.h
             hardware/custom.h
             hardware/dmabits.h
             hardware/intbits.h
             graphics/gfx.h
             graphics/rastport.h
             graphics/gfxmacros.h
             graphics/copper.h
             graphics/view.h
             graphics/text.h
             graphics/gfxbase.h
             */
#ifndef  VIEWPORT_H
#define  VIEWPORT_H

#ifndef  EXEC_TYPES_H
#define  EXEC_TYPES_H

#define GLOBAL extern               
#define IMPORT extern               
#define STATIC static               
#define REGISTER register           

#define VOID      void              

typedef long            LONG;       
typedef unsigned long   ULONG;      
typedef unsigned long   LONGBITS;   
typedef short           WORD;       
typedef unsigned short  UWORD;      
typedef unsigned short  WORDBITS;   
typedef char            BYTE;       
typedef unsigned char   UBYTE;      
typedef unsigned char   BYTEBITS;   
typedef unsigned char   *STRPTR;    
typedef STRPTR          *APTR;      

typedef short           SHORT;      
typedef unsigned short  USHORT;     

typedef float           FLOAT;
typedef double          DOUBLE;
typedef short           COUNT;
typedef unsigned short  UCOUNT;
typedef short           BOOL;
typedef unsigned char   TEXT;

#define TRUE      1L
#define FALSE     0L
#define NULL      0L

#define BYTEMASK  0xFFL

#define  LIBRARY_VERSION   31L

#endif





#ifndef EXEC_NODES_H
#define EXEC_NODES_H

struct Node {
struct Node *ln_Succ;
struct Node *ln_Pred;
UBYTE ln_Type;
BYTE ln_Pri;
char *ln_Name;
};
struct MinNode {
struct MinNode *mln_Succ;
struct MinNode *mln_Pred;
};
#define NT_UNKNOWN 0L
#define NT_TASK 1L
#define NT_INTERRUPT 2L
#define NT_DEVICE 3L
#define NT_MSGPORT 4L
#define NT_MESSAGE 5L
#define NT_FREEMSG 6L
#define NT_REPLYMSG 7L
#define NT_RESOURCE 8L
#define NT_LIBRARY 9L
#define NT_MEMORY 10L
#define NT_SOFTINT 11L
#define NT_FONT 12L
#define NT_PROCESS 13L
#define NT_SEMAPHORE 14L
#define NT_SIGNALSEM 15L
#endif





#ifndef EXEC_LISTS_H
#define EXEC_LISTS_H

struct List {
struct Node *lh_Head;
struct Node *lh_Tail;
struct Node *lh_TailPred;
UBYTE lh_Type;
UBYTE l_pad;
};
struct MinList {
struct MinNode *mlh_Head;
struct MinNode *mlh_Tail;
struct MinNode *mlh_TailPred;
};
#endif





#ifndef EXEC_TASKS_H
#define EXEC_TASKS_H

extern struct Task {
struct Node tc_Node;
UBYTE tc_Flags;
UBYTE tc_State;
BYTE tc_IDNestCnt;
BYTE tc_TDNestCnt;
ULONG tc_SigAlloc;
ULONG tc_SigWait;
ULONG tc_SigRecvd;
ULONG tc_SigExcept;
UWORD tc_TrapAlloc;
UWORD tc_TrapAble;
APTR tc_ExceptData;
APTR tc_ExceptCode;
APTR tc_TrapData;
APTR tc_TrapCode;
APTR tc_SPReg;
APTR tc_SPLower;
APTR tc_SPUpper;
VOID (*tc_Switch)();
VOID (*tc_Launch)();
struct List tc_MemEntry;
APTR tc_UserData;
};
#define TB_PROCTIME 0L
#define TB_STACKCHK 4L
#define TB_EXCEPT 5L
#define TB_SWITCH 6L
#define TB_LAUNCH 7L
#define TF_PROCTIME (1L<<0)
#define TF_STACKCHK (1L<<4)
#define TF_EXCEPT (1L<<5)
#define TF_SWITCH (1L<<6)
#define TF_LAUNCH (1L<<7)
#define TS_INVALID 0L
#define TS_ADDED 1L
#define TS_RUN 2L
#define TS_READY 3L
#define TS_WAIT 4L
#define TS_EXCEPT 5L
#define TS_REMOVED 6L
#define SIGB_ABORT 0L
#define SIGB_CHILD 1L
#define SIGB_BLIT 4L
#define SIGB_SINGLE 4L
#define SIGB_DOS 8L
#define SIGF_ABORT (1L<<0)
#define SIGF_CHILD (1L<<1)
#define SIGF_BLIT (1L<<4)
#define SIGF_SINGLE (1L<<4)
#define SIGF_DOS (1L<<8)
#endif





#ifndef EXEC_LIBRARIES_H
#define EXEC_LIBRARIES_H

#define LIB_VECTSIZE 6L
#define LIB_RESERVED 4L
#define LIB_BASE (-LIB_VECTSIZE)
#define LIB_USERDEF (LIB_BASE-(LIB_RESERVED*LIB_VECTSIZE))
#define LIB_NONSTD (LIB_USERDEF)
#define LIB_OPEN (-6L)
#define LIB_CLOSE (-12L)
#define LIB_EXPUNGE (-18L)
#define LIB_EXTFUNC (-24L)
extern struct Library {
struct Node lib_Node;
UBYTE lib_Flags;
UBYTE lib_pad;
UWORD lib_NegSize;
UWORD lib_PosSize;
UWORD lib_Version;
UWORD lib_Revision;
APTR lib_IdString;
ULONG lib_Sum;
UWORD lib_OpenCnt;
};
#define LIBF_SUMMING (1L<<0)
#define LIBF_CHANGED (1L<<1)
#define LIBF_SUMUSED (1L<<2)
#define LIBF_DELEXP (1L<<3)
#define lh_Node lib_Node
#define lh_Flags lib_Flags
#define lh_pad lib_pad
#define lh_NegSize lib_NegSize
#define lh_PosSize lib_PosSize
#define lh_Version lib_Version
#define lh_Revision lib_Revision
#define lh_IdString lib_IdString
#define lh_Sum lib_Sum
#define lh_OpenCnt lib_OpenCnt
#endif





#ifndef EXEC_INTERRUPTS_H
#define EXEC_INTERRUPTS_H

struct Interrupt {
struct Node is_Node;
APTR is_Data;
VOID (*is_Code)();
};
struct IntVector {
APTR iv_Data;
VOID (*iv_Code)();
struct Node *iv_Node;
};
struct SoftIntList {
struct List sh_List;
UWORD sh_Pad;
};
#define SIH_PRIMASK (0xf0L)
#define INTB_NMI 15L
#define INTF_NMI (1L<<15)
#endif





#ifndef EXEC_PORTS_H
#define EXEC_PORTS_H
struct MsgPort {
struct Node mp_Node;
UBYTE mp_Flags;
UBYTE mp_SigBit;
struct Task *mp_SigTask;
struct List mp_MsgList;
};
#define mp_SoftInt mp_SigTask
#define PF_ACTION 3L
#define PA_SIGNAL 0L
#define PA_SOFTINT 1L
#define PA_IGNORE 2L
struct Message {
struct Node mn_Node;
struct MsgPort *mn_ReplyPort;
UWORD mn_Length;
};
#endif





#ifndef HARDWARE_BLIT_H
#define HARDWARE_BLIT_H

#define HSIZEBITS 6L
#define VSIZEBITS 16-HSIZEBITS
#define HSIZEMASK 0x3fL
#define VSIZEMASK 0x3FFL
#define MAXBYTESPERROW 128L
#define ABC 0x80L
#define ABNC 0x40L
#define ANBC 0x20L
#define ANBNC 0x10L
#define NABC 0x8L
#define NABNC 0x4L
#define NANBC 0x2L
#define NANBNC 0x1L
#define A_OR_B ABC|ANBC|NABC | ABNC|ANBNC|NABNC
#define A_OR_C ABC|NABC|ABNC | ANBC|NANBC|ANBNC
#define A_XOR_C NABC|ABNC | NANBC|ANBNC
#define A_TO_D ABC|ANBC|ABNC|ANBNC
#define BC0B_DEST 8L
#define BC0B_SRCC 9L
#define BC0B_SRCB 10L
#define BC0B_SRCA 11L
#define BC0F_DEST 0x100L
#define BC0F_SRCC 0x200L
#define BC0F_SRCB 0x400L
#define BC0F_SRCA 0x800L
#define BC1F_DESC 2L
#define DEST 0x100L
#define SRCC 0x200L
#define SRCB 0x400L
#define SRCA 0x800L
#define ASHIFTSHIFT 12L
#define BSHIFTSHIFT 12L
#define LINEMODE 0x1L
#define FILL_OR 0x8L
#define FILL_XOR 0x10L
#define FILL_CARRYIN 0x4L
#define ONEDOT 0x2L
#define OVFLAG 0x20L
#define SIGNFLAG 0x40L
#define BLITREVERSE 0x2L
#define SUD 0x10L
#define SUL 0x8L
#define AUL 0x4L
#define OCTANT8 24L
#define OCTANT7 4L
#define OCTANT6 12L
#define OCTANT5 28L
#define OCTANT4 20L
#define OCTANT3 8L
#define OCTANT2 0L
#define OCTANT1 16L
struct bltnode
{
struct bltnode *n;
int (*function)();
char stat;
short blitsize;
short beamsync;
int (*cleanup)();
};
#define CLEANUP 0x40L
#define CLEANME CLEANUP
#endif !HARDWARE_BLIT_H





#ifndef HARDWARE_CUSTOM_H
#define HARDWARE_CUSTOM_H
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;
UWORD pad2d[3];
UWORD bltcmod;
UWORD bltbmod;
UWORD bltamod;
UWORD bltdmod;
UWORD pad34[4];
UWORD bltcdat;
UWORD bltbdat;
UWORD bltadat;
UWORD pad3b[4];
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[6];
UWORD pad7c[4];
UWORD bplcon0;
UWORD bplcon1;
UWORD bplcon2;
UWORD pad83;
UWORD bpl1mod;
UWORD bpl2mod;
UWORD pad86[2];
UWORD bpldat[6];
UWORD pad8e[2];
APTR sprpt[8];
struct SpriteDef {
UWORD pos;
UWORD ctl;
UWORD dataa;
UWORD datab;
} spr[8];
UWORD color[32];
};
#ifdef _LARGE_DATA
extern struct Custom custom;
#else
#define custom (*((struct Custom *)0xdff000))
#endif
#endif !HARDWARE_CUSTOM_H





#ifndef HARDWARE_DMABITS_H
#define HARDWARE_DMABITS_H
#define DMAF_SETCLR 0x8000L
#define DMAF_AUDIO 0x000FL
#define DMAF_AUD0 0x0001L
#define DMAF_AUD1 0x0002L
#define DMAF_AUD2 0x0004L
#define DMAF_AUD3 0x0008L
#define DMAF_DISK 0x0010L
#define DMAF_SPRITE 0x0020L
#define DMAF_BLITTER 0x0040L
#define DMAF_COPPER 0x0080L
#define DMAF_RASTER 0x0100L
#define DMAF_MASTER 0x0200L
#define DMAF_BLITHOG 0x0400L
#define DMAF_ALL 0x01FFL
#define DMAF_BLTDONE 0x4000L
#define DMAF_BLTNZERO 0x2000L
#define DMAB_SETCLR 15L
#define DMAB_AUD0 0L
#define DMAB_AUD1 1L
#define DMAB_AUD2 2L
#define DMAB_AUD3 3L
#define DMAB_DISK 4L
#define DMAB_SPRITE 5L
#define DMAB_BLITTER 6L
#define DMAB_COPPER 7L
#define DMAB_RASTER 8L
#define DMAB_MASTER 9L
#define DMAB_BLITHOG 10L
#define DMAB_BLTDONE 14L
#define DMAB_BLTNZERO 13L
#endif !HARDWARE_DMABITS_H





#ifndef HARDWARE_INTBITS_H
#define HARDWARE_INTBITS_H
#define INTB_SETCLR (15L)
#define INTB_INTEN (14L)
#define INTB_EXTER (13L)
#define INTB_DSKSYNC (12L)
#define INTB_RBF (11L)
#define INTB_AUD3 (10L)
#define INTB_AUD2 (9L)
#define INTB_AUD1 (8L)
#define INTB_AUD0 (7L)
#define INTB_BLIT (6L)
#define INTB_VERTB (5L)
#define INTB_COPER (4L)
#define INTB_PORTS (3L)
#define INTB_SOFTINT (2L)
#define INTB_DSKBLK (1L)
#define INTB_TBE (0L)
#define INTF_SETCLR (1L<<15)
#define INTF_INTEN (1L<<14)
#define INTF_EXTER (1L<<13)
#define INTF_DSKSYNC (1L<<12)
#define INTF_RBF (1L<<11)
#define INTF_AUD3 (1L<<10)
#define INTF_AUD2 (1L<<9)
#define INTF_AUD1 (1L<<8)
#define INTF_AUD0 (1L<<7)
#define INTF_BLIT (1L<<6)
#define INTF_VERTB (1L<<5)
#define INTF_COPER (1L<<4)
#define INTF_PORTS (1L<<3)
#define INTF_SOFTINT (1L<<2)
#define INTF_DSKBLK (1L<<1)
#define INTF_TBE (1L<<0)
#endif !HARDWARE_INTBITS_H





#ifndef GRAPHICS_GFX_H
#define GRAPHICS_GFX_H

#define BITSET 0x8000L
#define BITCLR 0L
#define AGNUS
#ifdef AGNUS
#define TOBB(a) ((long)(a))
#else
#define TOBB(a) ((long)(a)>>1)
#endif
struct Rectangle
{
SHORT MinX,MinY;
SHORT MaxX,MaxY;
};
typedef struct tPoint
{
WORD x,y;
} Point;
typedef UBYTE *PLANEPTR;
struct BitMap
{
UWORD BytesPerRow;
UWORD Rows;
UBYTE Flags;
UBYTE Depth;
UWORD pad;
PLANEPTR Planes[8];
};
#define RASSIZE(w,h) ((h)*( (w+15)>>3&0xFFFE))
#endif





#ifndef GRAPHICS_RASTPORT_H
#define GRAPHICS_RASTPORT_H
struct AreaInfo
{
SHORT *VctrTbl;
SHORT *VctrPtr;
BYTE *FlagTbl;
BYTE *FlagPtr;
SHORT Count;
SHORT MaxCount;
SHORT FirstX,FirstY;
};
struct TmpRas
{
BYTE *RasPtr;
LONG Size;
};
struct GelsInfo
{
BYTE sprRsrvd;
UBYTE Flags;
struct VSprite *gelHead, *gelTail;
WORD *nextLine;
WORD **lastColor;
struct collTable *collHandler;
short leftmost, rightmost, topmost, bottommost;
APTR firstBlissObj,lastBlissObj;
};
struct RastPort
{
struct Layer *Layer;
struct BitMap *BitMap;
USHORT *AreaPtrn;
struct TmpRas *TmpRas;
struct AreaInfo *AreaInfo;
struct GelsInfo *GelsInfo;
UBYTE Mask;
BYTE FgPen;
BYTE BgPen;
BYTE AOlPen;
BYTE DrawMode;
BYTE AreaPtSz;
BYTE linpatcnt;
BYTE dummy;
USHORT Flags;
USHORT LinePtrn;
SHORT cp_x, cp_y;
UBYTE minterms[8];
SHORT PenWidth;
SHORT PenHeight;
struct TextFont *Font;
UBYTE AlgoStyle;
UBYTE TxFlags;
UWORD TxHeight;
UWORD TxWidth;
UWORD TxBaseline;
WORD TxSpacing;
APTR *RP_User;
ULONG longreserved[2];
#ifndef GFX_RASTPORT_1_2
UWORD wordreserved[7];
UBYTE reserved[8];
#endif
};
#define JAM1 0L
#define JAM2 1L
#define COMPLEMENT 2L
#define INVERSVID 4L
#define FRST_DOT 0x01L
#define ONE_DOT 0x02L
#define DBUFFER 0x04L
#define AREAOUTLINE 0x08L
#define NOCROSSFILL 0x20L
#endif





#ifndef GRAPHICS_GFXMACROS_H
#define GRAPHICS_GFXMACROS_H

#define ON_DISPLAY custom.dmacon = BITSET|DMAF_RASTER;
#define OFF_DISPLAY custom.dmacon = BITCLR|DMAF_RASTER;
#define ON_SPRITE custom.dmacon = BITSET|DMAF_SPRITE;
#define OFF_SPRITE custom.dmacon = BITCLR|DMAF_SPRITE;
#define ON_VBLANK custom.intena = BITSET|INTF_VERTB;
#define OFF_VBLANK custom.intena = BITCLR|INTF_VERTB;
#define SetOPen(w,c) {(w)->AOlPen = c;(w)->Flags |= AREAOUTLINE;}
#define SetDrPt(w,p) {(w)->LinePtrn = p;(w)->Flags |= FRST_DOT;(w)->linpatcnt=15;}
#define SetWrMsk(w,m) {(w)->Mask = m;}
#define SetAfPt(w,p,n) {(w)->AreaPtrn = p;(w)->AreaPtSz = n;}
#define BNDRYOFF(w) {(w)->Flags &= ~AREAOUTLINE;}
#define CINIT(c,n) { UCopperListInit(c,n); }
#define CMOVE(c,a,b) { CMove(c,&a,b);CBump(c); }
#define CWAIT(c,a,b) { CWait(c,a,b);CBump(c); }
#define CEND(c) { CWAIT(c,10000L,255L); }
#define DrawCircle(rp,cx,cy,r) DrawEllipse(rp,cx,cy,r,r);
#define AreaCircle(rp,cx,cy,r) AreaEllipse(rp,cx,cy,r,r);
#endif





#ifndef GRAPHICS_COPPER_H
#define GRAPHICS_COPPER_H

#define COPPER_MOVE 0L
#define COPPER_WAIT 1L
#define CPRNXTBUF 2L
#define CPR_NT_LOF 0x8000L
#define CPR_NT_SHT 0x4000L
struct CopIns
{
short OpCode;
union
{
struct CopList *nxtlist;
struct
{
union
{
SHORT VWaitPos;
SHORT DestAddr;
} u1;
union
{
SHORT HWaitPos;
SHORT DestData;
} u2;
} u4;
} u3;
};
#define NXTLIST u3.nxtlist
#define VWAITPOS u3.u4.u1.VWaitPos
#define DESTADDR u3.u4.u1.DestAddr
#define HWAITPOS u3.u4.u2.HWaitPos
#define DESTDATA u3.u4.u2.DestData
struct cprlist
{
struct cprlist *Next;
UWORD *start;
SHORT MaxCount;
};
struct CopList
{
struct CopList *Next;
struct CopList *_CopList;
struct ViewPort *_ViewPort;
struct CopIns *CopIns;
struct CopIns *CopPtr;
UWORD *CopLStart;
UWORD *CopSStart;
SHORT Count;
SHORT MaxCount;
SHORT DyOffset;
};
struct UCopList
{
struct UCopList *Next;
struct CopList *FirstCopList;
struct CopList *CopList;
};
struct copinit
{
UWORD diagstrt[4];
UWORD sprstrtup[(2*8*2)+2+(2*2)+2];
UWORD sprstop[2];
};
#endif





#ifndef GRAPHICS_VIEW_H
#define GRAPHICS_VIEW_H

struct ColorMap
{
UBYTE Flags;
UBYTE Type;
UWORD Count;
APTR ColorTable;
};
struct ViewPort
{
struct ViewPort *Next;
struct ColorMap *ColorMap;
struct CopList *DspIns;
struct CopList *SprIns;
struct CopList *ClrIns;
struct UCopList *UCopIns;
SHORT DWidth,DHeight;
SHORT DxOffset,DyOffset;
UWORD Modes;
UBYTE SpritePriorities;
UBYTE reserved;
struct RasInfo *RasInfo;
};
struct View
{
struct ViewPort *ViewPort;
struct cprlist *LOFCprList;
struct cprlist *SHFCprList;
short DyOffset,DxOffset;
UWORD Modes;
};
#define PFBA 0x40L
#define DUALPF 0x400L
#define HIRES 0x8000L
#define LACE 4L
#define HAM 0x800L
#define SPRITES 0x4000L
#define VP_HIDE 0x2000L
#define GENLOCK_AUDIO 0x100L
#define GENLOCK_VIDEO 2L
#define EXTRA_HALFBRITE 0x80L
struct RasInfo
{
struct RasInfo *Next;
struct BitMap *BitMap;
SHORT RxOffset,RyOffset;
};
#endif





#ifndef GRAPHICS_TEXT_H
#define GRAPHICS_TEXT_H

#define FS_NORMAL 0L
#define FSB_EXTENDED 3L
#define FSF_EXTENDED (1L<<3)
#define FSB_ITALIC 2L
#define FSF_ITALIC (1L<<2)
#define FSB_BOLD 1L
#define FSF_BOLD (1L<<1)
#define FSB_UNDERLINED 0L
#define FSF_UNDERLINED (1L<<0)
#define FPB_ROMFONT 0L
#define FPF_ROMFONT (1L<<0)
#define FPB_DISKFONT 1L
#define FPF_DISKFONT (1L<<1)
#define FPB_REVPATH 2L
#define FPF_REVPATH (1L<<2)
#define FPB_TALLDOT 3L
#define FPF_TALLDOT (1L<<3)
#define FPB_WIDEDOT 4L
#define FPF_WIDEDOT (1L<<4)
#define FPB_PROPORTIONAL 5L
#define FPF_PROPORTIONAL (1L<<5)
#define FPB_DESIGNED 6L
#define FPF_DESIGNED (1L<<6)
#define FPB_REMOVED 7L
#define FPF_REMOVED (1L<<7)
struct TextAttr {
STRPTR ta_Name;
UWORD ta_YSize;
UBYTE ta_Style;
UBYTE ta_Flags;
};
struct TextFont {
struct Message tf_Message;
UWORD tf_YSize;
UBYTE tf_Style;
UBYTE tf_Flags;
UWORD tf_XSize;
UWORD tf_Baseline;
UWORD tf_BoldSmear;
UWORD tf_Accessors;
UBYTE tf_LoChar;
UBYTE tf_HiChar;
APTR tf_CharData;
UWORD tf_Modulo;
APTR tf_CharLoc;
APTR tf_CharSpace;
APTR tf_CharKern;
};
#endif





#ifndef GRAPHICS_GFXBASE_H
#define GRAPHICS_GFXBASE_H

struct GfxBase
{
struct Library LibNode;
struct View *ActiView;
struct copinit *copinit;
long *cia;
long *blitter;
UWORD *LOFlist;
UWORD *SHFlist;
struct bltnode *blthd,*blttl;
struct bltnode *bsblthd,*bsblttl;
struct Interrupt vbsrv,timsrv,bltsrv;
struct List TextFonts;
struct TextFont *DefaultFont;
UWORD Modes;
BYTE VBlank;
BYTE Debug;
SHORT BeamSync;
SHORT system_bplcon0;
UBYTE SpriteReserved;
UBYTE bytereserved;
USHORT Flags;
SHORT BlitLock;
short BlitNest;
struct List BlitWaitQ;
struct Task *BlitOwner;
struct List TOF_WaitQ;
UWORD DisplayFlags;
struct SimpleSprite **SimpleSprites;
UWORD MaxDisplayRow;
UWORD MaxDisplayColumn;
UWORD NormalDisplayRows;
UWORD NormalDisplayColumns;
UWORD NormalDPMX;
UWORD NormalDPMY;
struct SignalSemaphore *LastChanceMemory;
UWORD *LCMptr;
UWORD MicrosPerLine;
ULONG reserved[2];
};
#define NTSC 1L
#define GENLOC 2L
#define PAL 4L
#define BLITMSG_FAULT 4L
#endif

#endif ! VIEWPORT_H
