home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2377 < prev    next >
Internet Message Format  |  1990-12-28  |  77KB

  1. From: purdon@athena.mit.edu (James R. Purdon III)
  2. Newsgroups: alt.sources
  3. Subject: slugnet - multiple user conferencing system: Part 2 of 6
  4. Message-ID: <1990Dec20.164215.25134@athena.mit.edu>
  5. Date: 20 Dec 90 16:42:15 GMT
  6.  
  7. The slugnet program is a multiple-user, interactive conferencing
  8. facility.  It currently runs under a variety of System V-based and
  9. BSD-based operating systems (although certain functions may not be
  10. possible under some of these operating systems).
  11.  
  12. Cut here-------------------------------------------------------------------
  13.  
  14. #!/bin/sh
  15. # to extract, remove the header and type "sh filename"
  16. if `test ! -s ./slugnet.n`
  17. then
  18. echo "writing ./slugnet.n"
  19. cat > ./slugnet.n << '\End\Of\Shar\'
  20. .PROC,SLUGINS*I"SLUGINS: SLUGNET INSTALLATION PROCEDURE",
  21. SVRUN"SERVER'S USER NUMBER    "=(*F,*S7(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)), 
  22. MXUSR"MAXIMUM NUMBER OF USERS "=(*N=64,*S3(0123456789)),
  23. INACT"INACTIVE USER TIME LIMIT"=(*N=2,*S1(123456789)),
  24. ORGNM"ORGANIZATION NAME       "=(*A).
  25. .HELP
  26.    SLUGINS IS THE INSTALLATION PROCEDURE FOR SLUGNET.  FOUR PARAMETERS MAY BE
  27.    SPECIFIED, SVRUN, MXUSR, INACT, AND ORGNM.  SVRUN AND ORGNM ARE REQUIRED.
  28.    ON INSTALLATION, SLUGNET WILL CREATE FOUR INDIRECT ACCESS FILES ( SLUGCON,
  29.    SLUGHLP, SLUGNET, AND SLUGNEW ), AND ONE DIRECT ACCESS FILE ( SLUGUSR ).
  30. .HELP,SVRUN
  31. THIS IS THE SERVER USER NUMBER.  SLUGNET MUST BE INSTALLED FROM THIS USER
  32. NUMBER.  THIS PARAMETER IS REQUIRED.
  33. .HELP,MXUSR
  34. THIS IS THE MAXIMUM NUMBER OF USERS + 1 ALLOWED TO USE SLUGNET AT THE SAME
  35. TIME.  THIS NUMBER SHOULD BE A MULTIPLE OF 64.  THE DEFAULT IS 64.
  36. .HELP,INACT
  37. THIS IS THE MAXIMUM TIME A USER IS ALLOWED TO REMAIN INACTIVE IN THE USER
  38. DIRECTORY IN HOURS.  THE DEFAULT IS 2 HOURS.
  39. .HELP,ORGNM
  40. THIS IS A STRING FIELD THAT CAN HOLD ANYTHING. IT IS SUGGESTED THAT YOU USE
  41. THIS FIELD TO HOLD THE NAME OF YOUR ORGANIZATION, INSTALLATION, OR SYSTEM.
  42. .ENDHELP
  43. $NOTE./ /* BUILDING SLUGNET...
  44. $REWIND,*.
  45. $NOTE./ /* COMPILING SLUGNET...
  46. $FTN5,I=SLUGSRC,B=SLUGBIN,L=SLUGLST,E=SLUGLST,OPT=2.
  47. $NOTE./ /* LOADING SLUGNET... 
  48. $LDSET,PRESET=ZERO. 
  49. $LOAD,SLUGBIN.
  50. $NOGO,SLUGNET.
  51. $NOTE./ /* SAVING SLUGNET...
  52. $PURGE,SLUGNET,SLUGNEW,SLUGHLP,SLUGCON,SLUGUSR/NA.
  53. $SAVE,SLUGNET/AC=Y,CT=S,M=E.
  54. $SAVE,SLUGHLP,SLUGNEW/AC=N,CT=S,M=R.
  55. $SAVE,SLUGCON/AC=Y,CT=S,M=R.
  56. $RETURN,SLUGHLP,SLUGLST,SLUGBIN,SLUGNEW,SLUGSRC,SLUGCON.
  57. $NOTE./ /* EXECUTING SLUGNET...
  58. $NOTE./ /* TYPE 'EXIT' TO LEAVE SLUGNET.
  59. SLUGNET.
  60. $ATTACH,SLUGUSR.
  61. $RETURN,SLUGUSR.
  62. $NOTE./ /* SLUGNET INSTALLATION SUCCESSFUL.
  63. $REVERT,NOLIST.
  64. $EXIT.
  65. $NOTE./ /* SLUGNET INSTALLATION FAILED. 
  66. $REVERT,NOLIST.
  67. .DATA,SLUGSRC
  68.       BLOCK DATA
  69. C
  70. C                   SLUGNET LICENSE AGREEMENT
  71. C
  72. C
  73. C  IMPORTANT: THIS PROGRAM IS PROVIDED ONLY ON THE CONDITION THAT THE 
  74. C  INSTALLER AGREE TO THE TERMS OF THIS LICENSE.  BY ACCESSING ANY OF 
  75. C  THE FILES IN THIS PACKAGE, THE INSTALLER AGREES TO BE BOUND BY THE 
  76. C  TERMS OF THIS LICENSE. IF THE INSTALLER DOES NOT WISH TO BE BOUND
  77. C  BY THE TERMS OF THIS LICENSE, THE INSTALLER MUST DESTROY ALL FILES 
  78. C  CREATED, COPIED, OR DERIVED FROM THIS PACKAGE. 
  79. C
  80. C  LICENSE
  81. C
  82. C  1. THIS PROGRAM IS COPYRIGHTED MATERIAL.  YOU ARE LICENSED TO INSTALL
  83. C  NUMBER OF COPIES OF THE PROGRAM ON AANY NUMBER OF MACHINES AND USE
  84. C  IT AND ALLOW OTHERS TO USE IT.  SUCH USE MAY INCLUDE COPYING OF THE
  85. C  PROGRAM AND FILES FOR ARCHIVAL PURPOSES AND DISTRIBUTION.  YOU MUST
  86. C  REPRODUCE THE PROGRAM'S COPYRIGHT AND TRADEMARK NOTICES ON ALL COPIES.
  87. C  THE SOURCE CODE MAY BE FREELY DISTRIBUTED TO OTHER PARTIES AS LONG AS
  88. C  NO CHARGE IS MADE, OTHER THAN MEDIA COSTS.
  89. C
  90. C  2. NO PROMISES ARE MADE REGARDING THE SUITABILITY OF THIS SOFTWARE FOR
  91. C  ANY PURPOSE, AND IN NO EVENT WILL JAMES R. PURDON III OR HIS EMPLOYER
  92. C  OR ASSOCIATES BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN
  93. C  THEY HAVE BEEN ADVISED OF THE POSSIBLITY OF SUCH DAMAGES, NOR SHALL
  94. C  JAMES R. PURDON III OR HIS EMPLOYERS OR ASSOCIATES BE LIABLE FOR A 
  95. C  CLAIM MADE BY ANY OTHER PARTY.
  96. C
  97.       COMMON /COPY/ RIGHT
  98.       CHARACTER*46 RIGHT
  99.       DATA RIGHT / 'SLUGNET: COPYRIGHT 1987 BY JAMES R. PURDON III'/
  100.       END 
  101.       PROGRAM SLUGNET (SLUGPRO=/162,TAPE97=SLUGPRO)
  102. C
  103. C -- MAXSIZ - 1: MAXIMUM NUMBER OF USERS
  104. C -- MAXTIM    : MAXIMUM TIME IN HOURS FOR #INACTIVE ENTRY
  105. C
  106.       PARAMETER (MAXSIZ=MXUSR)
  107.       PARAMETER (MAXTIM=INACT)
  108.       IMPLICIT INTEGER (A-Z)
  109. C
  110.       COMMON /C1/ BYE
  111.       COMMON /C2/ EOL
  112.       COMMON /C3/ JSN
  113.       COMMON /C4/ MESSAG
  114.       COMMON /C5/ TOLC
  115.       COMMON /C6/ UN
  116.       COMMON /C7/ EOB
  117.       COMMON /C8/ BUFFER
  118.       COMMON /C9/ COLONS
  119.       COMMON /C10/ FAMILY
  120.       COMMON /C11/ DING
  121.       COMMON /COPY/ RIGHT
  122. C
  123.       CHARACTER*1 ASTER,BLANK,COLON,DOLLAR,LEFTA,LEFTP,PERIOD,RIGHTA, 
  124.      *   RIGHTP,SLASH,USTAT,STAT,HAT,NSTAT
  125.       CHARACTER*2 BYE,EOL,TOLC
  126.       CHARACTER*2 EOB,ESC
  127.       CHARACTER*4 DING
  128.       CHARACTER*5 ENDHLP
  129.       CHARACTER*7 MSGFIL,NULFIL,PSSWRD,UPSSWR,CPSWRD,EDTFIL,NEWFIL,
  130.      *   CONFIL,SCRFIL,INPNAM,OUTNAM,PROFIL,PRONAM
  131.       CHARACTER*10 CJSN,CUN,INPFIL,JSN,OUTFIL,RCVFIL,SNDFIL,USRFIL,UN,
  132.      *   URCVFL,UUN,UJSN,TJSN,STKFIL,CMDFIL,HLPFIL,DATE,FAMILY,TIME,
  133.      *   UFAMLY,UTIME
  134.       CHARACTER*17 EDITOR
  135.       CHARACTER*26 ALPHA
  136.       CHARACTER*40 CONFER,CNAME,NAME,NCONFR,UNAME,SCONFR,UCONFR,STRING
  137.       CHARACTER*46 RIGHT
  138.       CHARACTER*162 BLANKS,MESSAG,BUFFER,COLONS
  139. C
  140.       DIMENSION FAMILY(3)
  141. C
  142.       LOGICAL PRIVAT,MSGFLG,BYEFLG,SWITCH,SELF,NAMFLG,STAFLG
  143.       LOGICAL ALLFLG,MEMFLG,CONFLG,EXTFLG,OK,OLD,START
  144.       LOGICAL ERRFLG,NOVICE,PROMPT,HLPFLG,FNDHLP,ECHO
  145.       LOGICAL BELL,RING,WAIT,TIMER,BRDCST
  146. C
  147. C
  148.       DATA ASTER / '*'/ ,BLANK / ' '/ ,COLON / ':'/ ,DOLLAR / '$'/ ,
  149.      *   LEFTA / '<'/ ,LEFTP / '('/ ,PERIOD / '.'/ ,RIGHTA / '>'/ ,
  150.      *   RIGHTP / ')'/ ,SLASH / '/'/ ,HAT / '^' / 
  151.       DATA INPFIL / 'INPUT     '/ ,OUTFIL / 'OUTPUT    '/ ,RCVFIL /
  152.      *   'ZZZZRCV   '/ ,SNDFIL / 'ZZZZSND   '/ ,USRFIL / 'SLUGUSR   '/ ,
  153.      *   STKFIL / 'ZZZZSTK   '/ ,CMDFIL / 'ZZZZCMD   '/ ,HLPFIL /
  154.      *   'SLUGHLP   '/
  155.       DATA INPUNI / 1 / ,OUTUNI / 2 / ,RCVUNI / 3 / ,SNDUNI / 4 / ,
  156.      *   USRUNI / 5 / ,PROUNI / 97 / ,STKUNI / 7 / ,CMDUNI / 8 / ,HLPUNI
  157.      *    / 9 /
  158.       DATA CNAMLN / 11 / ,CUNLEN / 7 / ,CONLEN / 7 /
  159.       DATA MSGLEN / 33 / ,NAMLEN / 0 / ,UNLEN / 0 /
  160.       DATA MASK18 / O"777777"/ ,PRIVAT / .FALSE. / ,MSGFLG / .FALSE. /
  161.       DATA NULFIL / 'ZZZZNUL'/ ,NULUNI / 99 / ,ERRUNI / 98 / ,MSGFIL /
  162.      *   'SLUGMSG'/ ,MSGUNI / 10 / ,EDTFIL / 'ZZZZEDT'/ ,EDTUNI / 11 / ,
  163.      *   NEWFIL / 'SLUGNEW'/ ,NEWUNI / 12 / ,CONFIL / 'SLUGCON'/ ,CONUNI
  164.      *    / 13 / ,SCRFIL / 'ZZZZSCR'/ ,SCRUNI / 6 /
  165.       DATA FL / 7 / ,ECHO / .TRUE. /
  166.       DATA LIMIT / MAXTIM / ,DELAY / 15 /
  167.       DATA EDITOR / 'FSE,SLUGMSG,OP=A.'/
  168.       DATA NOVICE / .TRUE. / ,PROMPT / .TRUE. / ,WAIT / .FALSE. /
  169.       DATA BELL / .TRUE. / ,TIMER / .TRUE. /
  170.       DATA ALPHA / 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
  171.       DATA ENDHLP / '*EOF:'/ ,INPNAM / 'INPUT  '/ ,OUTNAM / 'OUTPUT '/ ,
  172.      *   PRONAM / 'SLUGPRO'/
  173. C
  174. C -- GET USER INFO
  175. C
  176.       PPREQ = O"03201520005700000000".OR.(LOCF(FAMILY(1)).AND.MASK18) 
  177.       CALL REQPP (PPREQ)
  178.       FAMLEN = INDEX(FAMILY(1),COLON)-1 
  179.       PPREQ = O"03201520003200000000".OR.(LOCF(UN).AND.MASK18)
  180.       CALL REQPP (PPREQ)
  181.       UNLEN = INDEX(UN,COLON)-1
  182.       PPREQ = O"03201520001300000000".OR.(LOCF(JSN).AND.MASK18)
  183.       CALL REQPP (PPREQ)
  184. C
  185. C -- CREATE RECEIVER FILE PASSWORD
  186. C
  187.       PPREQ = O"03201520001300000000".OR.(LOCF(I).AND.MASK18)
  188.       CALL REQPP (PPREQ)
  189.       CALL RANSET (I)
  190.       DO 10 I = 1, 7
  191.          PSSWRD(I:I) = CHAR(INT(RANF()*25.)+1)
  192.    10 CONTINUE
  193. C
  194. C -- INITIALIZE VARIABLES
  195. C
  196.       DO 20 I = 1, 162
  197.          BLANKS(I:I) = BLANK
  198.          COLONS(I:I) = COLON
  199.    20 CONTINUE
  200. C
  201.       CJSN(1:4) = JSN(1:4)
  202.       MESSAG(1:MSGLEN) = 'W^E^L^C^O^M^E ^T^O S^L^U^G^N^E^T!'
  203.       CNAME(1:CNAMLN) = 'S^E^R^V^E^R'
  204.       CUN(1:CUNLEN) = '_SVRUN_'
  205.       NAME(1:15) = 'N^E^W ^U^S^E^R:'
  206.       NAMLEN = INDEX(NAME,COLON)-1
  207.       CMDFIL(1:4) = JSN(1:4)
  208.       EDTFIL(1:4) = JSN(1:4)
  209.       NULFIL(1:4) = JSN(1:4)
  210.       RCVFIL(1:4) = JSN(1:4)
  211.       SNDFIL(1:4) = JSN(1:4)
  212.       STKFIL(1:4) = JSN(1:4)
  213.       SCRFIL(1:4) = JSN(1:4)
  214.       CONFER(1:CONLEN) = 'R^O^O^T'
  215.       BYE = ':D'
  216.       DING = ':G5G' 
  217.       EOB = ':E'
  218.       EOL = '::'
  219.       TOLC = ':I'
  220.       STRLEN = 8
  221.       STRING(1:STRLEN) = 'F^R^O^M:'
  222. C
  223. C -- SEE IF NEW USER
  224. C
  225.       OPEN (UNIT=CMDUNI,FILE=CMDFIL,STATUS='NEW',IOSTAT=IOSTAT,RECL=162)
  226.       IF (IOSTAT.EQ.0) THEN
  227.          INQUIRE (UNIT=PROUNI,NAME=PROFIL)
  228.          WRITE (CMDUNI,1000) JSN(1:4),CUN(1:CUNLEN),PROFIL,JSN(1:4),
  229.      1    JSN(1:4),JSN(1:4),PROFIL,JSN(1:4)
  230.  1000    FORMAT ('.PROC,',A4,'CMD.',/,
  231.      1          '$GET,SLUGNET=SLUGNET/UN=',A7,'.',/,
  232.      2          'SLUGNET,',A7,'.',/,
  233.      3          '$NOTE,NR./ / ',/,
  234.      4          '$WHILE,FILE(',A4,'STK,AS),LOOP.',/,
  235.      5          '$SETFS,',A4,'CMD,',A4,'STK,SLUGNET/FS=NAD.',/,
  236.      6          'SLUGNET,',A7,'.',/,
  237.      7          '$ENDW,LOOP.',/,
  238.      8          '$NOTE,NR./ /* SLUGNET TERMINATED.',/,
  239.      9          '$REVERT,NOLIST.',/,
  240.      A          '$EXIT.',/,
  241.      B           A4,'CMD.',/, 
  242.      C          '$REVERT,NOLIST.',/,
  243.      D          '$EXIT.',/,
  244.      E          '$NOTE,NR./ /* SLUGNET TERMINATED.',/,
  245.      F          '$REVERT,NOLIST.'  )
  246.          REWIND CMDUNI
  247.          CLOSE (UNIT=CMDUNI,STATUS='KEEP')
  248.          BUFFER(1:160) = COLONS(1:160)
  249.          BUFFER(1:9) = '!XXXXXXX.'
  250.          BUFFER(2:8) = CMDFIL(1:FL)
  251.          START = .TRUE.
  252.          GO TO 450
  253. C
  254.       ENDIF
  255.       CLOSE (UNIT=CMDUNI,STATUS='KEEP') 
  256. C
  257. C -- CREATE SERVER FILE PASSWORD
  258. C
  259.       J = 0
  260.       DO 30 I = 1, 7
  261.          J = ICHAR(CUN(I:I))
  262.    30 CONTINUE
  263.       CALL RANSET (J)
  264.       DO 40 I = 1, 7
  265.          CPSWRD(I:I) = CHAR(INT(RANF()*25.)+1)
  266.    40 CONTINUE
  267. C
  268. C -- SEE IF USER IS RETURNING 
  269. C
  270.       OPEN (UNIT=STKUNI,FILE=STKFIL,STATUS='OLD',IOSTAT=IOSTAT,FORM=
  271.      *   'UNFORMATTED')
  272.       IF (IOSTAT.EQ.0) THEN
  273.          REWIND STKUNI
  274.          READ (STKUNI) NUMLIN,OUTFIL,EDITOR,CONFIL,NOVICE,PROMPT,INPFIL,
  275.      *      ECHO,DELAY,PROFIL,BELL,STRING,TIMER,BRDTIM
  276.          OLD = .TRUE.
  277.          REWIND STKUNI
  278.       ELSE
  279.          INQUIRE (UNIT=PROUNI,NAME=PROFIL)
  280.          CALL PF ('GET',PROFIL,PROFIL,'UN',UN,'RC',PFERR)
  281.          IF (PFERR.EQ.0) THEN 
  282.             INPFIL(1:FL) = PROFIL
  283.             CLOSE (UNIT=PROUNI,STATUS='KEEP')
  284.          ELSE
  285.             CLOSE (UNIT=PROUNI,STATUS='DELETE')
  286.             CALL PF ('GET','SLUGPRO','SLUGPRO','UN',CUN,'RC',PFERR)
  287.             IF (PFERR.EQ.0) THEN
  288.                INPFIL(1:FL) = 'SLUGPRO' 
  289.             ENDIF
  290.          ENDIF
  291.       ENDIF
  292.       IF (INPFIL(1:FL).EQ.INPNAM.OR.INPFIL(1:FL).EQ.PROFIL) THEN
  293.          CLOSE (UNIT=STKUNI,STATUS='DELETE')
  294.       ELSE
  295.          CLOSE (UNIT=STKUNI,STATUS='KEEP')
  296.       ENDIF
  297. C
  298. C -- SET UP FILES FOR INPUT AND OUTPUT
  299. C
  300.       OPEN (UNIT=INPUNI,FILE=INPFIL(1:FL),STATUS='UNKNOWN',RECL=162)
  301.       OPEN (UNIT=OUTUNI,FILE=OUTFIL(1:FL),STATUS='UNKNOWN',RECL=162)
  302. C
  303. C -- CREATE AN EMPTY FILE
  304. C
  305.       OPEN (UNIT=NULUNI,FILE=NULFIL,STATUS='UNKNOWN',RECL=162)
  306.       REWIND NULUNI 
  307.       WRITE (NULUNI,*) BLANK
  308.       REWIND NULUNI 
  309.       CLOSE (UNIT=NULUNI,STATUS='KEEP') 
  310. C
  311. C -- SET UP RECEIVE FILE
  312. C
  313.       OPEN (UNIT=RCVUNI,FILE=RCVFIL(1:FL),STATUS='UNKNOWN',RECL=162)
  314.       OPEN (UNIT=SNDUNI,FILE=SNDFIL(1:FL),STATUS='UNKNOWN',RECL=162)
  315. C
  316. C -- INITALIZE FILES
  317. C
  318.       WRITE (RCVUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,BLANK
  319.      *   ,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1,4),
  320.      *   BLANK,RIGHTP,COLON
  321. C
  322.  1010 FORMAT (A2,'F^R^O^M ',80A1)
  323. C
  324.       WRITE (RCVUNI,1020) TOLC,BLANK,(MESSAG(I:I),I=1,MSGLEN)
  325.  1020 FORMAT (A2,160A1)
  326.       WRITE (RCVUNI,1020) TOLC,BLANK
  327. C
  328. C -- GET NEWS FILE AND ADD TO RECEIVER FILE
  329. C
  330.       CALL PF ('GET',NEWFIL,NEWFIL,'UN',CUN(1:CUNLEN),'RC',PFERR)
  331.       OPEN (UNIT=NEWUNI,FILE=NEWFIL,STATUS='UNKNOWN',RECL=162)
  332.    50 READ (NEWUNI,1450,END=60) MESSAG(1:160)
  333.       WRITE (RCVUNI,1460) TOLC,MESSAG(1:160)
  334.       GO TO 50
  335. C
  336.    60 CLOSE (UNIT=NEWUNI,STATUS='DELETE')
  337.       WRITE (RCVUNI,1020) TOLC,BLANK
  338. C
  339. C -- MAKE THE PERMANENT RECEIVE FILE
  340. C
  341.       REWIND RCVUNI 
  342.       CLOSE (UNIT=RCVUNI,STATUS='KEEP') 
  343. C
  344. C -- IF OLD, SKIP NEXT STEP
  345. C
  346.       IF (OLD) GO TO 70
  347. C
  348.       CALL PF ('PURGE',RCVFIL(1:FL),'RC',PFERR)
  349.       CALL PF ('SAVE',RCVFIL(1:FL),RCVFIL(1:FL),'CT','S','M','A','PW',
  350.      *   PSSWRD)
  351. C
  352. C -- LOAD THE USER INTO THE DIRECTORY ( OR UPDATE HIS CONFERENCE )
  353. C
  354.    70 CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1:CUNLEN), 
  355.      *   'PW',CPSWRD,'RC',PFERR,'M','M')
  356. C
  357. C -- IF A CONFERENCE SHIFT INPROGRESS, OPEN UP SNDFIL
  358. C
  359.       IF (SWITCH) THEN
  360.          OPEN (UNIT=SNDUNI,FILE=SNDFIL(1:FL),STATUS='UNKNOWN',RECL=162)
  361.          REWIND SNDUNI
  362.       ENDIF
  363. C
  364. C -- NO ACCESS TO FILE
  365. C
  366.       IF (PFERR.EQ.2) THEN
  367. C
  368. C -- IF CONFERENCE UN, CREATE NEW DIRECTORY
  369. C
  370.          IF (UN(1:UNLEN).EQ.CUN(1:CUNLEN)) THEN
  371. C
  372. C -- DESTROY ANY DIRECTORY FILE PRESENT 
  373. C
  374.             OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='UNKNOWN')
  375.             REWIND USRUNI
  376.             CLOSE (UNIT=USRUNI,STATUS='DELETE')
  377. C
  378. C -- CREATE NEW DIRECTORY FILE
  379. C
  380.             CALL PF ('DEFINE',USRFIL(1:FL),USRFIL(1:FL),'PW',CPSWRD,'CT'
  381.      *         ,'S','M','M','AC','N','RC',PFERR)
  382.             IF (PFERR.NE.0) THEN
  383.                WRITE (OUTUNI,1030) TOLC,PFERR
  384.  1030          FORMAT (A2,'*PF ^E^R^R^O^R ',I3,'.')
  385.                CALL EXIT
  386.             ENDIF
  387.             OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='NEW',ACCESS=
  388.      *         'DIRECT',RECL=16,FORM='UNFORMATTED')
  389. C
  390. C -- BLANK OUT FILE 
  391. C
  392.             DO 80 J = 1, MAXSIZ
  393.                WRITE (USRUNI,REC=J) BLANKS(1:160) 
  394.    80       CONTINUE
  395.             NUMBER = MAXSIZ-1 
  396.             WRITE (USRUNI,REC=1) NUMBER,DATE(),TIME(),BLANKS(1:130)
  397.             CLOSE (UNIT=USRUNI,STATUS='KEEP')
  398. C
  399. C -- FLUSH THE BUFFER
  400. C
  401.             OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='UNKNOWN')
  402.             REWIND USRUNI
  403.             CLOSE (UNIT=USRUNI,STATUS='KEEP')
  404. C
  405. C -- RELEASE THE FILE
  406. C
  407.             CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1: 
  408.      *         CUNLEN),'PW',CPSWRD,'RC',PFERR,'M','R')
  409. C
  410.             IF (PFERR.NE.0) THEN
  411.                WRITE (OUTUNI,1030) TOLC,PFERR
  412.                CALL EXIT
  413.             ENDIF
  414. C
  415.             OPEN (UNIT=USRUNI,FILE=USRFIL,STATUS='UNKNOWN',ACCESS=
  416.      *         'DIRECT',RECL=16,FORM='UNFORMATTED')
  417.             CLOSE (UNIT=USRUNI,STATUS='DELETE')
  418.             GO TO 70
  419. C
  420.          ELSE
  421.             MSGLEN = 17
  422.             MESSAG(1:MSGLEN) = '*U^N ^I^S ^N^O^T '
  423.             WRITE (OUTUNI,1020) TOLC,(MESSAG(I:I),I=1,MSGLEN),(CUN(I:I),
  424.      *         I=1,CUNLEN),PERIOD
  425.             CALL EXIT
  426.          ENDIF
  427. C
  428. C -- FILE IS BUSY
  429. C
  430.       ELSEIF (PFERR.EQ.1) THEN
  431.          GO TO 70
  432. C
  433. C -- OTHER ERROR
  434. C
  435.       ELSEIF (PFERR.GT.2.OR.PFERR.LT.0) THEN
  436.          WRITE (OUTUNI,1030) TOLC,PFERR 
  437.          CALL EXIT
  438. C
  439. C -- ADD USER  TO DIRECTORY
  440. C
  441.       ELSE
  442.          OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='UNKNOWN',ACCESS= 
  443.      *      'DIRECT',RECL=16,FORM='UNFORMATTED')
  444. C
  445. C -- NUMBER MAY BE NUMBER OF USERS, BUT IS MOST LIKELY THE NUMBER
  446. C    OF RECORDS
  447. C
  448.          READ (USRUNI,REC=1) NUMBER
  449. C
  450. C -- LOOK FOR FREE SLOT IN DIRECTORY
  451. C
  452.          DO 90 J = 1, 2
  453.             DO 90 I = 2, NUMBER
  454. C
  455. C -- READ THE UN, FILENAME, PASSWORD, CONFERENCE, AND STATUS
  456. C
  457.                READ (USRUNI,REC=I) UTIME,UNAME,UJSN,UUN,URCVFL,UPSSWR,
  458.      *            UCONFR,USTAT,UFAMLY
  459. C
  460. C -- BUST GHOSTS
  461. C
  462.                IF (UUN(1:1).NE.BLANK) THEN
  463.                   READ (UTIME,1040) ITIME1
  464.  1040             FORMAT (I3) 
  465.                   UTIME = TIME()
  466.                   READ (UTIME,1040) ITIME2
  467.                   IF (ITIME1.GT.ITIME2) ITIME2 = ITIME2+24
  468.                   IF (IABS(ITIME1-ITIME2).GT.LIMIT) THEN
  469.                      WRITE (USRUNI,REC=I) BLANKS(1:160)
  470.                      UUN(1:1) = BLANK
  471.                   ENDIF
  472.                ENDIF
  473. C
  474. C -- IF THE UN IS BLANK, THE RECORD IS OK TO USE
  475. C
  476.                IF (UUN(1:1).EQ.BLANK.AND.(.NOT.SWITCH).AND.(.NOT.OLD) 
  477.      *            .AND.(.NOT.NAMFLG).AND.(.NOT.STAFLG).AND.(.NOT.EXTFLG)
  478.      *            .AND.J.GT.1) THEN
  479.                   WRITE (USRUNI,REC=I) TIME(),NAME,JSN,UN,RCVFIL,PSSWRD,
  480.      *               CONFER,STAT,FAMILY(1)
  481.                   GO TO 100
  482. C
  483.                ENDIF
  484. C
  485. C -- IF THE USER IS ALREADY THERE, EXTRACT INFO AND UPDATE CONFER
  486. C
  487.                IF (UUN.EQ.UN.AND.JSN.EQ.UJSN) THEN
  488.                   IF (NAMFLG) UNAME = NAME
  489.                   NAME = UNAME
  490.                   NAMLEN = INDEX(NAME,COLON)-1
  491.                   RCVFIL = URCVFL
  492.                   PSSWRD = UPSSWR
  493.                   IF (SWITCH) THEN
  494.                      UCONFR = NCONFR
  495.                      SWITCH = .FALSE.
  496.                   ENDIF
  497.                   CONFER = UCONFR
  498.                   CONLEN = INDEX(CONFER,COLON)-1
  499.                   IF (USTAT.EQ.'S') THEN
  500.                      USTAT = COLON
  501.                   ENDIF
  502.                   IF (STAFLG) THEN
  503.                      USTAT = NSTAT
  504.                   ENDIF
  505.                   STAT = USTAT
  506.                   IF (EXTFLG) THEN
  507.                      UN = BLANKS(1:7)
  508.                   ENDIF
  509.                   WRITE (USRUNI,REC=I) TIME(),NAME,JSN,UN,RCVFIL,PSSWRD,
  510.      *               CONFER,STAT,FAMILY(1)
  511.                   GO TO 100
  512. C
  513.                ENDIF
  514.    90    CONTINUE
  515. C
  516. C -- IF WE GET HERE, ITS FULL!
  517. C
  518.          EXTFLG = .TRUE.
  519.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  520.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  521.      *      ,4),BLANK,RIGHTP,COLON
  522.          WRITE (OUTUNI,1050) TOLC
  523.  1050    FORMAT (A2,' U^S^E^R ^D^I^R^E^C^T^O^R^Y ^I^S ^F^U^L^L - ',
  524.      *      'T^R^Y ^A^G^A^I^N ^L^A^T^E^R.')
  525.          WRITE (OUTUNI,1140) TOLC
  526. C
  527. C -- CLOSE THE FILE AND RELEASE IT
  528. C
  529.   100    CLOSE (UNIT=USRUNI,STATUS='KEEP')
  530. C
  531. C -- FLUSH THE BUFFER
  532. C
  533.          OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='UNKNOWN')
  534.          REWIND USRUNI
  535.          CLOSE (UNIT=USRUNI,STATUS='KEEP')
  536. C
  537.          CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1:CUNLEN),
  538.      *      'PW',CPSWRD,'RC',PFERR,'M','R')
  539. C
  540.          IF (PFERR.NE.0) THEN 
  541.             WRITE (OUTUNI,1030) TOLC,PFERR
  542.             CALL EXIT
  543.          ENDIF
  544. C
  545.          OPEN (UNIT=USRUNI,FILE=USRFIL,STATUS='UNKNOWN',ACCESS='DIRECT',
  546.      *      RECL=16,FORM='UNFORMATTED') 
  547.          CLOSE (UNIT=USRUNI,STATUS='DELETE')
  548.       ENDIF
  549. C
  550. C -- BRANCH IF NAME CHANGE
  551. C
  552.       IF (NAMFLG) THEN
  553.          NAMFLG = .FALSE.
  554.          GO TO 200
  555. C
  556.       ENDIF
  557. C
  558. C -- BRANCH IF STATUS CHANGE
  559. C
  560.       IF (STAFLG) THEN
  561.          STAFLG = .FALSE.
  562.          GO TO 200
  563. C
  564.       ENDIF
  565. C
  566. C -- STOP IF EXIT
  567. C
  568.       IF (EXTFLG) THEN
  569.          CALL PF ('PURGE',RCVFIL,'RC',PFERR)
  570.          OPEN (UNIT=NULUNI,FILE=NULFIL,STATUS='UNKNOWN')
  571.          CLOSE (UNIT=NULUNI,STATUS='DELETE')
  572.          OPEN (UNIT=CMDUNI,FILE=CMDFIL,STATUS='UNKNOWN')
  573.          CLOSE (UNIT=CMDUNI,STATUS='DELETE')
  574.          OPEN (UNIT=STKUNI,FILE=STKFIL,STATUS='UNKNOWN')
  575.          CLOSE (UNIT=STKUNI,STATUS='DELETE')
  576.          OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN')
  577.          CLOSE (UNIT=MSGUNI,STATUS='DELETE')
  578.          OPEN (UNIT=HLPUNI,FILE=HLPFIL,STATUS='UNKNOWN')
  579.          CLOSE (UNIT=HLPUNI,STATUS='DELETE')
  580.          OPEN (UNIT=RCVUNI,FILE=RCVFIL,STATUS='UNKNOWN')
  581.          CLOSE (UNIT=RCVUNI,STATUS='DELETE')
  582.          OPEN (UNIT=SNDUNI,FILE=SNDFIL,STATUS='UNKNOWN')
  583.          CLOSE (UNIT=SNDUNI,STATUS='DELETE')
  584.          OPEN (UNIT=PROUNI,FILE=PROFIL,STATUS='UNKNOWN')
  585.          CLOSE (UNIT=PROUNI,STATUS='DELETE')
  586.          PPREQ = O"24143020000300000002"
  587.          CALL REQPP (PPREQ)
  588.          IF (BYEFLG) WRITE (OUTUNI,1060) BYE
  589.  1060    FORMAT (A2)
  590.          CALL EXIT
  591.       ENDIF
  592. C
  593. C -- BRANCH IF OLD
  594. C
  595.       IF (OLD) THEN 
  596.          OLD = .FALSE.
  597.          OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN',RECL=162)
  598.          NUMLIN = 0 
  599.   110    READ (MSGUNI,1060,END=120)
  600.          NUMLIN = NUMLIN+1
  601.          GO TO 110
  602. C
  603.   120    GO TO 200
  604. C
  605.       ENDIF
  606. C
  607. C -- WRITE NOTICE
  608. C
  609.       MSGLEN = 24
  610.       MESSAG(1:MSGLEN) = ' ^L^O^G^G^E^D ^O^N ^T^O '
  611. C
  612.       WRITE (SNDUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,BLANK
  613.      *   ,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1,4),
  614.      *   BLANK,RIGHTP,COLON
  615. C
  616.       WRITE (SNDUNI,1070) TOLC,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP,BLANK,
  617.      *   (UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4),BLANK,
  618.      *   RIGHTP,(MESSAG(I:I),I=1,MSGLEN),(CONFER(I:I),I=1,CONLEN),PERIOD
  619. C
  620.  1070 FORMAT (A2,1X,80A1)
  621.       WRITE (SNDUNI,1070) TOLC,BLANK
  622.       REWIND SNDUNI 
  623.       CLOSE (UNIT=SNDUNI,STATUS='KEEP') 
  624. C
  625. C -- ATTACH THE CONFERENCE DIRECTORY
  626. C
  627.   130 CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1:CUNLEN), 
  628.      *   'PW',CPSWRD,'RC',PFERR,'M','R')
  629.       IF (PFERR.EQ.1) GO TO 130
  630. C
  631. C -- OPEN IT AS A DIRECT ACCESS DEVICE
  632. C
  633.       OPEN (UNIT=USRUNI,FILE=USRFIL,STATUS='OLD',ACCESS='DIRECT',RECL=16
  634.      *   ,FORM='UNFORMATTED') 
  635. C
  636. C -- THE FIRST LINE IS THE NUMBER OF ENTRIES
  637. C
  638.       READ (USRUNI,REC=1) NUMBER
  639. C
  640. C -- GHOST FLAG
  641. C
  642.       SELF = .FALSE.
  643. C
  644. C -- CYCLE THROUGH THE LIST, APPENDING THE MESSAGE TO THE USERS'
  645. C    RECEIVE FILES
  646. C
  647.       DO 150 I = 2, NUMBER
  648. C
  649. C -- READ THE UN, FILENAME, PASSWORD, CONFERENCE, AND STATUS
  650. C
  651.          READ (USRUNI,REC=I) UTIME,UNAME,UJSN,UUN,URCVFL,UPSSWR,UCONFR,
  652.      *      USTAT,UFAMLY
  653. C
  654. C -- MAKE SURE RECORD ISN'T EMPTY
  655. C
  656.          IF (UUN(1:1).EQ.BLANK) GO TO 150
  657. C
  658. C -- MAKE SURE FAMILY IS THE SAME
  659. C
  660.          IF (FAMILY(1)(1:FAMLEN).NE.UFAMLY(1:FAMLEN)) GO TO 150
  661. C
  662. C -- CALCULATE UUNLEN
  663. C
  664.          UUNLEN = INDEX(UUN,COLON)-1
  665.          IF (UUNLEN.LE.0) UUNLEN = 7
  666. C
  667. C -- SEE IF SELF
  668. C
  669.          IF (UUN(1:UUNLEN).EQ.UN(1:UNLEN).AND.JSN(1:4).EQ.UJSN(1:4))
  670.      *       SELF = .TRUE.
  671.   
  672. C
  673. C -- TRY THE APPEND 
  674. C
  675.   140    PFERR = 0
  676.          IF ((.NOT.PRIVAT).AND.(.NOT.BRDCST)) THEN
  677.             IF (((CONFER(1:CONLEN).EQ.UCONFR(1:CONLEN).OR.USTAT.EQ.'M')
  678.      *         .AND.JSN(1:4).NE.UJSN(1:4)).OR.(JSN(1:4).EQ.UJSN(1:4)
  679.      *         .AND.ECHO)) CALL PF ('APPEND',SNDFIL,URCVFL,'UN',UUN(1: 
  680.      *         UUNLEN),'PW',UPSSWR,'RC',PFERR)
  681.          ELSEIF (.NOT.PRIVAT) THEN
  682.             IF ((USTAT.EQ.'M'.AND.JSN(1:4).NE.UJSN(1:4)).OR.(JSN(1:4) 
  683.      *         .EQ.UJSN(1:4).AND.ECHO)) CALL PF ('APPEND',SNDFIL,URCVFL,
  684.      *         'UN',UUN(1:UUNLEN),'PW',UPSSWR,'RC',PFERR)
  685.          ELSE
  686.             IF (CONFER(1:CONLEN).EQ.UCONFR(1:CONLEN).AND.(USTAT.EQ.'M'
  687.      *         .OR.UJSN(1:4).EQ.TJSN(1:4).OR.(JSN(1:4).EQ.UJSN(1:4).AND.
  688.      *         ECHO).OR.UUN(1:UUNLEN).EQ.CUN(1:CUNLEN))) CALL PF (
  689.      *         'APPEND',SNDFIL,URCVFL,'UN',UUN(1:UUNLEN),'PW',UPSSWR, 
  690.      *         'RC',PFERR)
  691.          ENDIF
  692.          IF (PFERR.EQ.1) GO TO 140
  693. C
  694.   150 CONTINUE
  695. C
  696. C -- RETURN THE DIRECTORY
  697. C
  698.       CLOSE (UNIT=USRUNI,STATUS='DELETE')
  699. C
  700. C -- DESTROY SNDFIL 
  701. C
  702.       OPEN (UNIT=SNDUNI,FILE=SNDFIL,STATUS='UNKNOWN')
  703.       CLOSE (UNIT=SNDUNI,STATUS='DELETE')
  704. C
  705. C -- RESET PRIVATE STATUS
  706. C
  707.       PRIVAT = .FALSE.
  708. C
  709. C -- RESET BROADCAST STATUS
  710. C
  711.       BRDCST = .FALSE.
  712. C
  713. C -- IF SELF IS MISSING, PRINT MESSAGE AND EXIT
  714. C
  715.       IF (.NOT.SELF) THEN
  716.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  717.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  718.      *      ,4),BLANK,RIGHTP,COLON
  719.          WRITE (OUTUNI,1080) TOLC,LIMIT 
  720.  1080    FORMAT (A2,' U^S^E^R ^D^I^R^E^C^T^O^R^Y ^E^N^T^R^Y ',
  721.      *      '^I^N^A^C^T^I^V^E ^F^O^R ',I2,' ^H^O^U^R^S - J^O^B ',
  722.      *      '^T^E^R^M^I^N^A^T^E^D. ')
  723.          EXTFLG = .TRUE.
  724.       ENDIF
  725. C
  726. C     STOP
  727. C
  728. C -- IF AN EXIT IS IN PROGRESS, GO BLANK OUT THE UN
  729. C
  730.       IF (EXTFLG) GO TO 70
  731. C
  732. C -- IF A JOIN IS IN PROGRESS,  DO A SWITCH
  733. C
  734.       IF (SWITCH) THEN
  735.          CONFER = NCONFR
  736.          CONLEN = NCONLN
  737.          GO TO 70
  738. C
  739.       ENDIF
  740. C
  741. C -- GET AND DISPLAY THE USER'S OWN RECEIVER FILE 
  742. C
  743.   160 CALL PF ('GET',RCVFIL,RCVFIL,'PW',PSSWRD,'RC',PFERR)
  744.       IF (PFERR.EQ.1) GO TO 160
  745. C
  746. C -- CLEAR OUT THE RCVFIL
  747. C
  748.       CALL PF ('REPLACE',NULFIL,RCVFIL,'PW',PSSWRD,'RC',PFERR)
  749.       IF (PFERR.EQ.1) GO TO 160
  750. C
  751. C -- SEE IF THE MESSAGE FILE EXISTS
  752. C
  753.   
  754. C
  755. C -- OPEN THE MESSAGE BUFFER
  756. C
  757.       OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN',RECL=162)
  758.       REWIND MSGUNI 
  759. C
  760. C -- DISPLAY THE RECEIVER FILE
  761. C
  762.       OPEN (UNIT=RCVUNI,FILE=RCVFIL,STATUS='UNKNOWN',RECL=162)
  763.       REWIND RCVUNI 
  764.   170 MSGFLG = .FALSE.
  765.       READ (RCVUNI,1090,END=180,ERR=190,IOSTAT=IOSTAT) MESSAG(1:162)
  766.       ERRFLG = .FALSE.
  767.  1090 FORMAT (A162) 
  768.       IF (WAIT) THEN
  769.          IF (INDEX(MESSAG(1:162),STRING(1:STRLEN)).GT.0) WAIT = .FALSE.
  770.       ENDIF
  771.       IF (MESSAG(1:1).EQ.DOLLAR) THEN
  772.          IF (MESSAG(2:5).EQ.JSN(1:4)) THEN
  773.             MESSAG(1:156) = MESSAG(6:162)
  774.             MSGFLG = .TRUE.
  775.             GO TO 210
  776. C
  777.          ELSEIF (UN(1:UNLEN).NE.CUN(1:CUNLEN)) THEN
  778.             GO TO 170
  779. C
  780.          ENDIF
  781.       ENDIF
  782. C
  783.       ENDMSG = INDEX(MESSAG,EOL)-1
  784.       IF (ENDMSG.LE.0) ENDMSG = 162
  785.       WRITE (OUTUNI,1100) MESSAG(1:2),(MESSAG(I:I),I=3,ENDMSG)
  786.  1100 FORMAT (A2,160A1)
  787. C
  788.       IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
  789.       GO TO 170
  790. C
  791. C -- MAKE SURE WE ARE AT EOI
  792. C
  793.   180 IF (ERRFLG) GO TO 190
  794.       CLOSE (UNIT=RCVUNI,STATUS='KEEP') 
  795.       OPEN (UNIT=RCVUNI,FILE=RCVFIL,STATUS='UNKNOWN',RECL=162)
  796.       ERRFLG = .TRUE.
  797.       GO TO 170
  798. C
  799. C -- DESTROY OLD RECEIVE FILE 
  800. C
  801.   190 CLOSE (UNIT=RCVUNI,STATUS='DELETE')
  802. C
  803. C -- ACCEPT USER MESSAGES
  804. C
  805.       NUMLIN = 0
  806. C
  807. C -- BUILD THE PROMPT
  808. C
  809.   200 MESSAG(1:162) = COLONS(1:162)
  810.       MESSAG(1:2) = TOLC
  811.       IF (PROMPT) THEN
  812.          MODLEN = MOD(CONLEN,2)
  813.          MESSAG(3:2+CONLEN) = CONFER(1:CONLEN)
  814.          I = 3+CONLEN
  815.       ELSE
  816.          I = 3
  817.          MODLEN = 0 
  818.       ENDIF
  819.       MESSAG(I:I) = RIGHTA
  820.       IF (MODLEN.EQ.0) THEN
  821.          I = I+1
  822.          MESSAG(I:I) = BLANK
  823.       ENDIF
  824.       I = I+1
  825.       MESSAG(I:I+1) = EOB
  826.       I = I+2
  827.       MESSAG(I:I+1) = EOL
  828.       I = I+1
  829. C
  830. C -- IF IN SCAN MODE OR IN WAIT MODE SKIP INPUT REQUEST
  831. C
  832.       IF (STAT.EQ.'S'.OR.WAIT) THEN
  833.          MESSAG = BLANKS
  834.          I = DELAY
  835.          PPREQ = O"03201520000600000000".OR.(LOCF(I).AND.MASK18)
  836.          CALL REQPP (PPREQ)
  837.          IF (TIMER) WRITE (OUTUNI,1110) TIME()
  838.  1110    FORMAT (A10)
  839.          GO TO 210
  840. C
  841.       ENDIF
  842. C
  843. C -- WRITE THE PROMPT
  844. C
  845.       IF (INPFIL(1:FL).EQ.INPNAM) THEN
  846.          PRINT 1120,MESSAG(1:162)
  847.  1120    FORMAT (A162)
  848.       ENDIF
  849. C
  850.       PPREQ = O"24143020000300000001"
  851.       CALL REQPP (PPREQ)
  852.       READ (INPUNI,1130,END=240) MESSAG(1:160)
  853.       IF (INPFIL(1:FL).NE.INPNAM) THEN
  854.          IF (ECHO) WRITE (OUTUNI,1460) TOLC,MESSAG(1:160)
  855.       ENDIF
  856.       PPREQ = O"24143020000300000000"
  857.       CALL REQPP (PPREQ)
  858. C
  859.   210 ENDMSG = INDEX(MESSAG(1:160),EOL)-1
  860.       IF (ENDMSG.LE.0) ENDMSG = 160
  861.       DO 220 I = 1, ENDMSG
  862.          IF (MESSAG(I:I).EQ.HAT) THEN
  863.             I2 = I+1
  864.             IF (I2.GT.ENDMSG) GO TO 230 
  865.             IF (INDEX(ALPHA,MESSAG(I2:I2)).LE.0) MESSAG(I:I2) = BLANKS(1
  866.      *         :2)
  867.          ENDIF
  868.   220 CONTINUE
  869.   230 IF (MESSAG(1:1).EQ.BLANK.AND.MESSAG(1:162).NE.BLANKS) THEN
  870.          WRITE (MSGUNI,1130) MESSAG(1:160)
  871.  1130    FORMAT (A160)
  872.          NUMLIN = NUMLIN+1
  873.          GO TO 200
  874. C
  875.       ENDIF
  876. C
  877. C -- COMMANDS
  878. C
  879. C -- BLANK LINE: BROADCAST MESSAGE
  880. C
  881.       IF (MESSAG.NE.BLANKS) GO TO 300
  882.       GO TO 250
  883. C
  884.   240 CLOSE (UNIT=INPUNI,STATUS='KEEP') 
  885.       INPFIL(1:FL) = INPNAM
  886.       OPEN (UNIT=INPUNI,FILE=INPFIL(1:FL),STATUS='UNKNOWN',RECL=162)
  887.   250 IF (NUMLIN.EQ.0.AND.(.NOT.SWITCH)) GO TO 160
  888.       REWIND MSGUNI 
  889. C
  890. C -- POSITION SNDFIL AT END
  891. C
  892.       OPEN (UNIT=SNDUNI,FILE=SNDFIL,STATUS='UNKNOWN',RECL=162)
  893.   260 READ (SNDUNI,1130,END=270) MESSAG(1:160)
  894.       GO TO 260
  895. C
  896. C -- PREPARE MESSAGE
  897. C
  898. C
  899. C -- IF SWITCH AND NUMLIN .EQ. 0, SKIP HEADER
  900. C
  901.   270 IF (SWITCH.AND.NUMLIN.EQ.0) GO TO 280
  902.       IF ((.NOT.PRIVAT).AND.(.NOT.BRDCST)) THEN
  903.          WRITE (SNDUNI,1010) TOLC,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP, 
  904.      *      BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
  905.      *      ,BLANK,RIGHTP,COLON
  906.       ELSEIF (.NOT.BRDCST) THEN
  907.          MSGLEN = 37
  908.          MESSAG(1:MSGLEN) = '< ^P^R^I^V^A^T^E ^M^E^S^S^A^G^E ^T^O '
  909.          WRITE (SNDUNI,1010) TOLC,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP, 
  910.      *      BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
  911.      *      ,BLANK,RIGHTP,BLANK,(MESSAG(I:I),I=1,MSGLEN),(TJSN(I:I),I=1,
  912.      *      4),BLANK,RIGHTA,COLON
  913.       ELSE
  914.          MSGLEN = 37
  915.          MESSAG(1:MSGLEN) = '< ^B^R^O^A^D^C^A^S^T ^M^E^S^S^A^G^E >'
  916.          WRITE (SNDUNI,1010) TOLC,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP, 
  917.      *      BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
  918.      *      ,BLANK,RIGHTP,BLANK,(MESSAG(I:I),I=1,MSGLEN)
  919.       ENDIF
  920. C
  921.   280 READ (MSGUNI,1130,END=290) MESSAG(1:160)
  922.       IF (MESSAG(1:1).EQ.'1') MESSAG(1:1) = BLANK 
  923.       WRITE (SNDUNI,1140) TOLC,MESSAG(1:160)
  924.  1140 FORMAT (A2,A160)
  925.       GO TO 280
  926. C
  927.   290 WRITE (SNDUNI,1140) TOLC
  928.       CLOSE (UNIT=MSGUNI,STATUS='DELETE')
  929.       REWIND SNDUNI 
  930.       CLOSE (UNIT=SNDUNI,STATUS='KEEP') 
  931.       GO TO 130
  932. C
  933. C -- COPY MESSAG TO BUFFER, REMOVING HATS
  934. C
  935.   300 BUFLEN = 0
  936.       BUFFER = BLANKS
  937.       DO 310 I = 1, 160
  938.          IF (MESSAG(I:I).NE.HAT) THEN
  939.             BUFLEN = BUFLEN+1 
  940.             BUFFER(BUFLEN:BUFLEN) = MESSAG(I:I)
  941.          ENDIF
  942.   310 CONTINUE
  943. C
  944. C -- SEND JSN: SENDS MESSAGE TO JSN ONLY
  945. C
  946.       IF (BUFFER(1:4).EQ.'SEND') THEN
  947.          I = INDEX(BUFFER,BLANK)+1
  948.          TJSN(1:4) = BUFFER(I:I+3)
  949.          IF (INDEX(TJSN(1:4),BLANK).EQ.0) PRIVAT = .TRUE.
  950.          GO TO 250
  951. C
  952.       ENDIF
  953. C
  954. C -- BROADCAST: SENDS MESSAGE TO ALL JSN, REGARDLESS OF CONFERENCE
  955. C
  956.       IF (BUFFER(1:9).EQ.'BROADCAST') THEN
  957.          BUFFER(1:10) = TIME()
  958.          READ (BUFFER(1:10),1150) HOURS,MINUTE,SECOND
  959.  1150    FORMAT (1X,I2,1X,I2,1X,I2)
  960.          NEWTIM = HOURS*3600+MINUTE*60+SECOND
  961.          IF (NEWTIM-BRDTIM.LT.60) THEN
  962.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  963.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  964.      *         ,I=1,4),BLANK,RIGHTP,COLON
  965.             WRITE (OUTUNI,1160) TOLC
  966.  1160       FORMAT (A2,' Y^O^U ^M^A^Y ^B^R^O^A^D^C^A^S^T ^O^N^L^Y ',
  967.      *         '^O^N^C^E ^P^E^R ^M^I^N^U^T^E.')
  968.             WRITE (OUTUNI,1140) TOLC
  969.             GO TO 200
  970. C
  971.          ELSE
  972.             BRDTIM = NEWTIM
  973.             BRDCST = .TRUE.
  974.             GO TO 250
  975. C
  976.          ENDIF
  977.       ENDIF
  978. C
  979. C -- REWIND COMMAND 
  980. C
  981.       IF (BUFFER(1:6).EQ.'REWIND') THEN 
  982.          REWIND INPUNI
  983.          GO TO 200
  984. C
  985.       ENDIF
  986. C
  987. C -- SET COMMAND
  988. C
  989.       IF (BUFFER(1:4).EQ.'SET ') THEN
  990.          IF (BUFFER(5:9).EQ.'NAME ') THEN
  991.             I = INDEX(MESSAG,BLANK)
  992.             MESSAG(I:I) = COLON
  993.             I = INDEX(MESSAG,BLANK)+1
  994.             BUFFER = BLANKS
  995.             BUFFER(1:39) = MESSAG(I:I+38)
  996.             DO 320 I = 1, 40
  997.                IF (BUFFER(I:I+1).EQ.BLANKS(1:2)) THEN
  998.                   BUFFER(I:I+1) = EOL
  999.                   GO TO 330
  1000. C
  1001.                ENDIF
  1002.   320       CONTINUE
  1003.   330       NAME(1:40) = BUFFER(1:40)
  1004.             NAMLEN = INDEX(NAME,COLON)-1
  1005.             IF (NAMLEN.LE.0) THEN
  1006.                NAME(1:19) = 'A^N^O^N^Y^M^O^U^S::' 
  1007.                NAMLEN = INDEX(NAME,COLON)-1
  1008.             ENDIF
  1009.             NAMFLG = .TRUE.
  1010.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1011.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1012.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1013.             WRITE (OUTUNI,1170) TOLC,(NAME(I:I),I=1,NAMLEN),PERIOD
  1014.  1170       FORMAT (A2,' C^H^A^N^G^I^N^G ^N^A^M^E ^T^O ',42A1)
  1015.             WRITE (OUTUNI,1140) TOLC
  1016.             IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
  1017.             GO TO 70
  1018. C
  1019.          ENDIF
  1020. C
  1021. C -- SET MESSAGE BUFFER EDITOR
  1022. C
  1023.          IF (BUFFER(5:11).EQ.'EDITOR ') THEN
  1024.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1025.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1026.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1027.             IF (BUFFER(12:16).EQ.'XEDIT') THEN
  1028.                EDITOR = 'XEDIT,SLUGMSG,AS.'
  1029.                WRITE (OUTUNI,1180) TOLC 
  1030.  1180          FORMAT (A2,' E^D^I^T^O^R ^S^E^T ^T^O X^E^D^I^T.')
  1031.             ELSEIF (BUFFER(12:14).EQ.'FSE') THEN
  1032.                EDITOR = 'FSE,SLUGMSG,OP=A.'
  1033.                WRITE (OUTUNI,1190) TOLC 
  1034.  1190          FORMAT (A2,' E^D^I^T^O^R ^S^E^T ^T^O FSE.')
  1035.             ELSEIF (BUFFER(12:14).EQ.'TED') THEN
  1036.                EDITOR = 'TED,SLUGMSG.  '
  1037.                WRITE (OUTUNI,1200) TOLC 
  1038.  1200          FORMAT (A2,' E^D^I^T^O^R ^S^E^T ^T^O T^E^D.')
  1039.             ELSEIF (BUFFER(12:15).EQ.'EDIT') THEN 
  1040.                EDITOR = 'EDIT,SLUGMSG,AS. '
  1041.                WRITE (OUTUNI,1210) TOLC 
  1042.  1210          FORMAT (A2,' E^D^I^T^O^R ^S^E^T ^T^O E^D^I^T.')
  1043.             ELSE
  1044.                WRITE (OUTUNI,1220) TOLC 
  1045.  1220          FORMAT (A2,' I^N^V^A^L^I^D ^O^R ^O^B^S^O^L^E^T^E ',
  1046.      *            '^E^D^I^T^O^R ^S^E^L^E^C^T^E^D.')
  1047.             ENDIF
  1048.             WRITE (OUTUNI,1140) TOLC
  1049.             GO TO 200
  1050. C
  1051.          ENDIF
  1052. C
  1053. C -- SET USER FILE
  1054. C
  1055.          IF (BUFFER(5:9).EQ.'USER ') THEN
  1056.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1057.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1058.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1059.             CALL PF ('GET',BUFFER(10:16),BUFFER(10:16),'UN',UN(1:UNLEN),
  1060.      *         'RC',PFERR)
  1061.             IF (PFERR.EQ.0) THEN
  1062.                CONFIL(1:FL) = BUFFER(10:16)
  1063.                OPEN (UNIT=CONUNI,FILE=CONFIL,STATUS='UNKNOWN',RECL=162)
  1064.                CLOSE (UNIT=CONUNI,STATUS='DELETE')
  1065.                WRITE (OUTUNI,1230) TOLC,CONFIL
  1066.  1230          FORMAT (A2,' U^S^E^R ^F^I^L^E ^C^H^A^N^G^E^D ^T^O ',A7)
  1067.             ELSE
  1068.                WRITE (OUTUNI,1240) TOLC 
  1069.  1240          FORMAT (A2,' I^N^V^A^L^I^D ^U^S^E^R ^F^I^L^E ',
  1070.      *            '^S^E^L^E^C^T^E^D.')
  1071.             ENDIF
  1072.             WRITE (OUTUNI,1140) TOLC
  1073.             GO TO 200
  1074. C
  1075.          ENDIF
  1076. C
  1077. C -- SET NOVICE MODE
  1078. C
  1079.          IF (BUFFER(5:11).EQ.'NOVICE ') THEN
  1080.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1081.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1082.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1083.             IF (BUFFER(12:13).EQ.'ON') NOVICE = .TRUE.
  1084.             IF (BUFFER(12:14).EQ.'OFF') NOVICE = .FALSE.
  1085.             IF (NOVICE) BUFFER(1:7) = '^O^N.  '
  1086.             IF (.NOT.NOVICE) BUFFER(1:7) = '^O^F^F.'
  1087.             WRITE (OUTUNI,1250) TOLC,(BUFFER(I:I),I=1,7)
  1088.  1250       FORMAT (A2,' N^O^V^I^C^E ^M^O^D^E ^I^S ',7A1)
  1089.             WRITE (OUTUNI,1140) TOLC
  1090.             GO TO 200
  1091. C
  1092.          ENDIF
  1093. C
  1094. C -- SET TIMER MODE 
  1095. C
  1096.          IF (BUFFER(5:10).EQ.'TIMER ') THEN
  1097.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1098.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1099.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1100.             IF (BUFFER(11:12).EQ.'ON') TIMER = .TRUE.
  1101.             IF (BUFFER(11:13).EQ.'OFF') TIMER = .FALSE.
  1102.             IF (TIMER) BUFFER(1:7) = '^O^N.  '
  1103.             IF (.NOT.TIMER) BUFFER(1:7) = '^O^F^F.'
  1104.             WRITE (OUTUNI,1260) TOLC,(BUFFER(I:I),I=1,7)
  1105.  1260       FORMAT (A2,' T^I^M^E^R ^M^O^D^E ^I^S ',7A1)
  1106.             WRITE (OUTUNI,1140) TOLC
  1107.             GO TO 200
  1108. C
  1109.          ENDIF
  1110. C
  1111. C -- SET ECHO MODE
  1112. C
  1113.          IF (BUFFER(5:9).EQ.'ECHO ') THEN
  1114.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1115.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1116.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1117.             IF (BUFFER(10:11).EQ.'ON') ECHO = .TRUE.
  1118.             IF (BUFFER(10:12).EQ.'OFF') ECHO = .FALSE.
  1119.             IF (ECHO) BUFFER(1:7) = '^O^N.  '
  1120.             IF (.NOT.ECHO) BUFFER(1:7) = '^O^F^F.'
  1121.             WRITE (OUTUNI,1270) TOLC,(BUFFER(I:I),I=1,7)
  1122.  1270       FORMAT (A2,' E^C^H^O ^M^O^D^E ^I^S ',7A1)
  1123.             WRITE (OUTUNI,1140) TOLC
  1124.             GO TO 200
  1125. C
  1126.          ENDIF
  1127. C
  1128. C -- SET PROMPT MODE
  1129. C
  1130.          IF (BUFFER(5:11).EQ.'PROMPT ') THEN
  1131.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1132.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1133.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1134.             IF (BUFFER(12:13).EQ.'ON') PROMPT = .TRUE.
  1135.             IF (BUFFER(12:14).EQ.'OFF') PROMPT = .FALSE.
  1136.             IF (PROMPT) BUFFER(1:7) = '^O^N.  '
  1137.             IF (.NOT.PROMPT) BUFFER(1:7) = '^O^F^F.'
  1138.             WRITE (OUTUNI,1280) TOLC,(BUFFER(I:I),I=1,7)
  1139.  1280       FORMAT (A2,' P^R^O^M^P^T ^M^O^D^E ^I^S ',7A1)
  1140.             WRITE (OUTUNI,1140) TOLC
  1141.             GO TO 200
  1142. C
  1143.          ENDIF
  1144. C
  1145. C -- SET RING MODE
  1146. C
  1147.          IF (BUFFER(5:9).EQ.'RING ') THEN
  1148.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1149.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1150.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1151.             IF (BUFFER(10:11).EQ.'ON') BELL = .TRUE.
  1152.             IF (BUFFER(10:12).EQ.'OFF') BELL = .FALSE.
  1153.             IF (BELL) BUFFER(1:7) = '^O^N.  '
  1154.             IF (.NOT.BELL) BUFFER(1:7) = '^O^F^F.'
  1155.             WRITE (OUTUNI,1290) TOLC,(BUFFER(I:I),I=1,7)
  1156.  1290       FORMAT (A2,' R^I^N^G ^M^O^D^E ^I^S ',7A1)
  1157.             WRITE (OUTUNI,1140) TOLC
  1158.             GO TO 200
  1159. C
  1160.          ENDIF
  1161. C
  1162. C -- SET DELAY TIME 
  1163. C
  1164.          IF (BUFFER(5:10).EQ.'DELAY ') THEN
  1165.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1166.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1167.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1168.             I = -1
  1169.             OPEN (UNIT=SCRUNI,STATUS='SCRATCH',RECL=162)
  1170.             WRITE (SCRUNI,1300) BUFFER(11:14)
  1171.  1300       FORMAT (A4)
  1172.             REWIND SCRUNI
  1173.             READ (SCRUNI,*,ERR=340) I
  1174.   340       CLOSE (UNIT=SCRUNI,STATUS='DELETE')
  1175.             IF (I.GE.0.AND.I.LE.9999) THEN
  1176.                DELAY = I
  1177.                WRITE (OUTUNI,1310) TOLC,DELAY
  1178.  1310          FORMAT (A2,' D^E^L^A^Y ^T^I^M^E ^S^E^T ^T^O ',I4,'.')
  1179.             ELSE
  1180.                WRITE (OUTUNI,1320) TOLC 
  1181.  1320          FORMAT (A2,
  1182.      *            ' I^N^V^A^L^I^D ^D^E^L^A^Y ^S^P^E^C^I^F^I^E^D.')
  1183.             ENDIF
  1184.             WRITE (OUTUNI,1140) TOLC
  1185.             GO TO 200
  1186. C
  1187.          ENDIF
  1188. C
  1189. C -- SET WAIT COMMAND
  1190. C
  1191.          IF (BUFFER(5:9).EQ.'WAIT ') THEN
  1192.             I = INDEX(MESSAG,BLANK)
  1193.             MESSAG(I:I) = COLON
  1194.             I = INDEX(MESSAG,BLANK)+1
  1195.             BUFFER = BLANKS
  1196.             BUFFER(1:39) = MESSAG(I:I+38)
  1197.             DO 350 I = 1, 40
  1198.                IF (BUFFER(I:I+1).EQ.BLANKS(1:2)) THEN
  1199.                   BUFFER(I:I+1) = EOL
  1200.                   GO TO 360
  1201. C
  1202.                ENDIF
  1203.   350       CONTINUE
  1204.   360       STRING(1:40) = BUFFER(1:40) 
  1205.             STRLEN = INDEX(STRING,COLON)-1
  1206.             IF (NAMLEN.LE.0) THEN
  1207.                STRING(1:8) = 'F^R^O^M:' 
  1208.                STRLEN = INDEX(STRING,COLON)-1
  1209.             ENDIF
  1210.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1211.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1212.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1213.             WRITE (OUTUNI,1330) TOLC,(STRING(I:I),I=1,STRLEN),PERIOD
  1214.  1330       FORMAT (A2,' W^A^I^T ^S^T^R^I^N^G ^S^E^T ^T^O ',42A1)
  1215.             WRITE (OUTUNI,1140) TOLC
  1216.             IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
  1217.             GO TO 200
  1218. C
  1219.          ENDIF
  1220.       ENDIF
  1221. C
  1222. C -- DO SCROLL
  1223. C
  1224.       IF (BUFFER(1:6).EQ.'SCROLL') THEN 
  1225.          STAFLG = .TRUE.
  1226.          NSTAT = 'S'
  1227.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  1228.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  1229.      *      ,4),BLANK,RIGHTP,COLON
  1230.          WRITE (OUTUNI,1340) TOLC
  1231.  1340    FORMAT (A2,' E^N^T^E^R^I^N^G ^S^C^R^O^L^L ^M^O^D^E.')
  1232.          WRITE (OUTUNI,1140) TOLC
  1233.          IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
  1234. C
  1235. C -- CREATE STACK FILE
  1236. C
  1237.          OPEN (UNIT=STKUNI,FILE=STKFIL,STATUS='UNKNOWN',FORM=
  1238.      *      'UNFORMATTED')
  1239.          REWIND STKUNI
  1240.          WRITE (STKUNI) NUMLIN,OUTFIL,EDITOR,CONFIL,NOVICE,PROMPT,INPFIL
  1241.      *      ,ECHO,DELAY,PROFIL,BELL,STRING,TIMER,BRDTIM
  1242.          REWIND STKUNI
  1243.          CLOSE (UNIT=STKUNI,STATUS='KEEP')
  1244.          GO TO 70
  1245. C
  1246.       ENDIF
  1247. C
  1248. C -- MONITOR MODE
  1249. C
  1250.       IF (BUFFER(1:7).EQ.'MONITOR'.AND.UN(1:UNLEN).EQ.CUN(1:CUNLEN))
  1251.      *    THEN
  1252.          STAFLG = .TRUE.
  1253.          NSTAT = 'M'
  1254.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  1255.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  1256.      *      ,4),BLANK,RIGHTP,COLON
  1257.          WRITE (OUTUNI,1350) TOLC
  1258.  1350    FORMAT (A2,' E^N^T^E^R^I^N^G ^M^O^N^I^T^O^R ^M^O^D^E.')
  1259.          WRITE (OUTUNI,1140) TOLC
  1260.          IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
  1261.          GO TO 70
  1262. C
  1263.       ENDIF
  1264. C
  1265. C -- DO DELAY
  1266. C
  1267.       IF (BUFFER(1:5).EQ.'DELAY') THEN
  1268.          I = DELAY
  1269.          PPREQ = O"03201520000600000000".OR.(LOCF(I).AND.MASK18)
  1270.          CALL REQPP (PPREQ)
  1271.          GO TO 200
  1272. C
  1273.       ENDIF
  1274.       IF (BUFFER(1:4).EQ.'WAIT') THEN
  1275.          WAIT = .TRUE.
  1276.          GO TO 200
  1277. C
  1278.       ENDIF
  1279. C
  1280. C -- JOIN CONFERENCE: CHANGES USER'S CONFERENCE
  1281. C
  1282.       IF (BUFFER(1:5).EQ.'JOIN ') THEN
  1283.          BUFFER = BLANKS
  1284.          I = INDEX(MESSAG,BLANK)+1
  1285.          BUFFER(1:39) = MESSAG(I:I+38)
  1286.          DO 370 I = 1, 40
  1287.             IF (BUFFER(I:I+1).EQ.BLANKS(1:2)) THEN
  1288.                BUFFER(I:I+1) = EOL
  1289.                GO TO 380
  1290. C
  1291.             ENDIF
  1292.   370    CONTINUE
  1293.   380    NCONFR(1:40) = BUFFER(1:40)
  1294.          NCONLN = INDEX(NCONFR,COLON)-1 
  1295.          IF (NCONLN.LE.0) THEN
  1296.             NCONFR(1:9) = 'R^O^O^T::'
  1297.             NCONLN = INDEX(NCONFR,COLON)-1
  1298.          ENDIF
  1299.          SWITCH = .TRUE.
  1300.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  1301.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  1302.      *      ,4),BLANK,RIGHTP,COLON
  1303.          WRITE (OUTUNI,1360) TOLC,(NCONFR(I:I),I=1,NCONLN),PERIOD
  1304.  1360    FORMAT (A2,' J^O^I^N^I^N^G ^C^O^N^F^E^R^E^N^C^E ',42A1)
  1305.          WRITE (OUTUNI,1140) TOLC
  1306.          IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
  1307. C
  1308. C -- FLUSH MESSAGE BUFFER AND ADD NOTICE
  1309. C
  1310.          MSGLEN = 26
  1311. C
  1312. C -- MAKE SURE MESSAGE EXITS
  1313. C
  1314.          INQUIRE (FILE=MSGFIL,OPENED=OK)
  1315.          IF (.NOT.OK) OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN', 
  1316.      *      RECL=162)
  1317. C
  1318.          MESSAG(1:MSGLEN) = ' ^L^O^G^G^E^D ^O^F^F ^O^F '
  1319.          BUFFER(1:7) = 'F^R^O^M'
  1320. C
  1321.          WRITE (MSGUNI,1370) (BUFFER(I:I),I=1,7),BLANK,(CNAME(I:I),I=1,
  1322.      *      CNAMLN),BLANK,LEFTP,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,
  1323.      *      BLANK,(CJSN(I:I),I=1,4),BLANK,RIGHTP,COLON
  1324. C
  1325.          WRITE (MSGUNI,1370) BLANK,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP,
  1326.      *      BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
  1327.      *      ,BLANK,RIGHTP,(MESSAG(I:I),I=1,MSGLEN),(CONFER(I:I),I=1,
  1328.      *      CONLEN),PERIOD
  1329.          WRITE (MSGUNI,1370) BLANK
  1330.  1370    FORMAT (160A1)
  1331.          GO TO 240
  1332. C
  1333.       ENDIF
  1334. C
  1335. C -- SHOW: MEMBERS, CONFERENCES, ALL
  1336. C
  1337.       IF (BUFFER(1:5).EQ.'SHOW ') THEN
  1338. C
  1339. C -- RESET FLAGS
  1340. C
  1341.          MEMFLG = .FALSE.
  1342.          CONFLG = .FALSE.
  1343.          ALLFLG = .FALSE.
  1344. C
  1345.          IF (BUFFER(6:12).EQ.'MEMBERS') THEN
  1346.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1347.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1348.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1349.             WRITE (OUTUNI,1380) TOLC
  1350.  1380       FORMAT (A2,' J^S^N     U^N     N^A^M^E')
  1351.             MEMFLG = .TRUE.
  1352.          ENDIF
  1353. C
  1354.          IF (BUFFER(6:8).EQ.'ALL'.AND.UN.EQ.CUN) THEN
  1355.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1356.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1357.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1358.             WRITE (OUTUNI,1390) TOLC
  1359.  1390       FORMAT (A2,' J^S^N     U^N  S^T^A^T^U^S P^A^S^S^W^R^D ',
  1360.      *         'C^O^N^F^E^R^E^N^C^E')
  1361.             ALLFLG = .TRUE.
  1362.          ENDIF
  1363. C
  1364.          IF (BUFFER(6:11).EQ.'CONFER') THEN
  1365.             WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
  1366.      *         ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
  1367.      *         ,I=1,4),BLANK,RIGHTP,COLON
  1368.             WRITE (OUTUNI,1400) TOLC
  1369.  1400       FORMAT (A2,' U^S^E^R^S C^O^N^F^E^R^E^N^C^E ^N^A^M^E')
  1370.             CONFLG = .TRUE.
  1371.          ENDIF
  1372. C
  1373. C -- IF NO OPTION IS SELECTED, BRANCH
  1374. C
  1375.          IF (.NOT.(MEMFLG.OR.ALLFLG.OR.CONFLG)) GO TO 450
  1376. C
  1377. C -- DO REQUEST
  1378. C
  1379.          I = I+1
  1380.          IF (CONFLG) THEN
  1381.             OPEN (UNIT=SCRUNI,FILE=SCRFIL,STATUS='UNKNOWN',ACCESS=
  1382.      *         'DIRECT',FORM='UNFORMATTED',RECL=5)
  1383.             NEXREC = 1
  1384.             WRITE (SCRUNI,REC=NEXREC) BLANKS(1:50)
  1385.          ENDIF
  1386. C
  1387.   390    CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1:CUNLEN),
  1388.      *      'PW',CPSWRD,'RC',PFERR,'M','R')
  1389.          IF (PFERR.EQ.1) GO TO 390
  1390. C
  1391. C -- OPEN IT AS A DIRECT ACCESS DEVICE
  1392. C
  1393.          OPEN (UNIT=USRUNI,FILE=USRFIL,STATUS='OLD',ACCESS='DIRECT',RECL
  1394.      *      =16,FORM='UNFORMATTED')
  1395. C
  1396. C -- THE FIRST LINE IS THE NUMBER OF ENTRIES
  1397. C
  1398.          READ (USRUNI,REC=1) NUMBER
  1399. C
  1400. C -- CYCLE THROUGH THE LIST, EXTRACTING INFO
  1401. C
  1402.          DO 420 I = 2, NUMBER 
  1403. C
  1404. C -- READ THE UN, FILENAME, PASSWORD, CONFERENCE, AND STATUS
  1405. C
  1406.             READ (USRUNI,REC=I) UTIME,UNAME,UJSN,UUN,URCVFL,UPSSWR,
  1407.      *         UCONFR,USTAT,UFAMLY
  1408. C
  1409. C -- MAKE SURE RECORD ISN'T EMPTY
  1410. C
  1411.             IF (UUN(1:1).EQ.BLANK) GO TO 420
  1412. C
  1413. C -- CLEAR COLONS FROM VALUES 
  1414. C
  1415.             J = INDEX(UUN,COLON)
  1416.             UUN(J:10) = BLANKS(J:10)
  1417.             J = INDEX(UNAME,COLON)
  1418.             UNAME(J:40) = BLANKS(J:40)
  1419.             J = INDEX(UCONFR,COLON)
  1420.             UCONFR(J:40) = BLANKS(J:40) 
  1421. C
  1422. C -- IF ALL, WRITE THE WORKS
  1423. C
  1424.             IF (ALLFLG) THEN
  1425.                WRITE (OUTUNI,1410) TOLC,UJSN(1:4),UUN(1:7),USTAT,UPSSWR(
  1426.      *            1:7),UCONFR(1:39)
  1427.  1410          FORMAT (A2,1X,A4,1X,A7,3X,A1,3X,A7,1X,A39)
  1428.             ENDIF
  1429. C
  1430. C -- IF MEMBERS, ONLY SHOW PERSONS ON THE SAME CONFERENCE
  1431. C
  1432.             IF (MEMFLG) THEN
  1433. C
  1434. C           IF( UCONFR( 1: CONLEN + 1 ) .EQ. BLANK .AND.
  1435. C
  1436.                IF (UCONFR(1:CONLEN).EQ.CONFER(1:CONLEN).AND.USTAT.NE.'M'
  1437.      *            .AND.UFAMLY(1:FAMLEN).EQ.FAMILY(1)(1:FAMLEN)) THEN
  1438.                   WRITE (OUTUNI,1420) TOLC,UJSN(1:4),UUN(1:7),UNAME(1:40
  1439.      *               )
  1440.  1420             FORMAT (A2,1X,A4,1X,A7,1X,A40)
  1441.                ENDIF
  1442.             ENDIF
  1443. C
  1444. C -- SHOW CONFERENCES ( EXCEPT FOR INVISIBLES )
  1445. C
  1446.             IF (CONFLG) THEN
  1447.                IF (UCONFR(1:1).NE.'-') THEN
  1448.                   DO 400 K = 1, NEXREC
  1449.                      READ (SCRUNI,REC=K) SCONFR,NUMCON
  1450.                      IF (UCONFR(1:39).EQ.SCONFR(1:39)) THEN 
  1451.                         NUMCON = NUMCON+1
  1452.                         WRITE (SCRUNI,REC=K) UCONFR,NUMCON
  1453.                         GO TO 410
  1454. C
  1455.                      ENDIF
  1456.   400             CONTINUE
  1457.                   NUMCON = 1
  1458.                   WRITE (SCRUNI,REC=NEXREC) UCONFR,NUMCON
  1459.                   NEXREC = NEXREC+1
  1460.   410             CONTINUE
  1461.                ENDIF
  1462.             ENDIF
  1463.   420    CONTINUE
  1464. C
  1465. C -- RETURN THE DIRECTORY
  1466. C
  1467.          CLOSE (UNIT=USRUNI,STATUS='DELETE')
  1468. C
  1469. C -- IF CONFLG, PRINT CONFERENCES
  1470. C
  1471.          IF (CONFLG) THEN
  1472.             NEXREC = NEXREC-1 
  1473.             DO 430 K = 1, NEXREC
  1474.                READ (SCRUNI,REC=K) SCONFR,NUMCOM
  1475.                WRITE (OUTUNI,1430) TOLC,NUMCOM,SCONFR(1:39) 
  1476.  1430          FORMAT (A2,2X,I3,2X,A39) 
  1477.   430       CONTINUE
  1478.          ENDIF
  1479. C
  1480. C -- DESTROY SCRFIL 
  1481. C
  1482.          CLOSE (UNIT=SCRUNI,STATUS='DELETE')
  1483. C
  1484.          WRITE (OUTUNI,1140) TOLC
  1485.          IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
  1486.          GO TO 200
  1487. C
  1488.       ENDIF
  1489. C
  1490. C -- BYE COMMAND
  1491. C
  1492.   440 IF (BUFFER(1:3).EQ.'BYE') THEN
  1493.          BYEFLG = .TRUE.
  1494.          BUFFER(1:4) = 'EXIT' 
  1495.       ENDIF
  1496. C
  1497. C -- EXIT COMMAND
  1498. C
  1499.       IF (BUFFER(1:4).EQ.'EXIT') THEN
  1500.          EXTFLG = .TRUE.
  1501.          SWITCH = .TRUE.
  1502. C
  1503. C -- FLUSH MESSAGE BUFFER AND ADD NOTICE
  1504. C
  1505.          MSGLEN = 26
  1506. C
  1507. C -- MAKE SURE MESSAGE EXITS
  1508. C
  1509.          INQUIRE (FILE=MSGFIL,OPENED=OK)
  1510.          IF (.NOT.OK) OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN', 
  1511.      *      RECL=162)
  1512. C
  1513.          MESSAG(1:MSGLEN) = ' ^L^O^G^G^E^D ^O^F^F ^O^F '
  1514.          BUFFER(1:7) = 'F^R^O^M'
  1515. C
  1516.          WRITE (MSGUNI,1370) (BUFFER(I:I),I=1,7),BLANK,(CNAME(I:I),I=1,
  1517.      *      CNAMLN),BLANK,LEFTP,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,
  1518.      *      BLANK,(CJSN(I:I),I=1,4),BLANK,RIGHTP,COLON
  1519. C
  1520.          WRITE (MSGUNI,1370) BLANK,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP,
  1521.      *      BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
  1522.      *      ,BLANK,RIGHTP,(MESSAG(I:I),I=1,MSGLEN),(CONFER(I:I),I=1,
  1523.      *      CONLEN),PERIOD
  1524.          WRITE (MSGUNI,1370) BLANK
  1525.          GO TO 240
  1526. C
  1527.       ENDIF
  1528. C
  1529. C -- EDIT MESSAG BUFFER
  1530. C
  1531.       IF (BUFFER(1:4).EQ.'EDIT') THEN
  1532.          BUFFER(1:160) = BLANKS(1:160)
  1533.          BUFFER(1:13) = '!XXXXEDT.'
  1534.          BUFFER(2:5) = JSN(1:4)
  1535.          REWIND MSGUNI
  1536.          CLOSE (UNIT=MSGUNI,STATUS='KEEP')
  1537.          OPEN (UNIT=EDTUNI,FILE=EDTFIL,STATUS='UNKNOWN',RECL=162)
  1538.          REWIND EDTUNI
  1539.          WRITE (EDTUNI,1440) JSN(1:4),EDITOR,JSN(1:4),JSN(1:4),JSN(1:4),
  1540.      *      JSN(1:4),JSN(1:4),JSN(1:4)
  1541.  1440    FORMAT ('.PROC,',A4,'EDT.',/,'$',A17,/,'$RETURN,',A4,'TMP.',/,
  1542.      *      '$COPYSBF,SLUGMSG,',A4,'TMP.',/,'$REWIND,',A4,'TMP,SLUGMSG.'
  1543.      *      ,/,'$COPY,',A4,'TMP,SLUGMSG.',/,'$RETURN,',A4,'TMP,',A4,
  1544.      *      'EDT.',/,'$REWIND,SLUGMSG.',/,'$REVERT,NOLIST.')
  1545.          REWIND EDTUNI
  1546.          CLOSE (UNIT=EDTUNI,STATUS='KEEP')
  1547.          PPREQ = O"24143020000300000001"
  1548.          CALL REQPP (PPREQ)
  1549.       ENDIF
  1550. C
  1551. C -- WRITE STACK FILE FOR NOS PASS THROUGH
  1552. C
  1553.   450 IF (BUFFER(1:1).EQ.'!') THEN
  1554.          ICOMMA = INDEX(BUFFER,',')
  1555.          IF (INDEX(BUFFER,'BYE').GT.0.OR.INDEX(BUFFER,'HELLO').GT.0)
  1556.      *       THEN
  1557.             IF (ICOMMA.EQ.0) THEN
  1558.                BUFFER(1:3) = 'BYE'
  1559.                GO TO 440
  1560. C
  1561.             ELSE
  1562.                MESSAG(ICOMMA:160) = BUFFER(ICOMMA:160)
  1563.                BUFFER(2:7) = '$APPSW'
  1564.                BUFFER(8:81) = MESSAG(ICOMMA:ICOMMA+72)
  1565.             ENDIF
  1566.          ENDIF
  1567.          BUFFER(1:159) = BUFFER(2:160)
  1568.          BUFFER(160:160) = '.'
  1569.          IF (.NOT.START) THEN 
  1570.             OPEN (UNIT=STKUNI,FILE=STKFIL,STATUS='UNKNOWN',FORM=
  1571.      *         'UNFORMATTED') 
  1572.             REWIND STKUNI
  1573.             WRITE (STKUNI) NUMLIN,OUTFIL,EDITOR,CONFIL,NOVICE,PROMPT, 
  1574.      *         INPFIL,ECHO,DELAY,PROFIL,BELL,STRING,TIMER,BRDTIM
  1575.             REWIND STKUNI
  1576.             CLOSE (UNIT=STKUNI,STATUS='KEEP')
  1577.          ENDIF
  1578. C
  1579. C       PRINT *, BUFFER( 1: 160 )
  1580. C       REWIND OUTUNI
  1581. C
  1582.          PPREQ = O"24032320000500000000".OR.(LOCF(BUFFER).AND.MASK18) 
  1583.          CALL REQPP (PPREQ)
  1584. C
  1585.          CALL EXIT
  1586.       ENDIF
  1587. C
  1588. C -- DO HELP
  1589. C
  1590.       IF (BUFFER(1:4).EQ.'HELP') THEN
  1591.          CALL PF ('GET',HLPFIL,HLPFIL,'UN',CUN(1:CUNLEN),'RC',PFERR)
  1592.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  1593.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  1594.      *      ,4),BLANK,RIGHTP,COLON
  1595. C
  1596. C -- SEE WHAT THE SUBJECT IS
  1597. C
  1598.          IEND = INDEX(BUFFER,BLANKS(1:2))
  1599.          IF (IEND.LE.0) IEND = 160
  1600.          BUFFER(IEND:IEND) = COLON
  1601.          IF (BUFFER(5:5).NE.COLON) THEN 
  1602.             BUFFER(5:5) = ASTER
  1603.          ELSE
  1604.             BUFFER(5:9) = ENDHLP
  1605.          ENDIF
  1606.          IF (BUFFER(5:8).EQ.'*ALL') BUFFER(6:6) = COLON
  1607.          LRQST = INDEX(BUFFER,COLON)-1
  1608. C
  1609. C -- SET FLAGS
  1610. C
  1611.          HLPFLG = .FALSE.
  1612.          FNDHLP = .FALSE.
  1613. C
  1614.          OPEN (UNIT=HLPUNI,FILE=HLPFIL,STATUS='UNKNOWN',RECL=162)
  1615.   460    READ (HLPUNI,1450,END=470) MESSAG(1:160) 
  1616.  1450    FORMAT (A160)
  1617.          IF (MESSAG(1:1).NE.ASTER) THEN 
  1618.             IF (HLPFLG) WRITE (OUTUNI,1460) TOLC,MESSAG(1:160)
  1619.  1460       FORMAT (A2,A160)
  1620.          ELSE
  1621.             IF (MESSAG(1:5).EQ.ENDHLP) THEN
  1622.                IF (FNDHLP) THEN
  1623.                   GO TO 470
  1624. C
  1625.                ELSE 
  1626.                   HLPFLG = .TRUE.
  1627.                ENDIF
  1628.             ELSEIF (BUFFER(5:LRQST).EQ.MESSAG(1:LRQST-4)) THEN
  1629.                HLPFLG = .TRUE.
  1630.                FNDHLP = .TRUE.
  1631.             ELSE
  1632.                HLPFLG = .FALSE.
  1633.             ENDIF
  1634.          ENDIF
  1635.          GO TO 460
  1636. C
  1637.   470    CLOSE (UNIT=HLPUNI,STATUS='KEEP')
  1638.          WRITE (OUTUNI,1140) TOLC
  1639.          IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
  1640.          GO TO 200
  1641. C
  1642.       ENDIF
  1643. C
  1644. C -- INPUT REDIRECTION
  1645. C
  1646.       IF (BUFFER(1:1).EQ.LEFTA) THEN
  1647.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  1648.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  1649.      *      ,4),BLANK,RIGHTP,COLON
  1650. C
  1651. C -- SEE IF DEFAULT 
  1652. C
  1653.          IF (BUFFER(2:2).EQ.COLON.OR.BUFFER(2:2).EQ.BLANK) BUFFER(2:8) =
  1654.      *       INPNAM 
  1655. C
  1656. C -- TEST SPECIFIED FILE
  1657. C
  1658.          OPEN (UNIT=SCRUNI,FILE=BUFFER(2:8),STATUS='UNKNOWN',IOSTAT=
  1659.      *      IOSTAT,RECL=162)
  1660.          IF (IOSTAT.EQ.0) THEN
  1661.             CLOSE (UNIT=SCRUNI,STATUS='KEEP')
  1662.             CLOSE (UNIT=INPUNI,STATUS='KEEP')
  1663.             INPFIL(1:FL) = BUFFER(2:8)
  1664.             WRITE (OUTUNI,1470) TOLC,INPFIL(1:FL) 
  1665.  1470       FORMAT (A2,' I^N^P^U^T ^U^S^I^N^G ',A7)
  1666.             OPEN (UNIT=INPUNI,FILE=INPFIL(1:FL),STATUS='UNKNOWN',RECL=
  1667.      *         162) 
  1668.          ELSE
  1669.             CLOSE (UNIT=SCRUNI,STATUS='DELETE')
  1670.             WRITE (OUTUNI,1480) TOLC,BUFFER(2:8)
  1671.  1480       FORMAT (A2,' I^N^V^A^L^I^D ^F^I^L^E ^N^A^M^E ',A7)
  1672.          ENDIF
  1673.          WRITE (OUTUNI,1140) TOLC
  1674.          GO TO 200
  1675. C
  1676.       ENDIF
  1677. C
  1678. C -- OUTPUT REDIRECTION
  1679. C
  1680.       IF (BUFFER(1:1).EQ.RIGHTA) THEN
  1681.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  1682.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  1683.      *      ,4),BLANK,RIGHTP,COLON
  1684. C
  1685. C -- SEE IF DEFAULT 
  1686. C
  1687.          IF (BUFFER(2:2).EQ.COLON.OR.BUFFER(2:2).EQ.BLANK) BUFFER(2:8) =
  1688.      *       OUTNAM 
  1689. C
  1690. C -- TEST SPECIFIED FILE
  1691. C
  1692.          OPEN (UNIT=SCRUNI,FILE=BUFFER(2:8),STATUS='UNKNOWN',IOSTAT=
  1693.      *      IOSTAT,RECL=162)
  1694.          IF (IOSTAT.EQ.0) THEN
  1695.             CLOSE (UNIT=SCRUNI,STATUS='KEEP')
  1696.             OUTFIL(1:FL) = BUFFER(2:8)
  1697.             WRITE (OUTUNI,1490) TOLC,OUTFIL(1:FL) 
  1698.  1490       FORMAT (A2,' O^U^T^P^U^T ^U^S^I^N^G ',A7)
  1699.             WRITE (OUTUNI,1140) TOLC
  1700.             CLOSE (ERRUNI,STATUS='KEEP')
  1701.             CLOSE (UNIT=OUTUNI,STATUS='KEEP')
  1702.             OPEN (UNIT=OUTUNI,FILE=OUTFIL,STATUS='UNKNOWN',RECL=162)
  1703.             OPEN (UNIT=ERRUNI,FILE=OUTNAM,STATUS='UNKNOWN',RECL=162)
  1704.          ELSE
  1705.             CLOSE (UNIT=SCRUNI,STATUS='DELETE')
  1706.             WRITE (OUTUNI,1480) TOLC,BUFFER(2:8)
  1707.             WRITE (OUTUNI,1140) TOLC
  1708.          ENDIF
  1709.          GO TO 200
  1710. C
  1711.       ENDIF
  1712. C
  1713. C -- BELL COMMAND
  1714. C
  1715.       IF (BUFFER(1:4).EQ.'BELL') THEN
  1716.          IF (BUFFER(5:5).EQ.'=') THEN
  1717.             IF (BELL) THEN
  1718.                WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,
  1719.      *            LEFTP,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,
  1720.      *            (CJSN(I:I),I=1,4),BLANK,RIGHTP,COLON
  1721.                WRITE (OUTUNI,1500) TOLC,BUFFER(6:9)
  1722.  1500          FORMAT (A2,1X,A4,' ^I^S ^R^I^N^G^I^N^G ^Y^O^U.')
  1723.             ELSE
  1724.                GO TO 200
  1725. C
  1726.             ENDIF
  1727.          ENDIF
  1728.          WRITE (OUTUNI,1510) DING
  1729.  1510    FORMAT (A4)
  1730.          WRITE (OUTUNI,1140) TOLC
  1731.          GO TO 200
  1732. C
  1733.       ENDIF
  1734. C
  1735. C -- COMMENT FILTER 
  1736. C
  1737.       IF (BUFFER(1:1).EQ.ASTER) GO TO 200
  1738. C
  1739. C -- RING COMMAND
  1740. C
  1741.       IF (BUFFER(1:5).EQ.'RING ') THEN
  1742.          RING = .TRUE.
  1743.          UJSN(1:4) = BUFFER(6:9)
  1744.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  1745.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  1746.      *      ,4),BLANK,RIGHTP,COLON
  1747.          WRITE (OUTUNI,1520) TOLC,UJSN(1:4)
  1748.  1520    FORMAT (A2,' R^I^N^G^I^N^G ',A4,'.')
  1749.          WRITE (OUTUNI,1140) TOLC
  1750.          BUFFER(1:1) = DOLLAR 
  1751.          MESSAG(1:14) = '$XXXXBELL=XXXX'
  1752.          MESSAG(2:5) = UJSN(1:4)
  1753.          MESSAG(11:14) = JSN(1:4)
  1754.       ENDIF
  1755. C
  1756. C -- MSGFLG COMMAND 
  1757. C
  1758.       IF (BUFFER(1:1).EQ.DOLLAR.AND.(UN(1:UNLEN).EQ.CUN(1:CUNLEN).OR. 
  1759.      *   RING)) THEN
  1760.          RING = .FALSE.
  1761.          OPEN (UNIT=SNDUNI,FILE=SNDFIL,STATUS='UNKNOWN',RECL=162)
  1762.          REWIND SNDUNI
  1763.          WRITE (SNDUNI,1530) MESSAG(1:160)
  1764.  1530    FORMAT (A160)
  1765.          REWIND SNDUNI
  1766.          CLOSE (UNIT=SNDUNI,STATUS='KEEP')
  1767.          CLOSE (UNIT=MSGUNI,STATUS='KEEP')
  1768.          GO TO 130
  1769. C
  1770.       ENDIF
  1771. C
  1772. C -- SEE IF ENTRY IS A USER-DEFINED COMMAND
  1773. C
  1774.       CALL PF ('GET',CONFIL,CONFIL,'UN',UN(1:UNLEN),'RC',PFERR)
  1775. C
  1776. C -- IF NO USER FILE, GET THE SYSTEM FILE
  1777. C
  1778.       IF (PFERR.NE.0) THEN
  1779.          CONFIL = 'SLUGCON'
  1780.          CALL PF ('GET',CONFIL,CONFIL,'UN',CUN(1:CUNLEN),'RC',PFERR)
  1781.       ENDIF
  1782. C
  1783. C -- ALL IS WELL
  1784. C
  1785.       OPEN (UNIT=CONUNI,FILE=CONFIL,STATUS='UNKNOWN',RECL=162)
  1786.   480 READ (CONUNI,1530,END=490) BUFFER(1:160)
  1787. C
  1788. C -- SEE IF SYNTAX IS CORRECT 
  1789. C
  1790.       IEQ = INDEX(BUFFER(1:160),'=')+1
  1791.       ISEMI = INDEX(BUFFER(1:160),';')-1
  1792.       ILEN = ISEMI-IEQ+1
  1793.       IF (IEQ.EQ.0.OR.ISEMI.EQ.0.OR.IEQ.GT.ISEMI.OR.ILEN.LT.0) GO TO 480
  1794. C
  1795. C -- SEE IF COMMAND MATCHES
  1796. C
  1797.       IF (MESSAG(1:IEQ-2).NE.BUFFER(1:IEQ-2)) GO TO 480
  1798. C
  1799. C -- IF IT MATCHES, REBUILD COMMAND LINE
  1800. C
  1801.       BUFFER(1:ILEN) = BUFFER(IEQ:ISEMI)
  1802.       ILEN = ILEN+1 
  1803.       BUFFER(ILEN:ILEN) = BLANK
  1804.       ILEN = ILEN+1 
  1805.       BUFFER(ILEN:162) = COLONS(ILEN:162)
  1806. C
  1807. C -- FIND BLEN AND MLEN
  1808. C
  1809.       LB = 162-ILEN+1
  1810.       LM = 162-IEQ+1
  1811.       BLEN = ILEN+MIN(LB,LM)-1
  1812.       MLEN = IEQ+MIN(LB,LM)-1 
  1813. C
  1814. C -- COPY COMMAND AND ARGUMENTS
  1815. C
  1816.       BUFFER(ILEN:BLEN) = MESSAG(IEQ:MLEN)
  1817.       MESSAG(1:162) = BUFFER(1:162)
  1818.       CLOSE (UNIT=CONUNI,STATUS='DELETE')
  1819.       GO TO 210
  1820. C
  1821.   490 CLOSE (UNIT=CONUNI,STATUS='DELETE')
  1822. C
  1823. C -- SUGGEST HELP COMMAND, IF NOVICE
  1824. C
  1825.       IF (NOVICE) THEN
  1826.          WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
  1827.      *      BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
  1828.      *      ,4),BLANK,RIGHTP,COLON
  1829.          WRITE (OUTUNI,1540) TOLC
  1830.  1540    FORMAT (A2,' T^Y^P^E "^H^E^L^P" ^F^O^R ^A ^L^I^S^T ^O^F ',
  1831.      *      '^C^O^M^M^A^N^D^S.')
  1832.          WRITE (OUTUNI,1140) TOLC
  1833.          IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
  1834. C
  1835.          GO TO 200
  1836. C
  1837. C -- IF NOT A NOVICE, ASSUME ITS MESSAGE TEXT.
  1838. C
  1839.       ELSE
  1840.          BUFFER(1:159) = MESSAG(1:159)
  1841.          MESSAG(1:1) = BLANK
  1842.          MESSAG(2:160) = BUFFER(1:159)
  1843.          GO TO 210
  1844. C
  1845.       ENDIF
  1846.       END 
  1847.           IDENT  BOGUS
  1848.           ENTRY  REQPP
  1849.           SYSCOM B1 
  1850. REQPP     BSS    1
  1851.           SB1    1
  1852.           SB2    X1 
  1853.           SA2    B2 
  1854.           SX7    0
  1855.           IX7    X2+X7
  1856.           SA7    RA.MTR
  1857.           NO
  1858.           XJ     RA.MTR
  1859.           NO
  1860.           EQ     REQPP
  1861.           END
  1862. .DATA,SLUGHLP
  1863. *BELL: 
  1864.        B^E^L^L             S^E^N^D ^A ^C^O^N^T^R^O^L-G ^T^O ^T^H^E ^U^S^E^R'^S ^T^E^R^M^I^N^A^L.
  1865.   
  1866. *BROADCAST: 
  1867.        B^R^O^A^D^C^A^S^T        S^E^N^D^S ^A ^M^E^S^S^A^G^E ^T^O ^A^L^L ^C^O^N^F^E^R^E^N^C^E^S.  T^H^I^S
  1868.                         ^C^O^M^M^A^N^D ^M^A^Y ^B^E ^U^S^E^D ^O^N^L^Y ^O^N^C^E ^P^E^R ^M^I^N^U^T^E.
  1869.   
  1870. *BYE: 
  1871.        B^Y^E              L^O^G ^O^F^F S^L^U^G^N^E^T ( ^A^N^D ^S^Y^S^T^E^M ).
  1872.   
  1873. *DELAY: 
  1874.        D^E^L^A^Y            R^O^L^L^S ^O^U^T ^T^H^E ^T^E^R^M^I^N^A^L ^F^O^R ^A ^P^E^R^I^O^D ^O^F
  1875.                         ^T^I^M^E ( ^D^E^F^A^U^L^T ^I^S 15 ^S^E^C^O^N^D^S ).  T^H^I^S
  1876.                         ^T^I^M^E ^C^A^N ^B^E ^C^H^A^N^G^E^D ^U^S^I^N^G ^T^H^E 'S^E^T ^D^E^L^A^Y'
  1877.                         ^C^O^M^M^A^N^D. 
  1878.   
  1879. *EDIT: 
  1880.        E^D^I^T             E^D^I^T ^M^E^S^S^A^G^E ^B^U^F^F^E^R.  T^H^E ^D^E^F^A^U^L^T ^E^D^I^T^O^R
  1881.                         ^I^S FSE.  T^O ^C^H^A^N^G^E ^T^H^E ^D^E^F^A^U^L^T ^E^D^I^T^O^R,
  1882.                         ^S^E^E ^T^H^E 'S^E^T ^E^D^I^T^O^R' ^C^O^M^M^A^N^D.
  1883.   
  1884. *EXIT: 
  1885.        E^X^I^T             E^X^I^T S^L^U^G^N^E^T ^B^U^T ^R^E^M^A^I^N ^O^N ^S^Y^S^T^E^M.
  1886.   
  1887. *HELP: 
  1888.        H^E^L^P ^N           D^I^S^P^L^A^Y^S ^H^E^L^P ^F^O^R ^N, ^W^H^E^R^E ^N ^I^S ^A S^L^U^G^N^E^T 
  1889.                         ^C^O^M^M^A^N^D ^O^R ^T^O^P^I^C. A ^L^I^S^T ^O^F ^T^O^P^I^C^S ^C^A^N ^B^E
  1890.                         ^O^B^T^A^I^N^E^D ^B^Y ^T^Y^P^I^N^G '^H^E^L^P' ^W^I^T^H ^N^O ^A^R^G^U^M^E^N^T^S.
  1891.                         T^O ^D^I^S^P^L^A^Y ^A^L^L ^A^V^A^I^L^A^B^L^E ^H^E^L^P, ^S^P^E^C^I^F^Y '^A^L^L'
  1892.                         ^F^O^R ^N.
  1893.   
  1894. *JOIN: 
  1895.        J^O^I^N ^N           L^E^A^V^E ^C^U^R^R^E^N^T ^C^O^N^F^E^R^E^N^C^E ^A^N^D ^J^O^I^N ^O^R
  1896.                         ^C^R^E^A^T^E ^N, ^W^H^E^R^E ^N ^I^S ^A ^C^O^N^F^E^R^E^N^C^E ^N^A^M^E.
  1897.                         J^O^I^N ^W^I^L^L ^C^R^E^A^T^E ^N^E^W ^C^O^N^F^E^R^E^N^C^E^S.  I^F ^A
  1898.                         ^C^O^N^F^E^R^E^N^C^E ^N^A^M^E ^B^E^G^I^N^S ^W^I^T^H '-', ^I^T ^W^I^L^L
  1899.                         ^N^O^T ^B^E ^D^I^S^P^L^A^Y^E^D ^B^Y ^A "S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S"
  1900.                         ^C^O^M^M^A^N^D. I^F ^N^O ^C^O^N^F^E^R^E^N^C^E ^N^A^M^E ^I^S ^G^I^V^E^N,
  1901.                         ^T^H^E ^C^O^N^F^E^R^E^N^C^E "R^O^O^T" ^I^S ^J^O^I^N^E^D.
  1902.   
  1903. *REWIND:  
  1904.        R^E^W^I^N^D           R^E^W^I^N^D^S ^T^H^E ^I^N^P^U^T ^S^T^R^E^A^M.
  1905.   
  1906. *RING: 
  1907.        R^I^N^G ^N           S^E^N^D^S ^A ^C^O^N^T^R^O^L-G ^S^E^Q^U^E^N^C^E ^T^O ^N, ^W^H^E^R^E
  1908.                         ^N ^I^S ^T^H^E JSN.
  1909.   
  1910. *SCROLL:  
  1911.        S^C^R^O^L^L           E^N^T^E^R^S ^S^C^R^O^L^L ^M^O^D^E.  S^L^U^G^N^E^T ^W^I^L^L ^C^H^E^C^K ^A^N^D
  1912.                         ^D^I^S^P^L^A^Y ^A^N^Y ^N^E^W ^M^E^S^S^A^G^E^S ^A^F^T^E^R ^W^A^I^T^I^N^G ^F^O^R
  1913.                         ^A ^P^E^R^I^O^D ^O^F ^T^I^M^E ( ^D^E^F^A^U^L^T ^I^S 15 ^S^E^C^O^N^D^S ).
  1914.                         T^H^E ^T^I^M^E ^C^A^N ^B^E ^C^H^A^N^G^E^D ^W^I^T^H ^T^H^E 'S^E^T ^D^E^L^A^Y'
  1915.                         ^C^O^M^M^A^N^D.  U^S^E ^T^H^E ^U^S^E^R ^B^R^E^A^K 2 ^C^H^A^R^A^C^T^E^R
  1916.                         ( ^U^S^U^A^L^L^Y C^O^N^T^R^O^L-T ) ^T^O ^E^X^I^T ^S^C^R^O^L^L ^M^O^D^E.
  1917.   
  1918. *SEND: 
  1919.        S^E^N^D ^N           S^E^N^D ^A ^P^R^I^V^A^T^E ^M^E^S^S^A^G^E ^T^O ^N, ^W^H^E^R^E ^N ^I^S ^A 
  1920.                         JSN.  I^F ^N ^I^S ^B^L^A^N^K, ^M^E^S^S^A^G^E ^W^I^L^L ^B^E
  1921.                         ^B^R^O^A^D^C^A^S^T ^T^O ^A^L^L ^C^O^N^F^E^R^E^N^C^E ^M^E^M^B^E^R^S.
  1922.   
  1923. *SET DELAY: 
  1924.        S^E^T ^D^E^L^A^Y ^N      S^E^T ^T^H^E ^D^E^L^A^Y ^T^I^M^E ^T^O ^N ^S^E^C^O^N^D^S, ^W^H^E^R^E ^N
  1925.                         ^I^S ^A^N ^I^N^T^E^G^E^R ^B^E^T^W^E^E^N 0 ^A^N^D 9999>  T^H^E
  1926.                         ^D^E^L^A^Y ^T^I^M^E ^I^S ^U^S^E^D ^B^Y ^S^C^R^O^L^L ^M^O^D^E ^A^N^D ^T^H^E
  1927.                         ^D^E^L^A^Y ^C^O^M^M^A^N^D.
  1928.   
  1929. *SET ECHO: 
  1930.        S^E^T ^E^C^H^O ^N       S^E^T ^E^C^H^O ^M^O^D^E ^T^O ^N, ^W^H^E^R^E ^N ^I^S ON ^O^R OFF.
  1931.                         I^F ^E^C^H^O ^M^O^D^E ^I^S ^S^E^T ^T^O OFF, ^M^E^S^S^A^G^E^S ^S^E^N^T
  1932.                         ^B^Y ^T^H^E ^U^S^E^R ^A^N^D ^L^I^N^E^S ^F^R^O^M ^A ^R^E^D^I^R^E^C^T^E^D
  1933.                         ^I^N^P^U^T ^F^I^L^E ^A^R^E ^N^O^T ^E^C^H^O^E^D.
  1934.   
  1935. *SET EDITOR: 
  1936.        S^E^T ^E^D^I^T^O^R ^N     S^E^T ^T^H^E ^M^E^S^S^A^G^E ^E^D^I^T^O^R ^T^O ^N, ^W^H^E^R^E ^N ^I^S
  1937.                         EDIT, FSE, ^O^R XEDIT.  T^H^E ^M^E^S^S^A^G^E ^E^D^I^T^O^R
  1938.                         ^I^S FSE ^B^Y ^D^E^F^A^U^L^T.
  1939.   
  1940. *SET NAME: 
  1941.        S^E^T ^N^A^M^E ^N       S^E^T ^T^H^E ^U^S^E^R'^S ^N^A^M^E ^T^O ^N, ^W^H^E^R^E ^N ^I^S ^A
  1942.                         ^T^E^X^T ^S^T^R^I^N^G.  I^F ^N^O ^N^A^M^E ^I^S ^S^P^E^C^I^F^I^E^D,
  1943.                         ^T^H^E ^N^A^M^E ^W^I^L^L ^B^E ^S^E^T ^T^O 'A^N^O^N^Y^M^O^U^S'.
  1944.   
  1945. *SET NOVICE: 
  1946.        S^E^T ^N^O^V^I^C^E ^N     S^E^T ^N^O^V^I^C^E ^M^O^D^E ^T^O ^N, ^W^H^E^R^E ^N ^I^S ON ^O^R
  1947.                         OFF.  W^H^E^N ^N^O^V^I^C^E ^M^O^D^E ^I^S OFF, ^I^T ^I^S ^N^O
  1948.                         ^L^O^N^G^E^R ^N^E^C^E^S^S^A^R^Y ^T^O ^P^R^E^C^E^D^E ^M^E^S^S^A^G^E ^T^E^X^T 
  1949.                         ^W^I^T^H ^A ^B^L^A^N^K.
  1950.   
  1951. *SET PROMPT: 
  1952.        S^E^T ^P^R^O^M^P^T ^N     S^E^T ^P^R^O^M^P^T ^M^O^D^E ^T^O ^N, ^W^H^E^R^E ^N ^I^S ON ^O^R
  1953.                         OFF.  W^H^E^N ^P^R^O^M^P^T ^M^O^D^E ^I^S OFF, ^T^H^E ^N^A^M^E
  1954.                         ^O^F ^T^H^E ^C^U^R^R^E^N^T ^C^O^N^F^E^R^E^N^C^E ^I^S ^N^O ^L^O^N^G^E^R
  1955.                         ^P^R^I^N^T^E^D ^O^N ^A^N ^I^N^P^U^T ^R^E^Q^U^E^S^T.
  1956.   
  1957. *SET RING: 
  1958.        S^E^T ^R^I^N^G ^N       S^E^T ^R^I^N^G ^M^O^D^E ^T^O ^N, ^W^H^E^R^E ^N ^I^S ON ^O^R OFF.
  1959.                         W^H^E^N ^R^I^N^G ^M^O^D^E ^I^S OFF, ^T^H^E ^U^S^E^R'^S ^T^E^R^M^I^N^A^L
  1960.                         ^W^I^L^L ^N^O^T ^R^E^S^P^O^N^D ^T^O 'R^I^N^G' ^C^O^M^M^A^N^D^S ^G^I^V^E^N
  1961.                         ^B^Y ^O^T^H^E^R ^U^S^E^R^S.
  1962.   
  1963. *SET TIMER: 
  1964.        S^E^T ^T^I^M^E^R ^N      S^E^T^S ^T^I^M^E^R ^M^O^D^E ^T^O ^N, ^W^H^E^R^E ^N ^I^S ON ^O^R OFF.
  1965.                         W^H^E^N ^T^I^M^E^R ^M^O^D^E ^I^S ON, ^A ^T^I^M^E ^S^T^A^M^P ^I^S ^S^E^N^T
  1966.                         ^T^O ^T^H^E ^O^U^T^P^U^T ^S^T^R^E^A^M ^W^H^I^L^E ^I^N ^S^C^R^O^L^L ^A^N^D ^W^A^I^T
  1967.                         ^W^A^I^T ^M^O^D^E^S.
  1968.   
  1969. *SET USER: 
  1970.        S^E^T ^U^S^E^R ^N       S^E^T^S ^T^H^E ^U^S^E^R ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ^N^A^M^E 
  1971.                         ^T^O ^N.  T^H^E ^D^E^F^A^U^L^T ^N^A^M^E ^I^S SLUGCON.
  1972.                         T^H^E ^U^S^E^R ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ^S^H^O^U^L^D
  1973.                         ^A^L^R^E^A^D^Y ^E^X^I^S^T ^A^N^D ^B^E ^A ^P^E^R^M^A^N^E^N^T ^F^I^L^E
  1974.                         ( ^S^E^E ^T^H^E ^H^E^L^P ^E^N^T^R^Y ^F^O^R ^A ^D^E^S^C^R^I^P^T^I^O^N
  1975.                         ^O^F ^T^H^E ^U^S^E^R ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ).
  1976.   
  1977. *SET WAIT: 
  1978.        S^E^T ^W^A^I^T ^N       S^E^T^S ^T^H^E ^S^T^R^I^N^G ^U^S^E^D ^B^Y ^T^H^E '^W^A^I^T' ^C^O^M^M^A^N^D
  1979.                         ^T^O ^N.  T^H^E ^D^E^F^A^U^L^T ^S^T^R^I^N^G ^I^S "F^R^O^M".
  1980.   
  1981. *SHOW CONFERENCES:  
  1982.        S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S D^I^S^P^L^A^Y^S ^A^C^T^I^V^E ^C^O^N^F^E^R^E^N^C^E^S ( ^E^X^C^E^P^T
  1983.                         ^F^O^R ^C^O^N^F^E^R^E^N^C^E^S ^W^H^O^S^E ^N^A^M^E ^B^E^G^I^N^S
  1984.                         ^W^I^T^H '-' ). 
  1985.   
  1986. *SHOW MEMBERS: 
  1987.        S^H^O^W ^M^E^M^B^E^R^S     D^I^S^P^L^A^Y^S ^T^H^E JSN, UN, ^A^N^D ^N^A^M^E ^O^F ^A^L^L
  1988.                         ^M^E^M^B^E^R^S ^O^F ^Y^O^U^R ^C^U^R^R^E^N^T ^C^O^N^F^E^R^E^N^C^E. 
  1989.   
  1990. *WAIT: 
  1991.        W^A^I^T             E^N^T^E^R^S ^S^C^R^O^L^L ^M^O^D^E ^U^N^T^I^L ^A ^S^P^E^C^I^F^I^E^D
  1992.                         ^T^E^X^T ^S^T^R^I^N^G ^I^S ^R^E^C^E^I^V^E^D.  T^H^E ^D^E^F^A^U^L^T
  1993.                         ^T^E^X^T ^S^T^R^I^N^G ^I^S "F^R^O^M".  T^H^E ^S^T^R^I^N^G
  1994.                         ^C^A^N ^B^E ^S^E^T ^W^I^T^H ^T^H^E 'S^E^T ^W^A^I^T' ^C^O^M^M^A^N^D.
  1995.   
  1996. *NOS COMMANDS: 
  1997.        !^N.              P^A^S^S ^N ^T^O NOS ^F^O^R ^P^R^O^C^E^S^S^I^N^G, ^W^H^E^R^E ^N
  1998.                         ^I^S ^A NOS ^C^O^M^M^A^N^D ( ^N ^S^H^O^U^L^D ^B^E ^F^O^L^L^O^W^E^D
  1999.                         ^B^Y ^A ^P^E^R^I^O^D ).  A^F^T^E^R ^T^H^E ^C^O^M^M^A^N^D ^H^A^S
  2000.                         ^B^E^E^N ^P^R^O^C^E^S^S^E^D, S^L^U^G^N^E^T ^W^I^L^L ^R^E^S^U^M^E. 
  2001.   
  2002. *ENTERING COMMANDS AND TEXT:  
  2003.   
  2004.                   E^N^T^E^R^I^N^G C^O^M^M^A^N^D^S ^A^N^D M^E^S^S^A^G^E T^E^X^T
  2005.   
  2006.        A^L^L ^I^N^P^U^T ^S^T^A^R^T^I^N^G ^I^N ^C^O^L^U^M^N 1 ^W^I^L^L ^B^E ^I^N^T^E^R^P^R^E^T^E^D ^A^S
  2007.        S^L^U^G^N^E^T ^C^O^M^M^A^N^D^S.  I^N^P^U^T ^I^N^T^E^N^D^E^D ^A^S ^M^E^S^S^A^G^E ^T^E^X^T ^S^H^O^U^L^D
  2008.        ^B^E^G^I^N ^I^N ^C^O^L^U^M^N 2.  A ^B^L^A^N^K ^L^I^N^E ^O^R ^A "S^E^N^D" ^C^O^M^M^A^N^D ^W^I^L^L
  2009.        ^F^L^U^S^H ^T^H^E ^M^E^S^S^A^G^E ^B^U^F^F^E^R ^A^N^D ^S^E^N^D ^T^H^E ^T^E^X^T.
  2010.   
  2011.        I^F ^N^O^V^I^C^E ^M^O^D^E ^I^S ^S^E^T ^T^O OFF, ^M^E^S^S^A^G^E ^T^E^X^T ^D^O^E^S ^N^O^T ^H^A^V^E
  2012.        ^T^O ^B^E^G^I^N ^I^N ^C^O^L^U^M^N 2.  H^O^W^E^V^E^R, ^I^F ^T^H^E ^T^E^X^T ^C^O^N^T^A^I^N^S ^A^N
  2013.        ^E^M^B^E^D^E^D ^C^O^M^M^A^N^D ^S^T^R^I^N^G ^S^T^A^R^T^I^N^G ^I^N ^C^O^L^U^M^N 1, S^L^U^G^N^E^T ^W^I^L^L
  2014.        ^A^T^T^E^M^P^T ^T^O ^P^R^O^C^E^S^S ^T^H^E ^C^O^M^M^A^N^D.
  2015.   
  2016. *RESERVED CHARACTERS: 
  2017.   
  2018.                         R^E^S^E^R^V^E^D C^H^A^R^A^C^T^E^R^S 
  2019.   
  2020.        S^L^U^G^N^E^T ^R^E^S^E^R^V^E^S ^T^H^E ^C^H^A^R^A^C^T^E^R^S '<', '>', '*', ^A^N^D '!'
  2021.        ^I^N ^C^O^L^U^M^N 1 ^F^O^R ^I^N^P^U^T ^R^E^D^I^R^E^C^T^I^O^N, ^O^U^T^P^U^T ^R^E^D^I^R^E^C^T^I^O^N,
  2022.        ^C^O^M^M^E^N^T^S, ^A^N^D N^O^S ^C^O^M^M^A^N^D ^F^L^A^G.
  2023.   
  2024. *FILE REDIRECTION:  
  2025.   
  2026.                              F^I^L^E R^E^D^I^R^E^C^T^I^O^N
  2027.   
  2028.        S^L^U^G^N^E^T ^A^L^L^O^W^S ^R^E^D^I^R^E^C^T^I^O^N ^O^F ^T^H^E ^I^N^P^U^T ^A^N^D ^O^U^T^P^U^T ^S^T^R^E^A^M^S,
  2029.        ^U^S^I^N^G <^N ^O^R >^N, ^W^H^E^R^E ^N ^I^S ^A ^V^A^L^I^D ^N^A^M^E ^O^F ^A ^L^O^C^A^L N^O^S ^F^I^L^E
  2030.        ( >^N ^W^I^L^L ^C^R^E^A^T^E ^T^H^E ^F^I^L^E ).  T^H^E ^O^U^T^P^U^T ^S^T^R^E^A^M ^I^S ^R^E^S^T^O^R^E^D
  2031.        ^T^O ^T^H^E ^T^E^R^M^I^N^A^L ^B^Y ^E^N^T^E^R^I^N^G '>^O^U^T^P^U^T' ^O^R '>'.  T^H^E ^I^N^P^U^T
  2032.        ^S^T^R^E^A^M ^I^S ^R^E^S^T^O^R^E^D ^T^O ^T^H^E ^T^E^R^M^I^N^A^L ^W^H^E^N ^A ^F^I^L^E ^P^A^R^T^I^T^I^O^N,
  2033.        '<^I^N^P^U^T', ^O^R '<' ^I^S ^E^N^C^O^U^N^T^E^R^E^D ^I^N ^A^N ^I^N^P^U^T ^S^T^R^E^A^M.
  2034.   
  2035. *USER CONFIGURATION FILE: 
  2036.   
  2037.                      T^H^E U^S^E^R C^O^N^F^I^G^U^R^A^T^I^O^N F^I^L^E
  2038.   
  2039.        S^L^U^G^N^E^T ^A^L^L^O^W^S ^T^H^E ^U^S^E^R ^T^O ^D^E^F^I^N^E ^H^I^S ^O^R ^H^E^R ^O^W^N ^C^O^M^M^A^N^D
  2040.        ^P^H^R^A^S^E^S ^B^Y ^M^E^A^N^S ^O^F ^A ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E.  W^H^E^N S^L^U^G^N^E^T
  2041.        ^E^N^C^O^U^N^T^E^R^S ^A ^C^O^M^M^A^N^D ^I^T ^D^O^E^S ^N^O^T ^U^N^D^E^R^S^T^A^N^D, ^I^T ^A^T^T^E^M^P^T^S
  2042.        ^T^O GET ^A ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ^I^N ^T^H^E ^U^S^E^R'^S ^I^N^D^I^R^E^C^T ^A^C^C^E^S^S
  2043.        ^C^A^T^A^L^O^G ^C^A^L^L^E^D SLUGCON ( SLUG^N^E^T CON^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ). I^F
  2044.        ^S^U^C^C^E^S^S^F^U^L, ^I^T ^S^C^A^N^S ^T^H^E ^C^O^N^T^E^N^T^S ^O^F ^T^H^E ^F^I^L^E ^F^O^R ^A ^M^A^T^C^H
  2045.        ^W^I^T^H ^T^H^E ^U^S^E^R'^S ^C^O^M^M^A^N^D, ^A^N^D ^R^E^P^L^A^C^E^S ^T^H^E ^U^S^E^R'^S ^C^O^M^M^A^N^D
  2046.        ^W^I^T^H ^T^H^E ^D^E^F^I^N^I^T^I^O^N.
  2047.   
  2048.        T^H^I^S ^A^L^L^O^W^S ^F^O^R ^A ^G^R^E^A^T ^D^E^A^L ^O^F ^F^R^E^E^D^O^M ^O^N ^T^H^E ^P^A^R^T ^O^F
  2049.   
  2050.        ^T^H^E ^U^S^E^R.  F^O^R ^E^X^A^M^P^L^E, ^A ^U^S^E^R ^W^H^O ^W^A^S ^U^S^E^D ^T^O ^T^H^E "/"
  2051.        ^C^O^M^M^A^N^D ^S^I^G^N^A^L ^O^F ^M^A^N^Y ^C^O^N^F^E^R^E^N^C^E ^P^R^O^G^R^A^M^S ^M^I^G^H^T ^M^A^K^E ^T^H^E
  2052.        ^F^O^L^L^O^W^I^N^G ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E: 
  2053.   
  2054.        *
  2055.        * "/" ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ^F^E^A^T^U^R^I^N^G ^U^P^P^E^R ^A^N^D ^L^O^W^E^R ^C^A^S^E
  2056.        * ^C^O^M^M^A^N^D^S
  2057.        *
  2058.        /^W^H^O=^S^H^O^W ^M^E^M^B^E^R^S; 
  2059.        /WHO=^S^H^O^W ^M^E^M^B^E^R^S;
  2060.        /W=^S^H^O^W ^M^E^M^B^E^R^S;
  2061.        /^W=^S^H^O^W ^M^E^M^B^E^R^S;
  2062.        *
  2063.        /^N^A^M^E=^S^E^T ^N^A^M^E;
  2064.        /NAME=^S^E^T ^N^A^M^E; 
  2065.        /N=^S^E^T ^N^A^M^E;
  2066.        /^N=^S^E^T ^N^A^M^E;
  2067.        *
  2068.        /H=^H^E^L^P; 
  2069.        /^H=^H^E^L^P;
  2070.        *
  2071.        /S=^S^E^N^D; 
  2072.        /^S=^S^E^N^D;
  2073.        *
  2074.        /B=^B^Y^E;
  2075.        /^B=^B^Y^E;
  2076.   
  2077.        W^I^T^H ^T^H^I^S ^F^I^L^E, ^T^H^E ^U^S^E^R ^W^O^U^L^D ^B^E ^A^B^L^E ^U^S^E /^B, /^H, /^N, /^S,
  2078.        ^A^N^D /^W ^A^S ^C^O^M^M^A^N^D^S. I^F ^S^E^V^E^R^A^L ^D^I^F^F^E^R^E^N^T ^U^S^E^R^S ^S^H^A^R^E ^T^H^E
  2079.        ^S^A^M^E UN, ^T^H^E^Y ^C^A^N ^C^R^E^A^T^E ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E^S ^W^I^T^H ^N^A^M^E^S
  2080.        ^O^T^H^E^R ^T^H^A^N SLUGCON ^A^N^D ^U^S^E ^T^H^E 'S^E^T ^U^S^E^R' ^C^O^M^M^A^N^D ^T^O ^S^E^T 
  2081.        ^T^H^E ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ^N^A^M^E. 
  2082.   
  2083.        D^E^F^I^N^I^T^I^O^N^S ^S^H^O^U^L^D ^S^T^A^R^T ^I^N ^C^O^L^U^M^N 1 ^O^F ^T^H^E ^C^O^N^F^I^G^U^R^A^T^I^O^N
  2084.        ^F^I^L^E ^A^N^D ^T^E^R^M^I^N^A^T^E ^W^I^T^H ^A ^S^E^M^I^C^O^L^O^N ( ';' ).  T^H^E ^U^S^E^R'^S
  2085.        ^C^O^M^M^A^N^D ^S^H^O^U^L^D ^B^E ^S^E^P^A^R^A^T^E^D ^B^F^R^O^M ^T^H^E ^D^E^F^I^N^I^T^I^O^N ^B^Y ^A^N
  2086.        ^E^Q^U^A^L ^S^I^G^N ( '=' ).  N^E^I^T^H^E^R ^T^H^E ^U^S^E^R'^S ^C^O^M^M^A^N^D ^O^R ^T^H^E
  2087.        ^D^E^F^I^N^I^T^I^O^N ^S^O^U^L^D ^C^O^N^T^A^I^N ^E^Q^U^A^L ^S^I^G^N^S ^O^R ^S^E^M^I^C^O^L^O^N^S, ^O^T^H^E^R
  2088.        ^T^H^A^N ^T^H^E ^S^E^P^A^R^A^T^O^R ^A^N^D ^T^E^R^M^I^N^A^T^O^R.  T^H^E ^D^E^F^I^N^I^T^I^O^N ^D^O^E^S
  2089.        ^N^O^T ^H^A^V^E ^T^O ^B^E ^A S^L^U^G^N^E^T ^C^O^M^M^A^N^D, ^B^U^T ^M^A^Y ^B^E ^A^N^Y ^T^E^X^T
  2090.        ^S^T^R^I^N^G ( ^I^T ^W^I^L^L ^B^E ^I^N^T^E^R^P^E^T^E^D ^J^U^S^T ^T^H^E ^S^A^M^E ^A^S ^I^F ^T^H^E
  2091.        ^U^S^E^R ^E^N^T^E^R^E^D ^I^T ^D^I^R^E^C^T^L^Y ).
  2092.   
  2093. *ADDITIONAL NOTES:  
  2094.   
  2095.                           A^D^D^I^T^I^O^N^A^L N^O^T^E^S
  2096.   
  2097.        1. S^L^U^G^N^E^T S^E^R^V^E^R ^M^E^S^S^A^G^E^S ^M^A^Y ^B^E ^R^E^C^O^G^N^I^Z^E^D ^B^E^C^A^U^S^E ^T^H^E^Y 
  2098.           ^H^A^V^E ^T^H^E S^E^R^V^E^R'^S ^U^S^E^R ^N^U^M^B^E^R ^I^N ^T^H^E "F^R^O^M" ^M^E^S^S^A^G^E.
  2099.   
  2100.        2. S^L^U^G^N^E^T ^C^R^E^A^T^E^S ^S^E^V^E^R^A^L ^L^O^C^A^L ^F^I^L^E^S ^A^N^D ^O^N^E ^I^N^D^I^R^E^C^T
  2101.           ^A^C^C^E^S^S ^F^I^L^E ^P^E^R ^S^E^S^S^I^O^N.  W^I^T^H ^A ^F^E^W ^E^X^C^E^P^T^I^O^N^S, ^T^H^E^S^E
  2102.           ^F^I^L^E^S ^C^A^N ^B^E ^R^E^C^O^G^N^I^Z^E^D ^B^E^C^A^U^S^E ^T^H^E^Y ^A^R^E ^P^R^E^F^I^X^E^D ^B^Y
  2103.           ^T^H^E ^U^S^E^R'^S JSN.  T^H^E ^E^X^C^E^P^T^I^O^N^S ^A^R^E ^P^R^E^F^I^X^E^D ^B^Y ^T^H^E
  2104.           ^L^E^T^T^E^R^S SLUG.
  2105.   
  2106.        3. I^F ^Y^O^U^R ^S^E^S^S^I^O^N ^I^S ^A^B^N^O^R^M^A^L^L^Y ^T^E^R^M^I^N^A^T^E^D ^A^N^D ^Y^O^U ^A^R^E
  2107.           ^U^N^A^B^L^E ^T^O ^R^E^C^O^V^E^R ^T^H^E ^D^I^S^C^O^N^N^E^C^T^E^D JSN, ^Y^O^U ^M^A^Y ^W^I^S^H
  2108.           ^T^O ^P^U^R^G^E ^T^H^E ^F^I^L^E ^A^S^S^O^C^I^A^T^E^D ^W^I^T^H ^T^H^A^T JSN ^I^N ^Y^O^U^R
  2109.           ^I^N^D^I^R^E^C^T ^A^C^C^E^S^S ^C^A^T^A^L^O^G.
  2110.   
  2111.        4. U^S^E^R^S ^W^H^O^S^E ^D^I^R^E^C^T^O^R^Y ^E^N^T^R^Y ^R^E^M^A^I^N^S ^I^N^A^C^T^I^V^E ^F^O^R ^A
  2112.           ^S^E^T ^T^I^M^E ^W^I^L^L ^B^E ^D^E^L^E^T^E^D ^F^R^O^M ^T^H^E ^D^I^R^E^C^T^O^R^Y.  A ^U^S^E^R
  2113.           ^W^H^O^S^E ^E^N^T^R^Y ^H^A^S ^B^E^E^N ^D^E^L^E^T^E^D ^W^I^L^L ^H^A^V^E ^H^I^S ^O^R ^H^E^R 
  2114.           ^S^E^S^S^I^O^N ^T^E^R^M^I^N^A^T^E^D ^W^I^T^H ^A ^M^E^S^S^A^G^E ^F^R^O^M ^T^H^E S^E^R^V^E^R ^T^O
  2115.           ^T^H^A^T ^E^F^F^E^C^T.  F^R^E^Q^U^E^N^T ^D^I^R^E^C^T^O^R^Y ^A^C^T^I^V^I^T^Y ( ^S^U^C^H ^A^S
  2116.           ^E^N^T^E^R^I^N^G ^A^N^D ^E^X^I^T^I^N^G ^S^C^R^O^L^L ^M^O^D^E, ^C^H^A^N^G^I^N^G ^Y^O^U^R ^N^A^M^E
  2117.           ^O^R ^C^O^N^F^E^R^E^N^C^E ) ^C^A^N ^A^V^O^I^D ^T^H^I^S.  I^F ^Y^O^U^R ^S^E^S^S^I^O^N ^I^S 
  2118.           ^T^E^R^M^I^N^A^T^E^D ^Y^O^U ^C^A^N ^A^L^W^A^Y^S ^R^E^S^U^M^E ^I^T.
  2119.   
  2120. *USER PROLOGUE FILE: 
  2121.   
  2122.                           T^H^E U^S^E^R P^R^O^L^O^G^U^E F^I^L^E
  2123.   
  2124.           A ^U^S^E^R ^P^R^O^L^O^G^U^E ^F^I^L^E ^I^S ^A^N ^I^N^D^I^R^E^C^T ^A^C^C^E^S^S ^F^I^L^E ^O^F
  2125.           S^L^U^G^N^E^T ^C^O^M^M^A^N^D^S ^T^H^A^T ^T^H^E ^U^S^E^R ^W^A^N^T^S ^E^X^E^C^U^T^E^D ^W^H^E^N
  2126.           S^L^U^G^N^E^T ^I^S ^S^T^A^R^T^E^D.  B^Y ^D^E^F^A^U^L^T, S^L^U^G^N^E^T ^L^O^O^K^S ^F^O^R
  2127.           ^T^H^E ^I^N^D^I^R^E^C^T ^A^C^C^E^S^S ^F^I^L^E SLUGPRO, ^B^U^T ^T^H^E ^U^S^E^R ^M^A^Y
  2128.           ^S^P^E^C^I^F^Y ^H^I^S ^O^W^N ^F^I^L^E ^N^A^M^E ^B^Y ^E^N^T^E^R^I^N^G ^I^T ^A^F^T^E^R ^T^H^E
  2129.           S^L^U^G^N^E^T ^C^O^M^M^A^N^D, ^P^R^E^C^E^D^E^D ^B^Y ^A ^C^O^M^M^A ^A^S ^F^O^L^L^O^W^S: 
  2130.   
  2131.           SLUGNET,JOEUSER
  2132.   
  2133.           I^N ^T^H^E ^A^B^O^V^E ^E^X^A^M^P^L^E, ^T^H^E ^U^S^E^R ^S^P^E^C^I^F^I^E^D ^T^H^E ^F^I^L^E
  2134.           JOEUSER.  T^H^E ^F^I^L^E JOEUSER ^C^O^U^L^D ^H^A^V^E ^C^O^N^T^A^I^N^E^D
  2135.           ^T^H^E ^F^O^L^L^O^W^I^N^G: 
  2136.   
  2137.           ^S^E^T ^N^A^M^E J^O^E U^S^E^R 
  2138.           ^S^E^T ^U^S^E^R JOESCON
  2139.   
  2140.           T^H^I^S ^F^I^L^E ^W^O^U^L^D ^S^E^T ^T^H^E ^U^S^E^R'^S ^N^A^M^E ^T^O J^O^E U^S^E^R ^A^N^D
  2141.           ^H^I^S ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ^T^O JOESCON.
  2142.   
  2143. *EOF: 
  2144.  H^E^L^P ^I^S ^A^V^A^I^L^A^B^L^E ^F^O^R ^T^H^E ^F^O^L^L^O^W^I^N^G ^C^O^M^M^A^N^D^S ^A^N^D ^T^O^P^I^C^S: 
  2145.   
  2146.  A^D^D^I^T^I^O^N^A^L ^N^O^T^E^S    B^E^L^L      B^R^O^A^D^C^A^S^T           B^Y^E       D^E^L^A^Y     E^D^I^T 
  2147.  E^N^T^E^R^I^N^G ^C^O^M^M^A^N^D^S ^A^N^D ^T^E^X^T    E^X^I^T      F^I^L^E ^R^E^D^I^R^E^C^T^I^O^N    H^E^L^P      J^O^I^N
  2148.  N^O^S ^C^O^M^M^A^N^D^S        R^E^S^E^R^V^E^D ^C^H^A^R^A^C^T^E^R^S           R^E^W^I^N^D    R^I^N^G      S^C^R^O^L^L
  2149.  S^E^N^D                S^E^T ^D^E^L^A^Y           S^E^T ^E^C^H^O            S^E^T ^E^D^I^T^O^R
  2150.  S^E^T ^N^A^M^E            S^E^T ^N^O^V^I^C^E          S^E^T ^P^R^O^M^P^T          S^E^T ^R^I^N^G
  2151.  S^E^T ^T^I^M^E^R           S^E^T ^U^S^E^R            S^E^T ^W^A^I^T            S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S
  2152.  S^H^O^W ^M^E^M^B^E^R^S        U^S^E^R ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E       U^S^E^R ^P^R^O^L^O^G^U^E ^F^I^L^E
  2153.  W^A^I^T
  2154.   
  2155.  T^O ^V^I^E^W ^T^H^E ^H^E^L^P ^F^O^R ^A ^P^A^R^T^I^C^U^L^A^R ^T^O^P^I^C, ^T^Y^P^E '^H^E^L^P ^N', ^W^H^E^R^E ^N ^I^S
  2156.  ^T^H^E ^T^O^P^I^C. 
  2157.   
  2158. .DATA,SLUGNEW
  2159.  N^E^W^S ^I^T^E^M 1: S^L^U^G^N^E^T ^I^N^S^T^A^L^L^E^D ^B^Y _ORGNM_
  2160. .DATA,SLUGCON
  2161. *
  2162. * "/" ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ^F^E^A^T^U^R^I^N^G ^U^P^P^E^R ^A^N^D ^L^O^W^E^R ^C^A^S^E
  2163. * ^C^O^M^M^A^N^D^S
  2164. *
  2165. /^S^C^A^N=^S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S;
  2166. /SCAN=^S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S;
  2167. /SC=^S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S;
  2168. /^S^C=^S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S;
  2169. *
  2170. /^W^H^O=^S^H^O^W ^M^E^M^B^E^R^S;
  2171. /WHO=^S^H^O^W ^M^E^M^B^E^R^S; 
  2172. /W=^S^H^O^W ^M^E^M^B^E^R^S;
  2173. /^W=^S^H^O^W ^M^E^M^B^E^R^S;
  2174. *
  2175. /^N^A^M^E=^S^E^T ^N^A^M^E;
  2176. /NAME=^S^E^T ^N^A^M^E;
  2177. /N=^S^E^T ^N^A^M^E; 
  2178. /^N=^S^E^T ^N^A^M^E;
  2179. *
  2180. /H=^H^E^L^P;
  2181. /^H=^H^E^L^P;
  2182. *
  2183. /S=^S^E^N^D;
  2184. /^S=^S^E^N^D;
  2185. *
  2186. /B=^B^Y^E;
  2187. /^B=^B^Y^E;
  2188. *
  2189. #EOR
  2190. #EOI
  2191. \End\Of\Shar\
  2192. else
  2193.   echo "will not over write ./slugnet.n"
  2194. fi
  2195. chmod 400 ./slugnet.n
  2196. if [ `wc -c ./slugnet.n | awk '{printf $1}'` -ne 75692 ]
  2197. then
  2198. echo `wc -c ./slugnet.n | awk '{print "Got " $1 ", Expected " 75692}'`
  2199. fi
  2200. echo "Finished archive 2 of 6"
  2201. exit
  2202.