From 96dfb38124ed09be29e5d751d7b414a0fc1615bf Mon Sep 17 00:00:00 2001 From: kieron Date: Wed, 17 May 2017 15:45:34 +0000 Subject: [PATCH] Fixed IRQs(ish)+ git-svn-id: https://spexeah.com:8443/svn/Asuro@69 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5070848 -> 5070848 bytes bin/kernel.bin | Bin 16612 -> 16612 bytes iso/boot/asuro.bin | Bin 16612 -> 16612 bytes lib/console.o | Bin 14736 -> 14704 bytes lib/console.ppu | Bin 16074 -> 16122 bytes lib/gdt.ppu | Bin 2777 -> 2777 bytes lib/idt.ppu | Bin 2965 -> 2965 bytes lib/isr.ppu | Bin 1815 -> 1815 bytes lib/isr0.ppu | Bin 1222 -> 1222 bytes lib/kernel.o | Bin 3948 -> 3952 bytes lib/kernel.ppu | Bin 1860 -> 1860 bytes lib/keyboard.ppu | Bin 1069 -> 1069 bytes lib/libpconsole.a | Bin 64648 -> 64596 bytes lib/libpkernel.a | Bin 24294 -> 24322 bytes lib/util.ppu | Bin 5916 -> 6107 bytes src/console.pas | 4 +++- src/drivers/isr0.pas | 1 + src/drivers/isr1.pas | 1 + src/drivers/isr10.pas | 1 + src/drivers/isr11.pas | 1 + src/drivers/isr12.pas | 1 + src/drivers/isr13.pas | 1 + src/drivers/isr14.pas | 1 + src/drivers/isr15.pas | 1 + src/drivers/isr16.pas | 1 + src/drivers/isr17.pas | 1 + src/drivers/isr18.pas | 1 + src/drivers/isr2.pas | 1 + src/drivers/isr3.pas | 1 + src/drivers/isr32.pas | 3 ++- src/drivers/isr33.pas | 3 ++- src/drivers/isr4.pas | 1 + src/drivers/isr40.pas | 3 ++- src/drivers/isr5.pas | 1 + src/drivers/isr6.pas | 4 ++-- src/drivers/isr7.pas | 1 + src/drivers/isr8.pas | 1 + src/drivers/isr9.pas | 1 + src/kernel.pas | 2 ++ src/util.pas | 6 ++++++ 40 files changed, 37 insertions(+), 6 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index 00aedf70cee276ec9b49878e0d3faf62e7819b60..31ffc8f28453a84f270d67d28f22948c78ad92ba 100644 GIT binary patch delta 10954 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 MqytggvTLjU1r6#@Pyhe` diff --git a/bin/kernel.bin b/bin/kernel.bin index b7c227ea5b3cb6e6389cd3cea5bf53cab9aeae95..29c0e49360355970c0510e174f84c2855d55a564 100755 GIT binary patch delta 1808 zcmai!e@L8l9LK+RyYtSU_uLQl&biy8sNL2UmR1fzr4Za7Yqq&ks9`V;2WvTUL6+)@)Mm%BHan(C2A)cO9S#HQI~VS zOZ90$7m2Eg&O2%Nz6(uNBvT}_R*+o@Vzdy=IDqDfI*D#-$ypF}5P6D#{6r^`NOuEy zi7JW4EI_^_>LQXkK#fEPiAEd=!(WJ+h}wx_n}C{=sMZ6tmJQTP)K7FLC($+FsmR=I z2ALwMF=jp9&??t9!Q>2+`6!p77%H2Mtr$YhWgv{DBQ#^-s@pEa`n!7;BXx_X*6hdi zQGt(ygHWH*tes|dT6_z&;7@W)UZ^m6BY7eDC9?<#xr1^5$p?&HW#JAMmXp3im8k33 zsKZHO>se?6+s<8SAl~Jo^ zkds}cF{tDeu_;1*#X~%UoH~Hbp8guU5_Aj&9RtC%p#P;8_r0*c;XwE|<;_BWAN$8p zJJ<__n{7*o_>HJ>G%w9IhZ+^jG+Lb7jgRs&9zTt>O;2JFd>-c6mkG})dRBA%^I1II zT#VNG9y&(H(=-trv5PAX6&SYWcUnz{jqbv|ULW8!>!vnMc&}N__!25D9*<8N>xCbf zju_{*l!k);#N$!CcDhg(us+HGq0Um`%_|bBhcXb9gF?MUX-Q;Xr!*(BhbT>nY;#JY z_IXN?$Uc{n$W}qhKq=O-bO-Yg!g$hu%>5L!e&m%xNM2C~8ytu)%ZX7Eva8F=$ zrEwI6Cnx4CXDlV^o}16 z6Oz5`_>djv77!LW_?znp&n_W+MtTv*K#@zeJR~=>Px# delta 1649 zcmai!Z%kEX9LJw?|G>R+xg59`P(!*9;JtT36lT#2*J>oZ&`gPVVcK%uMQhFmY+6ll z;TGO>xQCX@tzcQRtqi%$9&EGpG8->s>(2|a&Dx~)m{-7nq9jk>@43)=;fn42&i8(P z-{0@~o##1+i37&O0b?LwRw_@(6nZ98h<+E;!7ti!W9nI<`vXG6^NFml2SYIx651b- zodpruVn(yoT2{59N{{8)bduBQ|>tyz?yVMrA&$Kzc2!?N(m@`2))0u|6XXOg-KceR<>Mmbzuxsg2frQ6(# z&oon+c%Jw2pw)}CcxfgZ7TEJap~vwysl7~1&NBt4K7prKU1XPK&D|eIQ@>kQ_q3kF zO@%6e?}9b{%xt`Uo=4ZilM0hN<+9L64>!?Q&qlA_refw%u+ik5j(CXadyv-q9rl;C zq6FXDx1`D6K#S9KAL%UVPSSIR?fs54xEj<+x;;&6OE<`#(yYK&c#d)lC)b@kf7Nx! zRi-~loGN|az&`|*Bxl&(l0TM3?yC+iz8i*C*rNY>ubNrAQ+{5y(((Fj6zA93?<6+i z`6F2CY|m1wu&)1~R$Xj0^DD;K#7>b8k-s>GUu*2~(ip0j#t&#beH~!|`>Nl%h49=Y z!VRkN6oR~guzmsI8kK7b;ayrTv+N+o)1A!5u`_zzO$39!gL6+)@)Mm%BHan(C2A)cO9S#HQI~VS zOZ90$7m2Eg&O2%Nz6(uNBvT}_R*+o@Vzdy=IDqDfI*D#-$ypF}5P6D#{6r^`NOuEy zi7JW4EI_^_>LQXkK#fEPiAEd=!(WJ+h}wx_n}C{=sMZ6tmJQTP)K7FLC($+FsmR=I z2ALwMF=jp9&??t9!Q>2+`6!p77%H2Mtr$YhWgv{DBQ#^-s@pEa`n!7;BXx_X*6hdi zQGt(ygHWH*tes|dT6_z&;7@W)UZ^m6BY7eDC9?<#xr1^5$p?&HW#JAMmXp3im8k33 zsKZHO>se?6+s<8SAl~Jo^ zkds}cF{tDeu_;1*#X~%UoH~Hbp8guU5_Aj&9RtC%p#P;8_r0*c;XwE|<;_BWAN$8p zJJ<__n{7*o_>HJ>G%w9IhZ+^jG+Lb7jgRs&9zTt>O;2JFd>-c6mkG})dRBA%^I1II zT#VNG9y&(H(=-trv5PAX6&SYWcUnz{jqbv|ULW8!>!vnMc&}N__!25D9*<8N>xCbf zju_{*l!k);#N$!CcDhg(us+HGq0Um`%_|bBhcXb9gF?MUX-Q;Xr!*(BhbT>nY;#JY z_IXN?$Uc{n$W}qhKq=O-bO-Yg!g$hu%>5L!e&m%xNM2C~8ytu)%ZX7Eva8F=$ zrEwI6Cnx4CXDlV^o}16 z6Oz5`_>djv77!LW_?znp&n_W+MtTv*K#@zeJR~=>Px# delta 1649 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 OBv?aGdiysk=l=$0_LJ8D delta 5067 zcmb7HZIF}I6+ZV(ve|4l`vD@61$JeH&3%(BF#WhQ z+2@|~oO|xM=bn4-yXTi}TE3~ls%hRgyd#$>RWnxV9J1JEuT+?#Am%iE2Yrei;l1CdEFfdFW77a^YqaIeaxY^y2PIf z#3_f^<`QQM#CeCSRS&?bnMchN>g_g^KO! z6Mbhetj_6Jux`L5cUaux4ojiuQ&;q=;9b^LrGFNjtzObqmD6%NEoJ#a?t*{dbq92# z=PUER(Y>FuE&Ljst%_zw6zh+v-AAAfN6JeQt2)(Zl#F`ef){wM7rCYRFj?u^JK2Smh~is+<_S zud-J4L8`ny@s#H|pHjhU8kOBHLqg+1GaSKRBh-}_2gYjhLj$*BD7gwRoCbp;!Qs#h zEEB2hOHH*%C#eOgt3Rad;BT`-MxUNx-F*Pzne_Ay=7fmKQl5x8$l}@JY zbS7qZh>trZulYqRmu1`g>HrcFOT;pwBCH=7 zz(1bou(%ybySgnPi<{DcJelos{O6PHjz{)3aE^TFs9W?4`^llyh{a?(KPS!2oYlqxl~>=d@(nZc8V#iB{yw$&R-r68&mHMMJTc zEm*#C$%O{D;QpsWsv|vR3PzEy2vgHh1 zR+zpw*b>JI9hd0lvX~e`uq|!d3E{Y4WJWe3EWKdbZWY!_FqKWG;EWZH3c!{Nf#hnvQt@gSohI9dh)>ca$>ZwAn9ci?l$NAfaA5dkq;)-B>a52nNmJ& zb{}t+Elkxgd|;sb8jUx;=e}-bB6ms!UZw=}g^9QJ%n#q9a?C56!hWp)GH^D^ z>wuh*jWQp8dSs)#1L)krM&1wH$|6J~|0dA6FO7U0Si#yvBmW`qTjydkii^NCB?ewB zg9jns{1Sl7>T%^N$QMf%FbFc&%Ek#sLuQ@in_tF5o?fz`sS5W!H=m6Ik}zOdGWzO89L#D7dq1bod%%)=9qkWglc# z2pjn$kk6LbzYCe=k#Bx^A96*B{a+!oP+a~DTW%`zOI&^&pY6x52D}>oYxEL_sr$J$5spN+l8oca-chLo&4!_^406)+Cr51@k8}v z4UOug{%%9P`icH|!zlH7&$|sDm+PY=I`x4OeRbo=#WmSXEZ&vsh}(AR4u0?HjU#tp z0X^eJU9d)+V=MJ*Fq zNkqsSh!DPGo%_6LQdjAV?vdC#8Um!k(b7C-z{ZRLa@Z%8n zIT_2&DiMB6SkiESc{MEu4PVIL*NMB0pg1`!i4B;pZUZ1gLLYjA@Q zvmzUf{(DBhi5*alWIL3?pr^BgKz+v1N&Ll$ru)#-(Sm_EPis?xr96wEj z5a)@UH2fJN0>0|S9~$1`1I|ZEiEuE4hzTbU85r?FkrWa9 z14IP)h~d`~Ga~B^|Dxe{82+HaL&S%1dWi7zevX}WNTI>ciI}j8XBT(}agoSyA_hz$ zE*5Dq@*Lu$BJ+*>1aXPTDkENQB7-{(<_@#75YG+~2FHlc;8T9&@tND4sL8nYbQBXyjK7?lHLE z;9Ca&Z16M@HNktBfhgR!#4>|HgZ&MTBtA7<fV`GSj!LJbEFy+YjqG-}{!+t%m zxkh#CG0lzYl%CPtWJy3j(L9XsAIi2O!BGO1C$s$ZPcq}uf_CN=p|qeL3?N6;?SfyqtkydFQfDST`^P6+A(i@^(t J{}AwF|KGEw#LEBx diff --git a/lib/console.ppu b/lib/console.ppu index b128182b064036c25af04c28439dcf01d95d20a8..2c35851fd8ed14842572b82026fac329a28911b6 100644 GIT binary patch literal 16122 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 W7Uz_txL_K{>s%1ZE<|I3yz#&Jji@OA literal 16074 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 diff --git a/lib/gdt.ppu b/lib/gdt.ppu index 59f30ac522966ad40dcf4ed1b3d823bd8ec9a818..d1e4ddfdda12fdc3b43b366e04d3ddf0be34a903 100644 GIT binary patch delta 19 bcmca9dQ)^lK8M)WPxJk)XHVH!p2P(JSGNd_ delta 19 bcmca9dQ)^lK8G&T_0;J)Pj752PvQaqQt1d| diff --git a/lib/idt.ppu b/lib/idt.ppu index 1380caa34596973a5fd450e2f20298ad86c12ed6..b10801da02db74a50cb9da74fe58a750e3cd868e 100644 GIT binary patch delta 39 ucmbO#K2>}|j*Rz(s(11X-rE^~fIT@suQ)#^Rc!00`To|kr)=!t}|j!b-m=H$c2+#fIi0efrt7KGb)MeX*pO`e`zG2h8}r)C#L`ljs^IJ|e>BPg@* z@|%(0RzC-vME;p-54ec*jgtHBl-&2A{uuBW`Om7EfBDxTKD6P5PbDw>XdusCSS28- zoCQWm@qx5zJ}j$x9Pm{$S5z`r(zy@Jt7fjOx&SPyW^PHzTt(*-{NRcX7+hEKAyp;k zo60$WS%?L^c1{yz{fF<#f>VoeGrLh!bcf~KEVzNJnN^-GQ+ESrdk8rA^SktO=7~<; YIH^F6%uFiCTqS^IE{?MXS$5R_0@tlfc>n+a delta 473 zcmXYtzb`{^6vfYN-=pMttq?z=s!t^^bZLo2hsNJvVX%`}YA}$rjm1!dm+xe?=ukt` zq=~SIO(HcgSR_JXs6i|igLCT*_j|sdd(QX1oA;IaOr4};Fu~&AW)tM&O-k@ z^c(6=1I^HHE2n^~kndDEucOL&kLu3=&!PXK%>3IwSMaSDKKN1PgI^7#SwhYOj_M*X zOcf6pQ|4k*%CkUPnYpYgb2;sMz_K!PE6N$5sLb4&Ds$`FpW_ENwZY(yDiiV)}wt3b~;QDrT5IF7m5A-L^E1jen Xi2Kqo`M5uE?QjbYkFok$R(Ssd=G{q# diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 7a8d36b22153caf97dde06e2f77e015ca03c158b..94ff3e93c981634f67547341b5b22abc27413aa3 100644 GIT binary patch delta 37 vcmV+=0NVe=4#Wv6f>(8He|Us(11X-rG0Ut!D-RPDKa) delta 19 bcmZ3>v6f>(8Ap7B=H$c2+#hVLTh9ytP^So` diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 675d1588733679fddc50d52a3b4768af6135affd..7487850327ed0f3055622c1f5a68c0a9e3e7f431 100644 GIT binary patch delta 6403 zcmbW64RljQ7J%=(#>iw^$cvJ`N2@vrm&@_Pgq7Z6Z{O8F@(>JbHh!0lNP|IXg~-Xwi_R`;BpbJ}n2 zy)$?2%-oqt(}ylu+P<|c>t`(~DlT5%-^ohK03N`fhqeR!X*a;5djXcW0zCCkfM-tt zta%#X1sA}&nY`zozTDxo z@%jpxH%-4xJ)fN<>CO)g%up}O*(@9!8rT-A^=G_au0uUBc(vYCZOrcw#;JwJM6EHu zKT~fSxm9?hP=}AI(?eC4jp>u9&#XleelcK|y3)H^@2*KVRIU`#)WYfNP1W}biF}<8 zrRu&~>uh5F)ab4$(MFB=8LiXy8v5tYG?>(#w?%CoZkGe4bQN_+`V`tZ^4y6w4{+=xUYe? z-S6OMMvvw%F5Jr+dG-7pcA5tU=1IdPKKBO~e{`TjE|LHWIBV?dD9oQdG&_4(QOPw0 z!zsr&&Ht4Lro`fKsksk-CDxf{^P5M`8Ki=yZ^SlH7CDEHG`piN`A-jFYQ>WWnZEbB z>N|rM&x#8%FK1{Pg=X)CqsrG9N@XBeCoC`8j23q&=&co&AB~pMaIhv26qd{+0IS#U z4FPi(GJS0PZ7uaF?jY)7DoZU$%QVSShc(ODcq$YC1`3`gZ=###^GdCnHqWh6l5$Q*(>Z3j6)l4QXp8?ZHs7w@k;Hl+9^Dr zKd#BIN31n2=?baapiLg5Vbkgj-IN}Q&BGAoFL#Npt7$4fi?eG}YH*#zc4@u!#g6vJ z)uSTTJ3*_*_LI75W(!5FrJq=9+>EFPtpRjRqnnW}o^W|N?Ro<&M=ut`Iz=pH-U>`V z;oef|^@n4_CfLb&BBba`Y@^PG&Hn!)NVLWx!0F=r<0CMSNzKKWm_OYNsVz(Vq$z5! zP`crae@Ej5@%%=o7*r}_>ss0`s!qT&N^?yVbER&WB2zbCp7--}6F*$^Fs|C1d8P5- zbl<9DbA}=5x@{9XPCkD(6Q(%fm;2$g|5vvNT^3z=nN%96^mzSBX}}i<))>#9Hd1*Y zs8j?4VSgE}m9{#v$6Y!xrqbfE+&%N2d9xb27B|Uz(`b&cf|M!+&nO41CsrWy9~8e*DgaX0I=4FtIFIVrCwaHhP%pA73kW2 z55}nPSaL|4F^sGmjQtl4>LiMrB2BaKvh0f@SLud3@ zq-(E5Z;TtgbiE#F{QS1`NLs9K4Onds>>6_+V~^yjt{%6e>>#DBjx3?;y=6*3yq*uD z#u=wsl|@Yx;oUTSqipw3rz&Hotv0+m9Hh6=yPF&;EHj#qq0VX2t;(8!i=GG>tHcrC zt$B^_=)@)tGT7+RrX{6UEf2M{j8vC;;I%?aH4vZ&zQsAh8$IO-tC)yfOBM7oA&Ebh z?Be5gY>3dZQel`UgOC(A6_Q6GX+SC@Pe77GDkR^4)NWrP-+^4C-F&)zAL%jQ1V3O-Bd9Icmze7Dis>wBP6AXUS#+b zDdOeFH86b#PgqIv2re-$>Pg)Ih^z38^GiI!82KrmrUBXO!C_%`D2s( znMt;aT#bg6Y?24W%Y`sFUIF7xvfm`%!RLLJ<$lzpU2c*$n&fRJ`K0>cn>mbq&gI=7 zFjf6z_YkRPnWv(@rmiNWRMvX}_&0^yuR8bamDDfx9grf^aYC#RU@>txz!D;!!>5Qv z04s#No_GzwMj`JfjsSR9$Q{Iy0H=w?0OyG%0G-59c)1X-#Y+N{j+jdvjfaxX6}t{# z6mbkdC2=f3HE|rk%|gF`=muCs^x!uU#8UkBfmjBxlBnRVMl1)|My$XyNE{EakLU$B zNyO{z1L8!y6wV66PedQSA()V?65ui-1~i!H2N+5W09;GNfdj-UfEr>oz!V}5d^a%& zK*xvG05lSD;N`>+z|+Jqz-nRy4X;z>dW@Jj3E&_R2Rl$vg~W1PQX(eNLqv2;r-mFqPn-tucj9zhQ6l<#NAOeP%>bVhXW)Zl#r>y< zlkt-iHOwZ?#3d!(0+3I{0o_CjjCd=+jl|mkZXsge_X&Fw@pb@C#5eLU!rmh6dj$6r z@5Iv+p~@_PkBGm;B^0#cY-qqM1Ph3F0TdBu<3mB51K=ml#l0oo4KRy%55OOY4FF4t z^8lVB-V3mbI3K^KBjO51Hi*gr;sShgiT43?5ElZR5%x|Z{%lA@VxR|zD1T4HKpDPN zBs&F15K$ix3=92C!8>$DV75>!5qv^$C26aY@LjNqS&C z1=9s{G!6zBK^0tzaf0QdL8ajJM09u~fA77IrD;igT8fJwIBaKY`SHVftbwy5dF%x~ zw=<8~dG(Pz*?u{|c)s|^)zR;r(peGTIcN~e=3gEuiFh4-((sHFfyE{zd+~|0<}-^e z&psk$tli0a;w>c0F5{rSdL4S#WEXZNTZ$E(rr@V} z`&FpvgFBPji!^Bi@l#_es*1I-)2Nz~lA2;q&=rm}&9#&7Z0p0v?r2sQy+4kzxA~IU z_^sDb2Tt+Bqj}PH##?&0cy_yk?c>AR^Q3J3OTIbnuIQv)mXX7X`PZSVSuH=JZ|&>MWsA3K@JE>bi06JL0uP->L;t0yM26+HQ5Ia|l8PxfOi+V4%;@9p@z zkA+!w@q;I`ak5{X9L?c(ze#@2B)6O7Q*knHJ$sn@b5qskbD36F%y)cM!-nyU^IL2qA>TKvu%LkN z%Ds}0OSbcb3nl8f3wxQ1Jg}DlwA=b+d@krte4Wp28ua+#4N{>TJ%Dlp8m96AojGz_ zPk^z!vNMPEqJtART G(tiPql{w`A delta 6405 zcmai33wTt;6+Ux!H`!#f+2xfi1dI?20VRYW5>R6{$xX7d$!<2ghVTkTUTOryL=j^b zEd7j%7#K^mq6V!6QIK$xuRK0W@X^BOi}HSIT0cK37E&Ifw940W?ww8UUehukx&Qp< zoH=u5=FH69%b_1ljaN-gH<)vBCXQX zZn84DUr4a54av%``aN%$%@Oc%#t9O{&sD zQ<`!I$Ev+xAi^)Fa9{VV*P5$rTIs8T&C0G(W|luH82Rc7+BIL>s;pwXWVB#L#AsQj zYumkhb?r0f=u}F_{D`izIaztLc8t#VxrIX_Q;0KvQ{87mN9$l;V$tbFH~iewj(@yq zGH+To$~<@bWyYO158_QrTG*}J{p1ARg44XseG`B6NeBNVCWUt`cRNEtkGI-i;gx0o z@Je5xknb5D5={Xpw;Nyy@v|H7|cGP3j|Ye|kEb z&D}?n`Koj$)~a)Fr5$s>!fg#wP9(` z%qbslDix7p+`KC|ndhxED-G}cDKhgLlBKaZ{6cUf%j3(HR94Q{E7Nicd}S3ruUzd9 z`22Dp=#eYHV#0}ocVlt(BHB{9)EB4{nsrvx@VvGGQ!Y>~Vp9+bRQLkI#t{c#@|1ak zz}$@7sl`;_mE8foNSXptlWHJUVNKG^_~y3M{$_VD81UqWf-)*Zd*0bLAZ#uuaR=N5 zK{?Q)s0?_5as}F#73cSGUuaLh{W|e^%c5FG zMaciwo)qpiBtt7>P#Dv7ENIdUf&XG2)hQ3Fb6$bdB345;w+07V>@l=BJ*!16)#Z{X zNHv$hr24?AH#q1XhOT)y(zBEwDk`Eyu7gH&Bk5*JD)ba%ZVC5Nsi!Q|-K`~odXE8{ zmUpq#Rs=w6d))}axCO-6brJlhCjxc6(GeK?Bx}(pu1qgolD^kDE0M#vCF)?Y8AlvY zLs4z9UW#E+Gu(2Kky~&B(pY1~SgDohmloGsX6U;26^~x!oAw4*+7f&3-7%pgwA*B4wr6w^yb@I;497dl*t7?uP;!c-)S^c<|1D} zE)MuYWrgTfoiua4yI^v+h>Sp5Jm-=6+B&q*Xq3zNh!}_3v14GasoGOkfQuuS1*@x~ z`ZHBmxQpcfujPAoxR{A&?d+eV9);?bQ;$NmYwTm{&Ou?x@1va55+NUJ+Rls%s-uMO zFeBqd-E7PE;(*lFSPjWQqqG$VWVsBenay1uas#=t1>{1Ygt7TU0l!xU3)QP+uh&X$gwMw388``|WwOu8`ccMx(=MJm` zUNr!5{NY{wEFWP#0c-v5u@}lk?vOWFt-A-($Pn%6a>CJf-vea=0_6ot-cA+)6C;+)2St3_<)?bOmA)em>PHje4(ZSddZFBtK*aSqSsdQw@>%u+uwJFX>O@7 z%!g5kGyp2ZCm~YDREXb=NS>(>pNgoSw}L-_*i5;Gh4f1i)w5CXXA$Em1+kF+cK~7a z=!*z8VP(0_U?*})cdb}pH&!TRBK#w)T-FWXAaWWr73$#ch?Fc^vA`Lul;{R@1^Wle z0V>qMg7Zh&p%n|nBd^iv2O_6+rb6}^$SGsAVu8`fn|1m-kyCO+^!dmYojwpo0WB~U za#(|$(nTv4n1`Gag$n5(L;g>l{nN-POSEEvmB{0D_Un*SzC`rvkx$g=2ehKVrxWZ! z9^%J$PwO*AOLw)U6Q3Ub_SdOH8w}EC415)@?-&zqHAoK__)!BtW8l{e+$6G!f}vQ3 z82GSg-WSG23&6|weUr*(?{S912F(fsf62hN8TcO!e7}JoHt-A4JPbcX3!tw^_{i8? z20q@vZ#VEt1D|2wPek#8o*fqH@Qo+~fQ<&e*T6ql+CNBR>??l!!>`x|WyeROCEj}D z5GCm^o21x$AO5~@mnm)gj!EH%u?vAuPmGkx<4j4unOxhY5=T-X|;p_=3;_aF7s>$^1L zBn$$q74mlo!y$~AD)#{FA;gXk3H*+*5}=E43Qi$mK0u;LvvUz*$F~qx0b~(Q1(+n{ zrG)5jIw3CQd_rvhC?N($+bYba0X$0rG+aZ7A8TlTQG?BdGXPo%X9DaZ#D<>}qWx(? zwELD29n-cU{m(*g!K@^IHbS&ZC9K97C7cB?+KlT@4f05U4!y!~3L(m83tT{mBdsIE zWNIKp$4?QW@X2WML3*r0YC=fLcC}Q7XjoG;@+K3xENp-;UfS`3F`oUMTmR4iSSYUK1cW% zz-xp!gBt~gJE*b*?`*=y0rnFv1vnuL&Jg0?M!d5r&<;Z6U4$6m_kz<8ACiwEM0tTg zkC0ahoGI`=4Z~0`1kVUuL)d^xDEKCU?+I)ZxL4qp0?!a)PMi~*;f+ZF#R#+sOcpqb za8eq;t!f3gjZnA+-c5)O{e1IZzh)u6`al|ciMJmZ!RGVR_n*o#@Si0n5fM8YgzbOgAD#;Fg|Dr_xArtP zUis|wC-LFm;4u>^IP37Nfj1fWS_5Ba;MaQ#*b;3YhPG${>@@HW1OKyue`??d4E&gZ ze;LL3+HVg?cUgGe@D!!~Y>Jsp;H%G9ShFD0TbrGg&A&On!MD9?*e;K9k6 zw%K!P>gQG0-oIcDD7Js?V@aLpm%R&cmT)sbCY_So#fRi}X}pEsYfIvt7ZWT?P_u|% zxR_@72mVh)5g&Ldjb*AEmAfJvmA%NHzcjk%d+wGi_=UIeitY>VmMh{5FQ@Op&s_aP F`Y+&}LfQZT diff --git a/lib/libpkernel.a b/lib/libpkernel.a index d5b49a760a0ed08de69dcc7846604a74da62f429..79d2830f8d7d71898967d8e127c5e728a5b6f806 100644 GIT binary patch delta 879 zcmZ8gOK1~e5T1XV)KrtWrX^j|Hr*s*i;tM3aqY%}p`jjpv_+C)p_G!7_$)oB2O+)= z1+~Nu2zn5$9=sH5|AQCn*;bKw(1RB%6rtcDS`|SAXOi6#3~avr=KE&$-^8mmLi@#>1dL>4x_n!3@ zfRC2`i8=XKs=NSed_xJp87bi}8(QgJ(A5UuVGIKJ2t_+UGjlpvD{~zn#GHJ)7|9ps zIQb0bm?&EQz<)dx#vU8v3-eH^xPg@ z*W*cZZ>)=#tGYiUee3(PW%_Wh^&+%)j<{(gu_QXh4_xeT7hiF;e?swk z@%X?ETDZqJIjD-VygPVG5%u!tF^}-GFuEWtoVduC5z>TxHh`5CBavjQNCoXUCqdKID6$}mS Zt{GBb*cuXlBff<3|GQU4);6-J`~xct#3BFy delta 845 zcmYjQL1+_E5S_nGG}Sb&F~+sgbkm4dTjQo_V-hNsmI_5_12sWugpiYHq3Xe-ks|0J zXv5qD#RkNSht`iGh+b_&(HundA_YZ}>Y)|%BH~Q)w`5^?`{uowo&7UA^GbYuDQ1I? zL?Rh0cb?ZKe=L;ti#o*zF27tBzgy}|t_&<{c-!T%wKsCQH7xMXiE^tO8rL=1y>-}8 zoFS%d1Gvek1C$7b0Z?Y{0jMbbkCc$A1H4eY%1HIzGE%*FtOo!-D*Y34 z@_%mdBCPWRCH!HeguiUqL$@Hl7r@OJ1lUd}Isp94sj&ca6ToCnzHUbHSsW){KXdY> zn1=w4Gbi5!Bl*s7ypsx?;{X|_7^#uVjMT_g#xRz>2eCN1Q&#m0>Zna)mmK&0(wdIi zV>FIhnuf120<60NZE7I-pkpImkk!x=m3@7m9nS{~Sj*~oY1D_-U`gKXT5r5h&K|OB zl1FZdR8;P~W#^j45Z;fw@Ojpd?R|FbTHMxa@q$dH?7WqM_f5Tfd#%Xy5z{oIeaU_+ z#=F&6pWMjC`uOFIk&4q^Cchj!Ii$XZ*3J=4#^P8LUE%{Sjdh4`_BtP35cAUiXFwd;SkQZxG{Y?<>>{QL>s^t#;7{*r(zY?d^@m|(Vaas z2@B^kVQ0<(unCtkVNt-JnFHEuC$3HUu_vpGMLd>0+%%H-Sv8XSzo6&T$M9H^xh3sC D1^B*i diff --git a/lib/util.ppu b/lib/util.ppu index 40260752b2e105b4e7a5628ac640dbd86c7f2e3d..f93c652514264ef759d9097d92ab78bd39a24d90 100644 GIT binary patch literal 6107 zcmds5OKe+36rKC*I8M?}+B8ktB(yb#0_LMqKB@rGGznmuI#J`OssNdU7}em|p-HLu zi3(Wo5g--?u>k}N78PQ_e}TkDY(NMkBtWb{zycvaY@lFJIOo1M^Ij6D-E_y5X5M}G zp1JRyc{BHoJvutRZTrRX`^Ch}JEJM{N|!OaKfUwkO=kBS=NMxK&?rr4BJo3WrE;9= zIE^c*c}W`2pP88bx!SwGgQi$w_Kw-P;`9#>|MKkp$8UIw*fu(v5{j*QxLHj@qP1L_ zoKfQh<5Hwq`=s_Q+P7*yr9A@~*{kt71bSj@|5$!#&o+#gHDbghVU58N6Vt>edH-gF zGepMikT|V6NHu46it{JxjK_#De$0-?D658#YOM#=XK7X|>p?FhK%wmmpn(w+7G_}Q zXI<3jrXqZ3XVjmt`G@|lsQ<#H{tZ#Tn+jxVp_mG*hWYpW>!|Rlo0|BJjrO9wr+rNO zxb{ujC$w+YKB;|+_O05tX}?1ImD;be$wcyks4t{@gZ}PlzPP^V#9Tz;KpfJoiBFxVmZkLp^`G`;5N{jg##*)^*vpa+r^X z96<|7m2oE-Vjf1b@)#AY?)uB>B>-P0S|;r3_Bxc*$asENdf&+2L1omUT&joWChKwV z5bO*zFU2E9e5QJE&PZpwPs7MlFjAgF1C8c1u3l;d`q=FgWgs_MWS)W z_?FiobU?bxk^YJ4L4HFENw3A7PrA#Iwv}6uVo3T3kdomSqK&BsvYL8Bq`QIKNVHTO z>2AMT_7CR^{kg%yKtJ|u;i~N3p>DrsPL$^g6P2mLO%vF!g_}zUi}l{T&C9EC^GSxA zc5@`(bi?_c2jm5s@9i$%zJ>V?j^y%@r27^oJyosDEi3a|HFLZpb8#f|9n>4DihF<@ z(afK8RnadX*<4URw1DWZoIGr@MctynSU!txXaS2J$6}Ix$gQ}BEUK_bhPCie;3wt| z>J71Y6v)Skmb)Dbf2(J6!A?)xt!|mr-RX?yGua3&VAAWD+($p;5nMwix4|MAp5TrK zeqx@c&i!lH{!?(;c^}9Rh?W=Zevp*zhdo1k#)k5ahX1*>r0Q*0o?gyI^HRO&ljSP* zdZ}75(zn)MUt*pQ@;!zt_{7dscpv&Ee4h>#fjz@wUkb3VLcYP3vq9afu@^mP%bzU&tn0!lGWrLHk#`eJ?r+IR93MY$#bSkF`k!}m_0r*@6bNad+cu|EnvcZnnf)W0l@fS`EHP*;R%WA805&|dE?y=7E zoRhzY;6&EF*0~){Zh7hKL7$i|PR|yxIQr~kcR2qh`e$a##o`PWkM&;(KSgSoe!MCF zMwgKM%@-){_nRDN(VM0%!;?{3QBWXfQTOoT+WC3?PifI*U#gVm=I3P_#%$*}N%7ef zuQi*?=FL`ip0DZ`h&qe_tkP@vJ5{FiFp+IGp87n_4ma{ z%wy1BJ;j)t5%cXx%y*%G7~FHNccPu_e5Nqwvq;P@pno0Qb6%DcldJTHNX(z0{}$Zy zsI;7z`~uELV#Yvp1<68|8}lrT)grD@@OKR2rIsC&LG140e&-61&MoL$)2=MA7U)+= SjQ$BgOpSX%#?UPhng0hdWFeRU literal 5916 zcmds5U2IfE6rQ=e-ERM&w6qi`P&QixSNuURs4s14mDP6J(8XGbSqiP`#%;IK0zzU! z#1~N#5)(ud<8OTO?}-rOgNERX28|EKL?8Tnz{H>?#8j%*?>l#9_Lc&>z?&zTbI+V} z=G^&a&YU~DeSO>SxN}qZuvQ`UabHYbXjCe5Xx$5^KfV9^wMwZDG*TIw*5SQV*<6_7 zb}DNqc~L5Fofw*YcC2}@o~lq}^1$TO$k;DOetY%s^rJ7*w~B_ci1_9`bQV$(smx_} zO^9-caY?#dcvN_W@Jivs!Wl^EZ4$3uLyq(h_NTjg8Zllk(n_l+v>_NmT9xrlUQijf z)-bhVhhJgPW$a}|?Bzjw$i|NZV!BsV6m!KWGpp)it{a@|!a1&HeBI@gSg^pf0#h}E z76BcC=rNrPl10T_d0p5FR)2cTJYpno8l-mZhS3J%!W~><)MPfVZ@7 z>rAHFyB%n`0$#1K6?VB6p$+Ip2l^Yn5cC6D0rVpDe9(;!^iOmH{fbrqeF#0B;FkZ1 zW=YCvNuY7zQ@GS2$fyI|nd3kX}za=q@~&S(LpQ9|iiV&Dg2$q+Ak;hvE4Mz4hUFC`?h1lVVX6Eeed~qgVpT zpjhTm^w17^2+slveqC_O0N-is^ckjH5{f6`d63?EpF`mv^<>JN^te6h7D>^Q&Uii& zURDf}l7LYsvjZRd9A2N3OJVTl1SFv4@aNBtgo*&R#zhcjWj>&oG>FVk4 zN;??-=hlKMc3}DOUx((!mV-xgd7SlZeq8D1IzPX(I%?*798cg0tr7QT@G^X#_Kv`} z)%u<=zOUnn+7r@i8(9YQc>)fu14E-v!RXL!le^5eeZI4Yfagt-gjg{-A)7@A5{oxS0C6tkrkU z#^_!yk2{~W{Rmr&jAKQp4qm!&iLzej;MF8vEO=pFXK>@N?>_IWOk7&`V;#4gE#k~SQ<|LfB}H86COaa65&oKSO+zT7N-wpj zs-2N52P3Av%o^*Qk-%ZZte0D36O7BC)(zy5v5~RK5$u1neeFtTN6xCq#AI${WCB}i z?Qz&idIs>Z8-7Q!ME}FQ)9$yCp5~&CQJ3K5r$W3SfNEr~Q4?ypEmx!p$?WWSc4~H3 zH)2c^$LZC4H_59^rjqG+hHeGlV(IUXWm?A}>YJI+D+7~@L6%<)(DN47hIT15sD$jH zaD5Y#3$rm0b2H?2)4$%B{5n1mh?#;sVEV++hIXyw30e%&9=kk075hePU=syVjU7 zj5!;K`4!}EO`o;zdSb>g?&m nil) then begin procedure_ptr(); end; outb($20, $20); + STI; end; procedure register(); diff --git a/src/drivers/isr33.pas b/src/drivers/isr33.pas index bc42070d..def2c768 100644 --- a/src/drivers/isr33.pas +++ b/src/drivers/isr33.pas @@ -28,12 +28,13 @@ implementation procedure Main; interrupt; //IRQ1, Keyboard Interrupt begin - //CLI; + CLI; console.writestringln('helo2'); if(procedure_ptr <> nil) then begin procedure_ptr(inb($60)); end; outb($20, $20); + STI; end; procedure register(); diff --git a/src/drivers/isr4.pas b/src/drivers/isr4.pas index 874f6d91..940114e5 100644 --- a/src/drivers/isr4.pas +++ b/src/drivers/isr4.pas @@ -23,6 +23,7 @@ implementation procedure Main(); interrupt; begin + CLI; console.writestringln('IDO Exception.'); util.halt_and_catch_fire; end; diff --git a/src/drivers/isr40.pas b/src/drivers/isr40.pas index 690e843d..5a21e104 100644 --- a/src/drivers/isr40.pas +++ b/src/drivers/isr40.pas @@ -28,12 +28,13 @@ implementation procedure Main; interrupt; //IRQ0, called every 55ms begin - //CLI; + CLI; console.writestringln('helo3'); if(procedure_ptr <> nil) then begin procedure_ptr(); end; outb($20, $20); + STI; end; procedure register(); diff --git a/src/drivers/isr5.pas b/src/drivers/isr5.pas index f10a9cdd..9aabb386 100644 --- a/src/drivers/isr5.pas +++ b/src/drivers/isr5.pas @@ -23,6 +23,7 @@ implementation procedure Main(); interrupt; begin + CLI; console.writestringln('OOB Exception.'); util.halt_and_catch_fire; end; diff --git a/src/drivers/isr6.pas b/src/drivers/isr6.pas index 29da1834..f3f70176 100644 --- a/src/drivers/isr6.pas +++ b/src/drivers/isr6.pas @@ -23,8 +23,8 @@ implementation procedure Main(); interrupt; begin - console.writestringln('Invalid OPCode Exception.'); - + CLI; + console.writestringln('Invalid OPCode Exception.'); util.halt_and_catch_fire; end; diff --git a/src/drivers/isr7.pas b/src/drivers/isr7.pas index 13bb9d64..c51f49fa 100644 --- a/src/drivers/isr7.pas +++ b/src/drivers/isr7.pas @@ -23,6 +23,7 @@ implementation procedure Main(); interrupt; begin + CLI; console.writestringln('No Coprocessor Exception.'); util.halt_and_catch_fire; end; diff --git a/src/drivers/isr8.pas b/src/drivers/isr8.pas index b71e71f0..073aa8a8 100644 --- a/src/drivers/isr8.pas +++ b/src/drivers/isr8.pas @@ -23,6 +23,7 @@ implementation procedure Main(); interrupt; begin + CLI; console.writestringln('Double Fault.'); util.halt_and_catch_fire; end; diff --git a/src/drivers/isr9.pas b/src/drivers/isr9.pas index dfbca2f3..acc39457 100644 --- a/src/drivers/isr9.pas +++ b/src/drivers/isr9.pas @@ -23,6 +23,7 @@ implementation procedure Main(); interrupt; begin + CLI; console.writestringln('Coprocessor Seg Overrun Exception.'); util.halt_and_catch_fire; end; diff --git a/src/kernel.pas b/src/kernel.pas index 0bcaae2d..f6829d2e 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -44,6 +44,8 @@ begin isr.init(); irq.init(); + asm STI end; + asm MOV dds, CS end; diff --git a/src/util.pas b/src/util.pas index 4619b93e..b1d13235 100644 --- a/src/util.pas +++ b/src/util.pas @@ -14,6 +14,7 @@ unit util; interface procedure CLI(); +procedure STI(); function hi(b : uint8) : uint8; function lo(b : uint8) : uint8; function switchendian(b : uint8) : uint8; @@ -45,6 +46,11 @@ asm CLI end; +procedure STI(); assembler; nostackframe; +asm + STI +end; + function switchendian(b : uint8) : uint8; [public, alias: 'util_switchendian']; begin switchendian:= (lo(b) SHL 4) OR hi(b);