Subject: v06i067: VT100TOOL for Sun's (vt100tool), Part08/10 Newsgroups: mod.sources Approved: rs@mirror.UUCP Submitted by: linus!ell (Ed Lafferty) Mod.sources: Volume 6, Issue 67 Archive-name: vt100tool [ I generally dislike posting anything other than source code. In this case, however, I'm making an exception because (a) there's no other way to do it; and (b) there is apparently a lot of demand for this program. So, I took the object and data files in the fontdir and libdir directories and uuencode'd them. The decode.sh script in the toplevel directory will uudecode them and remove the uu.xxx files; it lists the files by name, so you can check if you're missing something. This comment will appear at the beginning of each of the postings of this program. --r$ ] #!/bin/sh # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # Wrapped by rs@mirror.UUCP on Thu Jul 17 00:21:23 EDT 1986 # Contents: libdir/uu.ttyvt100.o libdir/uu.vt100keys.o # src/ttyvt100.h src/vt100fonts.c vconfig.h vt100tool.1 echo x - libdir/uu.ttyvt100.o sed 's/^XX//' > "libdir/uu.ttyvt100.o" <<'@//E*O*F libdir/uu.ttyvt100.o//' XXbegin 644 ttyvt100.o XXM !!P (\@ )0 !M@ 5N !!.5O_\0KD (_D XXM "12 D$B/Y D2@ )!9"KO_\("[__.6 ($#1_ !"D%*N__P,K@ XXM (3__&WB0J[__" N__SE@"! T?P <@$@@5"N__P,K@ (3__&W@<@$C XXMP0 !R B/! $ZY $ZY $AX 5.N0 !83W !3EY.=4Y6 XXM ,K@ $ #&88(&X " P0 QF#BU\ DL (<@0M00 ,+RX #"\N @O XXM.0 !A"$_O Q.7DYU3E;_M$C7(, J;@ ,3KD +"X $"!N A*J$ L XXM9@ 080 4#F #Y9.N0 !@ XXM ^,+SD "06(#D "024X O &$ #Z!03V #W(@.0 )!)2@"U __P@+O_\ XXML+D "16;B;E@"! T?P 2I!G$B\Y D%B\N__QA ]F4$]@!E*N__Q@ XXMSB N__RPN0 )%9M \F+SD "06+SD "1680 //E!/8 /$$JY D7F<6 XXM+SD "060J=A \D4$]A !!T8 .\B\Y D%D*G80 /#E!/8 .X&$ &I!@ XXM [880 :;F #M!P 2/ D&F #L1P(+X ;0 .O" Y D$K"Y D5F\2 XXM(#D "1Z9P RG(!L(%G "B(_D "02 "/\ @>0 0 XXMAU*Y " Y D%N. ($#1_ 4 " (#D "06YX@B .N)T($&@ XXM @0" Y D$N. T< @.0 )!;C@") T_P ,!$"@ __\B.0 )$+A XXM@="!,(!2N0 )!(@>0 !"$"\Y $AY $ZY %!/8 -_$*Y XXM D$B\Y D%B\Y D$F$ #@Y03V$ #UY@ /]"$\< "2F+SD "162'D XXM "2F3KD 4$\@.0 )!;GB"( ZXG0@0: "! (#D "16XX#1P" Y XXM D%N. (D#3_ P$0* #__R(Y D0N&!T($P@& #7H0!TB 2, , XXM@ #!G "(#( Q9TP,@ #)G1 R 06<,#( !"9S1@ "P XXM0KD #+D ! DGF80#+D " &9T< )@<@RY @ !G XXM\&!B< $CP ,N0 $ "2>9A ,N0 ( 9D)P F! #+D " XXM &?P8#!P B/ RY 0 ))YF$ RY @ !F$' "8 X, XXMN0 ( 9_!P 2/ $JY DGF8,2'@ !4ZY %A/0KD "0: XXM8 ,CA '2(!(P R ,&< (@,@ #%G3 R ,F=$#( !!9PP, XXM@ $)G-& +1"N0 ,N0 $ "2>9A ,N0 ( 9G1P F!R XXM#+D " &?P8&)P 2/ RY 0 ))YF$ RY @ !F XXM0G "8$ ,N0 ( 9_!@,' "(\ #+D ! DGF80#+D " XXM &80< )@#@RY @ !G\' !(\ #+D ! DGF8,2'@ XXM!4ZY %A/0KD "0:8 +GA '2(!(P 2 ,PR !6( $[00# [ XXM 9.^P " !( '@ J #8 0@ ,80 /+& P+SD "0680 3@& B+SD "0680 4 XXM@& 6+SD "0680 5@& *+SD "0680 5S%A/0KD "0:8 +,G PO@!M,' Y XXMO@!N*A Y D*4B 2,#0@"( Y8G0@1('2(%(P="!!( P(\ "0F8 * XXM_' [O@!F," Y D-N6 ($#1_ @N0 )"92N0 )#8C^0 )"8 "0J XXM0KD "0F8 *QG _O@!G?"/Y D)@ )"XC^0 )"H "0R(#D "0VY8 @ XXM0-'\ ""Y D)E*Y D-DJY D*F8D2KD "0F9QP,N0 $ "0V XXM9A C^0 )"8 "0J0KD "0F2KD "0J9@AP 2/ D*DJY D)F8(< $C XXMP )"8,N0 ( "0:9@ $A! '2(!(P R >&( !$9!^@0P "0 0@!@ 'X G "Z :H"I@"< L0#%@,P BH# XXM2 0J \@#SB Y D%I"Y D*B\ +SD "0280 )^%!/8 #ZB Y D%M"Y XXM D*B\ +SD "0280 )VE!/8 #S"\Y D%B Y D$M"Y D*B\ 80 ) XXMO%!/8 #KB\Y D%B Y D$I"Y D*B\ 80 )GE!/8 #D" Y D*E. XXM+P @.0 )"93@"\ 80 05E!/8 #A03R Y D%E. XXM+P O.0 )$IA !944$](> %3KD 6$]@ *V+SD "1.+SD "1*80 - XXML%!/+SD "1.+SD "1*80 6(%!/2'@ !4ZY %A/8 "@B Y D+F<4 XXM#( !9QP,@ )G,F F8O.0 )!9A [(6$]@ )6+SD "06+SD XXM "02+SD "1280 .+$_O Q@ (X+SD "06+SD "02+SD "1280 .#D_O XXM PO.0 )!9A Z 6$]@ (.< 8CP )!I@ ("2KD "0V9A C^0 )"X XXM 4KD "0V0J[__" N__RPN0 )#9L '8Y8 @0-'\ " 0#( ' XXM8@ .-! ,#L !D[[ ( $ 6 "P + < "( + H80 5IF 680 5QF 080 6 XXM F *80 5[& $80 5T%*N__Q@H$AX =(>0 )+4O.0 !.N0 !/[P , XXM8 !:$JY D+F86(#D "02Y8 @0-'\ $*08 !2@RY P )"YF XXM $\0J[__" N__SE@"! T?P 0I!2KO_\#*X "#__QN $88-X,N0 XXM !0 "0N9@ !"' !(\ "1>8 _ RY % )"YF #N0KD "1>8 XXMY RY !0 )"YF&DAX 1(>0 )+TO.0 !.N0 !/[P ,#+D & XXM D+F8 + @.0 )!)2@"\ (#D "064H O $AY DPDAN_\!.N0 !/ XXM[P 02&[_P$ZY %A/+P!(;O_ +SD 3KD 3^\ #&!B80 ''F!< XXM2KD "0N9AI(> 42'D "3++SD 3KD 3^\ # RY 0 )"YF XXM+DAX !1(>0 ). O.0 !.N0 !/[P ,8!)XF .0KD "1J8 9"N0 XXM)&Y"N0 )!I"N0 )!I"N0 )"9"N0 )"I"N0 )"Y"N0 )#)"N0 )!I@ XXM ,^2KD "0B9RP@.0 )")R()"!+P 0!TB 2,"0@2\ 80 #1%!/0KD "0B XXM0KD "0:8 #"A '2(!(P"/ D(F OI*N0 )')G &P(_D "1* D XXM.B/Y D3@ )#X0!TB 2, $@ #$,@ "EB %NT$ P.P &3OL @%2 XXM 5P!8@%B 6(!8@%B 6(!8@%B 6(!. %( 4 !8@%B %0 < ", *@!8@%2 5P XXMQ #2 -H _@%B 6(!8@%B 6(!8@%B 6(!8@%B 6(!8@%B 0P!'%.Y D%B\Y XXM D%B\Y D$F$ GI03V /12N0 )!8O.0 )!8O.0 )!)A )>4$]@ XXM #8+SD "064KD "02+SD "0280 "0E!/8 O"\Y D%E.Y D$B\Y XXM D$F$ B903V *!"IT*G80 "&%!/8 DF$ [Q@ "*+SD "0680 ( XXM9%A/+SD "1.(#D "064H O &$ !NQ03V!D+SD "0680 (0%A/8%9P"B/ XXM D&D*Y D(F!&2'@ TAY D]2\Y $ZY $_O Q@*D*Y D XXM0 )/DO.0 !.N0 XXM !/[P ,8%IA -<8%1A .:8$YP""/ D&F!$< DCP )!I@.G '(\ XXM "0:8#!P 2/ D=F F0KD "1V8!YA 3X8!A"N0 )!I@$&-;6DU(140^ XXM/3@W,C$I*"-"N0 )"9"N0 )"I"N0 )"Y"N0 )#(,N0 $ "0:9A9" XXMN0 )!I@#D*Y D&G "(\ 4X9@ .^&+SD "02+SD "063KD XXM4$\@+@ 03.X@P/^T3EY.=4Y6__P@+@ (L+D "12;@@M>0 )%( "" N BP XXMN0 )%9M""UY D5@ (("X #+"Y D.FX6(#D "06L+D "0Z;0@M>0 XXM)#H #" N RPN0 )#YM%B Y D%K"Y D/FX(+7D "0^ PM>0 )!;_ XXM_$JN QL!$*N PC[@ , D%B/N @ "02+RX ""\N Q.N0 !03R\N XXM__PO+@ ,3KD 4$].7DYU3E8 $JY D-F3G5.5@ XXM(#D "06L+D "0Z9Q8@.0 )!93@"\ +SD "0280#^+F J(#D "06L+D XXM "0Z9AYA;F$ "JX@.0 )!92@"\ +SD "063KD 4$].7DYU3E;_^"UY XXM /_\+7D __@C^0 )#H (_D "0^ "\Y "\Y XXM &$ ##Y03R/N__P (^[_^ !.7DYU3E;_^"UY /_\+7D XXM__@C^0 )#H (_D "0^ "\Y "\Y &$ #6103R/N__P XXM (^[_^ !.7DYU3E8 "/Y D%@ C^0 )!( (_D "1" XXM "/Y DG@ C^0 (_D $Y>3G5.5@ (_D XXM D%B/Y )!(C^0 "1"(#D "1"" &<$80 +"B Y XXM D0@@ %G!&$ "SP@.0 )$(( "9P1A L&(_D DG@RY XXM 0 ))YF$ RY @ !F$' "8 X,N0 ( 9_!P 2/ "/Y XXM C^0 2'@ !4ZY %A/3EY.=4Y6__Q"KO_\0KD XXM "1>0KD "1:<@$CP0 )'I"N0 )!)"N0 )!9"N0 )#IR%R/! D/B\Y XXM D3B\Y D2F$ 2A03R\Y D3B\Y D2F$ "9A03R!Y DJ-'Y D XXM5D(H $@+O_\L+D "1.;B O $*G80#[[E!/0J0 O.0 !.N0 !/[P ,3EY.=4Y6 !"N0 XXM)%YR 2/! D>D*Y D6D*Y D?D*Y D$D*Y D%D*Y D0D*Y D XXM.G(7(\$ "0^+SD "1.+SD "1*83Q03R\Y D3B\Y D2F$ "*Y03T*Y XXM D3G5.5O_L+7D XXM "02__0M>0 )!;_\" Y D0G($P($M0/_X3KD ('D "2LT?D "16 XXM0B@ 2UN C__" N__RPK@ ,;E8O $*G80#ZL%!/(#D "164H!L"B Y D XXM5E* 8 )P "U _^P@+O_\Y8 @0-'Y "!0T>[_[$(0("[__.6 ($#1^0 XXM @4!%N_^___U*N__Q@H" N Q2@"\ +RX "$ZY %!/('D "2LT?D XXM "160 )!;_^$ZY "/N ! "06('D XXM "2L0C!X "\N @O.0 )*Q.N0 !03R!Y DK'(@$8%X " Y D0@@ XXM )G!DZY "\N__@O+O_\80#YJ%!/+B[_\$Y>3G5.5O_X+RX ""\Y D XXM5B\Y D$F$ _VI/[P ,(#D "164H B.0 )!*R@&\*(#D "164H!@!B Y XXM D$BU __@@+@ (Y8 @0-'Y "!0T>[_^$(0("X ".6 ($#1^0 @ XXM4!%N__O__TY>3G5.5O_X+7D "06__A*N0 )%IG(" N S0N0 )#HM0/_\ XXML+D "0^;Q M>0 )#[__& &+6X #/_\(^X " )!(C[O_\ D%B\N @O XXM+O_\3KD 4$\O+O_X+SD "063KD 4$].7DYU3E8 $Y>3G5.5@ XXM0J="IT*G2'@ "B\Y "\Y "!Y ' D*@ #"\ ('D < "0 XXMJ (+P @>0 O* $('D (% @4$Z03^\ )$Y>3G5.5@ 0J="IT*G XXM2'@ "B\Y "\Y "!Y ' D*@ #"\ ('D < "0J (+P @ XXM>0 O* $('D (% @4$Z03^\ )$Y>3G5.5O_X("X ".. ($#1_ XXM "4/_]("X ".. ($#1_ !R08-00J[__" N CGB"( ZXG0@0: XXM "! ("[__.. T< "4/_]("X ".>((@#KB="!!H ($ @+O_\XX#1P')! XXM@U!2KO_\#*X "#__QOLB N CE@"! T?D (% 0*/__ H #_L+D XXM "1^2KD "1^9P1P0F "<"@B.0 )%92@;"!;PH@.0 )%92@& .2KD "1^ XXM9P1P0F "<"@M0/_X("X ".6 ($#1^0 @4-'N__A"$" N CE@"! T?D XXM (% 1;O_[__\O+@ (3KD 6$].7DYU3E;_^" N CC@"! T?P XXM E#__B N CC@"! T?P ((@#KB="!!H ($ @+O_\XX#1P )0_[Q2KO_\#*X XXM "#__QOTB\N A.N0 !83TY>3G5.5O_X("X ".. ($#1_ "4/_\ XXM("X ".. ($#1_ !R0(-00J[__" N CGB"( ZXG0@0: "! ("[_ XXM_.. T< "4/_\("X ".>((@#KB="!!H ($ @+O_\XX#1P') @U!2KO_\ XXM#*X "#__QOLB N CE@"! T?D (% 0*/__ H #_L+D "1^2KD XXM "1^9P1P0F "<"@B.0 )%92@;"!;PH@.0 )%92@& .2KD "1^9P1P0F " XXM<"@M0/_X("X ".6 ($#1^0 @4-'N__A"$" N CE@"! T?D (% 1 XXM;O_[__\O+@ (3KD 6$].7DYU3E8 $*Y DGDAX 5.N0 !83TY> XXM3G5.5@ <@$CP0 ))Y(> %3KD 6$].7DYU3E;_^"UY D.O_\("[_ XXM_+"Y D/FQPXX @0-'\ " N__Q2@.. (D#3_ PD4*N__@@+O_\ XXMYX@B .N)T($&@ @0" N__CC@-' ("[__%* YX@B .N)T($&@ B XXM0" N__CC@-/ ,)%2KO_X#*X "$__AMME*N__Q@A" Y D/N. ($#1_ XXM !*N0 )'YG!' @8 )P #" 0J[_^" Y D/N>((@#KB="!!H ($ @ XXM+O_XXX#1P" Y D/N. (D#3_ PD5*N__@,K@ (3_^&W"3EY.=4Y6 XXM__@M>0 )#[__" N__RPN0 )#IO<.. ($#1_ @+O_\4X#C@") T_P XXM ,)%"KO_X("[__.>((@#KB="!!H ($ @+O_XXX#1P" N__Q3@.>( XXM(@#KB="!!H (D @+O_XXX#3P#"14J[_^ RN A/_X;;93KO_\8(0@ XXM.0 )#KC@"! T?P 2KD "1^9P1P(& "< P@$*N__@@.0 )#KGB"( XXMZXG0@0: "! ("[_^.. T< @.0 )#KC@") T_P ,)%2KO_X#*X XXM "$__AMPDY>3G5.5O_X+6X "/_\("[__+"N QN7N. ($#1_ !*N0 XXM)'YG!' @8 )P #" 0J[_^" N__SGB"( ZXG0@0: "! ("[_^.. T< @ XXM+O_\XX B0-/\ #"14J[_^ RN A/_X;<92KO_\8)A.7DYU3E8 $*Y XXM D0D*Y $ZY $AX 5.N0 !83TY>3G5.5@ <@&#N0 )$)( XXM> %3KD 6$].7DYU3E8 '($@[D "1"3KD 3EY.=4Y6 !R"(.Y XXM D0DY>3G5.5@ <@$CP0 !R H.Y D0DY>3G5.5O_T("X #)"N @O XXM " N A2@"\ +RX "$ZY $_O P@+@ ,Y8 @0-'Y "U0__A"KO_\ XXM("[__+"Y &X0(&[_^-' 0 "0J ,+P @.0 )%(B XXM.0 !.N0 @>0 "0J (+P @>0 O* $2'@ &" N R0K@ ( XXM(CD 3KD +P O.0 @+@ ((CD 3KD ('D D*@ XXM#"\ (#D "12(CD 3KD ('D D*@ ""\ ('D +R@ !"!Y XXM "!0(%!.D$_O "0O+@ ,+SD +SD 3KD 3^\ #$Y>3G5. XXM5O_P("X #)"N @O " N Q3@"\ +RX #&$ 59/[P ,("X ".6 ($#1^0 XXM M4/_T0J[__" N__RPN0 !N$"!N__31P'(@$(%2KO_\8.0@.0 )%92 XXM@&P*(#D "164H!@ G +4#_\" N CE@"! T?D (%#1[O_P0A @+@ ( XXMY8 @0-'Y "!0$6[_\___("X ""(Y $ZY "!Y )"H PO XXM " Y D4B(Y $ZY "!Y )"H @O "!Y "\H 1(> 8 XXM("X #)"N @B.0 !.N0 O "\Y " N A2@"(Y $ZY XXM "!Y )"H PO " Y D4B(Y $ZY "!Y )"H @O "!Y XXM "\H 0@>0 @4"!03I!/[P D+RX ""\Y "\Y $ZY XXM $_O Q.7DYU3E8 " N !!3K@ 02H!G'B N Q3K@ ,+P @+@ (4ZX ""\ XXM3KD 4$]@UDY>3G5.5O_80B[_YW(D'4'_XW(&+4'_WDJN_]YO1! N_^/1 XXM+O_G("[_WN6((@#EB="!Y8G0@7)D3KD +4#_VAVN_^<(^" N_]H=KO_G XXM"/ @+O_:':[_YPCH4Z[_WF"V'7P ___X'7P ___P'7P ___H0B[__T(N__=" XXM+O_O2&[_Z$AN__!(;O_X2'@ "$*G('D +R@ !"!Y "!0(&@ )$Z0 XXM3^\ &' (3EY.=0 )5HE)4TE("5))2 E124@0V]P>7(@,3DX-2!-251212!# XXM;W)P+@ XXM !< XXM 7 $\ XXM !0 @ 0 XXM"@ 8P "4$ ECAM;,DH &UL_,3LP8P ;6S!N !M;)74[)752 XXM !M;,CLQ.S$[,3$R.S$Q,CLQ.S!X !M;,SLQ.S$[,3$R.S$Q,CLQ.S!X !LO XXM6@ ;6S\Q.S!C $5%145%145%145%145%145%145%145%145%145%145% XXM145%145%145%145%145%145%145%145%145%145%145%145%145%145%145% XXM145%145%145%145%145%145%145%145%145%145%145%145%145%145%145% XXM145%145%145%145%145% " @(" @(" @(" @(" @(" @(" @(" @(" @(" @ XXM(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ XXM(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ XXM(" @(" @(" @(" @(" @( 8 &]0 # !D 0 &0 XXM !8 9 &@ !D L ![4 $X 'M0 : 0E !P !& XXM4 '8 !Y0 ? #E "& "$4 *P 9 P@ @% #> XXM !=4 /P 9 !+ !D $R &0 3@ 9 !/@ !D XXM %$ &0 5H #E0 !R@ "% '4 &0 =H 9 ![@ XXM!D '^ &0 @H 'M0 "% !D (P &0 CH 9 " XXM0 !D )0 &0 E@ 9 ";@ !D *2 &0 J0 9 XXM "J@ !D *R &0 L0 9 "R C5 +. !14 M( XXM &90 "V 9E +@ !F4 N8 9 "\ -E +Z &0 XXM P@ '50 #$ !D ,: &0 R0 #90 #,@ !D ,^ & XXM0 T0 &90 #3 C5 -2 !14 U@ #!0 #9 !D -J XXM &0 W 9 #A !D .* &0 Y 9 #E@ ,% XXM .> &0 ZP '50 #M !D .^ &0 \@ #90 #U@ XXM!D 0: !"4 !"0 9 $, 1E 1 !"4 !$P $)0 $ XXM5@ !D 1B !&4 !'( $)0 $?@ 0E 2( &0 !)0 $90 XXM $I 0E 2N "/4 !+0 9 $P A% 3( &0 !08 XXM $90 %$ !D 4< !&4 !2P $)0 %. 1E 5" &0 XXM!4X $90 %7@ 0E 5J !&4 !70 9 %@ 1E 60 !" XXM4 !9H (]0 %I !D 6P "$4 !;@ 9 %] !D 8 XXM &0 !@P 9 && !D 8D &0 !CH 9 &6@ !D XXM 9J &0 !G0 #E0 &>@ !D : &0 !H8 9 &B@ XXM!D :0 &0 !J 9 &I !D :J &0 !JX 9 & XXMM !D :^ Y4 !L0 9 &R@ !D ;0 &0 !M@ 9 XXM &Y !D ;L &0 !O 9 &]@ !D ;\ &0 !P8 XXM 9 '# !D <6 &0 !R 9 '> !D =^ &0 XXM!X8 9 'E@ !D >< &0 !Z0 9 'M !D >Z & XXM0 !\ 9 'T@ !D ?8 &0 !]X 9 '\ !D ?Z XXM &0 " X 9 (+ !D @X &0 "#X 9 (3@ !D XXM A4 &0 "&@ (10 (= !D AZ &0 "( 9 (C@ XXM!D B8 &0 "*0 9 (K@ !D B^ "$4 ",H 9 ( XXMT !D C< &0 ".( 9 (\@ A% C^ &0 "1H 9 XXM )*@ !D DP &0 "38 9 )2 !D E. &0 "50 XXM 9 )8@ !D ET &0 "7X 9 )A@ !D F* Y4 XXM"9 9 )G@ !D FL Y4 "?X 9 *! @% H* !W XXM4 "A@ 9 *( !D HJ ![4 "CH 9 *4 >U IN XXM &0 "GH 9 *B !D J2 &0 "J 9 *K !D XXM JR " 4 "K@ '=0 *Q@ !D K0 &0 "MH 9 *Y XXM!D KN !74 "OP (50 +"@ @% L0 !W4 "R( 9 + XXM+@ !D LT " 4 "SH '=0 +2 !D M4 &0 "UH (!0 XXM +8 =U N" &0 "XH 9 +D !D N6 &0 "YP XXM 9 +H@ !D NP &0 "]8 9 ,!@ !D P2 &0 XXM#!P 9 ,(@ !D PH &0 ##0 9 ,.@ !D Q& & XXM0 #$P 9 ,4 !D Q6 &0 #%H 9 ,;@ A% Q\ XXM &0 #(8 9 ,D@ !D RB &0 #*@ 9 ,K@ !D XXM S &0 #,P 9 ,V !D SB &0 #1 9 -' XXM!D TB &0 #2@ 9 -+ !D TR &0 #38 9 - XXM0 !D U( &0 #4X 9 -5 !D U@ &0 #68 9 XXM -<@ !D UX &0 #7P 9 -@@ !D V& &0 #9H XXM (10 -I !D VP &0 #;@ 9 -Q !D W* &0 XXM#= 9 -W@ !D WF &0 #>X 9 -] !D WZ & XXM0 #@ 9 .!@ !D X, &0 #A( 9 .& !D XB XXM &0 #BH 9 .1@ !D Y, &0 #EP 9 .9@ !D XXM YP &0 #G0 9 .>@ !D Y^ &0 #O@ 9 ._@ XXM!D \$ &0 #Q0 9 /&@ !D \@ &0 #S 9 / XXM-@ !D \\ &0 #TP 9 /4@ !D ]8 &0 #WX 9 XXM /B@ !D ^0 &0 #Z( 9 /L@ !D ^X &0 #\0 XXM 9 /R@ @% _0 !W4 #]P 9 /Y !D _N &0 XXM#_@ 9 0 !D ! * &0 $!0 9 0:@ !D !!\ & XXM0 $)( 9 0G >U !"R &0 $+@ (!0 0O@ =U !#8 XXM &0 $.( 9 0[ !D !#V &0 $/X 9 1# !D XXM !$D &0 $2H 9 1, !D !$V &0 $4 9 12 XXM!D !%0 &0 $5@ I0 19 !D !%J &0 $7 %I0 1 XXMC@ !D !&6 &0 $:( 9 1J@ !D !&V &0 $;X 9 XXM 1Q !D !', &0 $=@ 9 1X !D !'F &0 $>X XXM 9 1]@ !D !(* &0 $A( 9 2( 55 !(P !B4 XXM$D 9 23 !D !)8 &0 $F 9 29@ !D !)R & XXM0 $GH 9 2?@ !D !*$ &0 $H@ 9 2D@ !D !*8 XXM &0 $J 9 2J !D !*N &0 $K8 9 2O !D XXM !+$ &0 $N 9 2Y@ !D !+N &0 $O@ 9 3! XXM!D !,* &0 $Q@ 9 3(@ !D !,H !B4 $S@ 9 3 XXM/@ !D !-& &0 $U 9 37 !D !-B &0 $W 9 XXM 3>@ !D !. !B4 $Y "Y0 3F (U !.@ &0 $Z0 XXM "Y0 3J@ !D !.N C4 $[0 "-0 3N@ +E !/( N4 XXM$] "-0 3W@ +E !/F C4 $^X 9 3\@ +E !/X & XXM0 $_P "-0 4 @ (U !0( N4 %!8 "Y0 4'@ (U !0L XXM &0 %# !10 4-@ !D !0Z G4 %$ 9 41 &E XXM !1* &0 %$X 10 45 0E !18 !Y4 %%X $90 48@ XXM>E !1P 44 %'0 9 4>@ )U !1^ &0 %(0 !I0 4 XXMB !D !2. &0 %)X 9 4K@ !D !2^ $4 %,( 9 XXM 4S !D !38 !&4 %.@ $)0 4\@ CU !3X !Y4 %/P XXM $)0 5 @ >E !4& !&4 %1 (10 5) !D !4J &0 XXM%3( 9 5. !D !4^ &0 %40 9 53 !D !52 & XXM0 %5@ 9 59 !D !5J &0 %78 9 5? !D !6* XXM &0 %9X 9 5I ,% !6R &0 %;@ 9 5U@ :U XXM !7< "%4 %>8 &M0 5[ @% !7R !W4 %@0 9 6# XXM!D !82 &0 %A@ 9 6'@ !D !8D &0 %BH 9 6 XXM, !D !8X &0 %CX 9 61 !D !9. &0 %E0 9 XXM 68 !D !9J "$4 %G( 9 6> !D !:, &0 %I0 XXM 9 6G !D !:J Q4 %K 9 6M@ !D !;: &0 XXM%N0 9 6_ $E !<2 24 %S( "]0 7.@ !D != & XXM0 %U( 'Y0 7? !D !>$ &0 %XP #%0 7E !D !>: XXM &0 %Z@ 9 7K@ ,% !>V &0 %\( 9 7S@ ?E XXM !?R &0 %_@ 9 8!@ !D !@. &0 &!@ 9 8(@ XXM!D !@T 24 &$H !)0 88 !D !AH &0 &'0 9 8 XXM?@ !D !B& &0 &)@ 9 8H !D !BN !54 &+H 9 XXM 8P 8E !CB !R4 &.@ %)0 8[@ %E !C\ 64 &0H XXM !90 9% %E !DV !R4 &3P %)0 90@ %E !E0 64 XXM&5X !90 9: %E !F( V4 &9H #90 9M =5 !G4 !U XXM4 &?X !)0 :$ !D !H6 &0 &B0 9 :, !D !HZ XXM &0 &E0 !)0 ::@ $E !I\ "(4 &I0 #90 :I@ -E XXM !K !U4 &N '50 ;"@ $E !L< &0 &R( 9 ;, XXM!D !L\ &0 &T8 9 ;8 $E !MV 24 &X@ (A0 ; XXMH -E !NZ !U4 &^ (A0 ;^ -E !P* V4 '"0 '50 XXM <1 =5 !QN 24 '( 9 ( !D XXM !XL &0 'C@ #90 >2 -E !Y@ !U4 'GX '50 >I XXM!D !ZN V4 'K0 9 >R !D ![6 !U4 'N8 9 > XXM\ -E !\B V4 'R@ 9 ?2 =5 !]@ V4 'X0 9 XXM ?B@ ;U !^0 Q4 'YH (10 ?K !D !^V "$4 '\@ XXM 9 ?S@ ?E !_> &0 '^X &]0 ?]@ !D " : !%4 XXM("P !)0 @/@ 5% "!6 &0 (& 9 @> $E "". 2 XXM4 (*( ']0 @J U ""N 64 (+H 9 @P 3U "#& XXM #4 (,P !90 @V %E "#N !_4 (/0 -0 @_ 4E XXM "$& !_4 (0P -0 A$@ %E "$> &0 (20 $]0 A*@ XXM U "$P 64 (3P !90 A1@ %E "%: !44 (6 'U0 A XXM9@ :5 "&> 24 (; %10 AR !D "'2 &0 (>H !)0 XXM B $E "(2 !_4 (A@ -0 B'@ %E "(J &0 (C XXM $]0 B-@ U "(\ 64 (D@ !90 B7@ ?U ")D #4 XXM(FP %)0 B> ?U ")^ #4 (H0 !90 BD !D "*6 !/ XXM4 (IP -0 BH@ %E "*N 64 (K@ !90 BS 5% "+2 XXM !]4 (M@ &E0 C"@ D% "-, !94 (Z8 !90 CL %E XXM #@ &0 .0 9 ! 4 !\( $ < "1: '0< XXM "2H )@$ + $ $ -@< "2> XXM108 "/( 304 !4: 5@$ 8P< "2& XXM ;P$ $ =P< "1* ?04 !N2 B@4 XXM !OJ E0$ GP4 !/8 K 4 !_F M@< XXM "2F OP$ $ Q@< "0J RP$ $ XXMU0< "06 W@$ Z@< "1& \@4 !T0 XXM _0< "1V !# $ $ !$P4 !_ !'P4 XXM !+: !)@4 !.* !,0$ !/ 4 !1@4 XXM !X: !5@< "2" !90< "0^ != $ $ ! XXM? < "0B !@ 4 !:& !BP< "1> !E $ $ XXM !G@4 !_^ !J0< "02 !L@4 "2 !O0$ XXM 0 !Q0$ $ !S@< "0Z !V@$ $ !WP$ XXM ![0$ !_P$ "!P< "0> " XXM#P< "0N "%P< "2B "(0< "2L "*0$ P XXM ", 4 !=H ".@< "1N "10$ H "2@< XXM "0F "3@< "/V "5@< "/R "7@< "/^ "9@< XXM "/Z ";@< "0" "=@< "0& "?@< "0* " XXMA@$ $ "B@< "0. "D@4 "+D "H $ XXM "K0$ $ "L0< "1" "NP$ $ "QP$ XXM "$ "S 4 !_6 "U@< "2: "[@< "26 "_@< XXM "22 ##0< "2. #' $ $ #)@4 !7^ # XXM+0$ $L #.@$ $ #10< "1. #3@$ $ XXM #50$ #6P< "/N #8@$ #:P4 XXM !(Z #?@$ #A $ #D 4 !1J #H 4 XXM !0F #K0$ #NP< "1^ #QP4 "%R # XXMT@4 !70 #W@< "1F #Z $ #]0< "0: XXM #_ < "1J $! < "12 $"P$ $ $%0< XXM "16 $'0< "1Z $(P$ $+P4 !SV $.@$ XXM ? $2@$ $ $60< "1B $8 < "0R $ XXM:0$ $ $=0< "0V $?04 !^D $A@$ $ XXM $D@4 !&$ $EP4 !J& $I $ !C $L04 XXM !TL $OP$ $S 4 !?H $TP$ $ $V $ XXM $ $W0$ (0 $YP< "1R $\0$ $ $ XXM]P$ $_0$ $ %" $ %$ 4 !,R XXM %& 4 !C2 %*P4 !DF %/@$ %2 $ XXM %4 4 ",6 %9P< "2* %=@$ %?P4 XXM !A: %B 4 !C* %C@4 !]^ %EP4 #0 % XXMI0$ $ %LP$ $ %O@$ $ %R0$ XXM %SP4 !EZ %V5]C;&5A5]A;G-I %]O8F]L9 !?4F5V97)S95]O;@!?26YD97@ 7W-C7-W7VEN<'5T %]C;&5O; !?;V

