From f2a42134c7496d2391532e3e78a722b8bff93bb6 Mon Sep 17 00:00:00 2001 From: kieron Date: Thu, 18 May 2017 14:08:16 +0000 Subject: [PATCH] MemoryManager WTF?! git-svn-id: https://spexeah.com:8443/svn/Asuro@101 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5083136 -> 5083136 bytes bin/kernel.bin | Bin 28900 -> 0 bytes compile.sh | 2 ++ iso/boot/asuro.bin | Bin 28900 -> 28900 bytes lib/kernel.o | Bin 4264 -> 0 bytes lib/kernel.ppu | Bin 1940 -> 0 bytes lib/keyboard.ppu | Bin 1899 -> 3031 bytes lib/libpconsole.a | Bin 64564 -> 64564 bytes lib/libpkernel.a | Bin 24702 -> 0 bytes lib/libpmultiboot.a | Bin 27222 -> 27222 bytes lib/libpsystem.a | Bin 124006 -> 124006 bytes lib/system.ppu | Bin 9272 -> 9272 bytes src/kernel.pas | 4 ++-- src/memorymanager.pas | 37 +++++++++++++++++++++++++++++++++++++ 14 files changed, 41 insertions(+), 2 deletions(-) delete mode 100755 bin/kernel.bin delete mode 100644 lib/kernel.o delete mode 100644 lib/kernel.ppu delete mode 100644 lib/libpkernel.a create mode 100644 src/memorymanager.pas diff --git a/Asuro.iso b/Asuro.iso index 6a943d2eef21c7921f2122b2297fce357bf205f1..4bfadbc1fdfc97a08222700c83e21851d5fddcc9 100644 GIT binary patch delta 11167 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 c7Ex!X+t2T`m_hj|prdBdbX9biGCyiA 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 U;WuQeEwciC_;cy0gX-z{Z|wRC*8l(j diff --git a/compile.sh b/compile.sh index c15a46df..314e6fd6 100755 --- a/compile.sh +++ b/compile.sh @@ -7,6 +7,8 @@ echo "=======================" echo " " echo "Compiling ASM Stub..." echo " " +rm lib/* + nasm -f elf src/stub/stub.asm -o lib/stub.o if [ $? -ne 0 ] then diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index a1816f6b30dc3179a38568d01bdcdb8d38cfbfe2..eba019b45129a8a5bf21f6d2204f225b86fed87b 100755 GIT binary patch delta 1423 zcmY+EZERCj9LCS-+F9sEZ@aGV4v6hEyd>S0k&%!%jPng+5S^Id$XKwO(cnu^qLdVZ z8f#r?JVu20!KlP9h#S|`vKVtW5M1<&W*@+*Y_o>Li%X5TO(nZN|8uuSnw;l8{r{eO z&i|a=-qIv5P4a=D#&?R4)@&baU`%Xm3X7+-0FR0Tnvb6o?`k&r35h7vZ-NS<=C0VY2Y1#gbBb;#CQ**at+ zm2A~Q)!wNo>?PMtt_x1Kc_A%yD9dQ`7lM#6+RSnf zavBa?e$C4TpF_A8p{Ax9i_7|H{eJ z`kQx@xvd-$sa5l~a#*BR;}Q|6HMm6e)Y@qqpU|I9xH+E?dz(yKd8J4-znVUH&7O(I zGN+5VPc`Ed!#XFKJbc46i}}x}fP+Wjbt>GwT{G67f6*a}XrXxD;~_ll3LoS!zfAA@-82`|{kt1k-fCzt zJwKe8nICl*zJI`7xRA`^Zse00Ul(2X|IPPI#cAGT*4{z$CO@M3&8w^VDwA6s<^R^5-Pvp&7{KDM;xz z$VH00g3Zfg=tw4J;a20sHZ`b$`! ln`=}*^O$B3b3U#acqWwHyl@|t|K}Og@7&eH1%K|>{{T}W9i;#O delta 1142 zcmYk5T}TvB7>3VT&9>ZhcGvx1w=x&{QCf|*=t?q62*J9jAd2dujJ7EHu|E(gBCxif z16>6cC?uGP12tO6D0InwF<-ua%F@0)XGW@Lzu4Dn9C z#*c}BR-WA#VN8^j1;u{N$4f+`R=@|u4K2y1MAR9}napQQJ{Q}aQG!kdogMs@sB*<} z2J!&A#2HuA>nLQbF3A|{iPo?E$C6utDsjwFW_7YdKL63=u^-KILCrM1^o*8 z74!qzE$CM;pkP430N`v31{4e`7*sF_m}9}9f*}P%3Wfk@SumtvSi$h++_o&njN(n2 zDVs${*x#^)rZ3D!aWxg|$?YO{5KdORAeD3|5!!sf4;i7&EO#QO;lSk!j@y)nu}d}M zO;zLPrtHTT^x$K*X#;&Uw2r#^&~+?gaah(MUsB*U1*OAhOH}{kc3G3*N69@Sz9fTZ zN!UI)w?amV4ieo6XFVdmM@;@KfO4`Z7e7fOaItdNF>4c4^^zE^H&Qsz*S=z>mM56qB zk&(QsncWQYx|nR9PN$8l_fVi?M9joZ7E67BI~-_2j?wDteqiq8C#4!Pl*J{k|q5r diff --git a/lib/kernel.o b/lib/kernel.o deleted file mode 100644 index fe1821e97ebb098259279495cd74426426603db7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4264 zcma)51Bx@;HBe$FX7re z3h+~W&+~bn@BLoye)r4MN~s_S0(nKC82LoBbim2X+h&T!X}>46ZSBh6FJC>pp~SB! z*EW=~E6Nw!U+wJdyw6G7+fcrEK-_%qcz^nL9D9GrOGI@39d=^ROGNil`Rayp_42j& zdeW(1+@t<~9{IlQe|tTC`;Knk9_?XDHck)iIY>Jl|Bke@9V7bv_WsimozpU}j6Y3w zzorq|@?(GaD2~9clI?W*&Gz}E+*|K<(&;n{%ImFua~X+buCsQr)vUMsN!Cr5I`xLt zO;#+cVKpYHD3=VivOo)YD+^jnuE zsnmG_wU({5PWMvsfg~+viHgnhtDzwJWpw)WRzO#VE?B+dpVj96?V-Jow7?UU# z7x$|NiH7C}F1?Fcu&08Cc%m|ac`9@*E4ftftzhEk(x=k%$+?-?`OM6GW^RTutDQ9~ zbD?Q+oCb?=E)jZg`0Py%SV~cQACo9jT{@ArdSx;!VjfF_L_M7o*__^GolS7=>T6 z7>)Qzc(KTy8KY6MhwiEbv^N>JgE4I3Gg)7 zTWY@le(=RWUIo7p;IrUg2G|0>8sI+In-8wu-h5~7BcZTvx zwzi-fa@8;wm1;#Pkz-7Ie@ZQtYxt67HO(-2cQTDsPOj$Fid>=#YxQQEjAB)h^JnC0 zN!15cm?@`{lv!%bQjq3CbRtCaAvzhNQz5!LME8W~-Vn{sgfZNk**RzYN+s`&KA&AM z{W0$vK58j5aIaSSL`QcJm_Tpi?c8gKSWPAh3u zJ!RO|GpUeLSB$(;kg*7|fx5CaLvaK(LoJzn%rIqiJ|`QwqFGR@3Lh_=j;I4iuey=y zj~&OpSvOS5s+w-*WkWV)ETd_txkaD z8LT}KYQ;#Ew8{c3nWoil4Cca4pVg{)%+g>+!=uY<6(cxAO82cN`;>0f`*lh$_j+*c zC;riHea-TKpKs51-V~4c#h`TW(pta14BPKIcGdIRoxYV`sMMx={rbuUN_TNIa$021 zf0>+&|FRKXhdn@?a`t%PCZb!J?;twG_D-Vv*&cWHeBlQ~ikp83R=Al+bJ<{f7tuMk zIIcdz7DvSuw)kMJvYjDXV>?UKg%#$Ao?t#f^i#I@XXF=b(eAI=qTSbFgjH$2%RM}onbcXFw zXFY@)&@MCXdz|f$h@NA6jO_CR^J^}@<64;SRnRTsADXtyXSoa6uPso%gx< z9Gbt_8Rz2Z62Lfqo^C7fJ!7S(I|M(_3`KR`nFdS0OXr=RxIV8AO!>g)_=o5KzYAXR zbXbCr?izHPo+yx0;0L?@Hahe=v?GXPdF(S6kEM*CH&(b*#NZ2ofY)vSps$NnY!g1T)i5civN5`LcUNNP(%a|wFgn@pTzggWYe_@f{Ft(dGC8~-rITe=1Xty z!1neX6=zB4;(l+l$W#h(^_;EsJUjihQ3$b;CkDfU$TyPC=hB%9CBj6xWsROU)ucsC9vA0Wjl$KSuhi3K5fpw*{ScE+V%vd zs*&`Gq;2L?XFeE@Pj)qQ16;zB3^t(xTWyWi20*?*#!8NsU=yXmAQVhcm0bODt(I#_ zt~GM)Lse)QLizd!`{SM6{_cTjJhHE+C;o}p)Ifqn6-zq1=qwNfZ2@b8gMk16118oM zjE(M2|DU2rDRb{egnt?N@4xN;MkrUJLRR4y_u!U_uf!vItEQK(s?G~897A3p*PAbK zUcRs+kfk&Y_!KOyz`R2?TqXC`O4(mtlUFVlwRNno2S&jfL)o;JL!EuG&S>ILcSj@^ z?k#s;A`%Y|26LBj1ZnnUdf_23^xFW+!}D)#_QqlgZ$RyaSv zQW}pSYka19$$u`q__wCif>zEd6pQqXcRj~W3c9hhKqMB4hZD-t>;JokbaQEQVMN@7 zGrVxavOK}^yONGrdwDKCAVYGvJy+I$=tKlr!;^yeOALfPhr&r@W09CF<)XQI`1bSi H)1cya`Wf6v diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 74a8379916dcc037ff275678d7eaec1475113180..b2c80de464cb390c38561ce58ccb5e2e8a515f3d 100644 GIT binary patch delta 1137 zcmZuwO-vI}5T03fw=IRzAC!owPzurZB55Gu0@;>dA+%D8AttVEX@#_D4cG&L1dYac zGQp<@;{^>-<3Www1QU!0PA0~So;>LV^;RVrUjOaxto)<{z=5Tvpmg)W()gP6RAL^~7p(}y1qdP_C=x|> z9*J^=2)fLE^`3p%?AQF)FAsI?Rdg#AYylh3C|rPIplYDSKw4e;2o1F&uABO;yv`+75+_; zXQ+1~6wyX|^udwAF<&%1ppCLkx$zX8B^)Q0yj6rX+4NkpkeHd&bBVb^@d99zvor$1 zSVx>m^2*W^0O?nnG7NA|o?O@rTab?hu2Oo9m$1VWvfmUE)`o{eT6oAe9vST6T268; zesam{AhgY<5_vsUm`nqDYlVt=>TtV4zO5ol83t6s>*T_2a20L$DSgOG*k!6{Fja)& zeSN*7dNdvz&|_g=Xkx5)mlh}ebf=c)dZFbGpGvkuzO98{S`1hSACn7v#r~s_{L0_rZ+Y2nOYEZBVZTSE6<$U^d#Pp`Jrp{8<|$0)r|I_k(Rfw}k0jP_@%;l< CmY-_? delta 290 zcmcaE{+drQARyGx*p#K2k%5`vK!6g1GdlxA(+k#P)oy~mehdr@yb~3TncmNu7`B^f z594HE#&`}!2397Z1o!0kj7pm)G08DbUdJpX$HU4D6l4Wr2F5=uATk=n2D5&!ZobD{ z&Bz!tIf~U@2_zm1l4Dfk2CE0Mc)eXCo%|hxT;e_bJVPcQWL21aj6;l(Yw}%=g^bCQ z>pA5aGbhjIRN>4AX#|4O$!CDPatMc^cJfb7S*Ci1$xFFRg+OL5WQ589silmQ-*B06 puLBBg00}dyP1fa3Q{VwI`BdQcX69v<0HqiqK493!IC(R-3IIY%J8u90 diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 6f5146177e8e995816f4d9d4ed7feae542f3fb09..a154a51268311b745c0ed761453501efdefc1cf4 100644 GIT binary patch delta 745 zcmdn;gL%sj<_U5vmX<~)8LWT{NkIVIleQ)cw(F1E!fO7S)QL4EV9^up9LZ{ z!A^X$w{R$wXRus+^KS8}aBbq7v!%B}c$+u48Zl0eC={4Hp;2IRL8<6u|0M3odQ8%r zH!8R@K@7W~Cb3yWc?VR(1+^=1mJ;J+ITeA;x3m{Qlx}X&y91R>FuDO{HRvfZZjLkG z1vL%iG-Insh|@Mtu#;g2+X8e5)ZED+=g#+B2+DK&3(&ySB3Y7!7u(Tx>$^+T(w&N`{BtX2c-7n!hiOs+IzCd{f{Lr}F zJp~fCn;%SfX57p_?JOfCxE@RwfLaJLhI{sV6pdS$CZAZq1BpI}Q3oLMn+=xFXWSgP z^fuHOgXL97?moK87vb*7??b#NJM^$@u35hi=5Jukgl?8pfEe7M7qa=-LWT{NkIVIleQ)cw(F1E!fO7S)QL4EV9^up9LZ{ z!A^X$w{R$wXRus+^KS8}aBbq7v!%B}c$+u48Zl0eC={4Hp;2IRL8<6u|0M3odQ8%r zH!8R@K@7W~Cb3yWc?VR(1+^=1mJ;J+ITeA;x3m{Qlx}X&y91R>FuDO{HRvfZZjLkG z1vL%iG-Insh|@Mtu#;g2+X8e5)ZED+=g#+B2+DK&3(&ySB3Y7!7u(Tx>$^+T(w&N`{BtX2c-7n!hiOs+IzCd{f{Lr}F zJp~fCn;%SfX57p_?JOfCxE@RwfLaJLhI{sV6pdS$CZAZq1BpI}Q3oLMn+=xFXWSgP z^fuHOgXL97?moK87vb*7??b#NJM^$@u35hi=5Jukgl?8pfEe7M7qa=-|>ns{y2B<>t{ zA7~PY!Ne%yW10{QgaQ)#0}UzS4^#m{WdaHK1NaMpgwQlJQ9(f)n#Pzw<@w$FKK8wr zIDR{2RlNG-_wIgo&wadi&vWoz;i?gzeD8z5mE3(qR6j_ z23{sQ{5PVHeTjyR5Dl1qR?Yy(o;yy21!RD2MRk-#DV%8sNaDG9B9yi zh8!pua6)Hof+14xpGe2$?N1lWi^ciCQqW&g-J|zOB!uR-?0&m1h6b%Z^7*E^KAA|3 zdORNP8q0X7jcSN!uh$BXDCYoeqfVQ0ZAVYLgSsZQx!9-b$keKBnPaXgRAh{AZ?@$e)@mo;Z85Fh93g zTq@2~=1PkJM_>(2pEyx2KC+6)3JzF3?%;UxSBj5S$Ui$>nI`{?7{N%LQw!p z7QdAj`IjDFs7#+=w^Fv;Q{r1JRf_(x^yHzX%Jj@>?ZwvjqRa6}XG9J1oi;}2fKEC& zYKMy>bUQcz9oL9%H`5?LF;Vf@t}xGSjMt-+xPva~hL}!g+$iInoC)fTcR;ytWBkZF zu$Ly7<`g`(k#duab-ME$F(X9m3SCa~BU(fgei)&%Sun5^aycIK54ax>`s`9~l3 z?N29OzxdzFmoJ}3C6(`7;`MvHE8jm@ImB8E(RqvmD#D1xz}-{-dc_4BFaXwgB?*D8;jVA;IA3@ zc>`ZC@E;BQR|CIc;C5}K#QX0t@GS-&FtDyEUfKF(B$Li%QVCw&B=gRt0!h^U*&1P3H~j%AW@O6IcRP~k`>bF{X)JDNB?oZ+S3>V|py%d|Bb)M!rC z)X8+dCzVN$vFqrOD_q$X3dP0QYDcM@@6Tl8+=bO8th0IJnRH%n;|)`3{N>`jwZyoA zdE3i_)lKYrST}z^FptRnaIYu28!ih#lwA+6?-Rfre;+XG=ouU5;c{lj;qD=N0Pc;J zs_T8Pr5bzRN3?)&E{wMW$a6E%qrkTiJpp$w(O2PexftJ2?lQZcTZz64%;o+NF30~E zF2`SB*Ta?m1u(~B-1F=s`mK%s443Ku0+;D8BA(X_|FGl#1Bqc~~=h7We?s*WupDm3C>Eobc$&xD^E0hKo=JY5;1IsGzcFsUV!>h^Lr@(#%H70w7t zEHOf7DyM^J0L=&;6x&WM9CQ~rvYo>~gZF@vBD*yampbe~NNwS`(qSL6D@UjZQAoU`kDti6jp6;y0yc0+E^# zI#X&)x_VLrx)pvJNey1ATPqju2xCf3H%GWx(g|l;xmaxmzeq!$OKE8BRjj?=*V?OK zW?JT_5o5o^G_v$!uM%FkCSz~dUPZr4&K?N6ALo~BajZAa50^@nxy6&d*wWc@$?x~$ z1=lko-Jsb_<38$Rj{ExBBglUdt-lYxspP_k_pyx(8vk4Mq+Loqxfnk?Uzt0>!r>b! zEu5L3n_jH=AS;JbrRmvX*_SRBXN$AlQs-4}^(8o_ndBtYTyhf78or*KoY83D6*^N+ zOuBk<0=gA`8qFU*<^eZya+vAd$ceBl-T|h{Vxk!hx|Nflz18hPPG;;<>d6VVZ+Pp- zs?i#DwUQjyOmYxzE;$gMMh}SJoG&Jf?h!gu4otdwasav&ej3RE7}bp&+`@Ej>`P^0abIq7WF(QxHPEE0mFBl-Cb{5opruDyoL5gSra0P- zTwHZMDj2W?qtU6KfeoA=YH~3eOQu!}MYGC5UvtU9PK#xgE&gkEehAvf->#+{XzjnI zw^`+Y|J!M%`9OFdeIWj8R}SoBUk&A81N9`e&!kq;#aUijm&<(GasKh{HDv;U%_XX;wKH zY%Vzvo<`e?|Jt1&>_48brW_m{cCh^_(5!O6X9HS#lGU5_=7R~2Ug2lc?I#88znmM& z!4>F96`PUk?yJt7JhkqGU`R%@$_0PI)Kr4u)7rh>1Tm%2z$tD^<-Yq{!6*V+1&DM+HgMIQUlfZ>rFLeTd!c*GJKn=OH?OfztEW~ zyh&GYZ40_(el{Ivhg|+A+#0i6V>a_IU%tXmQ;gXmm;dqxBLVx^Xya3(zqCIClGW)p z^_`At7iGOrZJaHhrSeR#Hbjn=i$&kW^wJD3Uqk+Wf5aCG1S7qHNN*@Wy{AeG#op6% z#d2w}SN%oSOP%^BN90vE){sZm;M9gsGe>p=; zMfv0L9Q)_tUu~+nbJS)ym893OjlY?4PWtWYSlNnAggaU8)DmFG#ur&)fc0~Vz{e$$ zUEnzbf5pJ~qEHOz@dcq6V0})MJ6+}$A1vYe7CtYGD_#UzNUm)WVqC+r)+H|HMLupn z1NNsXL5dHL6>2vft-AC`#pjOa@`-W&K-9kfsL_mGdzmY^Cq{iLs-;xZA-)t%bJKaQ zBg(?Pp6D1{ZqOOH{H5qgxIFhh0++uGeG2X#qGxRUEgOH&cG+=d!0&i4EyF~WU9(i5 zGF9*52Hf9A z^Ci2YGIn$du$KH+`wheFFxpkLkHz)A=Iq;6{_indfTRXLNc)OC^mRllK zFIV0$dYf#y{D=`Yx2Uu@*|iV3Jlzlq$c223^`f{vfQoFHdeMKl zHeTA#Hs2t3c?WFNnIEW0j%ic9i*;j0yXSzH+PCiTlJ#r%U&pu;)+mRxAAxlMRwt~j z*9##d5Zxr9?YlXueFrR+CX9$tkObh{hlm7xeG0--@L(1C;JeESRV*S9JO-;97V6v1 zlbU_&M@?gs9o*@S5Az1y#bJN*Pp1gDNer^q4+mm8a5%RN9bA8&YXQDs4!m4XLyt zl{T!>hE>|IRauobtkQ;6+OSF+R%yd3ZCIs^sI(E4D$@9m##(E=J>6d2B}pOf7wGnH zz|{u?>9{&Bx)M(_>Etpt;+2FIO`SZ-5zu=Z>EtV{Dd;y~Nq(kI{u@@Dizv`GLYH7H zenf?(Aq_fHCyy|ll0By5tXJ#gE>DBCb_!cNg^JahXQ$BR`K}gcw>Z1WINR+Bt$_O* zMJDaZMb>(aZjRFDqRp_@(HGn1J>2FtYooo9O?798Volq^L=N*#Y)I<698oS~g&*h` sUHq`_qLhd`*wuG0US*6$q!?ie^JpRzeSPsKblAujKk^VJH1nhX1BY+B?f?J) diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 9b3febcbabc85d0c3c31008244b31e199c7c2bca..e6d49279ca960db825929491468c3e006ddcbac9 100644 GIT binary patch delta 509 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 cf&2O@h@UZGdfZ=7v_V