From a1993a714cc450fade903fd9753ebba1ea10b32b Mon Sep 17 00:00:00 2001 From: Sjoerd van der Berg Date: Mon, 14 Jul 2003 08:32:22 +0000 Subject: [PATCH] Call paging functions. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1118 --- src/cpu/cpu.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp index 6d23c9b1..cc0bd791 100644 --- a/src/cpu/cpu.cpp +++ b/src/cpu/cpu.cpp @@ -23,6 +23,7 @@ #include "debug.h" #include "keyboard.h" #include "setup.h" +#include "paging.h" #if 1 #undef LOG_MSG @@ -556,14 +557,18 @@ bool CPU_SET_CRX(Bitu cr,Bitu value) { Bitu changed=cpu.cr0 ^ value; if (!changed) return true; cpu.cr0=value; - if (value & CR0_PAGING) LOG_MSG("Paging enabled"); if (value & CR0_PROTECTION) { LOG_MSG("Protected mode"); + PAGING_Enable((value & CR0_PAGING)>0); } else { + PAGING_Enable(false); LOG_MSG("Real mode"); } return CPU_CheckState(); } + case 3: + PAGING_SetDirBase(value); + break; default: LOG(LOG_CPU,LOG_ERROR)("Unhandled MOV CR%d,%X",cr,value); break; @@ -575,6 +580,8 @@ Bitu CPU_GET_CRX(Bitu cr) { switch (cr) { case 0: return cpu.cr0; + case 3: + return PAGING_GetDirBase(); default: LOG(LOG_CPU,LOG_ERROR)("Unhandled MOV XXX, CR%d",cr); break;