7-W7V]U='!U= !?8W5R "libdir/uu.vt100keys.o" <<'@//E*O*F libdir/uu.vt100keys.o//' XXbegin 644 vt100keys.o XXM !!P "F0 8, ; %6 L!.5O_X0J[__$*N__@M XXM>0 #_^$JY &8,(#D 5( M0/_X2KD 9PY*N0 !G!G # XXM+4#__$JY &<.2KD 9@9P 2U __Q*N0 !F#DJY &<&< 0M XXM0/_\2KD 9@Y*N0 !F!G "+4#__" N @$@ ?RL,@ "=B =2 XXMT$ P.P &3OL @!4 %0 5 !4 %0 5 !4 %0 5 =&!T8'1@=&!T8'1@!> +(! XXM!@%: :X" @)6 JH"_@-2 Z8#^@1.!*($]@=&!5(%7 5F!:0%X@8@!EX&L@;\ XXM8 &^B \ -6& !O @+O_\4X ,@ -B \T$ P.P &3OL @ ( !( XXM' F(#P U98 &Q" \ -7& !KH@/ #6!@ :P(#P UC8 &IB \ XXM -9V !IP@+O_\4X ,@ -B \T$ P.P &3OL @ ( !( ' F(#P XXM UH8 &<" \ -:V !F8@/ #6]@ 9<(#P UR8 &4B \ -=F XXM!D@@+O_\4X ,@ -B \T$ P.P &3OL @ ( !( ' F(#P UW8 & XXM'" \ ->F !A(@/ #7Y@ 8((#P V!8 %_B \ -A6 !?0@+O_\ XXM4X ,@ -B \T$ P.P &3OL @ ( !( ' F(#P V&8 %R" \ - XXMB& !;X@/ #8I@ 6T(#P V.8 %JB \ -DF !: @+O_\4X ,@ XXM -B \T$ P.P &3OL @ ( !( ' F(#P V38 %=" \ -E6 !6H@ XXM/ #9=@ 5@(#P V;8 %5B \ -GV !4P@+O_\4X ,@ -B \ XXMT$ P.P &3OL @ ( !( ' F(#P V@8 %(" \ -HF !18@/ #:1@ XXM 4,(#P VH8 % B \ -K& !/@@+O_\4X ,@ -B \T$ P.P & XXM3OL @ ( !( ' F(#P VM8 $S" \ -KV !,(@/ #;%@ 2X(#P XXM VU8 $KB \ -N6 !*0@+O_\4X ,@ -B \T$ P.P &3OL @ ( XXM !( ' F(#P VZ8 $>" \ -O& !&X@/ #;Y@ 1D(#P W"8 $ XXM6B \ -QF !% @+O_\4X ,@ -B \T$ P.P &3OL @ ( !( ' F XXM(#P W'8 $)" \ -R6 !!H@/ #5@ -H(#P WI8 #7B \ -[6 U0@+O_\4X , XXM@ -B \T$ P.P &3OL @ ( !( ' F(#P WN8 #*" \ -\& XXM QX@/ #?)@ ,4(#P WV8 #"B \ -^F P @+O_\4X ,@ -B XXM \T$ P.P &3OL @ ( !( ' F(#P W[8 "U" \ -_6 LH@/ XXM#?]@ + (#P X#8 "MB \ .!V JP@+O_\4X ,@ -B \T$ P XXM.P &3OL @ ( !( ' F(#P X(8 "@" \ ."F G8@/ #@Q@ )L XXM(#P X08 "8B \ .%& E@@+O_\4X ,@ -B !$T$ P.P &3OL XXM @ ( @ ) N2KD 9PH@/ #A5@ (D(#P X88 "&B \ .&F XXM A @/ #AY@ (&(#P XB8 !_" \ .(V ?(@/ #B1@ 'H("[_ XXM^'(!L(%G%G("L(%G&G(#L(%G'B \ .,& <@@/ #B5@ &^(#P XH XXM8 !M" \ .+& :H@+O_X<@&P@6<6<@*P@6<:<@.P@6<>(#P X\8 ! XXMBB \ .,6 8 @/ #C1@ %V(#P XX8 !;" N__AR ;"!9Q9R K"! XXM9QIR ["!9QX@/ #DA@ %,(#P X]8 !0B \ .0& 3@@/ #D1@ XXM $N("[_^'(!L(%G%G("L(%G&G(#L(%G'B \ .5& 0X@/ #DE@ $$ XXM(#P Y,8 ^B \ .4& / @+O_\4X ,@ -B \T$ P.P &3OL XXM @ ( !( ' F(#P Y58 Q" \ .6& +H@/ #EQ@ "P(#P Y? XXM8 IB \ .8V )P@+O_\4X ,@ -B TT$ P.P &3OL @ ( ! XXM& @(#P YD8' @/ #F9@:" \ .:&!@(#P YL8%@@/ #G!@4" N XXM__Q3@ R V( #300# [ 9.^P " @ $ 8 " @/ #G%@)B \ . XXM(#P YU8!8@/ #GE@#B \ .?6 &(#P Y^3EY.=4Y6 !A1$AX XXM -=(>0 #G]A % 4$](> #92'D Z"80 !,%!/2'@ VTAY .AF$ 2!0 XXM3TAX -U(>0 #HIA $04$].7DYU3E8 $AX )(>0 #HY.N0 !03R/ XXM &PH2'D ZU2'D Z62'D H3KD 3^\ #$AX ).N0 !8 XXM3TAY $AY0!A& "\Y $ZY $_O Q*@&PH2'D [>2'D Z^ XXM2'D H3KD 3^\ #$AX ).N0 !83PRY @ !G*$AY . XXM_TAY .YTAY *$ZY $_O Q(> "3KD 6$](> "2'D \( XXM3KD 4$\CP !L*$AY /+4AY /$4AY *$ZY $_O Q( XXM> "3KD 6$].7DYU3E;_Y$*N__Q![O_H+4C_Y"!N @0$$B 2,!R0["! XXM9PYR4["!9Q @;O_D0I!@%"!N_^1R,& &(&[_Y'(.((%2K@ (0J[_^& .4J[_ XXM^ RN 6/_X;"Q(> #("[_^.> ($#1_ "I@O$"\N A.N0 !/[P , XXM2H!FS'(!+4'__$JN__QF+"\N A(>0 #U)(>0 #S9(>0 "A.N0 !/ XXM[P 02'@ DZY %A/(&[_Y" N__CG@") T_P J<(!$10 $(&[_Y!%N XXM \ !2\N_^1(>8 0:P$O.0 !.N0 !/[P ,2H!L+"\N A(>0 #WU( XXM>0 #UM(>0 "A.N0 !/[P 02'@ DZY %A/3EY.=4 H(REV=#$P XXM,&ME>7,N8R Q+C8@.#8O,#0O,3$@0V]P>7(@,3DX-2!-251212!#;W)P XXM ^( 5P #XH !K /C "@ ^. ; #Y !M /D@ XXM "< ^4 '@ #Y8 ? /F " ^: (0 #YP B / XXMG@ ", ^@ ) #Z( E /I "8 ^F 5@ #Z@ I XXM /J@ !, ^P *P #[, !" /MP !T ^[ 0 #[X XXM !A /P@ , _% &0 #\@ : /RP #$ _. ,P XXM#]$ !( /U $D _7 7P #]H !O /W0 !4 _@ XXM6P #^0 !< /Z %T _L < #_ !Q /] '( _X XXM %@ #_L 7 /_@ "T ! ! +@ $ 0 O 0!P $0 XXM ! * 10 $ T !& 0$ %D ! 4 !0 $!< & 0&@ XXM @ ! = "@ $" , 0(P X ! F $ $"D 1 0 XXM+ !( ! O -0 $#, ! 0-0 %@ ! W 00 $#D J XXM 0.P $T ! ] : $#\ !F 000 $\ !!# . $$4 XXM !0 01P %$ !!) 4@ $$L ] 030 %, !!/ 5 XXM$%$ !5 04P &H !!5 :0 $%< ^ 060 #\ !!; XXM-@ $%T Y 07P $X !!A .@ $&, \ 090 &< !!G XXM -P $&D !E 0:P #L !!M 9 ;4 ;3U &U &T]0 ; XXM40 ;3U$ &U$ &T]1 ;4@ ;3U( &U( &T]2 W #< &S]W !M/=P . X XXM !L_> ;3W@ #D .0 ;/WD &T]Y T #0 &S]T !M/= -0 U !L_=0 ; XXM3W4 #8 -@ ;/W8 &T]V Q #$ &S]Q !M/<0 ,@ R !L_<@ ;3W( #, XXM,P ;/W, &T]S P # &S]P !M/< +@ N !L_;@ ;3VX T* T &S]- XXM !M/30 ;00 ;6T$ &T]! ;0@ ;6T( &T]" ;1 ;6T0 &T]$ ; XXM0P ;6T, &T]# ;4P ;3U, &U, &T]3 M "T &S]M !M/;0 + L !L_ XXM; ;3VP !R. !R,3 79T,3 P %-O79T,3 P "]D978O:V)D "5S.B!C;W5L9&XG="!O<&5N(&ME>6)O87)D XXM"@!T='EV=#$P, E0H ='1Y=G0Q XXM,# )7,Z(&-O=6QD;B=T(&1E9FEN92!T:&4@8"5S)R!K97D* '1T>79T,3 P XXM )P L "T +@ O # ,0 R #, - U #8 -P X #D .P ] &)R96%K &)S XXM &1E; !E !Y 'H X !Y0 %@ 'E > 84 "H !Y0 XXM,@ (U ! >4 $@ "-0 5@ 'E !> )4 &P !Y0 XXM = "5 #T &0 2 9 !*@ !D $T &0 3X XXM 9 !2 !D %T &0 7X 9 !B !D &2 &0 XXM 9P 9 !R !D '2 &0 =P 9 !Y@ !D 'P & XXM0 AP 9 ")@ !D (P &0 CH 9 "1 !D )P XXM &0 GH 9 "A !D *. &0 I@ 9 "Q !D XXM +. &0 M@ 9 "X@ !D +L &0 Q@ 9 #(@ XXM!D ,L &0 S8 9 #0 !D -L &0 W8 9 # XXM@ !D .* &0 Y0 9 #P !D /* &0 ]0 9 XXM #W@ !D /H &0 !!0 9 $'@ !D 0H &0 !#( XXM 9 $/ !D 1H &0 !'( 9 $? !D 2& &0 XXM!) 9 $O !D 3& &0 !- 9 $V@ !D 3D & XXM0 !1 9 %&@ !D 4D &0 !2X 9 %. !D 5D XXM &0 !6X 9 %> !D 6" &0 !8P 9 %N "U XXM 7 &0 ! &0 !>@ 9 %\@ XXM!D 7\ &0 !AP 9 &)@ !D 8P &0 !CH 9 & XXM6@ !D 9D &0 !FX 9 &> !D :8 &0 !J( 9 XXM &K !D :V &0 !M8 9 &X !D ;J &0 !O0 XXM 9 '( !D $ &0 !XP 9 'E !D >^ & XXM0 !\8 9 'S@ !D ?6 &0 !]X 9 'Y@ !D ?Z XXM &0 " H 9 (&@ !D @J &0 "$( 9 (2 '% XXM A0 %4 "%@ 9 (7@ !D AD B4 "&H !!0 (> XXM % B 74 "(P 50 (D@ #5 B@ &0 "*8 9 ( XXMK (E BR 04 ", !0 (S %U C4 &0 "-H 9 XXM (X (E CF 04 "/0 !0 ) !D D& <4 "0X XXM !U0 )%@ !D D< &0 "2( ")0 )* $% DV 4 XXM":0 9 )L 5 G. &0 "=0 9 )V@ (E G@ 0 XXM4 ">X !0 * @ !D HB =4 "B@ U0 *.@ !D I XXM &0 "D8 ")0 *3 $% I: 4 #0 9 / !D XXM !$ &0 $P 9 5 !D !< &0 &0 9 ; XXM!D !T &0 'P 9 A !D ", &0 )0 9 XXMG !D "D &0 *P 9 M !D "\ &0 ,0 9 XXM S !D #4 &0 -P 9 Y !D #L &0 /0 XXM 9 _ !D $$ &0 0P 9 !% !D $< &0 XXM 20 9 !+ !D $T &0 3P 9 !1 !D %, & XXM0 50 9 !7 !D %D &0 6P 9 != !D %\ XXM &0 80 9 !C !D &4 &0 9P 9 !I !D XXM &L &0 ;0 9 !O !D '$ &0

