Diff for /xmil/io/crtc.h between versions 1.1 and 1.15

version 1.1, 2004/08/04 17:09:25 version 1.15, 2008/06/02 20:07:31
Line 3 Line 3
 extern "C" {  extern "C" {
 #endif  #endif
   
   enum {
           CRTC_PALB               = 0,
           CRTC_PALR               = 1,
           CRTC_PALG               = 2,
           CRTC_PLY                = 3,
           CRTC_BLACK              = 4,
           CRTC_RGBPMAX    = 5
   };
   
 #define PAL_NORMAL              0x00  #define PAL_NORMAL              0x00
 #define PAL_HIGHRESO    0x01  #define PAL_HIGHRESO    0x01
   
Line 15  extern "C" { Line 24  extern "C" {
 #define PAL_4096                0x10  #define PAL_4096                0x10
   
   
 #define SCRN_BANK0                      0x00  #if !defined(SUPPORT_TURBOZ)
 #define SCRN_BANK1                      0x80  enum {
 #define SCRN_DRAW4096           0x40          DISPMODE_24KHZ                  = 0x01,
           DISPMODE_200L                   = 0x02,
 #define SCRN64_MASK                             0x0f          DISPMODE_TEXTYx2                = 0x04,
 #define SCRN64_INVALID                  0          DISPMODE_UNDERLINE              = 0x08,
 #define SCRN64_320x200                  1  
 #define SCRN64_L320x200x2               2          DISPMODE_MASKMODE               = 0x0f,
 #define SCRN64_L640x200                 3          DISPMODE_WIDTH80                = 0x40,
 #define SCRN64_H320x400                 4          DISPMODE_BANK1                  = 0x80
 #define SCRN64_320x200x4096             5  };
   #else
 #define SCRN64_320x100                  6  enum {
 #define SCRN64_320x100x2                7          DISPMODE_24KHZ                  = 0x01,
 #define SCRN64_L640x100                 8          DISPMODE_200L                   = 0x02,
 #define SCRN64_H320x200                 9          DISPMODE_TEXTYx2                = 0x04,
 #define SCRN64_320x100x4096             10          DISPMODE_UNDERLINE              = 0x08,
   
           DISPMODE_SCRN64                 = 0x10,
 #define SCRN_24KHZ              0x01    // 0:15KHz              1:24KHz          DISPMODE64_320x200              = 0x10,
 #define SCRN_200LINE    0x02    // 0:400line    1:200line          DISPMODE64_L320x200x2   = 0x11,
 #define SCRN_TEXTYx2    0x04    // 0:ノーマル   1:縦に拡大          DISPMODE64_L640x200             = 0x12,
 #define SCRN_DISPVRAM   0x08    // 0:表                 1:裏          DISPMODE64_H320x400             = 0x13,
 #define SCRN_ACCESSVRAM 0x10    // 0:表                 1:裏          DISPMODE64_320x200x4096 = 0x14,
 #define SCRN_PCGMODE    0x20    // 0:互換               1:高速          DISPMODE64_320x100              = 0x15,
 #define SCRN_CPUFONT    0x40    // 0:8ラスタ    1:16ラスタ          DISPMODE64_320x100x2    = 0x16,
 #define SCRN_UNDERLINE  0x80    // 0:なし               1:あり          DISPMODE64_L640x100             = 0x17,
           DISPMODE64_H320x200             = 0x18,
 #define SCRN_DISPCHANGE (SCRN_24KHZ | SCRN_200LINE |                                    \          DISPMODE64_320x100x4096 = 0x19,
                                                                         SCRN_TEXTYx2 | SCRN_UNDERLINE)  
           DISPMODE_MASKMODE               = 0x1f,
           DISPMODE_4096                   = 0x20,
           DISPMODE_WIDTH80                = 0x40,
           DISPMODE_BANK1                  = 0x80
   };
   #endif
   
 typedef struct {  
         UINT8   PAL_B;  
         UINT8   PAL_R;  
         UINT8   PAL_G;  
         UINT8   PLY;  
         UINT8   TEXT_PAL[8];  
         UINT8   SCRN_BITS;  
         UINT8   CRTC_NUM;  
   
         WORD    DISP_PAGE;  enum {
         WORD    FNT_XL;          SCRN_BANK0                              = 0x00,
         WORD    FNT_YL;          SCRN_BANK1                              = 0x80,
         BYTE    TXT_XL;          SCRN_WIDTH80                    = 0x40,
         BYTE    TXT_YL;          SCRN_DRAW4096                   = 0x20,
         BYTE    TXT_YS;  
         WORD    GRP_XL;          SCRN64_320x200                  = 0x10,
         WORD    GRP_YL;          SCRN64_L320x200x2               = 0x11,
         BYTE    CPU_BANK;          SCRN64_L640x200                 = 0x12,
         BYTE    CRT_BANK;          SCRN64_H320x400                 = 0x13,
           SCRN64_320x200x4096             = 0x14,
         WORD    CRT_YL;          SCRN64_320x100                  = 0x15,
         WORD    CRT_VS;          SCRN64_320x100x2                = 0x16,
         WORD    CRT_VL;          SCRN64_L640x100                 = 0x17,
           SCRN64_H320x200                 = 0x18,
           SCRN64_320x100x4096             = 0x19,
   
           SCRN64_MASK                             = 0x1f,
           SCRN64_ENABLE                   = 0x10
   };
   
   
   /*      SCRN_24KHZ              0x01    - 0:15KHz               1:24KHz
    *      SCRN_200LINE    0x02    - 0:400line             1:200line
    *      SCRN_TEXTYx2    0x04    - 0:ノーマル    1:縦に拡大
    *      SCRN_DISPVRAM   0x08    - 0:表                  1:裏
    *      SCRN_ACCESSVRAM 0x10    - 0:表                  1:裏
    *      SCRN_PCGMODE    0x20    - 0:互換                1:高速
    *      SCRN_CPUFONT    0x40    - 0:8ラスタ             1:16ラスタ
    *      SCRN_UNDERLINE  0x80    - 0:なし                1:あり
    */
   
   enum {
           SCRN_24KHZ              = 0x01,
           SCRN_200LINE    = 0x02,
           SCRN_TEXTYx2    = 0x04,
           SCRN_DISPVRAM   = 0x08,
           SCRN_ACCESSVRAM = 0x10,
           SCRN_PCGMODE    = 0x20,
           SCRN_CPUFONT    = 0x40,
           SCRN_UNDERLINE  = 0x80,
   
           SCRN_DISPCHANGE = SCRN_24KHZ + SCRN_200LINE + SCRN_TEXTYx2 + SCRN_DISPVRAM + SCRN_UNDERLINE
   };
   
   enum {
           CRTCREG_HSIZE           = 0,
           CRTCREG_HDISP           = 1,
           CRTCREG_HSYNC           = 2,
           CRTCREG_PULSE           = 3,
           CRTCREG_VSIZE           = 4,
           CRTCREG_VSIZEA          = 5,
           CRTCREG_VDISP           = 6,
           CRTCREG_VSYNC           = 7,
           CRTCREG_CHRCY           = 9,
           CRTCREG_POSH            = 12,
           CRTCREG_POSL            = 13,
   
         BYTE    TXT_VL;          CRTCREG_MAX                     = 18
         BYTE    TXT_VLA;  };
   
         WORD    TXT_TOP;  
         WORD    fnty;  
   
         UINT8   BLACKPAL;  typedef struct {
           UINT8   SCRN_BITS;
           UINT8   width40;
           UINT8   regnum;
           UINT8   padding;
           UINT8   rgbp[6];
           UINT8   reg[CRTCREG_MAX];
   #if defined(SUPPORT_TURBOZ)
         UINT8   EXTPALMODE;          UINT8   EXTPALMODE;
         UINT8   EXTGRPHPAL;          UINT8   EXTGRPHPAL;
         UINT8   ZPRY;          UINT8   ZPRY;
         UINT8   lastpal;          UINT8   lastpal;
   #endif
 } CRTCSTAT;  } CRTCSTAT;
   
 typedef struct {  typedef struct {
         UINT8   *gram;                          // curvram          UINT8   scrnflash;
         UINT    updatemask;                     // updatemsk          UINT8   scrnallflash;
         UINT8   updatebit;                      // curupdt          UINT8   remakeattr;                                                     /* doubleatrchange */
           UINT8   palandply;
   
           UINT8   *gramacc;                                                       /* curvram */
   #if (!defined(MEMOPTIMIZE)) || (MEMOPTIMIZE < 100)
           UINT    updatemask;                                                     /* updatemsk */
           UINT8   updatebit;                                                      /* curupdt */
   #else
           UINT8   updatebit;                                                      /* curupdt */
           UINT8   _padding1;
           UINT16  updatemask;                                                     /* updatemsk */
           UINT8   _padding2;
   #endif
           UINT8   dispmode;
           UINT8   existblink;                                                     /* blinkflag */
           UINT8   blinktime;
   
   #if defined(SUPPORT_TURBOZ)
           UINT8   pal_bank;
           UINT8   pal_disp;
           UINT8   pal_padding[2];
   #endif
   
           SINT32  rasterclock8;
           SINT32  rasterdisp8;
           SINT32  frameclock;
           UINT    fonty;
           UINT    yl;
           UINT    pos;
 } CRTCEXT;  } CRTCEXT;
   
   #if defined(SUPPORT_TURBOZ)
   typedef struct {
           UINT8   text[8];
           UINT16  grph[2][64];
           UINT16  grph4096[4096];
   } CRTCPAL;
   #endif
   
 typedef struct {  typedef struct {
         CRTCSTAT        s;  
         CRTCEXT         e;          CRTCEXT         e;
           CRTCSTAT        s;
   #if defined(SUPPORT_TURBOZ)
           CRTCPAL         p;
   #endif
 } CRTC;  } CRTC;
   
   
 extern  BYTE    crtc_TEXTPAL[8];  /* functions */
 extern  WORD    crtc_GRPHPAL[2][64];  
 extern  WORD    crtc_PAL4096[4096];  
   
   void crtc_setwidth(REG8 width40);
   void crtc_update(void);
   
 //**********************************************************************  void IOOUTCALL crtc_o(UINT port, REG8 value);
   
 void vrambank_patch(void);  void IOOUTCALL scrn_o(UINT port, REG8 value);
   REG8 IOINPCALL scrn_i(UINT port);
   
 void IOOUTCALL crtc_o(UINT port, REG8 value);                   // x1_crtc_w  void IOOUTCALL ply_o(UINT port, REG8 value);
   void IOOUTCALL palette_o(UINT port, REG8 value);
   
 void IOOUTCALL scrn_o(UINT port, REG8 value);                   // x1_scrn_w  void IOOUTCALL blackctrl_o(UINT port, REG8 value);
 REG8 IOINPCALL scrn_i(UINT port);                                               // x1_scrn_r  REG8 IOINPCALL blackctrl_i(UINT port);
   
 void IOOUTCALL ply_o(UINT port, REG8 value);                    // x1_ply_w  
 REG8 IOINPCALL ply_i(UINT port);                                                // x1_ply_r  
   
 void IOOUTCALL palette_o(UINT port, REG8 value);                // x1_palet_w  #if defined(SUPPORT_TURBOZ)
 REG8 IOINPCALL palette_i(UINT port);                                    // x1_palet_r  REG8 IOINPCALL ply_i(UINT port);
   REG8 IOINPCALL palette_i(UINT port);
   
 void IOOUTCALL extpal_o(UINT port, REG8 value);                 // x1_extpal_w  void IOOUTCALL extpal_o(UINT port, REG8 value);
 REG8 IOINPCALL extpal_i(UINT port);                                             // x1_extpal_r  REG8 IOINPCALL extpal_i(UINT port);
   void IOOUTCALL extgrphpal_o(UINT port, REG8 value);
 void IOOUTCALL extgrphpal_o(UINT port, REG8 value);             // x1_extgrphpal_w  REG8 IOINPCALL extgrphpal_i(UINT port);
 REG8 IOINPCALL extgrphpal_i(UINT port);                                 // x1_extgrphpal_r  void IOOUTCALL exttextpal_o(UINT port, REG8 value);
   REG8 IOINPCALL exttextpal_i(UINT port);
 void IOOUTCALL exttextpal_o(UINT port, REG8 value);             // x1_exttextpal_w  void IOOUTCALL exttextdisp_o(UINT port, REG8 value);
 REG8 IOINPCALL exttextpal_i(UINT port);                                 // x1_exttextpal_r  REG8 IOINPCALL exttextdisp_i(UINT port);
   #endif
 void IOOUTCALL exttextdisp_o(UINT port, REG8 value);    // x1_exttextdisp_w  
 REG8 IOINPCALL exttextdisp_i(UINT port);                                // x1_exttextdisp_r  
   
 void IOOUTCALL blackctrl_o(UINT port, REG8 value);              // x1_blackctrl_w  
 REG8 IOINPCALL blackctrl_i(UINT port);                                  // x1_blackctrl_r  
   
   #if defined(SUPPORT_TURBOZ)
 void crtc_initialize(void);  void crtc_initialize(void);
   #else
   #define crtc_initialize()
   #endif
 void crtc_reset(void);  void crtc_reset(void);
   void crtc_forcesetwidth(REG8 width);
   
 #ifdef __cplusplus  #ifdef __cplusplus
 }  }

Removed from v.1.1  
changed lines
  Added in v.1.15


RetroPC.NET-CVS <cvs@retropc.net>