XMC ;ISC-SF/GMB-Network Programmer Options Menu ;12/16/2002  09:35
 ;;8.0;MailMan;**12**;Jun 28, 2002
 ; Was (WASH ISC)/THM
ENTER ;
 I '$G(DUZ) W $C(7),!!,$$EZBLD^DIALOG(38105) Q  ; You do not have a DUZ.
 N XMDUZ,XMV,XMABORT,XM,XMDISPI,XMDUN
 D INIT^XMVVITAE
 I '$D(DT) D DT^DICRW
 I $D(IO)[0 S IOP="HOME" D ^%ZIS
 U IO(0) W !,^XMB("NETNAME")
 D:$O(^DOPT("XMC","B",""))'?1"ACT".E INIT
 F  D  Q:XMABORT
 . N DIC,X,Y
 . U IO(0)
 . W !
 . S DIC="^DOPT(""XMC"",",DIC(0)="AEQZ"
 . D ^DIC K DIC I Y<0 S XMABORT=1 Q
 . S X=$P(Y(0),U,2,99)
 . K DIC,Y
 . S XM="D"
 . D @X
 . I $L(IO) U IO X ^%ZOSF("EON")
 . D ^%ZISC
 . X ^%ZOSF("EON")
 . U IO(0)
 . S XMABORT=0
 D KL
 Q
KL ;
 X ^%ZOSF("EON")
 D KL1
 Q
KL1 ;
 ; XMOS   - Operating System of the computer at this site
 D KILL
 K %DT,%H,ER,I,X,Y,Y1,Y3,Z
 K XMCNT
 K XMD,XMDIAL
 K XME,XMEC,XMER,XMESC
 K XMFS
 K XMLAN,XMLIN,XMLL,XMLT,XMLX
 K XMOS
 K XMP,XMPOLL
 K XMR
 K XMS0AJ,XMSUB,XMSUM
 K XMTLER
 K XMZ
 Q
KILL ; Kill variables used across routines
 ; XM      - Debug: Write all xactions to screen, too? ""=no; "D"=yes
 ; XMB("SCR IEN") - Script IEN
 ; XMB("SCR REC") - Script record
 ; XMC("AUDIT") - Are we auditing? 0=no; n=yes, where n is 1 to 99
 ; XMC("BATCH") - Batch mode (to tape or global)? 0=no; 1=yes
 ; XMC("DIR") - Current direction of transmission? S=sending; R=receiving
 ; XMC("HELO RECV") - Name of site we are receiving message from
 ; XMC("HELO SEND") - Name of site we are sending message to
 ; XMC("C","R") - # chars rcvd this session
 ; XMC("C","S") - # chars sent this session
 ; XMC("L") - # lines xmited (rcvd & sent) this session
 ; XMC("R") - # msgs rcvd this session
 ; XMC("S") - # msgs sent this session
 ; XMC("MAILMAN") - MailMan version # of remote site, when communicating
 ;                  with another MailMan site, version > 4
 ; XMC("SHOW TRAN") - ["S"= Write the 'send' line to the screen
 ;                    ["R"= Write the 'receive' line to the screen
 ; XMC("START") - timestamp at start of xmit session
 ; XMC("TALKMODE") - Are we in talk mode? 0=no; 1=yes
 ; XMC("TURN") - Have we turned already? 0=no; 1=yes
 ; XMCHAN  - Before GET^XML: Name of Comm Protocol (file 3.4) channel
 ;           After  GET^XML: IEN of Comm Protocol (file 3.4) channel
 ; XMCLOSE - Xecute this variable to close the channel (file 3.4,field 4)
 ; XMHOST  - IP address
 ; XMINST  - IEN of Domain (file 4.2) being communicated with
 ; XMLINE  - Tracks line number when dumping msgs to/reading from tape
 ; XMPROT  - Name of Communications Protocol (file 3.4) channel
 ; XMOPEN  - Xecute this variable to open the channel (file 3.4,field 3)
 ; XMREC   - Xecute this variable to receive a line (file 3.4,field 2)
 ; XMRG    - The line received
 ; XMRPORT - Port # used
 ; XMSEN   - Xecute this variable to send a line (file 3.4,field 1)
 ; XMSG    - The line to send
 ; XMSITE  - Name of Domain (file 4.2) being communicated with
 ; XMTASK  - Tracks IEN in 4.281 when dumping msgs to/reading from tape
 ; XMTRAN  - A line to display on the screen by TRAN^XMC1
 K XMB
 K XMC,XMCHAN
 K XMINST,XMSITE
 K XMSEN,XMREC,XMOPEN,XMCLOSE
 ; Kill variables in DIC(3.4 and DIC(4.6
 ; (Not used: XMBT,XMLCHAR)
 K X,ER,TCPCHAN
 K XM
 K XMBT
 K XMDECNET
 K XMER
 K XMHANG,XMHOST
 K XMLCHAR,XMLCT,XMLER,XMLINE,XMLST,XMLTCP
 K XMNO220
 K XMPROT
 K XMRG,XMRPORT
 K XMSG,XMSIO,XMSTIME
 K XMTASK,XMTRAN
 Q
INIT ;INITIALIZE COMMAND TABLE
 N I,X,DIK
 K ^DOPT("XMC")
 S ^DOPT("XMC",0)=$$EZBLD^DIALOG(42201)_"^1N^" ; MailMan Network Programmer Option
 F I=1:1 S X=$P($E($T(Z+I),4,99),";") Q:X=""  S ^DOPT("XMC",I,0)=$$EZBLD^DIALOG($P(X,U,1))_U_$P(X,U,2,99)
 S DIK="^DOPT(""XMC"","
 D IXALL^DIK
 Q
Z ;;
 ;;42201.01^^XM;MAILMAN
 ;;42201.02^PLAY^XMCX;PLAY A SCRIPT
 ;;42201.03^Q1^XMCX;SCHEDULE TASK FOR ONE DOMAIN WITH QUEUED MESSAGES
 ;;42201.04^QALL^XMCX;SCHEDULE TASKS FOR ALL DOMAINS WITH QUEUED MESSAGES
 ;;42201.05^SHOWQ^XMCQ;SHOW A QUEUE
 ;;42201.06^LIST^XMCXT;LIST TRANSCRIPT
 ;;42201.07^STATUS^XMCQ;TRANSMIT QUEUE STATUS REPORT
 ;;42201.08^ACTIVE^XMCQA;ACTIVELY TRANSMITTING QUEUES REPORT
 ;;42201.09^ALL^XMCQA;QUEUES WITH MESSAGES TO GO OUT REPORT
 ;;42201.1^ENTER^XMCQH;HISTORICAL QUEUE STATISTICS REPORT
 ;;42201.11^GLBOUT^XMCB;SEND MESSAGES TO ANOTHER UCI VIA %ZISL GLOBAL
 ;;42201.12^GLBIN^XMCB;RECEIVE MESSAGES FROM ANOTHER UCI VIA %ZISL GLOBAL
 ;;42201.13^TAPEOUT^XMCB;SEQUENTIAL MEDIA QUEUE TRANSMISSION
 ;;42201.14^TAPEIN^XMCB;SEQUENTIAL MEDIA MESSAGE RECEPTION
 ;;42201.15^VAL^XMCE;VALIDATION NUMBER EDIT
 ;;42201.16^OUT^XMCE;TOGGLE A SCRIPT OUT OF SERVICE
 ;;42201.17^EDIT42^XMCE;EDIT A SCRIPT
 ;;42201.18^EDIT46^XMCE;SUBROUTINE EDITOR
 ;;
 ;;**OBSOLETE**
 ;;BLOB SEND^BLOB^XMA2B
 ;;DIAL PHONE^DI^XMC1
 ;;HANG UP PHONE^H^XMC1
 ;;IMMEDIATE SCRIPT MODE^IMM^XMC11
 ;;RESUME SCRIPT PROCESSING^RES^XMC1
 ;;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXMC   4900     printed  Sep 23, 2025@19:47:08                                                                                                                                                                                                         Page 2
XMC       ;ISC-SF/GMB-Network Programmer Options Menu ;12/16/2002  09:35
 +1       ;;8.0;MailMan;**12**;Jun 28, 2002
 +2       ; Was (WASH ISC)/THM
ENTER     ;
 +1       ; You do not have a DUZ.
           IF '$GET(DUZ)
               WRITE $CHAR(7),!!,$$EZBLD^DIALOG(38105)
               QUIT 
 +2        NEW XMDUZ,XMV,XMABORT,XM,XMDISPI,XMDUN
 +3        DO INIT^XMVVITAE
 +4        IF '$DATA(DT)
               DO DT^DICRW
 +5        IF $DATA(IO)[0
               SET IOP="HOME"
               DO ^%ZIS
 +6        USE IO(0)
           WRITE !,^XMB("NETNAME")
 +7        if $ORDER(^DOPT("XMC","B",""))'?1"ACT".E
               DO INIT
 +8        FOR 
               Begin DoDot:1
 +9                NEW DIC,X,Y
 +10               USE IO(0)
 +11               WRITE !
 +12               SET DIC="^DOPT(""XMC"","
                   SET DIC(0)="AEQZ"
 +13               DO ^DIC
                   KILL DIC
                   IF Y<0
                       SET XMABORT=1
                       QUIT 
 +14               SET X=$PIECE(Y(0),U,2,99)
 +15               KILL DIC,Y
 +16               SET XM="D"
 +17               DO @X
 +18               IF $LENGTH(IO)
                       USE IO
                       XECUTE ^%ZOSF("EON")
 +19               DO ^%ZISC
 +20               XECUTE ^%ZOSF("EON")
 +21               USE IO(0)
 +22               SET XMABORT=0
               End DoDot:1
               if XMABORT
                   QUIT 
 +23       DO KL
 +24       QUIT 
KL        ;
 +1        XECUTE ^%ZOSF("EON")
 +2        DO KL1
 +3        QUIT 
KL1       ;
 +1       ; XMOS   - Operating System of the computer at this site
 +2        DO KILL
 +3        KILL %DT,%H,ER,I,X,Y,Y1,Y3,Z
 +4        KILL XMCNT
 +5        KILL XMD,XMDIAL
 +6        KILL XME,XMEC,XMER,XMESC
 +7        KILL XMFS
 +8        KILL XMLAN,XMLIN,XMLL,XMLT,XMLX
 +9        KILL XMOS
 +10       KILL XMP,XMPOLL
 +11       KILL XMR
 +12       KILL XMS0AJ,XMSUB,XMSUM
 +13       KILL XMTLER
 +14       KILL XMZ
 +15       QUIT 
KILL      ; Kill variables used across routines
 +1       ; XM      - Debug: Write all xactions to screen, too? ""=no; "D"=yes
 +2       ; XMB("SCR IEN") - Script IEN
 +3       ; XMB("SCR REC") - Script record
 +4       ; XMC("AUDIT") - Are we auditing? 0=no; n=yes, where n is 1 to 99
 +5       ; XMC("BATCH") - Batch mode (to tape or global)? 0=no; 1=yes
 +6       ; XMC("DIR") - Current direction of transmission? S=sending; R=receiving
 +7       ; XMC("HELO RECV") - Name of site we are receiving message from
 +8       ; XMC("HELO SEND") - Name of site we are sending message to
 +9       ; XMC("C","R") - # chars rcvd this session
 +10      ; XMC("C","S") - # chars sent this session
 +11      ; XMC("L") - # lines xmited (rcvd & sent) this session
 +12      ; XMC("R") - # msgs rcvd this session
 +13      ; XMC("S") - # msgs sent this session
 +14      ; XMC("MAILMAN") - MailMan version # of remote site, when communicating
 +15      ;                  with another MailMan site, version > 4
 +16      ; XMC("SHOW TRAN") - ["S"= Write the 'send' line to the screen
 +17      ;                    ["R"= Write the 'receive' line to the screen
 +18      ; XMC("START") - timestamp at start of xmit session
 +19      ; XMC("TALKMODE") - Are we in talk mode? 0=no; 1=yes
 +20      ; XMC("TURN") - Have we turned already? 0=no; 1=yes
 +21      ; XMCHAN  - Before GET^XML: Name of Comm Protocol (file 3.4) channel
 +22      ;           After  GET^XML: IEN of Comm Protocol (file 3.4) channel
 +23      ; XMCLOSE - Xecute this variable to close the channel (file 3.4,field 4)
 +24      ; XMHOST  - IP address
 +25      ; XMINST  - IEN of Domain (file 4.2) being communicated with
 +26      ; XMLINE  - Tracks line number when dumping msgs to/reading from tape
 +27      ; XMPROT  - Name of Communications Protocol (file 3.4) channel
 +28      ; XMOPEN  - Xecute this variable to open the channel (file 3.4,field 3)
 +29      ; XMREC   - Xecute this variable to receive a line (file 3.4,field 2)
 +30      ; XMRG    - The line received
 +31      ; XMRPORT - Port # used
 +32      ; XMSEN   - Xecute this variable to send a line (file 3.4,field 1)
 +33      ; XMSG    - The line to send
 +34      ; XMSITE  - Name of Domain (file 4.2) being communicated with
 +35      ; XMTASK  - Tracks IEN in 4.281 when dumping msgs to/reading from tape
 +36      ; XMTRAN  - A line to display on the screen by TRAN^XMC1
 +37       KILL XMB
 +38       KILL XMC,XMCHAN
 +39       KILL XMINST,XMSITE
 +40       KILL XMSEN,XMREC,XMOPEN,XMCLOSE
 +41      ; Kill variables in DIC(3.4 and DIC(4.6
 +42      ; (Not used: XMBT,XMLCHAR)
 +43       KILL X,ER,TCPCHAN
 +44       KILL XM
 +45       KILL XMBT
 +46       KILL XMDECNET
 +47       KILL XMER
 +48       KILL XMHANG,XMHOST
 +49       KILL XMLCHAR,XMLCT,XMLER,XMLINE,XMLST,XMLTCP
 +50       KILL XMNO220
 +51       KILL XMPROT
 +52       KILL XMRG,XMRPORT
 +53       KILL XMSG,XMSIO,XMSTIME
 +54       KILL XMTASK,XMTRAN
 +55       QUIT 
INIT      ;INITIALIZE COMMAND TABLE
 +1        NEW I,X,DIK
 +2        KILL ^DOPT("XMC")
 +3       ; MailMan Network Programmer Option
           SET ^DOPT("XMC",0)=$$EZBLD^DIALOG(42201)_"^1N^"
 +4        FOR I=1:1
               SET X=$PIECE($EXTRACT($TEXT(Z+I),4,99),";")
               if X=""
                   QUIT 
               SET ^DOPT("XMC",I,0)=$$EZBLD^DIALOG($PIECE(X,U,1))_U_$PIECE(X,U,2,99)
 +5        SET DIK="^DOPT(""XMC"","
 +6        DO IXALL^DIK
 +7        QUIT 
Z         ;;
 +1       ;;42201.01^^XM;MAILMAN
 +2       ;;42201.02^PLAY^XMCX;PLAY A SCRIPT
 +3       ;;42201.03^Q1^XMCX;SCHEDULE TASK FOR ONE DOMAIN WITH QUEUED MESSAGES
 +4       ;;42201.04^QALL^XMCX;SCHEDULE TASKS FOR ALL DOMAINS WITH QUEUED MESSAGES
 +5       ;;42201.05^SHOWQ^XMCQ;SHOW A QUEUE
 +6       ;;42201.06^LIST^XMCXT;LIST TRANSCRIPT
 +7       ;;42201.07^STATUS^XMCQ;TRANSMIT QUEUE STATUS REPORT
 +8       ;;42201.08^ACTIVE^XMCQA;ACTIVELY TRANSMITTING QUEUES REPORT
 +9       ;;42201.09^ALL^XMCQA;QUEUES WITH MESSAGES TO GO OUT REPORT
 +10      ;;42201.1^ENTER^XMCQH;HISTORICAL QUEUE STATISTICS REPORT
 +11      ;;42201.11^GLBOUT^XMCB;SEND MESSAGES TO ANOTHER UCI VIA %ZISL GLOBAL
 +12      ;;42201.12^GLBIN^XMCB;RECEIVE MESSAGES FROM ANOTHER UCI VIA %ZISL GLOBAL
 +13      ;;42201.13^TAPEOUT^XMCB;SEQUENTIAL MEDIA QUEUE TRANSMISSION
 +14      ;;42201.14^TAPEIN^XMCB;SEQUENTIAL MEDIA MESSAGE RECEPTION
 +15      ;;42201.15^VAL^XMCE;VALIDATION NUMBER EDIT
 +16      ;;42201.16^OUT^XMCE;TOGGLE A SCRIPT OUT OF SERVICE
 +17      ;;42201.17^EDIT42^XMCE;EDIT A SCRIPT
 +18      ;;42201.18^EDIT46^XMCE;SUBROUTINE EDITOR
 +19      ;;
 +20      ;;**OBSOLETE**
 +21      ;;BLOB SEND^BLOB^XMA2B
 +22      ;;DIAL PHONE^DI^XMC1
 +23      ;;HANG UP PHONE^H^XMC1
 +24      ;;IMMEDIATE SCRIPT MODE^IMM^XMC11
 +25      ;;RESUME SCRIPT PROCESSING^RES^XMC1
 +26      ;;