1 | DDGLIB0 ;SFISC/MKO-SETUP AND CLEANUP FOR WINDOWS ;1:09 PM 19 Jun 1998
|
---|
2 | ;;22.0;VA FileMan;;Mar 30, 1999
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | INIT() ;Setup required variables
|
---|
5 | ;Set margin to 0
|
---|
6 | ;Turn autowrap off
|
---|
7 | ;Turn type-ahead on
|
---|
8 | ;Variables set:
|
---|
9 | ; DDGLDEL = delimiter for other DDGL variables
|
---|
10 | ; DDGLVID = codes that turn on/off video attributes
|
---|
11 | ; DDGLED = codes for editing
|
---|
12 | ; DDGLCLR = codes to erase characters
|
---|
13 | ; DDGLGRA = codes for graphics characters
|
---|
14 | ; DDGLZOSF = array of code from %ZOSF
|
---|
15 | ; DDGLREF = global where window image is stored
|
---|
16 | ; DDGLKEY = codes for non-alphanumeric keys
|
---|
17 | ; DDGLSCR = array containing list of visible windows on screen
|
---|
18 | ;
|
---|
19 | N X
|
---|
20 | I $D(DDGLDEL)[0 D SET Q:$G(DIERR)
|
---|
21 | S X=0 X ^%ZOSF("RM"),^("TYPE-AHEAD")
|
---|
22 | W $P(DDGLVID,DDGLDEL,8)
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | SET ;Setup screen handling variables
|
---|
26 | K DIERR,DDGLSCR
|
---|
27 | S U="^",DDGLDEL=$C(127)
|
---|
28 | ;
|
---|
29 | F X="EOFF","EON","TRMOFF","TRMON","TRMRD" D G:$G(DIERR) ABT
|
---|
30 | . I $D(^%ZOSF(X))#2 S DDGLZOSF(X)=^(X) Q
|
---|
31 | . D BLD^DIALOG(810)
|
---|
32 | ;
|
---|
33 | S IOP="HOME" D ^%ZIS I POP D BLD^DIALOG(845) G ABT
|
---|
34 | I $D(^%ZIS(2)),'$O(^%ZIS(2,+$G(IOST(0)),0)) D BLD^DIALOG(840,"#"_+$G(IOST(0))) G ABT
|
---|
35 | ;
|
---|
36 | D:$G(IOXY)="" TRMERR("Cursor positioning (XY CRT)")
|
---|
37 | ;
|
---|
38 | S X="IORVON;IORVOFF;IOELEOL;IOEDEOP;IOUON;IOUOFF;IOSGR0;IOINHI;IOINLOW;IOINORM;IOCUU;IOCUD;IOCUF;IOCUB;IODL;IOIL;IODCH;IOICH;IOEDALL;IOELALL;IORI;IOAWM1;IOAWM0;IOSTBM;IOPF1;IOPF2;IOPF3;IOPF4;IOFIND;IOSELECT;IOINSERT;IOREMOVE;IOPREVSC;IONEXTSC"
|
---|
39 | N @$TR(X,";",",")
|
---|
40 | N IOBLC,IOBRC,IOBT,IOG1,IOG0,IOHL,IOLT,IOMT,IORT,IOTLC,IOTRC,IOTT,IOVL
|
---|
41 | D ENDR^%ZISS,GSET^%ZISS
|
---|
42 | I $G(IOPREVSC)="","^C-VT220^C-VT320^"[(U_IOST_U) D
|
---|
43 | . S IOPREVSC=$C(27)_"[5~"
|
---|
44 | . S IONEXTSC=$C(27)_"[6~"
|
---|
45 | ;
|
---|
46 | S DDGLVID=IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINORM_DDGLDEL_IOUON_DDGLDEL_IOUOFF_DDGLDEL_IORVON_DDGLDEL_IORVOFF_DDGLDEL_IOAWM0_DDGLDEL_IOAWM1_DDGLDEL_$G(IOSGR0)
|
---|
47 | S DDGLED=$G(IORI)_DDGLDEL_$G(IOSTBM)_DDGLDEL_$G(IOIL)_DDGLDEL_$G(IODL)_DDGLDEL_$G(IOICH)_DDGLDEL_$G(IODCH)
|
---|
48 | S DDGLCLR=IOELEOL_DDGLDEL_IOEDALL_DDGLDEL_IOEDEOP_DDGLDEL_$G(IOELALL)
|
---|
49 | S DDGLKEY=U_IOCUU_U_IOCUD_U_IOCUF_U_IOCUB_U_IOPF1_U_IOPF2_U_IOPF3_U_IOPF4_U_$G(IOFIND)_U_$G(IOSELECT)_U_$G(IOINSERT)_U_$G(IOREMOVE)_U_$G(IOPREVSC)_U_$G(IONEXTSC)_U
|
---|
50 | S DDGLGRA=IOG1_DDGLDEL_IOG0_DDGLDEL_IOHL_DDGLDEL_IOVL_DDGLDEL_IOTLC_DDGLDEL_IOTRC_DDGLDEL_IOBLC_DDGLDEL_IOBRC
|
---|
51 | S:DDGLDEL_$P(DDGLGRA,DDGLDEL,3,999)_DDGLDEL[(DDGLDEL_DDGLDEL) DDGLGRA=DDGLDEL_DDGLDEL_"-"_DDGLDEL_"|"_DDGLDEL_"+"_DDGLDEL_"+"_DDGLDEL_"+"_DDGLDEL_"+"
|
---|
52 | ;
|
---|
53 | D:$P(DDGLKEY,U,1,5)_U[(U_U) TRMERR("Cursor keys")
|
---|
54 | D:U_$P(DDGLKEY,U,6,9)_U[(U_U) TRMERR("PF keys")
|
---|
55 | D:IOELEOL="" TRMERR("Erase to End of Line")
|
---|
56 | D:IOEDALL="" TRMERR("Erase Entire Page")
|
---|
57 | D:IOEDEOP="" TRMERR("Erase to End of Page")
|
---|
58 | G:$G(DIERR) ABT
|
---|
59 | ;
|
---|
60 | S DDGLREF="^TMP(""DDGL"",$J,""W"")" K @DDGLREF
|
---|
61 | ;
|
---|
62 | I "^C-QUME^C-QVT102^C-WYSE75^"[(U_$TR(IOST," ","")_U) D
|
---|
63 | . S DDGLVAN=1
|
---|
64 | . S $P(DDGLVID,DDGLDEL,4,7)=$S($TR(IOST," ","")="C-WYSE75":IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINHI_DDGLDEL_IOINLOW,1:IOINLOW_DDGLDEL_IOINHI_DDGLDEL_IOINLOW_DDGLDEL_IOINHI)
|
---|
65 | . S $P(DDGLVID,DDGLDEL,10)=IOINORM
|
---|
66 | ;
|
---|
67 | D:'$D(^%ZTSK)!($D(^%ZOSF("MGR"))[0) KILL^%ZISS
|
---|
68 | Q
|
---|
69 | ;
|
---|
70 | TRMERR(DDGLCH) ;Terminal type errors
|
---|
71 | N P
|
---|
72 | S P(1)=DDGLCH,P(2)=IOST
|
---|
73 | D BLD^DIALOG(842,.P)
|
---|
74 | Q
|
---|
75 | ;
|
---|
76 | KILL(DDGLPARM) ;Cleanup variables
|
---|
77 | ;Set margin to IOM
|
---|
78 | ;Turn off type-ahead if New Person file so indicates
|
---|
79 | ;Turn autowrap on
|
---|
80 | ;Reset character attributes
|
---|
81 | ;Turn echo on
|
---|
82 | ;Turn terminators off
|
---|
83 | N X
|
---|
84 | I $G(DDGLPARM)'["W" D
|
---|
85 | . S X=$S($D(IOM)#2:IOM,1:80) X $G(^%ZOSF("RM"))
|
---|
86 | . I $D(DUZ)#2,$D(^VA(200,DUZ,0))#2,$P($G(^(200)),U,9)'="Y" D
|
---|
87 | .. I '$G(DUZ("BUF"),1) X $G(^%ZOSF("NO-TYPE-AHEAD"))
|
---|
88 | . W $P($G(DDGLVID),$G(DDGLDEL),9),$P($G(DDGLVID),$G(DDGLDEL),10)
|
---|
89 | ;
|
---|
90 | I $G(DDGLPARM)'["T" D
|
---|
91 | . X $G(DDGLZOSF("EON")),$G(DDGLZOSF("TRMOFF"))
|
---|
92 | E X $G(DDGLZOSF("EOFF")),$G(DDGLZOSF("TRMON"))
|
---|
93 | ;
|
---|
94 | ABT K DX,DY,POP
|
---|
95 | I '$G(DIERR),$G(DDGLPARM)["K" Q
|
---|
96 | K:$G(DDGLREF)]"" @DDGLREF
|
---|
97 | D:'$D(^%ZTSK)!($D(^%ZOSF("MGR"))[0) KILL^%ZISS
|
---|
98 | ;
|
---|
99 | K DDGLDEL,DDGLVID,DDGLED,DDGLCLR,DDGLGRA,DDGLZOSF,DDGLREF
|
---|
100 | K DDGLKEY,DDGLSCR,DDGLVAN,DDGLH
|
---|
101 | ;
|
---|
102 | K DIR0
|
---|
103 | Q
|
---|