1 | XMCTLK ;(WASH ISC)/CAP-TalkMan ;04/18/2002 07:29
|
---|
2 | ;;8.0;MailMan;;Jun 28, 2002
|
---|
3 | ; Entry points used by MailMan options (not covered by DBIA):
|
---|
4 | ; TALK XMTALK
|
---|
5 | I '$D(DUZ) W !,$C(7),"You don't have a DUZ." Q
|
---|
6 | N XMABORT,XMDUZ,XMV
|
---|
7 | D INIT
|
---|
8 | S XMABORT=0
|
---|
9 | D HELP(.XMABORT) Q:XMABORT
|
---|
10 | GO K XMG0
|
---|
11 | GO1 K %ZIS
|
---|
12 | S %ZIS=""
|
---|
13 | D ^%ZIS Q:POP
|
---|
14 | I '$D(XMDUZ) Q:'$D(DUZ) D INIT
|
---|
15 | I IO=IO(0) D ^%ZISC W !,"YOU MUST CHOOSE ANOTHER DEVICE" Q
|
---|
16 | ENT ;
|
---|
17 | N XMZ,XMSUB,TN,TL,TP,TK
|
---|
18 | W @IOF,"<<<< You are now talking through device ",IO," >>>>"
|
---|
19 | X ^%ZOSF("NBRK"),^("PRIINQ") S XMP=Y,X=Y+3,XME0(0)="S R=0,XME0=$$TSTAMP^XMXUTIL1" S:X>10 X=10
|
---|
20 | X ^%ZOSF("PRIORITY")
|
---|
21 | I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP=""
|
---|
22 | S X="ABEND^XMCTLK",@^%ZOSF("TRAP")
|
---|
23 | W !,"===== Enter <control>A to stop. =====",$C(7),!
|
---|
24 | S XM="",D="",XMD0=0,A=""
|
---|
25 | S XMB0=^%ZOSF("EOFF"),XMB0("RM")="S X=0 "_^("RM"),XMC0=^("EON"),XMF0=^("TYPE-AHEAD"),XMA=^("TRMRD") F I="TRMON","TRMOFF","NBRK" S XMG0(I)=^(I)
|
---|
26 | S TN=$P($H,",",2),TL=TN,(TP,TK)=0 ; Times & Timed reads Port/Keyboard
|
---|
27 | D T
|
---|
28 | S D=""
|
---|
29 | U IO
|
---|
30 | G G
|
---|
31 | ;
|
---|
32 | ;MAIN LOOP / DIALOG OCCURS HERE
|
---|
33 | R ;
|
---|
34 | W:$D(XMC("TALKMODE")) *17
|
---|
35 | U IO
|
---|
36 | R A#150:$S($G(R)>20:1,1:0)
|
---|
37 | W:$D(XMC("TALKMODE")) *19
|
---|
38 | S D=D_A
|
---|
39 | X XMA
|
---|
40 | S TN=$P($H,",",2)
|
---|
41 | S:(TN-TL>5) TP=1 ;ihs Time Now TP adjustment
|
---|
42 | S R=$G(R)+1
|
---|
43 | I Y>0 D T0 U IO(0) W A,*Y S TP=0,TL=TN X XME0(0) G R
|
---|
44 | D T0
|
---|
45 | U IO(0)
|
---|
46 | W A
|
---|
47 | I $L(A) S TP=0,TL=TN X XME0(0) D T0 G R
|
---|
48 | S ;
|
---|
49 | S Y=0
|
---|
50 | U IO(0)
|
---|
51 | R A:TK S TK=0 E U IO W A S:$L(A) TP=0,TL=TN G R:$L(A),Q:$$TSTAMP^XMXUTIL1-XME0>$S($D(DTIME):DTIME,1:300),R ;ihs timer adjustment
|
---|
52 | X XMA
|
---|
53 | G Q:Y=1
|
---|
54 | S:Y=27 TK=1
|
---|
55 | S TP=0
|
---|
56 | I Y=13,$D(XMG0("EON")) S TP=0 U IO(0) W ! ;ihs timer adjustment
|
---|
57 | U IO
|
---|
58 | W A,*Y
|
---|
59 | W:$D(XMG0("EON"))&(Y=13) !
|
---|
60 | S:$L(A) TP=0
|
---|
61 | X XME0(0)
|
---|
62 | G R
|
---|
63 | Q ;
|
---|
64 | U IO(0)
|
---|
65 | W $C(7)
|
---|
66 | H 1
|
---|
67 | W $C(7)
|
---|
68 | X XMC0,XMF0,XMG0("TRMOFF"),XMG0("NBRK")
|
---|
69 | K DIR
|
---|
70 | S DIR("T")=9
|
---|
71 | S DIR(0)="S^E:END TalkMan session;C:begin CAPTURE TalkMan dialog in message;N:do NOT end TalkMan session.;K:KERMIT Transfer Files"
|
---|
72 | S DIR("B")="N"
|
---|
73 | S DIR("??")="XMTALK"
|
---|
74 | I '$D(XMDUZ) S $P(DIR(0),";",2,3)=$P(DIR(0),";",3) G D
|
---|
75 | I $D(XMSUB) S $P(DIR(0),";",2)="S:STOP capture"
|
---|
76 | D ;
|
---|
77 | S XMA0=D
|
---|
78 | D ^DIR S:$D(DTOUT) X="^" I '$D(X) W " ???? " G D
|
---|
79 | S D=XMA0
|
---|
80 | I "N"[X D T S A=" <Continue in TalkMan Mode >" D T0 W !,A,! G G
|
---|
81 | ;
|
---|
82 | ;Using Kermit !
|
---|
83 | I "K"=X D G G
|
---|
84 | . N X
|
---|
85 | . I $G(^DIC(15,0,"VR"))'>7.1 W !," <No Kermit use yet. The correct Kernel tools version is not installed !>",! Q
|
---|
86 | . D KERM^XTKERMIT,T
|
---|
87 | . W !," <Continue in TalkMan Mode >",!
|
---|
88 | . D U
|
---|
89 | . S D="",Y=1
|
---|
90 | I "S"=X K XMSUB W ! G G
|
---|
91 | G DQ:"^E"[$E(X)
|
---|
92 | I $D(XMZ) W ! S XMSUB=1 G G
|
---|
93 | S XMD0=0
|
---|
94 | K %I,%H
|
---|
95 | S XMSUB=XMDUN_" DIALOG CAPTURE "_$$HTE^XLFDT($H,5)
|
---|
96 | D GET^XMA2
|
---|
97 | W !
|
---|
98 | G G
|
---|
99 | ;
|
---|
100 | G ;RETURN TO TALKMAN MODE
|
---|
101 | U IO
|
---|
102 | X XMB0("RM"),XMB0,XMF0,XMG0("NBRK"),XMG0("TRMON")
|
---|
103 | X:$D(XMG0("EON")) XMC0
|
---|
104 | D T
|
---|
105 | X XME0(0)
|
---|
106 | G R
|
---|
107 | ;
|
---|
108 | ABEND ;Handle abnormal end
|
---|
109 | D ^%ZISC
|
---|
110 | U IO(0)
|
---|
111 | W $C(7)
|
---|
112 | H 1
|
---|
113 | W $C(7)
|
---|
114 | X XMC0,XMF0,XMG0("TRMOFF"),XMG0("NBRK")
|
---|
115 | G DQ
|
---|
116 | ;
|
---|
117 | ;END TALKMAN SESSION
|
---|
118 | DQ ;
|
---|
119 | W $C(7),!!,"End of Talkman session."
|
---|
120 | W !,"You are back at your starting place.",!
|
---|
121 | H 1
|
---|
122 | W $C(7)
|
---|
123 | W !!
|
---|
124 | U IO
|
---|
125 | W *17
|
---|
126 | X XMG0("TRMOFF")
|
---|
127 | D ^%ZISC,HOME^%ZIS
|
---|
128 | D N
|
---|
129 | G QQ:'$D(XMZ),QQ:'XMZ
|
---|
130 | I 'XMD0 D KILLMSG^XMXUTIL(XMZ) G QQ
|
---|
131 | I $P(XMD0,U,2,999)'="" S XMSUB=1,Y=999,D=$P(XMD0,U,2,999) D T0
|
---|
132 | S XMD0=+XMD0
|
---|
133 | I XMD0 D NOW^%DTC D K %I,%H G QQ
|
---|
134 | . S ^XMB(3.9,XMZ,2,0)="^3.92A^"_XMD0_U_XMD0_U_%
|
---|
135 | . K XMY,^TMP("XMY",$J),^TMP("XMY0",$J)
|
---|
136 | . S XMY($G(XMDUZ,DUZ))=""
|
---|
137 | . D ENT1^XMD W !,"TalkMan dialog capture being delivered now."
|
---|
138 | D KILLMSG^XMXUTIL(XMZ)
|
---|
139 | QQ ;
|
---|
140 | W !
|
---|
141 | D CHK^XM
|
---|
142 | W !
|
---|
143 | S X=XMP
|
---|
144 | X ^%ZOSF("PRIORITY")
|
---|
145 | K %,X1,X2,XMA0,XMB0,XMC0,XMD0,XME0,XMF0,XMG0,XMA,XMP,XMSUB,DIR
|
---|
146 | S XMZ=0
|
---|
147 | Q
|
---|
148 | N ;
|
---|
149 | U IO(0)
|
---|
150 | X XMC0
|
---|
151 | I $D(DUZ) S X=$G(^VA(200,DUZ,200)) Q:X#10'=1 Q:$P(^(200),U,9)="Y"
|
---|
152 | S A="NO-TYPE-AHEAD" Q:'$D(^%ZOSF(A)) X ^(A)
|
---|
153 | Q
|
---|
154 | T ;
|
---|
155 | U IO(0)
|
---|
156 | S X=0
|
---|
157 | X ^%ZOSF("RM"),XMF0,XMB0,XMG0("TRMON"),XMG0("NBRK")
|
---|
158 | I $D(XMG0("EON")) X XMC0
|
---|
159 | Q
|
---|
160 | T0 ;
|
---|
161 | I '$D(XMSUB)!(D=""&(Y'=9)) S D="" Q
|
---|
162 | I D'?.ANP F I=1:1 I $E(D,I)?1C S D=$E(D,1,I-1)_$S($A(D,I)=9:"",1:" ")_$E(D,I+1,999) Q:$E(D,I,999)?.ANP S I=I-1
|
---|
163 | T1 ;
|
---|
164 | I Y'=13&($L(D)<81)!(Y>0&(D="")) S XMD0=+XMD0_U_D Q:Y'=9 S D=$E(D_" ",1,$L(D)\9+1*9),$P(XMD0,U,2)=D Q
|
---|
165 | I D="" S D=" "
|
---|
166 | S XMD0=XMD0+1,^XMB(3.9,XMZ,2,XMD0,0)=$E(D,1,80),D=$E(D,81,999)
|
---|
167 | G T1
|
---|
168 | U ;
|
---|
169 | S XME0=$$TSTAMP^XMXUTIL1
|
---|
170 | Q
|
---|
171 | ;
|
---|
172 | ;GET INITIAL VALUES
|
---|
173 | ECHO ;ENTRY TO ECHO
|
---|
174 | K XMG0
|
---|
175 | S XMG0("EON")=1
|
---|
176 | G GO1
|
---|
177 | INIT ;
|
---|
178 | D INIT^XMVVITAE
|
---|
179 | K XMA0,XMB0,XMC0,XMD0,XME0,XMF0
|
---|
180 | G H^XUS:'$D(XMDUZ),H^XUS:'$D(XMDUN) K XMZ
|
---|
181 | Q
|
---|
182 | HELP(XMABORT) ;
|
---|
183 | N DIR,X,Y
|
---|
184 | S DIR(0)="Y"
|
---|
185 | S DIR("A")="Do you want help"
|
---|
186 | S DIR("B")="NO"
|
---|
187 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
188 | Q:'Y
|
---|
189 | S XQH=$S($G(DUZ(0))="@":"XMTALK",$D(^XUSEC("XMMGR",DUZ)):"XMTALK",1:"XMTALK-USER")
|
---|
190 | D EN^XQH
|
---|
191 | Q
|
---|
192 | TALK ; Talk mode entry
|
---|
193 | I '$D(DUZ) W !,$C(7),"You don't have a DUZ." Q
|
---|
194 | N XMC,XMDUZ,XMV,XMOKTYPE,XMINST,XMSITE,XMIO,XMB,XMABORT
|
---|
195 | N XMLER,XMLINE,XMCNT,DIC,XMA0,XMB0,XMC0,XMD0,XME0,XMF0,XMG0
|
---|
196 | D INIT^XMVVITAE
|
---|
197 | S XMC("TALKMODE")=1,XMABORT=0
|
---|
198 | D HELP(.XMABORT) Q:XMABORT
|
---|
199 | ;Ask Domain / get defaults
|
---|
200 | ;S (XMOKTYPE("SMTP"),XMOKTYPE("TELNET"))=""
|
---|
201 | S XMOKTYPE("TELNET")=""
|
---|
202 | D ASK^XMCXU(.XMINST,.XMSITE,.XMB,.XMABORT,"I $P(^(0),U,2)[""T""",.XMOKTYPE) Q:XMABORT
|
---|
203 | S XMIO=$P(XMB("SCR REC"),U,5)
|
---|
204 | S XM=""
|
---|
205 | W !,"Attempting to connect...."
|
---|
206 | S XMDUZO=XMDUZ
|
---|
207 | D ENT^XMC1
|
---|
208 | S XMDUZ=XMDUZO K XMDUZO
|
---|
209 | I ER D Q
|
---|
210 | . D ^%ZISC
|
---|
211 | . W !,$C(7),"Could not connect to ",XMSITE,"."
|
---|
212 | . W !,"You are back at ",^XMB("NETNAME"),"."
|
---|
213 | . D KILL^XMC
|
---|
214 | U IO(0)
|
---|
215 | D ENT
|
---|
216 | D KILL^XMC
|
---|
217 | Q
|
---|