|
|
| version 1.7, 2004/01/23 14:33:26 | version 1.8, 2004/01/24 18:20:06 |
|---|---|
| Line 35 | Line 35 |
| #include "bios.h" | #include "bios.h" |
| void | static void ia32_initreg(void) { |
| ia32reset(void) | |
| { | |
| int i; | int i; |
| memset(&i386core.s, 0, sizeof(i386core.s)); | |
| CPU_STATSAVE.cpu_inst_default.seg_base = (DWORD)-1; | CPU_STATSAVE.cpu_inst_default.seg_base = (DWORD)-1; |
| CPU_EDX = (CPU_FAMILY << 8) | (CPU_MODEL << 4) | CPU_STEPPING; | CPU_EDX = (CPU_FAMILY << 8) | (CPU_MODEL << 4) | CPU_STEPPING; |
| Line 73 ia32reset(void) | Line 71 ia32reset(void) |
| } | } |
| void | void |
| ia32reset(void) | |
| { | |
| ZeroMemory(&i386core.s, sizeof(i386core.s)); | |
| ia32_initreg(); | |
| } | |
| void | |
| ia32shut(void) | ia32shut(void) |
| { | { |
| SINT32 remainclock; /* 結局ハマるのか漏れ… */ | ZeroMemory(&i386core.s, offsetof(I386STAT, cpu_type)); |
| SINT32 baseclock; | ia32_initreg(); |
| UINT32 clock; | |
| remainclock = CPU_REMCLOCK; | |
| baseclock = CPU_BASECLOCK; | |
| clock = CPU_CLOCK; | |
| ia32reset(); | |
| CPU_REMCLOCK = remainclock; | |
| CPU_BASECLOCK = baseclock; | |
| CPU_CLOCK = clock; | |
| } | } |
| void | void |