From 78910b6fccc210dbec7c23195b0287e52c6fc6cf Mon Sep 17 00:00:00 2001 From: kieron Date: Thu, 5 Apr 2018 19:17:46 +0000 Subject: [PATCH] git-svn-id: https://spexeah.com:8443/svn/Asuro@352 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 0 -> 14653 bytes lib/ATA.ppu | Bin 0 -> 5519 bytes lib/E1000.ppu | Bin 0 -> 10592 bytes lib/PCI.ppu | Bin 6662 -> 6662 bytes lib/USB.ppu | Bin 0 -> 3593 bytes lib/drivermanagement.ppu | Bin 0 -> 8109 bytes lib/drivertypes.ppu | Bin 0 -> 2670 bytes lib/isr76.ppu | Bin 0 -> 1994 bytes lib/kernel.ppu | Bin 3573 -> 3594 bytes lib/keyboard.ppu | Bin 4413 -> 4413 bytes lib/libpconsole.a | Bin 81668 -> 81668 bytes lib/libpmultiboot.a | Bin 29040 -> 29040 bytes lib/libpsystem.a | Bin 155060 -> 155060 bytes lib/mouse.ppu | Bin 2592 -> 2592 bytes lib/strings.ppu | Bin 0 -> 4852 bytes lib/testdriver.ppu | Bin 0 -> 1370 bytes src/driver/E1000.pas | 227 ++++++++++++++++++++++++++++++++++++++ src/driver/PCI.pas | 1 + src/driver/USB.pas | 2 + src/driver/keyboard.pas | 1 + src/driver/mouse.pas | 1 + src/driver/testdriver.pas | 1 + src/drivermanagement.pas | 23 ++-- src/kernel.pas | 7 +- 27 files changed, 253 insertions(+), 10 deletions(-) create mode 100644 lib/AHCI.ppu create mode 100644 lib/ATA.ppu create mode 100644 lib/E1000.ppu create mode 100644 lib/USB.ppu create mode 100644 lib/drivermanagement.ppu create mode 100644 lib/drivertypes.ppu create mode 100644 lib/isr76.ppu create mode 100644 lib/strings.ppu create mode 100644 lib/testdriver.ppu create mode 100644 src/driver/E1000.pas diff --git a/Asuro.iso b/Asuro.iso index 6dcb14e63891cf08b341893a27ef64573d2f7abc..843556d6693331eb5f1a36200d33567d97d57392 100644 GIT binary patch delta 18886 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 diff --git a/bin/kernel.bin b/bin/kernel.bin index 0dd4f329621d22365baf5167f6bae2564c6881ab..d33748d3d2faaec5c38f85e78b0066d129a4053f 100755 GIT binary patch delta 10689 zcma)C4O~>!wm%037<6<-rvBo2FpiYc&{ea5V?8fa{QF&_@-ozrq7dh|0_M92L_PW2z?>A?y{a3`I5AJlO#!p z3nh!EsL?3xi{l&FWy>a6W0ieU!&=5l65lb8{mBx+&h)WFb)y!a!75od=tBm5Y9hZ% zlcXk8B}wHMVzuLC77za*jlI@4rN5Ox<%>os*y7R7k>H1+&^i{&I{FTZd&4A2wPhU^ zkD6uQd5ok0q{8@nc^%7-nt$tCsgk5d zR>0ic(6qwig1);V$V&}2^G}VE)H225MbXvDZJ_`i=d~ZHjdIv2r5Dr%7nD}sU}RlU zlX{K==FTxHE&KsCIeNgbhh|BV_6uo;L1I2MC8*N#*!@JODo6htO-K{IUp;TSa+y66 zeP_Qcbm?~;mI>cKT&Kw!U{p1Vor}J=$M8{T>F;P|5zDpSA9Qde`;&EO;*%pKX~UyD zE88rU_R%b)|9e37(l^hdUTri1%h@m1{_=Dd-G8FFuMoD6)#j7Lz!vqlj%*)62JOAI zLc%_w5~Aj6RTs3XrRUT~+fE!cO1>CM?zPMrl{j+=G!+NeE>W*kSo~(}-Uzuqb{#?2 z#cl@d0YI*zm%-ti7bhn@_63dn}fCCTFr zzoI-D%<7`!#%J9)Iya*Qg{;*4Ze>d_)uOE;AL1ZT9gu`iRlaAh#0=`8l@Q*MEJdMhs}M0Zgm8Ay3|LvJCdFJh?e5Xe^s+&A($dl-do|UI$n6FR0nJM9Rzr2hXGt zU(K~%ROJ{b-H-%>0U-&VA$LR)^iF11tyV+laI_xVfAoxXWOx`QjJ%!=dr?xSSQ25A zl}V4%-kMNjJ~cf-Dyj7A1VQ@d4a^IDf$EKBy9cfhEvW>%l?@$qbEu2hS@p{X707)a zy#*_X(qcZ;Qr;ExXc#}u&J3KUwwS?rdr{Wg&+H{8`?Y9+aH4-nsLo8J0_~@~hfui-hu6n)u>x#4`63_J^nS?+c z$QVK-o(x3zw}Z`#kLefc)ARlk@Vk>K@o}aOi@xBc@G#a8ze!GKj)Y{>O!&iZwIkQ# zZx^jsCs?8$x!u1^cJ$S)B(h2nR`z65iLgo_tJ{25c39mOu)6eSL*jR#q~wLG1Bq$Gl#<$w%E@fyf7E&5>WuJ-k-OOAi8*o|Yfik|xtE%%i9?DA zbv2kTMnOAH@NMAC4LJs$7l6i*W=;ryjOe`Z_S9-vj1GvS!3m2&0mwj_u$V@4Uid`O zOz8J(O3b$GnPXO#piN5Cpt zw+bPvBw;ly*%aZTwg!<^uFq;1ta1ZZR^7@%R>OqV@MKf2uo_5KIX%;aQPP#eO9Akl@YLt)2+hEYV_kyLmx>xanvAb zyU6fz1hVVE%QS@y{0a)%0fGldg42lm@S1{=w+0lh5_gIe4qT@Y!hH9HyPA&UmDt8F`r%kGyPyx@M??%@Irj{&pB155rr{ zM3|eU-Za3TO+oENmD>nhOx#rB=78gAH{{ zf>6QwaBwA5)scSK=^gyAEJ;p@&&2Z2KO2w7NivAUCdAvu;PE_7x+lqCGYqsE;x>Zw zIf&zg#HW%|{Ybitq$>h?3j=zHj>K)G*WQ=(DAqEhzR`4II1OYahI2S^VmRBNtB<#l ze@TWyA)FM%aK3Y$!nNUSBuz1#pMmo^DjcYx#JiuQq8mqudmApt@I%C=VqEz@DRSEo zFFJJLkG(TC+SyJ0nhc%xn>B+9ek}1LH6!uEh>zDy#1AAsO0y8(hxi_vmG}_wP41E* zI8&RHSi4eUHz<$TjcR5mYJLktAboQd59M;1(XB)%&_!rDNza4YtpzQa@j>fv+t3Qh5p?oFDuJ80D;MaG05Jm>ur;5>5 zG1}$MVI{pLXHlBf9A|_wC8EWELmr&SvBHT-8clNE zAI6HouCBMzaD^$sEjhIGN~+V)9_>@P`~y^S4C*`s$swrpmi|NOP$TS0o>hfI7-b_y z*;Iba5*XwLs^pr(?Ar;wow7P$LTgEn@~)7Qkn*2HN)32L4%#PGcuK759D|x|n9v02 z&t6Eoy#FGdY*gnOeYPb1`39*;ooo6{=^TriZK0Yc{6AF>P$x&Ib0hx6IJDVdm)i|^ zO6nY|y4qUJw%q*tiQ-LOsy>`I1bbi}rm6M-&D9GyjR1h$T_YQkCxTQwBeHp1#y z?!+mP-(Nx)TQKj3;k1P}$Y7;|KgeF1IG`V`4V9i!qY_D6dqiz#6+1O?S{#)yHX61} ziO(kUW~Ga7!m&#UMLi#Ovk4io5j1av^;qKC3)IN2Dz+lSCf~%WGJYo?WL+6KK@X+k z%n{4xWF|(vmn!)$KvMKGhmFr+TQdI=)c+z|I_W-`9G^5We%UBwL51CbbWknI6|hFI zyc)1CFV?cKTXq|7xd^{nc{)3I%fiSjo6viP9fy)77+!s)b#G$BvXY{ury$u1iP#G; z`3=|%G!t8%Ws9+sY%pX>E4|H@m2{zOMp;W@JG1WWbzuP74MQ2TC58QxwI|4EWxFRQ znm)(2sx&DdBPwgzN0SFnynMmy-Ej4)SCUr00q|=SRfC;7u|!nm+6~CG9@A^_zaV1@o05I=%uaM8Q$laoB&v~AC{kLB61|e^@xo4ewYv`D9Z-W9 zQsjG=vD8*e(n`hM>v;Li(kP)TZKM0c6iMa?h(c&1E884sZ9WO z0EgQ~0VsokR!3H6(1*h~pL!bi5q6BQw+ZVY>=a>!YG8GQRTE}HQA;6g3t@$$ER#Kr zX#`FquuOodP%I#96=4qm)7BA}4Nsb?wT{u?*CJ#1Xl&Kme0C%!K|ap@k&|pXzZs&B zaFFEthlvAiYOW>9gu|GA9e0zSTxR|Zo0Z!j7qDIqt6WeR^d!icGZ@w{{D6S&c-yjvA19~W)-!i&qk4}cG?wd z!5``3EW)0>;{6&7fw|$hJGP&ii3aW**~ce5*<3MI!U8MR7O)5IoS2-x1)gX9uh)xL z=Vt-e%kH((%>&Z_uZh$0NE#2RxgjKty?Pt%rF-l{x=~WL8?Y@Z2aWXnFB6`w zCfAwf%3N?#vE*_mv57MhM?8t;LNvPu?V|%8(Sagg;b>7NMz-Q5q<67gwLOWsXAHHb zlLd{)V4u=4bVcTUW7w$~DYtauH2}h3{xh^(j^m=s7X^Pp=zS^pli(%(k>LMa9PHX| zgI85<8yi0}abz{s(S$ml5%N;gv~ooGA{ea;FM7jatgz<;vezRk@B3M;YIbWG&LVP5gw=K3g1G{%i^HmflFJ>-3iJD$)(H4qv9St3Wqy2LhXC4&!>im` zqDm`k%#Y2A7V!Dv9#w9ufN^aNziM3h2dW%fTn-oi5HD!LsSC7lJ9u%=DmN*)+!1)P zKC}8ccllM`5^Focu>;j&6miRqF?rfo_^#MgC2U;o3~J=*Ra8s<-m1#w#5lI``Tly= zh^9J6>D{}Cw=KodRcx+ur-;_-svH%((JwwjVwx8pp(PitfT?GH7W^-w zt#<_PnyfDT%+9H;q1c=^@p2nr+U zki*084M3gPuAz0D-w}X5_dzFkdH{OQ2c6^&K;}assT1OTvvXgU&BMN$ZOz<^`jw+N z!nA!U_Wu)qMKHxoRK+Y+#Vl3DEIko873ycG`qTnh?t7kG-1?o@>pv32vYa`|aR`{V zCD$%`hEFbSQ?a&olj_T#d%gJN(p3M{oHSW}g&mulVt(L#wBD@zZL*ksBbj&ZO8F{V zId8E1DSK+(4mpyInV*nreH!N3cym&kH5>8ch;M1PYQw0MTI~N4Wp=o3{g>Ag|ro^elp5|U}ZB{<+OuhuC zv;xOK!`{5f+4m>;;F>qUN}zTiNq!qX|)m`K&(NaW@3W` zY9Lk?=oK_dEOfsk7TYdr_)=$qwu05BQoFssW}d=_tV@WW^%W&j6TcT!TSZ6(yKPa@ zJ?s3!qLz@n1@Rtln3jiF?7RoO_9O`>kOg6l5?($=leEi<3=TwgK3K4CarAi!)5t5=+l>IJWuDFx70{lEX0vNNM#K zI7(J_V+!+!!D`0|+|E*$j#+e$*hGM6d?d*_2#62>wlwphiVz8l3%`#X`;lZ_$YlC* zBV<7&n-Y+n3&+@wXD=xD8e7Vvld93<${f1!R6-2C<7p3C48I^ep^9P?wE#UO!(kZ)5372h^tH zb__0+ldzK!O`&}qG*y?Up-7)r&*WpC+o)Rhf!FJvX^(BJo(U+GpfW&O7I9HgZClQurru zKwD1W3_ob+#|d0T;3Pko#On!MN8m6&XyY#e$+J*LlK4>e#Hz!gyGVN( zoAOYa=}e(6>rJwUHaPhn$Z9^s>UbVpQA?K5DEZlX)fQZoB5Ez@y3RDPhKqvyl2{P@(UUuzy&yTZMD1Dr>m`Z_%w8R zdDrmLu;!3DSjn!|j92{yNnOzWtBp^~yANJn-j0Cpg#mq~UlY+INm>N$OczUUTrhzBGidK@YDDUh4TqX)y+`jr69spso($&SH*S`)+6fZ8k>vcSScoUBYu`Tm&_TgbagvVgy82^~e zUZ!AsDA=!E#$((GJdV79N5(UF9NLS=JxB2vu@w*3k9Z{Pfrr~(HKO$sr?A;G{@_6N z;~$cH9w3Jv2E^}S$?FrN_TsGJ%XCk%o;fDuS<(9E46I|lZGYMAmY~k(*tF^~Q6<|k zM);E?lSJzcKEp{6ZK*yNHg@D_Y3#@`^&2##?72BuC?E&Mq*Ms19ehcj@z5f)zS4yFP)Xc{mR=|NUfuXzr?HA z%vxK>c^WDRgHk&Qz$xYu zDCO8#P#kTfB+wq9BSCQtl(Imns}n)#mLv}pch%BVP|6K6DEZ$Ll*VKrC{4I1P>@Ly zHB60CL*xu8k`XD8GC4wxQiJ3KHAIb419|oNyK3eB{#X&EJ`g3}jm*3|UUsoDyA$xw z0JC;C#AQ71>n%~zpxHp)5hZUk*oZxMhWoXQtbEVw!~Lb-vLRc237K0r?V54@n{^i1 z>Cbec|49y#9=*K~r938T)2UsjNjgo@X{t_Xks4NGsM5()zS7b$RZlH}LVb}Cb(V|QPRw1_Ahf9TeK)7CSGW(TC_^nef*ZLl!y z0q2bwLoJah~nFrz-c|AGI>Z8S3Cm$4|2jO6#q?92zi!XVXoc) zRWx4*?$v3bPVdv{5~A#d#^!K;cBI$e Pe|T%i=9*L{d%pZXiE`{e delta 10923 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 G)Bgeew^EP* diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 0dd4f329621d22365baf5167f6bae2564c6881ab..d33748d3d2faaec5c38f85e78b0066d129a4053f 100755 GIT binary patch delta 10689 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 Pe|T%i=9*L{d%pZXiE`{e delta 10923 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 G)Bgeew^EP* diff --git a/lib/AHCI.ppu b/lib/AHCI.ppu new file mode 100644 index 0000000000000000000000000000000000000000..d9fdcc37d685186005e72043c4f8050a7c2a3597 GIT binary patch literal 14653 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 literal 0 HcmV?d00001 diff --git a/lib/ATA.ppu b/lib/ATA.ppu new file mode 100644 index 0000000000000000000000000000000000000000..23c8e5056db05abb124b3331aac4ae7b92c88b7b GIT binary patch literal 5519 zcmbtYU2I&%6`phV&ucsWi)~1Bo34UUGF+%)flhVo6wMl?Rs}(7WT)z zyH4-}Qhy%$P$3YgQqva%6;h>^2U<~8q7Ow?AF8T~DpgfQrK%KFeSiu9s!DK)d%iPs zXLoU8oObMc=G=3>Gc)JR%$eDnN}W4){G|U|q@U!%SHG8XHUKU=jDIA z25=`o6bN9XHHY~gya&VO($WfKIrxM^A)y^Y!$M)Is35dUXd1oIPP7wTys(&=o9{}b zljrBsnG318#p^y+_6MNtApCP+m6{eoxGCuNG@F^Ar<&e^k@f~i-RduZUVTFSLIXmB zLPJ73q>Ww87DU=9v`cgmQc{mJ$887a_Xc-+40@9u$g>Yvk<%vfUVO|DydeQ1u;bub z^*Y8)*>oFgytwCovYNW7)q{2{C&U}$lkkqvu+VOyJ2W+(_n5j@2I;vbkUpXPLI;HI zZ0&x~^O+Y?(?bME0w9Berv1-Tw_8i=?GbM`({CDPM!dJ#DMwgTE#vSTkqpl8x7oqL z+v(tD!~K6{;uAaYS>J-qfw7zT^P=iwFxKRZm<%$f=s%JpFM=2DV`R!sE`lr; za*Me_sk*FaPdLEuD7$nebd;$RL5>Sna-6_jMG*^(8X(4~n}koH6}ME$xoe6>EONpi zF-Z93M0POk&ab*|vD!#h3&p1t?X~a|296OQ5;&4`XF=S~mX~sh_F3=)1`Nk01>DQD zFJ7x~(l2Dw#pRM7_>||-MSXpVTO({BP=i?hK zMtTjxq3-!~YSx=VMTac>+Xjxn=rzcKGEc|f0eBP=_w zc=LuHkRF@}oam`Ha&9AAZ`4+@OC^r+QS0mLo~1R|0|O+m>=n1f(;@~_*5D0epgrUs z)~8rPli2ld8XbbukKmZS-yRzcx>amU6LtmK_w{jRX%ch%8zV$NUFavdkWDS5Ga_~z zeF-(ucea(g?_yIYvX`m9kZW)zoUso7URu>8DzJS_14Y;6R6?gL?k$6ZV|pj-XRfS86@UeBQXp?R!Rj$U$Dr386@(H ztgi@Y5N$qQQgpus-Y`IHZ|xHr4#+PBMPIbIkeOxdK;88L=J=O`oC1m-u*g1xlv9>5 z&N}ckjw6OIzP9iMSB;u?zmcLQn|jF}t|W&mec~CDX%iew%r= zpa~p754E%z2Ookro=41XE*l%pql~-&G|hJ*@ZbhzQ9hE)jAc^sWHvE(J{h0GkhZ!* zpba@Uqu9A!ykx2kw^lCWdT_c=H%;m+!!X!$Tyyro^5I}3@z6v+(=3`XB@cdEPCUcN zXMv`Ibz&4wq~~IZv3M+ZvUib@J(az9jP%^3 zfa!OQ9`dW;w-v8nG4j_y)5|tqV~E$I>11YZbDXSX`vJq5(+t>|e$Szo&47Qzbu(bo zjBW|onNbh^s)7HE>t?`?GrTQeXJ$NupBsZWxo!sRt873MI68l8^vtSj;I|d9cNqD1 zpy{tRU~)vnV`tCK#^PTdJHL=jd|q_WzyW@o=t-s~RVN3%q5lbbE^l+qp+P3*xd!!8 z2`&)WB{TvlKC&q4A+g8tOGr=3d{wa;EE5_*Yw~eLQExyjaHXdaEb-QFEQIGwTm8`~gHOBBH=9m&Nmu?`wR^tVFgRo z#!7<|$DKXW;k)dY*bm|o)B1CVb`J>R14bbG&>-C1>iSFv^ltn&Ta1YX0&%m;5FObq zZGXzhQ9)u1H@O+m@m&J+agZ@HGzi*uwA0C*0tquD3drz5rh%23+u;2k(*a;fFXoBM z5Z5xg;Y0iu(!X*TIct%37$jyEZP73?RhWN$WHY&?a#2y-!_q#3J-{{EqhaK!&ejy2 z@WASj0Z(x)Q!+HpV1KEKtJi70{7Fq)EyC`{jf?Y^r@fc8vc86Jy$Z-xOwk!n{UEDl zK8H@Qx`Th`@FAanQc==FBp880>l}PuT>3?h3;Gm`vh~CT+C_1~NgRe*Mp-1ru+?!WhQPFKV6-SJWN3!Du;g4F X*m=E;NquC7PwO}*X_3jMLL2`Di-R90 literal 0 HcmV?d00001 diff --git a/lib/E1000.ppu b/lib/E1000.ppu new file mode 100644 index 0000000000000000000000000000000000000000..741f33e2898ec12c3ca426024fdfeffe0ccdbe4d GIT binary patch literal 10592 zcmd6te{fvYb;s{r{r)Y$vh3i1EDPfzz>;iZ8v=N}`y?%1X_wu#Et|l4Ev;=~{bF|w z1`;qBI|-e^X+x*bOnyzm44ITBArmr9NRzfnr_)Yp)5)YsI@6?+WZKE3o#`KG65Qf` zzxSN?_Q`g{y3HTGGw;5;_k8Yo=brofO6m08;Vs+hPg_%GzMk$kJATWUKl$nJ%-WYv zzp>sJ^E@7gMm*Lwc*8?OL-kDWWo{=^krtPG>r$co!xMjT@HytyHI^SOSBmqW{PrK_ zzw_e!5yDN=iwot&x#AZ-^up#39vta)dF4uJcHwCG$4gV&T0inYl6jpE&ll$xOOMVM z779m;r8~}T|KdL${g=->(cCi87m8mH;zFhUwf2T5Hh=47 z3fuA6h9ru{L-(l05`ay z=nqJa!idYMb8)?kg=uu@rf?Tu<@d{$aBjPwi;f@8|4q~QjHSUCef}4hC*44M&X>W) zP}0eMH*B6i+>eAatBz-`^MLiW$Y7=gb<48+AK_d-Z^WtLtg;mT%!n_qP7vj=yj>@l zN5YvwA=FyskA>xap(nzbel4H6T;|i4%fw<>^_*Y)nagFK31=?v1`fq>Lf*D<^rA zyPg65UUx6zrozljsaP%>TWo2-Zw4CXhYd(X)@2Yk&J`DqR*o5aBml2hY8T!&;EAlu zB5s~OR-8UwJ~40X(E!~90Ye&(=*%J2SgsT*C-CuO0XR$w;Se4HxhrcdmP(5yfU^O3 zJF*#$;gS06L#nB~RGgkI%o+P&K*oq6EXm76&Wr2mF}FLzo9?AW@VblY5Fg}kgs|%? z{}J&g!lzZ8JS721V&AD+lMHhJB2dC}O10;+;M270{@ zPh{P@5!X%6&lp<@sP`g|VG56Y^nRp*wkZeTSyBjx@buw{ta|`4K8l8^1k^d?F;p8S zk6+b>IT4UAI4;~U^ot#2NBxA#_A@qzuROnhJYY- zeY{61Z_U3Uo8dq4;1Cqqh2shxdz3ho{ zWX{LEea3bwx{7FLH$j>DY%ha}0eB6to3tg-HDe~RRcs6~A&qWhx#&ybnfczTe z#erPIomX<=mFpD6aR5HyAVFXW+skViSI=DFmFt!Mu%ma7^=YQXydZooH zYe74&sBU^?z2dJBZ&qBq@($pxmV%2{`jvl;eD^Z`+U2}>WrOlxBfm!Z0g$$rQ-m7^ znRqT^>R`Xi#|W=Ijl)IOw~(p(}vX6#K${)}X|wx2ZhdXOz1n>n9N?!~gB=+BAn zf{`~tYkmQKFAoPe{m}8aCRnlPvj?4lfXw5A0+Nr zMAFq6w+DE7{D84rl-^4E>xvKJZF~8Nu1qeL%xB^gxomzsnjAHDs}{I3to~M4fSvg2 zP=R~*Ml(4N9c`PI8FgjUD7TgF<)^L+mGKf|}I5@>Z ze@Jugj$)CxL&^6z@>H1Q@kYpfqiD%@DS5_`I%~=IM?lK=W1|Un<~x;rPFU%B(($$g zTEQB7my*9Pq_{xHtpOQNqp9y!^5a78g4ADiwjtHx+8{j<1G-DmPYZgAq`K-hq{P&$ z7t6$qjVk-9uu?CX0JnqfbZU2J69>Kg$Tl=@T=}mE&&`i9!gC%9^V^2e6rS?m5FRmt zbm^T)b%pc~4~?LmN43D;NCD}eQsDNB3XBYG-C^vQ7Wj@7pnm@gcOVu1!q%aksKU4w z_<kCqa0~1@X=((#;M`XW_^FO714<*G8u0F_0aO zjOFs#@x&;0dsB+`d3|cdUXS` z&4+;Z;cZu?5np^EW@m(YF`#%p^L6=mH+EjAj|J3JNLN5D2=x-EHT+`FA;k5w3$qnt zPs*X*n$HB%0;NZ0OGRTJ^`)PObiFHk7;(qZVuc58|HkbxIrv)hC1CDc)-w&PwOm}7 zNf)M%7xAITedeoR80>krljYVOFPCZmn~t`;0MhG49xj%cH%QNZ&~FE%pJzIP-0l`6 zer?b@6IS-Z1^W>c`k4F1ll(YCq>c9}19{ghB8|guYUpZ7B9eNax=p{oVhy&P8am zgBXGqH%Gjk*+|-+3vQ0I@);a5m(_is*2=SAOXVv_g)4tfrU6W% zYt`I-yjgjG=*JHtwu3zUYrUCmhRD`bot+@>AZ?!ys&lQhW!ytk=H%)D_j9RK(u+>M zT{H6Q43YB-i0vTff++QC@M^Z~0Lc5CWiJMnT`!i2O?0=rHXOJjKTD^19QIVNz+Vi! zJgK(s$Ghs~InZ{H8-;?(S)C%&HF| z7}GV4=F=e0INLrMjOH$}4XY)V^u*+z+FPBIuN~z2@Y^A4&ed$q3n2f%S@UvWO}lz( z>dG$B#T4EfeLQ5!r)oCk6_B5Gro3{oDY+{&WyX1hcT!&rnexXqoAPHMzu`=IH87<| z$HHWEchbW}>E29cZ~AR7s9}N&k@MUW*g@WV{Z+`OH)^)&A3%Q3+4QBrrfbBeam@Zn zFXP2L`~y$zednmNh&O9L2wC(arfV8yzX16wXVL4yC|e^IB~zFy+;x7f6B(!E0X&iZ z_aUxZs+5dopJLi?XoLiz6K~pMS06*%G`pBTTquKlDj>U+T#L6Todwy9|L;=t z=>WY}(E+?~a!R?5bQFtArN#Mt@#Ji|Qa1KK^obH0<$Zyb2_-WD$;G}2 zN`-uXK<1RZAMZXewuk%G_D4#ym11mh9{=(-6Krm*$%B%nEQ4w*6$>)~q?-V1ih-&} zsA{HIDNa}XdwX45tvL=#_S%nuYSo1d3XRoO&YFk7^h0WUotMEs!)MDYV98gYB0moSXBW z^W5{EbMCqKy@|xowjDdY&x-P>bBRuMVUbcJdpwt}oOym%P${(&O!9(7JVU8&Ee%oU zr_O4CZp%cve7N%I!PC@u>dVvRik*MstG9-~ekuPXp$(a0pXbMt5^J7t$D(-U_2-zX^rl?;$k+<{3(sVvuNRQd26(>8J z&K++(s7+JzOb;K~_1^bmzn-GWJ6Xx*BEF*=UVrz)87f+gd*dZ<7b^ZU{<^2Pog1R)5CP{-H8};bZBd01E)uYZsl6OuZT7 zd-lhYeO>)skH-39{e#U$F?b*mOQism);hk{C#sIqL_al&Y82E7itYa+LDXE_9wfxX z*6OsJ9BjU5meP23z_%ae!XBKs9qR%y zZ-(v0F=J7cT+!#%A0GrAz zgQP2?s~ES_qnxqIo$&>_uoYlnOWnHHyk@mKX$%lj2y9YrhlG^7Cv%6LcdT*Y z6U2g8OA{4W8&MHn^MZgoW14Uf(WZ6y*+lC^iv^o6P!e>(&kzZ^54;I%1z560@yyegN^f5kl=i8zJD@5VwaSxb-^zX33>o*VqXmjv71%MX3##R zijod@#;dTC9s!$h)<8lyy{WpaP16L1kNRCJCa;B7>s1!@+ zj81pP+pv?OU^9c)m8)iSD_QT(c%N`k9Bfj)3lg{DxYPb27yL1ipkDK*teM9lNtpZn z^Qw-2UvOw>#6Z3-&CXii!1yfzVmDVeyfor+G2GMNGpG-V8yp{wV{1lx(1(g#_TzyY zN0_?e=!xQizG%kmU;VFHeDMwO0Hwva{(!@Mr(c3=dvv+@e2yry3ob{ttgwn}Ii>+B+L zy>YU5t%Qkx({Tv-1m(tC>EE+Jenhl{n{;U*t!DrB4s=CX_t5@*~K* zVDuCMTb-R4Jrfn2IN@c+v8YotgFe7N7LMJDEof5USL>6io%+ux-%<)c0Qn=)vhUgy zhVCGRFnpR6_PHsXuZH*?{^wEvP)T+BvP-ygrM&~AFT`S+{tKH;Eb3=W*88h{9UzUl kVtSONcGp1EZ!Th!gJ33ZilY7mf+REiCQC{`Ts6q-f61zT^Z)<= literal 0 HcmV?d00001 diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu new file mode 100644 index 0000000000000000000000000000000000000000..be3967aea09df02b3826bcb65111e6dc98cd6a96 GIT binary patch literal 8109 zcmcIpTWnm#8J;;_U*kA2u^lIDz}{@gWplL?!X-{v+iO^G>}9Y^CO z{$cj_-d0fpIOF4PDcPQ)j9GIV#Db8-+FrZ5G-hbV}$dq3I4(dL1Wim^d+!NgQp;B+^Hd zWAV|?G=S4yPgavw^>qZwuV&2-ctEK>=~mL+YC)d#El)Y&28#{J$c=8KKW#0IvZW(| zM6GVqdtFt2XRdl*x z{dRhyIJBN9Sqhx8Nj?PcSTMaEdT^zoZV1d{ha7TUO(KT#G(}q8iHo_$j3J|lwIMN$ z(l#?UOS?trDxt>OtEJsw%>Zf2b?9)?A?hlPqB*}{gZ`z_OZV1srB8j13f-KJu7(7{ zU!=2(o52c|1?jO%f@G+IS)q&Y6D#oVT!B9>E73m2w-Cy%oGBk^T!;r_=6bYQ zD2yw}Ie_B%>E$0&dc6-KgM|~acne`ry^m8~1<$C%}WFqy{bU7Rdi#%rf*3zPZe6wdJ|f@pU(NN?PH9-EN$6sws*ZTqo=BA*LkN%5A)ATf%7v?*#fv`M)yM5rh7Rb;MM~8Qy6&lMwHm~#^ANHPw zF?Lv-c{%^TrN@}?1GcSsd0Pn4b12rlvim+s^YXp5%4}+D-u=GJI8OXx%)1-EE6jVq z2X|U9%}Wb-;XR>KGZuIfjT6|z&zH%B2Ug?8A5H|-Yfr0now>9uhK5U1D1qRLo zrela_wb$}E&wjQWxhkJ!%hjvi0FX!Ugmk-JWwwgaox|zmaa_&fWAWP)M-yY2Y;r7_ zq0%3={oFF%!gtWrF`in;4E>UritYIhPf zTu{f|<3$dDHrXR&Sm{INU{hK>VBwRf@usL_pm~uSL02<$vO~G)=~KDMM=@s1Es?il z9z~6pI_1K)dI?m=7%XQkpZyouuF2~!1Nj3yA-yRu@I5OTIGeclqu4k)I6gj_h>xvg zYx0e)c|26wdf+-|h$pO~Uqv0*n)yVTtq0_6fo;@N7XA$Cz}B|_zS!0Sce^FNVaI$M zHEkUO+Kb!@+VW7bG?~v%%lmWSoEz}G9q@hB+kEFdg#kLY8uS&*M^nAdc1_NC2gpC+ z3F(^y=L~#^b0prE^~~|{FftJpTksA zZ{n%%zN;zSRxg9D5f*JApV!deCjDjzZP#eOvVqkhtgsAWbJ52(AT|j?5{petEc|b7 z;O!D#FGsI$1g$SjN$T2eB+-9`==v%Oc#=2i4!*$~Qs%ayJB(!i0E}6c?%?t1?jpL= za4&<~BV4{A+A_#I%d>@zT_VI4pqRSpZr*E_$o4+~fQ8ws?&guRDBBOgn#33Yt+*)L zZvlW7HvswufbwjAEx5G1n6sNETb%880YML#DX8mg3~(EOTV%!vs7v|ymJVLhTg}GU?L!&h>rzW(hkCn#?)Rab+s#^$ z>F6B>dW#R`TL`mOCq=r?KyUM*e2Ze%C7}HVIs&M~O(%2PP+_)!{OwkA?rSv)u2`p& z_qa7BNpSO}?3CoYIF%eQ4Iooi-FXo7nnl1YZvg`id#^v~p~^``N~I4w;DZ46a?-Bb zKtt(b5wgY2zCgzm*bIe7Q1_svyW*gAP*&+dA2n@JC8>d0V1R1ICMt%S(*I*T>62_r z>k2m_FEl#Fo$#=r&_J1H+rtiA%YC+Nsm_;Z*{fIeS&To=IrIqSVDY+`OGRzY5~Ns5 z&p`n_U)1U^2{I)y3y*{981LktD^uW$Y}a(^d>zPVji|;Wm~Lm)p>t0&JclZmd~9rgI-dLw;ZJHGKRA z=fPiD4KAS$G`vXRVtl{<(elw$e`dQT4KD-vFQWB}zJ|4UP;#P==fMw+7fr1 z>aJQs)?8SQVfnHQ?$So*Qhd>n(tnPgP>i}DmBd!JYup}t!~ClJ%S$sZ9QKq%;%B5WiFh-H=z-; z1GG8<6wi9ynE>r}|LJBYi!=Docgh~veE+x+35?)%Q+M78x^cM?Jh|~P{N%%aXyDQe RD2rZT2C66I$0DMy{vTWmerx~$ literal 0 HcmV?d00001 diff --git a/lib/drivertypes.ppu b/lib/drivertypes.ppu new file mode 100644 index 0000000000000000000000000000000000000000..cd0fccab4162a6d4c7086a1c92e4a4dcd5e09bc6 GIT binary patch literal 2670 zcmbuBOKcle6o&7aI1k5h-svk&n}^d!QmQ7ULV`_78o&}oCUy~R5z~o1O-70znsKaz zRRv47Y(PS)gv1I7mR+z23pQ+6fLO685=g8NupwHbC)hB-V)WOw)2zfxo)NQ-uv>`U%q?TOem$YP)ZL}Bvtmkrt3Gh>TbZOTxV>U zmeto1yHIz6+V`K|9Ac!cBiITWZsmioKeE4hw{nMF1{r8iw|1#n@ExJQV_@A|skg=) zPDYVV-FE3Vsaq@<{<3aUx?Sc&h6HU#;YOjjbZrf`4776wOH_LslR2O1&bo>h= z5i|eOn2*Q#Z^q%JnsH3%@CprcICS9AS(%J;6fd(~rz}n!vxPJsqz+ls{iZa=u#(^P z`M5<}TRU{??L9|dET6&%cXI}oJi$%tje?A&iuuKyebsGxC6{hV$ld}Cr8o0dVvnO+ zW*%!t2kCpLBacqPKF#+G-;-rMlCyP`IvGLY9$a)2)_kzGepvdny9^@tlHM znGUoaLBnZm1UPmEJR5=IcxItihKIMaRI5~+DyAPc9B|}CH7h*8#{JP}rgry;%WG~8-w%WilT*Hc|D@Ny(oHXd$2vF`pLzLAmM(35BGUz)9 zP`05V$_g2ymz0bf^nC;<51=8+G8>~$Dw#0ohX`oFqU!^ZHTY){ej9kWcgNsKAK*>ix@p6I z5%G01{BaKNZq{wTR{8*G?vR-;tK*|eh* ztz_2F3KZpm8JV>vS@Ej&s_#@AO3oWL8L>a&8RmK%Y+7%jzfo`4b+3wYYWTs3{~6D) zYD|FdJ>b{9D(=b!(_u8~uoFG4UDghnVcE?_J{IWnu;-)qxHKk6nvyI#c-11hB+Dc7 zzDq0iw!`KD5av_0{?$;D7DmH=8e^O-`cGjZ>?6ZmTq@u4#gM)s-SHXp2@!sV9{Z?B ze~4TG!rhVKNwhu1@SAhR_nj>zbHjR==c6AgyEKIN91jkuQoT@xT#xg^O?8r>uwjNfqCC~pPBdG%$s@h9Uq_U?Cx>j zBIQyq#zSh|r&Q{6^UZHRHXG}dQecpmnaE>jmiv0$kSBpwLbCjVo?4p9*oj|>tH4~| z%xWf^TG)91F!|x`!ZjGXSF-l}fPd}S{U=*F0KS>@VkSMGdV2d#$J(W?Mqt=0nO$8< zWuony8*k6fxPZFs+3Zf|>+XBcUw*~>5Hopv`rNd|vuYsTz`Q-Zq|qsO2_lY&$1)lH zGM39YD`P;$Sdc$dhn>9fM0{ds)E|k*k`syXp?E8?s)iJ)GM3v%DIib|902v>Qhk?Q}!a588{q z-fZJ{1ilw0`Yn}l8L~***y9Q`VPM51+3_JMl9*yuv7FCa6+Ev3M#lplt)og#PG4^_ zHgqAvxr$*k%Q@EC)>e$|h-TNB=cZYtFx*AL4IP1SAZJdpVF#?K!*QlgJ2N~sHqtiG z9~+EB`!DY25j<#Twn7L$Fqcl>NG_zZbLm+{!D<~QsSxWxxIL~}DHba?%QFh2{(6`V zoq=$m7)IG}4Aykci6N+Cn2i2s6nIgkQ8d(=D9+<7rV-}7D1eaUhj#HQ(P*dzsBSWf zDoJ*z7X>b?&{G^ut!Qu&(pnT%d1QsWnz)gb~c}i}@8Z&OxUJ!KOGm0f7~Y!kOn1K*Pw( z8w2w99b})IQ@dXW`N)Q!U`;Lh-dQRHH`*VG!jXe@580#O9#YVXJ%jjz1lsnl7WXN2 zNa{1ILNIE;AIme$#gS3etm}&5FN}h|GwUKkw{wq9*^7>|q<+GLiE{Fni|bkGNcq2A C^vp;A literal 0 HcmV?d00001 diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 69571a6f85c7d42c3db9e25a192d3b477b85b243..890e906ded5be6e7734499e57feca96a98588c47 100644 GIT binary patch delta 576 zcmew=-6f+K5D;o;Y|7Hi$iU2SAV7)X5ibM7r{a7Dhvz^h7%R_S&eg#Mg80u z>dDB#vyF$fPXFSH$;%isIC?faiYdfDJw92CNt=(=)zHAeVBf2WnT#u%&rP;vYGvF! z`7o0{qtxclOae@kC0R=t%_jG;icLPkDmYn|m1FW=R(3|Y$wyh`85JfQvWQLo&H9Vc zZt^#_L_TSt#ca7rnR#jX42&9+Q`zPDWq?BLxk6ytOvB~V(jMAI;v#(*&5e7;z z%1Q!Bh#MFf)!0~pJO+>uqo@=}B0D!RGY_P%j?0;M6B9@l0=7*)$7RaBA1HDVB+95W znU6b+_c)S@(~}FiHM#EtMIJ&`Eamobl?N(j&rHwDFG@`T>JkB4$iT>O1*-Edkmh1w z0P~oBSAvYzW(Jbaq4Gc`!)vg~|A8WmASp(}$yq#c9*RIFTR~z`Vs0@|NCjr_7pTU+ zKpJ5%D2f=hxPc@)$OtIl2C_va3-J1T$^u1rRJ>h-{9JwFGxIV_fNo_38_CEZ3seOP sRz^`dAjwgZnp=>OpPvm>!3|ZR3{;^5R-rI?1+N^JAxuJZ@&#U10CYxfivR!s delta 542 zcmeB@`6{g#5D;o;Y|7Hi$iU2SAV7)XEH4AYb??}ltrnS~stgPa1``$aSy{}FMLpjb z>dD9q&+#9sgd#IAWR+)>oqP~T%5Q$iD!|BSJNXk^BA*mck}WqWGcPTl zfl+;OBD*}lG*E~=Hz_wUJu?|3*3YiZD7ASv`x+);NuU&?D2Qau&P~kB14&Qjauz=U zvI7dvfY?kN3=9IClP7XZPv+nj;JykJyABd()Sj%&9mabXN&Umg-aMMzUx6aup(=K9 z`?$#g6|-li=j9irrT}$`u!2ozWOxPD`58!a0qp?^GySdvl8o9Q5C4VAgTxt`C;RYd zaEk)P#X)k629xV~;uIBtOtyl=qQu-{ppXj8WG;{rAP{Dr{EtUWP!`Gs2`K{ET9Z|I z{XJ!XJRTKq*C0PvpZLtY%o3orj9?QO8H|CdK=O>DvOtofBsI4nBR@YIsDc}+!V;)L V2dqMV@?Ks!E(4f^{p6>-ssM->VTk|$ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 2d3117995da5ad30d7c0e324d4633e6af0bb4d23..e8f5e46743db11e53707c15b8b912cd3b8344045 100644 GIT binary patch delta 41 zcmV+^0M`G#BE2GzR0D~0#<5qC3ISM?=?cXGU9+zXcmfCvwhRS+FVU#8FAfd^SZ@yZ delta 41 zcmV+^0M`G#BE2GzR0HJr#j#hB3ISJ>=?cXGT(hqWcmfC%scMW=UDgX5s$}nv?mzUYB@|P!w=~zD%GR{ z>&_w3PL!!O8->ShH&DS7q8(KWLd4r*i9z?xS<$D5@C&j5z)anzKuXOZ%mxg&7CMWN z`>q{-fRKwXo^TLaiMP^QE+?(HJ2PQ{?1aDJe!*(b6g4<1;Ov{OTNvQ(KaG$VxIU0W zD8&@e2MZPiDfW6R;~=p8{5)1N)ht$tV+`~}7ok_jTj^NN3FYCtwl-zZ;l7t}$9QIi zm~;gTsmW2?u9}pgFe2`-rZH={3H-WpAHA{x1#)9J65Hkll6gePZra}MhwtN^SU^g> z!}i%Pr2f?b7)&ow1F!v1HT+qPIwu$4^~vAIul3-dN(Gc!}C(2d`SFx`$*aC2?8 zge-&XWX{0I!&E~En&-rNf&%_0e~{&NCt)A5YO)P3=i>;g%L;retl>U5{Q3L~!kH-< zHWtBq5n*s*TQ5;_y?PoMuGqU delta 1065 zcmZuwUr1A76z98LE2q@0#_n~ZZQ_X5u&d2vFlZzpxsclof)NrI_OJ&Lia-Ku!61nq zgbx}aq+t*t)a)$wFsKY<4^Bde1xhP?s7RtA8bTp`-|jtk6MDP9^ZT9O`E$>g+!2#I z;zUcG-`~^OJ=eBSZ+y{^TLICwwa0=Ekd{F>bgE%?C$CcRC1V7hF{WmRH|_W zHtmC=l_=A|OcLv^4dhG+Qsn(^#ztW8rcB(}{fB=wAtgS5HB3qQwNv4E8L zi0!jqNWE+QFp!+b5Fh=-xb@Fm_bss&V=J4;V{>2VF6KkZVx}k0p&P#uVX7IY;O2pu z0X47vH8X9P*D+s$zZ$58!fOG VeA;-zHKSE2|9_^=27+W!_y^_}MLhrj diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index bf97a16d16575ef319de5ca6b2175cff6a874e1a..a6813afb4bc2dbde25b3294f1f679a29e03990ab 100644 GIT binary patch delta 539 zcmezHi1EWC#tE{lrj{l~W*e1!Ss|>+3Pxg^yI6lSBXJjS9%O=Z#W&aTyg}x+^8Y|^ z#WpYC+|D%FUz7_;L#gN=bQSy-dinYahNebFmS6{ftp#h9mqXTCtEk1eIbZ%0Ba(5o ziZTe-iErMjqJ`j!ZT_Wx6v36)d`DXlm8;1(`L7xOWEmEr&1$;)82L%mlxRl*6ISXlWyAlLikX8^Lu*^WJ83U7b3Xgo6o!bLsop= z4QM9FNq3m|HY<1^M>dz)mj|I!Y_nFtNn|cx$Uv^-C)^D2%?tC+GXVho_m@-v delta 539 zcmezHi1EWC#tE{lCMM>FrW=)fSs|>+3Pxg^yI6lSBXJjS9%O=Z#W&aTyg}x+^8Y|^ z#WpYC+|D%FUz7_;L#gN=bQSy-dinYahNebFmS6{ftp#h9mqXTCtEk1eIbZ%0Ba(5o ziZTe-iErMjqJ`j!ZT_Wx6v36)d`DXlm8;1(`L7xOWEmEr&1$;)82L%mlxRl*6ISXlWyAlLikX8^Lu*^WJ83U7b3Xgo6o!bLsop= z4QM9FNq3m|HY<1^M>dz)mj|I!Y_nFtNn|cx$Uv^-C)^D2%?tC+GXVfske0as diff --git a/lib/libpsystem.a b/lib/libpsystem.a index fefd4cb53364e618c5676a1e0427389260d99303..82000ede16c8580a157d621dcf3152525f8f7db6 100644 GIT binary patch delta 3459 zcmZWseQZ=k5YIeXOQDA?;2o&oMG`+K^ozF8fTa?H&C%i!K)?Xj_8M9ZlmtI8)KCaf z&aP&TnUaGdnvo zd$0OvWcAU=(h=b)X~{{c2cNAOX{=~Tw&r4YN8ama$lN_!JEILA7grST#$RGeQc{|3 zLcN-nM>-ZfMY@u=vA}bGgWZ5^i*?xL!Kr-+3})g@l!}`JFpMm`Fq-X7Y|so_6RJ*D z5Uu(Y@>u8i-BLxDN$2<`Ql1h;_J>EXmWiijD8ihb%y0rJO^PBH!=qRr{g>dqZb?H* z^IfcCs!La84_;}KY7+m;rbarZW|7I+O^2qn*^~szCTH)m6n)I&t+9#3Ys^e?Z%6jHL>&9aJ=I|Y%fqAR+EciCC#LT>f2ocAxQ?X&h}5mn`M&r#g8fij2QjkDtSZyXmWth>{ug#2BmDw^{z*2V}w9ZsOQg@!$35M;$ zjQ+bvW>g%4RIbWqODb#`Frf9{2SFWEr?GvN-&mY3EUal{Uu84tdgNdm4mQfbkTaLn zGn;WPsb|LR?5#%c>yAk8Mi>V1e4;PN?gaK4s5&n7jVFP$=OP67rt*S`obTqqnzrhy1KJCIDDX1m@ad4_7)y7Xy_%`f+do9q0gCkqA9i1)^m6 zJ44`kV|FeW7{dAd%8D3@6= zL5g65$RcldgBr#n4Y@pe6jZ2d6aYn_Sy%mY6r2EhEM_nMMm9)V7|G$I1_GL)4)lO&4q0Ks|SYKdf@PM7!hX7b>Tsfxqy3Tg6*ww zas^Oeg?U5-_tIz_A%-IfnQJ&dAq z3b}uUS!g;y5jbVIt|-RRiB8dr+v;vZt9K2Y68|9h@ztO@+91RoRk<7kj?EZC;_pb=p#J>7^`NG(zRPhpsKxn9n}Pv~fS!RE?%E7LL$vW?28W!_ z=WPu!L!g1Mqt7$&o+Fw(ztN7&bQ3M)g(?)7ofQg|^ixb7iZw=DaC>K-HM-gZ= zT(k_fq9`A#ndO9Q)dtsxnJQS%PJZr5tuje|&)^4AKWn5q`SuywN9Hh_t@%~n@x!S> Riy3b`n8E$QZ@z(h{{vOZl>h($ delta 3459 zcmZWsdu)_N5YK$HmO>9(z&lXEizGfM^hF;KuvB8OIa)jd2pGWHUPG&alHdbF4TTT| zjZj>01t}Cnib|odEi0vB!%O;r)|jI_+as|e0kjAW2#t02`*y$YyX*b6^V^x<%+Ait z-dBAzvifLb>4@;;-ZfMY@u=vA}bGgWZ5^i*?xL!Kr-+3})g@l!}`JFpMm`Fq-X7Y|so_6RJ*D z5Uu(Y@>pluZmFWnq%*CFl&3_I{oxU;W#VZWiZEv8AO>e5x&gIAiQn#BLIsgaJUS!8l{)1hf?HYI_w$=SOsMIZBcYiuI%crTIi8xHo` ztaBlTWW&5B=AF}rZ^OJGzOD0v__oeB_;%zdK31Ba4y-EgvgAj3xV%R^$Q0I9&}IcR zg>)74h^(;(g(rYqToPp@{mZK`g_JCJv#cWJPC+EA=!$OPU3ONwkXt=0=lzQ|h?Ok& z2fK2!x)nSGB6TZtzArwGU_TVsL5wUjtIG8JSFQ@PPT^u_*93{TKM4{Yp9P6y*9VE& z8*QSG)oxNpL`ObSy9qOj2|4yvi^^bC8D_NgYcr!&WwwkKu+*Igtuqyn)Sc&bf?>Nb zqyO%a85M^hm8-JZk_uY}3~2rLK~TrkX>4ERHx{Q03u_wLSJ_Ou9y!>CgN-sUX~snd#lm=x+BuN(FJv~3le68lgcL|SfDnz6Y9F9PuX)G=C1!P6iPVJ2g*3z z2l6)bfpVJrKucTf5cBwr0NLE%{PKu;;2!^dTNG^Jg}Zif$z>&CKAfz$J>M!6C+oSU zL@_0D*_qC7rLiuPGo8(>{Dvx9Lnm-ESSN6^nU-dPgB`h54>1#rDQ49t#^_@Y?EM_nMMm9)V7|G$I1_GL)4)lO&4q0Ks|SYKdf@PM7!hX7b>Tsfxqy3Tg6*ww zas^Oeg?U5-_tIz_A%-IfnQJ&dAq z3b}uUS!g;y5jbVIt|-RRiB8dr+v;vZt9K2Y68|9h@ztO@+91RoRk<7kj?EZC;_pb=p#J>7^`NG(zRPhpsKxn9n}Pv~fS!RE?%E7LL$vW?28W!_ z=WPu!L!g1Mqt7$&o+Fw(ztN7&bQ3M)g(?)7ofQg|^ixb7iZw=DaC>K-HM-gZ= zT(k_fq9`A#ndO9Q)dtsxnJQS%PJZr5tuje|&)^4AKWn5q`SuywN9Hh_t@%~n@x!S> Ri%Byc%;5guH{Za${{fs|k*NRx diff --git a/lib/mouse.ppu b/lib/mouse.ppu index 3c513204e61616e496521bbc005b517db9058774..350263d0b08d2a3a94d77120aaa07d75856ec9b3 100644 GIT binary patch delta 26 icmZ1=vOr{lA9Hibv5A2bIe515u-55cT(R+$87BaTtqN5D delta 26 icmZ1=vOr{lA9LCFqZ0!sa)_+V>ItsB61?%187BajN(*}c diff --git a/lib/strings.ppu b/lib/strings.ppu new file mode 100644 index 0000000000000000000000000000000000000000..06cf691d81ebdb391fa614c84adfb8cd52d5d33d GIT binary patch literal 4852 zcmcgwTWDNW6g~S+GR?b>yqm@*Mcg}M2{^!ab!KJ?uy(+^`z)g7BJP9+*&*mCZ@j}|%5 zHZ@(CF3&DZ=S%q`h1vHDr++TJ)O}W)prpRhx-L8DBRVDF)~Vv;j2+K27>caXnvp7L z)VfLQhqP|idW@B{3v@U;ky@MK@OurIwcBs^X01fs8)$E-ya_a2f_?Q& zg3?;FcC-#@U8i-u)?uyJXx*T7qt;FS$vQ0W#%mw7u69=9MpLI{Ai$>SSD^n>BtzF8 ziS-0XWII8zqj^Mj_2YIlGwAgVi7h6T_~TyZG(1k6z# zaR4A7){)?ugGa5)06+VJZGJx?_bpzhcaJ$J|I%mtLGDD|y2#<9C=%nCU-SXoz;joh zy?&Fwy|m=?pudr0GSGx$mm-mDZY-6)H+#s`xy<iD(xPXt(*{Y3rdB`3G^h!Yw9i(D|^|fiOOLB3q;EvkIIeJSxN32j}K?v zq`0ZMJChks#?v|lD`wvs4AC;;vEN+HK9L!nxXK0D0>>tcot>5k^F?_QrIN)N z^d!c&`7DZ+=h>)<$9VwXAX+9o9)s09(#ieNM0{*-Djgrbf~_?Kr%t2|x^Av`vY@1^ z!%{iJ2_ffDDpbtgBIYd`U3rIfO;kPy@C%~lut(*xV%6f57bQ4^J40sM_JgxkvPaND3zUc5x7RLBTxwcysgu5AkX;&iY*I<@7K?0ik@$us zd%jlXEY3npj5pe#Yv=e7+cmMj4anPxmM1*+*H^R8Wm0LIcyD8_mUX%`Tzb$ltT%R9 zF575^+={xgiVYW@zj4=2Op@)IxJ&?fkZ5^%ITvuqWehQo#1)(_5x8|C{3?*5l0J_~ z+KqHSYUU3BWW}sW^i|%qbG*QIO-!B!@-)%%s>j4zlf2P9D(>|bwYAxxt7V5_8b+Hq z3D(&rZ$p;ch>xRYZcG;YfeRH*%mW#Y9@-5kQ7#?MBP~4^ z^)67%t#tDBw%LG6^Z8;4f%jV62f%ICxNd0ozmZ%yRf4mP7WA

