[net.sources] Unix Pascal VT100 Graphic Procedures

bryan@ihnet.UUCP (b. k. delaney) (02/03/86)

Following are some Procedures to fully use the vt100 terminal
it is uuencoded because of non printing characters.



Following vt100grp.i is the documentation file 

------Cut Here and also below-------------------------------------------
begin 777 vt100grp.i
M*"H*("H)1W)A<&AI8R!0<F]C961U<F5S(&9O<B!T:&4@1&EG:71A;"!65#$P
M,"!497)M:6YA; H@*B @(" @($UO<W0@;V8@=&AE<V4@4')O8V5D=7)E<R!W
M:6QL('=O<FL@9F]R(&%N>2!!3E-)(%1E<FUI;F%L"B J"B J(" @(" @268@
M5E0Q,# @1&]E<R!.;W0@:&%V92!T:&4@061V86YC960@5FED96\@3W!T:6]N
M"B J(" @(" @4V]M92!&=6YC=&EO;G,@=VEL;"!N;W0@=V]R:PH@*@H@*@E7
M<FET=&5N($)Y.B!"<GEA;B!++B!$94QA;F5Y(" *("H@(" @( H@*B @(" @
M( H@*@E4;R!U<V4@5&AE<V4@<')O8V5D=7)E<R C:6YC;'5D92!T:&ES(&9I
M;&4*("H@(" @("!I;B!4:&4@4')O8V5D=7)E('-E8W1I;VX@;V8@>6]U<B!5
M;FEX(%!A<V-A;"!0<F]G<F%M"B J"B J*0H**"H@1F]R(&UO<F4@:6YF;W)M
M871I;VX@0V]N<W5L="!65#$P,"!5<V5R<R!'=6ED92 J*0H*<')O8V5D=7)E
M($-U<G-O<D)A8VLH>" Z:6YT96=E<BD["F)E9VEN"@EW<FET92@G&ULG+'@Z
M,2PG1"<I.PH)*"H@=W)I=&4H)T530ULG+'@Z,2PG1"<I("HI"F5N9#L*"B@J
M("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BH@*BD*"G!R;V-E9'5R92!#=7)S;W)$;W=N*'@@.FEN
M=&5G97(I.PIB96=I;@H)=W)I=&4H)QM;)RQX.C$L)T(G*3L*"2@J('=R:71E
M*"=%4T-;)RQX.C$L)T(G*2 J*0IE;F0["@HH*B J*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI
M"@IP<F]C961U<F4@0W5R<V]R57 H>" Z:6YT96=E<BD["F)E9VEN"@EW<FET
M92@G&ULG+'@Z,2PG02<I.PH)*"H@=W)I=&4H)T530ULG+'@Z,2PG02<I("HI
M"F5N9#L*"B@J("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH@*BD*"G!R;V-E9'5R92!#=7)S;W)&
M;W)W87)D*'@@.FEN=&5G97(I.PIB96=I;@H)=W)I=&4H)QM;)RQX.C$L)T,G
M*3L*"2@J('=R:71E*"=%4T-;)RQX.C$L)T,G*2 J*0IE;F0["@HH*B J*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ("HI"@IP<F]C961U<F4@0VQE87)(;VUE.PIB96=I;@H)=W)I
M=&4H)QM;.T@;6S)*)RD["@DH*B!W<FET92@G15-#6SM(($530ULR2B<I("HI
M"F5N9#L*"B@J("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH@*BD*"G!R;V-E9'5R92!#;&5A<BAX
M(#II;G1E9V5R*3L*8F5G:6X*"6EF('@@/B R('1H96X*"6)E9VEN"@D)>" Z
M/2 R.PH)96YD.PH)"@EW<FET92@G&ULG+'@Z,2PG2B<I.PH)*"H@=W)I=&4H
M)T530ULG+'@Z,2PG2B<I("HI"F5N9#L*"B@J("HJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH@*BD*
M"G!R;V-E9'5R92!,:6YE0VQE87(H>" Z:6YT96=E<BD["F)E9VEN"@EI9B!X
M(#X@,B!T:&5N"@EB96=I;@H)"7@@.CT@,CL*"65N9#L*"0H)=W)I=&4H)QM;
M)RQX.C$L)TLG*3L*"2@J('=R:71E*"=%4T-;)RQX.C$L)TLG*2 J*0IE;F0[
M"@HH*B J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI"@IP<F]C961U<F4@26YV97)S93L*8F5G
M:6X*"7=R:71E*"<;6SLW;2<I.PH)*"H@=W)I=&4H)T530UL[-VTG*2 J*0IE
M;F0["B@J("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH@*BD*"G!R;V-E9'5R92!";VQD.PIB96=I
M;@H)=W)I=&4H)QM;.S%M)RD["@DH*B!W<FET92@G15-#6SLQ;2<I("HI"F5N
M9#L*"B@J("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH@*BD*"G!R;V-E9'5R92!5;F1E<E-C;W)E
M.PIB96=I;@H)=W)I=&4H)QM;.S1M)RD["@DH*B!W<FET92@G15-#6SLT;2<I
M("HI"F5N9#L*"B@J("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH@*BD*"G!R;V-E9'5R92!";&EN
M:SL*8F5G:6X*"7=R:71E*"<;6SLU;2<I.PH)*"H@=W)I=&4H)T530UL[-6TG
M*2 J*0IE;F0["@HH*B J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI"@IP<F]C961U<F4@3F]R
M;6%L.PIB96=I;@H)=W)I=&4H)QM;.S!M)RD["@DH*B!W<FET92@G15-#6SLP
M;2<I("HI"F5N9#L*"B@J("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH@*BD*"G!R;V-E9'5R92!$
M;W5B;&4["F)E9VEN"@EW<FET92@G&R,V)RD["@DH*B!W<FET92@G15-#(S8G
M*2 J*0IE;F0["@HH*B J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI"@IP<F]C961U<F4@1&]U
M8FQE2&EG:%5P<&5R.PIB96=I;@H)=W)I=&4H)QLC,R<I.PH)*"H@=W)I=&4H
M)T530R,S)RD@*BD*96YD.PH**"H@*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*B J*0H*<')O8V5D
M=7)E($1O=6)L94AI9VA,;W=E<CL*8F5G:6X*"7=R:71E*"<;(S0G*3L*"2@J
M('=R:71E*"=%4T,C-"<I("HI"F5N9#L*"B@J("HJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH@*BD*
M"G!R;V-E9'5R92!'<F%P:&EC3VX["F)E9VEN"@EW<FET92@G&R@P)RD["@DH
M*B!W<FET92@G15-#*# G*2 J*0IE;F0["@HH*B J*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI
M"@IP<F]C961U<F4@1W)A<&AI8T]F9CL*8F5G:6X*"7=R:71E*"<;*$(G*3L*
M"2@J('=R:71E*$530RA")RD@*BD*96YD.PH**"H@*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*B J
M*0H*<')O8V5D=7)E(%!O<VET:6]N*'@L>2 Z:6YT96=E<BD["F)E9VEN"@EW
M<FET92@G&ULG+'DZ,2PG.R<L>#HQ+"=()RD["@DH*B!W<FET92@G15-#6R<L
M>3HQ+"<[)RQX.C$L)T@G*2 J*0IE;F0["@HH*B J*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI
M"@IP<F]C961U<F4@2&QI;F4H>"QY+&QE;F=T:"QS8V%N;&EN92 Z:6YT96=E
M<BD["G9A<@H);" Z:6YT96=E<CL*"65R<F]R(#IC:&%R.PIB96=I;@D*"4=R
M87!H:6-/;CL*"5!O<VET:6]N*'@L>2D["@D*"6EF("AS8V%N;&EN92 ](#$I
M(&]R("AS8V%N;&EN92 ],"D@=&AE;@H)8F5G:6X*"0EF;W(@;" Z/2 Q('1O
M(&QE;F=T:"!D;PH)"6)E9VEN"@D)"7=R:71E*"=O)RD["@D)96YD.PH)96YD
M.PH)"@EI9B H<V-A;FQI;F4@/2 S*2!O<B H<V-A;FQI;F4@/2 R*2!T:&5N
M"@EB96=I;@H)"69O<B!L(#H](#$@=&\@;&5N9W1H(&1O"@D)8F5G:6X*"0D)
M=W)I=&4H)W G*3L*"0EE;F0["@EE;F0["@D*"6EF("AS8V%N;&EN92 ](#4I
M(&]R("AS8V%N;&EN92 ](#0I('1H96X*"6)E9VEN"@D)9F]R(&P@.CT@,2!T
M;R!L96YG=&@@9&\*"0EB96=I;@H)"0EW<FET92@G<2<I.PH)"65N9#L*"65N
M9#L*"0H):68@*'-C86YL:6YE(#T@-RD@;W(@*'-C86YL:6YE(#T@-BD@=&AE
M;@H)8F5G:6X*"0EF;W(@;" Z/2 Q('1O(&QE;F=T:"!D;PH)"6)E9VEN"@D)
M"7=R:71E*"=R)RD["@D)96YD.PH)96YD.PH)"@EI9B H<V-A;FQI;F4@/2 Y
M*2!O<B H<V-A;FQI;F4@/3@I('1H96X*"6)E9VEN"@D)9F]R(&P@.CT@,2!T
M;R!L96YG=&@@9&\*"0EB96=I;@H)"0EW<FET92@G<R<I.PH)"65N9#L*"65N
M9#L*"6EF('-C86YL:6YE(#X@.2!T:&5N"@EB96=I;@H)"4=R87!H:6-/9F8[
M"@D)0VQE87)(;VUE.PH)"7=R:71E;&XH)T5R<F]R(%9A;'5E(&9O<B!38V%N
M;&EN92!N;W0@:6X@<F%N9V4G*3L*"0EW<FET92@G2&ET(#QC<CX@=&\@;&5A
M=F4@2&QI;F4G*3L*"0ER96%D*&5R<F]R*3L*"0E#;&5A<DAO;64["@EE;F0[
M"@E'<F%P:&EC3V9F.PIE;F0[("@J(%!R;V-E9'5R92!(;&EN92 J*0H**"H@
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*B J*0H*<')O8V5D=7)E($QI;F4H<V-A;FQI;F4@.FEN
M=&5G97(I.PIV87(*"6QE;F=T:" Z:6YT96=E<CL*"65R<F]R(#IC:&%R.PIB
M96=I;@D*"4=R87!H:6-/;CL*"7=R:71E*"<;6S@P1"<I.PH)*"H@=W)I=&4H
M)T530ULX,$0G*2 J*0H*"6EF("AS8V%N;&EN92 ](#$I(&]R("AS8V%N;&EN
M92 ],"D@=&AE;@H)8F5G:6X*"0EF;W(@;&5N9W1H(#H](#$@=&\@.# @9&\*
M"0EB96=I;@H)"0EW<FET92@G;R<I.PH)"65N9#L*"65N9#L*"0H):68@*'-C
M86YL:6YE(#T@,RD@;W(@*'-C86YL:6YE(#T@,BD@=&AE;@H)8F5G:6X*"0EF
M;W(@;&5N9W1H(#H](#$@=&\@.# @9&\*"0EB96=I;@H)"0EW<FET92@G<"<I
M.PH)"65N9#L*"65N9#L*"0H):68@*'-C86YL:6YE(#T@-2D@;W(@*'-C86YL
M:6YE(#T@-"D@=&AE;@H)8F5G:6X*"0EF;W(@;&5N9W1H(#H](#$@=&\@.# @
M9&\*"0EB96=I;@H)"0EW<FET92@G<2<I.PH)"65N9#L*"65N9#L*"0H):68@
M*'-C86YL:6YE(#T@-RD@;W(@*'-C86YL:6YE(#T@-BD@=&AE;@H)8F5G:6X*
M"0EF;W(@;&5N9W1H(#H](#$@=&\@.# @9&\*"0EB96=I;@H)"0EW<FET92@G
M<B<I.PH)"65N9#L*"65N9#L*"0H):68@*'-C86YL:6YE(#T@.2D@;W(@*'-C
M86YL:6YE(#TX*2!T:&5N"@EB96=I;@H)"69O<B!L96YG=&@@.CT@,2!T;R X
M,"!D;PH)"6)E9VEN"@D)"7=R:71E*"=S)RD["@D)96YD.PH)96YD.PH):68@
M<V-A;FQI;F4@/B Y('1H96X*"6)E9VEN"@D)1W)A<&AI8T]F9CL*"0E#;&5A
M<DAO;64["@D)=W)I=&5L;B@G17)R;W(@5F%L=64@9F]R(%-C86YL:6YE(&YO
M="!I;B!R86YG92<I.PH)"7=R:71E*"=(:70@/&-R/B!T;R!L96%V92!(;&EN
M92<I.PH)"7)E860H97)R;W(I.PH)"4-L96%R2&]M93L*"65N9#L*"4=R87!H
M:6-/9F8["@EW<FET96QN.PIE;F0[("@J('!R;V-E9'5R92!(:6YE("HI"@HH
M*B J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ("HI"@IP<F]C961U<F4@5FQI;F4H>"QY+&QE;F=T
M:" Z:6YT96=E<BD["G9A<@H);"Q.97=Y(#II;G1E9V5R.PIB96=I;@H)3F5W
M>2 Z/2!Y.PH*"4=R87!H:6-/;CL*"5!O<VET:6]N*'@L>2D["@EF;W(@;" Z
M/2 Q('1O(&QE;F=T:"!D;PH)8F5G:6X*"0EW<FET92@G>"<I.PH)"4YE=WDZ
M(#T@3F5W>2 K(#$["@D)4&]S:71I;VXH>"Q.97=Y*3L*"65N9#L*"4=R87!H
M:6-/9F8["F5N9#L@("@J(%!R;V-E9'5R92!6;&EN92 J*0H**"H@*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*B J*0H*<')O8V5D=7)E($)O>"AX+'DL2&EG:"Q7:61E(#II;G1E
M9V5R*3L*8F5G:6X*"6EF('@@/2 P('1H96X*"6)E9VEN"@D)>" Z/3$["@EE
M;F0["@EI9B!Y(#T@,"!T:&5N"@EB96=I;@H)"7D@.CTQ.PH)96YD.PH)"@E(
M;&EN92AX+'DL5VED92PU*3L*"4AL:6YE*'@L>2M(:6=H+%=I9&4L-2D["@E6
M;&EN92AX+'DL2&EG:"D["@E6;&EN92AX*U=I9&4L>2Q(:6=H*3L*"4=R87!H
M:6-/;CL*"5!O<VET:6]N*'@L>2D["@EW<FET92@G;"<I.PH)4&]S:71I;VXH
M>"QY*TAI9V@I.PH)=W)I=&4H)VTG*3L*"5!O<VET:6]N*'@K5VED92QY*3L*
M"7=R:71E*"=K)RD["@E0;W-I=&EO;BAX*U=I9&4L>2M(:6=H*3L*"7=R:71E
M*"=J)RD["@E'<F%P:&EC3V9F.PH)4&]S:71I;VXH>"LQ+'DK,2D["@IE;F0[
M(" H*B!0<F]C961U<F4@0F]X("HI"@HH*B J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI"@IP
M<F]C961U<F4@4W1O<F5#=7)S;W(["F)E9VEN"@EW<FET92@G&S<G*3L*"2@J
M('=R:71E*"=%4T,W)RD@*BD*96YD.PH**"H@*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*B J*0H*
M<')O8V5D=7)E(%)E<W1O<F5#=7)S;W(["F)E9VEN"@EW<FET92@G&S@G*3L*
M"2@J('=R:71E*"=%4T,X)RD@*BD*96YD.PH**"H@*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*B J
M*0H*<')O8V5D=7)E($QO861,140H>" Z:6YT96=E<BD["F)E9VEN"@EW<FET
M92@G&ULG+'@Z,2PG<2<I.PH)*"H@=W)I=&4H)T530ULG+'@Z,2PG<2<I("HI
M"F5N9#L)"@HH*B J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI"@IP<F]C961U<F4@4V5T4V-R
M;VQL4F5G:6]N*'0L8B Z:6YT96=E<BD["F)E9VEN"@EW<FET92@G&ULG+'0Z
M,2PG.R<L8CHQ+"=R)RD["@DH*B!W<FET92@G15-#6R<L=#HQ+"<[)RQB.C$L
M)W(G*2 J*0IE;F0["@HH*B J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI"G!R;V-E9'5R92!2
M97-E=%-C<F]L;#L*8F5G:6X*"7=R:71E*"<;6S [,C1R)RD["@DH*B!W<FET
M92@G15-#6S [,C1R)RD@*BD*96YD.PHH*B J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
K*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ("HI"BHJ
 
end

---------------------------Cut here for documentation----------------



vt100grp.i:

Vt100grp.i is a file of Graphics procedures for the VT100 terminal.

To use these procedures, put the following line in the procedure 
section of your Pascal Program.

#include "/Full Path/vt100grp.i" 

When you Compile your Pascal program you will get a few warning 
messages about procedures that are never used.  You may ignore
these messages.  Obviously not every graphics procedure is going
to be used by all programs.

Following is a brief description on how to use the procedures.

For more Information you may wish to consult the VT100 users guide.


CursorBack(x :integer);
Move Cursor Back "x" Columns. If you try to move the Cursor back
past Column 1 the Cursor stays at Column 1. 


CursorDown(x :integer);
Move Cursor Down "x" Rows. If you try to move the Cursor Down past
row 24 the Cursor stays at row 24. 

CursorUp(x :integer);
Move Cursor up "x" Rows. If you try to move the Cursor Up past
row 1 the Cursor stays at row 1.

CursorForward(x :integer);
Move Cursor forward "x" Columns. If you try to move the Cursor Foward
pas Column 80/132 the Cursor stays at column 80/132.

ClearHome;
Clears Screen then move cursor to Row 1 Column 1.

Procedure Clear(x :integer);
Erases all or part of the screen depending on the value of x.
If X = 0 then  erase from the active position to the end of the screen.
If X = 1 then erase from the start of the screen to the active position.
If X = 2 then erase the whole display.
In all cases the position of the cursor is not changed.

Procedure LineClear(x :integer);
Erases all or part of the line depending on the value of x.
If X = 0 then erase from the active position to the end of the line.
If X = 1 then erase from the start of the line to the active position.
If X = 2 then erase the whole line.
In all cases the position of the cursor is not changed.

Procedure Inverse;
Once invoked all characters sent to the screen are shown as black 
on white (Inverse video).  This attribute remanes in effect until 
the procedure Normal is invoked. 

Procedure Bold;
Same as Inverse except characters are bold instead of inverse.

Procedure UnderScore;
Same as Inverse except characters are underlined instead of inverse.

Procedure Blink;
Same as Inverse except characters are Blinking instead of inverse.

Procedure Normal;
Once invoked all characters sent to the screen are shown
white on black non blinking and not underlined or bold.

Procedure Double;
All characters on the current line are printed double wide.  
This procedure must be invoked for every line that is to be
printed double wide. 

Procedures DoubleHighUpper; and DoubleHighLower;
These procedures cause the line containing the active position to 
become the top or bottom half of a double-high double-wide line.
These procedures must be used in pairs on adjacent lines and the
same character output must be sent to both lines.
Example:
	DoubleHighUpper;
	write('This is a double-high double-wide line');
	DoubleHighLower;
	write('This is a double-high double-wide line');

Procedure GraphicOn;
Turns on the vt100 Graphic character set.

Procedure GraphicOff;
turns off the vt100 Graphic character set.

Procedure Position(x,y :integer);
Place the cursor at column "x", row "y".


Procedure Hline(x,y,length,scanline :integer);
Draws a horizontal line from Position(x,y) "length" characters long
on vertical scanline "scanline".

Procedure Line(scanline :integer);
The line on which the cursor is on becomes a Horizontal Line 
on vertical scanline "scanline". 

Procedure Vline(x,y,length :integer);
This procedure draws a vertical line starting from Position(x,y)
down "length" rows. 

Procedure Box(x,y,High,Wide :integer);
Draws a box with Position(x,y) being the upper left corner of the
box;, down "High" rows and "Wide" columns.
The Cursor is placed at Position(x+1,y+1);

Procedure StoreCursor;
Tells the terminal to store the present cursor postion.

Procedure RestoreCursor;
Restore the Cursor to the position saved by procedure StoreCursor.

Procedure SetScrollRegion(t,b :integer);
Sets the scrolling region at "t" top row and
"b" bottom row;

Procedure ResetScroll;
Sets the scrolling to default state (rows 1 through 24).

Procedure LoadLED(x :integer);
Turns on or off the four LEDs L1, L2, L3, L4 on the keyboard.
If x = 0 turn off All LEDs
If x = 1 Turn on LED L1
If x = 2 Turn on LED L2
If x = 3 Turn on LED L3
If x = 4 Turn on LED L4