From a6325d5062ae467d043c845f5c3991811a6949c8 Mon Sep 17 00:00:00 2001
From: kieron <kieron@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c>
Date: Sat, 20 May 2017 12:19:11 +0000
Subject: [PATCH] TRYING TO FIX FUCKING MEMORY MANAGER.

git-svn-id: https://spexeah.com:8443/svn/Asuro@133 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
---
 lib/pmemorymanager.ppu | Bin 2274 -> 2278 bytes
 src/pmemorymanager.pas |   4 ++++
 src/vmemorymanager.pas |  11 ++++++++++-
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu
index 51967737cf8d2e6e99e5b598286fc90ec7d032b7..5b33d802651bced862adf4fab0a07be4ff98d1cc 100644
GIT binary patch
delta 125
zcmaDP_)JhXARyGx*p#K2k%5`vK!6g%J`M(ksGs(`WR{%1AU09fnYrCaVPf(Y#`eh)
zjMpafFiCA@VOqw-q|G(Co>gM<5tf~dPMhmkm6&)_7#ZLoWAa*dTh>CLNb%(N>~k0^
SC--n@aMnXrv`*g3p$Y)kTp>vS

delta 125
zcmaDR_()JTARyGx*p#K2k%5`vK!6g%E)E8UsGs(`WR{%1AUaXjnK`yceq!<##^%Wq
zjMpZMFo|vEU|Pn+s6Kf;%Oxf|?#UZiBsR}x<z(VbU}S)Ul*t>}ZCP`HBKea)v(I5H
Sojid<gR>f{qH*#;4pjj2dm)?v

diff --git a/src/pmemorymanager.pas b/src/pmemorymanager.pas
index b3ff0bba..2bf9e266 100644
--- a/src/pmemorymanager.pas
+++ b/src/pmemorymanager.pas
@@ -33,6 +33,10 @@ begin
         Present:= True;
         MappedTo:= 0;
     end;
+    with PhysicalMemory[2] do begin
+        Present:= True;
+        MappedTo:= 0;
+    end;
     console.writestringln('PMM: INIT END.');
 end;
 
diff --git a/src/vmemorymanager.pas b/src/vmemorymanager.pas
index 3fce78f4..9bc6e2aa 100644
--- a/src/vmemorymanager.pas
+++ b/src/vmemorymanager.pas
@@ -57,6 +57,15 @@ var
 begin
     console.writestringln('VMM: INIT BEGIN.');
     PageDirectory:= load_current_page_directory;
+    PageDirectory^[KERNEL_VIRTUAL_BASE + 1].Present:= True;
+    PageDirectory^[KERNEL_VIRTUAL_BASE + 1].PageSize:= True;
+    PageDirectory^[KERNEL_VIRTUAL_BASE + 1].Writable:= True;
+    PageDirectory^[KERNEL_VIRTUAL_BASE + 1].Address:= (1 SHL 22);
+
+    PageDirectory^[KERNEL_VIRTUAL_BASE + 2].Present:= True;
+    PageDirectory^[KERNEL_VIRTUAL_BASE + 2].PageSize:= True;
+    PageDirectory^[KERNEL_VIRTUAL_BASE + 2].Writable:= True;
+    PageDirectory^[KERNEL_VIRTUAL_BASE + 2].Address:= (2 SHL 22);
     console.writestringln('VMM: INIT END.');
 end;
 
@@ -69,7 +78,7 @@ var
 begin
     new_page:= false;
     if PageDirectory^[page_number].Present then exit;
-    if PageDirectory^[page_number].Reserved then exit;
+    //if PageDirectory^[page_number].Reserved then exit;
     block:= pmemorymanager.new_block(uint32(PageDirectory));
     if block < 2 then begin
         GPF;