|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.