0 9 ![ !D 'T &0 ?P 9 " XXM! !D (, &0 A0 9 "' !D (D &0 BP 9 XXM "- !D (\ &0 D0 9 "3 !D )4 &0 EP XXM 9 "9 !D )L &0 G0 9 "? !D *$ &0 XXM HP 9 "E !D *< &0 J0 9 "K !D *T & XXM0 KP 9 "Q !D +, &0 M0 9 "W !D +D XXM &0 NP 9 ! $ "@$ $P4 XXM E ' 8 ID ) 4 ?N +@$ $ -0$ XXM $ / $ $ 10< J8 3@$ XXM70$ $ 90$ ;@$ $ =P$ XXM ?@$ 0 A@$ $ CP$ F $ XXM $ G0$ P I $ $ K@4 O0$ XXM $ R $ $ SP$ 8 TP$ XXMW0$ $ [ $ $ ^ $ !C !!0$ XXM !"P$ $ !#P$ !&0$ $ !'P$ XXM $ !*@4 @X !- $ !.@$ !25]E XXM>&ET %]S=')N8VUP %]S971?:V5Y %]S8V-S:60 7VEN:71?:V)D %]F8F1E XXM0!?9&5L87EP86EN XXM=&EN9P!?=VEN:&5I9VAT< !?7!A9%\U,@!F XX XXend @//E*O*F libdir/uu.vt100keys.o// chmod u=rw,g=rw,o=rw libdir/uu.vt100keys.o echo x - src/ttyvt100.h sed 's/^XX//' > "src/ttyvt100.h" <<'@//E*O*F src/ttyvt100.h//' XX/* @(#)ttyvt100.h 1.8 86/04/13 MITRE */ XX/* XX * Copyright (c) 1985 by Mitre Corp. XX */ XX/* cursor states */ XX#define NOCURSOR 0 XX#define UNDERCURSOR 1 XX#define BLOCKCURSOR 2 XX/* terminal states */ XX#define ALPHA 0 /* normal state reading characters */ XX#define ESCAPE 1 /* plain escape so far */ XX#define ESCBRKT 2 /* CSI; i.e. esc-[ */ XX/* deleted */ XX#define VT52 4 /* emulating vt52 terminal */ XX/* deleted */ XX#define ESCBRKTQM 6 /* now have esc-[? sequence */ XX#define ESCAPESHARP 7 /* now have esc-# sequence */ XX#define ESCAPELPRN 8 /* now have esc-( sequence */ XX#define ESCAPERPRN 9 /* now have esc-) sequence */ XX#define ESC52Y 10 /* in vt52 abs cursor mode sequence */ XX#define EATCHARS 11 /* when at end of line and nowrap */ XX#define G0 0 /* grafix states set with esc-( and esc-) */ XX#define G1 1 XXunsigned short marks[24]; /* font type for each line */ XX XXunsigned short reflections[24][132]; /* one for each char in image */ XX#define NUMER5 1 /* vt52 numeric mode for keys */ XX#define NUMERA 2 /* ansi numeric mode " " */ XX#define APPL5 3 /* vt52 application mode */ XX#define APPLA 4 /* ansi application mode */ XX /*font handling states for each line */ XX /*used for setting marks in line array */ XX#define NORMAL_F 0x00 /* standard 80 col mode */ XX#define WIDE_F 0x40 /* one of the double wide types */ XX#define TOP_F 0x01 /* top half of a double height char */ XX#define BOTTOM_F 0x02 /* bottom half of same */ XX#define NARROW_F 0x20 /* 132 col mode (66 if wide) */ XX#define GRAFIX_F 0x04 /* using a graphics font */ XX#define BUSY 0x80 /* set if any characters have been written */ XX#define BOLD_F 0x08 /* bold attribute on */ XX#define SIZE_MASK 0xF0 /* just the width part */ XX#define TYPE_MASK 0x0F /* just the font part */ XX#define HALF_MASK 0x03 /* just top and bottom */ XX#define UK 0 /* special character set pound sign */ XX#define ASC 1 /* regular ascii character set */ XX#define GRAPH 2 /* graphics character set */ XX#define BOLD 0x01 /* attributes for fillfunc memory */ XX#define UNDER 0x02 XX#define REVERSE 0x04 XX#define BLINK 0x08 XX#define grafon() graf_norm = (activeCharset == G1)?((g1 == GRAPH)?GRAPH:ASC)\ XX :((g0 == GRAPH)?GRAPH:ASC) /* 1=ASCII, 2=GRAPHIC */ XXtypedef int character; XX#define MAX_SCREEN_WIDTH 132 XX#define CHAR_BUF_LEN 300 @//E*O*F src/ttyvt100.h// chmod u=r,g=r,o=r src/ttyvt100.h echo x - src/vt100fonts.c sed 's/^XX//' > "src/vt100fonts.c" <<'@//E*O*F src/vt100fonts.c//' XX#ifndef lint XXstatic char sccsid[] = "@(#)vt100fonts.c 1.9 86/05/02 Copyr 1985 MITRE Corp"; XX#endif XX/* XX * Copyright (c) 1985 by MITRE Corporation XX */ XX#include XX#include XX#include XX#include XX#include XX#include XX#include XX#include XX#include XX#include "ttysw_impl.h" XX#include "ttyvt100.h" XX#include "charimage.h" XX#include "charscreen.h" XX#define vanillaChar(c) ((c >= ' ') && (c <= '~')) XXextern struct pixwin *csr_pixwin;/* This is the ttysw windowfd */ XXextern struct pixfont *pixfont; /* This is what csr_init uses ???? */ XXextern int chrwidth, underscore; XXextern pstring(),bold(),nobold(); XXextern int debug,vright,cursrow; XXextern int fillfunc,bold_norm,graf_norm, g1,g0,full_chrwidth, activeCharset; XXextern int vtop,vbottom,vleft,vright; XXstruct vtfont { /* hold vt100 font info */ XX char fontfile_name[15]; /* name of file in font directory */ XX struct pixfont * fontfd; /* handle after pf_open returns, else 0 */ XX int charwidth; /* width of this font in pixels */ XX int line_length; /* length of vt100 line */ XX} fonttab[32] = { XX "gacha.r.8", 0, 8, 79, /* regular */ XX "thin.r.5", 0, 5, 131,/* thin */ XX "wide.r.16", 0, 16, 39, /* wide */ XX "thinwide.r.10", 0, 10, 65, /* wide big screen */ XX "widetop.r.16", 0, 16, 39, /* top half */ XX "thintop.r.10", 0, 10, 65, /* top half big screen */ XX "widebot.r.16", 0, 16, 39, /* bottom half */ XX "thinbot.r.10", 0, 10, 65, /* bottom half big screen */ XX "gacha.g.8", 0, 8, 79, /* start grafix fonts */ XX "thin.g.5", 0, 5, 131, XX "wide.g.16", 0, 16, 39, XX "thinwide.g.10", 0, 10, 65, XX "widetop.g.16", 0, 16, 39, XX "thintop.g.10", 0, 10, 65, XX "widebot.g.16", 0, 16, 39, XX "thinbot.g.10", 0, 10, 65, XX "gacha.b.8", 0, 8, 79, /* start bold fonts */ XX "thin.b.6", 0, 5, 131, XX "wide.b.16", 0, 16, 39, XX "thinwide.b.10", 0, 10, 65, XX "widetop.b.16", 0, 16, 39, XX "thintop.b.10", 0, 10, 65, XX "widebot.b.16", 0, 16, 39, XX "thinbot.b.10", 0, 10, 65, XX "gacha.bg.8", 0, 8, 79, /* start bold & grafix */ XX "thin.bg.6", 0, 5, 131, XX "wide.bg.16", 0, 16, 39, XX "thinwide.bg.10", 0, 10, 65, XX "widetop.bg.16", 0, 16, 39, XX "thintop.bg.10", 0, 10, 65, XX "widebot.bg.16", 0, 16, 39, XX "thinbot.bg.10", 0, 10, 65 XX }; XX XX/* Finds and sets up fonts and flags for rewriting lines */ XXfind_font(value) XXunsigned value; XX{ XX unsigned type, attrib; XX int fontindex = 0; XX#ifdef DEBUG XXif (debug6) printf ("entered find_font with arg: %x\n",value); XX#endif XX type = value & 0x7F; XX attrib = (value & 0xFF00) >> 8; XX#ifdef DEBUG XXif(debug5) printf( "type == %x, attrib = %x\n",type, attrib); XX#endif DEBUG XX if(attrib & REVERSE) bold(); XX else nobold(); XX if(attrib & UNDER) underscore = 1; XX else underscore = 0; XX if(type & NARROW_F) fontindex++; XX if(type & HALF_MASK ) /* One of the halfs */ XX fontindex += 4; XX else if(type & WIDE_F) XX fontindex += 2; XX if(type & BOTTOM_F) fontindex += 2; XX if(attrib & BOLD) fontindex += 16; XX if(type & GRAFIX_F) fontindex += 8; XX lookup_font(fontindex); XX return(fontindex); XX} XX XXlookup_font(index) XX int index; XX{ XX int returncode = 0; /* means can't open font */ XX if(fonttab[index].fontfd == 0) /* not open yet */ XX { XX if(fontopen(index) != 0) returncode = -1; XX } XX pixfont = fonttab[index].fontfd; /* set up for new font parameters */ XX chrwidth = fonttab[index].charwidth; XX vright = fonttab[index].line_length; XX/* vsetlinelength(image[cursrow], vright);*/ XX return(returncode); XX} XXchar* main_font_directory; XXfontopen(index) XX int index; XX{ XX char *p, fullname[60]; XX int debug = 1; XX main_font_directory = getenv ("VTFONTS"); XX strcpy(fullname, main_font_directory); XX strcat(fullname,"/"); XX strcat(fullname,fonttab[index].fontfile_name); XX if((fonttab[index].fontfd = pf_open(fullname)) == NULL) XX { XX if(debug) printf("can't open %s font \n",fonttab[index].fontfile_name); XX return(-1); XX } XX return(0); XX} XXset_font(value) XXint value; XX{ XX int type; XX grafon(); XX bold_norm = (fillfunc & BOLD) ? 1 : 0; XX if(bold_norm == 1) marks[cursrow] |= BOLD_F; XX else marks[cursrow] &= ~BOLD_F; XX if(graf_norm == 2) marks[cursrow] |= GRAFIX_F; XX else marks[cursrow] &= ~GRAFIX_F; XX type = marks[cursrow]; XX type |= (fillfunc << 8); XX find_font( type); XX} XX/* This routine will watch the line font marks as we go to another row*/ XX/* and change fonts, calling rewrite if necessary */ XX/* Hopefully mostly simple cases where no font changes are */ XX/* required. Next best case is where no wide or double chars are */ XX/* involved where we just change to correct font. Worst case is doubles. */ XX/* where we call rewrite() to possibly rewrite entire line in "new" font.*/ XXcheck_marks(now, was) XXint now, was; XX{ XX int type; XX#ifdef DEBUG XX if(debug4) printf("entering check_marks with marks %x, %x \n",marks[was],marks[now]); XX#endif XX if((marks[now]& ~BUSY) == (marks[was] & ~BUSY)) return; XX if(graf_norm == 2) marks[now] |= GRAFIX_F; XX else marks[now] &= ~GRAFIX_F; XX type = marks[now] + ((fillfunc & 0xFF) << 8); XX find_font( type); XX return; XX} XXrewrite (row) /* if a double is called after line */ XXint row; /* has been written */ XX{ XX char save_image[133], chp[133]; XX char *chpp, *imagep; XX int savecol,l, i,k, ochrwidth, olinelength, opixfont; XX short type, save_graf,save_bold,save_attrib; XX if(marks[row] & BUSY == 0) { /* nothing in the line yet */ XX set_font(5); XX return; XX } XX /* see long comment below for reason why we save these here */ XX set_font(5); XX save_attrib = fillfunc; XX save_graf = graf_norm; XX save_bold = bold_norm; XX savecol = curscol; XX strncpy(save_image,image[row],132); XX#ifdef DEBUG XXif(debug7) printf("IMAGE %d:%s \n",row, image[row]); XX#endif XX opixfont = (int) pixfont; /* remember font parameters */ XX olinelength = vright; XX ochrwidth = chrwidth; XX lookup_font(0); /* use standard font to blank line */ XX pclearline(0,79,row); /* clear out the old text */ XX pixfont = (struct pixfont *) opixfont; /* reset font stuff */ XX chrwidth = ochrwidth; XX vright = olinelength; XX#ifdef DEBUG XXif(debug5) printf("rewrite row with %x font marks\n", marks[row]); XX#endif XX chpp = &chp[0]; XX imagep = &save_image[0]; XX for (i = 0, k = 0; *imagep ;i++ ) XX { XX *chpp++ = *imagep++; XX if(reflections[row][i] != reflections[row][i+1]) XX { XX *chpp = '\0'; XX find_font(reflections[row][k]); XX curscol = k; XX writePartialLine(&chp[0], k); XX chpp = &chp[0]; XX k = i + 1; XX } XX } XX *chpp = '\0'; XX find_font(reflections[row][k]); XX curscol = k; XX writePartialLine(&chp[0], k); XX vsetlinelength(image[row], i); XX /* ********************************************************* */ XX /* Since the attributes and graphics mode may have been set */ XX /* after the text which we have just rewritten was originally */ XX /* written, we have to save and restore them before and after */ XX /* rewriting the line and we must also reset the font from those */ XX /* parameters........................*/ XX /* ************************************************************** */ XX curscol = savecol; /* restore current flags and column */ XX graf_norm = save_graf; XX fillfunc = save_attrib; XX bold_norm = save_bold; XX if(graf_norm == 2) marks[cursrow] |= GRAFIX_F; XX else marks[cursrow] &= ~GRAFIX_F; XX type = marks[cursrow] + ((fillfunc & 0xFF) << 8); XX find_font(type); /* and put font right for where we are */ XX#ifdef DEBUG XXif(debug7) printf("image %d:%s \n",row,image[row]); XX#endif XX XX} XXresquirt(row) XX int row; XX{ XX char * chpp, *imagep; XX char chp[133],save_image[133]; XX int i, k; XX strncpy(save_image,image[row],133); XX chpp = &chp[0]; XX imagep = &save_image[0]; XX for (i = 0, k = 0; *imagep ;i++ ) XX { XX *chpp++ = *imagep++; XX if(reflections[row][i] != reflections[row][i+1]) XX { XX *chpp = '\0'; XX find_font(reflections[row][k]); XX curscol = k; XX writePartialLine(&chp[0], k); XX chpp = &chp[0]; XX k = i + 1; XX } XX } XX *chpp = '\0'; XX find_font(reflections[row][k]); XX curscol = k; XX writePartialLine(&chp[0], k); XX vsetlinelength(image[row], i); XX} @//E*O*F src/vt100fonts.c// chmod u=r,g=r,o=r src/vt100fonts.c echo x - vconfig.h sed 's/^XX//' > "vconfig.h" <<'@//E*O*F vconfig.h//' XX/* Copyright MITRE Corp. */ XX#define MAIN_FONT_DIR "/usr/local/lib/fonts/vtfonts" XX/* This structure holds the array of labels for the Pf keys on the XX vt100 panel. It is best not to try to add or subtract from the XX structure. The labels themselves can be easily changed in the XX array "keys" which follows. Just keep them to 6 chars in length. XX*/ XXstruct key_labels { XX caddr_t button_handle; XX char norm_label[6]; XX char mred_label[6]; XX char ibm_label[6]; XX char wd11_label[6]; XX char emacs_label[6]; XX}; XX/* These are the labels which appear on the PF keys when the mouse XX clicks the label choice item (looks better in a wide window) */ XXstruct key_labels keys[23] = { XX 0, "", "", "", "", "", /* dummy */ XX 0, "1", "-line", "10", "back", "", /* 1 key = 1 */ XX 0, "2", "v", "11", "line", "", /* 2 key = 2*/ XX 0, "3", "-page", "12", "uppr", "", /* 3 key = 3 */ XX 0, "4", "<--", "7", "word", "", /* 4 key = 4 */ XX 0, "5", "home", "8", "para", "", /* 5 key = 5 */ XX 0, "6", "-->", "9", "bold", "", /* 6 key = 6 */ XX 0, "7", "+line", "4", "< >", "", /* 7 key = 7 */ XX 0, "8", "^", "5", "tabp", "", /* 8 key = 8 */ XX 0, "9", "+page", "6", "under", "", /* 9 key = 9 */ XX 0, "0", "rplcw", "pf+12", "advan", "", /* 0 key = 10 */ XX 0, "PF1", "pick", "1", "gold", "", /* PF1 key = 11 */ XX 0, "PF2", "put", "2", "page", "", /* PF2 key = 12 */ XX 0, "PF3", "-tabw", "3", "sent", "", /* PF3 key = 13 */ XX 0, "PF4", "+tabw", "PA1", " ", "", /* PF4 key = 14 */ XX 0, "-", "+srch", "PA2", "aftwd", "", /* - key = 15 */ XX 0, ",", "-srch", "PA3", "phras", "", /* , key = 16 */ XX 0, "enter","goto", "clear", "swap", "", /* enter key = 17 */ XX 0, ".", "use", "insrt", "selct", "", /* . key = 18 */ XX 0, "^", "open", "^", "ruler", "", /* up key = 19 */ XX 0, "-->", "close", "-->", "cut", "", /* right key = 20 */ XX 0, "v", "fill", "v", "delte", "", /* down key = 21 */ XX 0, "<--", "tmpin", "<--", "paste", "" /* left key = 22 */ XX}; @//E*O*F vconfig.h// chmod u=r,g=r,o=r vconfig.h echo x - vt100tool.1 sed 's/^XX//' > "vt100tool.1" <<'@//E*O*F vt100tool.1//' XX.\" @(#)vt100tool.1 1.9 86/04/15 MITRE Corp; from UCB 4.2 XX.TH VT100TOOL 1 "15 APRIL 1986" XX.SH NAME XXvt100tool \- Dec VT100 terminal emulator tool XX.SH SYNOPSIS XX.B vt100tool XX.SH DESCRIPTION XX.LP XX\fBvt100tool\fR emulates a DEC VT100 terminal with a graphic XXmodule. It does this in much the same way as XXshelltool (see XX.IR suntools (1)) XXemulates a regular glass tty. XXWhen \fBvt100tool\fR is invoked, a shell is started up, XXits output and input are connected to the emulator, and a new XXwindow is formed. The window is run as a job from the calling window. XXWhen the emulator is running the function keys take on the same XXsignificance as VT100 function keys and keypad. Buttons R1-R15 XXare the VT100 buttons: XX.LP XX PF1,PF2,PF3,7,8,9,4,5,6,1,2,3,0,.,Enter XX.LP XXfrom XXthe keypad. Buttons F3-F6 are the arrow keys: Up, Down, Left, and XXRight, respectively, and F7-F9 are PF4,-,and ",". XXIt should be noted that these are only the markings on the keys. The XXcontrol codes sent to the host are as described in the VT100 manual XXand change depending on the setting of certain mode flags. XX.LP XXEvery effort has been made to make the emulator as faithful to the XXVT100 as the Sun Workstation will allow. Exceptions are listed at the end XXof this page. All sizes of characters are handled: regular, double and XXdouble-height and width as well as 132 character screen and all these XXsizes scaled down to the small type of the 132 character screen. All XXvt100 attributes are also handled: bold, reverse video. (I don't know how XXto do blink on a Sun.) The emulator assumes that the graphics option XXis installed and the graphics is activated by the \fBEscape-)\fR and XX\fBEscape-(\fR sequences as on a vt100. Vt52 mode is also handled correctly. XX.LP XXThe Setup panel at the bottom of the window can be used to alter certain XXvt100 modes. (All have not been allowed as yet.) The XX.IR local/on-line, wrap,and newline modes XXcan be altered from the panel. Clicking the mouse on the XX.IR Setup Button XXshows the options and clicking on an option changes the mode XXin the emulator. The XX.IR answerback XXmessage can be set from the Setup Panel XXby typing it into the line containing the Sun caret. Only 20 characters XXare allowed in the XX.IR answerback XXmessage as in the VT100. XX.LP XXThere is also a keyboard on the panel, which is obtained by clicking XXthe mouse on the XX.IR Keyboard XXlabel. This displays a keypad and a set of arrow keys as on a vt100. XXThese perform the exact same action as the actual Sun-2 keyboard keys XXwhen in the emulator, but they can be labelled on the panel as the XXuser prefers. The current set of labels are for a vanilla vt100, a XXDECMATE or Word-11 keypad, a version of the Rand editor called MRED XXand an IBM 3270 emulator on a vt100. The labels will change as the XXmouse is clicked on the appropriate label. XX.LP XXTyping control-D to vt100tool causes it to die. XX.SH CAVEATS XXLike all VT100 emulators, this probably doesn't duplicate every nuance of the XXVT100. In cases where the Sun environment prevents emulation of a feature XXthen some reasonable thing is done on receipt of the escape code XXrequesting the feature. Generally, this is to ignore it. (Xon-Xoff is an XXexample of this). XX.LP XXThe vt100tool window may be treated just like other windows; it can be overlaid, XXmoved, reshaped etc. XXHowever, when the window is reshaped, the contents will not scale. XX.LP XX.SH FILES XX../vtfonts/* XX.SH "SEE ALSO" XXsuntools(1) XX.br XXDigital VT100 Computer Display Terminal User's Manual XX.SH BUGS XX.IP (1) XXOnly wrap, newline, answerback, local are altered by the Setup Panel even XXthough other features appear there. XX.IP (2) XXThe fonts need help. There are probably some minor glitches here and XXthere. They had to be created with fonttool which has a few problems XXof its own. XX.IP (3) XXFull reverse screen is erratic. This seems to be caused by a "feature" deep XXdown in the Sun code which resets the reverse video automatically. I XXwill try to fix this if I have time and if anyone cares. XX.IP (4) XXSmooth scroll does not work. XX.IP (5) XXYou tell me. @//E*O*F vt100tool.1// chmod u=rw,g=r,o=r vt100tool.1 echo Inspecting for damage in transit... temp=/tmp/sharin$$; dtemp=/tmp/sharout$$ trap "rm -f $temp $dtemp; exit" 0 1 2 3 15 cat > $temp <<\!!! 417 3898 25667 uu.ttyvt100.o 161 1716 9776 uu.vt100keys.o 68 396 2378 ttyvt100.h 283 1094 8036 vt100fonts.c 46 380 2860 vconfig.h 103 710 4083 vt100tool.1 1078 8194 52800 total !!! wc libdir/uu.ttyvt100.o libdir/uu.vt100keys.o src/ttyvt100.h src/vt100fonts.c vconfig.h vt100tool.1 | sed 's=[^ ]*/==' | diff -b $temp - >$dtemp if test -s $dtemp then echo "Ouch [diff of wc output]:" ; cat $dtemp else echo "No problems found." fi exit 0