|
|
| version 1.5, 2004/01/30 14:33:27 | version 1.8, 2004/02/09 20:39:39 |
|---|---|
| Line 64 static void calc_gdcslavewait(UINT dots) | Line 64 static void calc_gdcslavewait(UINT dots) |
| nevent_set(NEVENT_GDCSLAVE, clk, gdcslavewait, NEVENT_ABSOLUTE); | nevent_set(NEVENT_GDCSLAVE, clk, gdcslavewait, NEVENT_ABSOLUTE); |
| } | } |
| void gdcsub_line(UINT32 csrw, const GDCVECT *vect, UINT16 pat, BYTE ope) { | void gdcsub_null(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope) { |
| (void)csrw; | |
| (void)vect; | |
| (void)pat; | |
| (void)ope; | |
| } | |
| void gdcsub_line(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope) { | |
| _GDCPSET pset; | _GDCPSET pset; |
| UINT dc; | UINT dc; |
| UINT16 x; | REG16 x; |
| UINT16 y; | REG16 y; |
| UINT i; | UINT i; |
| UINT16 step; | UINT16 step; |
| UINT d1; | UINT d1; |
| Line 87 void gdcsub_line(UINT32 csrw, const GDCV | Line 95 void gdcsub_line(UINT32 csrw, const GDCV |
| case 0: | case 0: |
| for (i=0; i<=dc; i++) { | for (i=0; i<=dc; i++) { |
| step = (UINT16)((((d1 * i) / dc) + 1) >> 1); | step = (UINT16)((((d1 * i) / dc) + 1) >> 1); |
| gdcpset(&pset, (UINT16)(x + step), y++); | gdcpset(&pset, (REG16)(x + step), y++); |
| } | } |
| break; | break; |
| case 1: | case 1: |
| for (i=0; i<=dc; i++) { | for (i=0; i<=dc; i++) { |
| step = (UINT16)((((d1 * i) / dc) + 1) >> 1); | step = (UINT16)((((d1 * i) / dc) + 1) >> 1); |
| gdcpset(&pset, x++, (UINT16)(y + step)); | gdcpset(&pset, x++, (REG16)(y + step)); |
| } | } |
| break; | break; |
| case 2: | case 2: |
| for (i=0; i<=dc; i++) { | for (i=0; i<=dc; i++) { |
| step = (UINT16)((((d1 * i) / dc) + 1) >> 1); | step = (UINT16)((((d1 * i) / dc) + 1) >> 1); |
| gdcpset(&pset, x++, (UINT16)(y - step)); | gdcpset(&pset, x++, (REG16)(y - step)); |
| } | } |
| break; | break; |
| case 3: | case 3: |
| for (i=0; i<=dc; i++) { | for (i=0; i<=dc; i++) { |
| step = (UINT16)((((d1 * i) / dc) + 1) >> 1); | step = (UINT16)((((d1 * i) / dc) + 1) >> 1); |
| gdcpset(&pset, (UINT16)(x + step), y--); | gdcpset(&pset, (REG16)(x + step), y--); |
| } | } |
| break; | break; |
| case 4: | case 4: |
| for (i=0; i<=dc; i++) { | for (i=0; i<=dc; i++) { |
| step = (UINT16)((((d1 * i) / dc) + 1) >> 1); | step = (UINT16)((((d1 * i) / dc) + 1) >> 1); |
| gdcpset(&pset, (UINT16)(x - step), y--); | gdcpset(&pset, (REG16)(x - step), y--); |
| } | } |
| break; | break; |
| case 5: | case 5: |
| for (i=0; i<=dc; i++) { | for (i=0; i<=dc; i++) { |
| step = (UINT16)((((d1 * i) / dc) + 1) >> 1); | step = (UINT16)((((d1 * i) / dc) + 1) >> 1); |
| gdcpset(&pset, x--, (UINT16)(y - step)); | gdcpset(&pset, x--, (REG16)(y - step)); |
| } | } |
| break; | break; |
| case 6: | case 6: |
| for (i=0; i<=dc; i++) { | for (i=0; i<=dc; i++) { |
| step = (UINT16)((((d1 * i) / dc) + 1) >> 1); | step = (UINT16)((((d1 * i) / dc) + 1) >> 1); |
| gdcpset(&pset, x--, (UINT16)(y + step)); | gdcpset(&pset, x--, (REG16)(y + step)); |
| } | } |
| break; | break; |
| case 7: | case 7: |
| for (i=0; i<=dc; i++) { | for (i=0; i<=dc; i++) { |
| step = (UINT16)((((d1 * i) / dc) + 1) >> 1); | step = (UINT16)((((d1 * i) / dc) + 1) >> 1); |
| gdcpset(&pset, (UINT16)(x - step), y++); | gdcpset(&pset, (REG16)(x - step), y++); |
| } | } |
| break; | break; |
| } | } |
| Line 144 void gdcsub_line(UINT32 csrw, const GDCV | Line 152 void gdcsub_line(UINT32 csrw, const GDCV |
| calc_gdcslavewait(pset.dots); | calc_gdcslavewait(pset.dots); |
| } | } |
| void gdcsub_box(UINT32 csrw, const GDCVECT *vect, UINT16 pat, BYTE ope) { | void gdcsub_box(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope) { |
| _GDCPSET pset; | _GDCPSET pset; |
| UINT d; | UINT d; |
| UINT d2; | UINT d2; |
| UINT16 x; | REG16 x; |
| UINT16 y; | REG16 y; |
| UINT i; | UINT i; |
| gdcpset_prepare(&pset, csrw, pat, ope); | gdcpset_prepare(&pset, csrw, pat, ope); |
| Line 223 void gdcsub_box(UINT32 csrw, const GDCVE | Line 231 void gdcsub_box(UINT32 csrw, const GDCVE |
| calc_gdcslavewait(pset.dots); | calc_gdcslavewait(pset.dots); |
| } | } |
| void gdcsub_circle(UINT32 csrw, const GDCVECT *vect, UINT16 pat, BYTE ope) { | void gdcsub_circle(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope) { |
| _GDCPSET pset; | _GDCPSET pset; |
| UINT r; | UINT r; |
| Line 253 void gdcsub_circle(UINT32 csrw, const GD | Line 261 void gdcsub_circle(UINT32 csrw, const GD |
| for (; i<=t; i++) { | for (; i<=t; i++) { |
| s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); | s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); |
| s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; | s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; |
| gdcpset(&pset, (UINT16)(x + s), (UINT16)(y + i)); | gdcpset(&pset, (REG16)(x + s), (REG16)(y + i)); |
| } | } |
| break; | break; |
| Line 261 void gdcsub_circle(UINT32 csrw, const GD | Line 269 void gdcsub_circle(UINT32 csrw, const GD |
| for (; i<=t; i++) { | for (; i<=t; i++) { |
| s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); | s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); |
| s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; | s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; |
| gdcpset(&pset, (UINT16)(x + i), (UINT16)(y + s)); | gdcpset(&pset, (REG16)(x + i), (REG16)(y + s)); |
| } | } |
| break; | break; |
| Line 269 void gdcsub_circle(UINT32 csrw, const GD | Line 277 void gdcsub_circle(UINT32 csrw, const GD |
| for (; i<=t; i++) { | for (; i<=t; i++) { |
| s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); | s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); |
| s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; | s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; |
| gdcpset(&pset, (UINT16)(x + i), (UINT16)(y - s)); | gdcpset(&pset, (REG16)(x + i), (REG16)(y - s)); |
| } | } |
| break; | break; |
| Line 277 void gdcsub_circle(UINT32 csrw, const GD | Line 285 void gdcsub_circle(UINT32 csrw, const GD |
| for (; i<=t; i++) { | for (; i<=t; i++) { |
| s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); | s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); |
| s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; | s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; |
| gdcpset(&pset, (UINT16)(x + s), (UINT16)(y - i)); | gdcpset(&pset, (REG16)(x + s), (REG16)(y - i)); |
| } | } |
| break; | break; |
| Line 285 void gdcsub_circle(UINT32 csrw, const GD | Line 293 void gdcsub_circle(UINT32 csrw, const GD |
| for (; i<=t; i++) { | for (; i<=t; i++) { |
| s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); | s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); |
| s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; | s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; |
| gdcpset(&pset, (UINT16)(x - s), (UINT16)(y - i)); | gdcpset(&pset, (REG16)(x - s), (REG16)(y - i)); |
| } | } |
| break; | break; |
| Line 293 void gdcsub_circle(UINT32 csrw, const GD | Line 301 void gdcsub_circle(UINT32 csrw, const GD |
| for (; i<=t; i++) { | for (; i<=t; i++) { |
| s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); | s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); |
| s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; | s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; |
| gdcpset(&pset, (UINT16)(x - i), (UINT16)(y - s)); | gdcpset(&pset, (REG16)(x - i), (REG16)(y - s)); |
| } | } |
| break; | break; |
| Line 301 void gdcsub_circle(UINT32 csrw, const GD | Line 309 void gdcsub_circle(UINT32 csrw, const GD |
| for (; i<=t; i++) { | for (; i<=t; i++) { |
| s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); | s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); |
| s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; | s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; |
| gdcpset(&pset, (UINT16)(x - i), (UINT16)(y + s)); | gdcpset(&pset, (REG16)(x - i), (REG16)(y + s)); |
| } | } |
| break; | break; |
| Line 309 void gdcsub_circle(UINT32 csrw, const GD | Line 317 void gdcsub_circle(UINT32 csrw, const GD |
| for (; i<=t; i++) { | for (; i<=t; i++) { |
| s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); | s = (gdc_rt[(i << RT_TABLEBIT) / m] * r); |
| s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; | s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT; |
| gdcpset(&pset, (UINT16)(x - s), (UINT16)(y + i)); | gdcpset(&pset, (REG16)(x - s), (REG16)(y + i)); |
| } | } |
| break; | break; |
| } | } |
| Line 317 void gdcsub_circle(UINT32 csrw, const GD | Line 325 void gdcsub_circle(UINT32 csrw, const GD |
| calc_gdcslavewait(pset.dots); | calc_gdcslavewait(pset.dots); |
| } | } |
| void gdcsub_text(UINT32 csrw, const GDCVECT *vect, UINT16 pat, BYTE ope) { | void gdcsub_text(UINT32 csrw, const GDCVECT *vect, const BYTE *pat, |
| REG8 ope) { | |
| _GDCPSET pset; | _GDCPSET pset; |
| BYTE multiple; | BYTE multiple; |
| Line 326 void gdcsub_text(UINT32 csrw, const GDCV | Line 335 void gdcsub_text(UINT32 csrw, const GDCV |
| const TEXTDIR *dir; | const TEXTDIR *dir; |
| UINT patnum; | UINT patnum; |
| BYTE muly; | BYTE muly; |
| UINT16 cx; | REG16 cx; |
| UINT16 cy; | REG16 cy; |
| UINT xrem; | UINT xrem; |
| BYTE bit; | BYTE bit; |
| BYTE mulx; | BYTE mulx; |
| gdcpset_prepare(&pset, csrw, pat, ope); | gdcpset_prepare(&pset, csrw, 0xffff, ope); |
| multiple = (gdc.s.para[GDC_ZOOM] & 15) + 1; | multiple = (gdc.s.para[GDC_ZOOM] & 15) + 1; |
| #if 0 | #if 0 |
| sx = (LOADINTELWORD(vect->DC)) & 0x3fff) + 1; | sx = (LOADINTELWORD(vect->DC)) & 0x3fff) + 1; |
| Line 350 const TEXTDIR *dir; | Line 359 const TEXTDIR *dir; |
| while(muly--) { | while(muly--) { |
| cx = pset.x; | cx = pset.x; |
| cy = pset.y; | cy = pset.y; |
| bit = gdc.s.para[GDC_TEXTW + (patnum & 7)]; | bit = pat[patnum & 7]; |
| xrem = sx; | xrem = sx; |
| while(xrem--) { | while(xrem--) { |
| mulx = multiple; | mulx = multiple; |
| Line 394 void gdcsub_write(void) { | Line 403 void gdcsub_write(void) { |
| TRACEOUT(("gdcsub_write")); | TRACEOUT(("gdcsub_write")); |
| if (grcg.gdcwithgrcg & 0x8) { | if (grcg.gdcwithgrcg & 0x8) { |
| MessageBox(NULL, "!!! grcg working", "?", MB_OK); | MessageBox(NULL, "!!! grcg working", "?", MB_OK); |
| TRACEOUT(("!!! grcg working")); | |
| } | } |
| #endif | #endif |