LsXHn$MN9`rj37 z0t@;KpaJcv54vTtT%M|+Hd)k{Kv86o4Pk~+F_lXGX1>JxJd=xrm`jas^#aYV{LZ$6 zjI7gtp4j2b>lS;46-&kWr6u`?k8ugffE$N$T2tv%F6w^KXRDsjlX&qg|CYDYIg4!B jX*Sc5H8ZV+pvmdvrsSX73<}EC4akE zE>^5But<_36(hxSVj`u(Bdp`b3SYJ9*{lRn!$WV1CBZEW1K-h$sRzNJ-#lkTa*}W@ zXzOS8k{Nz<7Nuf$7{BE8?xA*(Cft|0&qO(3!6UTQ~a}hY_lddk~W3n!kvD{;caqzBUwI%6-|+r)*4=i?`bvS0j6IhcGmr=5m_6uw7RP%-GUbR%nW^YxiJH>qEf3=~@ER&YOj~yC1 zBaWSLW0N{!3 nil do begin console.writestring('-'); @@ -130,8 +133,8 @@ begin console.writeint(i); if Drv^.Loaded then console.writestring('L'); console.writestring(') '); - console.writestring(Drv^.Driver_Name); - console.writestring(' ['); + console.writestringln(Drv^.Driver_Name); + console.writestring('['); writeBusType(Drv^.Identifier^.Bus); console.writestring(' - ID:'); console.writeHex(Drv^.Identifier^.id0); @@ -141,6 +144,8 @@ begin console.writeHex(Drv^.Identifier^.id2); console.writestring('-'); console.writeHex(Drv^.Identifier^.id3); + console.writestring('-'); + console.writeHex(Drv^.Identifier^.id4); ex:= Drv^.Identifier^.ex; while ex <> nil do begin console.writestring('-'); @@ -165,8 +170,8 @@ begin while Dv <> nil do begin console.writeint(i); console.writestring(') '); - console.writestring(Dv^.Device_Name); - console.writestring(' ['); + console.writestringln(Dv^.Device_Name); + console.writestring('['); writeBusType(Dv^.Identifier^.Bus); console.writestring(' - ID:'); console.writeHex(Dv^.Identifier^.id0); @@ -176,6 +181,8 @@ begin console.writeHex(Dv^.Identifier^.id2); console.writestring('-'); console.writeHex(Dv^.Identifier^.id3); + console.writestring('-'); + console.writeHex(Dv^.Identifier^.id4); ex:= Dv^.Identifier^.ex; while ex <> nil do begin console.writestring('-'); @@ -212,6 +219,7 @@ begin New_DevID^.id1:= DeviceID^.id1; New_DevID^.id2:= DeviceID^.id2; New_DevID^.id3:= DeviceID^.id3; + New_DevID^.id4:= DeviceID^.id4; root_ex:= nil; if DeviceID^.ex <> nil then begin root_ex:= PDevEx(kalloc(sizeof(TDevEx))); @@ -243,6 +251,7 @@ begin identifiers_match:= identifiers_match and ((i1^.id1 = i2^.id1) OR (i1^.id1 = $FFFFFFFF) OR (i2^.id1 = $FFFFFFFF)); identifiers_match:= identifiers_match and ((i1^.id2 = i2^.id2) OR (i1^.id2 = $FFFFFFFF) OR (i2^.id2 = $FFFFFFFF)); identifiers_match:= identifiers_match and ((i1^.id3 = i2^.id3) OR (i1^.id3 = $FFFFFFFF) OR (i2^.id3 = $FFFFFFFF)); + identifiers_match:= identifiers_match and ((i1^.id4 = i2^.id4) OR (i1^.id4 = $FFFFFFFF) OR (i2^.id4 = $FFFFFFFF)); ll1:= i1^.ex; ll2:= i2^.ex; while true do begin diff --git a/src/kernel.pas b/src/kernel.pas index 8d1000c9..2c85336b 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -34,7 +34,8 @@ uses strings, AHCI, USB, - testdriver; + testdriver, + E1000; procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; @@ -128,7 +129,7 @@ begin pci.init(); console.writestringln('DRIVERS: INIT END.'); - console.writestring('AHCI TEST'); + {console.writestring('AHCI TEST'); console.writestringln('A'); atmp:= puint32(kalloc(sizeof(1024*128))); console.writestringln('B'); @@ -141,7 +142,7 @@ begin AHCI.read(0, $5, $1, 32, atmp); console.writestringln('F'); console.writeint(atmp^); - console.writestringln('G'); + console.writestringln('G');} console.writestringln(''); console.setdefaultattribute(console.combinecolors(Green, Black));