{"aaData": [["TEST", "
W !,\"R: \",XMSG S ER=0
\n", "
R !,\"S: \",XMRG S ER=XMRG[\"@@@@@\"
\n", "
D ^%ZIS S ER=POP
\n", "
S ER=0 C:IO'=IO(0) IO
\n", "
\nThis is a test channel which is used to direct the data stream to a\nterminal for programmer-level testing.  Each line of input is preceded\nby "R:" for data sent by the computer, and the programmer is prompted\nwith "S:" for his input.  Open and Close work off of %ZIS style logic.\n
\n
\n"], ["TAPE", "
W XMSG,! ; S XMTRAN=\"S: \"_XMSG D TRAN^XMC1
\n", "
R XMRG ; S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
S XMBT=1 D ^%ZIS I IO=IO(0)!POP S ER=1,XMTRAN=\"Invalid device !!!\" D TRAN^XMC1 Q
\n", "
X ^%ZIS(\"C\")
\n", ""], ["T-IN", "
; S XMTRAN=\"S: \"_XMSG D TRAN^XMC1
\n", "
R XMRG ; S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
D ^%ZIS
\n", "
X ^%ZIS(\"C\")
\n", ""], ["BCP", "
D SEND^XML2 ; S XMTRAN=\"S: \"_XMSG D TRAN^XMC1 D SEND^XML2
\n", "
D REC^XML2 ; S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
D INIT^XML2 S XMOPEN=\"\",XMCLOSE=\"\"
\n", "
S:XMOBLC XMWDON=0,XMWFLG=1 D:XMOBLC WRT^XML2 U IO R X:0 D KILL^XML2
\n", "
\nBLOCK MODE PROTOCOL....CHECKSUMS\n
\n
\n"], ["TASKER", "
S XMLINE=XMLINE+1,^%ZISL(4.281,XMTASK,\"T\",XMLINE,0)=XMSG
\n", "
Q
\n", "
Q
\n", "
Q
\n", "
\nThis protocol allows the sending of a message into a different UCI\nthat contains MailMan and a different XMB global.  It does this\nby putting the data into %ZTSK and then reading it out.\n
\n
\n"], ["TASK-IN", "
Q
\n", "
S XMLINE=$O(^%ZISL(4.281,XMTASK,\"T\",XMLINE)),XMRG=^(XMLINE,0)
\n", "
Q
\n", "
Q
\n", "
\nThis is the receive side of a protocol that allows a message to be moved\nto a UCI that has installed MailMan but uses a different XMB golbal.\n
\n
\n"], ["BSCP", "
S X=XMSG D SEND^XML3 ; S XMTRAN=\"S: \"_XMSG D TRAN^XMC1
\n", "
D REC^XML3 ; S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
Q
\n", "
Q
\n", "
\nBLOCK CHECKED PROTOCOL OVER SCP PROTOCOL\n
\n
\n"], ["2BSCP", "
S X=XMSG D SEND^XML3CRC ; S XMTRAN=\"S: \"_XMSG D TRAN^XMC1
\n", "
D REC^XML3CRC ; S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
Q
\n", "
Q
\n", "
\nModified version of Block Mode protocol.\n
\n
\n"], ["1SCP", "
S X=XMSG D SEND^XML1CRC I $G(XM)[\"D\" S XMTRAN=\"S: \"_$E(XMSG,1,242) D TRAN^XMC1
\n", "
D REC^XML1CRC I $G(XM)[\"D\" S XMTRAN=\"R: \"_$E(XMRG,1,242) D TRAN^XMC1
\n", "
I $D(^%ZOSF(\"OS\")),^(\"OS\")[\"VAX\" U IO:PACK
\n", "
Q
\n", "
\nSimple Communications Protocol (SCP) with $ZC error check\n
\n
\n"], ["TEST2BSCP", "
S XMTRAN=\"S: \"_XMSG_\"%%\"_$S($D(J):J,1:\" \")_\"...\"_$S($D(XMSUM):XMSUM,1:\" \")_\"...\"_$S($D(XMTSUM):XMTSUM,1:\" \") D TRAN^XMC1 S X=XMSG D SEND^ZXML3CRC
\n", "
D REC^ZXML3CRC S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "", "
Q
\n", "
\nTHIS IS A MODIFIED VERSION OF THE BLOCK MODE PROTOCOL\n
\n
\n"], ["TESTBSCP", "
D SEND^ZXMLBMP
\n", "
D REC^ZXMLBMP1
\n", "", "
Q
\n", "
\nTEST BLOCK MODE PROTOCOL\n
\n
\n"], ["DIAL OUT", "
W XMSG,! S ER=0 ; S XMTRAN=\"S: \"_XMSG D TRAN^XMC1
\n", "
R XMRG:60 S ER='$T,XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
I '($D(IO)#10) S (IO,IO(0))=$I
\n", "
Q
\n", "
\nThis is an autodial channel which will automatically dial and connect\nto remote sites via the autodial logic of the DEVICE file,\n
\n
\n"], ["3BSCP", "
S X=XMSG D SEND^XML4CRC I $G(XM)[\"D\" S XMTRAN=\"S: \"_$E(XMSG,1,242) D TRAN^XMC1
\n", "
D REC^XML4CRC1 I $G(XM)[\"D\" S XMTRAN=\"R: \"_$E(XMRG,1,242)_$S('$D(XMLIN):\"\",XMLIN<1:\"\",1:\"*\") D TRAN^XMC1
\n", "
I $D(^%ZOSF(\"OS\")),^(\"OS\")[\"VAX\" U IO:PACK
\n", "
Q
\n", "
\nBLOCK MODE PROTOCOL WITH AN OPERATING SYSTEM CHECK SUM CALCULATION AND\nRESTART CAPABILITY.\n
\n
\n"], ["BCX", "
S X=XMSG D SEND^XML ; S XMTRAN=\"S: \"_XMSG D TRAN^XMC1
\n", "
D REC^XML ; S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
S XMBCP=1 Q
\n", "
K XMBCP Q
\n", "
\nBLOCK XMISSION/RECEPTION OF BODY OF MESSAGE ONLY.\n 8-27-86\n
\n
\n"], ["SPEC", "
W XMSG,$C(13)
\n", "
R XMRG:60 S ER='$T
\n", "
Q
\n", "
Q
\n", "
\nSPECIAL PROTOCOL TO BYPASS CRC CHECKING\n
\n
\n"], ["SWP", "
D SEND^XMLSWP
\n", "
D REC^XMLSWP0
\n", "
K XMLD S:$G(XM)[\"D\" XMLD=1 I $D(^%ZOSF(\"OS\")),^%ZOSF(\"OS\")[\"VAX\" U IO:PACK
\n", "
K XMLD
\n", "
\nThis is a sliding window protocol using a logitudinal parity check checksum.\nthan the 3BSCP protocol.\n \nLike 3BSCP protocol, SWP (Sliding Window Protocol) tries to take advantage\nof response time over the network by sending lines without waiting for\nacknowledgements.  SWP will increase the number of lines that it will send\nwithout acknowledgement to a maximum if the connection seems successful and\nwill reduce the number of lines in a 'window' to as few as 1 if there seems\nto be a lot of errors.  Each line has its own checksum.  Each line is\nacknowledged.  Under ideal  circumstances, it is therefore more resource\nintensive than 3BSCP.  However, when errors occur, SWP only resends lines\nIt is comparable in speed to the 3BSCP protocol, but is a bit slower and\nthat were not acknowledged (1 for each error), while 3BSCP must resend an\nentire block (100 the 1st error, 50 lines the 2nd...).  3BSCP also quits\nwhen a maximum number of errors is sensed, while SWP does not quit unless it senses that the virtual connection has been terminated.\n \n'SWP' CAN NOT BE USED WITH VERSIONS OF MAILMAN PRIOR TO 3.17a !!!\nmore likely to succeed.  Speed reported is based on actual lines sent.\nCharacters (lines) resent because of errors are not included in the total as\nthey are in the 3BSCP protocol.  Error recovery is much better.  Short of\nthe virtual connection almost totally disintegrating, messages sent with\nthis protocol will be transmitted.  While the 3BSCP protocol must resend an\nentire block when it gets an error, this protocol sends only lines that were\nnot acknowledged.  It is therefore faster under non-ideal circumstances\n
\n
\n"], ["DECNET", "
W XMSG,! D ENS^XMC11
\n", "
R XMRG S ER=0 D ENR^XMC11
\n", "
S XMLST=$H*86400+$P($H,\",\",2),XMDECNET=1 I '($D(IO)#10) S (IO,IO(0))=$I
\n", "
K XMDECNET,XMLINE,XMLCT,XMLST Q
\n", "
\nThis protocol is disigned exclusively for use with DECNET TASK-TO-TASK communications.  While using DECNET channels *READS and #READS may not be done.\n
\n
\n"], ["TCP/IP-MAILMAN", "
D SEND^XMLTCP I $G(XM)[\"D\" S XMTRAN=\"S: \"_$E(XMSG,1,242) D TRAN^XMC1
\n", "
D REC^XMLTCP I $G(XM)[\"D\" S XMTRAN=\"R: \"_$E(XMRG,1,242) D TRAN^XMC1
\n", "
S (X,XMLINE,XMLCHAR,XMLER,XMLST,XMNO220)=0,XMLTCP=\"\",XMSTIME=60
\n", "
K XMLTCP L -^XMBX(\"TCPCHAN\",XMHOST) Q
\n", "
\nThis protocol is for MailMan to use across a TCP/IP channel.  Important\nthings to know about this channel:\n \n  1.  A "!" puts the last written characters into the TCP/IP buffer\n
\n
\n"], ["PC1", "
S X=XMSG D SEND^XMLPC I $G(XM)[\"D\" S XMTRAN=\"S: \"_$E(XMSG,1,242) D TRAN^XMC1
\n", "
D REC^XMLPC I $G(XM)[\"D\" S XMTRAN=\"R: \"_$E(XMRG,1,242) D TRAN^XMC1
\n", "
D OPEN^XMLPC
\n", "
Q
\n", "
\nProtocol especially for devices without buffers\n
\n
\n"], ["TCP/GTM", "
D SNDGTM^XMLTCP I $G(XM)[\"D\" S XMTRAN=\"S: \"_$E(XMSG,1,242) D TRAN^XMC1
\n", "
D RECGTM^XMLTCP I $G(XM)[\"D\" S XMTRAN=\"R: \"_$E(XMRG,1,242) D TRAN^XMC1
\n", "
S (X,XMLINE,XMLCHAR,XMLER,XMLST,XMNO220)=0,XMLTCP=\"\",XMSTIME=60
\n", "
K XMLTCP L -^XMBX(\"TCPCHAN\",XMHOST) Q
\n", "
\nThis protocol is for MailMan to use across a TCP/IP channel.  Important\nthings to know about this channel: 1.  A "#" puts the last written\ncharacters into the TCP/IP buffer.\n
\n
\n"], ["SERVER", "
D SEN^XMS3
\n", "
D REC^XMS3
\n", "
D OPEN^XMS3
\n", "
D CLOSE^XMS3
\n", "
\nThis protocol is used to read messages from MailMan into a dedicated\nserver process, which is named in the Option file.  If XMOPEN is executed\na return message is generated, each line being inserted with XMSEN\nexecutes.  XMCLOSE terminates the message.  If XMER is not zero upon\nreturn from the server, MailMan will assume that the message was rejected,\nit is the server's responsibility to compose the message why.\n
\n
\n"], ["CHECKED", "
S X=XMSG D SEND^XML ; S XMTRAN=\"S: \"_XMSG D TRAN^XMC1
\n", "
D REC^XML S XMRG=X ; S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
Q
\n", "
Q
\n", ""], ["SCP", "
S X=XMSG D SEND^XML I $G(XM)[\"D\" S XMTRAN=\"S: \"_$E(XMSG,1,242) D TRAN^XMC1
\n", "
D REC^XML I $G(XM)[\"D\" S XMTRAN=\"R: \"_$E(XMRG,1,242) D TRAN^XMC1
\n", "
I $D(^%ZOSF(\"OS\")),^(\"OS\")[\"VAX\" U IO:PACK
\n", "
Q
\n", "
\nSIMPLE COMMUNICATIONS PROTOCOL\n
\n
\n"], ["DIRECT", "
W XMSG,$C(13)
\n", "
R XMRG:60 S ER='$T
\n", "
I '($D(IO)#10) S (IO,IO(0))=$I
\n", "
Q
\n", "
\nThis is an autodial channel which will automatically dial and connect\nto remote sites via the autodial logic of the DEVICE file,\n
\n
\n"], ["NO-LF", "
W XMSG,*13 S ER=0 ; S XMTRAN=\"S: \"_XMSG D TRAN^XMC1
\n", "
R XMRG:60 S ER='$T ; S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
I '($D(IO)#10) S (IO,IO(0))=$I
\n", "
Q
\n", "
\nThis is an autodial channel which will automatically dial and connect\nto remote sites via the autodial logic of the DEVICE file,\n
\n
\n"], ["S-GLOBAL", "
S ^%ZTSK(XMTSK,XMLIN)=XMSG,ER=0,XMLIN=XMLIN+1
\n", "
Q
\n", "
D OPEN^XMS2
\n", "
D CLOSE^XMS2
\n", "
\nThis protocol is the sender protocol for inter-UCI mail transfers between\nUCI's on the same machine.  It opens a taskman task, then inserts SMTP\ncommands on succesive lines, not waiting for responses.\n
\n
\n"], ["R-GLOBAL", "
W !,XMSG
\n", "
S XMLIN=$N(^%ZTSK(XMTSK,XMLIN)),ER=0 S:XMLIN<0 ER=1 Q:ER S XMRG=^(XMLIN) ; S XMTRAN=\"R: \"_XMRG D TRAN^XMC1
\n", "
S XMLIN=0
\n", "
Q
\n", "
\nREADS GLOBALS\n
\n
\n"]]}