From 1f2f7cf380dfdc4dc251ca3c5d293fb3096c4467 Mon Sep 17 00:00:00 2001 From: kieron <kieron@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c> Date: Fri, 19 May 2017 16:11:50 +0000 Subject: [PATCH] Paging stuff. git-svn-id: https://spexeah.com:8443/svn/Asuro@114 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5083136 -> 5083136 bytes bin/kernel.bin | Bin 28900 -> 28900 bytes iso/boot/asuro.bin | Bin 28900 -> 28900 bytes lib/console.ppu | Bin 16074 -> 16074 bytes lib/idt.ppu | Bin 2969 -> 2969 bytes lib/irq.ppu | Bin 930 -> 930 bytes lib/isr0.ppu | Bin 1981 -> 1981 bytes lib/isr1.ppu | Bin 1981 -> 1981 bytes lib/isr10.ppu | Bin 1994 -> 1994 bytes lib/isr11.ppu | Bin 1994 -> 1994 bytes lib/isr12.ppu | Bin 1994 -> 1994 bytes lib/isr13.ppu | Bin 1994 -> 1994 bytes lib/isr14.ppu | Bin 1994 -> 1994 bytes lib/isr15.ppu | Bin 1994 -> 1994 bytes lib/isr16.ppu | Bin 1994 -> 1994 bytes lib/isr17.ppu | Bin 1994 -> 1994 bytes lib/isr18.ppu | Bin 1994 -> 1994 bytes lib/isr2.ppu | Bin 1981 -> 1981 bytes lib/isr3.ppu | Bin 1981 -> 1981 bytes lib/isr32.ppu | Bin 1972 -> 1972 bytes lib/isr33.ppu | Bin 1983 -> 1983 bytes lib/isr4.ppu | Bin 1981 -> 1981 bytes lib/isr40.ppu | Bin 1972 -> 1972 bytes lib/isr5.ppu | Bin 1981 -> 1981 bytes lib/isr6.ppu | Bin 1981 -> 1981 bytes lib/isr7.ppu | Bin 1981 -> 1981 bytes lib/isr8.ppu | Bin 1981 -> 1981 bytes lib/isr9.ppu | Bin 1981 -> 1981 bytes lib/kernel.ppu | Bin 2143 -> 2147 bytes lib/keyboard.ppu | Bin 2966 -> 2966 bytes lib/libpconsole.a | Bin 64564 -> 64564 bytes lib/libpmultiboot.a | Bin 27222 -> 27222 bytes lib/libpsystem.a | Bin 127680 -> 127680 bytes lib/memorymanager.ppu | Bin 2320 -> 2307 bytes lib/paging.ppu | Bin 2681 -> 2695 bytes lib/util.ppu | Bin 6674 -> 6368 bytes src/kernel.pas | 9 +++++++++ src/paging.pas | 28 ++++++++++++++++++++-------- src/util.pas | 5 +++-- 39 files changed, 32 insertions(+), 10 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index ab7811918b13a571a52a4a9093bad6334b983d9c..147bd4556f5fc8002eaab9eb0ba9631333c55203 100644 GIT binary patch delta 10781 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 delta 10798 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 diff --git a/bin/kernel.bin b/bin/kernel.bin index 9fd93488b986cd9163c2697e3f1052f4ece6cc16..b73562910de480001552bf0c1b2bbadcc9720828 100755 GIT binary patch delta 1034 zcmX}rYe*DP6bJBo*T-%uI;*p9cipu$k*roTNm_h`SeS;8CSlMD`G5p7%Sc1ZO3KU+ zN2s8vFwqZT;y`RdwjTtGKGc^Yv4@tzR0ax`QQ~&aU25U}_uTuNGc$LFnV;kHb9~e+ z@%vzrGQ*c$j6p$`6&fTHuZDAytkGKGy41mI!K6>)UZp@kz<E6^#Csy^^o*&6U`t5h zx1b<F=EYE%Fv9mhgzV84ONhx1@XBu94nA4dq#B`B?j<%L#}V7XYY=QeHYlxz{hU97 zDPu+SQWRtU0~u04t%Ow5Sw0MdCQsy040fG|8B+>>2iz?4ZZMj!5t<RBLueLg5oi%; zLB#V>r$wMupjDt1aYG2L0&N0q0&R%85ZVML3QQE3h^P%=qCmSqyFfc)WC-m79ReK! z9f%PjbO=lmnA96R9ftdMm*c))!bp<2;}TuHJRBEy(&7+RN2t1um3lfJ;{-jFGTMBa z1w*Et#w`bf>iExK(9iI9xk#O2xXjdId}aPuVc7qjGuB%)JC1)$Wk$yCt(8cDu36p^ z<8Pn~c<}<?s-pajH1W`6{c7oAPtju6FWpJ!IGxw8q2_sd1`p}Jo9NI8I@A$zESWk< z-ba3ce1WQdXmr}^ZqWRRm{X--73#wdrnXRD9_c7)1y(&px}N-S^$;xvXt9&3Nvg8{ zu}<CfpM6xlg=MFms}SdU%$t<wF3x$U@*;Uc$Db-!HZO7RfwnC{%B>=|VJdB&-J00F z6L=piXSrEl)_aP<vrIQEWuDPEH!8=r$8wF+4eeR$)VO0N^6n<Q3B6LCeMeL4n!%^P z?>EN56^yaZ7^OcjhCgBq%wgo>yHRg`!suVX=$ps*N^OI*b>}Kpwl$2}FBr#XF&<1~ z)P2AxR59Ma0bkBdKC1l5c^xs9U+>a#{C0UBgF4?uSn;JpdW|_{)gT45Mk!#z;l`1H UBNs;rjw&2SaWpH3Yr13q0(-fJT>t<8 delta 979 zcmX|;T}TvB6vyvf-E~u2N1b(N_RC#UGwfsYD>cb4gdVgqQXvRhAJm}0!q^@vjUpe^ zEY5=jg+vI2V$r;8OW6iOL@z>wg<@(eOyq-xWgn8AbBB63zx~hs-7|B~-Pi(;E%3*R z#JfP13gTb-8H2M$PB<kw_)fSY$);%)hNNy@0*=%jJXxzwz0Y|mETsi3`%)Rx)4-LU z!%stXy38HWoIcJKFw21ihlKL02P))jUJpT8Hm%zsBoC0bqfR01h6=mTcGR*KvLELB zI=sqgN{S{j7CyFDit4$r-EoOufDuQ)5=zFdqcG#h;bXuRnYTcOa)YFTGRcsNkgAZX zkSa=iA9boiI)!u!=|s83kWL|8Lb`->p|l#(C8S$Ow~%g>35IkF=@HT+qz9$NkRBnu zLVAVtqBI-QD`cjSnFC1=<8bcmMx1*X#xs@fX8O869v4e#F+}Mkr8AiHgK3Cbx)d)B z|5HK4Xqc4M%}qV>9g%~7Qg|v3JKk`{2I}S`_`~!$J7fI~%YAjrSAST~`y#l;!X`2? z8tD-oqoYyEi|S_l&=;?<0VC5VX~Q6GxJU<CqSOy}eV+E4^!!{rQ_?UQeb~YDF6yf! z`+#f{roK9BUsb$*oEF2h*hA?VrILTzs_*}=gOsMg@AvR|sPsSORoYKK=lqEFJ8Qzq z2enB43g-+)cWn}P3+_Q`qk&pe;shRpm93t$9fFO5Y;YG|Hmzi7cM5IXw6YDxivCbj z@r<Q27Y|Ua^_L8r+8Sr@66=2<TGkMYpAZe-5br-C-Yy^x&^^CiL`*IrUc?a2S;Pp9 z?OVs>+Ca2@M%<f6%zi)&%^_-Z#MWuJRd$>AX!+&u%n&UPJgMsNLuc?BEC-8{+wD>` fgw=}$zE(wD!@x77s13`7m4{V~Rim9~?X~>{=AUkp diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 9fd93488b986cd9163c2697e3f1052f4ece6cc16..b73562910de480001552bf0c1b2bbadcc9720828 100755 GIT binary patch delta 1034 zcmX}rYe*DP6bJBo*T-%uI;*p9cipu$k*roTNm_h`SeS;8CSlMD`G5p7%Sc1ZO3KU+ zN2s8vFwqZT;y`RdwjTtGKGc^Yv4@tzR0ax`QQ~&aU25U}_uTuNGc$LFnV;kHb9~e+ z@%vzrGQ*c$j6p$`6&fTHuZDAytkGKGy41mI!K6>)UZp@kz<E6^#Csy^^o*&6U`t5h zx1b<F=EYE%Fv9mhgzV84ONhx1@XBu94nA4dq#B`B?j<%L#}V7XYY=QeHYlxz{hU97 zDPu+SQWRtU0~u04t%Ow5Sw0MdCQsy040fG|8B+>>2iz?4ZZMj!5t<RBLueLg5oi%; zLB#V>r$wMupjDt1aYG2L0&N0q0&R%85ZVML3QQE3h^P%=qCmSqyFfc)WC-m79ReK! z9f%PjbO=lmnA96R9ftdMm*c))!bp<2;}TuHJRBEy(&7+RN2t1um3lfJ;{-jFGTMBa z1w*Et#w`bf>iExK(9iI9xk#O2xXjdId}aPuVc7qjGuB%)JC1)$Wk$yCt(8cDu36p^ z<8Pn~c<}<?s-pajH1W`6{c7oAPtju6FWpJ!IGxw8q2_sd1`p}Jo9NI8I@A$zESWk< z-ba3ce1WQdXmr}^ZqWRRm{X--73#wdrnXRD9_c7)1y(&px}N-S^$;xvXt9&3Nvg8{ zu}<CfpM6xlg=MFms}SdU%$t<wF3x$U@*;Uc$Db-!HZO7RfwnC{%B>=|VJdB&-J00F z6L=piXSrEl)_aP<vrIQEWuDPEH!8=r$8wF+4eeR$)VO0N^6n<Q3B6LCeMeL4n!%^P z?>EN56^yaZ7^OcjhCgBq%wgo>yHRg`!suVX=$ps*N^OI*b>}Kpwl$2}FBr#XF&<1~ z)P2AxR59Ma0bkBdKC1l5c^xs9U+>a#{C0UBgF4?uSn;JpdW|_{)gT45Mk!#z;l`1H UBNs;rjw&2SaWpH3Yr13q0(-fJT>t<8 delta 979 zcmX|;T}TvB6vyvf-E~u2N1b(N_RC#UGwfsYD>cb4gdVgqQXvRhAJm}0!q^@vjUpe^ zEY5=jg+vI2V$r;8OW6iOL@z>wg<@(eOyq-xWgn8AbBB63zx~hs-7|B~-Pi(;E%3*R z#JfP13gTb-8H2M$PB<kw_)fSY$);%)hNNy@0*=%jJXxzwz0Y|mETsi3`%)Rx)4-LU z!%stXy38HWoIcJKFw21ihlKL02P))jUJpT8Hm%zsBoC0bqfR01h6=mTcGR*KvLELB zI=sqgN{S{j7CyFDit4$r-EoOufDuQ)5=zFdqcG#h;bXuRnYTcOa)YFTGRcsNkgAZX zkSa=iA9boiI)!u!=|s83kWL|8Lb`->p|l#(C8S$Ow~%g>35IkF=@HT+qz9$NkRBnu zLVAVtqBI-QD`cjSnFC1=<8bcmMx1*X#xs@fX8O869v4e#F+}Mkr8AiHgK3Cbx)d)B z|5HK4Xqc4M%}qV>9g%~7Qg|v3JKk`{2I}S`_`~!$J7fI~%YAjrSAST~`y#l;!X`2? z8tD-oqoYyEi|S_l&=;?<0VC5VX~Q6GxJU<CqSOy}eV+E4^!!{rQ_?UQeb~YDF6yf! z`+#f{roK9BUsb$*oEF2h*hA?VrILTzs_*}=gOsMg@AvR|sPsSORoYKK=lqEFJ8Qzq z2enB43g-+)cWn}P3+_Q`qk&pe;shRpm93t$9fFO5Y;YG|Hmzi7cM5IXw6YDxivCbj z@r<Q27Y|Ua^_L8r+8Sr@66=2<TGkMYpAZe-5br-C-Yy^x&^^CiL`*IrUc?a2S;Pp9 z?OVs>+Ca2@M%<f6%zi)&%^_-Z#MWuJRd$>AX!+&u%n&UPJgMsNLuc?BEC-8{+wD>` fgw=}$zE(wD!@x77s13`7m4{V~Rim9~?X~>{=AUkp diff --git a/lib/console.ppu b/lib/console.ppu index 74363deab1a857cbeb78a4975fd4e229bbe4f0af..2a8f1bc1753c692e4b927a249868b4453949cf5d 100644 GIT binary patch delta 19 acmX?Ad#ZLq35Tp(XXi@;{o0K+es%y{0|<@) delta 19 acmX?Ad#ZLq35WVJr(|)tq%|9B{OkZ%jtB_= diff --git a/lib/idt.ppu b/lib/idt.ppu index d6fe95035c4476d46634c7002bb2c06b9e98e4b1..07ad4788297961da57acbf9d06ce7160e15e0cc0 100644 GIT binary patch delta 19 bcmbO!K2v-`4#(E_yDz;o(68NCqRI^bS#Aih delta 19 bcmbO!K2v-`4#&N(tfk^|NozKisB!}UOiBkz diff --git a/lib/irq.ppu b/lib/irq.ppu index c6cca14dc8366bea1302c9dc051860f9f19dbff4..fca17a82b0265fd4626c76b04724539e25b4e59d 100644 GIT binary patch delta 19 bcmZ3)zKDH74#(E_yDz;o(68NCqQ?vXSeyu> delta 19 bcmZ3)zKDH74#&N(tfk^|NozKi=rIETOLzx8 diff --git a/lib/isr0.ppu b/lib/isr0.ppu index e89e9ad6c87efb7e26d75e8489e3ff81e24bcb7a..2dde928f9fcfd32f0b4b91f52ba8e7a505f05037 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/isr1.ppu b/lib/isr1.ppu index a23058fd3106462eded02c4c6083e3f10e8bce97..732df46c3e8a42ceb67617bee50b189bd6e15fd4 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/isr10.ppu b/lib/isr10.ppu index 9b5a1b888c4cfab4289efdd8cd4a626b1e7ea61a..0d3982f5b0674f3867fa362081079a9fc477a966 100644 GIT binary patch delta 19 bcmX@be~N!X0ms(&yDz;o(68NC5yTDvU)%{Z delta 19 bcmX@be~N!X0mr?stfk^|NozJ%1hE4EQn&}r diff --git a/lib/isr11.ppu b/lib/isr11.ppu index ca654e91382f1f4a70cf07682798355a38ba2537..1282659b9f4caa12b45abbd9d39e3cd1ebdddba3 100644 GIT binary patch delta 19 bcmX@be~N!X0ms(&yDz;o(68NC5yTDvU)%{Z delta 19 bcmX@be~N!X0mr?stfk^|NozJ%1hE4EQn&}r diff --git a/lib/isr12.ppu b/lib/isr12.ppu index ee81d54cef3d32cce7a586b9a174715bed1527f0..b6e34812d8c5f029a407c14ebf71b69db50a9c0c 100644 GIT binary patch delta 19 bcmX@be~N!X0ms(&yDz;o(68NC5yTDvU)%{Z delta 19 bcmX@be~N!X0mr?stfk^|NozJ%1hE4EQn&}r diff --git a/lib/isr13.ppu b/lib/isr13.ppu index b436974935a5ee42862f1edd65f33812e446f5ac..04c91d0577f58bb541a31679992375313a70bdd8 100644 GIT binary patch delta 19 bcmX@be~N!X0ms(&yDz;o(68NC5yTDvU)%{Z delta 19 bcmX@be~N!X0mr?stfk^|NozJ%1hE4EQn&}r diff --git a/lib/isr14.ppu b/lib/isr14.ppu index d7947cb4db4c264588eb9b0f269e3e6c8a1a402f..bdd9cd39ccbf77fa6c9ec0424b757e3e5f5f1937 100644 GIT binary patch delta 19 bcmX@be~N!X0ms(&yDz;o(68NC5yTDvU)%{Z delta 19 bcmX@be~N!X0mr?stfk^|NozJ%1hE4EQn&}r diff --git a/lib/isr15.ppu b/lib/isr15.ppu index ed43f454fd7dbf5be834c3390c1a1a0e13109e1b..03f68c7a461fa7aa74110b99724103fad1a07c35 100644 GIT binary patch delta 19 bcmX@be~N!X0ms(&yDz;o(68NC5yTDvU)%{Z delta 19 bcmX@be~N!X0mr?stfk^|NozJ%1hE4EQn&}r diff --git a/lib/isr16.ppu b/lib/isr16.ppu index 8e39a322fd04ea81e29ea45709f4ce725733a8e8..65e81bf7b962805cde9a8cf8328f0f549de51466 100644 GIT binary patch delta 19 bcmX@be~N!X0ms(&yDz;o(68NC5yTDvU)%{Z delta 19 bcmX@be~N!X0mr?stfk^|NozJ%1hE4EQn&}r diff --git a/lib/isr17.ppu b/lib/isr17.ppu index 36e621c582d89d8c4cce8ab05ea14f970097603d..f1d1a9b0ee3b1bc0e319afea9bd076f96949ced2 100644 GIT binary patch delta 19 bcmX@be~N!X0ms(&yDz;o(68NC5yTDvU)%{Z delta 19 bcmX@be~N!X0mr?stfk^|NozJ%1hE4EQn&}r diff --git a/lib/isr18.ppu b/lib/isr18.ppu index 4439aa499807167362515f72cf78b3a9856f50bc..720459cfac2b6b99d285767c63a7c42fe1d34275 100644 GIT binary patch delta 19 bcmX@be~N!X0ms(&yDz;o(68NC5yTDvU)%{Z delta 19 bcmX@be~N!X0mr?stfk^|NozJ%1hE4EQn&}r diff --git a/lib/isr2.ppu b/lib/isr2.ppu index 3f3b5ac81bb99e23e9916f1ef2cc5d68579a3ff9..3e5e13ea6a30d7a4fea5b9b86f09d2e6c2e1fac4 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/isr3.ppu b/lib/isr3.ppu index a244486de5978c8059e59dd1672b01c4345c88eb..725c037873ef62256e8faf80c1fbe194a857c5d6 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/isr32.ppu b/lib/isr32.ppu index 42ea1f018ff89d2b18cc6e6ef221a4055a8fd6c4..f0aba13914f7d2df3e0c9227c570e32bd84e2064 100644 GIT binary patch delta 19 bcmdnOzlDE70ms(&yDz;o(68NCVZ#mpT$l*) delta 19 bcmdnOzlDE70mr?stfk^|NozJ%*suctPjm;1 diff --git a/lib/isr33.ppu b/lib/isr33.ppu index 71d3b4d93d8d240b6730b613673bb1ea437ead67..b4a524fa846ec499b5fa1eb197f6f3e78738b5cb 100644 GIT binary patch delta 19 bcmdnbzn_0X0ms(&yDz;o(68NC;m!^KUOEX9 delta 19 bcmdnbzn_0X0mr?stfk^|NozJ%xU&NQQ5FZR diff --git a/lib/isr4.ppu b/lib/isr4.ppu index 07921b8b2047e16690032bc343a4f764bdc450e9..0a5d950f185e089ae78c074c10ecba087e1ca445 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/isr40.ppu b/lib/isr40.ppu index c82b5acb21202a4cce96c8e51c9c93bf844ccb0e..9537f1eb4aa4cce8490b3e76b974378de46ee6a0 100644 GIT binary patch delta 19 bcmdnOzlDE70ms(&yDz;o(68NCVZ#mpT$l*) delta 19 bcmdnOzlDE70mr?stfk^|NozJ%*suctPjm;1 diff --git a/lib/isr5.ppu b/lib/isr5.ppu index 3e0386cbce0c9ee699a97b668f368b59e0e7eb35..6b1fa54155cd39d1be4ab1ebebf49779458963c6 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/isr6.ppu b/lib/isr6.ppu index a75d23f027abd0dc4994e956529b7f0871ba54f8..72663fb6a6293529f77664bd64a972aed727974a 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/isr7.ppu b/lib/isr7.ppu index 083e423fad32500aaecdc3160993b4c5dc6a97ad..7a99a3375664af20d9e6a156541575ad02457dfd 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/isr8.ppu b/lib/isr8.ppu index 2d948be8c4efec567568ac2cca3a7dd0964a3783..05899f7d9cdb4397df717bd12ccbdca3c3c7cd19 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/isr9.ppu b/lib/isr9.ppu index 5978b17894b25d0ab6fdd1f2162f1d78add25206..1e6811ac817eb3479b12ca36643a30c2cc9b745d 100644 GIT binary patch delta 19 bcmdnXzn6bP9>>=AyDz;o(68NC=FScPUC;>% delta 19 bcmdnXzn6bP9>=|}tfk^|NozKixw8WRP^<@} diff --git a/lib/kernel.ppu b/lib/kernel.ppu index c14d3a6db961153223a6f5a49e3981572fed0e11..7638a71e86b64fa4160a772e28933db8afeb338e 100644 GIT binary patch delta 148 zcmcaF@K``LARyGx*p#K2k%5`vK!6g1H3tJj+KrX}17(9|icXX@X6}}dpBQY)vGx7# zOD_%dYbQ>)$kEgl%s)k*@7&}}#u`T1$<G*9O%`CzgJQAGb<A^^dEYQHz`=*f>g=Yh hKY=2@CnvJU2r@Fkr5IR&Y`)3o*s~eMCtGo-0sv4xC`SMQ delta 136 zcmaDXa9=<+ARyGx*p#K2k%5`vK!6g1IR^tn+KrX}17(9|icFL>X5Ps!H!;|h<K9=+ zQgOMYH4`UX<Y0=FpC$a@M&#s7#u`S+$<G*9ZJxr^#lri7kpT|gOx9*MW&H{i`93+7 ZJx1^^k{lxw0|VFOOYGT<!jtVdQ~?D&B}M=M diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 5eaacf0e6b5c7a4b6e06eb639b640251cbc6cf7e..100b457e8f4fa9a3a2e8c64ea51aaf19b39db082 100644 GIT binary patch delta 19 bcmbOxK23Z=7suB3yDz;o(68M%iG>>gTD}Oy delta 19 bcmbOxK23Z=7stJ?tfk^|NozJvV&Mh=O_~Q^ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index e5ef38d8d7550c27419b259fff10ab1e915d30ab..c4235bcc72037ad3689e8e5126f763c4c0ac895f 100644 GIT binary patch delta 787 zcmdn;gL%sj<_WSahQ{Vb8x`d^z>LX-mnAkwb9`e4^EQ8+c$#Ul0zWrG&Yk}SL~ioK zKJm?7!l5h>xs8h@Ht!an0+j=qk}bUjiML;in{l(7!bT>9QNqeQ&=q`AM^><3YY$vO z=;Q$9bDJ0G??f`7+~@#8e)9ygb|??zG9#-<sLMdSWp=FW2#Y~(ne3(@u=$bOLa1>d z=g;?C05t%_i}sxZH(X+JxsmtgxWG~*3*LqBLM;G!Ry^_pn(Dk*nCimIlA98bqe<(f zB1vyPkO7l_*e9`hagH96MQ`$Dkt|XzIfF21Gj9b8lALbMA0&M)4WdXPP|^|$<po}s z-2ATNHPquE-nZ`O5Z>m8eLN5ofH8j!s^Vdv<mMmKwHY__Pdmd12}Fp{ceoK!n|Wuy zfg15~;wdHp6GOdxeFX(W6H8MgQ2GKI2NE?x6WzGD3ToZP#S0iWpI>ncZh`pbBddH7 z?w|ZF#AmWY56kA7^?RXy1VvKlW(ftblQtJ#z5_KX@VbW#L=0@HsR5d$5K(jo2L61^ F1OO7K5pMth delta 787 zcmdn;gL%sj<_WSa2Idy#8x`d^z>LX-mnAkwb9`e4^EQ8+c$#Ul0zWrG&Yk}SL~ioK zKJm?7!l5h>xs8h@Ht!an0+j=qk}bUjiML;in{l(7!bT>9QNqeQ&=q`AM^><3YY$vO z=;Q$9bDJ0G??f`7+~@#8e)9ygb|??zG9#-<sLMdSWp=FW2#Y~(ne3(@u=$bOLa1>d z=g;?C05t%_i}sxZH(X+JxsmtgxWG~*3*LqBLM;G!Ry^_pn(Dk*nCimIlA98bqe<(f zB1vyPkO7l_*e9`hagH96MQ`$Dkt|XzIfF21Gj9b8lALbMA0&M)4WdXPP|^|$<po}s z-2ATNHPquE-nZ`O5Z>m8eLN5ofH8j!s^Vdv<mMmKwHY__Pdmd12}Fp{ceoK!n|Wuy zfg15~;wdHp6GOdxeFX(W6H8MgQ2GKI2NE?x6WzGD3ToZP#S0iWpI>ncZh`pbBddH7 z?w|ZF#AmWY56kA7^?RXy1VvKlW(ftblQtJ#z5_KX@VbW#L=0@HsR5d$5K(jo2L61^ F1OVw)6GH$1 diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index b0894276bea954290c3f4b22579c95baf8e4e43a..ffbf49cf08e204ccc80c8985f089d2c32f0ed356 100644 GIT binary patch delta 518 zcmcb1h4I=I#tE`4hQ{Vb8x;ju!HmfVwZ%94u>NL7@brYXGw~Vg<?AaLnpm0|fs_MP zNo=;~`N4#y$`oCd_+~w!gXpTv(N#%omY3FIoLp}rFxi$_dh$O5&&~E)ER2&orK(^S zfRxC<9VM|jTuuwl6W=^X@hF@pxw%eN5QV47IC;JS|K!_@LYq&h?PKHx`33Hk%?GtL z;Ht$pv*^3BAndF*lVaRlZ}NZ<S?CwsKN6cKT5=$1-eR*5&Xd^O?JNcIli=h9Ogxic zyRY4x?<&a1Yk+JyI2^m3{~?*U)QtyjhWO?)o+pub8+^a=z+57}`9M@KlAK;#D-!Qq UB66soOWeW4Yk^^Ld-{1M03@TH4*&oF delta 518 zcmcb1h4I=I#tE`42Idy#8x;ju!HmfVwZ%94u>NL7@brYXGw~Vg<?AaLnpm0|fs_MP zNo=;~`N4#y$`oCd_+~w!gXpTv(N#%omY3FIoLp}rFxi$_dh$O5&&~E)ER2&orK(^S zfRxC<9VM|jTuuwl6W=^X@hF@pxw%eN5QV47IC;JS|K!_@LYq&h?PKHx`33Hk%?GtL z;Ht$pv*^3BAndF*lVaRlZ}NZ<S?CwsKN6cKT5=$1-eR*5&Xd^O?JNcIli=h9Ogxic zyRY4x?<&a1Yk+JyI2^m3{~?*U)QtyjhWO?)o+pub8+^a=z+57}`9M@KlAK;#D-!Qq UB66soOWeW4Yk^^Ld-{1M04Q;v6aWAK diff --git a/lib/libpsystem.a b/lib/libpsystem.a index b686df0735e38351e2faf3e8e0c2e5ed9423163e..629c1c928e70d0e072037f1e09042d220da2ded5 100644 GIT binary patch delta 2698 zcmZuze@xX?6yGu20|p4o1*qiLwb7K49;AdebC3h^cNVjteC$D6Obq|gVkA(x*>v#i zwp~g`pt-1&#B1F`QOr?^CO^_rhw*4i&QV~SBZp(1`@Q#k-{a|j_jB&K=bZaFpL4(8 zjvKCy8!lf`m^(cqt#!@|iS~jOS@EJa@y<g5<Vij{g{`%sZHp+fB189{N!EMzSx@q* zDIsTvQ_TKgU$$8K#96bi(Arc&;P;B^w1Z|35vxu+&-`Uk>|~frY)o&1Soi!lQ!UGK zKb^TCO%;v#5`|~+BfvUVM2YguUx5-U^Bt#*1Xh=`QnWAGKiR_Cmz+}xL_^j&=VXGY z%ZUf}lrL5sTK3Z<^FR8ysL7k58Nk(ZU`M#Mx;w~qU_C}qCH=Q9IPk!FiqM-+5qk4Y zghd4up(d|{`8-!u0Cs$8gs3WN12)qWrSFEj!sq$M+@vNiTkQ7!9zblj_nxYV7v@2@ z*jIcUVlzTm6HS{irz)?f^cP(<ni5P?n>KlcRZj5{F{`}azGL{7(+_9?R)9Gzv0<y6 zRE5PhZ0%>h>W4+nwi6JW9$JLEa+V=+T@|giyi2P+J80FqlUBXEXmz`m=(}BuSMgOx zivo7RG(gdJq+ZjP;))QTevI@jt`DN`NIhLoQys=e8-BA1Iks<d6T-x3L#w%#yRt+? z?x#yCH18mxB1=hZg~)9_V7!fm<u=<I7V{2~5^D0iqOgTdB4ULtn&9WZKJx&AZH-G? z<8gfRMR1AQ@35<BA%yB#kR<xSKCd{@_JyfNq4Vv*sJ|l^4W9`{_kIjUQC);oB}3hM z+W6c{5F;MHxC+>s?ux+J4Rw#{oMNyq$~5@)C0fCiN}8O0T7f^@*ubBvrz!Wk(Io?a ziP%0wq#|P5hq`PvdTx<+-NWWV67FFWpkkEzsNNXgzh@mDvPI(^Lhj)b<{$5}JKubl zPM}rz$IUy$-Bs|q7@7D?2e2U<nK;Wm)ez0!D1fy`mxlqL&7mwVBXrPIOJt7=G-J{~ z6@nfpwL#5tS0>8v7)Z9Kl9ffq@xQ0SVb-{&k=MsU86SuSBVXegp&4V?SNT>PP=gfQ zIo*LqgR(vzh(TlGXtH%FD`tWbrn;L~9!i4G19$au#M<%wM*-D&-xXELpC5BlDtI~B zfmFfGx%X9oCLOrzNvZ((vd2i?OTEt>P1^mBbjKZgD@PXqwG-jDnGQmxIC45q#y$%J zru}q#Yn2H$f2k7;{MmA87IYd{xRS{IYhZ;eTL#k&+xTUa`*I;EjO4DX#b`t?o|1TK zqd8#ULSQ}DqGZF1kYu8(HeSvLm*bZp$6tnO1MyXo*I$L8M~Wl7s$?&376AzrE9O}7 z967rfj6QK*w2h<foGns0Rt%?MTBiM61iqa3eU%GKA?S0<5uR5^V&tsNM2iwdseGv% z8Uvyz<%m0#XPivg0;gb_e%zhl_90&NHgu}dl3ClRWE~AROf-qnablIzYwwVgGSVLg zR>@m-V6&7<#d{EV7Q7PeG^90qpp<v-()rlo=y3VT2VlP4Ty09+q@0LN&XzhSCmKyo z?SJ<p^0zTZ+{ur8h&R4g4_)R<qd1J&OI0BEUXIY_Fk1e#SJAHL#bHMF9-!nCO-^z& z(uGN(E59_Cp3zLLaHa$I9KGpwTQdJ}P#LxaERHrkGK*Rr;+i&P%hdud866_z2<<-x znSTs^fN2XtgrY?M%J;B*E{Q%~p8OMfgOvN#5SX_dON<xlZ!ylD9x6E6;ul81`CCko JV<R}R{{zyRnTr4b delta 2698 zcmZuze@xX?6yGt}Lk9@U1*qiLwb8^9AEbyjbCLtWADG1~DIa^%76Ze7v=|9gZZ;i0 zyKR?}5oj(dAn{ta@E7K&L=zz`br_GP<QxUIIdeGHx!-%w_dOo|cR%Nzd(OF^^EvnX z?YQacxasmGhRsi3l-@S`g#>%S3avO%lW_Nu0P-XqnZ)v}DBB_mttp{<i<0!7eb$q7 zYEsDAp}A&%pf^)2d+My&S12!q5cs{KD)o@rL&U05&oh5%Bs&@A5}VT6A;vxL%@oVB z+|OhzNL58+z69Y}@))p=+(=QD@hebbWxnf_5zqE!tr91e9vE+7CzhU52}J$!bI!?l zu{SFY*nD4%XkPKtIP*XHxTwyVt{K49b6`ify{0?JwSPTEP$m7hE;w-idWz7KPZ4_Z zO@zf8DMEEl5%YPjsQ~O)_+(L8*bZ!lCsN-HcZJXMjk!s6PNvx7{XKx#9`6HH5iiJr z2vN8B7{sK9uqGNyFsCZ-V(~A!YBa^0rZ$#%g;hrJ5izT*&%R^C*3%DZ0ak!HEwN#n z99M<KHf-x-zN$w>*7oBNlNMTpyJDsxaa|>?w!TZNeLHE@wu@FhyJ>Z&hUmLfgIDoY zMTw2<f@y%F?{KZAZ?0>y`1E6>Z%J(seTQr5dYbAmHd6naO~}!@@l6O5BlT_OTJDM> zG35YVQlaESgbFPsv0RbebkKMk3(Ib@H7t^wNeR_CUQy6WClRrNR!#8pU!Qph!M4Vw zt?^jC<r26=&3D+<)DS}TEJzalK(ALEZ~wwnqtN*i!Kkkz7!92XMh|`rMv+~FR3(Gm zdfND$%MdM|ytEqF+V1ke*bR2y(>cXJZ=`APoy)X>s}(dkeY669gt37?MNd=q4Wmm2 z{vxqskVr+ub_{meYV_PD?Yf7|gCyKTCP4WJ^-;YszJJd;JY<T7yM)|BMa)0iWp}>m zKAk|T@Q<2zh`TG{bum2lnGRq>HavEgd#WIczp)YWj;ss=K8r(XY<lRRsg}r#F3^lg ze>em^P-=sk<*rDO5z&xjPbDjz63hP%hZfebwt?5iKq>E!0wZ7JIaxEtu&?s1SfB<e zxNDjNjRs|H91w%X#L;ByQkKsEBTRKSuWU|)&jWY$a>Uy4{l@{-IpK;b<<CzzDHXhu z<Up$6)|?3yph*YrdYURgzU(oQ4^k$$qe;8}k><E#Z{^4WpmrksHp4;46h}^zWz4hC zZ`x0{w^o~A^OiZmz@I6XEr(9y3Re@je=X$7(iJexu#I0vS(gooVI+55Ek+}H@sz|< zo6G?N7XrI@JyO=c2#F@TYU7oBa5;YQa`a`WG7w)SdE-?GdZakQYfAR=Rw0m3v0{!D z&z7?`gV86>i?(sJowG$M?`?+DFg3$|E&^Xp{JzSC#Srwl<p|HKBhhl^7NSLoqFBCE z1`PpG6m!I#$}?8Z-3q5*s(##^;PxS2`8IT_(UQxzQ^`6SZkT8iqvOOXr`O&gCuO8R z46Ks3?!;y(m-6=@@GN*G+G$9u_dzl5-mUYomZ%8%$p>J*-CS)-+@zd{P0rT6PEItM zoZA2XN91o~j<}N_{t$0`y%xI6mqu|Iy`QQ;?!6qL&0&=MYrmph&x^y1>^Vru#~PjF zXrv31LRWohE<L@8TH#Cw?m2qX?Y3loOHdiM1T2m=Ju-{i9O4>FGUXZpmyHe)a)kCD zgUmk)Kfu%lAwp52f8~2vIfq0aCr|zfJweL-Y7op@jwQwk^|u)7P74(rZSf1k;QTGd K%X`B(vHt`6N1lKH diff --git a/lib/memorymanager.ppu b/lib/memorymanager.ppu index f51fd2fb9b308541317d2d16c20b36711b4b9a06..8552070de86eba9eb70050b5d8d02b38017c44f9 100644 GIT binary patch delta 151 zcmbOr)GQ<$5D;o;Y|7Hi$iU2SAV7)XHU|SkSmVm4@|$)RicFMsWM*cQpO`4mvGx7# zOD_%dYbSPeGp?L0!gyr!Q^qV--V8<tILMhC!*0V`3KS`yJeNI7uog+K5y)<zEWuI4 dIAL-(hZ^TJsNDR?yErsB7eaZ<C%@)U1prstCENf2 delta 164 zcmZn`njj<_5D;o;Y|7Hi$iU2SAV7)X1qTB|SmVm4@|$)RicXYuWG*->J26q7<K9=+ zQgOMYH4{6!*|sq<Ffa;EZe$XftjoB1@<vAS&5sxpSb0l<;xJG-*`M8pwFxNFGI;`f qmS7i>Tpy4<WimHM5#!v+bsTD(i=lFBCa>kt;9LjgZJB(JLlppFR4AeV diff --git a/lib/paging.ppu b/lib/paging.ppu index 97047017e5a5e51a29e9af7c244aa97f5f60b9f4..74f2d03da0422432ae913a3ee62f4fdcce88af04 100644 GIT binary patch delta 350 zcmew<(k?0!5D;o;Y|7Hi$iU2SAV7&Bo{NE@sVkU&iag)Bi83Zk@0m6Roo8a=;+(9^ ztjWa9IoXd{mx+gSaxJqiBk$zZ%vwx*oRhCJt1<C&PW}(%32;u<X3^Fa<YZ-lfH)}4 z0i@M{m`R2gNOC%sC1&O%Cgr3uFbYksXAzas1k3RONglVN#N1TJl$4^>;$j9y;mNC6 zRx(OV4rSG1lH{D+$g0UC#W{Hmt1go?=j7Y0x{NZDIoY(BWH~3BvS~8OaZXMEQu3UW zyV<mL72wXe4m2195YCVS@{paOIQc#s%o)-^Ii3)Z^We@<+RV+~&B!P=c{+y*qxj@K i9IA|}lOF*|waFZuDvX+wbvc(a>Q27OSqdb*x%2>DenoQt delta 368 zcmZn{{V5_75D;o;Y|7Hi$iU2SAV7&Bkc)wVDN=rx@PiwX6J<=8mNRY)I?u$!DKuG` zS(AxVX0ji%E)%EP<XUE3My|=LnYEa>#3x^8R%7B)octfe)0nKyq8-Z3$;to$aZs8A zNGky`lMFAAWOXb{%*<h6<bkV8hpOWQ(rRFJd_a=Zttc@!)iEWdh=GxJ@+Ov*j6#!R zShbjhgeG^eYBCAQOy10@%Os>W`4Ouwqwr(_HZ3M$@yRx9noPoqlhZ+z_T))y+MyzF zd#*$6LAXZ>C<1ejC|unGs5*puq=6!wA&E&jQ1^&!mSpc{WE7aZltYD4aPlb*RYu9l dAAqFPWHC+^M%l^MoXZ&%CqL#a1(K0mdH{+FKPCVG diff --git a/lib/util.ppu b/lib/util.ppu index 4187a1c436435950c1fc09ea24eb476c72af358e..20e05682884983eabf9c7352c502b22e43ca3689 100644 GIT binary patch delta 946 zcmYk4T}YEr7{|}Ecbm3N=iJ_X)aI6LnJ$>ah999L6ilc#FmJRF!a<8ohaY$mwu?xj zi(o!=*~eWM6<t_Rh_MKvx{3;du7s{EOfMq55bS?mH+jzs|M&kszvnsUJ?A`2r`F?v zbb2J-kucsQp@?$2S-kcN@oH=3%SL-_AzBK=6ssC6rSgpegDjd(XlgC(dCY@GL>(L_ z*K#}kBz|DD@L6S)-x`|OZmeB?udI=`LCfDos-Q9HHMi5ik4@((!GBDP)WdV;MT+vS zxlHZ6T2rPZ->CgY*Le8QHeKcc%QmGsVf{<<+-7@0MgC!XLy!1g-5M?NX#E=9;*k9# zJzM@|KTb5j4oA)(mJ7Dop}$EkyFa$zcZg$+UA)q`K*Zfne|L>R2sb#XCaB?R7S1BA zAW?U~Y9z}|336ANlkYksy*^~%*id7I8mH!FuL$y5EA_zxT3?~_f_zmP;caICJFj=0 zq&S~;#i^6?E<g419hbk@k6Mp5^I@oxoy-XeRu>-vlwnf+P;)+$pUKP$3RS009q^Fk zg_&F?QxJ5t%16LkLCD=Kd1i8=Fgq<MY|?%lp)m(C40tB+HjR%XgIm-=hrG}p1yUJ( zTvR)(gNO{tD0Z`|UQlJrq;y%s@RvB`PO2`DjE-dCr!^u^@w$!_;cxQ?)EogR>BxQf zhg|R^)d0v79eE1>QX@f-RULT;{|Thu_f;4D4!>Uc_V8zSr~4S{Hgp-A@c$Ifd;8P~ z(4Gz{=w%z1y-BqNM3tRg89w-CkbXy07mdMpA=-`Rv+;AE_eAUdaW|oi)G*W%9=SMl TZah1g#brjR(nV)@(--*<?(~<l delta 1068 zcmZ9KT}V@57{}jd+d0lno%=Z3(j7nckvc7%8YSWu7?hDYp><Pa3}+7ZVL5}ksL0rj zP|OFan}jaBDw6O*${R28!V80_t1d+FA}A_@1QWxa_w0j1@5O)r^Zfoh@B2RI*$m8f z%i(Y&&~;2V4NS{c!fy8U5MvuV!jz*f`tnFlZr2VylXFAK{%Xb;7>tQ{bYvu!8a+Ch z2CDD{qm5jR|1&`e=2Z#i-aEvkj-uvSu)RLm0;~W%xMzg`{?bH5K}#vq;;?oToEH8E z*rzaqOWZ4N*MbAWAavssAqzcNCuYHq^WqA$<5<}W1hGl~3F5e~--gThy?h&naKrE$ zZsJGd0^GsriZ?KaeU+<_Lv7V6JixW8HF&Xzro#aJ__jLX9^)Ifnn=GDuSfnT_hou^ zl9hL0uDZ58f2o55%`TBWPQhao=!dDBP`WyHh<=Zkr~JH)Ov5F=bmS`w&pMowj>~2O zc2%N=yr+~1I{Pqdz7B1;Yj(+<RJT(eB)++3JWkG_oCDYi3|MNZCxaGW{VB>hm7I}O zm!8T*894JN26h&678%00Kzb3^Ep61jJxc(h*k*OXI1X4{cT@BRhw_FRQf)kyU{GJ& zDnpQ$L2{9b$yjnSmSNCP+~9VJH*h{NnTW+E7&I37y%KkGPUAI^xlw8<u&jmxxMMwS z=5ukC&q-m8;-Ia|n50UYS7{t(Z098#*(p`(7Ww=5!xoZwvu0G}5&5SI;pcy@BJ<>5 z;bSQz$wZb^WSRUs4BGq6>#FJp@}H?1k{T($r6OO*Z*wAhi2PBJzvM+e*|Z$|<J*1Y zOoa-sTFJX~*y{*NP4wtfp%(I;_|OrOT8Q+jNQnFyg|reGR*?w#D@1xQ?esP`3(Ba} dQ3xb2slgk$FmP@po{H1g^Fv{fuHmxN_YXS?v`YX0 diff --git a/src/kernel.pas b/src/kernel.pas index ffc46138..5aee4dd9 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -54,6 +54,9 @@ begin memorymanager.init(); scheduler.init(); + pint:= puint32(0); + pint^:= 10; + STI; isr32.hook(uint32(@bios_data_area.tick_update)); @@ -67,6 +70,12 @@ begin //drivers keyboard.init(keyboard_layout); + if PageDirectory[KERNEL_PAGE_NUMBER].Present then begin + console.writestringln('!'); + end else begin + console.writestringln('?'); + end; + while true do begin end; asm MOV dds, CS diff --git a/src/paging.pas b/src/paging.pas index a8e7294e..6123859c 100644 --- a/src/paging.pas +++ b/src/paging.pas @@ -6,20 +6,32 @@ type PPageTableEntry = ^TPageTableEntry; TPageTableEntry = bitpacked record - Present, Writable, UserMode, WriteThrough, - NotCacheable, Accessed, Dirty, AttrIndex, + Present, + Writable, + UserMode, + WriteThrough, + NotCacheable, + Accessed, + Dirty, + AttrIndex, GlobalPage: Boolean; - Avail: UBit3; - FrameAddr: UBit20; + Available: UBit3; + FrameAddress: UBit20; end; PPageDirEntry = ^TPageDirEntry; TPageDirEntry = bitpacked record - Present, Writable, UserMode, WriteThrough, - NotCacheable, Accessed, Reserved, PageSize, + Present, + Writable, + UserMode, + WriteThrough, + NotCacheable, + Accessed, + Reserved, + PageSize, GlobalPage: Boolean; - Avail: UBit3; - TableAddr: UBit20; + Available: UBit3; + TableAddress: UBit20; end; TPageDirectory = Array[1..1024] of TPageDirEntry; diff --git a/src/util.pas b/src/util.pas index 7c625ab4..3f5d7351 100644 --- a/src/util.pas +++ b/src/util.pas @@ -32,7 +32,8 @@ function inl(port : uint16) : uint32; procedure memset(location : uint32; value : uint8; size : uint32); procedure psleep(t : uint16); -procedure endptr(); external '__end' name '__end'; +var + endptr : uint32; external name '__end'; implementation @@ -174,7 +175,7 @@ var i : uint32; begin - for i:=0 to size do begin + for i:=0 to size-1 do begin loc:= puint8(location + i); loc^:= value; end;