From 2f7d3c378d68e3f23f7c9962d9e9d32de7b60dd0 Mon Sep 17 00:00:00 2001 From: mintsuki Date: Tue, 29 Sep 2020 21:48:34 +0200 Subject: [PATCH] Default back to text mode instead of VBE, add DEFAULT_ENTRY config option --- CONFIG.md | 7 ++++--- limine.bin | Bin 32768 -> 32768 bytes stage2/menu.c | 25 +++++++++++++++---------- test/limine.cfg | 12 +++++++++++- 4 files changed, 30 insertions(+), 14 deletions(-) diff --git a/CONFIG.md b/CONFIG.md index a6881937..956e6668 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -21,9 +21,10 @@ Some *local assignments* are shared between entries using any *protocol*, while *Globally assignable* keys are: * `TIMEOUT` - Specifies the timeout in seconds before the first *entry* is automatically booted. -* `TEXTMODE` - If set to `on`, do not use graphical VESA framebuffer for the boot menu. -* `THEME_BLACK`, `THEME_RED`, `THEME_GREEN`, `THEME_BROWN`, `THEME_BLUE`, `THEME_MAGENTA`, `THEME_CYAN`, `THEME_GREY`, `THEME_WHITE` - Specifies the colors used by the terminal (RRGGBB). -* `THEME_MARGIN` - Set the amount of margin around the terminal. +* `DEFAULT_ENTRY` - 0-based entry index of the entry which will be automatically selected at startup. If unspecified, it is `0`. +* `GRAPHICS` - If set to `yes`, do use graphical VESA framebuffer for the boot menu. +* `THEME_BLACK`, `THEME_RED`, `THEME_GREEN`, `THEME_BROWN`, `THEME_BLUE`, `THEME_MAGENTA`, `THEME_CYAN`, `THEME_GREY`, `THEME_WHITE` - Specifies the colors used by the terminal (RRGGBB). Ignored if `GRAPHICS` is not `yes`. +* `THEME_MARGIN` - Set the amount of margin around the terminal. Ignored if `GRAPHICS` is not `yes`. *Locally assignable (non protocol specific)* keys are: * `PROTOCOL` - The boot protocol that will be used to boot the kernel. Valid protocols are: `linux`, `stivale`, `stivale2`, `chainload`. diff --git a/limine.bin b/limine.bin index c832c493170864cafc705d7d37671c378749df7c..19208988d2d1fae6752e6b99343f3f5b62cccc81 100644 GIT binary patch delta 21188 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 delta 21145 zcmV)4K+3;>fC7Mk0|hB%2WaI^#L1eHmuZN{|1 z@~PC``>GqzBy;u;fI4=)cfa26-uH3et>evf`E>STmT7uAgJmlH*c|%Ezk3J6f7t5q zsmV#xz5lL*VZ@v?L&LDvFgA=qgJbnK;Z;ynTzJ(24Fl6?VrqT0a&3RDQtRbX<+Leo zg?#l{;F;xG?>ZZ~C+Jvb6Ym*waR1KLM=iI#XDhYswC%8Mw>@Pmu|0{rpkwkgW@1Km z*kOBC+LgA-X0;XA@@)CGB3rSof6%r+Wgd5cJEUo>zc=SlXmbfiV=h5pbH4W-FU-|uh z@2sSLPctTM84Gol_J!!hF*aTPY$5t>_nV;=h_spI2`;t8aTZ)?x%w}af8fFiaG|%h zrS?i~ptcKL5Gg7`5n7d!rx|8@i#APj&)hTj%sq3@+%xygJ#)|8Gxy9rbI;uK*PgnG zn^>Yk{Vdl(;cDZW6$We9Unr^sr|svb1V8ae@+Cd#b{I`Q0sGm$gS`-IT%K!h74Rf9Zy+~U_OGXeHFk- zp9RPNI2fL;=L^Z7#X`f)tKD_qUyfe`UL!M$Gg-#$W?nm6+5*}IqQxkdf`x_u`27~r zfj3i-+fD{=G0bFM8FRLzbh->LD#q_4#3S0%OyU!12}1{W?r13%f48L>$VKD;%{258 z@$PK7Q!-<8uWsmIz$m@OsgixZdTZ$5P0$6g*FY_7?%%G&)@)JleN^R6$$<#c4idM` zr&l<{@Vyjs;_nJG*o#qjANXVlHathE%WTe^Om*u364C_vV^Aa?PE&=8;_UUo2+XV(ze*J1yp3i+R9;lo5+r z#mL&~tr;w1b1Mz*SRG$mH;v%bR zHIg&L=T?%MQ~dW#`T2v<%#@&WQ@#H6Vo7on*pbD z(jf9av9Me4e`PzzOoA7~F7o}6h&3Up5tcmDHCBDbzRaq=q?2@+RxrV~6N}HP837xj z#rKGF+#s}Xc21fEIfQXKZbra&k(_m3(nZE)1H}4`@FOL7Nl?iEH@G9q)=)xbd8aWl zaXqw~BJmT~#i0+Jtww6fk##o=#n?CER;W)05pmi5f9S1y+NzkSneE|@=+PeQE0>Lt zdNfy3>i15mss_k8XwnQMq5*L&%5q17?1l0XW8_*CmnsG+fT0gOd=Pi9haU!QSTOHgtIz`;&o)A>U z14gz4f4bWEzSR0OZ9eN$>3d-HkQj$1>NN}Q4BzW_5#PSiapIQvK1Bk}&4E5;p^7k; zhNl2wm|*29jlgf?2g7EAA+y8g-oIjYP+6y$CBZ7$p5W1A&}dBb>7kbLf#!F~j?$Jk zJ%)(&zcWRbr*qJtJc7egGSi{q!EID(R8|3lf2^gmxD0K9zJI%>C&Ct_(?d)mZxj>L zX_LBxEL}ANga-8EPFiZ123{w?f$5lxv0EIIarTEClLq0{dNdkKp>tIi5&ZkNRFzWU z5Q$aekW-J*$Zep@qx5En{|_KiP@t|wUf@0&CdsPOMU-(ySeTcWU&bgaXw*$qVG0!T zfAh1gK#tYOfftkvAi7Ei?~K0Yr?iRH#-ji*?5A%6E(DT6LoS$RLa$Q%bo@*`q7h~O|LJrW|NKvAXBx%UbO0#k&e7}VufjMaUMw_{2yJ4mFs+ac zm1Q7a?zXZ%R&GF*?Xb<0H4_IAk+VMtIXC9l-BB#_J`$*Uh{XYmJN^#x+?RFHf8H4Z z&3+tO#Km(TE}liWc=D?|xGFpjl?Gh!{)oV{1qCM%Cus+yLxHqe9p_k*5U;!ng35dN zvj=_xt3r!nU1(9PQ=S5{YafQLa{N7xVP1+?UYNq5(3k-s5bbnF5Q>H_tqoJ5$wj2B zyJm?i$$2IsJEL6~h9oapf9IH3f4o=kREh(!lJzupqMXVPAr}MBYnB}o(R(AgQ)gxl zDAEEcqO&FzrYfy`B8F59oQ?r6M!zO)V#NS^aWi+ytsDfv``BRoMBu`0CkttV6y001 zu&UF(h&y;z2Z!;aU|q3Od3StQ;0kFcJ$N!`1Lom&E;NYSO%S9PmyioKfAN=THupD? z+$XBIIYr7fr}41dx$uO-n(we{7F}y-)-LQt))U zrb>L!D)GaRwGXX>#l#PHd=Deo0q4a2b-4bjNF=?xhL;NK1&=dJ2e_);z~D|TAYNxy zohJGKP^8Dbj`8TdDfJ1ko5~F_(zX~cG1Z%(=h61~y&&b7*!rs!$HWG%_P21;b}E@0 zP28JrLldH}rd4Odf1Y$qlyFs35h(jpuIe-l;C~?klMWhw3kLM)(Wnvr`7ff8ECW5* z;IwhA(@qy91^myX-HI3`9y$%!7PAh+ufjtAKFSPi`7Y&4xX;$MLN}5UGlH+pSN;gZ zAFXa9YiAk4tg4BSHU-mOem>j_FZ#RL??&}AYFNJA@b=pbf3Ky6cVc?q@+GUas92K@Bzp99;Yfhw!42_z^Mt_AXzYKe?%k);Gy`Vb-xw>;G4n$9;xtoZ)L63nN)qYOjIF{HF`-#nik5caC1-@%BEcXh zQy-?$zr&NP{yV}Ut1(oG6QoX;aed^e(vG%whg6KZ&MsPEf0M}g3;dQ zJ~-^{KWye`y+?d-F{^R(1I?9_c#%6if24C?(>)G?KH*aH^(aK#s{9-xC-E1hg!S0_ z3B5~gq#((8(NsAx1+exeBVcJeOOjkQ2uy_AF1``lbbB^RnOIsqe76SD*QC=x{s#;Z z?G?D@bed*mdf^R}kuI^K)vYckW9CWnC(+Vs9w+Bkw=MRZxC`XUn6jASBIUuIe+)*@ zDW|(~?&}T_|GShD>E!iDB`O(<4ho+;D_WUXqS|tnb^k3;`EK?Mj^&z~+52InPask+ z`4n~r#I#F;d$B1#6jKl1x&TAzjrQ4fW;HMaydN*1PXSb7Ifht@3KaIoVSr*`D+IiY zl%6C)V~G2u1|PSeYH4kZ20NMje@QZy%r}abW54)V;=7~-12ui?+c@th7ekj5?vx1* zx+RW@mG*n3JuIwOWgF(Cif*x@n*;-2iiHD>I33Cxqd1lKQ#;b0h#D*FnD_}-^)SrT zuO4zt6mnJbvAMu8k;7GejfcfVf&J(HwJf%t)nLGR^vHSNr*kt0O>P}&0^DwNy zK#Is|gH%ItBW}?V9`4nFdnps0>x2{Ae>W_X$_ctbQlwW|xK+b_)b(3*GaLMsnz5C^ zdxf61D8@g86CE0toOh2ee-EUD$2E5Z9{9FT%4P_;|0Jq?n|B_02e9bai%|ZFN&(Dn z?$jdWUqGq@sLc=KjjUWNx$&?S*V5bTb#o_auQ52rH`t?~EZC48xFO}T8Ey6`$IEJr zoqc>$M$b$CL*h^vYCX8L*H~4!&)IcVodKQW<*69FCM#{Uq}MK)ekf^|!8rY%6S9LXQTQyr7WzR^iZmwiH~e>GRTx#RqYZ2La_YQ9Hx zcB;?yIPzHLH2y##2V)iN4Fp{XC5xmvhJ&ne7})5Jsyyg}bcQ zg55d;e;mla34N!CbGDc&CsmbWUiwcnq^wz!?Ho*-kZ^W~cP~X1{DdTGu&$3&?cu@s7KydUxj_r`LV>T>=hEQ*8rXBH#<08EavaSz^@x#}?%*F&RL<{og$ z+HyJ|T8(11L9A%ZsMya{okcFTPjXeCV7v5yfB2$KOeUpAiExbd#oxfRS=d_cNfM9Z zAY$V#9O?!ckF47btp%>7$KQ|4 ze82bJbMCq4o_ikmHKGeM4qMS*w@ks7e~VF=FS#Fsr`*FnD66*Mh}cg8%1wKKHl|^T zTFKy&QVx%)8QKWVVRM7n(onCyqU|nVf8fW!X;t*0zha|@p3WJJ>{(^1h?G()=C>WB zw(gYnQ9J%h?V!r?YZ1(TTJ=&#{ukse=aw>Ymjr_lWoj4ufY@7!5K85jhu*|l8dk@> zYkd(**&^wSB-0itw~X~?$=V9+_38Rj>VRSTT{){H7{aDq8huf?X-lO_6{d==fBBdQ zZ4~T@Ks>0ecGN)x4n674dx|Fb!c^|OG-ayKGs^CYj6P@^;;cZA*GYX+*^lPjJ+15> zln<|AzgNG%tsbmd1!hMzOQx;P|MN0KS#(O-+H5I^8TLy?Ei+ZHv+R7dY3tfwuDTK_ zy-cly_U*;mrW^LN%fk#6)&cA^e>56Ez{8p4IkD<=Wd1=ciIxW|W~Z*c$sbO$+N*Cm zMJ3sN_02dS)+6=SaNsjGF%wSx;M^pM7cHcm)978{ro%V~WNK9;z5W1JrMQ<+is|=* ziD2MKrJRgTsTT^&I9u>S7|6R3gP1|mGA&M=Y2t&zlK^=gGaZxkb7n`Kq zb7PJVJ-AYJKU>3xk@}4={$g4lwaGui_Y)Bc2VPI z;=J6^1$~f92R%L(8y~)>ZA1>}9IsRjT8B@Taz)Nro0FrIqondKLT0 zy)j#fkYjq`UboX}RI?%YzRDFT8Nyg076rpDiRV}ep(rDnPH{=%VOBzwm0@MRE`yfX zYa`o!gVVM^=d}s?ZIUNR>KgLZbcNkb zPVIo`K+IT2?cIRGz7v%14lHL}yb`qPhZkTRHPH-h69;UbkxyODHI=rKUZKs*6TFw`Z7sr(j=2fh{TzjlMA4w3+Ekm}x6oSO}2@)_gN? z`jl}%ffzddp3%5ce_e2nW^b0@dVx5kA`B;qGI0V7Q`|5T!ytDlzN$d+y9z{q;7$+@j5~R6uPHF z@VVxOHl3Mj6S!3mmuJ$9{3HNxb|`v>BB-HOe_`)oqosrl5eBK$HbyN) z17O-YR$n#@^l5HM{uka6FjR9(-FlpBQXRnNM0v-GrNeS}MYppPL$6!47;+htKznHd zv3W+&a~ge_QTDWWy=t*+aPA%;rpEA0FvxaRX8oorc#7gQ9!8?>%((TBHtptz4!)f$^R-8PXp8f2S3HF z4ER!CBlp+DkFIG6j%r9SI-N4cj!9anpImgy=a1ZBzqmo#vJJEHFW>?(yQ`0T>Ekz7 zyPV(1e*&OQ*c%f8_({h?Lnkm)lE9&|n$8jEg_`g+8o7FSn0`;reZY5gSLV|Eyx^FQ zgUwJTrR*7Fa1Bj4?14DDln+f3F0Z)9E0%Fi%2h@lBx7G!e2nVL`J5NDTU5jJ+&Wed zv9fiPGeU40TCs|M-Qra=kr=c%XZKf6*SCtAe>l$(VK>CyO;HVF^{!!PJp39Tdg~;} zjx`kYvSd1``zJgfd)^Ek)8huH)X={R!ot65_!jDP^*kH`oCnR{q7R$e2^m)=Hu};c8Hb$%; zf0}zzEtU?>-36ihfZTdpGV;zu>B$rRDFH#?tY%>^O&iC7LUSk%I|crTPT}2Yhh#sy3oMCHxD+pT&vO9w73|=Rd9v3KhBDjDBjUl z$xtGtY|YWCj|^^JsahGseJS94znYeQ7%YLv8%l8jOkW_sc9WXx))(awhqh3Be~WDy zBQJ1lyi3vY(6A?z z;p{BN9La&@tDmIhJ4@#Y?dq zm;IVc{iD3<+QFxjlbpqtE(#tc3f9Bp0DYcRjH}cGOa(wqF!)rzA-M%vf7mQ>u1sL- zwY+2PF15WuHKu*&4XK*4$Rc`{LrcRT{K~IAphi2?t2PfrzU&ZJbrbTcS7W$0Xa%=@@E_$kRdp{ z7D0!2mas#>8uTx*_i&!Xe_4uiL&aE}waWsJ*V6N=QMD(2D?VVa{_YkMH$rj*VOWCt z?d`#NYL)Gdgao4{6$fqSWhDbC>g+x{znZ21!kp{1tW$pVN1|q+j~dwpaKNX>;7{c= zyv%L@1y1OPO`s6u(Le`HT+dLiTg+wZWt1s>i#!`0tb@S1$(!_le=dxR5cV0irnC8X z3VZdh7RE(N;ycVbToONIR-Kev#hx3<=8qP3*Q)DS+&E7lA!YTwWqz|3WxfywgwwGL zKIN&%cE=WYbUTV}qTs1iNPcp%(eesV(zaE@EqOWS=FOP!pcv$(lAbonQIE0mzNQ*E zj5#*La}P`KTNnRo)pA(65ZiH3UhI9XU8wLo1 zqYBEF#@OykupkFk>YUV4qkR8qLceK*{o;sK%>$irSDE8^fSswqIi8o+qb^ETJIk@O zy1g=xb_9I}f0QNB(x{27T8VwP8&=Y~HBeG6(_Oxr88!l|~_d5%T7Dp4+@nuP;f2L2Or3mR-s=G_=C zjxT5y95~6(4%%<@-!NcSZNZT3kgxN!M>W_xgEsW9f5O2r=AgR%BeiFYy)#7k4f+B0 z&i*e10c-(Q;>>x?erxDDjr~hq;g-PHvGQ0?apeHaD#lkBp5J_i1d6MCA`>X>3H$+i zBAu0QCSl$h7=R1c1%X=l%By~fxBY(X)N<_3O4LtMH4dSxZ%W04m<`LVOM=X z&6fe(=qz?2Hfv|ppoe+xGiI1TmOqd(>q>%he*o9pxF$!q2Q zoZ@a!JcF*hlu`#aer!t7FmVf?zrrc0)5CK2fLrg6FJb^o=_uR^EEEi<@DN-Q2q+_+ zM(}IUCv>10bIuA)&z}}@m79S^Gy{`_ea{9!tdwqlwx7!OY}AqIhSFSN)%8$G+&tYj ze=Rge6YKfPx!CJCB9gY2k(+k_H&-=;s_TV)>w~0ht)p2SC{YdakjrS!cpD`Ma(35( z_fd!2P1`%nb?T$wU7nFlBPIPV`MoRDC+uun8iorE(@mweA*+stN})kf&Cv#zlzVvS z`5etG&n4&oc^wV5=v616N(nN-YlTdlf3y(x8MRRO6uU9>Yz`549rf{JfKZbi#Ke}i z`_;5yZ@B}){5ITvS%soL-Q)r!!}N!9?y%PeAq!`h1wm*)t3QC-Ui+Q>w3l6GHzCdo zsQEl#x}gq(sbj*6IHfUGEE$%&)k)qe2-#MzSdyG1pO2>wl~U?!S^{v(&vZQxfAu(J z41AZ9&hwzJ5)t6Cmohg(u2`zR(i`9xm-)yr6lx3=Jeq-s5(1DGs;fnP zmQU`1ugC$ewc|QUnI!H}r&J6UfA?d&r}^=A@!n<(@xbb1wCO0o&4_P(-^&Ymm`!q4 zmk>|7`y%YRGf@jJz@~QYgxISaD83{;i>Xh?{`O{y6W3I%@$vI<<-+c!->}XF~R69$9(Tc*hKF~k;J@};89@ts0Qx( z6=AD}kWtkMdmVp(*BCkHe`{=m4YvUK(r{BuIi|>}dUAd-_;UqCH7NB>VjVT!5y?q? z>lF5uBL;M9u}X>X%5U7jDkn(A_~s<8$iHs#Rjbt6QLhQasWO@`vsYsd7!fBny}XEU z=2at4z%xY&u_fAFc~sVEFM&dfk(@qV*aYG%*)g1DaS;*~Odq9cf2UYN6(eSFo3I{- zVg=`<9}lM=8z}#d4~n)~x6s--wqVZ?Q`*vTUV_NZb5mpRpXUzVjl2(4Z4aYyq}=XP zM@Ed$joJh$h<#FXb421|XAzQ@;4LF|mLWU6;NFOl7}gphAik9!z23FKlg89nGz-m& zC!8&Ql;2kL;=-=PLJdO2Id7!!g=L z43dGZ2@v97~$e z9hb6ImMxsjf0j)}lq`M*ONt>agr(e$FfL~B6skONa#24)pn;E`ucKVjHhkI?&Qri^ z9F%wCL2-PoLx(}7r$2vCgHMXm04{x`*XP_1SDrlc!70St7|#dH8AScG*y+F&x$Go1 z2-7Axks@|<(l(?g_^eP+2(bAaAKKeu!Y5I}^!Skyf8ie%KiWFWxo|G(c=CLS?^IM1 zKO;OT224zGM3(?Lzl6tybERbq&`W3vt`i&?ey{FtXav+3`J4&K3I1yv5`dAJ;J~Jme04?Evn2lu9R1i)7w9nu(c|;>CMlg^7 z`C%DVe?5zzEp5ad+0q|opnXxZ#o8#Bo48K9`bfZto%is9jJi5n)u1#NmKp2>L;7Q6xw;^b{Yjld6VaL zwl2s$C-l`aj;3vUQj7w^a!%5y+54duHXDdY2dts#QD-Fh>sUD(}TkqyEq zYq2Q@chupQ;0YAiNl$G00Z)nD8`YHIGPC}x)pbm}DK`H)mKQ&F2Ofj6_*@%^#Hro- z79L}?o-Ygfqcj9j<`N@QJW6~!@D8)4EyASXVTUe zCqv+B|6D!k31R8Q*wn>{N zU==OuNedh;Y!jB^&7k#td~nWHvw`>^XSpdYff8R#c zWA+_U^*wi&`d3(KDbTsp%S?4{{W1Rvs!N$ub~LZgT=hw$y^mM z$=tB{o|n-uokwl-14PY6izfdy%9TB%Bsx7OkeTX)xB zv2%F6q$yR~`qR?8=bkD=Q-L4y4>%up(0;T(3wOuSJm6!Gci&m3Z&eN=>cbeW2t&wv zlGU>tHDC76zkvFPnOZ22*>&dL8qdA#6Xr+88_<5IX6_vVO$x~1iT6L^hWOJE}H6$bqbEX9>B`39iKuT`mZxXA%$t~X+V;7+lg z!vGYO!^j~yiO1JGy5i|oe?8%KtP@N{aJ%?72(|o@b!@smNGNy@pViW0Epz98p;EPY zSuVe7^SQLcuv~O=N~TWp6Ega*~iM z{GF4l(YJ(~T73iucPBU>l>$7OS}Ei-)OmJz^~dZrk!{p9!1+iifA<_)ukEor2W;=k z2=c*9737f9&ekgJ0Gv&&kgpx{xm!a}s)Hd}-quWM_ByX;c)DadNxV!>B#J8E^MREXDU}AE#`czAy`4d}zuOf@`sMN zBzzPX&{_}U3{-^ANa+|CptSITP|CS0KmCuM!=Y6Ef8vO5IM9T}AZ*&8yxjNHe0YQo z0xDkMn-SaIR^zD1t$Ku)od9{B3p`BWXPuNa91!tkB;x53J)}?9w+Qw*Tz;p5{9@uN z*HjRHeOXTe}X<9$}Mnsp9w}40gCdpN>h%_4X>t! zFMWw*f7;3@wqnJ2w36hM-oxo#+D43eT+7bz$7s#a6V^c5oR;Vn!z2#th@m)Sw&LJ= z%V$&c6GIrI8sx7)pxITgxWy|LdCQ-tOd9f6los4WTfT%)U`xDWiB~M}ih1lze^;-)#3wg!b+8@xw2zeZF3EJ5u!x}= z>hW;uajBZ*0r#Qxod9;@{O@t-g2`Mc_Q;8iJ;h;<+~n>n4kPk%E7klR#la&$#kCqP z9}7`Fmhp(X4d>zchR}4kej|3jek1Su7x@_hov=^8v8E+ZqpzpE5TJKD<>L*CuG*ru zfAvfE>Nk4alA%=6Z&lY#@3%I9^^^45qZ*)lf})xe7t2|+>v$)^LxW3C4UVS?KTw2?pU%nfX&D#_ZF><$jI&zC zr6d2I9|s<{QY}(J9FJ=^%+dJ+xjyiUe@ig9g?s5PN)h%tzJd})`2HHdE%zhN@qqL3 zWiSrfan7zqE9@)&24`RDjh3mHKM3-lTnhQBTfY2TN`5@%e**(#>0^+u_2=VK1?E46 z`Ntvu(Z?Y_$e-U&$zO;0@1Laj^9P*wL9Zemy8CW$u!MbgraKyJf+U6t`v#>ue~t)_ zBNSF((R3K%TF^20t&#Mh@U2rRoC)f|nIVfXJPi7g2Z|5{{ov!#;%*#z=v`U^=Q}WF zED{5+9roHn4!A%Yw_WB-aNCi>y~S_*fGaE7{0n$GSlGL52PHe+{DB%b3RBfh>Z7(p z(2T!I)kG}23)+*;`Xv~Jef^D=f8Rl~Jwc$REj7r1_ZqoG{MK0=)3ayOa8(TG2V0HD z(1=`6sqmTXEXJ}42|)X^?FN=%M+54JwFRK-4yoyO7*(F|#?1cs zwebV=={q|vVT4iv6K>yLjP#s5(dBAHHSm3K!i#UveumQgOSI)zEK_zI z2GZtX#i>;`51V!so~b}R%zDhUAL?jiCpu2>jldmE0Mv2zzC$c!fBStWm|-Wy@VE_&1_drP~6m%*Va{f?vV@yQ8iNT z=BU&6UA{lJF!)oOe>D)D8zA3v0;$-ERBY#)5$N5ckWL+3VC$U;?P-ykp>Y>;#Q1Oh`&fwlpJ314rr6vQIqk_d4w` zVKAL`z@vkSd|zak{L8<1y|j0f2TtF#({uvf?E=zA(Iyy%jhLgpVR^W!jnW@HCm9I*q>?h3nWR=Gl{MmZlU+ky9x zNct^1=2Dep{@j6d)ywZxs>LgHVCXG)*@j%U4;?goWJB;ei`R$yuH{IV?!oFMr9ipom=*T zA*wn0vls56TX+(Z6ODA3DAbsoD31eX;H@^E^K(4^n1f~Si*iNRzVIF1fwMi?h=VE! z8Ky7A^S)p#J)h&@UbWm%g~yEW-0hS<;9LeCDt@FGf1mci)BE&Ph69(L@O0#Hdcsqe zSLg}PEe|AEJf?gfJ#AIa_4YQhG^x+0t!S!|eZu#)`KBL-cXwEo%|lpPe*b6>CxuU{ zP55gMKLw*W&)~f3HRLhgjY<8{GdcWsDt3VG-dIHLYxT2GM)6?BqC0bz2UYsFD5CN$ z1UmWLe>Nv!>`{E2OH*{{M>^*U_Rn#>Wy~@51+G$ca}aMRFdf{njyjS)-LO-z|6S#a z-fEaL!WX~!YeQd;z+6YDtJIzBtbG3g9NpARiD1OFe0d&(K_A4<4?Uf;3SxJ5dg%F_ z3?M^1>=j)SaaX~XbHul{i2kWYTtx2XaH2Mnf80%o(D!@A3W+9Ud+>emWnR0^Gc>mC zVMsZkp`+^uXp?u~fdD#b)VrH^Q8&}7L@`AoJsi#pb-f+V71ez^au7M3UA=hg6Rx4C z7r&v<934;sn1@~XPryGKy71B}*JzFYB>9#~7`=oRTIzhe-JC|jet~-KB>RG#M~96T zf94a6*mG2RW?fg$wOXI&xS`h;P}JhDz_eK@KM=9&H$#_Qk+b*vce+UgAdUqc37xd= z=Q(4!&$^Yqh&c*^W8CTX+!^cH{4rbeiYDe~4eyk9zYe~nSNu-iuH5F6+bz&s zfYV~nxbQf=;J_V<@~?o@vXH8iK;<`Ox~hNRH`gX-D^Q!Db{$HG{!s-R=?OJVW{FS3 zYVsV zBW%2dOP=MJQgaE<3E=E2*+~kxG*d9aIbRL$@j)yp)JtfyC7?=Y zK_CV2XCzaQZ2d=%IjKf08O%vS z>0~thu1LO_$QWx#bdu&|;vOSZP6r=Hyat2pP^2ah0sZHZ=+MM2wb(xn&y9<}WcMsZ z;I=4tuiLPj$rcTuX(pOcqVaDmIEnmsQ6c1iPTKNGBj7OoUjS>AN0YxW=$td z)}j1B4jMDD&Ue^Hz6n*yfA`iYTQcO3zhiuW{k$V@3a4l$P*fR44ycoB(!W;tdML7L z8Eq7%P~yyPQa z+q^^2uthc3a$7<+lHc0{`uj2}tSl6VPbRWU>p7#;VQSKvfce{_^ z%G!TMxi&?pfAemH*aj6A<$ndt>pB7Rw$hi|Ir&%_ZBh2yj3XHbjh9>+ED7ucvr z;H@p{rq`RC%(Lg;2}HbdkcfzHTc?QoV@O&)PtB{Qc8EEo^fAN2GbA#Ojs~H?jvJOB z>L8nGDZw(c4^kWNplxM;!aIt%YeYqCcOb5RQu{eBe~;$>Jmq%pK-=^U;dbv;+gQ8z zJ6o7M6ORwLJ(uiWv+V^>yWOMC3FUlMx8cQf&ShTDw{g(iFTv1X0`oTF0CoWS7}7mH zwfsexe{etv_eXw7eM;Fp`Av@kZ*>*G+c;`9s-{N6Ur-g(V7g6{ROcMcRBAE|uz;|xT&en5=pX-Bi|Z}WNTElh2P z>OCI;9i1O|z0rrPrE%S^)M-T8E@Q~g2g)+Ae-@sNfZ|2xb6)k;O`5_uZ(M;(yw-)# zlif}HU#B)Y4)e2b*nZVu;EzrjVt6D(e)$7G^M8+i@N%GKHKfhFg?F&MGz2%kMD#0M z(oY?I$flVKgX1}MVd%ZxsC=Lol@(~gZnib!&7Ss~TEVgM8kg}mz+Gzlc_)7v*oP9W ze~%KrE%Qz&(AEj!SoOeQwBuCf`7*u<>?7PBFi?i(sp*J(H)P;hRh9W{%K&`M+>MLF zL0E8B_gYDfyj<3!)lsyq)9e5WC->~U8?6Vm;h$@dz$*nz+ynsk>Byl6K z_;5EPkSIA38@i(FoBT$rYfoAU!m2wke_$bHyyb#V&DlG3Lc!N0T`__~=r&`AUu$XO zNS@?Ge8L;diPy=oV%#4rRK1B`_wa4QA7KS}Jc3`a)onA%Wgl3rqYf1iz~Nh%^)7_F zI2ir^YUNM}7EmXkeOeh=8F~kFkg`{gh_-&K=-4RSgk!r#8<@1VRdVAw$UP1pe>k1? zE8Np;OisEThA57~GZn@8Hu;_H-3U?9LMOE@5(>5*q)q)uyV2+^N8VXtAzi+&TA52e zM(otsrf#^)-l?{Yw08!G(Fnc~!R>fbuv5$Rw+B;x{XG}jG<-=@Uf#!-i9}mPK4?1davf37!|2aH1kr&Zpd@c26jute_U5G9nSPS){V+>m(3HiT1;h-g4xFr4{>bW)(*0Xud2n(bISU-XC4&El2)Z5;0|1 z74LRhKF`3EU|$OS53+2)q-&M9f$kXBO>K8$Ph5wj9d%Ri=D}l%e?UlNTXt-x#GOi_ zd;mP*9W7{jhP1+GQi9Q~WX?>GoKd=uS{!|*6C=I%3B6>8h0#6(Li zq+2kv5(`(krjY9^e{hjjA9qwxt^2!V6Ej0vu($K7NiEpIIl2H_2#*@nd`ZA7?({jJ zcoI?d={m?48ov+b|NYqi_31+SKd*0kIB2Xk2mA zb+r0+rfbYQe%RRSK8y8Qbx(^`p;)Zi6PWJ0}}S3{|JkP!0bnL*-Ho zRUH|s{oGLP?=n=QfmdxE-~N=Lsv|?SUolj5U54sWl(mQUDfVH1m!Z;C+9P_Ik)yIQ zhp3pU4Sd(9y+zGx>4F^F8hOMiD0ufNzs*96bsJP0e5gFr=<3hDC1!uAlu*d-vRXyh z)X;Cc*{dpSf5fl(n6TgEmg**2s+)?XQV#);GvDAfSBj-ti7D=HxElQoF;*!rV=?Ew zZ^%;7=2+TeZg~%q<$-(uzbw@+eU>WDXu*v;w>4J#z|ea}5Vc`=Ah=I~Pd-!Z)kyyy z^xNC3<4Ee$<$dkdmzXgRGO7mONwZ%SDsX%^h0KCbe=e{vD8}<$Er=f)rcFgnP`04K z7F<|_Wnw&E*XH4a5~{yjg_^^y+U&S!0yVqdzHN#-CXDu9$IzDF*YhwA8B&1DO0hv~ zaVQ&@N4K;VC>v9i`L8OUSLaq8*M9a6;7V`Jnh&^CUAVf;=ua5WjyDlYoqwbiyg^&s z$yo%df9%ExCAKJ{Go+P%J6iV>b~N^_|I&`;zNy&Jik^0K^v<8QqwoLS@53fTZ&ie& z|N9jx!2iOal5q5~saN;@N1LiD`$?PH+kSQ#$>C_-B0usQ$r<<_^bt3b$UI8|*}o6F z8A%JKw0_v#NWOqcCqC?MBqzdmHyM$tv9tK0e|+>y zE8geAa(~VCEN%Xjqm)W-1Zj(*(uUMDW4aU{md@fL;rkBwz8k(H;QL@+_NMR@$w zuX07w$d>nmR!dk#XRIOd3YDFtsg6e*P`o^i#*`{un$zEI2U&`T`7MA-NL5Ug8B0iKAQ! zPk)3hE*@{mCwKFS_R)B|`g%dVHeAY%WE}(654Q!^l1!>SAyRf2e^x~uk>a&>d1Q2r zVE+Sp2i25p>nA;be56M!J^%7ZpWCgqd;p@CEPwfm-#6h)f0!*MNprO7PUav5(HYec zO;5JKfUp?P)q)1`A!9PZTlUiU2Py@%et#!1I?5$4-UG@aE>e+=yy^-fBE~Z!whd>n zlae^>afCg`#kVb_g~+sTqB)#Oe;*_OIoxpziu3n6>3$Q87d6;f&H(FYe7JuXW z*dy^8FRhe$9=G$EL!sbRLLbzH-q{oVQ-ofM4`piT06-3QA9Oz{a6@s*UAX@Z z!Y?SXQq7g4w|qZ+9wYA-OXBqO(VetuvcM(YiFQSYfaMssJ%9%rbsm~}nt`dWK`K;3 zzhD%vR@b(jyY*iPHG=;M!Jk5ED1Vb&Hqy>XmUl5rk6Cd+cvQ(f;JHv+AUhQA`HUZd zlD17C|AIV^;_v8=fqLrV5FW)UaY5o@3pxY|Mv1&jiDpmuY_^;aVPw_*yZr9^m2KR8 ze_V50_x<5ld${kOt+#dGA!pF5eiQ%v*WC6Wz`}0sv=904c22vk3uyD#K7XhE%MX;r zi9~iCo%Nx$em8x`*ZkD?N|hymF4pPfm$Dovr6T#&_&zr+Cy~!V9fW4K<+h>$9jR>0 z1!y%uU#9DIXlF^goL8!B9;QNK2ro?w4fKT9WYGgk)92Vp+u!wVd2m+X>hGhECtH5R zjF*tRFC8c?)OvhA zT-u)$A1+zCQ%SmdsK@lo9#At|knW})zX72nf`ad4xf;hE45Q;V`o zk~K27BsMvk@x*s)bp6^C*51(pR$kvkhez*7FT%Sz53L=gq(n92NuVal(Be2^>#tz( z9lI(Lsz0$`9)AHOh>u1e$_a|@5MIJxJD{yWp4#*x{7EZi_h-jdsM*kpD``++4X+j; zJ+C>}syfct8&w_6ye-fQpq|dw&O|w)@WaqFrmpcKyHQxv_+{`}yk{?^sqjqW7c93P zZzenq>EFWp1$GslJi(2uiQVWBPvYT|4s(6<>73!VL4Qh<+J1?%OGTRuO^uhLYprci z|9sEIqNwIJ{Ee30{O!Tn?cF$g3OF0=W9upAhLFT?&T&n=9~pak?GwBJKcRl1y4K!4g6V;eke(AbJ@?$YFe#-~GMpQ8edtvv4g^U0lUV*eDDUug z@%0*Bw0{A7?dXv7=RB;)$IC7*E~fSpAK4-3%rT8DrM~b)<0aM!ER%!V>G&Qbd?AUg z>@1{x19bx*F9JqLmV=w5lyk_hi-46~LB2M2d;y(!D!MV}LE9*(e@q>a`Pn8zed8r5 zw~1W`pjy`6=wWBuuA>XERu!#pwVs0SF`dIqCx3xqHJ&;@uZPnu-K~;{zikNYb~K0) z(O1{TKwVcM2)yAtm>GR#ZCDielwB$5AcHsT9V5h;=qowF_{%^q;cY4WbW;;M1CriN z0&770+B+`e9^F>>>gbM#_%o&xNWXx`7tf-kLGJ~hV1^b*yvVL#3NxL9mrKwQB#Eb> zhksZ*JK7<(uoJAd<6`uQoV#tItUb!xh6fm-y(pf5Gy0<iYgg^Wk2KcZZ1Q@YFB zaQ>@wQm#+l8pO!x^J|v?`m-QQr|_(ck6Ly)`s~_4nA4pP2T6un#MtPwIojxsb-`n9 z4Q&M71btQqRQQSlP3(Gi3Buvngg!BW`?$t>cC5Z>7*u;STOe(g9(jC5QR3htr1iy|fHzzJ-rR>8v6o*zW0{*?4w zt7wWo4|=Xvcqtf{pU(m#@XReKJjoCVLwyV2W&K!^*0U+Sh+PJS&~2om{51iO4*^^U zc1)Y0+t@sa>=dWXL7^BqjW53Ne0Q|UBI19Ymq zfEG2fTBQvbqz=^dpRj&{YC_b+Nt35M^zhW^)TfuHnbTDh)~iNmimO+TQ6(hK))|*1 z=v1l8voogY;5IXInAG%x_Wii@>DFSOHa*MZBA3o&akf1nR9Zoa)6Zax_{X@8Eeh(G)}i* zRxGB3sM1qylO|46%Ij=dx*T(Anr``O#Ed|?^qj0USl?}muFmRN6q42uCH}I6j023* ziJ9j0+0YOGHUp2c(*3Z@EvXrqAu4_RJe@H%VTo#9=GxTN8ELxg)Erv|wnwF3x&*5R zMAl~jWR1>}Y6XN=F@HNdD+e*An^SFKj@b%ysN!RnOq!_E>3mcy&&sr!*V}-r88)H@ z3hG9WN*mMFCP1tkWrYrb0@#Bgstkn&0EBJ<4y?#nu2Nq7#Z*rN$5#O(GFLz|Y?jna zrM$0XI&hws>4JeQsM3~`k-Zu^J2NdK2bjW3^=OmQXfYG=vwzl_bGV#fXIgzka#RWC zUyEidaRJ-$vr*Qcp%A6&IBMvS`&3Wr6C_s_;PN; zi@6yqEK1kRh05<&t#jY=|(LLQT^&yzfzg_utJBsCoReu@{h%Q$O#}&3Jw9rw z?tw?3wiF%Ksng9EWql;1`{2v*v3$HPPRz-{u3nw`On;VWn--#4`!rBG4`eL^IAG1l zTrqz9cqKK-oMVL+0#b4OC{amVq&Glv=g+YQ`_U9OLfIN_t%+xjJ z+a%|h*JdcleOdb1^JeSP%r-vgtjlxE=1eGO%~~yzmVnM1C9d}q(j`Z?DbrPqtGG3( zw&fORoPTajRvOnSsWupx*)~iAO<*|fY)k@L;C9JEsSn!PGoD7@!f#q3io`%5= zg!l)OACd-RT9%m$IF75;(4Sd03yMT4jAQFK-G7R#EK+bQvV35PKp^G9Z~@8A$sqYN zEJ;YvWr}N_M*Sy-beH}G88+K$^8?U_8K4w;j{+)_sarqwp(h`j{O@u>k9Eskkg+Bs z)2y2?eo9CPiLx#YH9F^JqB%8(_XrLs(0S<@D>xvEUtHIF*T^2PinExPuR<8Vs@083 zBYyy+KcTC5_f%iXgHHn;53VN4#xGA_(W53R1Z_zpTVclXdNg!v{38j*%M#FYhDEdW zswH#v2K|$>7R1KQSDq8}vz4bg33~lPUx|c8$^PdBCLf?7c8-4Gl33*}?$OwVU9gY( z%OuR1w@@_;s+g0o$h2_wld}`%CF#2-pnnCLw`AU;g*_9O%vH@YsFut#=ogums6s+? zIxy!Cthah57|g#u;WWn72?5On5}68f8@l`7(?Ni(P!ME1^x#<#KH7uq-TH*w%Rhl zHkf@tyaRj~{LJs2&w@>mqTk0}qVHm?P2+29#;X_^q#c%`HzEvE|zhct}kOcAHNIa%za8kRO*=|S@xgphcBc=PG|F`AL>zA9&X@6D{12WHG z0O;A416Jlg00ULlH6UU>XXxJ|=rT7}TPi4J^p}@*YbQ6#IxDnKG5uYA268G|0aCFi zDAB+IUJ7)HX@Q=LhVq=aBw^mdIbAtEA?qSx4Vix3x(u5IdK5m$i}Ew=zL49|tpJS@ zr*+Hr`2*(ctmPJ<$mGwP=zo9sU!`v1e=l|uyUE?e|61@S{uh!r@jr{+#J*xN@%F;^ zQzidP@%t(8|3LsJ{wE2X_-{mT;(w4qZWUBu6>eKycfry5{~1BM65i$=KuhFYk#t*=^kH?kSPk# zanHwy)jY?X36T@>+?Kk+irz-*3f=vqL>(^yd;&`;uJ?zW3-HZn zDEvVZFGOx25VagVUVoGj w`oeOh5#6$se`@6~NcrjMC!+bu^8WC#?02}D#{d04!-w+eFteduUm}qpEYVDd@Bjb+ diff --git a/stage2/menu.c b/stage2/menu.c index ab542dbb..636ef501 100644 --- a/stage2/menu.c +++ b/stage2/menu.c @@ -21,8 +21,21 @@ char *menu(int boot_drive) { char buf[16]; - // If there is no TEXTMODE config key or the value is not "on", enable graphics - if (config_get_value(buf, 0, 16, "TEXTMODE") == NULL || strcmp(buf, "on")) { + int selected_entry = 0; + if (config_get_value(buf, 0, 16, "DEFAULT_ENTRY")) { + selected_entry = (int)strtoui(buf); + } + + int timeout = 5; + if (config_get_value(buf, 0, 16, "TIMEOUT")) { + timeout = (int)strtoui(buf); + } + + if (!timeout) + goto autoboot; + + // If there is GRAPHICS config key and the value is "yes", enable graphics + if (config_get_value(buf, 0, 16, "GRAPHICS") && !strcmp(buf, "yes")) { // default scheme int margin = 64; uint32_t colourscheme[] = { @@ -104,15 +117,7 @@ char *menu(int boot_drive) { yesbg:; } - int timeout; - if (!config_get_value(buf, 0, 16, "TIMEOUT")) { - timeout = 5; - } else { - timeout = (int)strtoui(buf); - } - disable_cursor(); - int selected_entry = 0; bool skip_timeout = false; refresh: diff --git a/test/limine.cfg b/test/limine.cfg index c5e0e028..ab43e465 100644 --- a/test/limine.cfg +++ b/test/limine.cfg @@ -1,4 +1,6 @@ +DEFAULT_ENTRY=2 TIMEOUT=3 +GRAPHICS=yes THEME_BLACK=80000000 THEME_RED=aa0000 @@ -14,7 +16,7 @@ THEME_MARGIN=64 BACKGROUND_PARTITION=0 BACKGROUND_PATH=bg.bmp -:MyOS +:MyOS 0 PROTOCOL=stivale2 @@ -29,3 +31,11 @@ PROTOCOL=stivale2 KERNEL_PARTITION=0 KERNEL_PATH=boot/test.elf KERNEL_CMDLINE=something + +:MyOS 2 + +PROTOCOL=stivale2 + +KERNEL_PARTITION=0 +KERNEL_PATH=boot/test.elf +KERNEL_CMDLINE=something