Annotation of uae/src/include/picasso96.h, revision 1.1.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.