type
    ColorMap_t = struct {
	ushort cm_Flags;
	ushort cm_Type;
	uint cm_Count;
	*uint cm_ColorTable;
    },

    ViewPort_t = struct {
	*ViewPort_t vp_Next;
	*ColorMap_t vp_ColorMap;
	*CopList_t vp_DspIns, vp_SprIns, vp_ClrIns;
	*UCopList_t vp_UCopIns;
	uint vp_DWidth, vp_DHeight;
	int vp_DxOffset, vp_DyOffset;
	uint vp_Modes;
	uint vp_reserved;
	*RasInfo_t vp_RasInfo;
    },

    View_t = struct {
	*ViewPort_t v_ViewPort;
	*cprlist_t v_LOFCprList, v_SHFCprList;
	int v_DyOffset, v_DxOffset;
	uint v_Modes;
    };

uint
    GENLOCK_VIDEO	= 0x0002,
    LACE		= 0x0004,
    PFBA		= 0x0040,
    EXTRA_HALFBRITE	= 0x0080,
    GENLOCK_AUDIO	= 0x0100,
    DUALPF		= 0x0400,
    HAM 		= 0x0800,
    VP_HIDE		= 0x2000,
    SPRITES		= 0x4000,
    HIRES		= 0x8000;

type
    RasInfo_t = struct {
	*RasInfo_t ri_Next;
	*BitMap_t ri_BitMap;
	int ri_RxOffset, ri_RyOffset;
    };

extern
    FreeColorMap(*ColorMap_t cm)void,
    FreeVPortCopLists(*ViewPort_t vp)void,
    GetColorMap(ulong entries)*ColorMap_t,
    GetRGB4(*ColorMap_t cm; ulong entry)ulong,
    InitView(*View_t view)void,
    InitVPort(*ViewPort_t vp)void,
    LoadView(*View_t view)void,
    LoadRGB4(*ViewPort_t vp; *uint colors; ulong count)void,
    MakeVPort(*View_t view; *ViewPort_t vp)void,
    MrgCop(*View_t view)void,
    ScrollVPort(*ViewPort_t vp)void,
    SetRGB4(*ViewPort_t vp; ulong n, r, g, b)void,
    SetRGB4CM(*ColorMap_t cm; ulong n, r, g, b)void,
    WaitBOVP(*ViewPort_t vp)void;
