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

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

unix.superglobalmegacorp.com

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