home *** CD-ROM | disk | FTP | other *** search
- From: purdon@athena.mit.edu (James R. Purdon III)
- Newsgroups: alt.sources
- Subject: slugnet - multiple user conferencing system: Part 2 of 6
- Message-ID: <1990Dec20.164215.25134@athena.mit.edu>
- Date: 20 Dec 90 16:42:15 GMT
-
- The slugnet program is a multiple-user, interactive conferencing
- facility. It currently runs under a variety of System V-based and
- BSD-based operating systems (although certain functions may not be
- possible under some of these operating systems).
-
- Cut here-------------------------------------------------------------------
-
- #!/bin/sh
- # to extract, remove the header and type "sh filename"
- if `test ! -s ./slugnet.n`
- then
- echo "writing ./slugnet.n"
- cat > ./slugnet.n << '\End\Of\Shar\'
- .PROC,SLUGINS*I"SLUGINS: SLUGNET INSTALLATION PROCEDURE",
- SVRUN"SERVER'S USER NUMBER "=(*F,*S7(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)),
- MXUSR"MAXIMUM NUMBER OF USERS "=(*N=64,*S3(0123456789)),
- INACT"INACTIVE USER TIME LIMIT"=(*N=2,*S1(123456789)),
- ORGNM"ORGANIZATION NAME "=(*A).
- .HELP
- SLUGINS IS THE INSTALLATION PROCEDURE FOR SLUGNET. FOUR PARAMETERS MAY BE
- SPECIFIED, SVRUN, MXUSR, INACT, AND ORGNM. SVRUN AND ORGNM ARE REQUIRED.
- ON INSTALLATION, SLUGNET WILL CREATE FOUR INDIRECT ACCESS FILES ( SLUGCON,
- SLUGHLP, SLUGNET, AND SLUGNEW ), AND ONE DIRECT ACCESS FILE ( SLUGUSR ).
- .HELP,SVRUN
- THIS IS THE SERVER USER NUMBER. SLUGNET MUST BE INSTALLED FROM THIS USER
- NUMBER. THIS PARAMETER IS REQUIRED.
- .HELP,MXUSR
- THIS IS THE MAXIMUM NUMBER OF USERS + 1 ALLOWED TO USE SLUGNET AT THE SAME
- TIME. THIS NUMBER SHOULD BE A MULTIPLE OF 64. THE DEFAULT IS 64.
- .HELP,INACT
- THIS IS THE MAXIMUM TIME A USER IS ALLOWED TO REMAIN INACTIVE IN THE USER
- DIRECTORY IN HOURS. THE DEFAULT IS 2 HOURS.
- .HELP,ORGNM
- THIS IS A STRING FIELD THAT CAN HOLD ANYTHING. IT IS SUGGESTED THAT YOU USE
- THIS FIELD TO HOLD THE NAME OF YOUR ORGANIZATION, INSTALLATION, OR SYSTEM.
- .ENDHELP
- $NOTE./ /* BUILDING SLUGNET...
- $REWIND,*.
- $NOTE./ /* COMPILING SLUGNET...
- $FTN5,I=SLUGSRC,B=SLUGBIN,L=SLUGLST,E=SLUGLST,OPT=2.
- $NOTE./ /* LOADING SLUGNET...
- $LDSET,PRESET=ZERO.
- $LOAD,SLUGBIN.
- $NOGO,SLUGNET.
- $NOTE./ /* SAVING SLUGNET...
- $PURGE,SLUGNET,SLUGNEW,SLUGHLP,SLUGCON,SLUGUSR/NA.
- $SAVE,SLUGNET/AC=Y,CT=S,M=E.
- $SAVE,SLUGHLP,SLUGNEW/AC=N,CT=S,M=R.
- $SAVE,SLUGCON/AC=Y,CT=S,M=R.
- $RETURN,SLUGHLP,SLUGLST,SLUGBIN,SLUGNEW,SLUGSRC,SLUGCON.
- $NOTE./ /* EXECUTING SLUGNET...
- $NOTE./ /* TYPE 'EXIT' TO LEAVE SLUGNET.
- SLUGNET.
- $ATTACH,SLUGUSR.
- $RETURN,SLUGUSR.
- $NOTE./ /* SLUGNET INSTALLATION SUCCESSFUL.
- $REVERT,NOLIST.
- $EXIT.
- $NOTE./ /* SLUGNET INSTALLATION FAILED.
- $REVERT,NOLIST.
- .DATA,SLUGSRC
- BLOCK DATA
- C
- C SLUGNET LICENSE AGREEMENT
- C
- C
- C IMPORTANT: THIS PROGRAM IS PROVIDED ONLY ON THE CONDITION THAT THE
- C INSTALLER AGREE TO THE TERMS OF THIS LICENSE. BY ACCESSING ANY OF
- C THE FILES IN THIS PACKAGE, THE INSTALLER AGREES TO BE BOUND BY THE
- C TERMS OF THIS LICENSE. IF THE INSTALLER DOES NOT WISH TO BE BOUND
- C BY THE TERMS OF THIS LICENSE, THE INSTALLER MUST DESTROY ALL FILES
- C CREATED, COPIED, OR DERIVED FROM THIS PACKAGE.
- C
- C LICENSE
- C
- C 1. THIS PROGRAM IS COPYRIGHTED MATERIAL. YOU ARE LICENSED TO INSTALL
- C NUMBER OF COPIES OF THE PROGRAM ON AANY NUMBER OF MACHINES AND USE
- C IT AND ALLOW OTHERS TO USE IT. SUCH USE MAY INCLUDE COPYING OF THE
- C PROGRAM AND FILES FOR ARCHIVAL PURPOSES AND DISTRIBUTION. YOU MUST
- C REPRODUCE THE PROGRAM'S COPYRIGHT AND TRADEMARK NOTICES ON ALL COPIES.
- C THE SOURCE CODE MAY BE FREELY DISTRIBUTED TO OTHER PARTIES AS LONG AS
- C NO CHARGE IS MADE, OTHER THAN MEDIA COSTS.
- C
- C 2. NO PROMISES ARE MADE REGARDING THE SUITABILITY OF THIS SOFTWARE FOR
- C ANY PURPOSE, AND IN NO EVENT WILL JAMES R. PURDON III OR HIS EMPLOYER
- C OR ASSOCIATES BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN
- C THEY HAVE BEEN ADVISED OF THE POSSIBLITY OF SUCH DAMAGES, NOR SHALL
- C JAMES R. PURDON III OR HIS EMPLOYERS OR ASSOCIATES BE LIABLE FOR A
- C CLAIM MADE BY ANY OTHER PARTY.
- C
- COMMON /COPY/ RIGHT
- CHARACTER*46 RIGHT
- DATA RIGHT / 'SLUGNET: COPYRIGHT 1987 BY JAMES R. PURDON III'/
- END
- PROGRAM SLUGNET (SLUGPRO=/162,TAPE97=SLUGPRO)
- C
- C -- MAXSIZ - 1: MAXIMUM NUMBER OF USERS
- C -- MAXTIM : MAXIMUM TIME IN HOURS FOR #INACTIVE ENTRY
- C
- PARAMETER (MAXSIZ=MXUSR)
- PARAMETER (MAXTIM=INACT)
- IMPLICIT INTEGER (A-Z)
- C
- COMMON /C1/ BYE
- COMMON /C2/ EOL
- COMMON /C3/ JSN
- COMMON /C4/ MESSAG
- COMMON /C5/ TOLC
- COMMON /C6/ UN
- COMMON /C7/ EOB
- COMMON /C8/ BUFFER
- COMMON /C9/ COLONS
- COMMON /C10/ FAMILY
- COMMON /C11/ DING
- COMMON /COPY/ RIGHT
- C
- CHARACTER*1 ASTER,BLANK,COLON,DOLLAR,LEFTA,LEFTP,PERIOD,RIGHTA,
- * RIGHTP,SLASH,USTAT,STAT,HAT,NSTAT
- CHARACTER*2 BYE,EOL,TOLC
- CHARACTER*2 EOB,ESC
- CHARACTER*4 DING
- CHARACTER*5 ENDHLP
- CHARACTER*7 MSGFIL,NULFIL,PSSWRD,UPSSWR,CPSWRD,EDTFIL,NEWFIL,
- * CONFIL,SCRFIL,INPNAM,OUTNAM,PROFIL,PRONAM
- CHARACTER*10 CJSN,CUN,INPFIL,JSN,OUTFIL,RCVFIL,SNDFIL,USRFIL,UN,
- * URCVFL,UUN,UJSN,TJSN,STKFIL,CMDFIL,HLPFIL,DATE,FAMILY,TIME,
- * UFAMLY,UTIME
- CHARACTER*17 EDITOR
- CHARACTER*26 ALPHA
- CHARACTER*40 CONFER,CNAME,NAME,NCONFR,UNAME,SCONFR,UCONFR,STRING
- CHARACTER*46 RIGHT
- CHARACTER*162 BLANKS,MESSAG,BUFFER,COLONS
- C
- DIMENSION FAMILY(3)
- C
- LOGICAL PRIVAT,MSGFLG,BYEFLG,SWITCH,SELF,NAMFLG,STAFLG
- LOGICAL ALLFLG,MEMFLG,CONFLG,EXTFLG,OK,OLD,START
- LOGICAL ERRFLG,NOVICE,PROMPT,HLPFLG,FNDHLP,ECHO
- LOGICAL BELL,RING,WAIT,TIMER,BRDCST
- C
- C
- DATA ASTER / '*'/ ,BLANK / ' '/ ,COLON / ':'/ ,DOLLAR / '$'/ ,
- * LEFTA / '<'/ ,LEFTP / '('/ ,PERIOD / '.'/ ,RIGHTA / '>'/ ,
- * RIGHTP / ')'/ ,SLASH / '/'/ ,HAT / '^' /
- DATA INPFIL / 'INPUT '/ ,OUTFIL / 'OUTPUT '/ ,RCVFIL /
- * 'ZZZZRCV '/ ,SNDFIL / 'ZZZZSND '/ ,USRFIL / 'SLUGUSR '/ ,
- * STKFIL / 'ZZZZSTK '/ ,CMDFIL / 'ZZZZCMD '/ ,HLPFIL /
- * 'SLUGHLP '/
- DATA INPUNI / 1 / ,OUTUNI / 2 / ,RCVUNI / 3 / ,SNDUNI / 4 / ,
- * USRUNI / 5 / ,PROUNI / 97 / ,STKUNI / 7 / ,CMDUNI / 8 / ,HLPUNI
- * / 9 /
- DATA CNAMLN / 11 / ,CUNLEN / 7 / ,CONLEN / 7 /
- DATA MSGLEN / 33 / ,NAMLEN / 0 / ,UNLEN / 0 /
- DATA MASK18 / O"777777"/ ,PRIVAT / .FALSE. / ,MSGFLG / .FALSE. /
- DATA NULFIL / 'ZZZZNUL'/ ,NULUNI / 99 / ,ERRUNI / 98 / ,MSGFIL /
- * 'SLUGMSG'/ ,MSGUNI / 10 / ,EDTFIL / 'ZZZZEDT'/ ,EDTUNI / 11 / ,
- * NEWFIL / 'SLUGNEW'/ ,NEWUNI / 12 / ,CONFIL / 'SLUGCON'/ ,CONUNI
- * / 13 / ,SCRFIL / 'ZZZZSCR'/ ,SCRUNI / 6 /
- DATA FL / 7 / ,ECHO / .TRUE. /
- DATA LIMIT / MAXTIM / ,DELAY / 15 /
- DATA EDITOR / 'FSE,SLUGMSG,OP=A.'/
- DATA NOVICE / .TRUE. / ,PROMPT / .TRUE. / ,WAIT / .FALSE. /
- DATA BELL / .TRUE. / ,TIMER / .TRUE. /
- DATA ALPHA / 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
- DATA ENDHLP / '*EOF:'/ ,INPNAM / 'INPUT '/ ,OUTNAM / 'OUTPUT '/ ,
- * PRONAM / 'SLUGPRO'/
- C
- C -- GET USER INFO
- C
- PPREQ = O"03201520005700000000".OR.(LOCF(FAMILY(1)).AND.MASK18)
- CALL REQPP (PPREQ)
- FAMLEN = INDEX(FAMILY(1),COLON)-1
- PPREQ = O"03201520003200000000".OR.(LOCF(UN).AND.MASK18)
- CALL REQPP (PPREQ)
- UNLEN = INDEX(UN,COLON)-1
- PPREQ = O"03201520001300000000".OR.(LOCF(JSN).AND.MASK18)
- CALL REQPP (PPREQ)
- C
- C -- CREATE RECEIVER FILE PASSWORD
- C
- PPREQ = O"03201520001300000000".OR.(LOCF(I).AND.MASK18)
- CALL REQPP (PPREQ)
- CALL RANSET (I)
- DO 10 I = 1, 7
- PSSWRD(I:I) = CHAR(INT(RANF()*25.)+1)
- 10 CONTINUE
- C
- C -- INITIALIZE VARIABLES
- C
- DO 20 I = 1, 162
- BLANKS(I:I) = BLANK
- COLONS(I:I) = COLON
- 20 CONTINUE
- C
- CJSN(1:4) = JSN(1:4)
- MESSAG(1:MSGLEN) = 'W^E^L^C^O^M^E ^T^O S^L^U^G^N^E^T!'
- CNAME(1:CNAMLN) = 'S^E^R^V^E^R'
- CUN(1:CUNLEN) = '_SVRUN_'
- NAME(1:15) = 'N^E^W ^U^S^E^R:'
- NAMLEN = INDEX(NAME,COLON)-1
- CMDFIL(1:4) = JSN(1:4)
- EDTFIL(1:4) = JSN(1:4)
- NULFIL(1:4) = JSN(1:4)
- RCVFIL(1:4) = JSN(1:4)
- SNDFIL(1:4) = JSN(1:4)
- STKFIL(1:4) = JSN(1:4)
- SCRFIL(1:4) = JSN(1:4)
- CONFER(1:CONLEN) = 'R^O^O^T'
- BYE = ':D'
- DING = ':G5G'
- EOB = ':E'
- EOL = '::'
- TOLC = ':I'
- STRLEN = 8
- STRING(1:STRLEN) = 'F^R^O^M:'
- C
- C -- SEE IF NEW USER
- C
- OPEN (UNIT=CMDUNI,FILE=CMDFIL,STATUS='NEW',IOSTAT=IOSTAT,RECL=162)
- IF (IOSTAT.EQ.0) THEN
- INQUIRE (UNIT=PROUNI,NAME=PROFIL)
- WRITE (CMDUNI,1000) JSN(1:4),CUN(1:CUNLEN),PROFIL,JSN(1:4),
- 1 JSN(1:4),JSN(1:4),PROFIL,JSN(1:4)
- 1000 FORMAT ('.PROC,',A4,'CMD.',/,
- 1 '$GET,SLUGNET=SLUGNET/UN=',A7,'.',/,
- 2 'SLUGNET,',A7,'.',/,
- 3 '$NOTE,NR./ / ',/,
- 4 '$WHILE,FILE(',A4,'STK,AS),LOOP.',/,
- 5 '$SETFS,',A4,'CMD,',A4,'STK,SLUGNET/FS=NAD.',/,
- 6 'SLUGNET,',A7,'.',/,
- 7 '$ENDW,LOOP.',/,
- 8 '$NOTE,NR./ /* SLUGNET TERMINATED.',/,
- 9 '$REVERT,NOLIST.',/,
- A '$EXIT.',/,
- B A4,'CMD.',/,
- C '$REVERT,NOLIST.',/,
- D '$EXIT.',/,
- E '$NOTE,NR./ /* SLUGNET TERMINATED.',/,
- F '$REVERT,NOLIST.' )
- REWIND CMDUNI
- CLOSE (UNIT=CMDUNI,STATUS='KEEP')
- BUFFER(1:160) = COLONS(1:160)
- BUFFER(1:9) = '!XXXXXXX.'
- BUFFER(2:8) = CMDFIL(1:FL)
- START = .TRUE.
- GO TO 450
- C
- ENDIF
- CLOSE (UNIT=CMDUNI,STATUS='KEEP')
- C
- C -- CREATE SERVER FILE PASSWORD
- C
- J = 0
- DO 30 I = 1, 7
- J = ICHAR(CUN(I:I))
- 30 CONTINUE
- CALL RANSET (J)
- DO 40 I = 1, 7
- CPSWRD(I:I) = CHAR(INT(RANF()*25.)+1)
- 40 CONTINUE
- C
- C -- SEE IF USER IS RETURNING
- C
- OPEN (UNIT=STKUNI,FILE=STKFIL,STATUS='OLD',IOSTAT=IOSTAT,FORM=
- * 'UNFORMATTED')
- IF (IOSTAT.EQ.0) THEN
- REWIND STKUNI
- READ (STKUNI) NUMLIN,OUTFIL,EDITOR,CONFIL,NOVICE,PROMPT,INPFIL,
- * ECHO,DELAY,PROFIL,BELL,STRING,TIMER,BRDTIM
- OLD = .TRUE.
- REWIND STKUNI
- ELSE
- INQUIRE (UNIT=PROUNI,NAME=PROFIL)
- CALL PF ('GET',PROFIL,PROFIL,'UN',UN,'RC',PFERR)
- IF (PFERR.EQ.0) THEN
- INPFIL(1:FL) = PROFIL
- CLOSE (UNIT=PROUNI,STATUS='KEEP')
- ELSE
- CLOSE (UNIT=PROUNI,STATUS='DELETE')
- CALL PF ('GET','SLUGPRO','SLUGPRO','UN',CUN,'RC',PFERR)
- IF (PFERR.EQ.0) THEN
- INPFIL(1:FL) = 'SLUGPRO'
- ENDIF
- ENDIF
- ENDIF
- IF (INPFIL(1:FL).EQ.INPNAM.OR.INPFIL(1:FL).EQ.PROFIL) THEN
- CLOSE (UNIT=STKUNI,STATUS='DELETE')
- ELSE
- CLOSE (UNIT=STKUNI,STATUS='KEEP')
- ENDIF
- C
- C -- SET UP FILES FOR INPUT AND OUTPUT
- C
- OPEN (UNIT=INPUNI,FILE=INPFIL(1:FL),STATUS='UNKNOWN',RECL=162)
- OPEN (UNIT=OUTUNI,FILE=OUTFIL(1:FL),STATUS='UNKNOWN',RECL=162)
- C
- C -- CREATE AN EMPTY FILE
- C
- OPEN (UNIT=NULUNI,FILE=NULFIL,STATUS='UNKNOWN',RECL=162)
- REWIND NULUNI
- WRITE (NULUNI,*) BLANK
- REWIND NULUNI
- CLOSE (UNIT=NULUNI,STATUS='KEEP')
- C
- C -- SET UP RECEIVE FILE
- C
- OPEN (UNIT=RCVUNI,FILE=RCVFIL(1:FL),STATUS='UNKNOWN',RECL=162)
- OPEN (UNIT=SNDUNI,FILE=SNDFIL(1:FL),STATUS='UNKNOWN',RECL=162)
- C
- C -- INITALIZE FILES
- C
- WRITE (RCVUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,BLANK
- * ,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1,4),
- * BLANK,RIGHTP,COLON
- C
- 1010 FORMAT (A2,'F^R^O^M ',80A1)
- C
- WRITE (RCVUNI,1020) TOLC,BLANK,(MESSAG(I:I),I=1,MSGLEN)
- 1020 FORMAT (A2,160A1)
- WRITE (RCVUNI,1020) TOLC,BLANK
- C
- C -- GET NEWS FILE AND ADD TO RECEIVER FILE
- C
- CALL PF ('GET',NEWFIL,NEWFIL,'UN',CUN(1:CUNLEN),'RC',PFERR)
- OPEN (UNIT=NEWUNI,FILE=NEWFIL,STATUS='UNKNOWN',RECL=162)
- 50 READ (NEWUNI,1450,END=60) MESSAG(1:160)
- WRITE (RCVUNI,1460) TOLC,MESSAG(1:160)
- GO TO 50
- C
- 60 CLOSE (UNIT=NEWUNI,STATUS='DELETE')
- WRITE (RCVUNI,1020) TOLC,BLANK
- C
- C -- MAKE THE PERMANENT RECEIVE FILE
- C
- REWIND RCVUNI
- CLOSE (UNIT=RCVUNI,STATUS='KEEP')
- C
- C -- IF OLD, SKIP NEXT STEP
- C
- IF (OLD) GO TO 70
- C
- CALL PF ('PURGE',RCVFIL(1:FL),'RC',PFERR)
- CALL PF ('SAVE',RCVFIL(1:FL),RCVFIL(1:FL),'CT','S','M','A','PW',
- * PSSWRD)
- C
- C -- LOAD THE USER INTO THE DIRECTORY ( OR UPDATE HIS CONFERENCE )
- C
- 70 CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1:CUNLEN),
- * 'PW',CPSWRD,'RC',PFERR,'M','M')
- C
- C -- IF A CONFERENCE SHIFT INPROGRESS, OPEN UP SNDFIL
- C
- IF (SWITCH) THEN
- OPEN (UNIT=SNDUNI,FILE=SNDFIL(1:FL),STATUS='UNKNOWN',RECL=162)
- REWIND SNDUNI
- ENDIF
- C
- C -- NO ACCESS TO FILE
- C
- IF (PFERR.EQ.2) THEN
- C
- C -- IF CONFERENCE UN, CREATE NEW DIRECTORY
- C
- IF (UN(1:UNLEN).EQ.CUN(1:CUNLEN)) THEN
- C
- C -- DESTROY ANY DIRECTORY FILE PRESENT
- C
- OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='UNKNOWN')
- REWIND USRUNI
- CLOSE (UNIT=USRUNI,STATUS='DELETE')
- C
- C -- CREATE NEW DIRECTORY FILE
- C
- CALL PF ('DEFINE',USRFIL(1:FL),USRFIL(1:FL),'PW',CPSWRD,'CT'
- * ,'S','M','M','AC','N','RC',PFERR)
- IF (PFERR.NE.0) THEN
- WRITE (OUTUNI,1030) TOLC,PFERR
- 1030 FORMAT (A2,'*PF ^E^R^R^O^R ',I3,'.')
- CALL EXIT
- ENDIF
- OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='NEW',ACCESS=
- * 'DIRECT',RECL=16,FORM='UNFORMATTED')
- C
- C -- BLANK OUT FILE
- C
- DO 80 J = 1, MAXSIZ
- WRITE (USRUNI,REC=J) BLANKS(1:160)
- 80 CONTINUE
- NUMBER = MAXSIZ-1
- WRITE (USRUNI,REC=1) NUMBER,DATE(),TIME(),BLANKS(1:130)
- CLOSE (UNIT=USRUNI,STATUS='KEEP')
- C
- C -- FLUSH THE BUFFER
- C
- OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='UNKNOWN')
- REWIND USRUNI
- CLOSE (UNIT=USRUNI,STATUS='KEEP')
- C
- C -- RELEASE THE FILE
- C
- CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1:
- * CUNLEN),'PW',CPSWRD,'RC',PFERR,'M','R')
- C
- IF (PFERR.NE.0) THEN
- WRITE (OUTUNI,1030) TOLC,PFERR
- CALL EXIT
- ENDIF
- C
- OPEN (UNIT=USRUNI,FILE=USRFIL,STATUS='UNKNOWN',ACCESS=
- * 'DIRECT',RECL=16,FORM='UNFORMATTED')
- CLOSE (UNIT=USRUNI,STATUS='DELETE')
- GO TO 70
- C
- ELSE
- MSGLEN = 17
- MESSAG(1:MSGLEN) = '*U^N ^I^S ^N^O^T '
- WRITE (OUTUNI,1020) TOLC,(MESSAG(I:I),I=1,MSGLEN),(CUN(I:I),
- * I=1,CUNLEN),PERIOD
- CALL EXIT
- ENDIF
- C
- C -- FILE IS BUSY
- C
- ELSEIF (PFERR.EQ.1) THEN
- GO TO 70
- C
- C -- OTHER ERROR
- C
- ELSEIF (PFERR.GT.2.OR.PFERR.LT.0) THEN
- WRITE (OUTUNI,1030) TOLC,PFERR
- CALL EXIT
- C
- C -- ADD USER TO DIRECTORY
- C
- ELSE
- OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='UNKNOWN',ACCESS=
- * 'DIRECT',RECL=16,FORM='UNFORMATTED')
- C
- C -- NUMBER MAY BE NUMBER OF USERS, BUT IS MOST LIKELY THE NUMBER
- C OF RECORDS
- C
- READ (USRUNI,REC=1) NUMBER
- C
- C -- LOOK FOR FREE SLOT IN DIRECTORY
- C
- DO 90 J = 1, 2
- DO 90 I = 2, NUMBER
- C
- C -- READ THE UN, FILENAME, PASSWORD, CONFERENCE, AND STATUS
- C
- READ (USRUNI,REC=I) UTIME,UNAME,UJSN,UUN,URCVFL,UPSSWR,
- * UCONFR,USTAT,UFAMLY
- C
- C -- BUST GHOSTS
- C
- IF (UUN(1:1).NE.BLANK) THEN
- READ (UTIME,1040) ITIME1
- 1040 FORMAT (I3)
- UTIME = TIME()
- READ (UTIME,1040) ITIME2
- IF (ITIME1.GT.ITIME2) ITIME2 = ITIME2+24
- IF (IABS(ITIME1-ITIME2).GT.LIMIT) THEN
- WRITE (USRUNI,REC=I) BLANKS(1:160)
- UUN(1:1) = BLANK
- ENDIF
- ENDIF
- C
- C -- IF THE UN IS BLANK, THE RECORD IS OK TO USE
- C
- IF (UUN(1:1).EQ.BLANK.AND.(.NOT.SWITCH).AND.(.NOT.OLD)
- * .AND.(.NOT.NAMFLG).AND.(.NOT.STAFLG).AND.(.NOT.EXTFLG)
- * .AND.J.GT.1) THEN
- WRITE (USRUNI,REC=I) TIME(),NAME,JSN,UN,RCVFIL,PSSWRD,
- * CONFER,STAT,FAMILY(1)
- GO TO 100
- C
- ENDIF
- C
- C -- IF THE USER IS ALREADY THERE, EXTRACT INFO AND UPDATE CONFER
- C
- IF (UUN.EQ.UN.AND.JSN.EQ.UJSN) THEN
- IF (NAMFLG) UNAME = NAME
- NAME = UNAME
- NAMLEN = INDEX(NAME,COLON)-1
- RCVFIL = URCVFL
- PSSWRD = UPSSWR
- IF (SWITCH) THEN
- UCONFR = NCONFR
- SWITCH = .FALSE.
- ENDIF
- CONFER = UCONFR
- CONLEN = INDEX(CONFER,COLON)-1
- IF (USTAT.EQ.'S') THEN
- USTAT = COLON
- ENDIF
- IF (STAFLG) THEN
- USTAT = NSTAT
- ENDIF
- STAT = USTAT
- IF (EXTFLG) THEN
- UN = BLANKS(1:7)
- ENDIF
- WRITE (USRUNI,REC=I) TIME(),NAME,JSN,UN,RCVFIL,PSSWRD,
- * CONFER,STAT,FAMILY(1)
- GO TO 100
- C
- ENDIF
- 90 CONTINUE
- C
- C -- IF WE GET HERE, ITS FULL!
- C
- EXTFLG = .TRUE.
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1050) TOLC
- 1050 FORMAT (A2,' U^S^E^R ^D^I^R^E^C^T^O^R^Y ^I^S ^F^U^L^L - ',
- * 'T^R^Y ^A^G^A^I^N ^L^A^T^E^R.')
- WRITE (OUTUNI,1140) TOLC
- C
- C -- CLOSE THE FILE AND RELEASE IT
- C
- 100 CLOSE (UNIT=USRUNI,STATUS='KEEP')
- C
- C -- FLUSH THE BUFFER
- C
- OPEN (UNIT=USRUNI,FILE=USRFIL(1:FL),STATUS='UNKNOWN')
- REWIND USRUNI
- CLOSE (UNIT=USRUNI,STATUS='KEEP')
- C
- CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1:CUNLEN),
- * 'PW',CPSWRD,'RC',PFERR,'M','R')
- C
- IF (PFERR.NE.0) THEN
- WRITE (OUTUNI,1030) TOLC,PFERR
- CALL EXIT
- ENDIF
- C
- OPEN (UNIT=USRUNI,FILE=USRFIL,STATUS='UNKNOWN',ACCESS='DIRECT',
- * RECL=16,FORM='UNFORMATTED')
- CLOSE (UNIT=USRUNI,STATUS='DELETE')
- ENDIF
- C
- C -- BRANCH IF NAME CHANGE
- C
- IF (NAMFLG) THEN
- NAMFLG = .FALSE.
- GO TO 200
- C
- ENDIF
- C
- C -- BRANCH IF STATUS CHANGE
- C
- IF (STAFLG) THEN
- STAFLG = .FALSE.
- GO TO 200
- C
- ENDIF
- C
- C -- STOP IF EXIT
- C
- IF (EXTFLG) THEN
- CALL PF ('PURGE',RCVFIL,'RC',PFERR)
- OPEN (UNIT=NULUNI,FILE=NULFIL,STATUS='UNKNOWN')
- CLOSE (UNIT=NULUNI,STATUS='DELETE')
- OPEN (UNIT=CMDUNI,FILE=CMDFIL,STATUS='UNKNOWN')
- CLOSE (UNIT=CMDUNI,STATUS='DELETE')
- OPEN (UNIT=STKUNI,FILE=STKFIL,STATUS='UNKNOWN')
- CLOSE (UNIT=STKUNI,STATUS='DELETE')
- OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN')
- CLOSE (UNIT=MSGUNI,STATUS='DELETE')
- OPEN (UNIT=HLPUNI,FILE=HLPFIL,STATUS='UNKNOWN')
- CLOSE (UNIT=HLPUNI,STATUS='DELETE')
- OPEN (UNIT=RCVUNI,FILE=RCVFIL,STATUS='UNKNOWN')
- CLOSE (UNIT=RCVUNI,STATUS='DELETE')
- OPEN (UNIT=SNDUNI,FILE=SNDFIL,STATUS='UNKNOWN')
- CLOSE (UNIT=SNDUNI,STATUS='DELETE')
- OPEN (UNIT=PROUNI,FILE=PROFIL,STATUS='UNKNOWN')
- CLOSE (UNIT=PROUNI,STATUS='DELETE')
- PPREQ = O"24143020000300000002"
- CALL REQPP (PPREQ)
- IF (BYEFLG) WRITE (OUTUNI,1060) BYE
- 1060 FORMAT (A2)
- CALL EXIT
- ENDIF
- C
- C -- BRANCH IF OLD
- C
- IF (OLD) THEN
- OLD = .FALSE.
- OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN',RECL=162)
- NUMLIN = 0
- 110 READ (MSGUNI,1060,END=120)
- NUMLIN = NUMLIN+1
- GO TO 110
- C
- 120 GO TO 200
- C
- ENDIF
- C
- C -- WRITE NOTICE
- C
- MSGLEN = 24
- MESSAG(1:MSGLEN) = ' ^L^O^G^G^E^D ^O^N ^T^O '
- C
- WRITE (SNDUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,BLANK
- * ,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1,4),
- * BLANK,RIGHTP,COLON
- C
- WRITE (SNDUNI,1070) TOLC,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP,BLANK,
- * (UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4),BLANK,
- * RIGHTP,(MESSAG(I:I),I=1,MSGLEN),(CONFER(I:I),I=1,CONLEN),PERIOD
- C
- 1070 FORMAT (A2,1X,80A1)
- WRITE (SNDUNI,1070) TOLC,BLANK
- REWIND SNDUNI
- CLOSE (UNIT=SNDUNI,STATUS='KEEP')
- C
- C -- ATTACH THE CONFERENCE DIRECTORY
- C
- 130 CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1:CUNLEN),
- * 'PW',CPSWRD,'RC',PFERR,'M','R')
- IF (PFERR.EQ.1) GO TO 130
- C
- C -- OPEN IT AS A DIRECT ACCESS DEVICE
- C
- OPEN (UNIT=USRUNI,FILE=USRFIL,STATUS='OLD',ACCESS='DIRECT',RECL=16
- * ,FORM='UNFORMATTED')
- C
- C -- THE FIRST LINE IS THE NUMBER OF ENTRIES
- C
- READ (USRUNI,REC=1) NUMBER
- C
- C -- GHOST FLAG
- C
- SELF = .FALSE.
- C
- C -- CYCLE THROUGH THE LIST, APPENDING THE MESSAGE TO THE USERS'
- C RECEIVE FILES
- C
- DO 150 I = 2, NUMBER
- C
- C -- READ THE UN, FILENAME, PASSWORD, CONFERENCE, AND STATUS
- C
- READ (USRUNI,REC=I) UTIME,UNAME,UJSN,UUN,URCVFL,UPSSWR,UCONFR,
- * USTAT,UFAMLY
- C
- C -- MAKE SURE RECORD ISN'T EMPTY
- C
- IF (UUN(1:1).EQ.BLANK) GO TO 150
- C
- C -- MAKE SURE FAMILY IS THE SAME
- C
- IF (FAMILY(1)(1:FAMLEN).NE.UFAMLY(1:FAMLEN)) GO TO 150
- C
- C -- CALCULATE UUNLEN
- C
- UUNLEN = INDEX(UUN,COLON)-1
- IF (UUNLEN.LE.0) UUNLEN = 7
- C
- C -- SEE IF SELF
- C
- IF (UUN(1:UUNLEN).EQ.UN(1:UNLEN).AND.JSN(1:4).EQ.UJSN(1:4))
- * SELF = .TRUE.
-
- C
- C -- TRY THE APPEND
- C
- 140 PFERR = 0
- IF ((.NOT.PRIVAT).AND.(.NOT.BRDCST)) THEN
- IF (((CONFER(1:CONLEN).EQ.UCONFR(1:CONLEN).OR.USTAT.EQ.'M')
- * .AND.JSN(1:4).NE.UJSN(1:4)).OR.(JSN(1:4).EQ.UJSN(1:4)
- * .AND.ECHO)) CALL PF ('APPEND',SNDFIL,URCVFL,'UN',UUN(1:
- * UUNLEN),'PW',UPSSWR,'RC',PFERR)
- ELSEIF (.NOT.PRIVAT) THEN
- IF ((USTAT.EQ.'M'.AND.JSN(1:4).NE.UJSN(1:4)).OR.(JSN(1:4)
- * .EQ.UJSN(1:4).AND.ECHO)) CALL PF ('APPEND',SNDFIL,URCVFL,
- * 'UN',UUN(1:UUNLEN),'PW',UPSSWR,'RC',PFERR)
- ELSE
- IF (CONFER(1:CONLEN).EQ.UCONFR(1:CONLEN).AND.(USTAT.EQ.'M'
- * .OR.UJSN(1:4).EQ.TJSN(1:4).OR.(JSN(1:4).EQ.UJSN(1:4).AND.
- * ECHO).OR.UUN(1:UUNLEN).EQ.CUN(1:CUNLEN))) CALL PF (
- * 'APPEND',SNDFIL,URCVFL,'UN',UUN(1:UUNLEN),'PW',UPSSWR,
- * 'RC',PFERR)
- ENDIF
- IF (PFERR.EQ.1) GO TO 140
- C
- 150 CONTINUE
- C
- C -- RETURN THE DIRECTORY
- C
- CLOSE (UNIT=USRUNI,STATUS='DELETE')
- C
- C -- DESTROY SNDFIL
- C
- OPEN (UNIT=SNDUNI,FILE=SNDFIL,STATUS='UNKNOWN')
- CLOSE (UNIT=SNDUNI,STATUS='DELETE')
- C
- C -- RESET PRIVATE STATUS
- C
- PRIVAT = .FALSE.
- C
- C -- RESET BROADCAST STATUS
- C
- BRDCST = .FALSE.
- C
- C -- IF SELF IS MISSING, PRINT MESSAGE AND EXIT
- C
- IF (.NOT.SELF) THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1080) TOLC,LIMIT
- 1080 FORMAT (A2,' U^S^E^R ^D^I^R^E^C^T^O^R^Y ^E^N^T^R^Y ',
- * '^I^N^A^C^T^I^V^E ^F^O^R ',I2,' ^H^O^U^R^S - J^O^B ',
- * '^T^E^R^M^I^N^A^T^E^D. ')
- EXTFLG = .TRUE.
- ENDIF
- C
- C STOP
- C
- C -- IF AN EXIT IS IN PROGRESS, GO BLANK OUT THE UN
- C
- IF (EXTFLG) GO TO 70
- C
- C -- IF A JOIN IS IN PROGRESS, DO A SWITCH
- C
- IF (SWITCH) THEN
- CONFER = NCONFR
- CONLEN = NCONLN
- GO TO 70
- C
- ENDIF
- C
- C -- GET AND DISPLAY THE USER'S OWN RECEIVER FILE
- C
- 160 CALL PF ('GET',RCVFIL,RCVFIL,'PW',PSSWRD,'RC',PFERR)
- IF (PFERR.EQ.1) GO TO 160
- C
- C -- CLEAR OUT THE RCVFIL
- C
- CALL PF ('REPLACE',NULFIL,RCVFIL,'PW',PSSWRD,'RC',PFERR)
- IF (PFERR.EQ.1) GO TO 160
- C
- C -- SEE IF THE MESSAGE FILE EXISTS
- C
-
- C
- C -- OPEN THE MESSAGE BUFFER
- C
- OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN',RECL=162)
- REWIND MSGUNI
- C
- C -- DISPLAY THE RECEIVER FILE
- C
- OPEN (UNIT=RCVUNI,FILE=RCVFIL,STATUS='UNKNOWN',RECL=162)
- REWIND RCVUNI
- 170 MSGFLG = .FALSE.
- READ (RCVUNI,1090,END=180,ERR=190,IOSTAT=IOSTAT) MESSAG(1:162)
- ERRFLG = .FALSE.
- 1090 FORMAT (A162)
- IF (WAIT) THEN
- IF (INDEX(MESSAG(1:162),STRING(1:STRLEN)).GT.0) WAIT = .FALSE.
- ENDIF
- IF (MESSAG(1:1).EQ.DOLLAR) THEN
- IF (MESSAG(2:5).EQ.JSN(1:4)) THEN
- MESSAG(1:156) = MESSAG(6:162)
- MSGFLG = .TRUE.
- GO TO 210
- C
- ELSEIF (UN(1:UNLEN).NE.CUN(1:CUNLEN)) THEN
- GO TO 170
- C
- ENDIF
- ENDIF
- C
- ENDMSG = INDEX(MESSAG,EOL)-1
- IF (ENDMSG.LE.0) ENDMSG = 162
- WRITE (OUTUNI,1100) MESSAG(1:2),(MESSAG(I:I),I=3,ENDMSG)
- 1100 FORMAT (A2,160A1)
- C
- IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
- GO TO 170
- C
- C -- MAKE SURE WE ARE AT EOI
- C
- 180 IF (ERRFLG) GO TO 190
- CLOSE (UNIT=RCVUNI,STATUS='KEEP')
- OPEN (UNIT=RCVUNI,FILE=RCVFIL,STATUS='UNKNOWN',RECL=162)
- ERRFLG = .TRUE.
- GO TO 170
- C
- C -- DESTROY OLD RECEIVE FILE
- C
- 190 CLOSE (UNIT=RCVUNI,STATUS='DELETE')
- C
- C -- ACCEPT USER MESSAGES
- C
- NUMLIN = 0
- C
- C -- BUILD THE PROMPT
- C
- 200 MESSAG(1:162) = COLONS(1:162)
- MESSAG(1:2) = TOLC
- IF (PROMPT) THEN
- MODLEN = MOD(CONLEN,2)
- MESSAG(3:2+CONLEN) = CONFER(1:CONLEN)
- I = 3+CONLEN
- ELSE
- I = 3
- MODLEN = 0
- ENDIF
- MESSAG(I:I) = RIGHTA
- IF (MODLEN.EQ.0) THEN
- I = I+1
- MESSAG(I:I) = BLANK
- ENDIF
- I = I+1
- MESSAG(I:I+1) = EOB
- I = I+2
- MESSAG(I:I+1) = EOL
- I = I+1
- C
- C -- IF IN SCAN MODE OR IN WAIT MODE SKIP INPUT REQUEST
- C
- IF (STAT.EQ.'S'.OR.WAIT) THEN
- MESSAG = BLANKS
- I = DELAY
- PPREQ = O"03201520000600000000".OR.(LOCF(I).AND.MASK18)
- CALL REQPP (PPREQ)
- IF (TIMER) WRITE (OUTUNI,1110) TIME()
- 1110 FORMAT (A10)
- GO TO 210
- C
- ENDIF
- C
- C -- WRITE THE PROMPT
- C
- IF (INPFIL(1:FL).EQ.INPNAM) THEN
- PRINT 1120,MESSAG(1:162)
- 1120 FORMAT (A162)
- ENDIF
- C
- PPREQ = O"24143020000300000001"
- CALL REQPP (PPREQ)
- READ (INPUNI,1130,END=240) MESSAG(1:160)
- IF (INPFIL(1:FL).NE.INPNAM) THEN
- IF (ECHO) WRITE (OUTUNI,1460) TOLC,MESSAG(1:160)
- ENDIF
- PPREQ = O"24143020000300000000"
- CALL REQPP (PPREQ)
- C
- 210 ENDMSG = INDEX(MESSAG(1:160),EOL)-1
- IF (ENDMSG.LE.0) ENDMSG = 160
- DO 220 I = 1, ENDMSG
- IF (MESSAG(I:I).EQ.HAT) THEN
- I2 = I+1
- IF (I2.GT.ENDMSG) GO TO 230
- IF (INDEX(ALPHA,MESSAG(I2:I2)).LE.0) MESSAG(I:I2) = BLANKS(1
- * :2)
- ENDIF
- 220 CONTINUE
- 230 IF (MESSAG(1:1).EQ.BLANK.AND.MESSAG(1:162).NE.BLANKS) THEN
- WRITE (MSGUNI,1130) MESSAG(1:160)
- 1130 FORMAT (A160)
- NUMLIN = NUMLIN+1
- GO TO 200
- C
- ENDIF
- C
- C -- COMMANDS
- C
- C -- BLANK LINE: BROADCAST MESSAGE
- C
- IF (MESSAG.NE.BLANKS) GO TO 300
- GO TO 250
- C
- 240 CLOSE (UNIT=INPUNI,STATUS='KEEP')
- INPFIL(1:FL) = INPNAM
- OPEN (UNIT=INPUNI,FILE=INPFIL(1:FL),STATUS='UNKNOWN',RECL=162)
- 250 IF (NUMLIN.EQ.0.AND.(.NOT.SWITCH)) GO TO 160
- REWIND MSGUNI
- C
- C -- POSITION SNDFIL AT END
- C
- OPEN (UNIT=SNDUNI,FILE=SNDFIL,STATUS='UNKNOWN',RECL=162)
- 260 READ (SNDUNI,1130,END=270) MESSAG(1:160)
- GO TO 260
- C
- C -- PREPARE MESSAGE
- C
- C
- C -- IF SWITCH AND NUMLIN .EQ. 0, SKIP HEADER
- C
- 270 IF (SWITCH.AND.NUMLIN.EQ.0) GO TO 280
- IF ((.NOT.PRIVAT).AND.(.NOT.BRDCST)) THEN
- WRITE (SNDUNI,1010) TOLC,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP,
- * BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
- * ,BLANK,RIGHTP,COLON
- ELSEIF (.NOT.BRDCST) THEN
- MSGLEN = 37
- MESSAG(1:MSGLEN) = '< ^P^R^I^V^A^T^E ^M^E^S^S^A^G^E ^T^O '
- WRITE (SNDUNI,1010) TOLC,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP,
- * BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
- * ,BLANK,RIGHTP,BLANK,(MESSAG(I:I),I=1,MSGLEN),(TJSN(I:I),I=1,
- * 4),BLANK,RIGHTA,COLON
- ELSE
- MSGLEN = 37
- MESSAG(1:MSGLEN) = '< ^B^R^O^A^D^C^A^S^T ^M^E^S^S^A^G^E >'
- WRITE (SNDUNI,1010) TOLC,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP,
- * BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
- * ,BLANK,RIGHTP,BLANK,(MESSAG(I:I),I=1,MSGLEN)
- ENDIF
- C
- 280 READ (MSGUNI,1130,END=290) MESSAG(1:160)
- IF (MESSAG(1:1).EQ.'1') MESSAG(1:1) = BLANK
- WRITE (SNDUNI,1140) TOLC,MESSAG(1:160)
- 1140 FORMAT (A2,A160)
- GO TO 280
- C
- 290 WRITE (SNDUNI,1140) TOLC
- CLOSE (UNIT=MSGUNI,STATUS='DELETE')
- REWIND SNDUNI
- CLOSE (UNIT=SNDUNI,STATUS='KEEP')
- GO TO 130
- C
- C -- COPY MESSAG TO BUFFER, REMOVING HATS
- C
- 300 BUFLEN = 0
- BUFFER = BLANKS
- DO 310 I = 1, 160
- IF (MESSAG(I:I).NE.HAT) THEN
- BUFLEN = BUFLEN+1
- BUFFER(BUFLEN:BUFLEN) = MESSAG(I:I)
- ENDIF
- 310 CONTINUE
- C
- C -- SEND JSN: SENDS MESSAGE TO JSN ONLY
- C
- IF (BUFFER(1:4).EQ.'SEND') THEN
- I = INDEX(BUFFER,BLANK)+1
- TJSN(1:4) = BUFFER(I:I+3)
- IF (INDEX(TJSN(1:4),BLANK).EQ.0) PRIVAT = .TRUE.
- GO TO 250
- C
- ENDIF
- C
- C -- BROADCAST: SENDS MESSAGE TO ALL JSN, REGARDLESS OF CONFERENCE
- C
- IF (BUFFER(1:9).EQ.'BROADCAST') THEN
- BUFFER(1:10) = TIME()
- READ (BUFFER(1:10),1150) HOURS,MINUTE,SECOND
- 1150 FORMAT (1X,I2,1X,I2,1X,I2)
- NEWTIM = HOURS*3600+MINUTE*60+SECOND
- IF (NEWTIM-BRDTIM.LT.60) THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1160) TOLC
- 1160 FORMAT (A2,' Y^O^U ^M^A^Y ^B^R^O^A^D^C^A^S^T ^O^N^L^Y ',
- * '^O^N^C^E ^P^E^R ^M^I^N^U^T^E.')
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ELSE
- BRDTIM = NEWTIM
- BRDCST = .TRUE.
- GO TO 250
- C
- ENDIF
- ENDIF
- C
- C -- REWIND COMMAND
- C
- IF (BUFFER(1:6).EQ.'REWIND') THEN
- REWIND INPUNI
- GO TO 200
- C
- ENDIF
- C
- C -- SET COMMAND
- C
- IF (BUFFER(1:4).EQ.'SET ') THEN
- IF (BUFFER(5:9).EQ.'NAME ') THEN
- I = INDEX(MESSAG,BLANK)
- MESSAG(I:I) = COLON
- I = INDEX(MESSAG,BLANK)+1
- BUFFER = BLANKS
- BUFFER(1:39) = MESSAG(I:I+38)
- DO 320 I = 1, 40
- IF (BUFFER(I:I+1).EQ.BLANKS(1:2)) THEN
- BUFFER(I:I+1) = EOL
- GO TO 330
- C
- ENDIF
- 320 CONTINUE
- 330 NAME(1:40) = BUFFER(1:40)
- NAMLEN = INDEX(NAME,COLON)-1
- IF (NAMLEN.LE.0) THEN
- NAME(1:19) = 'A^N^O^N^Y^M^O^U^S::'
- NAMLEN = INDEX(NAME,COLON)-1
- ENDIF
- NAMFLG = .TRUE.
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1170) TOLC,(NAME(I:I),I=1,NAMLEN),PERIOD
- 1170 FORMAT (A2,' C^H^A^N^G^I^N^G ^N^A^M^E ^T^O ',42A1)
- WRITE (OUTUNI,1140) TOLC
- IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
- GO TO 70
- C
- ENDIF
- C
- C -- SET MESSAGE BUFFER EDITOR
- C
- IF (BUFFER(5:11).EQ.'EDITOR ') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- IF (BUFFER(12:16).EQ.'XEDIT') THEN
- EDITOR = 'XEDIT,SLUGMSG,AS.'
- WRITE (OUTUNI,1180) TOLC
- 1180 FORMAT (A2,' E^D^I^T^O^R ^S^E^T ^T^O X^E^D^I^T.')
- ELSEIF (BUFFER(12:14).EQ.'FSE') THEN
- EDITOR = 'FSE,SLUGMSG,OP=A.'
- WRITE (OUTUNI,1190) TOLC
- 1190 FORMAT (A2,' E^D^I^T^O^R ^S^E^T ^T^O FSE.')
- ELSEIF (BUFFER(12:14).EQ.'TED') THEN
- EDITOR = 'TED,SLUGMSG. '
- WRITE (OUTUNI,1200) TOLC
- 1200 FORMAT (A2,' E^D^I^T^O^R ^S^E^T ^T^O T^E^D.')
- ELSEIF (BUFFER(12:15).EQ.'EDIT') THEN
- EDITOR = 'EDIT,SLUGMSG,AS. '
- WRITE (OUTUNI,1210) TOLC
- 1210 FORMAT (A2,' E^D^I^T^O^R ^S^E^T ^T^O E^D^I^T.')
- ELSE
- WRITE (OUTUNI,1220) TOLC
- 1220 FORMAT (A2,' I^N^V^A^L^I^D ^O^R ^O^B^S^O^L^E^T^E ',
- * '^E^D^I^T^O^R ^S^E^L^E^C^T^E^D.')
- ENDIF
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- SET USER FILE
- C
- IF (BUFFER(5:9).EQ.'USER ') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- CALL PF ('GET',BUFFER(10:16),BUFFER(10:16),'UN',UN(1:UNLEN),
- * 'RC',PFERR)
- IF (PFERR.EQ.0) THEN
- CONFIL(1:FL) = BUFFER(10:16)
- OPEN (UNIT=CONUNI,FILE=CONFIL,STATUS='UNKNOWN',RECL=162)
- CLOSE (UNIT=CONUNI,STATUS='DELETE')
- WRITE (OUTUNI,1230) TOLC,CONFIL
- 1230 FORMAT (A2,' U^S^E^R ^F^I^L^E ^C^H^A^N^G^E^D ^T^O ',A7)
- ELSE
- WRITE (OUTUNI,1240) TOLC
- 1240 FORMAT (A2,' I^N^V^A^L^I^D ^U^S^E^R ^F^I^L^E ',
- * '^S^E^L^E^C^T^E^D.')
- ENDIF
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- SET NOVICE MODE
- C
- IF (BUFFER(5:11).EQ.'NOVICE ') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- IF (BUFFER(12:13).EQ.'ON') NOVICE = .TRUE.
- IF (BUFFER(12:14).EQ.'OFF') NOVICE = .FALSE.
- IF (NOVICE) BUFFER(1:7) = '^O^N. '
- IF (.NOT.NOVICE) BUFFER(1:7) = '^O^F^F.'
- WRITE (OUTUNI,1250) TOLC,(BUFFER(I:I),I=1,7)
- 1250 FORMAT (A2,' N^O^V^I^C^E ^M^O^D^E ^I^S ',7A1)
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- SET TIMER MODE
- C
- IF (BUFFER(5:10).EQ.'TIMER ') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- IF (BUFFER(11:12).EQ.'ON') TIMER = .TRUE.
- IF (BUFFER(11:13).EQ.'OFF') TIMER = .FALSE.
- IF (TIMER) BUFFER(1:7) = '^O^N. '
- IF (.NOT.TIMER) BUFFER(1:7) = '^O^F^F.'
- WRITE (OUTUNI,1260) TOLC,(BUFFER(I:I),I=1,7)
- 1260 FORMAT (A2,' T^I^M^E^R ^M^O^D^E ^I^S ',7A1)
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- SET ECHO MODE
- C
- IF (BUFFER(5:9).EQ.'ECHO ') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- IF (BUFFER(10:11).EQ.'ON') ECHO = .TRUE.
- IF (BUFFER(10:12).EQ.'OFF') ECHO = .FALSE.
- IF (ECHO) BUFFER(1:7) = '^O^N. '
- IF (.NOT.ECHO) BUFFER(1:7) = '^O^F^F.'
- WRITE (OUTUNI,1270) TOLC,(BUFFER(I:I),I=1,7)
- 1270 FORMAT (A2,' E^C^H^O ^M^O^D^E ^I^S ',7A1)
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- SET PROMPT MODE
- C
- IF (BUFFER(5:11).EQ.'PROMPT ') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- IF (BUFFER(12:13).EQ.'ON') PROMPT = .TRUE.
- IF (BUFFER(12:14).EQ.'OFF') PROMPT = .FALSE.
- IF (PROMPT) BUFFER(1:7) = '^O^N. '
- IF (.NOT.PROMPT) BUFFER(1:7) = '^O^F^F.'
- WRITE (OUTUNI,1280) TOLC,(BUFFER(I:I),I=1,7)
- 1280 FORMAT (A2,' P^R^O^M^P^T ^M^O^D^E ^I^S ',7A1)
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- SET RING MODE
- C
- IF (BUFFER(5:9).EQ.'RING ') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- IF (BUFFER(10:11).EQ.'ON') BELL = .TRUE.
- IF (BUFFER(10:12).EQ.'OFF') BELL = .FALSE.
- IF (BELL) BUFFER(1:7) = '^O^N. '
- IF (.NOT.BELL) BUFFER(1:7) = '^O^F^F.'
- WRITE (OUTUNI,1290) TOLC,(BUFFER(I:I),I=1,7)
- 1290 FORMAT (A2,' R^I^N^G ^M^O^D^E ^I^S ',7A1)
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- SET DELAY TIME
- C
- IF (BUFFER(5:10).EQ.'DELAY ') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- I = -1
- OPEN (UNIT=SCRUNI,STATUS='SCRATCH',RECL=162)
- WRITE (SCRUNI,1300) BUFFER(11:14)
- 1300 FORMAT (A4)
- REWIND SCRUNI
- READ (SCRUNI,*,ERR=340) I
- 340 CLOSE (UNIT=SCRUNI,STATUS='DELETE')
- IF (I.GE.0.AND.I.LE.9999) THEN
- DELAY = I
- WRITE (OUTUNI,1310) TOLC,DELAY
- 1310 FORMAT (A2,' D^E^L^A^Y ^T^I^M^E ^S^E^T ^T^O ',I4,'.')
- ELSE
- WRITE (OUTUNI,1320) TOLC
- 1320 FORMAT (A2,
- * ' I^N^V^A^L^I^D ^D^E^L^A^Y ^S^P^E^C^I^F^I^E^D.')
- ENDIF
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- SET WAIT COMMAND
- C
- IF (BUFFER(5:9).EQ.'WAIT ') THEN
- I = INDEX(MESSAG,BLANK)
- MESSAG(I:I) = COLON
- I = INDEX(MESSAG,BLANK)+1
- BUFFER = BLANKS
- BUFFER(1:39) = MESSAG(I:I+38)
- DO 350 I = 1, 40
- IF (BUFFER(I:I+1).EQ.BLANKS(1:2)) THEN
- BUFFER(I:I+1) = EOL
- GO TO 360
- C
- ENDIF
- 350 CONTINUE
- 360 STRING(1:40) = BUFFER(1:40)
- STRLEN = INDEX(STRING,COLON)-1
- IF (NAMLEN.LE.0) THEN
- STRING(1:8) = 'F^R^O^M:'
- STRLEN = INDEX(STRING,COLON)-1
- ENDIF
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1330) TOLC,(STRING(I:I),I=1,STRLEN),PERIOD
- 1330 FORMAT (A2,' W^A^I^T ^S^T^R^I^N^G ^S^E^T ^T^O ',42A1)
- WRITE (OUTUNI,1140) TOLC
- IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
- GO TO 200
- C
- ENDIF
- ENDIF
- C
- C -- DO SCROLL
- C
- IF (BUFFER(1:6).EQ.'SCROLL') THEN
- STAFLG = .TRUE.
- NSTAT = 'S'
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1340) TOLC
- 1340 FORMAT (A2,' E^N^T^E^R^I^N^G ^S^C^R^O^L^L ^M^O^D^E.')
- WRITE (OUTUNI,1140) TOLC
- IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
- C
- C -- CREATE STACK FILE
- C
- OPEN (UNIT=STKUNI,FILE=STKFIL,STATUS='UNKNOWN',FORM=
- * 'UNFORMATTED')
- REWIND STKUNI
- WRITE (STKUNI) NUMLIN,OUTFIL,EDITOR,CONFIL,NOVICE,PROMPT,INPFIL
- * ,ECHO,DELAY,PROFIL,BELL,STRING,TIMER,BRDTIM
- REWIND STKUNI
- CLOSE (UNIT=STKUNI,STATUS='KEEP')
- GO TO 70
- C
- ENDIF
- C
- C -- MONITOR MODE
- C
- IF (BUFFER(1:7).EQ.'MONITOR'.AND.UN(1:UNLEN).EQ.CUN(1:CUNLEN))
- * THEN
- STAFLG = .TRUE.
- NSTAT = 'M'
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1350) TOLC
- 1350 FORMAT (A2,' E^N^T^E^R^I^N^G ^M^O^N^I^T^O^R ^M^O^D^E.')
- WRITE (OUTUNI,1140) TOLC
- IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
- GO TO 70
- C
- ENDIF
- C
- C -- DO DELAY
- C
- IF (BUFFER(1:5).EQ.'DELAY') THEN
- I = DELAY
- PPREQ = O"03201520000600000000".OR.(LOCF(I).AND.MASK18)
- CALL REQPP (PPREQ)
- GO TO 200
- C
- ENDIF
- IF (BUFFER(1:4).EQ.'WAIT') THEN
- WAIT = .TRUE.
- GO TO 200
- C
- ENDIF
- C
- C -- JOIN CONFERENCE: CHANGES USER'S CONFERENCE
- C
- IF (BUFFER(1:5).EQ.'JOIN ') THEN
- BUFFER = BLANKS
- I = INDEX(MESSAG,BLANK)+1
- BUFFER(1:39) = MESSAG(I:I+38)
- DO 370 I = 1, 40
- IF (BUFFER(I:I+1).EQ.BLANKS(1:2)) THEN
- BUFFER(I:I+1) = EOL
- GO TO 380
- C
- ENDIF
- 370 CONTINUE
- 380 NCONFR(1:40) = BUFFER(1:40)
- NCONLN = INDEX(NCONFR,COLON)-1
- IF (NCONLN.LE.0) THEN
- NCONFR(1:9) = 'R^O^O^T::'
- NCONLN = INDEX(NCONFR,COLON)-1
- ENDIF
- SWITCH = .TRUE.
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1360) TOLC,(NCONFR(I:I),I=1,NCONLN),PERIOD
- 1360 FORMAT (A2,' J^O^I^N^I^N^G ^C^O^N^F^E^R^E^N^C^E ',42A1)
- WRITE (OUTUNI,1140) TOLC
- IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
- C
- C -- FLUSH MESSAGE BUFFER AND ADD NOTICE
- C
- MSGLEN = 26
- C
- C -- MAKE SURE MESSAGE EXITS
- C
- INQUIRE (FILE=MSGFIL,OPENED=OK)
- IF (.NOT.OK) OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN',
- * RECL=162)
- C
- MESSAG(1:MSGLEN) = ' ^L^O^G^G^E^D ^O^F^F ^O^F '
- BUFFER(1:7) = 'F^R^O^M'
- C
- WRITE (MSGUNI,1370) (BUFFER(I:I),I=1,7),BLANK,(CNAME(I:I),I=1,
- * CNAMLN),BLANK,LEFTP,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,
- * BLANK,(CJSN(I:I),I=1,4),BLANK,RIGHTP,COLON
- C
- WRITE (MSGUNI,1370) BLANK,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP,
- * BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
- * ,BLANK,RIGHTP,(MESSAG(I:I),I=1,MSGLEN),(CONFER(I:I),I=1,
- * CONLEN),PERIOD
- WRITE (MSGUNI,1370) BLANK
- 1370 FORMAT (160A1)
- GO TO 240
- C
- ENDIF
- C
- C -- SHOW: MEMBERS, CONFERENCES, ALL
- C
- IF (BUFFER(1:5).EQ.'SHOW ') THEN
- C
- C -- RESET FLAGS
- C
- MEMFLG = .FALSE.
- CONFLG = .FALSE.
- ALLFLG = .FALSE.
- C
- IF (BUFFER(6:12).EQ.'MEMBERS') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1380) TOLC
- 1380 FORMAT (A2,' J^S^N U^N N^A^M^E')
- MEMFLG = .TRUE.
- ENDIF
- C
- IF (BUFFER(6:8).EQ.'ALL'.AND.UN.EQ.CUN) THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1390) TOLC
- 1390 FORMAT (A2,' J^S^N U^N S^T^A^T^U^S P^A^S^S^W^R^D ',
- * 'C^O^N^F^E^R^E^N^C^E')
- ALLFLG = .TRUE.
- ENDIF
- C
- IF (BUFFER(6:11).EQ.'CONFER') THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP
- * ,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I)
- * ,I=1,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1400) TOLC
- 1400 FORMAT (A2,' U^S^E^R^S C^O^N^F^E^R^E^N^C^E ^N^A^M^E')
- CONFLG = .TRUE.
- ENDIF
- C
- C -- IF NO OPTION IS SELECTED, BRANCH
- C
- IF (.NOT.(MEMFLG.OR.ALLFLG.OR.CONFLG)) GO TO 450
- C
- C -- DO REQUEST
- C
- I = I+1
- IF (CONFLG) THEN
- OPEN (UNIT=SCRUNI,FILE=SCRFIL,STATUS='UNKNOWN',ACCESS=
- * 'DIRECT',FORM='UNFORMATTED',RECL=5)
- NEXREC = 1
- WRITE (SCRUNI,REC=NEXREC) BLANKS(1:50)
- ENDIF
- C
- 390 CALL PF ('ATTACH',USRFIL(1:FL),USRFIL(1:FL),'UN',CUN(1:CUNLEN),
- * 'PW',CPSWRD,'RC',PFERR,'M','R')
- IF (PFERR.EQ.1) GO TO 390
- C
- C -- OPEN IT AS A DIRECT ACCESS DEVICE
- C
- OPEN (UNIT=USRUNI,FILE=USRFIL,STATUS='OLD',ACCESS='DIRECT',RECL
- * =16,FORM='UNFORMATTED')
- C
- C -- THE FIRST LINE IS THE NUMBER OF ENTRIES
- C
- READ (USRUNI,REC=1) NUMBER
- C
- C -- CYCLE THROUGH THE LIST, EXTRACTING INFO
- C
- DO 420 I = 2, NUMBER
- C
- C -- READ THE UN, FILENAME, PASSWORD, CONFERENCE, AND STATUS
- C
- READ (USRUNI,REC=I) UTIME,UNAME,UJSN,UUN,URCVFL,UPSSWR,
- * UCONFR,USTAT,UFAMLY
- C
- C -- MAKE SURE RECORD ISN'T EMPTY
- C
- IF (UUN(1:1).EQ.BLANK) GO TO 420
- C
- C -- CLEAR COLONS FROM VALUES
- C
- J = INDEX(UUN,COLON)
- UUN(J:10) = BLANKS(J:10)
- J = INDEX(UNAME,COLON)
- UNAME(J:40) = BLANKS(J:40)
- J = INDEX(UCONFR,COLON)
- UCONFR(J:40) = BLANKS(J:40)
- C
- C -- IF ALL, WRITE THE WORKS
- C
- IF (ALLFLG) THEN
- WRITE (OUTUNI,1410) TOLC,UJSN(1:4),UUN(1:7),USTAT,UPSSWR(
- * 1:7),UCONFR(1:39)
- 1410 FORMAT (A2,1X,A4,1X,A7,3X,A1,3X,A7,1X,A39)
- ENDIF
- C
- C -- IF MEMBERS, ONLY SHOW PERSONS ON THE SAME CONFERENCE
- C
- IF (MEMFLG) THEN
- C
- C IF( UCONFR( 1: CONLEN + 1 ) .EQ. BLANK .AND.
- C
- IF (UCONFR(1:CONLEN).EQ.CONFER(1:CONLEN).AND.USTAT.NE.'M'
- * .AND.UFAMLY(1:FAMLEN).EQ.FAMILY(1)(1:FAMLEN)) THEN
- WRITE (OUTUNI,1420) TOLC,UJSN(1:4),UUN(1:7),UNAME(1:40
- * )
- 1420 FORMAT (A2,1X,A4,1X,A7,1X,A40)
- ENDIF
- ENDIF
- C
- C -- SHOW CONFERENCES ( EXCEPT FOR INVISIBLES )
- C
- IF (CONFLG) THEN
- IF (UCONFR(1:1).NE.'-') THEN
- DO 400 K = 1, NEXREC
- READ (SCRUNI,REC=K) SCONFR,NUMCON
- IF (UCONFR(1:39).EQ.SCONFR(1:39)) THEN
- NUMCON = NUMCON+1
- WRITE (SCRUNI,REC=K) UCONFR,NUMCON
- GO TO 410
- C
- ENDIF
- 400 CONTINUE
- NUMCON = 1
- WRITE (SCRUNI,REC=NEXREC) UCONFR,NUMCON
- NEXREC = NEXREC+1
- 410 CONTINUE
- ENDIF
- ENDIF
- 420 CONTINUE
- C
- C -- RETURN THE DIRECTORY
- C
- CLOSE (UNIT=USRUNI,STATUS='DELETE')
- C
- C -- IF CONFLG, PRINT CONFERENCES
- C
- IF (CONFLG) THEN
- NEXREC = NEXREC-1
- DO 430 K = 1, NEXREC
- READ (SCRUNI,REC=K) SCONFR,NUMCOM
- WRITE (OUTUNI,1430) TOLC,NUMCOM,SCONFR(1:39)
- 1430 FORMAT (A2,2X,I3,2X,A39)
- 430 CONTINUE
- ENDIF
- C
- C -- DESTROY SCRFIL
- C
- CLOSE (UNIT=SCRUNI,STATUS='DELETE')
- C
- WRITE (OUTUNI,1140) TOLC
- IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
- GO TO 200
- C
- ENDIF
- C
- C -- BYE COMMAND
- C
- 440 IF (BUFFER(1:3).EQ.'BYE') THEN
- BYEFLG = .TRUE.
- BUFFER(1:4) = 'EXIT'
- ENDIF
- C
- C -- EXIT COMMAND
- C
- IF (BUFFER(1:4).EQ.'EXIT') THEN
- EXTFLG = .TRUE.
- SWITCH = .TRUE.
- C
- C -- FLUSH MESSAGE BUFFER AND ADD NOTICE
- C
- MSGLEN = 26
- C
- C -- MAKE SURE MESSAGE EXITS
- C
- INQUIRE (FILE=MSGFIL,OPENED=OK)
- IF (.NOT.OK) OPEN (UNIT=MSGUNI,FILE=MSGFIL,STATUS='UNKNOWN',
- * RECL=162)
- C
- MESSAG(1:MSGLEN) = ' ^L^O^G^G^E^D ^O^F^F ^O^F '
- BUFFER(1:7) = 'F^R^O^M'
- C
- WRITE (MSGUNI,1370) (BUFFER(I:I),I=1,7),BLANK,(CNAME(I:I),I=1,
- * CNAMLN),BLANK,LEFTP,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,
- * BLANK,(CJSN(I:I),I=1,4),BLANK,RIGHTP,COLON
- C
- WRITE (MSGUNI,1370) BLANK,(NAME(I:I),I=1,NAMLEN),BLANK,LEFTP,
- * BLANK,(UN(I:I),I=1,UNLEN),BLANK,SLASH,BLANK,(JSN(I:I),I=1,4)
- * ,BLANK,RIGHTP,(MESSAG(I:I),I=1,MSGLEN),(CONFER(I:I),I=1,
- * CONLEN),PERIOD
- WRITE (MSGUNI,1370) BLANK
- GO TO 240
- C
- ENDIF
- C
- C -- EDIT MESSAG BUFFER
- C
- IF (BUFFER(1:4).EQ.'EDIT') THEN
- BUFFER(1:160) = BLANKS(1:160)
- BUFFER(1:13) = '!XXXXEDT.'
- BUFFER(2:5) = JSN(1:4)
- REWIND MSGUNI
- CLOSE (UNIT=MSGUNI,STATUS='KEEP')
- OPEN (UNIT=EDTUNI,FILE=EDTFIL,STATUS='UNKNOWN',RECL=162)
- REWIND EDTUNI
- WRITE (EDTUNI,1440) JSN(1:4),EDITOR,JSN(1:4),JSN(1:4),JSN(1:4),
- * JSN(1:4),JSN(1:4),JSN(1:4)
- 1440 FORMAT ('.PROC,',A4,'EDT.',/,'$',A17,/,'$RETURN,',A4,'TMP.',/,
- * '$COPYSBF,SLUGMSG,',A4,'TMP.',/,'$REWIND,',A4,'TMP,SLUGMSG.'
- * ,/,'$COPY,',A4,'TMP,SLUGMSG.',/,'$RETURN,',A4,'TMP,',A4,
- * 'EDT.',/,'$REWIND,SLUGMSG.',/,'$REVERT,NOLIST.')
- REWIND EDTUNI
- CLOSE (UNIT=EDTUNI,STATUS='KEEP')
- PPREQ = O"24143020000300000001"
- CALL REQPP (PPREQ)
- ENDIF
- C
- C -- WRITE STACK FILE FOR NOS PASS THROUGH
- C
- 450 IF (BUFFER(1:1).EQ.'!') THEN
- ICOMMA = INDEX(BUFFER,',')
- IF (INDEX(BUFFER,'BYE').GT.0.OR.INDEX(BUFFER,'HELLO').GT.0)
- * THEN
- IF (ICOMMA.EQ.0) THEN
- BUFFER(1:3) = 'BYE'
- GO TO 440
- C
- ELSE
- MESSAG(ICOMMA:160) = BUFFER(ICOMMA:160)
- BUFFER(2:7) = '$APPSW'
- BUFFER(8:81) = MESSAG(ICOMMA:ICOMMA+72)
- ENDIF
- ENDIF
- BUFFER(1:159) = BUFFER(2:160)
- BUFFER(160:160) = '.'
- IF (.NOT.START) THEN
- OPEN (UNIT=STKUNI,FILE=STKFIL,STATUS='UNKNOWN',FORM=
- * 'UNFORMATTED')
- REWIND STKUNI
- WRITE (STKUNI) NUMLIN,OUTFIL,EDITOR,CONFIL,NOVICE,PROMPT,
- * INPFIL,ECHO,DELAY,PROFIL,BELL,STRING,TIMER,BRDTIM
- REWIND STKUNI
- CLOSE (UNIT=STKUNI,STATUS='KEEP')
- ENDIF
- C
- C PRINT *, BUFFER( 1: 160 )
- C REWIND OUTUNI
- C
- PPREQ = O"24032320000500000000".OR.(LOCF(BUFFER).AND.MASK18)
- CALL REQPP (PPREQ)
- C
- CALL EXIT
- ENDIF
- C
- C -- DO HELP
- C
- IF (BUFFER(1:4).EQ.'HELP') THEN
- CALL PF ('GET',HLPFIL,HLPFIL,'UN',CUN(1:CUNLEN),'RC',PFERR)
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- C
- C -- SEE WHAT THE SUBJECT IS
- C
- IEND = INDEX(BUFFER,BLANKS(1:2))
- IF (IEND.LE.0) IEND = 160
- BUFFER(IEND:IEND) = COLON
- IF (BUFFER(5:5).NE.COLON) THEN
- BUFFER(5:5) = ASTER
- ELSE
- BUFFER(5:9) = ENDHLP
- ENDIF
- IF (BUFFER(5:8).EQ.'*ALL') BUFFER(6:6) = COLON
- LRQST = INDEX(BUFFER,COLON)-1
- C
- C -- SET FLAGS
- C
- HLPFLG = .FALSE.
- FNDHLP = .FALSE.
- C
- OPEN (UNIT=HLPUNI,FILE=HLPFIL,STATUS='UNKNOWN',RECL=162)
- 460 READ (HLPUNI,1450,END=470) MESSAG(1:160)
- 1450 FORMAT (A160)
- IF (MESSAG(1:1).NE.ASTER) THEN
- IF (HLPFLG) WRITE (OUTUNI,1460) TOLC,MESSAG(1:160)
- 1460 FORMAT (A2,A160)
- ELSE
- IF (MESSAG(1:5).EQ.ENDHLP) THEN
- IF (FNDHLP) THEN
- GO TO 470
- C
- ELSE
- HLPFLG = .TRUE.
- ENDIF
- ELSEIF (BUFFER(5:LRQST).EQ.MESSAG(1:LRQST-4)) THEN
- HLPFLG = .TRUE.
- FNDHLP = .TRUE.
- ELSE
- HLPFLG = .FALSE.
- ENDIF
- ENDIF
- GO TO 460
- C
- 470 CLOSE (UNIT=HLPUNI,STATUS='KEEP')
- WRITE (OUTUNI,1140) TOLC
- IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
- GO TO 200
- C
- ENDIF
- C
- C -- INPUT REDIRECTION
- C
- IF (BUFFER(1:1).EQ.LEFTA) THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- C
- C -- SEE IF DEFAULT
- C
- IF (BUFFER(2:2).EQ.COLON.OR.BUFFER(2:2).EQ.BLANK) BUFFER(2:8) =
- * INPNAM
- C
- C -- TEST SPECIFIED FILE
- C
- OPEN (UNIT=SCRUNI,FILE=BUFFER(2:8),STATUS='UNKNOWN',IOSTAT=
- * IOSTAT,RECL=162)
- IF (IOSTAT.EQ.0) THEN
- CLOSE (UNIT=SCRUNI,STATUS='KEEP')
- CLOSE (UNIT=INPUNI,STATUS='KEEP')
- INPFIL(1:FL) = BUFFER(2:8)
- WRITE (OUTUNI,1470) TOLC,INPFIL(1:FL)
- 1470 FORMAT (A2,' I^N^P^U^T ^U^S^I^N^G ',A7)
- OPEN (UNIT=INPUNI,FILE=INPFIL(1:FL),STATUS='UNKNOWN',RECL=
- * 162)
- ELSE
- CLOSE (UNIT=SCRUNI,STATUS='DELETE')
- WRITE (OUTUNI,1480) TOLC,BUFFER(2:8)
- 1480 FORMAT (A2,' I^N^V^A^L^I^D ^F^I^L^E ^N^A^M^E ',A7)
- ENDIF
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- OUTPUT REDIRECTION
- C
- IF (BUFFER(1:1).EQ.RIGHTA) THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- C
- C -- SEE IF DEFAULT
- C
- IF (BUFFER(2:2).EQ.COLON.OR.BUFFER(2:2).EQ.BLANK) BUFFER(2:8) =
- * OUTNAM
- C
- C -- TEST SPECIFIED FILE
- C
- OPEN (UNIT=SCRUNI,FILE=BUFFER(2:8),STATUS='UNKNOWN',IOSTAT=
- * IOSTAT,RECL=162)
- IF (IOSTAT.EQ.0) THEN
- CLOSE (UNIT=SCRUNI,STATUS='KEEP')
- OUTFIL(1:FL) = BUFFER(2:8)
- WRITE (OUTUNI,1490) TOLC,OUTFIL(1:FL)
- 1490 FORMAT (A2,' O^U^T^P^U^T ^U^S^I^N^G ',A7)
- WRITE (OUTUNI,1140) TOLC
- CLOSE (ERRUNI,STATUS='KEEP')
- CLOSE (UNIT=OUTUNI,STATUS='KEEP')
- OPEN (UNIT=OUTUNI,FILE=OUTFIL,STATUS='UNKNOWN',RECL=162)
- OPEN (UNIT=ERRUNI,FILE=OUTNAM,STATUS='UNKNOWN',RECL=162)
- ELSE
- CLOSE (UNIT=SCRUNI,STATUS='DELETE')
- WRITE (OUTUNI,1480) TOLC,BUFFER(2:8)
- WRITE (OUTUNI,1140) TOLC
- ENDIF
- GO TO 200
- C
- ENDIF
- C
- C -- BELL COMMAND
- C
- IF (BUFFER(1:4).EQ.'BELL') THEN
- IF (BUFFER(5:5).EQ.'=') THEN
- IF (BELL) THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,
- * LEFTP,BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,
- * (CJSN(I:I),I=1,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1500) TOLC,BUFFER(6:9)
- 1500 FORMAT (A2,1X,A4,' ^I^S ^R^I^N^G^I^N^G ^Y^O^U.')
- ELSE
- GO TO 200
- C
- ENDIF
- ENDIF
- WRITE (OUTUNI,1510) DING
- 1510 FORMAT (A4)
- WRITE (OUTUNI,1140) TOLC
- GO TO 200
- C
- ENDIF
- C
- C -- COMMENT FILTER
- C
- IF (BUFFER(1:1).EQ.ASTER) GO TO 200
- C
- C -- RING COMMAND
- C
- IF (BUFFER(1:5).EQ.'RING ') THEN
- RING = .TRUE.
- UJSN(1:4) = BUFFER(6:9)
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1520) TOLC,UJSN(1:4)
- 1520 FORMAT (A2,' R^I^N^G^I^N^G ',A4,'.')
- WRITE (OUTUNI,1140) TOLC
- BUFFER(1:1) = DOLLAR
- MESSAG(1:14) = '$XXXXBELL=XXXX'
- MESSAG(2:5) = UJSN(1:4)
- MESSAG(11:14) = JSN(1:4)
- ENDIF
- C
- C -- MSGFLG COMMAND
- C
- IF (BUFFER(1:1).EQ.DOLLAR.AND.(UN(1:UNLEN).EQ.CUN(1:CUNLEN).OR.
- * RING)) THEN
- RING = .FALSE.
- OPEN (UNIT=SNDUNI,FILE=SNDFIL,STATUS='UNKNOWN',RECL=162)
- REWIND SNDUNI
- WRITE (SNDUNI,1530) MESSAG(1:160)
- 1530 FORMAT (A160)
- REWIND SNDUNI
- CLOSE (UNIT=SNDUNI,STATUS='KEEP')
- CLOSE (UNIT=MSGUNI,STATUS='KEEP')
- GO TO 130
- C
- ENDIF
- C
- C -- SEE IF ENTRY IS A USER-DEFINED COMMAND
- C
- CALL PF ('GET',CONFIL,CONFIL,'UN',UN(1:UNLEN),'RC',PFERR)
- C
- C -- IF NO USER FILE, GET THE SYSTEM FILE
- C
- IF (PFERR.NE.0) THEN
- CONFIL = 'SLUGCON'
- CALL PF ('GET',CONFIL,CONFIL,'UN',CUN(1:CUNLEN),'RC',PFERR)
- ENDIF
- C
- C -- ALL IS WELL
- C
- OPEN (UNIT=CONUNI,FILE=CONFIL,STATUS='UNKNOWN',RECL=162)
- 480 READ (CONUNI,1530,END=490) BUFFER(1:160)
- C
- C -- SEE IF SYNTAX IS CORRECT
- C
- IEQ = INDEX(BUFFER(1:160),'=')+1
- ISEMI = INDEX(BUFFER(1:160),';')-1
- ILEN = ISEMI-IEQ+1
- IF (IEQ.EQ.0.OR.ISEMI.EQ.0.OR.IEQ.GT.ISEMI.OR.ILEN.LT.0) GO TO 480
- C
- C -- SEE IF COMMAND MATCHES
- C
- IF (MESSAG(1:IEQ-2).NE.BUFFER(1:IEQ-2)) GO TO 480
- C
- C -- IF IT MATCHES, REBUILD COMMAND LINE
- C
- BUFFER(1:ILEN) = BUFFER(IEQ:ISEMI)
- ILEN = ILEN+1
- BUFFER(ILEN:ILEN) = BLANK
- ILEN = ILEN+1
- BUFFER(ILEN:162) = COLONS(ILEN:162)
- C
- C -- FIND BLEN AND MLEN
- C
- LB = 162-ILEN+1
- LM = 162-IEQ+1
- BLEN = ILEN+MIN(LB,LM)-1
- MLEN = IEQ+MIN(LB,LM)-1
- C
- C -- COPY COMMAND AND ARGUMENTS
- C
- BUFFER(ILEN:BLEN) = MESSAG(IEQ:MLEN)
- MESSAG(1:162) = BUFFER(1:162)
- CLOSE (UNIT=CONUNI,STATUS='DELETE')
- GO TO 210
- C
- 490 CLOSE (UNIT=CONUNI,STATUS='DELETE')
- C
- C -- SUGGEST HELP COMMAND, IF NOVICE
- C
- IF (NOVICE) THEN
- WRITE (OUTUNI,1010) TOLC,(CNAME(I:I),I=1,CNAMLN),BLANK,LEFTP,
- * BLANK,(CUN(I:I),I=1,CUNLEN),BLANK,SLASH,BLANK,(CJSN(I:I),I=1
- * ,4),BLANK,RIGHTP,COLON
- WRITE (OUTUNI,1540) TOLC
- 1540 FORMAT (A2,' T^Y^P^E "^H^E^L^P" ^F^O^R ^A ^L^I^S^T ^O^F ',
- * '^C^O^M^M^A^N^D^S.')
- WRITE (OUTUNI,1140) TOLC
- IF (OUTFIL(1:FL).EQ.OUTNAM) REWIND OUTUNI
- C
- GO TO 200
- C
- C -- IF NOT A NOVICE, ASSUME ITS MESSAGE TEXT.
- C
- ELSE
- BUFFER(1:159) = MESSAG(1:159)
- MESSAG(1:1) = BLANK
- MESSAG(2:160) = BUFFER(1:159)
- GO TO 210
- C
- ENDIF
- END
- IDENT BOGUS
- ENTRY REQPP
- SYSCOM B1
- REQPP BSS 1
- SB1 1
- SB2 X1
- SA2 B2
- SX7 0
- IX7 X2+X7
- SA7 RA.MTR
- NO
- XJ RA.MTR
- NO
- EQ REQPP
- END
- .DATA,SLUGHLP
- *BELL:
- 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.
-
- *BROADCAST:
- 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
- ^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.
-
- *BYE:
- 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 ).
-
- *DELAY:
- 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
- ^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
- ^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'
- ^C^O^M^M^A^N^D.
-
- *EDIT:
- 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
- ^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,
- ^S^E^E ^T^H^E 'S^E^T ^E^D^I^T^O^R' ^C^O^M^M^A^N^D.
-
- *EXIT:
- 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.
-
- *HELP:
- 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
- ^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
- ^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.
- 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'
- ^F^O^R ^N.
-
- *JOIN:
- 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
- ^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.
- 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
- ^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
- ^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"
- ^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,
- ^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.
-
- *REWIND:
- 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.
-
- *RING:
- 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
- ^N ^I^S ^T^H^E JSN.
-
- *SCROLL:
- 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
- ^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
- ^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 ).
- 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'
- ^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
- ( ^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.
-
- *SEND:
- 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
- JSN. I^F ^N ^I^S ^B^L^A^N^K, ^M^E^S^S^A^G^E ^W^I^L^L ^B^E
- ^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.
-
- *SET DELAY:
- 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
- ^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
- ^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
- ^D^E^L^A^Y ^C^O^M^M^A^N^D.
-
- *SET ECHO:
- 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.
- 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
- ^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
- ^I^N^P^U^T ^F^I^L^E ^A^R^E ^N^O^T ^E^C^H^O^E^D.
-
- *SET EDITOR:
- 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
- EDIT, FSE, ^O^R XEDIT. T^H^E ^M^E^S^S^A^G^E ^E^D^I^T^O^R
- ^I^S FSE ^B^Y ^D^E^F^A^U^L^T.
-
- *SET NAME:
- 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
- ^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,
- ^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'.
-
- *SET NOVICE:
- 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
- OFF. W^H^E^N ^N^O^V^I^C^E ^M^O^D^E ^I^S OFF, ^I^T ^I^S ^N^O
- ^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
- ^W^I^T^H ^A ^B^L^A^N^K.
-
- *SET PROMPT:
- 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
- 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
- ^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
- ^P^R^I^N^T^E^D ^O^N ^A^N ^I^N^P^U^T ^R^E^Q^U^E^S^T.
-
- *SET RING:
- 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.
- 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
- ^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
- ^B^Y ^O^T^H^E^R ^U^S^E^R^S.
-
- *SET TIMER:
- 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.
- 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
- ^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
- ^W^A^I^T ^M^O^D^E^S.
-
- *SET USER:
- 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
- ^T^O ^N. T^H^E ^D^E^F^A^U^L^T ^N^A^M^E ^I^S SLUGCON.
- 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
- ^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
- ( ^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
- ^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 ).
-
- *SET WAIT:
- 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
- ^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".
-
- *SHOW CONFERENCES:
- 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
- ^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
- ^W^I^T^H '-' ).
-
- *SHOW MEMBERS:
- 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
- ^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.
-
- *WAIT:
- 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
- ^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
- ^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
- ^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.
-
- *NOS COMMANDS:
- !^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
- ^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
- ^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
- ^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.
-
- *ENTERING COMMANDS AND TEXT:
-
- 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
-
- 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
- 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
- ^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
- ^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.
-
- 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
- ^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
- ^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
- ^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.
-
- *RESERVED CHARACTERS:
-
- R^E^S^E^R^V^E^D C^H^A^R^A^C^T^E^R^S
-
- 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 '!'
- ^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,
- ^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.
-
- *FILE REDIRECTION:
-
- F^I^L^E R^E^D^I^R^E^C^T^I^O^N
-
- 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,
- ^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
- ( >^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
- ^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
- ^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,
- '<^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.
-
- *USER CONFIGURATION FILE:
-
- 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^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
- ^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
- ^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
- ^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
- ^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
- ^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
- ^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
- ^W^I^T^H ^T^H^E ^D^E^F^I^N^I^T^I^O^N.
-
- 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
-
- ^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 "/"
- ^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
- ^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:
-
- *
- * "/" ^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
- * ^C^O^M^M^A^N^D^S
- *
- /^W^H^O=^S^H^O^W ^M^E^M^B^E^R^S;
- /WHO=^S^H^O^W ^M^E^M^B^E^R^S;
- /W=^S^H^O^W ^M^E^M^B^E^R^S;
- /^W=^S^H^O^W ^M^E^M^B^E^R^S;
- *
- /^N^A^M^E=^S^E^T ^N^A^M^E;
- /NAME=^S^E^T ^N^A^M^E;
- /N=^S^E^T ^N^A^M^E;
- /^N=^S^E^T ^N^A^M^E;
- *
- /H=^H^E^L^P;
- /^H=^H^E^L^P;
- *
- /S=^S^E^N^D;
- /^S=^S^E^N^D;
- *
- /B=^B^Y^E;
- /^B=^B^Y^E;
-
- 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,
- ^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
- ^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
- ^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
- ^T^H^E ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ^N^A^M^E.
-
- 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
- ^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
- ^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
- ^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
- ^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
- ^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
- ^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
- ^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
- ^U^S^E^R ^E^N^T^E^R^E^D ^I^T ^D^I^R^E^C^T^L^Y ).
-
- *ADDITIONAL NOTES:
-
- A^D^D^I^T^I^O^N^A^L N^O^T^E^S
-
- 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
- ^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.
-
- 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
- ^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
- ^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
- ^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
- ^L^E^T^T^E^R^S SLUG.
-
- 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
- ^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
- ^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
- ^I^N^D^I^R^E^C^T ^A^C^C^E^S^S ^C^A^T^A^L^O^G.
-
- 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
- ^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
- ^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
- ^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
- ^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
- ^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
- ^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
- ^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.
-
- *USER PROLOGUE FILE:
-
- T^H^E U^S^E^R P^R^O^L^O^G^U^E F^I^L^E
-
- 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
- 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
- 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
- ^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
- ^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
- 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:
-
- SLUGNET,JOEUSER
-
- 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
- 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
- ^T^H^E ^F^O^L^L^O^W^I^N^G:
-
- ^S^E^T ^N^A^M^E J^O^E U^S^E^R
- ^S^E^T ^U^S^E^R JOESCON
-
- 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
- ^H^I^S ^C^O^N^F^I^G^U^R^A^T^I^O^N ^F^I^L^E ^T^O JOESCON.
-
- *EOF:
- 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:
-
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- W^A^I^T
-
- 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
- ^T^H^E ^T^O^P^I^C.
-
- .DATA,SLUGNEW
- 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_
- .DATA,SLUGCON
- *
- * "/" ^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
- * ^C^O^M^M^A^N^D^S
- *
- /^S^C^A^N=^S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S;
- /SCAN=^S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S;
- /SC=^S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S;
- /^S^C=^S^H^O^W ^C^O^N^F^E^R^E^N^C^E^S;
- *
- /^W^H^O=^S^H^O^W ^M^E^M^B^E^R^S;
- /WHO=^S^H^O^W ^M^E^M^B^E^R^S;
- /W=^S^H^O^W ^M^E^M^B^E^R^S;
- /^W=^S^H^O^W ^M^E^M^B^E^R^S;
- *
- /^N^A^M^E=^S^E^T ^N^A^M^E;
- /NAME=^S^E^T ^N^A^M^E;
- /N=^S^E^T ^N^A^M^E;
- /^N=^S^E^T ^N^A^M^E;
- *
- /H=^H^E^L^P;
- /^H=^H^E^L^P;
- *
- /S=^S^E^N^D;
- /^S=^S^E^N^D;
- *
- /B=^B^Y^E;
- /^B=^B^Y^E;
- *
- #EOR
- #EOI
- \End\Of\Shar\
- else
- echo "will not over write ./slugnet.n"
- fi
- chmod 400 ./slugnet.n
- if [ `wc -c ./slugnet.n | awk '{printf $1}'` -ne 75692 ]
- then
- echo `wc -c ./slugnet.n | awk '{print "Got " $1 ", Expected " 75692}'`
- fi
- echo "Finished archive 2 of 6"
- exit
-