|
|
| version 1.4, 2003/10/19 14:56:15 | version 1.7, 2003/12/01 10:45:46 |
|---|---|
| Line 4 | Line 4 |
| #include "memory.h" | #include "memory.h" |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #include "gdc_cmd.tbl" | |
| #include "palettes.h" | |
| #include "vram.h" | #include "vram.h" |
| #include "palettes.h" | |
| #include "gdc_cmd.tbl" | |
| #define SEARHC_SYNC | #define SEARHC_SYNC |
| #define TURE_SYNC | #define TURE_SYNC |
| extern BYTE screenupdate; | |
| static const BYTE defdegpal[4] = {0x04,0x15,0x26,0x37}; | static const BYTE defdegpal[4] = {0x04,0x15,0x26,0x37}; |
| static const BYTE defsync[8] = {0x10,0x4e,0x07,0x25,0x07,0x07,0x90,0x65}; | static const BYTE defsync[8] = {0x10,0x4e,0x07,0x25,0x07,0x07,0x90,0x65}; |
| Line 394 static BYTE IOINPCALL gdc_i60(UINT port) | Line 392 static BYTE IOINPCALL gdc_i60(UINT port) |
| gdc_work(GDCWORK_MASTER); | gdc_work(GDCWORK_MASTER); |
| } | } |
| #ifdef SEARHC_SYNC | #ifdef SEARHC_SYNC |
| if ((i286reg.inport) && (I286_REMCLOCK >= 5)) { | if ((i286core.s.inport) && (I286_REMCLOCK >= 5)) { |
| UINT16 jadr = 0xfa74; | UINT16 jadr = 0xfa74; |
| UINT16 memv; | UINT16 memv; |
| memv = i286_memoryread_w(i286reg.inport); | memv = i286_memoryread_w(i286core.s.inport); |
| while((memv == 0x00eb) || (memv == 0x5fe6)) { | while((memv == 0x00eb) || (memv == 0x5fe6)) { |
| jadr -= 0x200; | jadr -= 0x200; |
| i286reg.inport += 2; | i286core.s.inport += 2; |
| memv = i286_memoryread_w(i286reg.inport); | memv = i286_memoryread_w(i286core.s.inport); |
| } | } |
| if ((memv == 0x20a8) || (memv == 0x2024)) { | if ((memv == 0x20a8) || (memv == 0x2024)) { |
| memv = i286_memoryread_w(i286reg.inport + 2); | memv = i286_memoryread_w(i286core.s.inport + 2); |
| if (memv == jadr) { // je | if (memv == jadr) { // je |
| if (!gdc.vsync) { | if (!gdc.vsync) { |
| I286_REMCLOCK = -1; | I286_REMCLOCK = -1; |
| Line 455 static void IOOUTCALL gdc_oa0(UINT port, | Line 453 static void IOOUTCALL gdc_oa0(UINT port, |
| if (gdc.s.cnt < GDCCMD_MAX) { | if (gdc.s.cnt < GDCCMD_MAX) { |
| gdc.s.fifo[gdc.s.cnt++] = dat; | gdc.s.fifo[gdc.s.cnt++] = dat; |
| } | } |
| // TRACEOUT(("GDC-B %.2x", dat)); | |
| if (gdc.s.paracb) { // ver0.29 | if (gdc.s.paracb) { // ver0.29 |
| gdc_work(GDCWORK_SLAVE); | gdc_work(GDCWORK_SLAVE); |
| } | } |
| Line 466 static void IOOUTCALL gdc_oa2(UINT port, | Line 465 static void IOOUTCALL gdc_oa2(UINT port, |
| if (gdc.s.cnt < GDCCMD_MAX) { | if (gdc.s.cnt < GDCCMD_MAX) { |
| gdc.s.fifo[gdc.s.cnt++] = 0x100 | dat; | gdc.s.fifo[gdc.s.cnt++] = 0x100 | dat; |
| } | } |
| // TRACEOUT(("GDC-A %.2x", dat)); | |
| gdc_work(GDCWORK_SLAVE); | gdc_work(GDCWORK_SLAVE); |
| (void)port; | (void)port; |
| } | } |
| Line 559 static BYTE IOINPCALL gdc_ia0(UINT port) | Line 559 static BYTE IOINPCALL gdc_ia0(UINT port) |
| gdc_work(GDCWORK_SLAVE); | gdc_work(GDCWORK_SLAVE); |
| } | } |
| #ifdef SEARHC_SYNC | #ifdef SEARHC_SYNC |
| if ((i286reg.inport) && (I286_REMCLOCK >= 5)) { | if ((i286core.s.inport) && (I286_REMCLOCK >= 5)) { |
| UINT16 jadr = 0xfa74; | UINT16 jadr = 0xfa74; |
| UINT16 memv; | UINT16 memv; |
| memv = i286_memoryread_w(i286reg.inport); | memv = i286_memoryread_w(i286core.s.inport); |
| while((memv == 0x00eb) || (memv == 0x5fe6)) { | while((memv == 0x00eb) || (memv == 0x5fe6)) { |
| jadr -= 0x200; | jadr -= 0x200; |
| i286reg.inport += 2; | i286core.s.inport += 2; |
| memv = i286_memoryread_w(i286reg.inport); | memv = i286_memoryread_w(i286core.s.inport); |
| } | } |
| if ((memv == 0x20a8) || (memv == 0x2024)) { | if ((memv == 0x20a8) || (memv == 0x2024)) { |
| memv = i286_memoryread_w(i286reg.inport + 2); | memv = i286_memoryread_w(i286core.s.inport + 2); |
| if (memv == jadr) { // je | if (memv == jadr) { // je |
| if (!gdc.vsync) { | if (!gdc.vsync) { |
| I286_REMCLOCK = -1; | I286_REMCLOCK = -1; |