+-+-+-+ Beginning of part 10 +-+-+-+ X JCSVAX1 - Jersey City State College VAX 8600 (admin cluster) $ GOSUB UNPACK_FILE $ FILE_IS = "FINMAI11.B2S" $ CHECKSUM_IS = 1902317977 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X2!`009`009PROGRAM`009`009: FINMAI.BAS X5!`009`009VERSION`009`009: V1.1 X6!`009`009EDIT`009`009: 02 X7!`009`009EDIT DATE`009: 19-Mar-90 X10`009EXTEND X20`009! & X`009& X`009& X`009!`009M O D I F I C A T I O N H I S T O R Y & X`009& X`009& X`009! VER-ED`009EDIT DATE`009Who`009REASON & X`009! 1.0-00`00906-Aug-89`009TMK`009Initial coding for test & X`009! 1.1-01`00910-Sep-89`009TMK`009Add displays, nickname support & X`009! 1.1-02`00919-Mar-90`009TMK`009Handle deleted nicknames & X`009& X X30`009! & X`009& X`009& X`009!`009P R O G R A M D E S C R I P T I O N & X`009& X`009& X`009! This program reads the DECmail-11 names file and constructs & X`009! an ISAM file for use by RSTS/E Finger. No checking is done on & X`009! the names file, as it is assumed that it was verified by the & X`009! DECmail NAMES.TSK program first. & X`009& X X1000`009PRINT "FINMAI V1.1-02 of 19-Mar-1990" & X`009\ PRINT & X`009\ NAMEFN%=1% & X`009\ FINGFN%=2% & X`009\ NUMNAM%=0% & X`009\ NUMALI%=0% & X`009\ ON ERROR GOTO 32000 & X`009\ MAP (INDEXF) STRING PPN$=2%, USERNAME$=12%, PERSNAME$=31%, & X`009 FORWARD$=64%, ALIAS$=1%, FILLER$=18% & X`009\ KILL "FINGER$:FINGER.DAT" & X`009! Initialize. Delete old Finger file if any. & X X1010`009OPEN "MAIL$:NAMES.DAT" FOR INPUT AS FILE NAMEFN% & X`009\ OPEN "FINGER$:FINGER.DAT" AS FILE FINGFN%, & X`009 ORGANIZATION INDEXED, & X`009 RECORDSIZE 128%, & X`009 MAP INDEXF, & X`009 PRIMARY KEY PPN$, & X`009 ALTERNATE KEY USERNAME$ & X`009\ PRINT " Processing MAIL$:NAMES.DAT..." X`009! Open our files. & X X1020`009INPUT LINE #NAMEFN%, MAIL$ & X`009\ MAIL$=LEFT(MAIL$,LEN(MAIL$)-1%) & X`009\ GOTO 1020 IF LEFT(MAIL$,1%)="!" & X`009\ J%=INSTR(1%,MAIL$,"[") & X`009\ GOTO 1020 IF J% <> 1% & X`009\ J2%=INSTR(J%+1%,MAIL$,",") & X`009\ J3%=INSTR(J2%+1%,MAIL$,"]") & X`009\ J4%=INSTR(J3%+1%,MAIL$,",") & X`009\ J5%=INSTR(J4%+1%,MAIL$,",") & X`009\ J6%=INSTR(J5%+1%,MAIL$,"!") & X`009\ J6%=LEN(MAIL$) IF J6%=0% & X`009\ U.PROJ%=VAL(MID(MAIL$,J%+1%,J2%-J%-1%)) & X`009\ U.PROG%=VAL(MID(MAIL$,J2%+1%,J3%-J2%-1%)) & X`009\ P.NAME$=CVT$$(MID(MAIL$,J4%+1%,J5%-J4%-1%),136%) & X`009\ U.NAME$=CVT$$(MID(MAIL$,J5%+1%,J6%-J5%-1%),38%) & X`009\ PPN$=CVT%$(SWAP%(U.PROJ%)+U.PROG%) & X`009\ USERNAME$=U.NAME$ & X`009\ PERSNAME$=P.NAME$ & X`009\ FORWARD$="" & X`009\ ALIAS$="N" & X`009\ NUMNAM%=NUMNAM%+1% & X`009\ PUT #FINGFN% X`009\ GOTO 1020 & X`009! Read a line from the mail NAMES file. Break it apart and build & X`009! the lines the way we want them. Write them into the ISAM file. & X`009! Repeat until EOF. & X X1030`009CLOSE #NAMEFN% & X`009\ OPEN "MAIL$:MAIL.SYS" FOR INPUT AS FILE #NAMEFN% & X`009\ PRINT " Processing MAIL$:MAIL.SYS..." & X`009\ FIELD #NAMEFN%, 512% AS NAMBUF$ & X`009\ GET #NAMEFN%, RECORD 1% & X`009\ I%=ASCII(MID(NAMBUF$,39%,1%)) & X`009! Close the username file, open the nickname file. Set initial index & X`009! pointer. & X X1040`009GET #NAMEFN%, RECORD I% & X`009\ M%=I% & X`009\ NICREC$=NAMBUF$+"" & X`009\ GOTO 1090 IF MID(NICREC$,17%,6%)<>"NICKNA" & X`009\ I%=CVT$%(MID(NICREC$,2%,2%)) & X`009\ FOR J%=33% TO 501% STEP 12% & X`009\ NICK$=MID(NICREC$,J%,12%) & X`009\ GOTO 1080 IF NICK$=" " ! V1.1-02 - handle deletions & X X1050`009GET #FINGFN%, KEY #1% EQ NICK$ & X`009! If we are here, this nickname matches an existing username, so it & X`009! must be a forwarding address. & X X1060`009K%=(J%-33%)/12% X`009! Compute slot number. & X`009\ L%=(K%/8%) & X`009\ K%=(K%-L%*8%)*64% & X`009\ L%=L%+M%+1% & X`009\ K%=K%+1% & X`009! L%=block number, K%=offset for matching forwarding address & X`009\ GET #NAMEFN%, RECORD L% & X`009\ FORWARD$=MID(NAMBUF$,K%,64%) & X`009\ UPDATE #FINGFN% & X`009\ GOTO 1080 & X X1070`009PPN$=CVT%$(NUMALI%) & X`009\ USERNAME$=NICK$ & X`009\ K%=(J%-33%)/12% X`009! Compute slot number. & X`009\ L%=(K%/8%) & X`009\ K%=(K%-L%*8%)*64% & X`009\ L%=L%+M%+1% & X`009\ K%=K%+1% & X`009! L%=block number, K%=offset for matching forwarding address & X`009\ GET #NAMEFN%, RECORD L% & X`009\ PERSNAME$=MID(NAMBUF$,K%,64%) & X`009\ ALIAS$="Y" X`009\ PERSNAME$="System distribution list "+USERNAME$ IF & X`009 MID(NAMBUF$,K%,1%)="@" & X`009\ ALIAS$="S" IF MID(NAMBUF$,K%,1%)="@" & X`009\ FORWARD$="" & X`009\ NUMALI%=NUMALI%+1% & X`009\ PUT #FINGFN% & X`009! If we got here this is a username we don't know about. Set the flag & X`009! (PPN$=0/0) to indicate special handling required and write it out. & X X1080`009NEXT J% & X`009\ GOTO 1040 IF I%<>0% & X X1090`009CLOSE #NAMEFN% & X`009! Close the file. & X X2000`009\ CLOSE #FINGFN% & X`009\ PRINT & X`009\ PRINT "Total usernames entered = ";NUM1$(NUMNAM%) & X`009\ PRINT "Total unique aliases entered = ";NUM1$(NUMALI%) & X`009\ GOTO 32767 & X X32000`009RESUME 1010 IF ERL=1000 & X`009\ RESUME 1030 IF ERL=1020 & X`009\ RESUME 2000 IF ERL=1030 & X`009\ RESUME 1070 IF ERL=1050 & X`009\ PRINT & X`009\ PRINT "?Unexpected error ";NUM1$(ERR);" at line ";NUM1$(ERL) & X`009\ RESUME 32767 & X`009! A trivial error trap. & X X32767`009END $ GOSUB UNPACK_FILE $ FILE_IS = "FINMAI11.CMD" $ CHECKSUM_IS = 1751605993 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY XFINGER$:FINMAI/FP=FINGER$:FINMAI/MP XUNITS = 13 XASG = SY:5:6:7:8:9:10:11:12 XRESLIB = LB:[1,1]RMSRES/RO X// $ GOSUB UNPACK_FILE $ FILE_IS = "FINMAI11.COM" $ CHECKSUM_IS = 270341118 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X$! Command file to rebuild FINMAI. BP2 V2 required X$SWITCH DCL X$SET NOON X$COPY $BP2IC2.TSK TEMP$:/noreplace/clustersize=64 X$RUN TEMP$:BP2IC2 XSCALE 0 XOLD FINGER$:FINMAI.B2S XCOMPILE FINMAI.OBJ/OBJ/CHA/LIN/NODEB/WOR/NOCRO/NOLIS/FLAG:NODEC X$SW DCL X$TKB @FINGER$:FINMAI X$DELETE/NOLOG FINMAI.OBJ $ GOSUB UNPACK_FILE $ FILE_IS = "FINMAI11.ODL" $ CHECKSUM_IS = 1548362267 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X`009.ROOT BASIC2-RMSROT-USER,RMSALL XUSER:`009.FCTR SY:FINMAI-LIBR XLIBR:`009.FCTR LB:BP2OTS/LB X@LB:BP2IC4 X@LB:RMSRLX X`009.END $ GOSUB UNPACK_FILE $ FILE_IS = "FINMON11.MAC" $ CHECKSUM_IS = 39216035 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X`009.include`009/SY:[1,2]COMMON.MAC/ X`009.psect`009monitr Xname::`009.name X`009return X`009.end $ GOSUB UNPACK_FILE $ FILE_IS = "README11.V11" $ CHECKSUM_IS = 293432740 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY XRSTS/E Finger V1.1-08 X XRSTS/E V9.6 or later required. The supplied executables were linked with Xmemory-resident RMS libraries and will need to be re-linked if you wish to Xuse task-resident RMS. As re-linking the program requires Basic-Plus 2, no Xobject modules are provided. The supplied executables were compiled with XBP2 V2.6 on a RSTS/E V9.7 system. No floating point unit is required. X XMajor changes: X XIn V1.0: X Xo New program. X XIn V1.1: X Xo Report mail forwarding and aliases (from MAIL.SYS). Xo Correct problem of read-only files being opened in exclusive mode, X preventing simultaneous copies from working. X XMinor changes: X XIn V1.1: X Xo Display LAT dialups a little differently. Xo Fix problems with terminal types of 43 and up not being reported cor- X rectly (they were off by one). Xo Fix problem where logged-in users might not be reported if they log- X ged in near midnight. Xo Build with EIS version of compiler so sites without floating-point X units can used the pre-built version. Xo Cluster RMSRES with CSPLIB to reduce task size, both on disk and in X memory. Xo Report logged-out jobs as username "" rather than NONAME. X XTerry Kennedy terry@spcvxa.bitnet XOperations Manager, Academic Computing (201) 435-0252 XSaint Peter's College X2641 Kennedy Blvd. XJersey City, NJ 07306 X X X Name .Typ Size Prot Description XABSTRA.TXT 5 < 60> Brief description of the Finger package XFINBLD.COM 1 < 60> Command file to rebuild both Finger programs XFINDEF.COM 1 < 60> Command file to define Finger to DECnet/E XFINGER.B2S 108 < 60> BP2 source for main Finger program XFINGER.CMD 1 < 60> TKB command file for FINGER.TSK XFINGER.CNF 4 < 40> Finger configuration file XFINGER.COM 1 < 60> Command file to rebuild FINGER.TSK XFINGER.DOC 28 < 60> Finger documentation XFINGER.HLP 19 < 40> Help file for Finger (over DECnet) XFINGER.MAP 42 < 60> Load map for pre-built FINGER.TSK XFINGER.MSG 1 < 40> Message-of-the-day file XFINGER.ODL 1 < 60> TKB ODL file for FINGER.TSK XFINGER.TRM 17 < 40> Terminal information file XFINGER.TSK 62C <232> Executable Finger program XFINHLP.HLP 16 < 40> Help file for Finger (locally) XFINMAI.B2S 9 < 60> BP2 source for username file utility XFINMAI.CMD 1 < 60> TKB command file for FINMAI.TSK XFINMAI.COM 1 < 60> Command file to rebuild FINMAI.TSK XFINMAI.ODL 1 < 60> TKB ODL file for FINMAI.TSK XFINMAI.TSK 45C <124> Executable username file utility XFINMON.MAC 1 < 60> Assembler code for .NAME directive XREADME.V11 5 < 60> Latest changes and update information X $ GOSUB UNPACK_FILE $ EXIT -+-+-+-+-+ End of part 10 +-+-+-+-+-