From hhanemaa@cs.ruu.nl Thu Oct  6 09:52:33 EDT 1994
Article: 17588 of comp.os.linux.development
Newsgroups: comp.os.linux.development
Path: bigblue.oit.unc.edu!concert!gatech!howland.reston.ans.net!europa.eng.gtefsd.com!swiss.ans.net!news.dfn.de!Germany.EU.net!EU.net!sun4nl!ruuinf!hhanemaa
From: hhanemaa@cs.ruu.nl (Harm Hanemaaijer)
Subject: kernel textmodes patch (long)
Message-ID: <Cx7IuB.9uM@cs.ruu.nl>
Summary: Weird and wacky textmode resolutions
Keywords: textmodes, VGA, SVGA, kernel
Sender: usenet@cs.ruu.nl (Six O'Clock News)
Organization: Utrecht University, Dept. of Computer Science
Date: Wed, 5 Oct 1994 15:54:10 GMT
Lines: 143


This is a patch to the kernel (boot/setup.S) that adds some extra
VGA textmodes to the kernel boot menu. The patch is relative to
1.1.46; I don't know whether it can be applied cleanly to later
versions.

On any VGA compatible card, it adds the following modes to the default
set of 80x25/28/50 (which use a 400-scanline frame at 70 Hz):

80x36   11-line font, 70 Hz
80x44   9-line font, 70 Hz
80x30   16-line font, 480-scanline frame, 60 Hz
80x40   12-line font, 480-scanline frame, 60 Hz

Note that the 9, 11 and 12-line font modes are initialized with the
8-line font in the BIOS. You can load a better-matching font with
'setfont' in the kbd package. Look in /usr/lib/kbd/consolefonts.
There's at least one 10-line font there (latin2-10.psf), and two
12-line fonts (latin1-12.psf, latin2-12.psf). These fonts are 'roman'
-like and slightly irregular. Anyone know where to find more 12-line
VGA fonts? (I think some could be converted from X).

The 480-line frame looks better on most monitors, if you can accept 
the 60 Hz refresh. These modes should be especially useful for those
running a laptop screen with 480 scanlines, on which the default
400-line textmodes may leave part of the screen unused.

The patch also adds support for the following Cirrus 54xx textmodes
(the modes are derived from the 132x25 400-scanline BIOS mode):

132x25, 132x28, 132x36, 132x44, 132x50, 132x30, 132x40, 132x60.

The 30, 40, and 60 line modes use a 480 scanline frame at 60 Hz.
The patch contains some disabled code to obtain 100xY modes on
a Cirrus 54xx which doesn't work. I don't know whether the
"CL-GD54" ID check works on most 542x/3x cards. 

Feedback is appreciated. If these modes work correctly on various VGA
compatible screens, they could be considered for inclusion into the
standard kernel release.

hhanemaa@cs.ruu.nl

To apply do something like this:
cd linux/arch/i386/boot (or linux/boot)
patch <setup.S.diff setup.S

begin 640 setup.S.diff.gz
M'XL("(V'DBX``W-E='5P+E,N9&EF9@#M6UN3V[85?I9_!9P^5.N59/`J2FW:
MI)NT31/',[&GKQF0A%;L4J3*RZ[6O[[G'(`025&7M==QIU./AQ1!G`O.#1]`
M[*M7KU@IJWH[>S?-TWCT?EVS;^M;9GO,=I:VMW0L9BT6[HOI=-IT'+VO)7L;
M58RY3:>YZO2J^P^?F36?V#:C1^2!CQZ#7],7C+UD9;Z1+%J+[%:63&0Q$W&<
M5$F>B92MI*CJ`MK#1W:S+I*RRK=K]G,B-R++)D3^1A31&F4[K_]19Y*T8&/3
M>:8[?Y,F6;V;Y<7M%9*]N$;2O)#LGW_[EE5R5VWR&.7'L8S9>`WJ`)GX)BIG
M15W/LO1JQMZAHG4IH?MFFQ>B>"0NY59$DN4K9OD_,E$QO@LX_&-5SI(,!B+2
MY(/$GB"7-/[Y[?OO7[+W:PFLUB)FH:PJ6<"-56O)2@%21`FT+,SSJI11-2N1
M]G=)%J5U+-D?:2BOHSQ;);>S]9\&;>YZ]L0-7&5UQD:%K.#V^A6#H<H,!WE_
M*Q@.>LD"OO,X>_4:.D"CQY<O7K+1)K\?B=WD=WQG69:-+;N\&(7I)$SQ(<FJ
M$;SBH]%+LDFP"]@JSRJ,$#8&=J`DV#//T,!7/88VYTT+,(06FP_Q%"G8)1.5
M9-LB0=91(65VP,OJ\G+</B\(H0P<M&)1791YP>2F3@5&F&&U1L(]HXA8<Y_/
MAUEE#:=Q&8E,#]5'C\\QND;;?#N*2_RU5]3CC@T,P`_(@DQ^@5_LP/C%#I8-
M;[%#7:)4@G"*F4I$=P=.L\XZ;;&S7/(:.0UD#3MM/6%#Y@EY]`3S6!;:Q[)/
M&,B*.@:R@XZ!RL8PI3()YL3+427+"H900(A`/F4J$T'H.X<R.UHGVQGF&@33
M;5XDU7K#'B"[*G$'D835R/6\"8ANZM'3$R42:3JB1QKH%_5_HXL=G-'EJ*FO
MC^OB^*C+-38Z_A)^(&\F=OBK$>SX2O"U$7S=%6R['<&.CQW."'9=(]AUCPAV
MW7."NR-VW0L$.WS"W(!/D35;%5"9)\SG[.\?E#Y`MQ%)ECY2`*9B"Q..+E(E
M>X!80V*&.:!2P%B/'[,>/S,(2W:MQR^QWNE!H.V.Z>.>T\<.ND9MZ?/9DG9H
MMO,YG_C<-[,=9,:H3"9Q&8'QXZIIBI/))C<M83$J90K*0>9DV%PM:7`Q#<Z)
M74RRF[6,[MA-4A1UR7X/$[`L?V^2B>8;J(+PG-<5$HH4'V"FA@<J+SZ@'=]V
M3'EY;LW`@E.`//PC51PRYGQN3^;S8,"8]TDL\WE'YWW3OS;;MM;P8K[<T];9
M798_9!W:?9NB6])L!;-+M&OTC]+).$ZNR)3S8#$)P,F'IGRR7E@K-7D21^EM
M[+F[7=_;-S]-__:=Y]J[U\[.V%5/@2`#/;$`FC%@/N`%$7TK,UDD$8M$$9=7
MO=F2H$0AMY+J]&9;AOCC7YD<@8>U!BVU,$!ZK2I&6HV]D36OEATVGVCXH0`)
M7'L2>'MLN:W+-90$_!G+2/\*Y;_53(0/`*M1LMBUXI+84R16C`#$?G;#7^4Z
MI3)C-?0ET>/0\KA\Z$YM:A:E*`GF?++P`Q,E9Y2[-LW7IEE-2@?-:LHX[,V'
M>_-G'[BNO.,RP>"")<2#%'=47?%M,U!\\]>D@'BLZ#T"A*S>A+#$@"JK9J)Q
M*$J8)P"IN9Q/FQF*68Z]@Z49<E02;NJBD%D%,UR-_;%D]Z,RW/5C-<*P3":A
MBM$0XAN9DS(=HB8*#TB$[-/@>RQEMD<=CK\/"(7"B%=YFN8/27;+!"SR.J,<
MSW'VNU+3TCX)JP<(AT,,!?Q*F,MAC0GPM8'(.OM83P_%9,D:=2"06NS54P\I
M==@#PFJS'^`.P,L,UG7;W-53#PYUN`.,.L,=T)7A[O$V=_74@[H=[LV2[SAW
MP,N&NT/+!7`_09.]:_PCKG$Z\IT!^<Y9^4Y+OML9G=OA[@YP=\]R!Q!E_.ZW
MN'?C5(OP!T3X>Q$M*BKFNCCTDOQGL-X^Q=<`E#[`4DZDK$HV$/BEJA'KI&3P
M'S$5K/*F,<Q`@!&SZBGY^]3<[>8E+*XM3OZ&&XORM-YDY.$_MWW0LQ`-)P"R
MEP!Q\EN`K0`P^72;[&0Z/-8V0HI<'5T-K6"./?,LA\5Y!24LAUE^K*=Y'/9^
MK:OPDM_=&5#['Z0:@*@DIN57G1&;0MXF926+LL="&I(D`XH60T%K<<!ZFGM`
MT0(3L'KTXQ:G#J.][&98_[SYZ4<'J[LL1)47716LRU6(NBHXUE%.QW2`D.IK
MT?A"[Q(@+Z4$RM&X%#-`IC*J%)L^*=E]CUM5IO6R8@@(#**6N3<)8#UF]B$7
M@"<M&W!,`Q5P#H]W+3:XO?<+CCC#O3G$>;F(2Q;OU.H.TR[*888$]6]^>7_#
M?GC]EFWSHB+"'RK,.X+K:N+,4[C"^F:"C:%JW.19CHNE:P"/5514$9(OFV66
ML2"8*9809!O4A$1A/S9&\M?$^`IIC)&[]#$!%_)VJC>ZKC'Q/HQ0(I'W*$*D
M,"^7K57==<\J[4U.6*ZEM("CC<!85$+9Z8,L<@(=J<CNKA2]_'>=%!(W/R.!
M6U%_^>'M.T6'-F:%Y@\%YQY("[G)8!54(H*!%<]]DM<E\2&*L9S=SH@.Y_M`
MKW3Q#6XGUR6V+E1KM!:%B#!=0;4T51NX:R@40Q*8Y>]Y*;W?XFH?$P%4?UC+
M#+<[*Y**>QD3O5L!CFU6PVA'&$0!)0VYJ(4V%O%P:W[&B?DI>TMLW$H&YS_`
M(E@RN=E6CWI@%99#OL2=YH9"EA.%0!',`^A4;)LE2&`M;%K;I[%R)\DOJQP6
M(AV1ED4BR0W@F8($-EU"J`^.;9Y4./&V'-OS.\'4*!1N)VK(S7YALZO0VE](
MFE^JIPFY3KSI&7-5Y!O\1J$!+2"\_4[+I.LYH"(F9E=Z''3]JK9!-*I9]LUA
MV68,M)%Z_>3=[RY#>V\PL_L]P//([G>?E]7EY;A]7L=WOZ_;<]R>46OW>Y#5
MR=WOS^`VLR\]MMPAOVF@?N@WZZS?SFR`GS80[G]?;J#]_O=G,%&S<``364,F
MTHN-I=G<:]<DVL(;*L>+)JJQ%B#I",=X)^6V6Y$;E?![U;3>=@K&$Y+(B!MG
M>?-1;"/0(N)>)*D(4WEE!M":+HTH58UP3X:FR`:9,6PTA`H*=>9#2?FG48G2
MIP$W9KY@:YG<KBL:+F?7S&)?,\MJ18A(^WH8D0HS]5Z+(36_/:5FA&599F@'
M'6`MM8$X:.NM`K"L!,`$#*UFA16<4EF<5CD<4ODO%UM6^Z:G(JQ&.@HN3BD8
MGE30P@\LB#_N95$ET(W%2;E-Q2,*Z29S@&.!9&&O,'>^9L["OV)3\.J4Z0FL
M)^6Y,[99C+/Q8BAA]?I].&$_(;<^?_X$Y](GT-ESTM%'D^>3YJJ#J>JT*9X<
M3PL()W#LLX13.XC49QNS<87[$4'_+?'2^R?[,`JX&??R@@%;`[[O5+EFT68L
M4CYF$>7P6*1EKA?%)3#ATY:)!\N)/Q1H?D]8V!96Y96*E.-,YT-,YUVF#GY%
M&S=<KU@./U=I_G"ZN/`AV_`N9RD.;$,E^'S9.N!L=SG'JS;G7AP>9^T-L?9Z
M2L_;K&F1=HG60^ZS^NYS#UD?U[F]W'V3E!%[6U?;NMH+&!=2Q*=6NA&:<DRK
MI:MNC:*HI<^-Q;W4.T!ZYR%,JK(S34F'MB4JL[@G1V[S5`#C1^IJMB2>;VJ8
M,)/>"M.9U4KG*W*?J)?Q#N\E>Z\*?$:%W:,*VR<4=B]0^/^0]31DM<Y"5JN!
MK.VR\N4AJ[@$LG:*[&^/6</SF/7T0F`(M'ZF%/2/I6!P(@/]_X4,/)EESPL:
MC_A.32:#'RDH`/67"CS;21]3DZSU/82X/20Q+-"F=",3FG.IZC1,^[,'(B$U
M/Y7;/(M+VES@MOL'XJ0^=_"`O?G[A]8GCZ3<.PUWGQUKYK$[Z++&&<X$1//M
MY=,08S>_.LFQ__`P7^V_I!!F[+,_G=U#F(SW,-D<$[AONM-LAP;%>S#8=[IL
M+X5D?`CM\1[:\]TN\TM!&7>&F#M=Y@LYQ/RLWNX0:[>G]Z++^D($S(=@*N_!
MU(4]P/LL`!XRB-4SB$.?H9IBGJ]6I1S2UYQKZ^2]VIP5+)91L@&U[D5:2ZPA
M:K]V0E^)5&.%&('HB0AK0,D0X$(I`,IQ,I.,3VW/NYJQ8U^Q%CZ?0-FPFL,W
M29R+.\C9Y6@FRBA)&/OJ[;<_TJKU*WK]SEF.1K/PL9)0Y0(+/SX%-EX7G*[4
MLE`M#EU=NGKX'<P0"NHLJ+.@SH(Z"^HL/+H&>`WQ.`M]>GXCLGH%2*0N9+$<
M,?9SO<E75,ZN[>7H#9Y/5.?AS>$4=5`0C-(]LX+?KJ?E%@R\2J+VD<)M6JN^
MS<E'DJM/\C<`#'TALD<Z%#F.S($6.HC\`GN+*FF9B/L3N-HT.H>N-HW7ME3G
M-2Q!EOO><^JM>JC>9!%[1?0NT="YOA:-BS0^6=177"/Z%+WL*6$1$YOOE7!4
M=PE+*KEK=8^P.R?YG.2#7G@ECW!!UW!""S2Z!FI$>*6S#YO\5F:YZ'/TJ)]'
M](V^="5E?)+GD[PYM<S5[X`X;@&&0E&4_8%[%"R>,DU5)'@8H=5G07U(F$?"
M/&+MT8"T0@NEEN)0RNSVP"$T3%L<N,4F&G4XL$44()%+0EWJ[E)W5UF(%'`]
M(C79AJ2,:2/3G>\-[TJZDO^:L1#YKYUTU`8A69[BKP]6M'2S]=^-`([:E"%@
M^)L\+5E*/W_)'TJ51(@/5OK45]ZD0$%'P[-8%/LSP<.9,3.9PS@FH#KICI]/
MJ<W2;72:#[K&4"U5UCSD13Q2I]O58*V(2HQK+=3=CE246%+?%YI>)])1!G:/
MD6H7II]K*T9-=IW5Q&D(FF2[4/?`Z$['SX"#R;\C'#QNZV='C]X.U=T-AR3@
MP6YMG5`-4L4B2E82F_0\+I!K0:)GM5@+XMTA.5%;0;1FHZ`2V,K>"\RD:/;)
MC"1L4$\U4-`W;,MOZ2LUS[#14_/6:7[4`,;2P5#8[)4TN7_<E&&78U]%$Q6:
MHRD)-&K&#GG:@:*%YT5WV`>\M?EUG3B>'":.J/^^:@Q00,I2XHM[X\UW@`]^
M??/VN^^;OTFC8V*;&LI'*%DJRDK]I9[CN!/+@:6D/B+SWX@VKMG^"+?1ZRM]
M>/NK"\"(_^7!B#\(1BQ^.12QK*<"D>`,"E'2+\0@EO^\"$3Q>U;\$9P#'Y;S
M*=!#.^`IP,.R/QIV*-(G0X[@`&^T,D?I1)#$HB[/<1T"-?X70S23/IS1#8YN
MP"-<U.#J!G#(GH_7].+FH+)!2'Y#8-[-+H1*^#=Q^MZ?(WM3V4="J?,"G@EJ
M73Z22Z'84VWS45#MI(0O`>7.*?2;0[VGN.%R*'ANG)\-*IX3_(Q0\IPKGQUJ
MGI/YW%#T@N+2AJHOS=\/J=(-4$P7YJ8>-V68BJFCG_5[3"7U-TKZ'J@[]L<[
M3I]X]W0_1]\;.L00%N>*GBMY>"=ZKJ9?O--?N[3^*N(Y,L,$C]O+3KL7S4';
@';ZF]S6]K^E],QGH4GIR!7!.TX];(?P',3ZVA3E$```Y
`
end


