From bdc41230f972039daedda353e5195babc94cafe2 Mon Sep 17 00:00:00 2001 From: Arthur Beck <averse.abfun@gmail.com> Date: Sat, 25 Jan 2025 19:37:05 -0600 Subject: [PATCH] Changed gitignore, changed color struct to work better cross-arch --- .gitignore | 8 ++++---- kernel/kernel.flat | Bin 33188 -> 0 bytes kernel/src/include/arch/x86_asmp/egatext.rs | 15 +++++++++------ kernel/src/include/traits.rs | 9 ++++++--- kernel/src/internal/arch/x86_asmp/entry.rs | 3 +-- 5 files changed, 20 insertions(+), 15 deletions(-) delete mode 100755 kernel/kernel.flat diff --git a/.gitignore b/.gitignore index 1d1b46b..4ab24a8 100644 --- a/.gitignore +++ b/.gitignore @@ -22,12 +22,12 @@ Cargo.lock # Generated grub files kernel/grub/ -aphrodite-grub.iso -aphrodite.iso +kernel/aphrodite-grub.iso +kernel/aphrodite.iso # Generated files -kernel.flat +kernel/kernel.flat config.aphro.tmp # Per-developer files -config.aphro \ No newline at end of file +kernel/config.aphro \ No newline at end of file diff --git a/kernel/kernel.flat b/kernel/kernel.flat deleted file mode 100755 index 66281f39849d70e30e0406aca09c3c92493dd653..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33188 zcmeHwdw5jUx%ZxAfFVwqh*8rv*1?W8Q3$i=J{UD%E?^@B2v?ObSCW{UGkXYl!Qf76 zHoJ3<r}lU_{XE+5oYU6Ro_<29h?i3nxdg0Q(TY^tO0Ab22NASFxX66JckkJg9Wp~q z`aRG059`UEz4lta^}cJp>s{}<?6r38udJ!k>2!?ha+q9(p5l`j#)12zVI{`Fn3)Mo zG4o62zvXx)UroU<&A`&7ryzt=`sT}r!f(BrVd$EmiGRL~VV<9^T$^(kW*4rBsrcFt zxL^g+SAZs6MugKv^yylNc-%%fIsJ&x3jr4-a6tkWByd3j7bI{&0v9B3K>`;fa6tkW zByd3j7bI{&0;m6!OdkJ3GMRWgncR$PI<7Zy%}G69@lG;X*T(sp&HlDF&fM4<ZZkKB zTGwz5=EkUb5ruKSHD+Hh7zstA6jnF#kz3y$Qlo|vM;q@BncKqVP;0QUb&X7B+6`t; zG!mHE*vf?>t-j`&zDS^9<~on7-WP3YpBZZ9BI`>dQ8lIC7i|ofTS6^uk@a%cA}v0y zv8`35#k$hS#<r+Zf?#NEV<4m=Y*rN!XlrTlwFb@2jjc*-8M2bfVTwbGuU$@8W@cUU zT7#i=p`ba?*4!4Mvc*~(TiTmLEy!aixTtzgmY7)Uovm#ht!gZZlcb|^3P*e`A%83! z4uPl~32By@?Y1SUbR=w9oHxfJ5%7{Tl#*#jTdX-~ZjW*1_BL69=C&9&qb)qc-xg~P zMz1&DykLISyz2VeMU_hyS1zirT(oGxqWT5%>*vj1I=g0GMSV@>{OY>7RGMgrn~prT za*eGqR8Hl(M)=m4o7>vj&AzBPFlOdvlI^+tm(Q!KuUW95HftW{K);&Xe8H47)aq?O z7W|=5t2r7A1fX`|Sab7wWDdY!l}3UcjX|zqmRTFr5Ncf0zzq*;Z{z~!z*71=9OrLu zpJkpCTGQCtO2U9}N!DDOIU0x{H>IVeb)l#%r^@Qt=DN^2&aA0VM00XOO4Sx=k*W>U zwv=+#`dXpVKF&NV;A?J%f~{T@ipH9`S+ioT9T8u9ami{k6x`QpUR@c9tTwOpHOE3r zxUdILZ4o>*2J2((^;}zsp6kJDaa&7hejAh;PH9_#=2$Q^GsZPGqb<#Al@pm)Kxv|= z<+fHeWO+J7n@pw~rA8>XQ-u~6@ilT3cw5!%y4f{%m~WGH3-^l3IZLW>pEtj10dC7? zFPeXcxulU=4+)UkzoMP9%v?i=Obe->*-wJSvjRlOEVKC@^K|^=P0zc}d|z>Ko^_qo zYGti9tKI6bI;}3N+v>4;Su4x3HrCEMSSRaZ-K>Z8+N?I#X0zFC4x7{Fvbk*@o7Zl& zvv!-^Zg<$7c9-34_t?D-tAlme9CnAp;dHnhZimO=by}UQ)8@209Zsjy<#anePOr=A zVqG?u-Q{pOT`rf~<#Bo4RyXUmx$SO;+v#?>-ENQD>#=%RkIiHEI6O{|%j5QVJYFxd z=mmQ(NPCgYiy*AO{(p6Ue=nGGUYC20)05LMo!I~tg{kKnVv(7pkyw<Awa?_*+L{9m zzQ)$*%vNf$&Fg1SKj3oANHv-nu+*`2GuE`mW;QqaXHqh{lUkCW0wcc2`k8^YNJtKi za*>(sK8|`8XexPH+U4dOY+TzI44M7w&3A_)ZK_&Ee64Fj<}j>#w3&JgXlknEDlzD` zQtGMuX72TdRCx+gcir8K7~Q=F-8YSTeNSq6{bjfVwTmQz6ylot<S((x%`lX9U<rPf z2p=q7wv>N=kUzXmMy=Yo=jY#H7~wHmZNEYAzvVJ@o3SD;JVxu`@qhT^YsqBOH&zOt zOE&-^evd-Me1Ws*<DA7J920N1=%pP9ZOU7jdV2V43=@8KfZ39FM63X==Qz<QSS5TW zgTF9=0>Z_Ih-Lg<P&p|_d;}`O$rNh7h6pb+HSj0%O%H6t5`3;mDT(|x^6+~M{S_9h z_JbOqw?CN_DlFx3{_BdbF3w-A_-f<)HE+tXHF19R>#}cdoF_RUMTJmfF^Uu6D-f&n zxEaJ6OL>!NrJT2NWLn9p@R@X@oYAI&mD2aAEH#$8CgV!!3iwfydo2aRDe0#d0bgUW zKq}H21ytKKWu-JYMF|({ECy+#1~dmCK4~yL_)BC*?0RkoWTrcqJjCB?F&In_1fb3F z`35;Jvr(JETSQ%WahWu=h+&okWzm_s+n@#mKY@gh3j?3bN7js{E+2&+%ax^W;0GbZ zDo_*W8@l(Ix)uWM?K3^-!kvBn#4!YmOO5dj`NT?iuItNWl86a>4}8MI-=|;kAqoZU zfr%guPfgRLmC~aq4g7PPE?y};L?u&dw$4%@ZO$XnkSsb7k<yKUJ}Rl4(E=r-I}k8n zMBY+`wrL7oLpqr*^cCM!3mw}q@Gp4lLn+Lr2OdKyP1~!k;0JR|-ThR`DuYs^M%>E8 zrTOB90&!L0rmCWz3d<$38rGn~dPoV7i87%F;$(z}%=Ej%Lcg1f@w=(Ua!F6mbolmk z&cH8eaD_~gv<A#mg^F`GPU1ft^uB8P-WC!Pgcui1(7GnWO6hKhAuiqp&1-5|DK+Cs zO(kAQ5D0OZ4EZxbZeA(Plb@!&fhXrm>3VH~r4(piDZL3@WcSTxUzdu8q9Khk#?*BN z`HXL)qBTuif$CWP`A_1aKnX8dDYYUYg^A0IN=p{%EalP>=$71)rL7b%K1ygPdO4oN zW%+5OLE1%Hc#P`wK^eIvMfWlpX;6^TV`-F6M(rfjr7NYQq%4=GK*SWJz@|(F9V8I6 z=(hlEsxH`5mBWPjYnZOy*n~Y57K^nhX9WqitCzcyKbd2C@MXN&Gi~qvRo?N>Oxu6o z`I5D#&S;sJcsFsD8j0y?-KK>(JqvTfg03ldrF4*VQyd^3SFDu&Syss3=fawVpM5iT zi}?t9{Cdt(&fO5N(vj-0NiV9GD+Z~;cpc;g&P|h=%*&Qazd^qFUHOo9A!F)(3T>e} z@w&)a3KIW=lF8_lNqhuc_!|K#g@O*nNgLE~@9^-j8eW0$#95_1bWJ>)Ovd@m&?~v| z>-uNw!IR;A`Aq+81GF7pBNKo4$3RF|z<|o?$CDzSKfw-4aF{BN^p!t4YJx#Z@LW1U zF=dSGQPwP3fsi((6Ff0$f-RI_MLNOWQM2?KWvMuwVDvK75{DBIG@7y*HER*(7~n00 z87LBN(F-|>Fdj;xY}?HAD=zwdGFiJ+`V!VB{yhT)ov+Z3<O6|@^I`CSP)9BDAZ3VZ z9=#J%vis&iU27#1+I4p?=i&!-F~5?hb)(YiBwF8~!pSwddej6Blwbg?Ql%a>!DdRZ zBb}fSkL*77^?~mq>qJAk|6*CR#gON8h__H9({g|l--NI;MINH6-p1i~U=wiJYA4S3 zB6h%cUdU?%x$(S^Lj?IIewNU{=y1MZv`A=4%xxQY{?oTmg7q-qlTrr!8S0S4xzK{9 z$t$H_Q2$~Qm+7VdP2s;-h;a6Jl`w!I!aq{nG6VEuqVywb+vHhKeHg{wCC3_JekTei zrMnT2+ii%Ai>rxM&Pr)MLG%`p5o`70TqA!<$4%*eJvOC#Uo4MJ3P%$YyZ3P{+uPl1 zsyu3{7!-~Pr<#~1o%E|q7-q#v*vfngk|u&qs+T$SH`7I;LDZp0iM@-L3a_f={I4sp z<3Tb&t5?Kpb;8kAx9wc4#>Ekb!HN;pU=VL9INp~ZyXbhIIcB<T;1y(8G)S*w<dT>K z4-F7++eu=qRZ}mZ)M!uCuHv<N;gFCY|Hbt8QNjE_L0a)`E$`v?x$lwx;rsBrB;IV% zFR5Lc<SfO@B<Aa6V2f7O-*$&gcjMtM)QoUICV$7q-AB<`i*pK|$d8piVUC4N+jab4 z(DcBQ0HHtF8a#f?wEbn%)8D_9gH*#9;7wrn4QwV74$G#mzp#;fZwn`TKi2pBvGaXX z&xf6_T6+%Zmvx@WGi^T$5~ex*Jr%~B`1)k$X_N3q#~TSZCDkcOUsRIrN+<nm=T5hr z_PA;LJEl2*?zz1zXF-`sc&+12zVB?j!l?fZ@hmwT|K|vDBpNM3VrgwtPNJ+VFM1KW zHKP^m^oe}a(_NKHo+~KNvneTmESEoQL?LKIqvtIajMwI%juX;SR0O}vxN#RrCoL@g zut%+iy{KALVlAqnMl9~Uk72mwVx&l%V<uAKI%Ayw5rp5Qhv44=rLDTIUQ_o$P^(0e z+T-N~`q=C^-$uHrOJSg48-xM$cC}FGdbFRe-T@IQKr}8sCR1COj1(nnjr^{Pfqz0w zoNt$vdx*ddXcoD9bh<c{ORyq`dI3r@*U&U+1uRB^@D`E({3pVkBD8igrpWMs^chS8 z`hNXZUBZLxIpSiIOm`ua#v}7HcJ)%qt-9FdVimG8L(cfZ<XR;=MxjsG%kT2YqLN#^ zQFu+2)uZ1)gW-b~1A`wuLvlvD)9=w^+%b7oQ(ir6@l^io<c<;ymru}Oqrfpg@v-S? zlp!q4Hc+Fbf-KYvI*1ZHcE<VIls(UbJ--PpQf68(#PmC03U>MQW2B!<+%Fm8eo4ob z!?+8FnhI(cN@p%3MKCKo+fzIX!1K2-F-wI5WC*&CbCWjdW*?cK_+pjZsN{mzZ|wgM zG&YE{KwN3`?u=d*fAF`cM7c+wipmS~^9;#E2gF+FjpRo!k3aa#uxJcG&L$Jf#Jdfq zC(q{2GHq`v==&ts^rU3kj_$SZkioQ_vlLC<6Bf7|n9jQ|Ww>H6D=arXc`)~OOF{Tq z48ctD5KK6T8=j`fPd$T2_-QGn9-6xrtF?6mqg%1kV0wD4K~rhM-tdWoVbk2caQD9Z zr<i`&XWG6mUNdh-PYtyFK4a5_72)6HG2!ms4F&wk2^|~Q*TW}{E8|A}yu?Qspy^Fd zSLvaH`C(y>9<#z6j87*@eVDy1=Wo<;tHh2XvD%E51D%tvp@tK?8vS=#(YKNkkTpgw zlkNJXRRNL)#zTLTH89SXr>bfqs>+PPEF?p-Ph+~<jPsp<#J5@LR~?3|g{4<IEi<fw zUKPnZnDL9vnCzf6Q1cL=keCqbB((K>4DyZQ9GVOnu5Y&Fb2pf_S5oIxKsLTfC-kFn zqD0bP(Z(>eMZ$va-dIVcFo+iS3Us?1<gP>NwY^n|zad&rMr^KLXgBa?CP5RqLXau~ zbG<N8SZWaF>lKZ>V<(heI3WB^&8HptjEk3(q%b#H1%@>FmzKao3VaTF!Z5T|MSlmL zRQDz)Qi&fxOOW!0A~ikQbBLm8%i%N0q|#kcum9FiclaX!;yh)HIwN7A$xxfzMmrUg z+pPGNdSL8GHn&3a^xgZ!76X?jOcAhX&}vBBF7N~renAQ1;zVjBMhhgYNB?{!WQ*QS zs!}Mx?CC`s+f9Yo3{(RU*?c{umbet6HI@rJQQ`lCC^DD<fvc=Bi!o5K4q1<ZOHt!> zn7n={Op!S$2GtN3{U3w9Tsy*CV|?3>Nqta50^5|cO1Mi;GY6O~;Vz?e1RNA)Dw1Wm zd}HqqKo*KZUB6W{Y&@C&9fpZ4YRbDqcohRYqi~dc{TT{7aSYo08rskcK_-0Sgz4#C zbYC~8y07U|Oi#b4ea?^HcV^?+<e@Jn2ww`Xc07~Fg-zv82G&k%3a%3N!mJ%9>gcr> zr+V$Oe7^sz(3j9tI26mlpUjKqb?&qF)RbMkK<+HRo8l%z;}vC7QNbmrpzOo@N@+UD zF*TrAjNVjLm!Dx#4TBQ{x}R`=xk1MWebV7C)G=Y<kZx=MP@G*L?B+kvy}&RRGfmg6 zFjf4Hdga_^v^9w92|WZhJ$8}M-><h&#U=8E{X)O)Md*QaCnjvV-Nz^DxO>E<`jU^= za>tRxVCwz}fUq$-=`U#iE4J!xAmUtyup5QQ7v~p=YpIbNh0m6e4&lm|T7cxqxR|>C zgwzOg(1q2Af@R62=ynl>F3^r%8Z?$JlTOPC%n7&HD$~PIbcouO3N`Bbxk=PL7A8z8 z$t5y5i>!OH1!>LiugWK_+*DPFg_KEqstR?K$)%J@GBU`4n$0~ZGV(%%V?Pt7)0&}d zYors1SfP~DEc8=lsr+y+gb6bzmnfy+CT-OXG(dT=z6RJ5#1}|2NKhE)ZpFe^4dP&& zgsS{a$W2dGA;x(ggr&yxYBl$wCo6f0Kb0T3I6ga<KXj&KukdEcZvIPs)TDb!Dwai{ zG%?{w-;o^QQ~sk|-Cq8KGrHZVTD|b1qz6XOTXdgdAb(0ajw0mhElo%3(XH-6_>Nu( z#k=QOx?z#jXqt0?3bye*T8km07%zB){lt5KD;7?7zr$T2)_f~p*n8r&K50_lz{JUY z8~-A&)4#&+)F<BM_v9yj57S_T;u}i-0JYM`^_%649NCd%lFYO{eV-Vn?bdzK_=OI8 zqJ=;89m$6nbVr3(`44hUU27nMz7KNP<K3TdS9QP6eM_9hzo-{ZpLnA$F{$s<iId;m z_>s)-EWi6q;_YXMrtsOcm->zvroE~=(D*7*?HkC~?Hza@ChHuN98o5C`AQY$*Fx#? z`CSH~Z;P&LU#t+>Mc=_qp~|E<s>(zT+e>y@sTYG<FU3S@c41j=jM`3-X}bg^yqy11 zhgS5a+KTdoH}`)sXaC1Sfkm91Pf`%?DiYV5D{tj40}uVu<T7H9lt*?@<AJ>(Oo0V~ zvgQ)gTH(#19%ySmDyhJ7;!o`H`SA)T!w)98%Sdr)zG6w%61ghS`)eXsbXcx;SWG|Y z<#*|2V&47SrHe~mVtd(lI=#K7f7_`$IQy2^XSeNSdxs`ZwO}BZ5w^yv7WR7L3R^># zx?hLEAcJn+Amqe(*;>!h3%3}AIT(^3MeWJfTGy1bT$rs`>xBkkwlV(jLBvV3POBPj z5ZPy`%-7$g=kAPe&<S4C_HT8)vpyyq<PTjL-;hHAtvddLn>tUwyY{;zy!eJ(3arWz z^p?I4CSsg>lWw|2oNnnneKcZ=Z_rchs$7yGe`r$Qp{WG=>rImrlXq@BO}t`-2}|Ot zzC#lyOTx~?MFi|SWSqQPNQmfCUM%@ccS=BR-`0wsKU|=S!9lCy_gbbSU9p%iHt0pS zSZxrFP3|*wy#k>;q2oHl`;9Odas9REhz)$mz@RPZg(ZwosjptZU5vTFmr%=%r{wG$ zNn8wR8KjSgg1#m*KpGS)QPSP3dF1lFyVvG*mgV%`H<8_!(8o>*`>`Hgx!+VNp)JoB zB(Y78;R;&Qi^4H!8$?~Qd+jY4qI}%MNM#sVq)gWp!fvs;NW9;ibXb-`u!dUUKyq2i zZhd<ThJOW#DHtm*S(NNhrXMsuzhftYC`AHBSQwD4rF0vpqIXKXo1T4}FyMrM4B}ie z`NpI*xe$~Mx9ub|ND@Z_yMz{orn0?!*?z|K!(Op&zaC0hE-NB`xKNe%F02Q}c?o(W z{3ZK39R~49>AgWkuQnd;L`4X1sw6go#Ey*=^s3O`cSJAjwU~N#b-rvBUhI5vSsCWc zyG+|(H_dsir>^X5ygJFBGzrH#evjTe?kJO|%q9KthiT@E5-)Aak^T*gHtza9D5e|e zxjesiKA!Gz@GKe0lRvy#Eh4@3f?PRR-FqS9bxnDzuu4-SbQ~6z9TgV*jbAg!2n)^# z?mg9d9lr(|xxg6a*W@$eTmyA|BK;c0a`^>Pod0(k{=uRNMV8KcEq7o6_<i&kP{T4X zC<mjth%H2tV((tlgR>Av)1_Jj>e2sI2=`jd=rjsTj+h>}0+B*9meLAlQpKCL*XX~? zpEX2{OQi&&Rt)?vh%w%ji_VHomb@vv0jdSuRaoD6S1htDk*FIMPV>9;P!}*S5I&7f zfSM#$H}+8%5T8GY1Xkg8izU8TfBn4{Ye%WrJnIa*`xyq&B?FTO#Obrx-OtHSiOGp+ zzdiBBiJhHru?c*?A@MTAWzn4~IZMRBaj8^C+0vbY9|bm(me!##)8pJ_I&_T{!m;aM z0bx?H++J+@mlq8$3SXGIzXk;bC4J|q2`0V|Mbe#IgmH3ht@IoosJ}OL4M0gjsSe_( zOI!<S6hdGXdnzn<=pg0Wb+J5(g#ec)XuK%<ykBt5C0_uW-|1nv!X|1@W?TgbDo_^< zVwJiR{g^UgRg*!Nd3n5ICRtzy7Fw|GA$jE-P#=ae=J)89P_rFIz|?gq^0q}s7=G7k zS*wNpQsN{!PgTX}HICev(V!(V|0`B%W+zu5_IiwuVwWx=&_d~UWpM}Vd_U|ZvZ<L7 z@_<1do2+Kv@xIL&J;rZwxi=^NhUy*!*P$-xmC1?)nOiGi4S-p$_PzP2ZDq=ck^U0^ zL4+hM3)?Gv!GAKzG)Icxoy&i8rsOSXp}~99#4GA)%<0;<julRp^d0ZZ<tCOV-sgJ_ zUMY$>Opg8{W6p^_(h2V4gs$9sG};df%dGz*@d8x9Xxjd~sq6r3Try{y4o!j!^T}M! z%O~}w?!O^(@#Q-2=O+FTyqk)?vGL?lc(~xklN4v_?!j;8>3=l+1KEp#UHD1ix4<jo z55dD-yYb{FxW`<bryt)ici>U@Q#hGG**9L;s@o7A_y>e{{`FAj=^u07PTbwOv%T}Q zHR4RP_x!H2|H{s!F=FWa%h}G8M`EiwPxs!pBECGw`+0O;Cz5X{NzCu;Gj*QK>6k-t zH^k@Wc#lPAbe844aK9tIJQqMS0q?)=X5k>pZ5a3sDJ)F^u_$zxf$dF9PY-Iah&6F* zP9kS(F4ide{(@za0?Xu=Wbka@0WPO?BxO*l44WLnE2=Ji3gy_M>s+sgd@iL1{+1YH zj#m}vH&srEt&NKzn#4Zr$1mCq`nK)8{Lx%-zPWZ0t%XrvB2OP^r4I{bP`J6v(u-s? zufP<CBGhH+p%t{Q-Ypn*|2v{-y`VOU7h~v`<Yhh#^S>^qSp&9Bx!N?b2%2*49ws$c zz(cV-=RzCHRhIpPQ!uxBEcx}*B8*U_F8nE(TeM87IYoUWavi%Sz09&qa-~D_wfVu= z?UF6Jo=W|m$_Y9_;&(Zet{0;_?V@3^(*6?%NWQ9Qe@L&<VH?B-gXj_4_42A|p<>dp zP@0}$ae6d&dXrqp59XPESjnj4;B=S9AFfb|-lPz{9re2$3;P((Sh2E?{S+9}Vxcss zEdCWRFhWIU2p1t{28IpdK_3wp<wa1uPZ8JUcPC9<?*IZC9;Nefi0uW!(W_xVCs7B| z_u&NglkVfDuFIepA}s<*G+g)=cu%L5V13ddq3)C+g{%gb0~oKSHQ_R`nnu_~o2uzO zxkaod3u}heHo!zUu;|>3-mBT-5k5|K7?T|asrdv3L@NL?B0u!z;bTOXCp+{>w^Xaf z6(FuqtS&%x8y6-Wdy;i~^q@z>Y<|z7N-Wx<V>ETmMG2Ip<OYNA8kOft5Z3p-mn*!5 zsZ5faD^h8WQfa=SDa}!BX=1m=D{1m?fRY(&lQAZ_1Pf6HzJCxSdgRT(ZI`<a{q<Pg zh=Lr1YLr)QliYrYX1`2~7Ox>1xsGL%ULn^i)C8;RLklnsFyk=CH7Lwn;UmG+U#-6m zRYSv3L5Fn~<RM@1#JBZgNH4V03U^#g9D|=0WwxMzK$<fw%B=V_J-{Do^QU3Q#o1;o zMlW5Iyh~lt{z#bFQ?1`qJ%RS1U;z%<x6svek+cV6R}@1IFP4jiT3;$XsRVCYpzpjN ztz&P@wncZmPZzrm(v?^Izb4K##~*H?R-A+JJv}tjgKkl>J!L#BI><Dw=%~IT@RnzO z!XE5DiQIPL&-{nE@iHrhBfGs{MkjB&sOMIu^5(?nI@%0WRPs3{D1SW@cU&pFdHls( zuE={LT7-o)!Nm9L`Q7@&r<w=viO4bC+d@C)<kT>AC%k8)hD~`rQ>x}9l$F$hwU8w> zV!4MdLNynnO6V2-Np7lXd(n-i?R7UW)t)!FBPDML2jz?pyo@w5Uf)@!W4PS%#EG2) z2?U}B$r*4_H~lFlsdPWr-GczyWc34F-^O(pu4%ZQ!gVb!HM}Dg{x0rUX~OSKg{!#l z;kg`_4y~~WcQt$?{6trMrXI|$d42@`dAMkx_)SeXy_C_WBcnZ66aR0icn{Lyg=d=n zf5U$@uB8aa>xpzYy<Ma5c7$uo{p(ctg9x9d!T$_??K7=}+@y*B@|@?hspl5xIYgf3 zyBvP3NHQA`K2;O`9{hwOhta!SNAs|ROHNyNN01IH=5kt$cNq1V>P-9WIOn-C^?Wrd zpZF8+`M74Ko=Mg&Tx;=c#{Ci82?H_6?g>2Sr2K0B9=nQReo@RYU*hUQpAbX*D@fqR z{Uo08Du!{OZ^u#rGZlBhhq;=@);mLyS>~FW3N!01WlLS=;+cVlP~cANc$K#zHaD+r znb96;YYGLhQ4tSjr`O5a{8lTrkYabL$7T=u+_bGVh^?u9Ptf5C`U5_v(^G;~UhHlR znAe6PQQGRxmU>*J))}cilIG%&-|6r<tsc7>+g_bBtn3VyMWWJ3ThPb(O6#K>Hd>}1 zOKW_sZLOsak2f5~e%P?f;jp^hAwTQ(2Cy5}77B*~URSWxGv*ZDF{fayV^6}4J&A4X zN$g`!;v9Pt_n4E|#x60NW9(eUUX}K-bFq)T_>QsHzGLhebBrTnV{a~wu?yKb_S$!j zU1H9$w-@Kw+lzDT_2L|R6LY%8to+Wg*S>S?weK3ckX>UhzH1yA8=;oyT>`8p;PBgU z^dV?-`aCvtRUVhy8M0f$Hf!k!6&p3hh?0z&VnjWTnqsIL15s{-vW=RY9eb(R5z-!= z%h;uD8=*O)a<L6b53(40E^TAarG12{vbuv-ug8ZYHvzvDr*24n?0#3k<8`|neh1XZ zJybGe(?0Z+8ncW_!8WpqjGo3bq$ppRk9Qn-^Nz5Qqvy>#LT|r9nh}lbE2J4w!K0?J zTgP6*cI${n^%eMxUDkHn*z43jQprcpn|B=L8HesT#-XE5%}^1oiG>LWHPp+e6YCp- zk)bE1l*742<+rqc<$MPnpR$L;jm`k34iU%Ai@As=9BFH*Z|5ScyTQgf!*0LV?Fid^ zUc22|IU;EbXK#(QIBoTonmP-ek+sBZRtu3WEe*GDrKJ@(@VZ70#9=G>9;4&1mg+i- z9RM(~JA7_iDCqD8aLmpY&@yp3WV#ADWU#bUKA>1ynm!XLQ}jhMa~<Llwgp`-Z`d8Q z1;Zhq)2A(nl6T9ZDofp0q~@`QS)0peW!>Qb4grS#PHF+W(-{l~Lm?P<o7b(O=JmBV zU~1RMg&cIClXb@IHXN3&k9q3lV{4FJ2nQB}p|CaN3pi{+zw11y-LmA*N$(H)Y>uGA ziKCKUH%?V%PERMbJ?cqqXM0<Oi#jpg^+%BdcgXF=@kx)(7xcLN0h@*b4sgm9m@Y<X zDN!mdRY{>j*Z4>$OG~SUj`q&O*=TK5Xp*PSqT(#>I<BHI+TQG2PpZUPJ0g%$J<b%8 z-g<l}l-268d3`?C8xCl)<YLdwQR>WVX(gSh)v_I-#Y6h!a)(`3pFI%pg@R!ltChOL zEi(wNZ&hfiHHZVk$~oF|^X^r$4)sRPonbZ<utACeYdGu-*flxVD8sPoaG@e_RM{O3 zQd6TEaRtJx-{lQL9ax{+rOn+aM7${?&8?J|kT1x(!XBS9>~-4x&aa*qmR0EZTiazy zVK}eL&W3^^t2N;De056RXc!9{%^-vf+1y^YGZ3(O1NLyh>(px6P`Og#@N$YcWd1f5 z2Eb;eBg1}&lMSl;W3A1NcZQnRr){CPola=qi38xQNA}h$=a->aSl~exytWV<bh@lo zjE7y$u+~_mjHzM~?XZPT#d>A5iYe74W0}n^y1gzsxa<jI$;KHTQsVPuTFHLBVppx6 zpeyLMu?{rQ5SE?PLJ!&f7S3DMM#t`PYL>ON`-1iKVSzOfUo%P?^4LSH&*pN3f>0ux zR*5`H8`79%v^^N-o6-6dQ#{NfE0L=9)02;D1AJb}M-A8+z*h|9-T+6gt*i~*jvEKQ zony<jO=(K)kx;mC9m)`d*1AF-r^9de+MI##`9<J{1n6TGNa%J31Ad1qU=OlkmUTNa zC1ly!wkTJtq;bleNkO~;S1=q7V!Vs)!KYPqr%SdBO8-YSe;z6M0)bddY3brvi`-L2 zV=bVKqw7A81GVZ11mI2g6eBdkDfbS}MmmUZbI1?%IMIyiMF4#^pg!zFcY;dxhdus) z+Yvxrdr;7G%lXv^d4g^Aa%*u%P>GE#AyD?)yjHg><nu!Hd@i?E4j#oqW>lYf_*@7+ z`Y_TAe-$Niw4zr4Z}f(KHW-90_4uslT(zZA+T?kA`=M?nH9~P={nin}0e^HT;ZP`T zKBy&)ee@7?2QhTO7}RG)W!i@2j$}eiJ!?Xo+9HAhU)bjMc|v|i2;VPAo177~t}$M$ zV!ZH;k0@ueYaZ%x9KPPazMjs)LsCJ1$Y~8YgI?IhKxkMk4Krs>r>we}Oj%7^M<_Bk zv`((FY_`nm5BpiWoeksr39!X}ZH=g9mIspA`7CK~ADxdsY_&POA-g~1x3N}#T2`nj zmq#vwqIL4n)E{eX#>YpZrKM=ZvxB~N*rSn(CqtLf=z?0}u+EzG2Ed99vcV8qq-&&k z37``onMGaRO!7lC@s4nfzUIoiXar4qIfwWRlO~1ErchhxE>xNmy`ayIVg~K3$M4j# zb=ze=mYCCz6ftK|AvDa;$mXE5RA#=IK7KGP2MTxaa)$1TDII~|ilL>$8Sq%`E_A); z)}3M_T=<MmpaI>8a<6aoHLfK)5Oz4wg<)Xt@ZrN7!$(R=%@3P>xVSc&i69}S9$<#X z62N;Chj(O00GI~~j#njI)GJR~V)#-DQev#{_V|6ypx+(vL9x%xu-w4Z%4b=5hO(H8 z!~z^^4L63GgY_MaTmxkx6o9P5nE0>`hj*AQ|9_)R=L}n6)G>s1vf)73=?n!jwi2hT ziYYZzI{KjB8N%eoMqfh-L(FP<M;HhfzT$+h&9HXmYcp~ufZiRQ7UaY_!eK`cA3E_2 z8=s}kz|c^^=8}h2R8Npuy(}^tZmo?`lA0YR1>*%4+7hJlsM$dqWZn1>Q+s1`C{j=I z$JcbCcIb<&JMHU{HXOu<S6udBFu-Eq?oH1|NU7S_56wQ$N2o;}D%!&yk3Sg3`jZ!Z zcv_T1sHJ^$LMR)$N#w}qw-T8k1RQdQhelBffGL&VyG26y*iKvNSAE}x)fDA*9VB9v zKYJyA(#dw~tzhWH+{GVcp>G(qVxkH0jfV$|<)m??!{WiX(qXA_T<NeJHJ)@fEXRy1 z9hR8Jl@3dK<4T7mx^bl&XFbqz*tqzOv;JuDcRc*;<E%egDjpZVan_%Gob_iPXZ_j7 zTMy%GM~-pI(=kqYI>sqa$2jHb9H(4d<J4={IQ7~!PI<b<Y3E(zl&34ReHrz=RAzCG znk=(+j+%@eZ@SF2Fgm}?wJ>_R%&lS6bhdHkGfVF<>e~;z4$f$HM^EU<Y|p+z!pseK z)P#0=`Ie!F7&W0|yjgWpZLDeIO52<9Zp9ys(sJUkf!(4y4D7ripT`rTX`93D#`~1Y zQnZN-Xm$Y&JDqqR;=xGTWAz0CA%8Zoy=u-pz{6ND4tOzU4g|enmzxHSDas=jMs3yw zOX_Nu)YaEjF1oe8cERF#b@LWrWZr<4;sCyt7zzjdG_`bVS^hm#U=Zo^s~G1prO^hA zn>n9<*p9mMKhR!2y3~Dqv@y@3NrEkYvZMWaDvsjuMF)BBq!K%{Cvc7icO(2a0#~4d zQgQUirToNq5naIH++5lbFLJcUQswJ|ALqK|y^s_~PQ|^Q@)Nxlx`3O4yXsWj*We*P z;b?#BJ;2dkPt~coat-bWi2MO?w4YLSDlV$Q(Z1NHfTO*!s#9@4)!=BK?7P5SrGju* zaevU@bmYedP}(c2Iu&O`0mx6~pnb7d07v^ZRj1-^(%@(xtOq#S3#&R67t!EoU+hxg zXm70QRNPNAINB%M4qPVr9n|1x-|U0HO;d^CuF|^*dsoR1I1WbQ0uFy^r{ZqZ;GRL? zGXPONt4_t;rNLbTqSs)<>dh($cNO=a8eAiAjlelG;NH^U9s}+%;An5M>Qs7pXei{T za_q;?e&A?NuIg0W4I140z`YM#ruNaU!3_d8n1$YdXmBLUi@=oj@~Teddq9IT17`*< zlbk0{7%B$~91GkPDlyzudSx2ieBkB-cVz}#n+8Ywo?Ei;{dWzH_Cap|4n<BomG7Gx z+(W=U1RU*gR-KA7V6QRxsXqP{xPJvsjU%k;zg~l*&sqHlI6C2=Iu+NV!R-cacNV^n zYjCdu_bPA~sl;$s>Fw9x{s7z`ve3)L9%)KLvUm@;_kg3l)~cg8R4tRA!clo?|MwB# z@RxQf-<vf!I-;$E@@10qS`F?J;4aC6`!5ZS_K{x=TqgbdqXtL&%V%Z5nXs{4E$;&0 z766AY;iMhK(cbr>6pqTf2DmlAfkoP><z1k`wF1|g1^0jk7XvN^oJxa;s{ZXM9LbFK z#jgd<On{UloEaB=M3VfJKiW6{2ymI?JgC9Ze)=bXqco}`8sw%!$yItk2kz&<p_<c9 z#jV!hehJ(!v(WpY2KOXzPiCRFSA+W%aKFkz?~DfbYv6tjoSG-fr0Tcg6sTH`r+|AZ z3%#HQ_cU-%XQ4+QU{&eu0B%PXdM|5m&jR;s792HJmEQBfJrCU8w3LU+;n3i^V3WE? z>D5ANybW3$+I$zzZ^Satqi@WreCeFTN#N+Lgz8k%uW4{}eqt&*->Xy*?kY|XBSC)B zIXZ9Q01iWrw4*qBo|?ju&dL8X5IC)Ufe2)0*5GPEuNFA%xJ1QWo5G<8%KtV5?pnxR zbt=xP!99YG=#goe`;R*{xTk=73b<J+G2E#f<X+R@=seS>z|pxH)u}iKPTiBA@>dPv zR6}?()JTM>-Ul=|4u+KbHu?oMQiFR<gL@ph^0*~){Z7GPROMR$T`9O)83Tiq>{Qb8 zHMkz&dVmAjv{P{pX>gAM_b70`OrwU%@ofyMRlam~Xx=rTrxF2P^>%4+cc9Mh_zr{r zRypKU+@CbK$uP{5i*Y_?2$rUI6_iWm>jusZoHGNiQG;s+t{J#Y<5>D0wo30o;2s1H z*-Se%f2TCK$AEhbxTn&nq4L_HBPzYcXlRQ|7-m@p+<h9{&w=|na7QxWBn@se2F{zW z9X^jz^H&U=Q~5p*-1ETos*#|pde>-h_oAWQI~`*zHBy87vj+DP25K+OV3=Dn<nKD@ zu*$ap6MzC#S}X%DsKE)q3BcW&0r!{&cL2Bpz-jG)n$=Sp+-Jaj1{|`Sb}Ft0O0MQl zkAb9qCc~^uqlV=2Qw?qvaI1j(c?R57XcH<ugBfE6Yv%SF(ctXUFt%qi+tXeRZV7Np zfJ0MCJK{y|s0McraQ6Ury%Ht=s<;}oMe>s!+78@y;J6I9Uu$sJ!d6{t%Zw{RV^HbQ z8NA1Uqj`<$RKA-uxJj@Xlbo67gF3VwmEP6BT@4&mFzr-&?Hb%d;1&W06PR`??*C|T zG2mjrWoqXiX>bn#_YiQ;sYF0k^-e=uBtOaTyRcQ?bu-LrHBy6X(%|S^;x9bPdIKP` zQ<J={!O_{pFM&ItMgpmNFGiasKk<D7ZTF2?uvs!C<wwOW*5Gcs4(CFl1V77w`>_W1 zA#fi8*PQ|PM-A>yRK%TSss9O_!m4}+G`M!)+JQq8NjnvHHH5F0<8j~~&qB|p!Tl$2 z{|OvSY}%>xS~a*|1NZAJ^zKRFXzVKg594#_spErRX>c!t-pjyg`#}}=t_F7qxI@4h z(zzQt*L-=AQeNUqAIp=n@Liz64FWfqh2Dc290Qxn+%Q}&YW`l(;PQc^Z;EBg-w6$_ z5V*oD^k%}wlgz0c#lRJ3!L8BYJivK?%f$C_4Xzxx@+|b;(%@==tIdKl!N#lkTMgXm zEVyb7t{u2`;4<a!ehqFNaO<+rds>6*0j?(t?o$nJGjN-;;J$;tMJ>k@z&(*AfAt#N z7T~sIq4zHuTrY6FS?K*vgWC(--YoPcnTPUs5V(U`=-s5j9Rlu97J3~T+)?0;W})|_ z1~&-YU>15GX>bPg`Gy-aw~s5Q4V9x1xWX*BWg1*DaK%}0|ER%vfb#&CNw4}fxN_ji zv(QUwaJ9hIW})XspQ~e(cDWq5<yq*pX>bj|HDtm4RD)Xw+`25dKWT71!1ZLoU5fdO zn!nA!ZO($bRfBs1xF@pUx;3~R!0pI_`yUN%FK~Oa;J(n{4gz;D3vLDm7iu{q;G`_L zum(2>++Y?Q&DT_V26U8$n})A9sdoIJ24@D&44k$fRB;z$%%ak>0%rv-lm6YJ!Fho5 zWTD4vaC3p13!D*praG1H_kklmxwz_ps{>ArBdqFwR)br99^6M7-0Bn#L$kC~%T#d9 x5Z`s@p|?_lyZ1b}9|K47!*E@8RE~#Je!5W{UH=6fl~r{g0k;idsv``!{|mNPoizXe diff --git a/kernel/src/include/arch/x86_asmp/egatext.rs b/kernel/src/include/arch/x86_asmp/egatext.rs index 9c3725d..7027d7e 100644 --- a/kernel/src/include/arch/x86_asmp/egatext.rs +++ b/kernel/src/include/arch/x86_asmp/egatext.rs @@ -25,15 +25,18 @@ pub const ERR_INVALID_X: i16 = -1; /// Returned when the provided position is invalid in the Y direction. pub const ERR_INVALID_Y: i16 = -2; - -/// White text on a black background. -pub const WHITE_ON_BLACK: u8 = 0b00000111; -/// Black text on a black background. -pub const BLACK_ON_BLACK: u8 = 0b00000000; - impl crate::TextDisplay for FramebufferInfo { /// Writes a character to the screen. fn write_char(&self, mut pos: (u32, u32), char: u8, color: Color) -> Result<(), crate::Error<'static>> { + let mut clr = color.0; + if color.1 { + match clr { + 0 => clr = 0, + 1 => clr = 0b00000111, + _ => {} + } + } + let color = clr; if pos.0>self.width { return Err(crate::Error::new("Invalid X position", ERR_INVALID_X)); } diff --git a/kernel/src/include/traits.rs b/kernel/src/include/traits.rs index e9ce602..772aaf7 100644 --- a/kernel/src/include/traits.rs +++ b/kernel/src/include/traits.rs @@ -1,14 +1,17 @@ //! General traits. Mostly implemented in arch/*. /// A type used for color in the functions of [TextDisplay]. -pub type Color = u8; +/// +/// Type alias for (u8, bool). Boolean argument is whether to +/// change the value(i.e. for [COLOR_BLACK] and [COLOR_DEFAULT]). +pub type Color = (u8, bool); /// Black-on-black. -pub const COLOR_BLACK: Color = 0; +pub const COLOR_BLACK: Color = (0, true); /// Should be whatever color commonly used for status messages. /// Generally should be white-on-black. Value is one. -pub const COLOR_DEFAULT: Color = 1; +pub const COLOR_DEFAULT: Color = (1, true); /// Some form of display that can be written too with text. pub trait TextDisplay { diff --git a/kernel/src/internal/arch/x86_asmp/entry.rs b/kernel/src/internal/arch/x86_asmp/entry.rs index ef2e815..9a2315b 100644 --- a/kernel/src/internal/arch/x86_asmp/entry.rs +++ b/kernel/src/internal/arch/x86_asmp/entry.rs @@ -12,7 +12,6 @@ use aphrodite::boot::BootInfo; use aphrodite::multiboot2::{FramebufferInfo, MemoryMap, MemorySection, RawMemoryMap, RootTag, Tag}; use aphrodite::arch::output::*; use aphrodite::arch::egatext as egatext; -use egatext::*; use aphrodite::output::*; #[cfg(not(CONFIG_DISABLE_MULTIBOOT2_SUPPORT))] @@ -248,7 +247,7 @@ extern "C" fn _start() -> ! { let ega: &dyn aphrodite::TextDisplay = &framebuffer_info; framebuffer_info.disable_cursor(); - ega.clear_screen(WHITE_ON_BLACK); + ega.clear_screen(aphrodite::COLOR_DEFAULT); tdebugsln("Testing EGA Text framebuffer...", ega).unwrap(); tdebugsln("Testing EGA Text framebuffer...", ega).unwrap(); tdebugsln("Testing EGA Text framebuffer...", ega).unwrap();