From 7333ce5c8f45141acab8d77a8b79a94921de7474 Mon Sep 17 00:00:00 2001 From: kieron Date: Fri, 6 Apr 2018 12:11:35 +0000 Subject: [PATCH] git-svn-id: https://spexeah.com:8443/svn/Asuro@362 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5103616 -> 5103616 bytes bin/kernel.bin | Bin 49380 -> 49380 bytes iso/boot/asuro.bin | Bin 49380 -> 49380 bytes lib/AHCI.ppu | Bin 14653 -> 14653 bytes lib/E1000.ppu | Bin 10592 -> 10592 bytes lib/PCI.ppu | Bin 6662 -> 6662 bytes lib/drivermanagement.ppu | Bin 8175 -> 8175 bytes lib/kernel.ppu | Bin 3594 -> 3605 bytes lib/libpconsole.a | Bin 81668 -> 81668 bytes lib/libpmultiboot.a | Bin 29040 -> 29040 bytes lib/libpsystem.a | Bin 155060 -> 155060 bytes lib/lmemorymanager.ppu | Bin 3713 -> 4094 bytes lib/mouse.ppu | Bin 2592 -> 2592 bytes lib/pmemorymanager.ppu | Bin 3990 -> 4056 bytes lib/scheduler.ppu | Bin 3245 -> 3245 bytes lib/strings.ppu | Bin 4852 -> 4852 bytes lib/terminal.ppu | Bin 7660 -> 7660 bytes lib/vmemorymanager.ppu | Bin 5430 -> 5584 bytes src/kernel.pas | 2 ++ src/lmemorymanager.pas | 13 +++++++++++++ src/pmemorymanager.pas | 14 +++++++------- src/vmemorymanager.pas | 7 ++++--- 22 files changed, 26 insertions(+), 10 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index 714679da1374850fb10111450d8b39b90f536512..47f2d212f7cf41a22ce819ad8f129d7dd294a99d 100644 GIT binary patch delta 19917 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 E2cw8-mjD0& diff --git a/bin/kernel.bin b/bin/kernel.bin index d606dca1c9391e1c48b6fef59c452ecb6535dfbb..f2b3c71f8b44cd5ce8e6f80addf4761eafd09ac6 100755 GIT binary patch delta 9373 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 CCADV& delta 8916 zcmai330PD|w!Zh$K%=eQDw~MXK&uD{xFL!lBBlsHbpsPR<-6G`GICdPjMsb1ond^3;l>pG|YbN;GR zr|QFEaeK4J$qa+i9L{DM!n#h%mZV%YN8;}#~IVkzElhT8GXRrr7 z_WR|=OHv(LlcbXNV70N>VB@pm+3}vq%GyD!t!KFMw$5tk^@5^YpUX=9@|66!Y>{6t zCi^c@Il&vbn=4&1+ix5%4i z2d-2`#IdHpfdh1aH*ex8sd}lfhicdi+QV2$vPxh57G0}D2;i|SKR8hNIF`lr9zF6^ zVQw3tE+AVeYL*Fx{%}r7qN1?7nm~qC4!7=V4%M<_Syk_hkgnwYp9cB1Co=@~*8e5u zi9v4lq(KI51xACs$j5lX`k;JU3Hm}@JA#5j&SbgtmX4!pWmHfeMN1w1RQ^}2z~{M>)3*lOK_iOXS{bWa_TbwQL2j*risHdHiHZj*9v(cO zVk_H%ZmvdRah4YhkSa>rwdP=xxxl0`e{>27>L}J(<;^$kSZ4ZjjpuK6u@qS3^EWk{ zZ*~CNd`B-ycAu!LW}vX^t9>n-KP*POWxkgFL@L&mC?{o0u*rfZOX{_CEG}fL;%{ea z$du8^7C(wtf9|5bTJ!RG?p4w%7Y?c-jQ^B^u+0tna}6b($|i3y~T&A=li& zJ6NKzpJz4tkywr~)29W_ZJzx6H1_=me((n`u2#xLK58_Fg??iUWu8Zef z!{&yDD>+ZGUx!Agr)@RZwtQOHuk1p}O>M~!+QI=AKf=mh&PNz_Ptx0Z{t~Mq143Ij zzriz&-3@)FTlZ;_blRA!R!ZDsn%EPb4+|Kv4k)^x{@89meJod9D)IWM0!bnS?m$ix zBJn67BET^AZdf1Rtqwo?Pwv1Arn0ZYjNLj6&dnv7ZyU=3!pjwPGCL9;smnx2ya7)d zKQKiE&=GD3cr?YeDRuO8@+7`3nFW}@`xQH4iqsVdo{4yq9Xu0wlij>tPF`2OEr|v6 ze{se!5G*M^2T9hM@0YY|uxQHa)NYs%zS;-VpQW+*X}&Yq%o&~*ze8{{XZTq9l2RkX zsZDGCFxC8tWxkJPmQSMJA$GI>c=;F`FknW}3HWehI35V$Zt>u^!mv&o32uU>uO6@A zm)%e`G|PBT{+Q%^pSHLPFiyG6d!Y%&8*ZqSJi%xtIo~HybW_-bHCj@ysVgc!GXMcf zTQ4Jp`n(4ZKsK+LH=LW(Rkcv3dV#=i={`{gpUnszj%YPK1=*?4*%^r+hgb07Bdz#o$;0${pA^+I1sYDhErj`qVY zbhAbn+R3oMY53akvq4h^!+2I3F;AYv{02qo4iPZNh$$L6K}>VbAcOxa6I|1r6X=}g zo;-kU9khd3kx{yO!3rT(x`P!7R=S(j+sX1IR-|A>Md@w}RzG5;IapC(rMX!_PL_dK zQGyj6rSmmYgnfxM-oc6nYrLD)$I0>{Roh&U6ux=gP zRrbmxf*0ExQ{b0J>MKFC{W<3yyP!2AHcgfr*`ByhebVvHs-t;hIR;-@%eD-O(rLDX z6cC6Gze^GwULIlyn40YBu+r%4(1Tx#V-JRu6K!ae&Ln75Xy0*Ws0?+| zy6|hU?7>h$8y2NY6EuIKB|2!sKpW$xg*jFgD3Zpr1QK>3jY&%o*?^eXmxmA zo;H73(jH+Mm99M~`b*axj4KMW@xS6FQF}5Ri~JbT(J1!Evgbzx7Wu)m?1E|}<7Y@~o3WNAO4Xp?od94Q zPR92r=MP4qI6WA}AF<^52E19h74JR%Ik(&SSDh%*Fok^jx6oevJBqUjXe?hr0~Ty) zY8o~5NiS>-=^QUtsYv2W$AWNoB#L=N=uca3#&^)#a1P@~dV{rqSo^?I^GSOZnj=bu zqMSvM^&@KmSqt2LE8Tv`5nc`CcfTk3QBriURu#D>RZlE2sUt`eliCJf_oRM9MB(5| z4q{S2e8S=9Nv$VOF{xiea|9{^I8N(t9a+UNnxTcOuTabv2&}~H@=i+MK_so|0(MIA z$0m*pDQYISad2xJtzIF01nDtq3+aPM4^wZD-j{TLwUzW9q<2v{>7LNV@uZ|(=Q^Ei zG-)kK^{~E6?~|{tpfKMrF49T*(ho>);a||gYPT4QZ2SYL7H|HTkPd3`3;`207Ku;B zxj^kCtkQ|$G5HszNqz;O#RY14s~cSB0(JZ&H@L_J8hEuEoC=UFP4Me28jB$pFTM?C z%R0@L`-NQfWUnS97yUer8)6)Y{xj_4G@ODist*NHgF21I#@~U4!Ege^VBR1=3}!e^ z5RSoYcVZaK7s#GtFoiBq%W3)@V2(kWFX$;ce%6gnak(0Jr5lWQfxg@VkowFIYzv@Q zr5K+-*}eGlWOI-2%~2DI8r}2s&^5jqYzmI??1zT&v=AW1vx5LJ9uv+!j`6(c#4w&e zBa4pymbpMJuXTeNE>Oo0JHh!jp6Egiyu$4|zy+%6BhJP`Yy5iE5KQQL7!sI?6M zHi@tt!deLHhya#H*anuCG(o<}EJ-oFXkl!z6>80Xq_z20)mvC|($wx$GiyvLwnT|f zWCN08eJRJnbp&Z`Sr)%W3tN%ALpdAE9ww(MYvSDQ#pf!v}6M)k%{wjwno_#PQUU^KVT z9jv&Z6Lmf6YUfUNC^buYw39tf?M%GWZntlK{1`Wj7v45^@@uGCG$vkzg|a=(q$#!G zc?qll_Y#t-Mw3qu|8?B*zHCQV4q%m^z8HR76r&q2>>Rz7Few55YdFMzizj;Ywo!yOSQN zJM$`R*YLjQrw56HN8AL1zYecV$9bi7xO463`Cc}ALbV*hx=jp}Bdh}^dU>EScyb8J zX_L3g(d^3PSf%w_g!;7VpBs`T;RRnu>dSaAz4?<7* z!EVR3iat|VWo%NT`)UBM4ONX~4TDu*?Wtj(PVX-dXPwg%3@4M3r%A&2Pvj|+rDPPy zdF*V)JUN>gX1pthvgR4l%DukqhZ#{Z4LGNoFJd-7#xb`ny~W&dTILso{uy+IR}1|* zbPxU}n>8~!{5cmT6Q*2q`VHZ?T=;!1{N}R*Gvfn&$*&Gg{|E(st>zZA{Y_uiF*82k zB2K!(_?E+XTNo=@(yWp4239yLULMCz%!&`};_~|z3L5DUez$|!53`1b+i=Ga!5?)P z?}Jf>|d$Nz7 z9vpiQrzzMx_>XWZOK%hb-xYe3aJwb+51~u^S`ZsJdqhkHaq7U?D{RdoY>Ut@iEfL8 z{xNikuVve3uTmZavIn!Hm8L+}f6gHJ4K{sFq`a2BIA<_+_hTpn*ws0aN_zlPvSI_? z#j#9`KV~Qq~Y6WyOW3x;zFsJno4Q#-KuZ7MWw0vf`Ax{>+}$cg$rR zvqXc}z$;6qJj?teq5mY9?+e|LbF0wpDpD_T|Enx(?ucniY4rx-+l;`J=R0>$I9{_*zE<;`URiD?V|a!abhB3SV;Es%Hy7_BD!>!X56SSn^Z8=RZSIDja6zJz>0JF1X<-aZ~g)9A|(k*S|B!IK}NBW(d;UGA{qOZ#^ZnPsqP zr8+h9H^8p4a5 z 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 CCADV& delta 8916 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 z zaNunz^)vuD&;88}x#rGVED?!s)BzHo5NqF%zT z=b09Zs2{e9s1>q_sJQ^1j5;2faYWtxq)kK}y37kaWAQx!lZ?G?(O;kGOvEb*J((M8}^;}uR_ZQIm0>{VTC%(C;ISateJ&RVB zQY$yuqSgLh8%VXWO{+)y8L~0%3aYn#45xjht+6(*zNdI);_C)q&n~VRuB7BxAFb&w zD=CYZZf(6+0a=!_t80fV8H<^&!162g7?8@pVn;XwEw>>>tCd`8?sCbz?2+EsVovWA z82v9GL*rCC%^AUYW~`r;DHgvo$5?BDDX5uR8-~`J>KvaxH0JC_=DOmf4Xj^bP<+9g zbW$vsTIM)D>d$G?-`*T%%cvrQ{c_tdm!TR4d@6yjv8sTrE)1OF@Nn8oIwK3cFM4hO zOD<~}^QNmJS+XBBxxZXFK44X-mzN-@b^DN{jUe!6*(ZhZ-n&VSyTZD!n-EjH6sbH( zz*7zIvXOQLi^-DRVkx{~+0^Q8(|rG6f%WBe&wCYR9*5I}OISa{1Pz=SC z@l7}{asC#HTkoJ){SAuGPNMKVheBVCV%{+nhw1UN;Vr|D-$xPOgyPiODBjzH;^+w! zGqFDSTf0$|{R_px!-z2NxCXs9v4Txgy-Fz%O!g*B_OsSUn>32G;@2ti>Eg)-rT+J9 zYQ<3hv^S7l{7I5dlF_3Ve)Ye%?yi{W;onkau;KoVKOG&$C0q`qmMZp$MdEHSaQAuz zmCD_#BkS?J;NFKnM;oO7J2pgMEMZR$Yu%HjRkt|0WyaS6mBuY>-fN?GRcfufUyG50 zs9Si8Ca7DgQ`a{RSa0m@smP`5?r(#8xV%V`*CA{0@2)65F1U<6-1mNZR=L53L%B2s zl14WclALEiLP#SZ>ElxR6Ls>TI&sJ^i~aQa;vs?1h~esvB;D&s;=Ljy9p0!;H_b9u z@y6lMd#IrzT>+c=&EMf*Xwn=zR%*Kv-qd!2^_%_Q$Ud&d^4OPE>F%1! zh8+m?JVR5!Mjhxw^SbW9)V|aPs1lK==c%}$P@7cO?b_wX?j49u4j65)4a9FGeiQMV zgWq!e*5kJgzrFY!!tWG*f5Pu0{95q)62I?8TNfS-l8dh5#({RF4E*%gv*B}T~Zkb#gi>tDc+2JkmX+;OFULee6= z0|}8VI;KvkBMOEbi9`o%l+jL!8?Nvh?vx2m zIYyHD2t$e!NOQ_bLRwcGAE)U({OA2dGd^$83zSOwOS9I!b5K@V_p`iHVPVD2)RClN zv{pJ64Tq$~&|b+-oHEI2?2}V{l-5f2&8heJau6Cov6@I-tctaPE?InyaK zopQEQW;x|N2_J%}p#@H0p;P8Ka7Dhvz^MiUkFnQtc@-x#dN z$gx-C(u};Ys{GBJjNXil`!-)?+RilDmz9IjWOEm*53BfICZG-|I0#}haWF6la891c zEj^ioTY&WxQ0&ZPS?(C#OGqlOP4?!|WPJq`c{6zncb4vbsN4%6%>^_AWFXV;N+8Lo z%?u-@tmgfWkbJD|xE9{zK(Bm?!_^5fc;wsfPkFAX|R2DsMKU#^i~-ii~=b OH}e`YnoNGms|o;&_&1IK delta 263 zcmbO#(a7Dhvz^h7%R_nXi`}+Ze3J z$gw%K?P=Z=@p+p&8NC@9H*dbmw4G`5bXG4`-c3wEwNS8a@;fe5*8M<{gOfG5V|b4v z$(^1&kz14XK2YT0ulbcY!n)0|S`H^t%#h5~DUVkbDl62O0eutoJ`qgmH2U zPqpC}sN7#5jnE5nG@}+bkYooL00rDYw#Z}y-fTwM$#ZxW8I>pR<27W|ocw`T6#!45 BH~Rnp diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 98a3fc44e3869d1071978951272eacfcea59972b..4e5a43d430c02651fb876cfc80cd10c5a136a84d 100644 GIT binary patch delta 1187 zcmZvcUr1AN6vz2pN46n#jj`R${%q2S*08IyVlZelLejA72nq?2!5;Q7f+CPW-NOQj z9)usY2Pq{VLV}#0!3gO;BhdB`)KH=oLPA9)RzeWc{q44MuF>1?e$MxN&+nXj&&_OD zG8>lBruv}TrmC&MndWEK+L=eZ3RrC4>rB7_@=K5!gDvL|dOV)iLv4TabgdJ<$t$E) zlM4K>_gGBHP9B=7cW1*A+X}zK$0fY7A=~7vfIWKCY!nA~M+X5> zYPfTjfE-gm>%NZwLRW55(O>M%=qQO20oCtL%A<&(x>CRFZvj6 z!~vl$U&1<|CQ~?8t|px@my+tSPotij!TP0fG~l^_0{H=IR-gJgmYrg3J8x?7!lk=p|f&S^8gw&m(O%SYiC3Bhr{^?(&5XQ%#krZmu1s4lv39ObB_%!zs=fDM6 zd-#FC#F!I)K3O9W@roVFOR`$sA=3&8>AUCaBsD;Q!JZfMtoE{CwNyt}G~6CgPR*X* zD$^osJ|`5*{gh^a5e5ry7SXvn$fs{lPh+*i8{*Ak}-7q+o0WUYTo g1;-B7vllhSmGr;HVdJ-9YMDaq|CvT16lM$3AFvTvVkHD2-QRBeouAR$?|#nre9!Nkd(Ta8 z+R~f0(T3V)yRXyF9QJy>N7|bI=9yXrzR4@7 z)eB4j6RXbQlW z!QEU7a_TiNX8Nl%u+$0N>Bk7!U=EE4Z`ylZNHOB(U`GpF4j<`1(N`HEIx!aEQdSP6 zaX0qIO6imHs4#)~>79b)-JvZI?Dr%wO@+YpFH|t&<4}(ZE#Zbs`Ev-?iYk1XTjg`0 z46Hv|Mldm^z|W`a2*N(LLpe#-Dmx^s5R-m*v4K(x1PSbWIZvuD3)YG?cty+YA?8%= z>Fp9Ovf)>tQ0m7t3yct0c=v`oR|fg){Yh+(4Ir?D3t3S_R|*HJm!U@dO#b2yauu!3 iZz=EEMSAvgjddmSuhDM(HiVWj)cT)kf zT16>j*NSi6s-l4`Ah!9J`e9@NiOqMk`OyV587KcW(i Z8#xL<(Yk|)&j2NCfbk{1d12mpCII?fpe6tS delta 600 zcmezHi1EWC#tG8wMwVs<#-^4VmAqMD?8yp7Vw<~Ie=?&8Ea2SFgd`xoxt8Y@sz59M zH)H{^%?miUGfnmvf zT16>j*NSi6s-l4`Ah!9J`e9@NiOqMk`OyV587KcW(i Z8#xL<(Yk|)&j2NCfbk{1d12mpCIFcqqb&dc diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 4d3105e13ed6eccdccf378d430f552b727c8ef92..a3d0f3b91e0dff1966a293be4e89bf68c839d564 100644 GIT binary patch delta 3810 zcmZvfdrVYE6o+$eK~z}FQr)$+v7{z#D#}wqqeW|sB?xwnwrb;pz!IU2VqzaQkch^# zwoMg#wNtGqT3bwoiViw0QcHaDQfLUig*7R)224uqTAtp$Vw~PTWiR!;av$tV^u2MBb`p~sBx0)To+M$q%LilimDeWHLrE7k|9Syy zr$|U@zJNU1lXg&;8AR_%YtbvFM(IC?N6@wz=Y(5agr1x20=+CbO1~Z+MSbb#17`<> zm|m9errq=0hBc zLEl>38nj&BzO03MmW0sVzAQj@&+-7>J^-7?mC*0+c)t;s=}^U+ls zq@^1=0=JH(^~EQGpk7~W=zjfa1U*tx4^AsdrCY{LRd3SNv$^S|Edk*EX92+RWdNAG zEdXTiumLZv+bIu@+j{l7ofvrx*y(RCiSyB#a*TZYcS_`I%59M^ps5FrswXYbQx9A* zgvK7k$WIN7JU^mdy(ycnt+YkRgxh`!fZg-v)2iwN>JDy9(fN8+b*tY0)Iql&YZUIH zb}nt8Hi=xlftt5@xEB3M3iQXUvU;n^5*LQ+)ng*4uP(6C>IZ}mR&{66*oMkrn0Ph> zoP8k#^fZNlIjte!x;8tcnVqJ?bZJM2IKFX|%+5zPpXkbK5A0y=O$jh!E?Ux+rzV_> z4&IS~_o!Uj*z>&*F^JyS(@HDu$x<-we7%8ozTQ?+mH`g>YhMF6r-ul?mp*wQSK%SN z`jZFEMhbO3lDTL_eIotm-;2T*0mGh3c)|zqaC}H6ErJMfLgM)l^4X#=Q2H=O1W^-7 z+y@SFDF-~%lMx1_`(s!WlNQuI__l0{1FWoxi*%6Bolwo9p9KeyNC%8mUjl9^vxgS| zd;d9j)$HplBAx8$Xs82cVqk3imcxbb)^Ri0Ef?4`0-vBv*7v+Z`D#)$7Z$Lg7h#`> zn7{;a6OS_MiUs*t@bKia=n3$HSYjZ8sMRq4djf=NslvBOuPI&#I&+djxf8sKSyloB z*ET_F6gNvq0b6yu*-O*F4P^FAaIopAAtvP`XYD+ZEuH}~Hw5*jE7S-I-boz$;0?Gf z4$d*d5K2)JTL|JKf|X=Iuc$sWc9GLdA)Eb?2{GczI6k=m#)bJa!Y}Fu=2--`N7BV` z{WKs8-h(JT&M}gey#r3w8^d6gs_kYomcuZWxY){7uu&ymmXQbcZcmWhV6#_)EE0xC z3m41yC?1S*V5`?avp6QN^L$ob1o9;}5J6;?58Jq2v1gc1viSJOFT48_kZ(NCu|n2a ztYoTz2%__*8Y91+3vXl#3;VBZBCHo^!>)_McSTV>l;6%}014+=|sJR)zxWKOH2B z$P{fmqnNXbbE+tgEYZ7-ij^rE+Y%&-$P^vAteCU*c2yKdmZ-Z^u`)$HSA#?mnW70d z74ws~VT>p<9Hg6vUwuchA?xlzA^Ghu=rodg^Pftl8gmTiszkIInoCVSvP7@m4-%a` zV2M8L4-&;WMb!656~&Py`sNcw6hDg#Sm_{C3uibXNUrcZJ+V=ft%Kn&FtrtE8m6yj z7Pj);!!)%OXquO`57*>J0srmhC5W1>Rxm=t^fkZbWcu>v>}7qUH2I_$h#+bvS9tC;Z)&Mv>89ZB}LaE8A+L2c+Rwr`r=zSOG{s-Op#<~Ci delta 3810 zcmZvfdrVYE6o+$eK~z}FQe|yzEU8JGit|4CVn=AwfWA3ozFEaq*kNsF2mR~#RMe~HOS z)-vMOw0ym1#RPp|`d;dNp;>Nf1A3PGhF*Ek zLEl>37O-63zO0qHmjuz>zRXW|&vHNAJtsXMVu(r5~8O z%@5@4umKOP-zg7{+j{i+ofvrx*y(RCiSyCg3XFWmcS_`ID{PT3q$vlEswXYfQx04) zgvKAl$S3Y&??H3@f7 zJC8O}n?#=8NX^?kT!;Q7`uk&6S%Xz&2@6B@nsH&&Tkl_K4THi5tGcsjOk-6bOgI|^ zW?TpY-OWK@Zd(wzuH6o4R+s58UE0|xj&B?#tLu@?C%W?513OrIQv!@wG%fAUR}(Ip z4&9M}_ozJD)cd^;nh6lnZX^&I|$4^D(T6N)2cqd|Ni%0an(;hC9gTPN-p#&w>L;xC2J3F9Eld*~1Hf zz5g7%YWDRN;ZAmREYyQD!9O-W%aOu&>$q9$Ry5c%0-vBP*8jXh`D#);7Z$ML7h#`> zn7{;aGmkRsjsf{t@bKiZ$Vu>nSYjZ8sLe3{dlCd|slvA@uPI&#I%|qTxf8sKS#~@G z);2+E6gP{X2Da*Uv6p6m3rNN+aImzLAd~Wuvv!`$7S9Bk8-jY$6>03k> z`WZkLyay3_tYb7Qe+QhZH-^C~Rolg8E{72+iDoNT!A6yMSY|%hyFEd2gJrA+StJaP z7AltUQ5+cMz*et;7I92o=LM{y801TCAcDv&AGUG5V$U$2WbyHlPj>ewAm4bNV@0g1 zM9EYG5k%)rH>yf8?;_0yMLwCP)$kTL&p(scnav)s0TdFNc7 zo-ZsQ@jI|U__tTZn33$iZ6KcnW1iu>Uk_og@AO9mkr5XsbM1oPA<}&G?FT4e%k~5; zMAXc%A1PN9S*bY5aO8{Sl0!~J;gR};^~ z1hLVW+16UMWvu%J3R&ZEs1QpCM+DIYJ@<-(?LVow$8b)Dnvd{8xD{(qtPBMP07^%sR0{+|0LlCuCtzeXf>1%$=$@JyT*~9wBX!1!h5JA*pZqy#7 z`cpYpQxXwJzH+)dUNPexoLzoFJCfvU;S7Iug4)od*}jEZiMUn%E3s1qgpZmvXR7(W NOLvWjpzmFr`yYcg*KGg* diff --git a/lib/lmemorymanager.ppu b/lib/lmemorymanager.ppu index eb4623be276b7e85a1676b9fa7de3b36d619835b..9c6494015f8fb875f10f0fff2b07a57ea7a48001 100644 GIT binary patch delta 1558 zcmZ9MO>7%g5XaxFcfGdPPHM+?KGu$7H*Q+dLgLg>0R`lwZmAl_mgAzds^l)omROGM z#7+yT1fifz2$$F^rNj^YLVOYa?soI}8?D1ah^Kaw&nnwj9$sqhnx_Z* zHX3H5)!uFxP2)wgJ@|3Tw|6giY4@Wy{T`PP5L6_Z8fkL5 z)gmG0Rp(0Hapj+1dR43a?#j$^C^0ySRZ+d z%LquIuIO2+v8_xC80*cB3(N|11T0J@1@gUci1ENpVvh#tBfE}M}4ULy~WspNlV!LeWYt>S0uxVFzjz8v@f zA9xC<5;T;JwrL2+1iQI^XNc?{dj8AJ3j8Uv|0{%(-tC44oz@q&`n;;Ei4r0t4pQad|p7r4uhL^2_6cw*)X3=E991|`Nc~4Tz+Rs zK-8i8nWnZsK=WMfbgq)C7SEhn%2#ML2OhFvZWAG_LxjCF@>QNQjSarhZ2=>8rIUp6 zMM5}4-fIzd!;A-atRqhJh$s^!&S4YB?1G*kfcprdgADLL#_6Nu_I^m6CWh@vdh@+Q zbcnpRWE$<2HHSXYqo20v9g(8}gAf@eFV~ti`jueFOfm+{ifT=D}B!Ck`WR$#8zuGqG{xaSCZ~<4enIPBsGJn4uyMp(%S*=D& zomH5@-?SG(T;R^vJ`5aoj}aLj$8WWPi?kJRN^_SOjzA=LQ)_g)4mQ`tKEca<>3;#||LLy) delta 1413 zcmYk5O>7%g5XWcMyRmoIPP$3#IPpj7B+Un{+9q)-Ary#}ZlNMhTsxI&p|CRPLPAr! zvO}Q=$tp-l+^~it;$Cq=y}^Y8;s6qG2ccZrE86;?E8QE zVXjcA++1E=(?3Iqz>k#~s1E}?_CJ5p{A%Kx0syS`3a=S^zy4dV_57>7pS~FWK?6X? zU<)w>>f#*tC3NT!u3(b>!YrogKb)p#m>^dh!wl869r{B{(M!5TziHdJM7cn+Gm;y`b7@2q8D(8 z+WPG)ChrlgwEd3XJO-RH4gQuE3kGH7@>z%`odGky3C^kKDzyh9^pnm4wZ@jkezayzI~?W}fz}IG&;Rtq0wtU^xjSy5DMcT1R|>W2izc z$kK#N?b6oP&ZbwZlr~+!@n9LB%6h+)0W9&@<RZ$}Eno)$q)>K4Lg;_@d z(E%WLH7l}304zF2mnBFrG0!8WQbNdY7?$jO5D%+k%t)K$agj$%O|Z3VextpA5YiV0 zbS9(=Jf?+Ciq#LBhx|WZw1dE57GWKvvY4D?J9MXUbky4C3R@wt#O|_!Nx7kM=iRo? z<+ z`|>GlJ;2^%sjRRK`hM7-pJmM6{Gi?DhaKc{BducQ8gGW~*EPCfrD<=(>gE_9pW7Jql9yKxLGLstf zW=qC?#>sn_c_!yDnQcD7q|M2v!^8jw227I~d2HA$fkM_ylbw08`5cjCU702ua%!;V z1BD7FzvSuU^n*%PmvN*p13<{2Gj_Cl~Uo0suy@ BFsT3l delta 273 zcmca1KTTdXARyGx*p#K2k%5`vK!6fM9zO$v_(~T9LiIe{EAmqPYKG?2GVj2KxYC0 z)9+j$$*9c-Bu%06AaP5G!A?LSm&sXtlNh}w|K-!*41g*Lo2wfdCx6_|*)SoEp%CSqu%!O`gFlyjh>+Gz;UL$-grPGO(xIh6rX&RXFucC$y0gH zav$Y}$>>a;&nvOHmG2h|$L7?wr+HJv=S^-G*5F&l4ABZAS20iCD{RBI87Q=sdGdeZ pY`)z{viq4QH}Yt(9R&&!v#!Q!)C$AAz0RU^hJx%}s diff --git a/src/kernel.pas b/src/kernel.pas index 5eff3bba..e7d51c21 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -71,6 +71,7 @@ var temp : uint32; atmp : puint32; + test : puint8; begin multibootinfo:= mbinfo; @@ -146,6 +147,7 @@ begin console.writestringln(''); console.writestringln('Press any key to boot in to Asuro Terminal...'); keyboard.hook(@temphook); + util.halt_and_dont_catch_fire; end; diff --git a/src/lmemorymanager.pas b/src/lmemorymanager.pas index 316b746b..ab1e397f 100644 --- a/src/lmemorymanager.pas +++ b/src/lmemorymanager.pas @@ -14,6 +14,7 @@ interface uses util, vmemorymanager, + pmemorymanager, console; const @@ -45,6 +46,7 @@ var procedure init; function kalloc(size : uint32) : void; +function kpalloc(address : uint32) : void; procedure kfree(area : void); implementation @@ -97,6 +99,17 @@ begin console.writestringln('LMM: INIT END.'); end; +function kpalloc(address : uint32) : void; +var + block : uint16; + +begin + block:= address SHR 22; + force_alloc_block(block, 0); + map_page(block, block); + kpalloc:= void(block SHL 22); +end; + function kalloc(size : uint32) : void; var Heap_Entries : uint32; diff --git a/src/pmemorymanager.pas b/src/pmemorymanager.pas index 83805634..7d983286 100644 --- a/src/pmemorymanager.pas +++ b/src/pmemorymanager.pas @@ -129,13 +129,13 @@ begin end else begin PhysicalMemory[block].Allocated:= True; PhysicalMemory[block].MappedTo:= caller; - // console.writestring('PMM: 4MiB Block Allocated @ '); - // console.writeword(block); - // console.writestring(' ['); - // console.writehex(block SHL 22); - // console.writestring(' - '); - // console.writehex(((block+1) SHL 22)); - // console.writestringln(']'); + console.writestring('PMM: 4MiB Block Allocated @ '); + console.writeword(block); + console.writestring(' ['); + console.writehex(block SHL 22); + console.writestring(' - '); + console.writehex(((block+1) SHL 22)); + console.writestringln(']'); alloc_block:= true; end; end else begin diff --git a/src/vmemorymanager.pas b/src/vmemorymanager.pas index ce2e5187..4c282365 100644 --- a/src/vmemorymanager.pas +++ b/src/vmemorymanager.pas @@ -112,10 +112,10 @@ begin PD^[page_number].PageSize:= true; PD^[page_number].Writable:= true; - //console.writestringln('VMM: New Page Added:'); + // console.writestringln('VMM: New Page Added:'); - //console.writestring('VMM: - P:'); - //console.writehex(page_number); + // console.writestring('VMM: - P:'); + // console.writehex(page_number); // console.writestring('-->B:'); // console.writehexln(block); @@ -128,6 +128,7 @@ begin // console.writestring(' - '); // console.writehex(((block+1) SHL 22)); // console.writestringln(']'); + map_page_ex:= true; end;