|
|
| version 1.15, 2004/02/11 04:22:18 | version 1.19, 2004/02/18 21:58:41 |
|---|---|
| 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] & 0x08) { | if (vect->ope & 0x08) { |
| gdcsub_line(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW), | gdcsub_vectl(csrw, vect, textw, ope); |
| textw, gdc.s.para[GDC_WRITE]); | } |
| } | if (vect->ope & 0x10) { // undocumented |
| if (gdc.s.para[GDC_VECTW] & 0x20) { | gdcsub_vectt(csrw, vect, textw, ope); |
| gdcsub_circle(csrw, (GDCVECT *)(gdc.s.para + GDC_VECTW), | } |
| textw, gdc.s.para[GDC_WRITE]); | if (vect->ope & 0x20) { |
| } | gdcsub_vectc(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_vectr(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_vectl(csrw, vect, textw, ope); | |
| } | |
| if (vect->ope & 0x10) { | |
| gdcsub_text(csrw, vect, gdc.s.para + GDC_TEXTW, ope); | |
| } | |
| if (vect->ope & 0x20) { // undocumented | |
| gdcsub_vectc(csrw, vect, textw, ope); | |
| } | |
| if (vect->ope & 0x40) { // undocumented | |
| gdcsub_vectr(csrw, vect, textw, ope); | |
| } | } |
| } | } |
| Line 154 void gdc_work(int id) { | Line 173 void gdc_work(int id) { |
| UINT i; | UINT i; |
| BYTE data; | BYTE data; |
| item = (id==GDCWORK_MASTER)?&gdc.m:&gdc.s; | item = (id == GDCWORK_MASTER)?&gdc.m:&gdc.s; |
| dispflag = (id==GDCWORK_MASTER)?&gdcs.textdisp:&gdcs.grphdisp; | dispflag = (id == GDCWORK_MASTER)?&gdcs.textdisp:&gdcs.grphdisp; |
| for (i=0; i<item->cnt; i++) { | for (i=0; i<item->cnt; i++) { |
| data = (BYTE)item->fifo[i]; | data = (BYTE)item->fifo[i]; |
| Line 778 void gdc_reset(void) { | Line 797 void gdc_reset(void) { |
| gdc.display = 2; | gdc.display = 2; |
| } | } |
| gdc.bitac = 0xff; | gdc.bitac = 0xff; |
| #if 0 // bind で計算される筈 | |
| gdc.rasterclock = pccore.realclock / 24816; | |
| gdc.hsyncclock = (gdc.rasterclock * 4) / 5; | |
| gdc.dispclock = pccore.realclock * 50 / 3102; | |
| gdc.vsyncclock = pccore.realclock * 5 / 3102; | |
| #endif | |
| } | } |
| void gdc_bind(void) { | void gdc_bind(void) { |