cTERMINA ;TERMINAL DEFAULTS [ 08/30/2001 4:14 PM ] ; Speciale functies voor VT420 terminals ; SCRMODE If "\67\68\69\"[("\"_$I_"\") Do .If $P($ZU(5),",",2)'="DEV",$P($ZU(5),",",2)'="IQD" Write *27,"[?5l" .Else Write *27,"[?5h" Quit ; ; To = 2 for Popups,TxtPop,Ask,Menu ; To = 3 for Detail schermen STORE(T,B) ; VT420 Paging faciliteit New From,To,Cache Set (To,sScr("PAGE"))=sScr("PAGE")+1 Set T=$G(T,1),B=$G(B,sScr("ROW")) If sScr("VT")="C" Do GET^cVIDEO(.Cache,0,0,80,24,2) Set sScr("CACHE",sScr("PAGE"))=Cache Quit:sScr("VT")'=4 Set From=1 STORE2 Write *27,"[",T,";1;",B,";",sScr("KOL"),";",From,";",T,";1;",To,"$v" Quit COPY(T,L,B,R,From,T1,L2,To) Write *27,"[",T,";",L,";",B,";",R,";",From,";",T1,";",L2,";",To,"$v" Quit REFRESH(T,B) New To,From,Cache Set T=$G(T,1),B=$G(B,sScr("ROW")) If sScr("VT")="C" Do .Set Cache=$E(sScr("CACHE",sScr("PAGE")),T-1*80*2+1,B*80*2) .Do PUT^cVIDEO(.Cache,0,T-1,80,B-T+1,2) .;Kill sScr("CACHE",sScr("PAGE")) Quit .Set sScr("PAGE")=sScr("PAGE")-1 Else If sScr("VT")=4 Set To=1,From=sScr("PAGE"),sScr("PAGE")=sScr("PAGE")-1 Goto STORE2 Else If $L($G(sRR)) Do .New sMT,sMB .Set sMT=sRT,sMB=sRB,sRT=T,sRB=B .Do @sRR .Set sRT=sMT,sRB=sMB Else Do ERASE(T,1,B) Quit ERASE(T,L,B,R) Set T=$G(T,1),B=$G(B,sScr("ROW")) Set L=$G(L,1),R=$G(R,sScr("KOL")) If B=sScr("ROW"),R=sScr("KOL"),L=1 Set FP=T*100+1 Write @F,@F1 Else If sScr("VT")=4 Write *27,"[",T,";",L,";",B,";",R,"$z" Else If R=sScr("KOL") For FP=T*100+L:100:B*100+L Write @F,@F2 Else Do FILL(T,L,B,R) Quit INIT Do:'$D(Q) .Do:'$D(boot) MASTER^cQ5 .If $I>4,$I<10,'$D(^cLOG(boot,"DEV",$I)) Do ^cQ3 ; opzetten %LOG .Set Q=$P($G(^cLOG(boot,"QQM",$$IO^cQ5,$ZU(5))),"\") .Do ^cA604 Do MASTER^cQ5 If QN="",$L(Q) Set QN=$G(@("^"_Q_"BA(99,1)")) Set sScr("KOL")=80 Set sScr("ROW")=24 Set sScr("TYP")=$S($P($G(^cLOG(boot,"DEV",$$IO^cQ5)),D)="MC":"M",$E($P($G(^cLOG(boot,"DEV",$$IO^cQ5)),D))="O":"C",1:"T") ; Mac, Console of Term Set sScr("VT")=4 ; 420 of 330 Set:$P($G(^cLOG(boot,"DEV",$$IO^cQ5)),D)="ATK" sScr("VT")=1 Set sScr("VTW")=0 Set:sScr("TYP")="C" sScr("VT")="C",sScr("VTW")=1 Set:$ZU(5)["VTW" sScr("VTW")=1 Set:sScr("VTW") sRemVol=$G(^cLOG(boot,"REMOTE")) Set sIdVol=$$IO^cQ5_";"_$P($$USELECT^cUSER("","",$I,"","","","","","",0),";")_";"_$ZU(5) Set sScr("PAGE")=1 Set sFVL=$$FVL^cKEY() Do FUNCKEY Quit SIZE(Kol,Row) Set:'$G(Kol) Kol=80 Quit:Kol=sScr("KOL") If Kol>80 Set sScr("KOL")=132 Write @FS132 If Kol'>80 Set sScr("KOL")=80 Write @FS80 Quit ; Defenitie van shift-FUNCTIE keys voor terminals FUNCKEY Q:sScr("VT")="C"!(sScr("VT")=1) Q:$I=1 ; niet op console W *27,"P1;1|" For I=17:1:21,23:1:26,28,29,31:1:34 Do .Write I,"/1B4F",$P("6B;6C;6D;6E;6F;;70;71;72;73;;74;75;;77;78;79;7A",";",I-16),";" Write *27,"\" Quit TRANS(Key) ; Vertaling van een functiekey van MAC naar Terminal ;Set:Key?1.2N Key=$P($P($T(TRANST),";"_Key_",",2),";") Quit:sScr("TYP")="M" Key If sScr("TYP")="C" Do:Key?.1"^"1"F"1.2N Quit Key .Set:$P(Key,"F",2)<5 $P(Key,"F",2)=$P(Key,"F",2)+4 Set:Key?.1"^"1"F"1.2N $P(Key,"F",2)=$P(Key,"F",2)+5 Quit Key TRANST ;32,PF1;33,PF2;34,PF3;35,PF4;37,F6;38,F7;39,F8;40,F9;41,F10;43,F11;44,F12;45,F13;46,F14;48,HELP;49,DO;51,F17;52,F18;53,F19;54,F20;59,^F6;60,^F7;61,^F8;62,^F9;63,^F10;0,^F11;1,^F12;2,^F13;3,^F14;4,^HELP;5,^DO;6,^F17;7,^F18;8,^F19;9,^F20 RECT(T,L,B,R,BGAttr) Set BGAttr=$G(BGAttr,"I") Write @FMTCL Write:BGAttr="I" @FMTI Set %R=B,%C=L If "14C"[sScr("VT") Goto RECT2 Set L=R-L-2,R=B-T-1 Set FP=%R*100+%C Write @F,@F7,@$P(FG,"\",3) For L=1:1:L W @$P(FG,"\",9) Write @$P(FG,"\",4) For R=1:1:R Do .Set %R=%R-1,FP=%R*100+%C Write @F,@$P(FG,"\",10) .For L=1:1:L W " " .Write @$P(FG,"\",10) Set %R=%R-1 Set FP=%R*100+%C Write @F,@$P(FG,"\",1) For L=1:1:L w @$P(FG,"\",9) Write @$P(FG,"\",2),@F8 Quit RECT2 Do FILL(T+1,L+1,B-1,R-1) Write @F7 Do HLIJN(T,L,R,"T","T",1) Do HLIJN(B,L,R,"B","B",1) Do VLIJN(L,T+1,B-1,"","",1) Do VLIJN(R,T+1,B-1,"","",1) Write @F8 Quit BEEP(Urgentie) ; Urgentie = {N;W;S} = {Normal,Warning,Severe} Write:Urgentie'="N" *7 Quit FILL(T,L,B,R,Char,BGAttr) Set BGAttr=$G(BGAttr,"I") If BGAttr'="NO",BGAttr'="IN" Write @FMTCL Write:BGAttr="I" @FMTI If BGAttr="IN" Write @FMTI Set:'$L($G(Char)) Char=" " If "14C"'[sScr("VT") Do .Set Char=$TR($J("",R-L+1)," ",Char) .Set FP=T-1*100+L .For R=T:1:B Set FP=FP+100 Write @F,Char Else Write *27,"[",$A(Char),";"_T_";"_L_";"_B_";"_R_";$x" Quit HLIJN(P,L,R,HoekL,HoekR,Grafix) New I Set:'HoekL HoekL=$F("T B M",HoekL)-1 Set:'HoekR HoekR=$F(" T B M",HoekR)-1 Write:'Grafix @F7 Write $C(27,91)_P_";"_L_"H" Write:HoekL @$P(FG,"\",HoekL) If "14C"'[sScr("VT") For I=1:1:R-L+1-''HoekL-''HoekR Write @$P(FG,"\",9) Else Write *27,"[113;"_P_";"_(L+''HoekL)_";"_P_";"_(R-''HoekR)_";$x" Write:HoekR $C(27,91)_P_";"_R_"H",@$P(FG,"\",HoekR) Write:'Grafix @F8 Quit VLIJN(P,T,B,HoekT,HoekB,Grafix) New I Set:'HoekT HoekT=$F("LR M",HoekT)-1 Set:'HoekB HoekB=$F(" LR M",HoekB)-1 Write:'Grafix @F7 Write $C(27,91)_T_";"_P_"H" Write:HoekT @$P(FG,"\",HoekT) If "14C"'[sScr("VT") For I=1:1:B-T+1-''HoekT-''HoekB Write $C(27,91)_I_";"_P_"H",@$P(FG,"\",10) Else Write *27,"[120;"_(T+''HoekT)_";"_P_";"_(B-''HoekB)_";"_P_";$x" Write:HoekB $C(27,91)_P_";"_B_"H",@$P(FG,"\",HoekB) Write:'Grafix @F8 Quit VANNAAR(DevTyp) New Select,zb If DevTyp="?" Do Quit:zb="CANC" .Set Select=$E($G(^cLOG(boot,"DEV",$$IO^cQ5))) .Set DevTyp=$$PI^cPOPUP("C;C","-1O","Vertaling","%TERMINA","VANNAAR",Select) Set FVAN="ÄÉÖÜàáäâèéëêìíïîòóöôùúüûç°Øø"_$C(177) Set FNAAR="AEOUaaaaeeeeiiiioooouuuucgOo~" ; Flat ascii ;Set:$E(DevTyp)="M" FNAAR=$C(#80,#83,#85,#86,#88,#87,#8A,#89,#8F,#8E,#91,#90,#93,#92,#95,#94,#98,#97,#9A,#99,#9D,#9C,#9F,#9E,#8D,#A1,#AF,#BF,241) ; Macintosh ;Set:$E(DevTyp)="P" FNAAR=$C(142,144,153,154,133,160,132,131,138,130,137,136,141,161,139,140,149,162,148,147,151,163,129,150,135,248,157,155,241) ; IBM-compatible codepage 850 Quit