Diff for /np2/io/egc.c between versions 1.2 and 1.6

version 1.2, 2003/10/18 00:35:35 version 1.6, 2004/01/23 15:05:05
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "memory.h"  #include        "cpucore.h"
 #include        "egcmem.h"  #include        "egcmem.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
Line 8 Line 8
   
 // エンディアン修正しる。  // エンディアン修正しる。
   
 const UINT32 maskword[16][2] = {  static const UINT16 maskword[16][4] = {
                                                 {0x00000000, 0x00000000}, {0x0000ffff, 0x00000000},                                  {0x0000,0x0000,0x0000,0x0000}, {0xffff,0x0000,0x0000,0x0000},
                                                 {0xffff0000, 0x00000000}, {0xffffffff, 0x00000000},                                  {0x0000,0xffff,0x0000,0x0000}, {0xffff,0xffff,0x0000,0x0000},
                                                 {0x00000000, 0x0000ffff}, {0x0000ffff, 0x0000ffff},                                  {0x0000,0x0000,0xffff,0x0000}, {0xffff,0x0000,0xffff,0x0000},
                                                 {0xffff0000, 0x0000ffff}, {0xffffffff, 0x0000ffff},                                  {0x0000,0xffff,0xffff,0x0000}, {0xffff,0xffff,0xffff,0x0000},
                                                 {0x00000000, 0xffff0000}, {0x0000ffff, 0xffff0000},                                  {0x0000,0x0000,0x0000,0xffff}, {0xffff,0x0000,0x0000,0xffff},
                                                 {0xffff0000, 0xffff0000}, {0xffffffff, 0xffff0000},                                  {0x0000,0xffff,0x0000,0xffff}, {0xffff,0xffff,0x0000,0xffff},
                                                 {0x00000000, 0xffffffff}, {0x0000ffff, 0xffffffff},                                  {0x0000,0x0000,0xffff,0xffff}, {0xffff,0x0000,0xffff,0xffff},
                                                 {0xffff0000, 0xffffffff}, {0xffffffff, 0xffffffff}};                                  {0x0000,0xffff,0xffff,0xffff}, {0xffff,0xffff,0xffff,0xffff}};
   
   
 static void IOOUTCALL egc_o4a0(UINT port, BYTE value) {  static void IOOUTCALL egc_o4a0(UINT port, REG8 value) {
   
         if (!(vramop.operate & VOP_EGCBIT)) {          if (!(vramop.operate & VOP_EGCBIT)) {
                 return;                  return;
Line 57  static void IOOUTCALL egc_o4a0(UINT port Line 57  static void IOOUTCALL egc_o4a0(UINT port
                 case 0x06:                  case 0x06:
                         egc.fg &= 0xff00;                          egc.fg &= 0xff00;
                         egc.fg |= value;                          egc.fg |= value;
                         egc.fgc.d[0] = maskword[value & 15][0];                          egc.fgc.d[0] = *(UINT32 *)(maskword[value & 15] + 0);
                         egc.fgc.d[1] = maskword[value & 15][1];                          egc.fgc.d[1] = *(UINT32 *)(maskword[value & 15] + 2);
                         break;                          break;
                 case 0x07:                  case 0x07:
                         egc.fg &= 0x00ff;                          egc.fg &= 0x00ff;
Line 67  static void IOOUTCALL egc_o4a0(UINT port Line 67  static void IOOUTCALL egc_o4a0(UINT port
   
                 case 0x08:                  case 0x08:
                         if (!(egc.fgbg & 0x6000)) {                          if (!(egc.fgbg & 0x6000)) {
                                 egc.mask._b[EGCADDR_L] = value;                                  egc.mask._b[0] = value;
                         }                          }
                         break;                          break;
                 case 0x09:                  case 0x09:
                         if (!(egc.fgbg & 0x6000)) {                          if (!(egc.fgbg & 0x6000)) {
                                 egc.mask._b[EGCADDR_H] = value;                                  egc.mask._b[1] = value;
                         }                          }
                         break;                          break;
   
                 case 0x0a:                  case 0x0a:
                         egc.bg &= 0xff00;                          egc.bg &= 0xff00;
                         egc.bg |= value;                          egc.bg |= value;
                         egc.bgc.d[0] = maskword[value & 15][0];                          egc.bgc.d[0] = *(UINT32 *)(maskword[value & 15] + 0);
                         egc.bgc.d[1] = maskword[value & 15][1];                          egc.bgc.d[1] = *(UINT32 *)(maskword[value & 15] + 2);
                         break;                          break;
                 case 0x0b:                  case 0x0b:
                         egc.bg &= 0x00ff;                          egc.bg &= 0x00ff;
Line 130  void egc_bind(void) { Line 130  void egc_bind(void) {
         }          }
 }  }
   
 void IOOUTCALL egc_w16(UINT port, UINT16 value) {  void IOOUTCALL egc_w16(UINT port, REG16 value) {
   
         if (!(vramop.operate & VOP_EGCBIT)) {          if (!(vramop.operate & VOP_EGCBIT)) {
                 return;                  return;
Line 152  void IOOUTCALL egc_w16(UINT port, UINT16 Line 152  void IOOUTCALL egc_w16(UINT port, UINT16
   
                 case 0x06:                  case 0x06:
                         egc.fg = value;                          egc.fg = value;
                         egc.fgc.d[0] = maskword[value & 15][0];                          egc.fgc.d[0] = *(UINT32 *)(maskword[value & 15] + 0);
                         egc.fgc.d[1] = maskword[value & 15][1];                          egc.fgc.d[1] = *(UINT32 *)(maskword[value & 15] + 2);
                         break;                          break;
   
                 case 0x08:                  case 0x08:
Line 164  void IOOUTCALL egc_w16(UINT port, UINT16 Line 164  void IOOUTCALL egc_w16(UINT port, UINT16
   
                 case 0x0a:                  case 0x0a:
                         egc.bg = value;                          egc.bg = value;
                         egc.bgc.d[0] = maskword[value & 15][0];                          egc.bgc.d[0] = *(UINT32 *)(maskword[value & 15] + 0);
                         egc.bgc.d[1] = maskword[value & 15][1];                          egc.bgc.d[1] = *(UINT32 *)(maskword[value & 15] + 2);
                         break;                          break;
   
                 case 0x0c:                  case 0x0c:

Removed from v.1.2  
changed lines
  Added in v.1.6


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