|
|
| version 1.8, 2003/12/12 01:04:39 | version 1.11, 2004/01/23 12:04:07 |
|---|---|
| Line 205 void bios0x18(void) { | Line 205 void bios0x18(void) { |
| UINT16 tmp; | UINT16 tmp; |
| UINT32 pal; | UINT32 pal; |
| // TRACE_("int18", CPU_AH); | #if 0 |
| TRACEOUT(("int18 AX=%.4x %.4x:%.4x", CPU_AX, | |
| i286_memword_read(CPU_SS, CPU_SP+2), | |
| i286_memword_read(CPU_SS, CPU_SP))); | |
| #endif | |
| sti_waiting ^= 1; | sti_waiting ^= 1; |
| if (sti_waiting) { // 割込み許可の遊び | if (sti_waiting) { // 割込み許可の遊び |
| Line 264 void bios0x18(void) { | Line 268 void bios0x18(void) { |
| break; | break; |
| case 0x0a: // CRTモードの設定 | case 0x0a: // CRTモードの設定 |
| #if 1 | |
| mem[MEMB_CRT_STS_FLAG] = 0x80 | (CPU_AL & 0x0f); | mem[MEMB_CRT_STS_FLAG] = 0x80 | (CPU_AL & 0x0f); |
| // GDCバッファを空に | // GDCバッファを空に |
| if (gdc.m.cnt) { | if (gdc.m.cnt) { |
| Line 304 void bios0x18(void) { | Line 307 void bios0x18(void) { |
| gdcs.textdisp |= GDCSCRN_ALLDRAW2; | gdcs.textdisp |= GDCSCRN_ALLDRAW2; |
| gdc_restorekacmode(); | gdc_restorekacmode(); |
| break; | break; |
| #else | |
| // GDCバッファを空に | |
| if (gdc.m.cnt) { | |
| gdc_work(GDCWORK_MASTER); | |
| } | |
| gdc_forceready(&gdc.m); | |
| mem[MEMB_CRT_STS_FLAG] = CPU_AL; | |
| if (systemport_r(0x33) & 0x08) { | |
| mem[MEMB_CRT_STS_FLAG] |= 0x80; | |
| } | |
| #endif | |
| case 0x0b: // CRTモードのセンス | case 0x0b: // CRTモードのセンス |
| CPU_AL = mem[MEMB_CRT_STS_FLAG]; | CPU_AL = mem[MEMB_CRT_STS_FLAG]; |
| Line 521 void bios0x18(void) { | Line 512 void bios0x18(void) { |
| break; | break; |
| case 0x40: // グラフィック画面の表示開始 | case 0x40: // グラフィック画面の表示開始 |
| // GDCバッファを空に | |
| if (gdc.s.cnt) { | |
| gdc_work(GDCWORK_SLAVE); | |
| } | |
| if (!(gdcs.grphdisp & GDCSCRN_ENABLE)) { | if (!(gdcs.grphdisp & GDCSCRN_ENABLE)) { |
| gdcs.grphdisp |= GDCSCRN_ENABLE; | gdcs.grphdisp |= GDCSCRN_ENABLE; |
| screenupdate |= 2; | screenupdate |= 2; |
| } | } |
| mem[MEMB_PRXCRT] |= 0x80; | |
| break; | break; |
| case 0x41: // グラフィック画面の表示終了 | case 0x41: // グラフィック画面の表示終了 |
| // GDCバッファを空に | |
| if (gdc.s.cnt) { | |
| gdc_work(GDCWORK_SLAVE); | |
| } | |
| gdc_forceready(&gdc.s); | |
| if (gdcs.grphdisp & GDCSCRN_ENABLE) { | if (gdcs.grphdisp & GDCSCRN_ENABLE) { |
| gdcs.grphdisp &= ~(GDCSCRN_ENABLE); | gdcs.grphdisp &= ~(GDCSCRN_ENABLE); |
| screenupdate |= 2; | screenupdate |= 2; |
| } | } |
| mem[MEMB_PRXCRT] &= 0x7f; | |
| break; | break; |
| case 0x42: // 表示領域の設定 | case 0x42: // 表示領域の設定 |