#if 0//def WIN32 #include "picasso96_win.h" #else /* * UAE - The U*nix Amiga Emulator * * Picasso96 Support Module Header * * Copyright 1997 Brian King */ #if defined PICASSO96_SUPPORTED #define PICASSO96 /* Seems the same routines copy back and forth ;-) */ #define PIC_READ (SPECIAL_MEM_READ|SPECIAL_MEM_WRITE) #define PIC_WRITE (SPECIAL_MEM_READ|SPECIAL_MEM_WRITE) #define JAM1 0 #define JAM2 1 #define COMP 2 #define INVERS 4 typedef enum { BLIT_FALSE, BLIT_NOR, BLIT_ONLYDST, BLIT_NOTSRC, BLIT_ONLYSRC, BLIT_NOTDST, BLIT_EOR, BLIT_NAND, BLIT_AND, BLIT_NEOR, BLIT_DST, BLIT_NOTONLYSRC, BLIT_SRC, BLIT_NOTONLYDST, BLIT_OR, BLIT_TRUE, BLIT_LAST } BLIT_OPCODE; /************************************************************************/ /* Types for BoardType Identification */ typedef enum { BT_NoBoard, BT_oMniBus, BT_Graffity, BT_CyberVision, BT_Domino, BT_Merlin, BT_PicassoII, BT_Piccolo, BT_RetinaBLT, BT_Spectrum, BT_PicassoIV, BT_PiccoloSD64, BT_A2410, BT_Pixel64, BT_uaegfx, BT_CVision3D, BT_Altais, BT_Prototype1, BT_Prototype2, BT_Prototype3, BT_Prototype4, BT_Prototype5, BT_MaxBoardTypes } BTYPE; struct ScreenResolution { uae_u32 width; /* in pixels */ uae_u32 height; /* in pixels */ }; #define MAX_PICASSO_MODES 64 struct PicassoResolution { struct Resolutions *next; struct ScreenResolution res; int depth; int refresh; char name[25]; }; extern struct PicassoResolution DisplayModes[MAX_PICASSO_MODES]; /* Types for RGBFormat used */ typedef enum { RGBFB_NONE, /* no valid RGB format (should not happen) */ RGBFB_CLUT, /* palette mode, set colors when opening screen using tags or use SetRGB32/LoadRGB32(...) */ RGBFB_R8G8B8, /* TrueColor RGB (8 bit each) */ RGBFB_B8G8R8, /* TrueColor BGR (8 bit each) */ RGBFB_R5G6B5PC, /* HiColor16 (5 bit R, 6 bit G, 5 bit B), format: gggbbbbbrrrrrggg */ RGBFB_R5G5B5PC, /* HiColor15 (5 bit each), format: gggbbbbb0rrrrrgg */ RGBFB_A8R8G8B8, /* 4 Byte TrueColor ARGB (A unused alpha channel) */ RGBFB_A8B8G8R8, /* 4 Byte TrueColor ABGR (A unused alpha channel) */ RGBFB_R8G8B8A8, /* 4 Byte TrueColor RGBA (A unused alpha channel) */ RGBFB_B8G8R8A8, /* 4 Byte TrueColor BGRA (A unused alpha channel) */ RGBFB_R5G6B5, /* HiColor16 (5 bit R, 6 bit G, 5 bit B), format: rrrrrggggggbbbbb */ RGBFB_R5G5B5, /* HiColor15 (5 bit each), format: 0rrrrrgggggbbbbb */ RGBFB_B5G6R5PC, /* HiColor16 (5 bit R, 6 bit G, 5 bit B), format: gggrrrrrbbbbbggg */ RGBFB_B5G5R5PC, /* HiColor15 (5 bit each), format: gggrrrrr0bbbbbbgg */ /* By now, the following formats are for use with a hardware window only (bitmap operations may be implemented incompletely) */ RGBFB_Y4U2V2, /* 2 Byte TrueColor YUV (CCIR recommendation CCIR601). Each two-pixel unit is stored as one longword containing luminance (Y) for each of the two pixels, and chrominance (U,V) for alternate pixels. The missing chrominance values are generated by interpolation. (Y1-U0-Y0-V0) */ RGBFB_Y4U1V1, /* 1 Byte TrueColor ACCUPAK. Four adjacent pixels form a packet of 5 bits Y (luminance) each pixel and 6 bits U and V (chrominance) shared by the four pixels */ RGBFB_MaxFormats } RGBFTYPE; #define RGBFF_NONE (1< #else struct BitMap { uae_u16 BytesPerRow; uae_u16 Rows; uae_u8 Flags; uae_u8 Depth; uae_u16 pad; uae_u8 *Planes[8]; }; #endif /************************************************************************/ #define SETTINGSNAMEMAXCHARS 30 #define BOARDNAMEMAXCHARS 30 struct Settings { uae_u32 BoardType; /* a value discribing assignment to nth board local to boardtype * to be used for reassignment when boards are added or removed. */ uae_u16 LocalOrdering; uae_s16 LastSelected; char NameField[SETTINGSNAMEMAXCHARS]; /* neu! */ char *BoardName; }; #define MAXRESOLUTIONNAMELENGTH 22 /******************************** * only used within rtg.library * ********************************/ #define PSSO_LibResolution_P96ID 14 #define PSSO_LibResolution_Name 20 #define PSSO_LibResolution_DisplayID 42 /* Name + MAXRESOLUTIONNAMELENGTH */ #define PSSO_LibResolution_Width 46 #define PSSO_LibResolution_Height 48 #define PSSO_LibResolution_Flags 50 #define PSSO_LibResolution_Modes 52 #define PSSO_LibResolution_BoardInfo (52 + MAXMODES*4) #define PSSO_LibResolution_sizeof (60 + MAXMODES*4) struct LibResolution { char P96ID[6]; char Name[MAXRESOLUTIONNAMELENGTH]; uae_u32 DisplayID; uae_u16 Width; uae_u16 Height; uae_u16 Flags; uaecptr Modes[MAXMODES]; uaecptr BoardInfo; }; #define P96B_FAMILY 0 /* obsolete (Resolution is an entire family) */ #define P96B_PUBLIC 1 /* Resolution should be added to the public */ #define P96B_MONITOOL 2 #define P96F_FAMILY (1<