|
|
| version 1.14, 2004/03/12 14:33:06 | version 1.18, 2005/03/12 12:32:54 |
|---|---|
| Line 12 | Line 12 |
| * 2. Redistributions in binary form must reproduce the above copyright | * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the | * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. | * documentation and/or other materials provided with the distribution. |
| * 3. The name of the author may not be used to endorse or promote products | |
| * derived from this software without specific prior written permission. | |
| * | * |
| * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
| * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| Line 31 | Line 29 |
| #include "cpu.h" | #include "cpu.h" |
| #include "ia32.mcr" | #include "ia32.mcr" |
| I386CORE i386core; | I386CORE i386core; |
| UINT8 *reg8_b20[0x100]; | UINT8 *reg8_b20[0x100]; |
| Line 41 UINT16 *reg16_b53[0x100]; | Line 38 UINT16 *reg16_b53[0x100]; |
| UINT32 *reg32_b20[0x100]; | UINT32 *reg32_b20[0x100]; |
| UINT32 *reg32_b53[0x100]; | UINT32 *reg32_b53[0x100]; |
| void | void |
| ia32_init(void) | ia32_init(void) |
| { | { |
| Line 78 ia32_init(void) | Line 74 ia32_init(void) |
| } | } |
| resolve_init(); | resolve_init(); |
| #ifdef USE_FPU | |
| fpu_init(); | |
| #endif | |
| } | } |
| void | void |
| Line 101 ia32_setextsize(UINT32 size) | Line 94 ia32_setextsize(UINT32 size) |
| } | } |
| CPU_EXTMEMSIZE = size; | CPU_EXTMEMSIZE = size; |
| } | } |
| CPU_EMSPTR[0] = mem + 0xc0000; | |
| CPU_EMSPTR[1] = mem + 0xc4000; | |
| CPU_EMSPTR[2] = mem + 0xc8000; | |
| CPU_EMSPTR[3] = mem + 0xcc000; | |
| } | } |
| void | |
| ia32_setemm(UINT frame, UINT32 addr) { | |
| BYTE *ptr; | |
| frame &= 3; | |
| if (addr < USE_HIMEM) { | |
| ptr = mem + addr; | |
| } | |
| else if ((addr - 0x100000 + 0x4000) <= CPU_EXTMEMSIZE) { | |
| ptr = CPU_EXTMEM + (addr - 0x100000); | |
| } | |
| else { | |
| ptr = mem + 0xc0000 + (frame << 14); | |
| } | |
| CPU_EMSPTR[frame] = ptr; | |
| } | |
| /* | /* |
| * モード遷移 | * モード遷移 |
| */ | */ |
| Line 127 change_pm(BOOL onoff) | Line 143 change_pm(BOOL onoff) |
| CPU_STAT_SS32 = 0; | CPU_STAT_SS32 = 0; |
| CPU_SET_CPL(0); | CPU_SET_CPL(0); |
| CPU_STAT_PM = onoff; | CPU_STAT_PM = onoff; |
| tlb_flush(TRUE); | |
| } | } |
| void FASTCALL | void FASTCALL |
| Line 141 change_pg(BOOL onoff) | Line 155 change_pg(BOOL onoff) |
| VERBOSE(("Leaveing from Paging-Mode...")); | VERBOSE(("Leaveing from Paging-Mode...")); |
| } | } |
| CPU_STAT_PAGING = onoff; | CPU_STAT_PAGING = onoff; |
| tlb_flush(TRUE); | |
| } | } |
| void FASTCALL | void FASTCALL |