|
|
| version 1.29, 2004/03/01 05:29:58 | version 1.32, 2004/03/07 23:04:50 |
|---|---|
| Line 167 static void bios0x18_0f(UINT seg, UINT o | Line 167 static void bios0x18_0f(UINT seg, UINT o |
| #endif | #endif |
| while((cnt--) && (p < (gdc.m.para + GDC_SCROLL + 0x10))) { | while((cnt--) && (p < (gdc.m.para + GDC_SCROLL + 0x10))) { |
| t = i286_memword_read(seg, off); | t = MEML_READ16(seg, off); |
| t >>= 1; | t >>= 1; |
| STOREINTELWORD(p, t); | STOREINTELWORD(p, t); |
| t = i286_memword_read(seg, off + 2); | t = MEML_READ16(seg, off + 2); |
| t *= raster; | t *= raster; |
| STOREINTELWORD(p + 2, t); | STOREINTELWORD(p + 2, t); |
| off += 4; | off += 4; |
| Line 208 const BYTE *p; | Line 208 const BYTE *p; |
| switch(code >> 8) { | switch(code >> 8) { |
| case 0x00: // 8x8 | case 0x00: // 8x8 |
| size = 0x0101; | size = 0x0101; |
| i286_memword_write(seg, off, 0x0101); | MEML_WRITE16(seg, off, 0x0101); |
| p = fontrom + 0x82000 + ((code & 0xff) << 4); | p = fontrom + 0x82000 + ((code & 0xff) << 4); |
| i286_memstr_write(seg, off + 2, p, 8); | MEML_WRITESTR(seg, off + 2, p, 8); |
| break; | break; |
| case 0x28: // 8x16 KANJI | case 0x28: // 8x16 KANJI |
| Line 218 const BYTE *p; | Line 218 const BYTE *p; |
| case 0x2a: | case 0x2a: |
| case 0x2b: | case 0x2b: |
| size = 0x0102; | size = 0x0102; |
| i286_memword_write(seg, off, 0x0102); | MEML_WRITE16(seg, off, 0x0102); |
| p = fontrom; | p = fontrom; |
| p += (code & 0x7f) << 12; | p += (code & 0x7f) << 12; |
| p += (((code >> 8) - 0x20) & 0x7f) << 4; | p += (((code >> 8) - 0x20) & 0x7f) << 4; |
| i286_memstr_write(seg, off + 2, p, 16); | MEML_WRITESTR(seg, off + 2, p, 16); |
| break; | break; |
| case 0x80: // 8x16 ANK | case 0x80: // 8x16 ANK |
| size = 0x0102; | size = 0x0102; |
| p = fontrom + 0x80000 + ((code & 0xff) << 4); | p = fontrom + 0x80000 + ((code & 0xff) << 4); |
| i286_memstr_write(seg, off + 2, p, 16); | MEML_WRITESTR(seg, off + 2, p, 16); |
| break; | break; |
| default: | default: |
| Line 240 const BYTE *p; | Line 240 const BYTE *p; |
| buf[i*2+0] = *p; | buf[i*2+0] = *p; |
| buf[i*2+1] = *(p+0x800); | buf[i*2+1] = *(p+0x800); |
| } | } |
| i286_memstr_write(seg, off + 2, buf, 32); | MEML_WRITESTR(seg, off + 2, buf, 32); |
| break; | break; |
| } | } |
| i286_memword_write(seg, off, size); | MEML_WRITE16(seg, off, size); |
| return(size); | return(size); |
| } | } |
| Line 254 static void bios0x18_1a(REG16 seg, REG16 | Line 254 static void bios0x18_1a(REG16 seg, REG16 |
| UINT i; | UINT i; |
| if (((code >> 8) & 0x7e) == 0x76) { | if (((code >> 8) & 0x7e) == 0x76) { |
| i286_memstr_read(seg, off + 2, buf, 32); | MEML_READSTR(seg, off + 2, buf, 32); |
| p = fontrom; | p = fontrom; |
| p += (code & 0x7f) << 12; | p += (code & 0x7f) << 12; |
| p += (((code >> 8) - 0x20) & 0x7f) << 4; | p += (((code >> 8) - 0x20) & 0x7f) << 4; |
| Line 300 const CRTDATA *p; | Line 300 const CRTDATA *p; |
| gdc_analogext(TRUE); | gdc_analogext(TRUE); |
| mem[MEMB_PRXDUPD] |= 0x80; | mem[MEMB_PRXDUPD] |= 0x80; |
| crt = 4; | crt = 4; |
| master = 3; | master = 3 + (scrn & 3); |
| slave = 1; | slave = 1; |
| gdc.analog |= (1 << GDCANALOG_256E); | gdc.analog |= (1 << GDCANALOG_256E); |
| } | } |
| Line 339 const CRTDATA *p; | Line 339 const CRTDATA *p; |
| #endif | #endif |
| } | } |
| crt += (scrn & 3); | crt += (scrn & 3); |
| master += (scrn & 3); | |
| if (rate & 4) { | if (rate & 4) { |
| gdc.display |= (1 << GDCDISP_31); | gdc.display |= (1 << GDCDISP_31); |
| Line 562 static void bios0x18_47(void) { | Line 561 static void bios0x18_47(void) { |
| SINT16 dy; | SINT16 dy; |
| gdc_forceready(GDCWORK_SLAVE); | gdc_forceready(GDCWORK_SLAVE); |
| i286_memstr_read(CPU_DS, CPU_BX, &ucw, sizeof(ucw)); | MEML_READSTR(CPU_DS, CPU_BX, &ucw, sizeof(ucw)); |
| GBSX1 = LOADINTELWORD(ucw.GBSX1); | GBSX1 = LOADINTELWORD(ucw.GBSX1); |
| GBSY1 = LOADINTELWORD(ucw.GBSY1); | GBSY1 = LOADINTELWORD(ucw.GBSY1); |
| GBSX2 = LOADINTELWORD(ucw.GBSX2); | GBSX2 = LOADINTELWORD(ucw.GBSX2); |
| Line 673 static void bios0x18_49(void) { | Line 672 static void bios0x18_49(void) { |
| gdc_forceready(GDCWORK_SLAVE); | gdc_forceready(GDCWORK_SLAVE); |
| i286_memstr_read(CPU_DS, CPU_BX, &ucw, sizeof(ucw)); | MEML_READSTR(CPU_DS, CPU_BX, &ucw, sizeof(ucw)); |
| for (i=0; i<8; i++) { | for (i=0; i<8; i++) { |
| mem[MEMW_PRXGLS + i] = ucw.GBMDOTI[i]; | mem[MEMW_PRXGLS + i] = ucw.GBMDOTI[i]; |
| pat[i] = GDCPATREVERSE(ucw.GBMDOTI[i]); | pat[i] = GDCPATREVERSE(ucw.GBMDOTI[i]); |
| Line 757 void bios0x18(void) { | Line 756 void bios0x18(void) { |
| #if 0 | #if 0 |
| TRACEOUT(("int18 AX=%.4x %.4x:%.4x", CPU_AX, | TRACEOUT(("int18 AX=%.4x %.4x:%.4x", CPU_AX, |
| i286_memword_read(CPU_SS, CPU_SP+2), | MEML_READ16(CPU_SS, CPU_SP+2), |
| i286_memword_read(CPU_SS, CPU_SP))); | MEML_READ16(CPU_SS, CPU_SP))); |
| #endif | #endif |
| sti_waiting ^= 1; | sti_waiting ^= 1; |
| Line 971 void bios0x18(void) { | Line 970 void bios0x18(void) { |
| break; | break; |
| case 0x43: // パレットの設定 | case 0x43: // パレットの設定 |
| i286_memstr_read(CPU_DS, CPU_BX + offsetof(UCWTBL, GBCPC), | MEML_READSTR(CPU_DS, CPU_BX + offsetof(UCWTBL, GBCPC), |
| tmp.col, 4); | tmp.col, 4); |
| for (i=0; i<4; i++) { | for (i=0; i<4; i++) { |
| gdc_setdegitalpal(6 - (i*2), (REG8)(tmp.col[i] >> 4)); | gdc_setdegitalpal(6 - (i*2), (REG8)(tmp.col[i] >> 4)); |
| Line 981 void bios0x18(void) { | Line 980 void bios0x18(void) { |
| case 0x44: // ボーダカラーの設定 | case 0x44: // ボーダカラーの設定 |
| // if (!(mem[MEMB_PRXCRT] & 0x40)) { | // if (!(mem[MEMB_PRXCRT] & 0x40)) { |
| // color = i286_membyte_read(CPU_DS, CPU_BX + 1); | // color = MEML_READ8(CPU_DS, CPU_BX + 1); |
| // } | // } |
| break; | break; |