|
|
| version 1.2, 2003/10/18 00:35:35 | version 1.5, 2003/12/08 00:55:32 |
|---|---|
| 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: |