|
|
| version 1.14, 2004/02/09 20:39:39 | version 1.16, 2004/02/11 17:39:59 |
|---|---|
| Line 9 | Line 9 |
| #include "timing.h" | #include "timing.h" |
| #define SEARHC_SYNC | #define SEARCH_SYNC |
| #define TURE_SYNC | #define TURE_SYNC |
| typedef struct { | typedef struct { |
| Line 30 static const GDCCLK gdcclk[] = { | Line 30 static const GDCCLK gdcclk[] = { |
| static const UINT8 defdegpal[4] = {0x04,0x15,0x26,0x37}; | static const UINT8 defdegpal[4] = {0x04,0x15,0x26,0x37}; |
| static const UINT8 defsyncm15[8] = {0x10,0x4e,0x07,0x25,0x0d,0x0f,0xc8,0x94}; | static const UINT8 defsyncm15[8] = {0x10,0x4e,0x07,0x25,0x0d,0x0f,0xc8,0x94}; |
| static const UINT8 defsyncs15[8] = {0x06,0x26,0x03,0x11,0x86,0x0f,0xc8,0x84}; | static const UINT8 defsyncs15[8] = {0x06,0x26,0x03,0x11,0x86,0x0f,0xc8,0x94}; |
| static const UINT8 defsyncm24[8] = {0x10,0x4e,0x07,0x25,0x07,0x07,0x90,0x65}; | static const UINT8 defsyncm24[8] = {0x10,0x4e,0x07,0x25,0x07,0x07,0x90,0x65}; |
| static const UINT8 defsyncs24[8] = {0x06,0x26,0x03,0x11,0x83,0x07,0x90,0x65}; | static const UINT8 defsyncs24[8] = {0x06,0x26,0x03,0x11,0x83,0x07,0x90,0x65}; |
| Line 115 void gdc_paletteinit(void) { | Line 115 void gdc_paletteinit(void) { |
| static void vectdraw(void) { | static void vectdraw(void) { |
| UINT32 csrw; | UINT32 csrw; |
| UINT16 textw; | const GDCVECT *vect; |
| REG16 textw; | |
| REG8 ope; | |
| csrw = LOADINTELDWORD(gdc.s.para + GDC_CSRW); | csrw = LOADINTELDWORD(gdc.s.para + GDC_CSRW); |
| vect = (GDCVECT *)(gdc.s.para + GDC_VECTW); | |
| textw = LOADINTELWORD(gdc.s.para + GDC_TEXTW); | textw = LOADINTELWORD(gdc.s.para + GDC_TEXTW); |
| ope = gdc.s.para[GDC_WRITE]; | |
| if (gdc.s.para[GDC_VECTW] & 0x8) { | if (vect->ope & 0x08) { |
| gdcsub_line(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW), | gdcsub_line(csrw, vect, textw, ope); |
| textw, gdc.s.para[GDC_WRITE]); | } |
| } | if (vect->ope & 0x10) { // undocumented |
| if (gdc.s.para[GDC_VECTW] & 0x20) { | gdcsub_txt(csrw, vect, textw, ope); |
| gdcsub_circle(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW), | } |
| textw, gdc.s.para[GDC_WRITE]); | if (vect->ope & 0x20) { |
| } | gdcsub_circle(csrw, vect, textw, ope); |
| if (gdc.s.para[GDC_VECTW] & 0x40) { | } |
| gdcsub_box(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW), | if (vect->ope & 0x40) { |
| textw, gdc.s.para[GDC_WRITE]); | gdcsub_box(csrw, vect, textw, ope); |
| } | } |
| } | } |
| static void textdraw(void) { | static void textdraw(void) { |
| UINT32 csrw; | UINT32 csrw; |
| const GDCVECT *vect; | |
| REG16 textw; | |
| REG8 ope; | |
| if (gdc.s.para[GDC_VECTW] & 0x10) { | csrw = LOADINTELDWORD(gdc.s.para + GDC_CSRW); |
| csrw = LOADINTELDWORD(gdc.s.para + GDC_CSRW); | vect = (GDCVECT *)(gdc.s.para + GDC_VECTW); |
| gdcsub_text(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW), | textw = gdc.s.para[GDC_TEXTW + 7]; |
| gdc.s.para + GDC_TEXTW, | textw = (textw << 8) + textw; |
| gdc.s.para[GDC_WRITE]); | ope = gdc.s.para[GDC_WRITE]; |
| if (vect->ope & 0x08) { // undocumented | |
| gdcsub_line(csrw, vect, textw, ope); | |
| } | |
| if (vect->ope & 0x10) { | |
| gdcsub_text(csrw, vect, gdc.s.para + GDC_TEXTW, ope); | |
| } | |
| if (vect->ope & 0x20) { // undocumented | |
| gdcsub_circle(csrw, vect, textw, ope); | |
| } | |
| if (vect->ope & 0x40) { // undocumented | |
| gdcsub_box(csrw, vect, textw, ope); | |
| } | } |
| } | } |
| Line 211 void gdc_work(int id) { | Line 230 void gdc_work(int id) { |
| textdraw(); | textdraw(); |
| } | } |
| break; | break; |
| } | } |
| item->ptr = gdc_cmd[data].pos; | item->ptr = gdc_cmd[data].pos; |
| item->rcv = gdc_cmd[data].outdatas; | item->rcv = gdc_cmd[data].outdatas; |
| Line 499 static REG8 IOINPCALL gdc_i60(UINT port) | Line 517 static REG8 IOINPCALL gdc_i60(UINT port) |
| else { | else { |
| gdc_work(GDCWORK_MASTER); | gdc_work(GDCWORK_MASTER); |
| } | } |
| #ifdef SEARHC_SYNC | #ifdef SEARCH_SYNC |
| if ((CPU_INPADRS) && (CPU_REMCLOCK >= 5)) { | if ((CPU_INPADRS) && (CPU_REMCLOCK >= 5)) { |
| UINT16 jadr = 0xfa74; | UINT16 jadr = 0xfa74; |
| UINT16 memv; | UINT16 memv; |
| Line 667 static REG8 IOINPCALL gdc_ia0(UINT port) | Line 685 static REG8 IOINPCALL gdc_ia0(UINT port) |
| gdc_work(GDCWORK_SLAVE); | gdc_work(GDCWORK_SLAVE); |
| TRACEOUT(("gdc.s.cnt=%d", gdc.s.cnt)); | TRACEOUT(("gdc.s.cnt=%d", gdc.s.cnt)); |
| } | } |
| #ifdef SEARHC_SYNC | #ifdef SEARCH_SYNC |
| if ((CPU_INPADRS) && (CPU_REMCLOCK >= 5)) { | if ((CPU_INPADRS) && (CPU_REMCLOCK >= 5)) { |
| UINT16 jadr = 0xfa74; | UINT16 jadr = 0xfa74; |
| UINT16 memv; | UINT16 memv; |