*DECK NMI=IO1 IDENT DISFIO TITLE DISFIO - NAMI FILE I/O COMMENT DISFIO - FILE I/O FUNCTIONS *CALL NMI=VER ENTRY RFL= COLECT IF -DEF,COLECT ENTRY SDM= FOR NAMI ENTRY SDM= SDM= EQU 0 COLECT ENDIF ENTRY SSJ= SSJ= EQU 0 SPACE 4 *IF,DEF,COLECT,1 COLECT SET 1 BUILD NAMIFIO FOR COLLECTOR JOB TITLE CODED INPUT/OUTPUT ROUTINES LIST G,F ENTRY GETLINE ENTRY PUTLINE,OFLUSH ENTRY PUTTERM ENTRY STARTIO,FINSHIO ENTRY PUTTRMX,REWDIF ENTRY PUTRTO,PUTRTC ENTRY PUTRTR,PUTRTL COLECT IF DEF,COLECT ENTRY TIGRLST ENTRY CPYATT,CPYGET,CPYRET,CPYFLS,CPYOPN,CPYSAV ENTRY CPYPUR COLECT ENDIF ENTRY RAZERO COLECT IF -DEF,COLECT ENTRY UPD8MFN,UPD8NIN,PRLDNIN,NEWMAST,GNETCCL COLECT ENDIF ** DISFIO * THIS ROUTINE READS / WRITES CODED LINES * PASSING PARAMETERS: * W1 OF COMMON PASSIT = FWA OF AREA TO BE READ/WRITTEN * W2 OF COMMON PASSIT = NUMBER OF WORDS TO READ/WRITE * * RETURNED PARAMETERS (READ ONLY): * W1 = UNCHANGED * W2 = NUMBER OF WORDS READ * W3 = 0, IF READ TERMINATED NORMALLY * -1, EOR ENCOUNTERED ON READ * -2, EOI ENCOUNTERED ON READ * * A NUMBER OF ROUTINES WITH THEIR OWN ENTRY POINTS * ARE USED FOR THE FILE I/O PROCESSING. SEE THE * ENTRY POINT LIST, ABOVE. * EJECT USE /PASSIT/ FWABUF BSS 1 COUNT BSS 1 COMPLT BSS 1 LEVEL BSS 1 IAFLAG BSS 1 USE * COLECT IF DEF,COLECT USE /IOBUFS/ IBUF BSS 1025 OBUFX BSS 65 TBUFX BSS 65 RBUF BSS 65 SBUF BSS 65 XBUF BSS 188 BSS 1000B ZBUF EQU *-1 .ZBUF EQU ZBUF-IBUF USE * USE * COLECT ENDIF COLECT IF -DEF,COLECT USE /IOBUFS/ IBUF BSS 1025 RBUF BSS 65 USE * COLECT ENDIF USE /THEFET/ INFIL RFILEB IBUF,1025,(FET=15D),EPR USE * EJECT NAMIVER DIS 1,VER "VERSN" COLECT IF -DEF,COLECT CC01 MICRO 1,,$PARAM$ CC02 MICRO 1,,$CIN=VIN$ CC03 MICRO 1,,$UNM=UNM$ CC04 MICRO 1,,$PWM=PWM$ CC05 MICRO 1,,$LIN=000$ CC06 MICRO 1,,$UIN=999$ CC07 MICRO 1,,$OIN=000$ CC08 MICRO 1,,$ZZD0FIL=ZZD0VIN$ CC09 MICRO 1,,$ZZD1FIL=ZZD1VIN$ CC10 MICRO 1,,$ZZD2FIL=ZZD2VIN$ CC11 MICRO 1,,$ZZL0FIL=ZZL0VIN$ CC12 MICRO 1,,$ZZD3FIL=ZZD3VIN$ CC13 MICRO 1,,$ZZS0FIL=ZZS0VIN$ CC15 MICRO 1,,$ZZT0FIL=ZZT0VIN$ USE /NETCOM/ NETINVN VFD 60/10CVIN=999, NETINCR VFD 60/0 DFLR EQU * ORDER DEPENDENT VALUES .... DIS 17,*"CC01","CC02","CC03","CC04","CC07","CC08","CC09","C ,C10","CC11","CC12","CC13","CC15". VFD 60/0 DFLR2 EQU * DIS 4,DEFAULT DIS 4, USE * COLECT ENDIF EJECT COLECT IF -DEF,COLECT USE /NETCTRL/ NETCTL EQU * DIS ,*NETCTRL.* NETVIN DIS ,*VIN=001,* DIS 17,*"CC01","CC02","CC03","CC04","CC07","CC08","CC09","C ,C10","CC11","CC12","CC13","CC15". VFD 60/0 DIS 1,MFN MASTER (PROC) FILE NAME MFN VFD 60/0LNAMSTRT DIS 1,UN MASTER FILE AND ROUTED JOB USERNAME UN VFD 60/0LNETOPS DEFAULTS TO NETOPS UN DIS 1,PW MASTER FILE AND ROUTED JOB PASSWORD PW VFD 60/0LNETOPSX DEFAULTS TO NO CHANGE DIS 1,FM MASTER (PROC) FILE FAMILY NAME FM VFD 60/0LSYS76 DIS 1,RN LAST USED PARAMETER RECORD NAME RN VFD 60/0LRESTRT DIS 1,LIN LOWER NIN BOUNDS FOR COLLECT LIN VFD 60/0L000 DEFAULTS TO 000 DIS 1,UIN UPPER NIN BOUNDS FOR COLLECT UIN VFD 60/0L999 DEFAULTS TO 999 DIS 1,MEMFUN MEMORY FILE USERNAME MEMFUN VFD 60/0 DEFAULTS TO CURRENT USERNAME DIS 1,OIN OLD INVOCATION NMBR FROM CC CALL OIN DIS 1,000 DIS 1, MACHID MACHINE ID MACHID VFD 60/0 DIS 1,RS RESTART RS VFD 60/0 APPLICATION NAME MEMFVER DIS 1,VER "VERSN" .NETCTL EQU * NETCTL. EQU .NETCTL-NETCTL BSSZ 77B-NETCTL. DIS 1,ENDNETCTRL USE * COLECT ENDIF EJECT SPACE 4,8 USE /ROUTCOM/ RLFN BSS 1 RCODE BSS 1 USE * SPACE 4,8 USE /COPYCOM/ PFN1 BSS 1 UN1 BSS 1 PFN2 BSS 1 UN2 BSS 1 PFN3 BSS 1 UN3 BSS 1 USE * USE /PFEMSG/ PFERMSG BSS 4 USE * USE // LASTW BSS 0 USE * RFL= EQU LASTW EJECT SPACE 4,8 COLECT IF DEF,COLECT TBL77 EQU * VFD 12/7700B,12/0014D,36/0 VFD 42/0LNAME,18/0 VFD 60/0LMM.DD.YYBB VFD 60/0LHH.MM.SSBB VFD 60/10LNAMI R7 VFD 42/7LCOLLECT,18/3R 1. VFD 30/5L00 ,30/5L VFD 60/10L DIS 4,NAMI DUMP COLLECTION VFD 60/0,60/0 TBL34 EQU * VFD 12/3400B,12/1B,36/0 VFD 36/6LBENRAD,24/5 .TBLS EQU * L.TBLS EQU .TBLS-TBL77 COLECT ENDIF LIST * LIST F SPACE 4,8 ** COMMON DECKS REQUIRED FROM OPL (CATLIST) OPL XTEXT COMSPFM OPL XTEXT COMCMAC OPL XTEXT COMCRDH ** COMMON DECKS REQUIRED FROM OPL (SETLOF) *OPL XTEXT COMCCMD *OPL XTEXT COMCCPM PFN001 VFD 36/0LNETCCL,24/0 PFN002 VFD 42/0LNETCCL2,18/0 PFN003 VFD 42/0LNETCTRL,18/0 LOFADDR VFD 12/0,18/LOFLIST,30/1 LOFLIST VFD 42/0,18/3 LENGTH OF LIST VFD 42/7COUTFIL ,18/OUTFIL VFD 42/7CINFIL ,18/INFIL VFD 60/ NXTLINE BSSZ 1 BATCH MODE POINTER TO NEXT LINE START SAVEFWA BSSZ 1 IA$FLAG BSSZ 1 RAZERO EQU 0 FOR RA+0/RA+77 ACCESS EJECT TITLE GETLINE - GET ONE DATA LINE ** GETLINE * GETLINE EQ *+1S17 ENTRY/EXIT * SETLOF LOFADDR SA1 FWABUF SAVE INCOMING FWA BX6 X1 SA6 SAVEFWA SB3 12 SET WORD COUNT (RETURN TO USER) SX6 B3 SA6 COUNT RJ READAGN SEE IF NEED TO ISSUE READ * READH INFIL,BUFFER,14 SA4 FWABUF FWA BUFR IN X4 SB6 X4 FWA BUFFER TO B6 SB7 14 MAX WORDS TO READ SX2 INFIL FWA OF FET OF READ FILE RJ =XRDH= BX6 X1 STATUS 0=OK, -1=EOF, -2=EOI SA6 RDTAG LWA+1 IN BUFR = EOR SX7 0 RETURN 0 FOR GOOD READ ZR X6,STA5 GOOD READ - NORMAL TERMINATION SX7 1 RETURN 1 FOR END OF RECORD PL X6,STA5 END OF RECORD SX7 3 EOF/EOI - RETURN +3 STA5 SA7 COMPLT EQ GETLINE EXIT... SPACE 4,8 READAGN EQ *+1S17 ENTRY/EXIT... SA1 RDTAG ZR X1,READAGN SA2 INFIL MX0 43 LX0 1 BX6 X0*X2 SA6 A2 CLEAR CODE AND STATUS READ INFIL,R EQ READAGN RDTAG VFD 60/1B TITLE FILE FUNCTIONS ** OFLUSH * OFLUSH EQ *+1S17 ENTRY/EXIT WRITER OUTFIL,R EQ OFLUSH SPACE 4,8 ** REWDIF * REWDIF EQ *+1S17 ENTRY/EXIT REWIND INFIL,R SX7 B0 SA7 NXTLINE EQ REWDIF SPACE 4,8 ** PUTLINE * PUTLINE EQ *+1S17 ENTRY/EXIT SA2 FWABUF STARTING ADDRESS OF PRINTLINE SA3 COUNT NUMBER OF WORDS TO BE WRITTEN WRITEH OUTFIL,X2,X3 EQ PUTLINE SPACE 4,8 ** PUTTERM * PUTTERM EQ *+1S17 ENTRY/EXIT SA2 FWABUF SA3 COUNT WRITEH OUTPUT,X2,X3 RJ PUTLINE EQ PUTTERM SPACE 4,8 ** PUTTRMX * PUTTRMX EQ *+1S17 ENTRY/EXIT WRITER OUTPUT,R EQ PUTTRMX SPACE 4,8 ** PUTRTO * PUTRTO EQ *+1S17 ENTRY/EXIT SA2 RLFN RJ STRIP55 CHNG TRAIL 55B TO 00B BX1 X6 SX2 3 BX6 X1+X2 SA6 ROUTFIL OPEN ROUTFIL,WRITE,R EQ PUTRTO SPACE 4,8 ** PUTRTC * PUTRTC EQ *+1S17 ENTRY/EXIT RECALL ROUTFIL WRITER ROUTFIL,R WRITEF ROUTFIL,R REWIND ROUTFIL,R CLOSE ROUTFIL,REWIND,R EQ PUTRTC SPACE 4,8 ** PUTRTL * PUTRTL EQ *+1S17 ENTRY/EXIT RECALL ROUTFIL SA2 FWABUF SA3 COUNT WRITEH ROUTFIL,X2,X3 EQ PUTRTL SPACE 4,8 ** PUTRTR * PUTRTR EQ *+1S17 ENTRY/EXIT RECALL ROUTFIL WRITER ROUTFIL,R EQ PUTRTR SPACE 4,8 OUTFIL FILEB OBUF,65 OUTPUT FILEB TBUF,65 ROUTFIL FILEB RBUF,65 IF DEF,COLECT,1 CATFILE FILEB TIGRBUF,65,(FET=15D),EPR IF -DEF,COLECT,1 SAVFILE FILEB NETCTL,65,(FET=15D),EPR IF DEF,COLECT,2 CPYFL1 FILEB IBUF,(.ZBUF+1),(FET=15D),EPR CPYFL2 FILEB IBUF,(.ZBUF+1),(FET=15D),EPR OBUF BSS 65 TBUF BSS 65 EJECT COLECT IF -DEF,COLECT ** GNETCCL * GNETCCL EQ *+1S17 ENTRY/EXIT SX7 B0 SA7 PFERMSG RETURN INFIL,R RETURN PREVIOUS MASTER FILE GET INFIL,MFN,UN SA1 INFIL CHECK FOR ERRORS LX1 60-10 MX0 60-8 BX6 -X0*X1 ISOLATE ERROR BITS ZR X6,GNE1 NO ERRORS MESSAGE PFERMSG,0,RECALL MESSAGE GNERMSG,0,RECALL EQ GNETCCL EXIT IN SHAME GNE1 OPEN INFIL,READ,R EQ GNETCCL GNERMSG DIS ,*CANNOT GET/FIND MASTER FILE* COLECT ENDIF SPACE 4,8 ** STARTIO * STARTIO EQ *+1S17 ENTRY/EXIT SX6 B0 SA6 PFERMSG SX7 A6 SB1 1 SA6 A6+B1 SA6 A6+B1 SA6 A6+B1 SA7 INFIL+10D IF -DEF,COLECT,1 SA7 SAVFILE+10D SA1 IAFLAG BX7 X1 SA7 IA$FLAG * 0 = INTERACTIVE USER, 2 = BATCH USER IF -DEF,COLECT,1 OPEN OUTFIL,WRITENR,R OPEN OUTPUT,WRITENR,R EQ STARTIO ** FINSHIO * FINSHIO EQ *+1S17 ENTRY/EXIT CLOSE INFIL,REWIND,R RETURN INFIL,R CLOSE OUTFIL,REWIND,R CLOSE OUTPUT,,R EQ FINSHIO TITLE SURVEY USER CATALOG COLECT IF DEF,COLECT USE /TIGRCOM/ TCSTAT BSS 1 CATLIST STATUS TCLEN BSS 1 COUNT OF WORDS READ TIGRBUF BSS 65 USE ** TIGRLST * WHEREIN WE READ THE USER CATALOG AND RETURN * PF INFORMATION TO THE CALLER. * TIGRLST EQ *+1S17 ENTRY/EXIT SB1 1 SA1 CATFILE MX0 43 CLEAR LAST CODE/STATUS LX0 1 BX7 X1*X0 SA7 A1 SA1 A1+B1 MX0 42 SET UP IN AND OUT POINTERS BX7 -X0*X1 SA7 A1+B1 SA7 A7+B1 CATLIST CATFILE,,UN2 SB1 1 SA1 CATFILE BX7 X1 SA7 TCSTAT SA1 A1+B1 SA2 A1+B1 SA3 A2+B1 X2, X3 = IN AND OUT IX6 X2-X3 SA6 TCLEN EQ TIGRLST COLECT ENDIF TITLE COPY FILES COLECT IF DEF,COLECT CPYATT EQ *+1S17 ENTRY/EXIT ATTACH CPYFL1,PFN1,UN1 RJ CPYST1 OPEN CPYFL1,READ,RECALL EQ CPYATT SPACE 3,6 CPYGET EQ *+1S17 ENTRY/EXIT GET CPYFL1,PFN1,UN1 RJ CPYST1 OPEN CPYFL1,READ,RECALL EQ CPYGET SPACE 3,6 CPYST1 EQ *+1S17 ENTRY/EXIT MX0 42 SA1 PFN1 SA2 CPYFL1 BX6 -X0*X2 FILE NAME BX3 X0*X1 STATUS BX6 X6+X3 SA6 A1 EQ CPYST1 SPACE 3,6 CPYST2 EQ *+1S17 ENTRY/EXIT MX0 42 SA1 PFN2 SA2 CPYFL2 BX6 -X0*X2 FILE NAME BX3 X0*X1 STATUS BX6 X6+X3 SA6 A1 EQ CPYST2 COLECT ENDIF EJECT COLECT IF DEF,COLECT CPYOPN EQ *+1S17 ENTRY/EXIT SX6 B0 SA6 PFERMSG SX7 A6 SB1 1 SA6 A6+B1 SA6 A6+B1 SA6 A6+B1 SA7 CPYFL1+10D SA7 CPYFL2+10D RJ CPYSN2 ATTACH CPYFL2 PURGE CPYFL2 RETURN CPYFL2,RECALL DEFINE CPYFL2 OPEN CPYFL2,WRITE,RECALL RJ CPYST2 EQ CPYOPN SPACE 3,6 CPYRET EQ *+1S17 ENTRY/EXIT CLOSE CPYFL1,REWIND,RECALL RETURN CPYFL1,RECALL EQ CPYRET CPYMSG DIS ,* COPIED FILNAME* SPACE 3,6 CPYSAV EQ *+1S17 ENTRY/EXIT RJ CPYSN2 CLOSE CPYFL2,REWIND,RECALL RJ CPYST2 * RETURN CPYFL2,RECALL EQ CPYSAV SPACE 3 CPYPUR EQ *+1S17 ENTRY/EXIT PURGE CPYFL1,UN1 RJ CPYST1 EQ CPYPUR COLECT ENDIF EJECT COLECT IF DEF,COLECT CPYFLS EQ *+1S17 ENTRY/EXIT * CLEAR BUFFER RJ CPYSN2 RJ CPYTAG CPY1 BSS 0 SA1 CPYFL1+1 MX0 42 BX6 -X0*X1 SA6 CPYFL1+2 SA6 CPYFL1+3 SA6 CPYFL2+3 READ CPYFL1,RECALL RJ CPYST1 SA4 CPYFL1+2 BX6 X4 SA6 CPYFL2+2 SA5 CPYFL1+3 CHK FOR DATA IX3 X4-X5 SA1 CPYFL1 LX1 60-9 GET EOI BIT MX0 59 BX2 -X0*X1 ZR X2,CPY2 NOT EOI ZR X3,CPY1A NO DATA WRITER CPYFL2,RECALL RJ CPYST2 CPY1A EQU * * WRITEF CPYFL2,RECALL * RJ CPYST2 MESSAGE CPYMSG,0,RECALL EQ CPYFLS CPY2 SX2 .ZBUF IX7 X3-X2 NZ X7,CPY3 WRITE CPYFL2,RECALL EQ CPY5 CPY3 WRITER CPYFL2,RECALL CPY5 RJ CPYST2 EQ CPY1 SPACE 4,8 CPYSN2 EQ *+1S17 ENTRY/EXIT SA1 PFN2 MX0 42 SA2 CPYFL2 BX6 X0*X1 BX2 -X0*X2 BX6 X6+X2 SA6 A2 EQ CPYSN2 FILE NAME SET COLECT ENDIF EJECT COLECT IF DEF,COLECT CPYTAG EQ *+1S17 ENTRY/EXIT MX0 42 SA1 PFN1 GET NAME AND SET UP 77 TABLE BX6 X0*X1 SA6 CPYMSG+1 SA6 TBL77+1 SA6 TBL34 DATE TBL77+2 CLOCK TBL77+3 SA2 TBL77+2 SA3 TBL77+3 LX2 6 LX3 6 BX6 X2 BX7 X3 SA6 A2 SA7 A3 SB1 1 SB2 TBL77 SB3 IBUF SB4 L.TBLS CT1 SA1 B2 BX6 X1 SA6 B3 SB2 B2+B1 SB3 B3+B1 SB4 B4-B1 NE B0,B4,CT1 SA1 CPYFL2+1 SET FOR WRITE MX0 42 BX6 -X0*X1 SA6 CPYFL2+3 SX5 L.TBLS IX6 X6+X5 SA6 CPYFL2+2 WRITER CPYFL2,RECALL RJ CPYST2 EQ CPYTAG COLECT ENDIF TITLE UPDATE NETWORK INVOCATION NUMBER COLECT IF -DEF,COLECT ** ADDONE * WHEREIN WE ADD ONE TO THE CONTENTS OF X1. X1 * CONTAINS A DISPLAY CODE NUMBER. THEREFORE, WE * CHECK TO SEE IF THE RESULTING VALUE IS GREATER * THAN A DISPLAY CODE 7. IF SO, CHANGE IT TO A * ZERO AND SET CARRY TO A ONE- WE WORK IN BASE 8. * ADDONE EQ *+1S17 ENTRY/EXIT SX2 77B SX3 1R9+1 SA4 CARRY GET ADD VALUE (0 OR 1) IX1 X1+X4 BX6 X2*X1 IX6 X6-X3 SEE IF DISPLAY CODE 9 ZR X6,AD1MORE SX6 B0 SA6 A4 EQ ADDONE ALL DONE AD1MORE BSS 0 SX6 1 SA6 A4 BX1 -X2*X1 REPLACE WITH DISPLAY CODE 0 SX3 1R0 BX1 X1+X3 EQ ADDONE CARRY BSS 1 SPACE 4,8 ** PRLDNIN * PRELOAD NET INV NUMBER IN FILE NAMES * PRLDNIN EQ *+1S17 ENTRY/EXIT SB1 1 SB2 NETVIN+1 RESET DEFAULT VALUES SB3 DFLR SB4 DFLR2-DFLR MOVNIN SA1 B2 BX6 X1 SA6 B3 SB2 B2+B1 SB3 B3+B1 SB4 B4-B1 NE B0,B4,MOVNIN EQ PRLDNIN SPACE 4,8 ** UPD8MFN * REWRITE THE MASTER FILE (EG., MFN UPDATE) UPD8MFN EQ *+1S17 ENTRY/EXIT GET SAVFILE,PFN003,MEMFUN RJ CRE8MF EQ UPD8MFN CRE8MF EQ *+1S17 ENTRY/EXIT OPEN SAVFILE,ALTER,R REWIND SAVFILE,R SA2 SAVFILE+2 RESET IN PTR FOR WRITE SX3 64 IX6 X2+X3 SA6 A2 WRITER SAVFILE,R CLOSE SAVFILE,REWIND,R SA2 SAVREP CHECK SAVE/REPLACE FLAG ZR X2,C8A SAVE SAVFILE,PFN003,MEMFUN,,P,W EQ C8B C8A REPLACE SAVFILE,PFN003,MEMFUN C8B RETURN SAVFILE,R SX6 B0 SA6 SAVREP CLEAR SAVE/REPLACE FLAG EQ CRE8MF SAVREP DATA 0 FRSTRY DATA 1 COLECT ENDIF EJECT COLECT IF -DEF,COLECT ** UPD8NIN * UPDATE THE FIRST RECORD ON THE SAVFILE CONTROL * RECORD FILE. WE ARE ADDING ONE TO THE NETWORK * INVOCATION NUMBER. * UPD8NIN EQ *+1S17 ENTRY/EXIT MACHID MACHID SA1 PFN003 MX0 30 BX1 X0*X1 SA2 MACHID ENTER MACHID AS PART OF NAME SX3 7777B BX2 X3*X2 LX2 18 BX6 X1+X2 SA6 A1 D8N1 GET SAVFILE,PFN003,MEMFUN SA1 SAVFILE CHECK FOR ERRORS LX1 60-10 MX0 60-8 BX6 -X0*X1 NZ X6,D8N3 FILE NOT THERE OR ERROR EQ D8N5 D8N3 SA6 SAVREP SET SAVE (VS REPLACE) FLAG MESSAGE PFERMSG,0,RECALL RJ CRE8MF EQ D8N1 TRY AGAIN AFTER CREATING SAVFILE D8N5 OPEN SAVFILE,ALTER,R REWIND SAVFILE,R SA1 FRSTRY SEE IF FIRST TIME ZR X1,D8N21 NOT FIRST SX6 B0 YES FIRST - SPECIAL READ/CHECK SA6 A1 FOR NAMI MEMORY FILE VERSION NUMBER SX2 RBUF READ INTO TEMP BUFFER SA3 SAVFILE+1 RESET FIRST, IN, OUT, LIMIT MX0 60-18 BX3 X0*X3 BX7 X3+X2 SA7 A3 SET NEW FIRST BX7 -X0*X7 SA7 SAVFILE+2 SA7 SAVFILE+3 SET NEW IN, OUT SX5 65 IX7 X7+X5 SA4 SAVFILE+4 BX4 X0*X4 BX7 X4+X7 SA7 A4 SET SET LIMIT READ SAVFILE,R REWIND SAVFILE,R SX2 NETCTL RESET FET TO SAVFILE BUFFER SA3 SAVFILE+1 RESET FIRST, IN, OUT, LIMIT MX0 60-18 BX3 X0*X3 BX7 X3+X2 SA7 A3 SET NEW FIRST BX7 -X0*X7 SA7 SAVFILE+2 SA7 SAVFILE+3 SET NEW IN, OUT SX5 65 IX7 X7+X5 SA4 SAVFILE+4 BX4 X0*X4 BX7 X4+X7 SA7 A4 RESET NEW LIMIT SA1 RBUF+MEMFVER-NETCTL SA2 NAMIVER VALIDATE NAMI VERSION BX6 X1-X2 REPLACE MEM FILE IF NOT EQUAL MX0 60-12 LOOK AT 1ST 8 CHAR ONLY BX6 X0*X6 TO ALLOW FOR SUB-VERSIONS ZR X6,D8N21 SX7 B0 SET REPLACE FLAG SA7 SAVREP MESSAGE REPLMF1,0,RECALL MESSAGE REPLMF2,0,RECALL CLOSE SAVFILE,REWIND,R PURGE SAVFILE,MEMFUN RETURN SAVFILE,R SA1 RBUF+NETVIN-NETCTL SAVE NET INVOCATION NUMBER BX6 X1 SA6 NETVIN SA1 NAMIVER SET VERSION NUMBER BX7 X1 SA7 MEMFVER USERNUM UN USERNUM MEMFUN MACHID MACHID RJ CRE8MF EQ D8N1 D8N21 BSS 0 SA1 SAVFILE+1 MX0 42 BX7 -X0*X1 FWA OF BUFFER SA7 SAVFILE+2 IN-POINTER SA7 SAVFILE+3 OUT-POINTER SA2 SAVFILE MX0 43 LX0 1 BX6 X2*X0 SA6 SAVFILE CLEAR CODE AND STATUS READ SAVFILE,R SA2 SAVFILE+2 SA3 SAVFILE+3 IX7 X2-X3 GET COUNT OF WORDS READ SB5 X7 BKSP SAVFILE,R SB1 1 SA1 SAVFILE+B1 SB2 A1+B1 SX6 X1+B5 SA6 B2 THIS IS SAVFILE+2 SB3 X1+B1 GET *** WORD OF BUFFER SA1 B3 LX1 42 MX0 60-18 BX1 -X0*X1 SA5 NETINCR SX6 X5 SA6 CARRY RJ ADDONE LX1 60-6 RJ ADDONE LX1 60-6 RJ ADDONE LX1 12 3 DIGITS RIGHT JUSTIFIED MX0 60-18 3 CHARACTER MASK SA2 B3 START WITH NIN PARAMETER LX2 42 BX2 X0*X2 BX6 X1+X2 LX6 60-42 SA6 A2 SA6 NETINVN RJ PRLDNIN REWRITER SAVFILE,R CLOSE SAVFILE,REWIND,R REPLACE SAVFILE,PFN003,MEMFUN RETURN SAVFILE,R EQ UPD8NIN REPLMF1 DIS ,*VERSION MISMATCH ON MEMORY FILE* REPLMF2 DIS ,*MEMORY FILE REPLACED* COLECT ENDIF TITLE SET NEW MASTER FILE POINTERS COLECT IF -DEF,COLECT ** NEWMAST * SET UP NEW MASTER FILE DIRECTION * NEWMAST EQ *+1S17 ENTRY/EXIT SA1 A1 KEYWORD TO X1 SB1 1 SA2 X1+B1 SA1 X1 RJ STRIP55 SET VALUE BLANKS TO ZEROS SB2 NETCTL SB3 NETCTL.-1 NMS1 SA3 B2 GET CURRENT KEYWORD IX4 X3-X1 ZR X4,NMS7 FOUND A MATCH SB2 B2+B1 SB3 B3-B1 NE B0,B3,NMS1 EQ NEWMAST EXHAUSTED ALL POSSIBILITIES NMS7 BSS 0 SA6 B2+B1 STORE NEW VALUE EQ NEWMAST COLECT ENDIF SPACE 4,8 STRIP55 EQ *+1S17 ENTRY/EXIT MX0 60-6 VALUE IN X2 SX6 55B SB1 1 SB4 10 S55A LX2 6 BX3 -X0*X2 IX3 X3-X6 SEE IF BLANK NZ X3,S55B BX2 X0*X2 SET TO 0 IF BLANK S55B SB4 B4-B1 NE B4,B0,S55A BX6 X2 MOVE TO X6 WHEN DONE EQ STRIP55 ENTRY STRIPSP STRIPSP EQ *+1S17 ENTRY/EXIT SA2 X1 RJ STRIP55 SA6 X1 EQ STRIPSP END IDENT REMIO TITLE REMOTE TERMINAL I/O COMMENT REMOTE TERMINAL I/O SPACE 4,8 USE /TERMCOM/ COUNT BSS 1 IBUF BSS 65 USE * EJECT ** TERMRD * READ INPUT LINES FROM THE USER TERMINAL. * THIS ROUTINE IS USED IN NAMI TEST MODE. * TEST MODE IS ENTERED BY SPECIFYING TEST AS * A PARAMETER ON THE NAMI CALL STATEMENT ANDD * MAY BE EXECUTED FROM AN INTERACTIVE TERMINAL. * ENTRY TERMRD TERMRD EQ *+1S17 ENTRY/EXIT OPEN INPUT,READ,R SB1 1 SA2 INPUT SA1 A2+B1 X1 = FWA BUFFER MX0 42 BX6 -X0*X1 SA6 A1+B1 SET IN POINTER SA6 A6+B1 SET OUT POINTER SB4 X6 SAVE FWA OF BUFFER MX0 43 LX0 1 BX6 X2*X0 SA6 A2 SB5 64 CLEAR OUT INPUT BUFFER SA2 SPACES TO SPACES BX7 X2 CLRB SB5 B5-B1 SA7 B4+B5 NE B5,B0,CLRB READ INPUT,R SA2 INPUT+2 SA3 INPUT+3 IX7 X2-X3 SA7 COUNT CLOSE INPUT,,R EQ TERMRD INPUT FILEB IBUF,65 SPACES DATA 10H END *CWEOR,0