Annotation of uae/src/include/picasso96.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * UAE - The U*nix Amiga Emulator
        !             3:  *
        !             4:  * Picasso96 Support Module Header
        !             5:  *
        !             6:  * Copyright 1997 Brian King <[email protected], [email protected]>
        !             7:  */
        !             8: 
        !             9: #if defined PICASSO96_SUPPORTED
        !            10: 
        !            11: #define PICASSO96
        !            12: 
        !            13: #define JAM1 0
        !            14: #define JAM2 1
        !            15: #define COMP 2
        !            16: #define INVERS 4
        !            17: 
        !            18: struct ScreenResolution
        !            19: {
        !            20:     uae_u32 width;  /* in pixels */
        !            21:     uae_u32 height; /* in pixels */
        !            22: };
        !            23: 
        !            24: #define MAX_PICASSO_MODES 64
        !            25: 
        !            26: struct PicassoResolution
        !            27: {
        !            28:     struct Resolutions *next;
        !            29:     struct ScreenResolution res;
        !            30:     int depth;
        !            31:     int refresh;
        !            32:     char name[25];
        !            33: };
        !            34: extern struct PicassoResolution DisplayModes[MAX_PICASSO_MODES];
        !            35: 
        !            36: 
        !            37: /* Types for RGBFormat used */
        !            38: typedef enum {
        !            39:     RGBFB_NONE,                /* no valid RGB format (should not happen) */
        !            40:     RGBFB_CLUT,                /* palette mode, set colors when opening screen using
        !            41:                           tags or use SetRGB32/LoadRGB32(...) */
        !            42:     RGBFB_R8G8B8,      /* TrueColor RGB (8 bit each) */
        !            43:     RGBFB_B8G8R8,      /* TrueColor BGR (8 bit each) */
        !            44:     RGBFB_R5G6B5PC,    /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
        !            45:                           format: gggbbbbbrrrrrggg */
        !            46:     RGBFB_R5G5B5PC,    /* HiColor15 (5 bit each), format: gggbbbbb0rrrrrgg */
        !            47:     RGBFB_A8R8G8B8,    /* 4 Byte TrueColor ARGB (A unused alpha channel) */
        !            48:     RGBFB_A8B8G8R8,    /* 4 Byte TrueColor ABGR (A unused alpha channel) */
        !            49:     RGBFB_R8G8B8A8,    /* 4 Byte TrueColor RGBA (A unused alpha channel) */
        !            50:     RGBFB_B8G8R8A8,    /* 4 Byte TrueColor BGRA (A unused alpha channel) */
        !            51:     RGBFB_R5G6B5,      /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
        !            52:                           format: rrrrrggggggbbbbb */
        !            53:     RGBFB_R5G5B5,      /* HiColor15 (5 bit each), format: 0rrrrrgggggbbbbb */
        !            54:     RGBFB_B5G6R5PC,    /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
        !            55:                           format: gggrrrrrbbbbbggg */
        !            56:     RGBFB_B5G5R5PC,    /* HiColor15 (5 bit each), format: gggrrrrr0bbbbbbgg */
        !            57: 
        !            58:     /* By now, the following formats are for use with a hardware window only
        !            59:        (bitmap operations may be implemented incompletely) */
        !            60: 
        !            61:     RGBFB_Y4U2V2,      /* 2 Byte TrueColor YUV (CCIR recommendation CCIR601).
        !            62:                           Each two-pixel unit is stored as one longword
        !            63:                           containing luminance (Y) for each of the two pixels,
        !            64:                           and chrominance (U,V) for alternate pixels.
        !            65:                           The missing chrominance values are generated by
        !            66:                           interpolation. (Y1-U0-Y0-V0) */
        !            67:     RGBFB_Y4U1V1,      /* 1 Byte TrueColor ACCUPAK. Four adjacent pixels form
        !            68:                           a packet of 5 bits Y (luminance) each pixel and 6 bits
        !            69:                           U and V (chrominance) shared by the four pixels */
        !            70: 
        !            71:     RGBFB_MaxFormats
        !            72: } RGBFTYPE;
        !            73: 
        !            74: #define RGBFF_NONE     (1<<RGBFB_NONE)
        !            75: #define RGBFF_CLUT     (1<<RGBFB_CLUT)
        !            76: #define RGBFF_R8G8B8   (1<<RGBFB_R8G8B8)
        !            77: #define RGBFF_B8G8R8   (1<<RGBFB_B8G8R8)
        !            78: #define RGBFF_R5G6B5PC (1<<RGBFB_R5G6B5PC)
        !            79: #define RGBFF_R5G5B5PC (1<<RGBFB_R5G5B5PC)
        !            80: #define RGBFF_A8R8G8B8 (1<<RGBFB_A8R8G8B8)
        !            81: #define RGBFF_A8B8G8R8 (1<<RGBFB_A8B8G8R8)
        !            82: #define RGBFF_R8G8B8A8 (1<<RGBFB_R8G8B8A8)
        !            83: #define RGBFF_B8G8R8A8 (1<<RGBFB_B8G8R8A8)
        !            84: #define RGBFF_R5G6B5   (1<<RGBFB_R5G6B5)
        !            85: #define RGBFF_R5G5B5   (1<<RGBFB_R5G5B5)
        !            86: #define RGBFF_B5G6R5PC (1<<RGBFB_B5G6R5PC)
        !            87: #define RGBFF_B5G5R5PC (1<<RGBFB_B5G5R5PC)
        !            88: #define RGBFF_Y4U2V2   (1<<RGBFB_Y4U2V2)
        !            89: #define RGBFF_Y4U1V1   (1<<RGBFB_Y4U1V1)
        !            90: 
        !            91: /************************************************************************/
        !            92: 
        !            93: #define        RGBFF_PLANAR    RGBFF_NONE
        !            94: #define        RGBFF_CHUNKY    RGBFF_CLUT
        !            95: 
        !            96: #define        RGBFB_PLANAR    RGBFB_NONE
        !            97: #define        RGBFB_CHUNKY    RGBFB_CLUT
        !            98: 
        !            99: /************************************************************************/
        !           100: 
        !           101: enum{
        !           102:     PLANAR,
        !           103:     CHUNKY,
        !           104:     HICOLOR,
        !           105:     TRUECOLOR,
        !           106:     TRUEALPHA,
        !           107:     MAXMODES
        !           108: };
        !           109: 
        !           110: /************************************************************************/
        !           111: struct MyCLUTEntry {
        !           112:     uae_u8 Red;
        !           113:     uae_u8 Green;
        !           114:     uae_u8 Blue;
        !           115:     uae_u8 Pad;
        !           116: };
        !           117: 
        !           118: struct ColorIndexMapping {
        !           119:     uae_u32 ColorMask;
        !           120:     uae_u32 Colors[256];
        !           121: };
        !           122: 
        !           123: struct CLUTEntry {
        !           124:     uae_u8 Red;
        !           125:     uae_u8 Green;
        !           126:     uae_u8 Blue;
        !           127: };
        !           128: 
        !           129: #define PSSO_BitMap_BytesPerRow 0
        !           130: #define PSSO_BitMap_Rows 2
        !           131: #define PSSO_BitMap_Flags 4
        !           132: #define PSSO_BitMap_Depth 5
        !           133: #define PSSO_BitMap_pad 6
        !           134: #define PSSO_BitMap_Planes 8
        !           135: #define PSSO_BitMap_sizeof 40
        !           136: 
        !           137: struct BitMap
        !           138: {
        !           139:     uae_u16 BytesPerRow;
        !           140:     uae_u16 Rows;
        !           141:     uae_u8 Flags;
        !           142:     uae_u8 Depth;
        !           143:     uae_u16 pad;
        !           144:     uae_u8 *Planes[8];
        !           145: };
        !           146: 
        !           147: /************************************************************************/
        !           148: 
        !           149: #define        SETTINGSNAMEMAXCHARS            30
        !           150: #define        BOARDNAMEMAXCHARS                       30
        !           151: 
        !           152: struct Settings{
        !           153:     uae_u32                                    BoardType;
        !           154:     /* a value discribing assignment to nth board local to boardtype
        !           155:      * to be used for reassignment when boards are added or removed.  */
        !           156:     uae_u16                                    LocalOrdering;
        !           157:     uae_s16                                    LastSelected;
        !           158:     char                                       NameField[SETTINGSNAMEMAXCHARS];
        !           159:     /* neu! */
        !           160:     char                                       *BoardName;
        !           161: };
        !           162: 
        !           163: #define MAXRESOLUTIONNAMELENGTH 22
        !           164: 
        !           165: /********************************
        !           166:  * only used within rtg.library *
        !           167:  ********************************/
        !           168: 
        !           169: #define PSSO_LibResolution_P96ID 14
        !           170: #define PSSO_LibResolution_Name 20
        !           171: #define PSSO_LibResolution_DisplayID 42 /* Name + MAXRESOLUTIONNAMELENGTH */
        !           172: #define PSSO_LibResolution_Width 46
        !           173: #define PSSO_LibResolution_Height 48
        !           174: #define PSSO_LibResolution_Flags 50
        !           175: #define PSSO_LibResolution_Modes 52
        !           176: #define PSSO_LibResolution_BoardInfo (52 + MAXMODES*4)
        !           177: #define PSSO_LibResolution_sizeof (60 + MAXMODES*4)
        !           178: 
        !           179: struct LibResolution{
        !           180:     char P96ID[6];
        !           181:     char Name[MAXRESOLUTIONNAMELENGTH];
        !           182:     uae_u32 DisplayID;
        !           183:     uae_u16 Width;
        !           184:     uae_u16 Height;
        !           185:     uae_u16 Flags;
        !           186:     uaecptr Modes[MAXMODES];
        !           187:     uaecptr BoardInfo;
        !           188: };
        !           189: 
        !           190: #define        P96B_FAMILY     0                       /* obsolete (Resolution is an entire family) */
        !           191: #define        P96B_PUBLIC     1                       /* Resolution should be added to the public */
        !           192: #define        P96B_MONITOOL   2
        !           193: 
        !           194: #define        P96F_FAMILY     (1<<P96B_FAMILY)        /* obsolete */
        !           195: #define        P96F_PUBLIC     (1<<P96B_PUBLIC)
        !           196: #define        P96F_MONITOOL   (1<<P96B_MONITOOL)
        !           197: 
        !           198: #define PSSO_ModeInfo_OpenCount 14
        !           199: #define PSSO_ModeInfo_Active 16
        !           200: #define PSSO_ModeInfo_Width 18
        !           201: #define PSSO_ModeInfo_Height 20
        !           202: #define PSSO_ModeInfo_Depth 22
        !           203: #define PSSO_ModeInfo_Flags 23
        !           204: #define PSSO_ModeInfo_HorTotal 24
        !           205: #define PSSO_ModeInfo_HorBlankSize 26
        !           206: #define PSSO_ModeInfo_HorSyncStart 28
        !           207: #define PSSO_ModeInfo_HorSyncSize 30
        !           208: #define PSSO_ModeInfo_HorSyncSkew 32
        !           209: #define PSSO_ModeInfo_HorEnableSkew 33
        !           210: #define PSSO_ModeInfo_VerTotal 34
        !           211: #define PSSO_ModeInfo_VerBlankSize 36
        !           212: #define PSSO_ModeInfo_VerSyncStart 38
        !           213: #define PSSO_ModeInfo_VerSyncSize 40
        !           214: #define PSSO_ModeInfo_first_union 42
        !           215: #define PSSO_ModeInfo_second_union 43
        !           216: #define PSSO_ModeInfo_PixelClock 44
        !           217: #define PSSO_ModeInfo_sizeof 48
        !           218: 
        !           219: #define PSSO_RenderInfo_Memory 0
        !           220: #define PSSO_RenderInfo_BytesPerRow 4
        !           221: #define PSSO_RenderInfo_pad 6
        !           222: #define PSSO_RenderInfo_RGBFormat 8
        !           223: #define PSSO_RenderInfo_sizeof /* ??? */
        !           224: 
        !           225: struct RenderInfo {
        !           226:     uae_u8 *Memory;
        !           227:     uae_s16 BytesPerRow;
        !           228:     uae_s16 pad;
        !           229:     RGBFTYPE RGBFormat;
        !           230: };
        !           231: 
        !           232: #define PSSO_Pattern_Memory 0
        !           233: #define PSSO_Pattern_XOffset 4
        !           234: #define PSSO_Pattern_YOffset 6
        !           235: #define PSSO_Pattern_FgPen 8
        !           236: #define PSSO_Pattern_BgPen 12
        !           237: #define PSSO_Pattern_Size 16
        !           238: #define PSSO_Pattern_DrawMode 17
        !           239: #define PSSO_Pattern_sizeof 18
        !           240: struct Pattern {
        !           241:     char *Memory;
        !           242:     uae_u16 XOffset, YOffset;
        !           243:     uae_u32 FgPen, BgPen;
        !           244:     uae_u8 Size;                                       /* Width: 16, Height: (1<<pat_Size) */
        !           245:     uae_u8 DrawMode;
        !           246: };
        !           247: 
        !           248: #define PSSO_Template_Memory 0
        !           249: #define PSSO_Template_BytesPerRow 4
        !           250: #define PSSO_Template_XOffset 6
        !           251: #define PSSO_Template_DrawMode 7
        !           252: #define PSSO_Template_FgPen 8
        !           253: #define PSSO_Template_BgPen 12
        !           254: #define PSSO_Template_sizeof 16
        !           255: 
        !           256: struct Template {
        !           257:        char *Memory;
        !           258:        uae_s16 BytesPerRow;
        !           259:        uae_u8 XOffset;
        !           260:        uae_u8 DrawMode;
        !           261:        uae_u32 FgPen;
        !           262:        uae_u32 BgPen;
        !           263: };
        !           264: 
        !           265: #define PSSO_BoardInfo_MemoryBase 4
        !           266: #define PSSO_BoardInfo_MemorySize 12
        !           267: #define PSSO_BoardInfo_BoardName 16
        !           268: #define PSSO_BoardInfo_VBIName 20
        !           269: #define PSSO_BoardInfo_CardBase 52
        !           270: #define PSSO_BoardInfo_ChipBase 56
        !           271: #define PSSO_BoardInfo_ExecBase 60
        !           272: #define PSSO_BoardInfo_UtilBase 64
        !           273: #define PSSO_BoardInfo_HardInterrupt 68
        !           274: #define PSSO_BoardInfo_SoftInterrupt 90
        !           275: #define PSSO_BoardInfo_BoardLock 112
        !           276: #define PSSO_BoardInfo_ResolutionsList 158
        !           277: #define PSSO_BoardInfo_BoardType 170
        !           278: #define PSSO_BoardInfo_PaletteChipType 174
        !           279: #define PSSO_BoardInfo_GraphicsControllerType 178
        !           280: #define PSSO_BoardInfo_MoniSwitch 182
        !           281: #define PSSO_BoardInfo_BitsPerCannon 184
        !           282: #define PSSO_BoardInfo_Flags 186
        !           283: #define PSSO_BoardInfo_SoftSpriteFlags 190
        !           284: #define PSSO_BoardInfo_ChipFlags 192
        !           285: #define PSSO_BoardInfo_CardFlags 194
        !           286: #define PSSO_BoardInfo_BoardNum 198
        !           287: #define PSSO_BoardInfo_RGBFormats 200
        !           288: #define PSSO_BoardInfo_MaxHorValue 202
        !           289: #define PSSO_BoardInfo_MaxVerValue (202 + 2*MAXMODES)
        !           290: #define PSSO_BoardInfo_MaxHorResolution (202 + 4*MAXMODES)
        !           291: #define PSSO_BoardInfo_MaxVerResolution (202 + 6*MAXMODES)
        !           292: #define PSSO_BoardInfo_MaxMemorySize (202 + 8*MAXMODES)
        !           293: #define PSSO_BoardInfo_MaxChunkSize (202 + 8*MAXMODES + 4)
        !           294: #define PSSO_BoardInfo_PixelClockArray (202 + 8*MAXMODES + 8)
        !           295: #define PSSO_BoardInfo_PixelClockCount (202 + 8*MAXMODES + 12)
        !           296: #define PSSO_BoardInfo_AllocCardMem (202 + 12*MAXMODES + 12)
        !           297: #define PSSO_BoardInfo_SpecialFeatures (202 + 12*MAXMODES + 12 + 68*4)
        !           298: #define PSSO_BoardInfo_ModeInfo (202 + 12*MAXMODES + 12 + 68*4 + 12)
        !           299: #define PSSO_BoardInfo_CLUT (202 + 12*MAXMODES + 12 + 68*4 + 32)
        !           300: 
        !           301: struct BoardInfo{
        !           302:     uae_u8 *RegisterBase, *MemoryBase, *MemoryIOBase;
        !           303:     uae_u32 MemorySize;
        !           304:     char *BoardName, VBIName[32];
        !           305: 
        !           306:     uae_u16 MoniSwitch;
        !           307:     uae_u16 BitsPerCannon;
        !           308:     uae_u32 Flags;
        !           309:     uae_u16 SoftSpriteFlags;
        !           310:     uae_u16 ChipFlags; /* private, chip specific, not touched by RTG */
        !           311:     uae_u32 CardFlags; /* private, card specific, not touched by RTG */
        !           312: 
        !           313:     uae_u16 BoardNum;
        !           314:     uae_s16 RGBFormats;
        !           315: 
        !           316:     uae_u16 MaxHorValue[MAXMODES];
        !           317:     uae_u16 MaxVerValue[MAXMODES];
        !           318:     uae_u16 MaxHorResolution[MAXMODES];
        !           319:     uae_u16 MaxVerResolution[MAXMODES];
        !           320:     uae_u32 MaxMemorySize, MaxChunkSize;
        !           321: };
        !           322: 
        !           323: /* BoardInfo flags */
        !           324: /*  0-15: hardware flags */
        !           325: /* 16-31: user flags */
        !           326: #define BIB_HARDWARESPRITE     0       /* board has hardware sprite */
        !           327: #define BIB_NOMEMORYMODEMIX    1       /* board does not support modifying planar bitmaps while displaying chunky and vice versa */
        !           328: #define BIB_NEEDSALIGNMENT     2       /* bitmaps have to be aligned (not yet supported!) */
        !           329: #define BIB_DBLSCANDBLSPRITEY  8       /* hardware sprite y position is doubled on doublescan display modes */
        !           330: #define BIB_ILACEHALFSPRITEY   9       /* hardware sprite y position is halved on interlace display modes */
        !           331: #define BIB_ILACEDBLROWOFFSET  10      /* doubled row offset in interlaced display modes needs additional horizontal bit */
        !           332: 
        !           333: #define BIB_FLICKERFIXER       12      /* board can flicker fix Amiga RGB signal */
        !           334: #define BIB_VIDEOCAPTURE       13      /* board can capture video data to a memory area */
        !           335: #define BIB_VIDEOWINDOW                14      /* board can display a second mem area as a pip */
        !           336: #define BIB_BLITTER            15      /* board has blitter */
        !           337: 
        !           338: #define BIB_HIRESSPRITE                16      /* mouse sprite has double resolution */
        !           339: #define BIB_BIGSPRITE          17      /* user wants big mouse sprite */
        !           340: #define BIB_BORDEROVERRIDE     18      /* user wants to override system overscan border prefs */
        !           341: #define BIB_BORDERBLANK                19      /* user wants border blanking */
        !           342: #define BIB_INDISPLAYCHAIN     20      /* board switches Amiga signal */
        !           343: #define BIB_QUIET              21      /* not yet implemented */
        !           344: #define BIB_NOMASKBLITS                22      /* perform blits without taking care of mask */
        !           345: #define BIB_NOC2PBLITS         23      /* use CPU for planar to chunky conversions */
        !           346: #define BIB_NOBLITTER          24      /* disable all blitter functions */
        !           347: 
        !           348: #define BIB_IGNOREMASK BIB_NOMASKBLITS
        !           349: 
        !           350: #define BIF_HARDWARESPRITE     (1<<BIB_HARDWARESPRITE)
        !           351: #define BIF_NOMEMORYMODEMIX    (1<<BIB_NOMEMORYMODEMIX)
        !           352: #define BIF_NEEDSALIGNMENT     (1<<BIB_NEEDSALIGNMENT)
        !           353: #define BIF_DBLSCANDBLSPRITEY  (1<<BIB_DBLSCANDBLSPRITEY)
        !           354: #define BIF_ILACEHALFSPRITEY   (1<<BIB_ILACEHALFSPRITEY)
        !           355: #define BIF_ILACEDBLROWOFFSET  (1<<BIB_ILACEDBLROWOFFSET)
        !           356: #define BIF_FLICKERFIXER       (1<<BIB_FLICKERFIXER)
        !           357: #define BIF_VIDEOCAPTURE       (1<<BIB_VIDEOCAPTURE)
        !           358: #define BIF_VIDEOWINDOW                (1<<BIB_VIDEOWINDOW)
        !           359: #define BIF_BLITTER            (1<<BIB_BLITTER)
        !           360: #define BIF_HIRESSPRITE                (1<<BIB_HIRESSPRITE)
        !           361: #define BIF_BIGSPRITE          (1<<BIB_BIGSPRITE)
        !           362: #define BIF_BORDEROVERRIDE     (1<<BIB_BORDEROVERRIDE)
        !           363: #define BIF_BORDERBLANK                (1<<BIB_BORDERBLANK)
        !           364: #define BIF_INDISPLAYCHAIN     (1<<BIB_INDISPLAYCHAIN)
        !           365: #define BIF_QUIET              (1<<BIB_QUIET)
        !           366: #define BIF_NOMASKBLITS                (1<<BIB_NOMASKBLITS)
        !           367: #define BIF_NOC2PBLITS         (1<<BIB_NOC2PBLITS)
        !           368: #define BIF_NOBLITTER          (1<<BIB_NOBLITTER)
        !           369: 
        !           370: #define BIF_IGNOREMASK         BIF_NOMASKBLITS
        !           371: 
        !           372: /************************************************************************/
        !           373: struct picasso96_state_struct
        !           374: {
        !           375:     uae_u32             RGBFormat;   /* true-colour, CLUT, hi-colour, etc. */
        !           376:     struct MyCLUTEntry  CLUT[256];   /* Duh! */
        !           377:     uaecptr             Address;     /* Active screen address (Amiga-side) */
        !           378:     uaecptr             Extent;      /* End address of screen (Amiga-side) */
        !           379:     uae_u16             Width;       /* Active display width  (From SetGC) */
        !           380:     uae_u16             VirtualWidth;/* Total screen width (From SetPanning) */
        !           381:     uae_u16             BytesPerRow; /* Total screen width in bytes (From SetGC) */
        !           382:     uae_u16             Height;      /* Active display height (From SetGC) */
        !           383:     uae_u16             VirtualHeight; /* Total screen height */
        !           384:     uae_u8              GC_Depth;    /* From SetGC() */
        !           385:     uae_u8              GC_Flags;    /* From SetGC() */
        !           386:     long                XOffset;     /* From SetPanning() */
        !           387:     long                YOffset;     /* From SetPanning() */
        !           388:     uae_u8              SwitchState; /* From SetSwitch() - 0 is Amiga, 1 is Picasso */
        !           389:     uae_u8              BytesPerPixel;
        !           390:     uae_u8              CardFound;
        !           391: };
        !           392: 
        !           393: extern void InitPicasso96 (void);
        !           394: 
        !           395: extern uae_u32 picasso_SetDisplay (void);
        !           396: extern uae_u32 picasso_WaitVerticalSync (void);
        !           397: extern uae_u32 picasso_CalculateBytesPerRow (void);
        !           398: extern uae_u32 picasso_FillRect (void);
        !           399: extern uae_u32 picasso_BlitRect (void);
        !           400: extern uae_u32 picasso_InvertRect (void);
        !           401: extern uae_u32 picasso_SetPanning (void);
        !           402: extern uae_u32 picasso_SetGC (void);
        !           403: extern uae_u32 picasso_SetDAC (void);
        !           404: extern uae_u32 picasso_SetColorArray (void);
        !           405: extern uae_u32 picasso_SetSwitch (void);
        !           406: extern uae_u32 picasso_SetSwitch (void);
        !           407: extern uae_u32 picasso_FindCard (void);
        !           408: extern uae_u32 picasso_InitCard (void);
        !           409: extern uae_u32 picasso_BlitPlanar2Chunky (void);
        !           410: extern uae_u32 picasso_BlitPlanar2Direct (void);
        !           411: extern uae_u32 picasso_BlitTemplate (void);
        !           412: extern uae_u32 picasso_BlitPattern (void);
        !           413: extern uae_u32 picasso_BlitRectNoMaskComplete (void);
        !           414: 
        !           415: extern uae_u32 gfxmem_mask;
        !           416: extern uae_u8 *gfxmemory;
        !           417: 
        !           418: extern int uaegfx_card_found;
        !           419: 
        !           420: extern struct picasso96_state_struct picasso96_state;
        !           421: 
        !           422: #ifdef _WIN32
        !           423: extern unsigned int timer_id;
        !           424: #endif
        !           425: 
        !           426: extern int DX_FillRect(uaecptr mem, uae_u16 X, uae_u16 Y, uae_u16 Width, uae_u16 Height, uae_u32 Pen, uae_u8 Bpp);
        !           427: extern void DX_BlitRect(struct RenderInfo *ri, uae_u16 srcx, uae_u16 srcy, uae_u16 dstx, uae_u16 dsty, uae_u16 w, uae_u16 h);
        !           428: extern void DX_BlitRectFromBuffer(struct RenderInfo *ri, uae_u8* buffer, uae_u16 dstx, uae_u16 dsty, uae_u16 w, uae_u16 h);
        !           429: extern void DX_InvertRect(struct RenderInfo *ri, uae_u16 X, uae_u16 Y, uae_u16 Width, uae_u16 Height);
        !           430: extern void DX_SetPalette(int start, int count);
        !           431: extern int DX_FillResolutions (uae_u16 *);
        !           432: extern int DX_BitsPerCannon (void);
        !           433: extern void DX_Invalidate (int first, int last);
        !           434: extern void picasso_enablescreen (int on);
        !           435: 
        !           436: extern uae_u8 *gfxmemory;
        !           437: 
        !           438: struct picasso_vidbuf_description {
        !           439:     int width, height, depth;
        !           440:     int rowbytes, pixbytes;
        !           441:     int extra_mem; /* nonzero if there's a second buffer that must be updated */
        !           442: };
        !           443: 
        !           444: extern struct picasso_vidbuf_description picasso_vidinfo;
        !           445: 
        !           446: extern void gfx_set_picasso_modeinfo (int w, int h, int d);
        !           447: extern void gfx_set_picasso_baseaddr (uaecptr);
        !           448: extern void gfx_set_picasso_state (int on);
        !           449: 
        !           450: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.