cdc:nos2.source:opl871:tfsp
Table of Contents
TFSP
Table Of Contents
- [00010] TFSP - TAPE FILE SUPERVISOR PROCESSOR.
- [00014] TAPE FILE SUPERVISOR PROCESSOR.
- [01722] SYSTEM EQUIVALENCES AND MACROS FOR MACROS.
- [01739] SETREG - SET REGISTER WITH VALUE OR DEFAULT.
- [01758] SETVAL - SET VALUE OR ITS DEFAULT.
- [01778] MACROS FOR TABLE GENERATION.
- [01780] BITMIC - GENERATE SPECIAL CHARACTER BIT STRING MICRO.
- [01825] CATBASE - INITIALIZE TABLE FOR *CATBIT* MACRO.
- [01845] CATBIT - GENERATE CATALOG ENTRY.
- [01906] CATEND - END TABLE FOR CATBIT MACRO.
- [01921] DCTAB - GENERATE DIRECTIVE CONTROL TABLE.
- [02017] DCTABL - GENERATE DIRECTIVE LEVEL CONTROL TABLE.
- [02050] DCTABO - GENERATE DIRECTIVE CONTROL TABLE OUTPUT BLOCK.
- [02124] DOTAB - GENERATE DIRECTIVE OPTION TABLE.
- [02167] DTAB - GENERATE DIRECTIVE TABLE ENTRY.
- [02193] INDEX - GENERATE INDEXED TABLE ENTRY.
- [02218] INDTAB - DEFINE START OF INDEXED TABLE.
- [02239] KEND - END K-DISPLAY.
- [02257] KLINE - GENERATE K-DISPLAY LINE.
- [02299] KNEXT - GENERATE POINTER TO REST OF K-DISPLAY.
- [02328] KSTART - START K-DISPLAY BUFFER.
- [02359] LISTER - GENERATE OUTPUT/SOURCE LISTING ENTRY.
- [02432] REWORD - RESET VALUE IN PREVIOUSLY DEFINED WORD.
- [02453] MACROS FOR EXECUTABLE CODE.
- [02455] ABTMSG - ABORT WITH ERROR MESSAGE
- [02485] CALLTFM - CALL *TFM*.
- [02511] CHKFIL - CHECK IF FILE IS READY.
- [02531] CLEAR - CLEAR BUFFER.
- [02561] CLINES - COUNT LINES IN BUFFER.
- [02588] CWORDS - COUNT WORDS IN BUFFER.
- [02615] DELVSN - DELETE VSN ENTRIES.
- [02639] DISLIS - DISPLAY LIST OF ENTRIES.
- [02679] GFILE - GET FILE CATALOG VIA FILE IDENTIFIER.
- [02720] GFILEV - GET FILE CATALOG VIA VSN.
- [02764] GRENTRY - GET RECORD ENTRY.
- [02788] ISSMSG - ISSUE MESSAGE TO OUTPUT.
- [02817] LISTAB - LIST ENTRIES FROM TABLE.
- [02853] LISTVSN - LIST VSN ENTRY.
- [02884] LJUST - LEFT JUSTIFY AND MASK FIELD IN X-REGISTER.
- [02925] MOVEBIT - MOVE BIT STRING.
- [02966] NEWPAGE - GENERATE NEW PAGE HEADER FOR OUTPUT.
- [03005] RCREC - READ CATALOG RECORD.
- [03034] READFET - READ WORDS FROM FET INTO WORKING BUFFER.
- [03061] RELVSN - RELEASE FILE VIA VSN.
- [03092] REPVSN - REPLACE/ADD VSNS.
- [03115] RESETP - RESET *IN* AND *OUT* POINTERS OF FILE.
- [03141] RJM - RETURN JUMP TO ADDRESS IN REGISTERS.
- [03171] RJUST - RIGHT JUSTIFY AND MASK FIELD IN X-REGISTER.
- [03220] SAFET - SET AUDIT FET.
- [03261] SETSORC - SET SOURCE VALUES IN TABLE.
- [03299] SRCHTAB - SEARCH TABLE FOR ENTRY.
- [03345] USERAUD - PROCESS USER AUDIT LIST.
- [03389] WCREC - WRITE CATALOG RECORD.
- [03418] WLINES - WRITE LINES TO OUTPUT FILE.
- [03443] WRITFET - WRITE WORDS FROM WORKING BUFFER INTO FET.
- [03470] WWORDS - WRITE WORDS TO OUTPUT FILE.
- [03494] PROGRAM EQUIVALENCES.
- [03657] DATA AREA.
- [03796] FCAT - FILE CATALOG IMAGE.
- [03855] ACAT - ALTERNATE USER CATALOG IMAGE.
- [03867] VCAT - VSN CATALOG IMAGE.
- [03896] DFIC - DEFAULT FILE CATALOG.
- [03952] DAUC - DEFAULT ALTERNATE USER CATALOG.
- [03965] DVSC - DEFAULT VSN CATALOG.
- [04029] TFAD - TABLE OF FAMILY LEVEL DIRECTIVES.
- [04073] TVSD - TABLE OF VSN LEVEL DIRECTIVES.
- [04101] TUSD - TABLE OF USER LEVEL DIRECTIVES.
- [04131] TFLD - TABLE OF FILE LEVEL DIRECTIVES.
- [04189] TAUD - TABLE OF ALTERNATE USER LEVEL DIRECTIVES.
- [04211] TDTA - TABLE OF DIRECTIVE TABLE ADDRESSES.
- [04713] MAIN PROGRAM.
- [04715] TFS - MAIN ROUTINE FOR *TFSP* AND *TFSPE*.
- [04838] ABT - ABORT *TFSP*.
- [04874] END - TERMINATE *TFSP*.
- [04918] RPV - REPRIEVE HANDLER.
- [05058] SUBROUTINES FOR MACROS.
- [05060] CFR - CHECK IF FILE IS READY.
- [05080] CTF - CALL *TFM*.
- [05175] CWL - COUNT WORDS/LINES IN BUFFER.
- [05210] DVS - DELETE VSN ENTRY.
- [05249] GFI - GET FILE CATALOG VIA FILE IDENTIFIER.
- [05344] GFV - GET FILE CATALOG VIA VSN.
- [05524] GRE - GET RECORD ENTRY.
- [05574] LVS - LIST VSN ENTRY.
- [05627] MBS - MOVE BIT STRING.
- [05663] MTO - ISSUE MESSAGE TO OUTPUT.
- [05709] NPG - NEW PAGE HEADER GENERATOR.
- [05770] RCR - READ CATALOG RECORD.
- [05804] RDF - READ WORDS FROM FET INTO WORKING BUFFER.
- [05849] RLV - RELEASE BY VSN.
- [05887] RVS - REPLACE/ADD VSNS.
- [05916] SAF - SET AUDIT FET.
- [05963] SBS - SET BIT STRING.
- [06009] SST - SET SOURCE VALUES IN TABLE.
- [06077] STB - SEARCH TABLE.
- [06116] TLD - TABLE LIST TO DISPLAY PROCESSOR.
- [06210] TSL - TABLE ENTRIES TO SINGLE ENTRY LIST PROCESSOR.
- [06274] USA - USER AUDIT LIST PROCESSOR.
- [06369] WCR - WRITE CATALOG RECORD.
- [06404] WTF - WRITE WORDS FROM WORKING BUFFER IN FET.
- [06450] WTL - WRITE LINES TO OUTPUT.
- [06502] MISCELLANEOUS SUBROUTINES.
- [06504] ACI - ASSEMBLE CHARACTERS INTERFACE.
- [06568] ARV - ADD/REVISE VSN ENTRY.
- [06634] ASC - ASSEMBLE CHARACTERS.
- [06751] AUA - ALTERNATE USER AUDIT LIST PROCESSOR.
- [06787] AUL - ALTERNATE USER LEVEL PROCESSOR.
- [06828] AUS - ALTERNATE USER SOURCE LIST PROCESSOR.
- [06865] CAB - CHECK IF ALTERNATE USER ENTRY IN BUFFER.
- [06888] CFC - CHECK FOR FILE NAME CONFLICT.
- [06923] CFI - CHECK FILE IDENTIFIER IN OUTPUT.
- [06986] CFM - CHANGE FAMILY.
- [07012] CJD - CHECK JULIAN DATE.
- [07055] CRD - CHECK RELEASE DATE.
- [07114] CUI - CLEAR UTILITY INTERLOCK.
- [07131] CVB - CHECK IF VSN ENTRY IN BUFFER.
- [07154] CXS - CONVERT CATALOG IMAGE TO SOURCE.
- [07300] DDC - DECIMAL DIGIT CONVERSION.
- [07340] DIP - DIRECTIVE INPUT PROCESSOR.
- [07682] DTO - ISSUE DIRECTIVE TO OUTPUT FILE.
- [07735] DXD - DISPLAY TO PACKED DATE CONVERSION.
- [07811] DXT - DISPLAY TO PACKED TIME CONVERSION.
- [07853] FAL - FAMILY LEVEL PROCESSOR.
- [07878] FEL - FORCE END OF LINE.
- [07909] FEV - FIND EXTERNAL VSN.
- [07933] FIA - FILE AUDIT LIST PROCESSOR.
- [08093] FIL - FILE LEVEL PROCESSOR.
- [08156] FIS - FILE SOURCE LISTING PROCESSOR.
- [08333] FOB - FLUSH OUTPUT BUFFER.
- [08352] GAE - GET ALTERNATE USER ENTRY.
- [08388] GUV - GET USER INFORMATION FOR VSN.
- [08426] GVE - GET VSN ENTRY.
- [08459] IFP - INPUT FILE PROCESSOR.
- [08487] IRL - IGNORE REST OF INPUT LINE.
- [08506] ISB - INPUT STRING BUFFER.
- [08580] IUN - INTERLOCK USER NAME.
- [08610] KAV - SET ASSIGNED VSNS IN K-DISPLAY.
- [08645] KFI - SET FILE IDENTIFIERS IN K-DISPLAY.
- [08733] KFM - SET FAMILY LEVEL K-DISPLAY.
- [08828] KIP - KEYBOARD INPUT PROCESSOR.
- [08858] KST - SET VSN STATUS IN K-DISPLAY.
- [08888] KVQ - SET FIRST VSN AND SEQUENCE NUMBER IN K-DISPLAY.
- [08920] MSV - MOVE SYSTEM TABLE VALUES TO/FROM WORKING BUFFER.
- [08940] PFC - PACK DIRECT CELLS INTO FILE CATALOG.
- [08969] PMF - PROCESS MACHINE READABLE LIST FOR FILE.
- [09007] PSF - PROCESS SOURCE LISTING FOR FILE.
- [09056] PVS - PAD VSN WITH CHARACTER *0*.
- [09100] RAB - REPLACE ALTERNATE USER ENTRY IN BUFFER.
- [09125] RAE - REPLACE ALTERNATE USER ENTRY IN CATALOG FILE.
- [09152] RAF - RESERVE/AMEND FILE CATALOG ENTRY.
- [09268] RNS - RESET NEEDED STORAGE.
- [09298] RCW - READ CMR WORD.
- [09326] RVB - REPLACE VSN ENTRY IN BUFFER.
- [09351] RVE - REPLACE VSN ENTRY IN CATALOG FILE.
- [09373] SCI - SCAN FOR CODE IDENTIFIER.
- [09458] SCS - SPECIAL CHARACTER SOURCE ENTRY PROCESSOR.
- [09551] SMA - ISSUE *SDAU* ACCOUNT FILE MESSAGE.
- [09616] SMB - ISSUE *SDCR* CONDITIONAL RELEASE ACCOUNT FILE MESSAGE.
- [09689] SMC - ISSUE *SDAD* OR *SDRV* ACCOUNT FILE MESSAGE.
- [09743] SMD - ISSUE *SDRM* ACCOUNT FILE MESSAGE.
- [09795] SMF - ISSUE *SDAM* ACCOUNT FILE MESSAGE.
- [09846] SNS - SAVE NEEDED STORAGE.
- [09876] SUI - SET UTILITY INTERLOCK.
- [09900] TOG - TOGGLE FILE LEVEL LEFT SCREEN DISPLAY.
- [09934] UDT - UNPACK DATE/TIME.
- [09983] UFA - UNPACK FILE AUDIT.
- [10037] UFC - UNPACK FILE CATALOG INTO DIRECT CELLS.
- [10085] USL - USER LEVEL PROCESSOR.
- [10121] VSA - VSN AUDIT LIST PROCESSOR.
- [10232] VSL - VSN LEVEL PROCESSOR.
- [10272] VSM - VSN MACHINE READABLE LIST PROCESSOR.
- [10424] VSS - VSN SOURCE LISTING PROCESSOR.
- [10489] UNIVERSAL DIRECTIVE PROCESSORS.
- [10501] DIS - PROCESS *DISPLAY* DIRECTIVE.
- [10528] STO - PROCESS *STOP* DIRECTIVE.
- [10553] HEL - PROCESS *HELP* DIRECTIVE.
- [10578] REA - PROCESS *READ* DIRECTIVE.
- [10616] REW - PROCESS *REWIND* DIRECTIVE.
- [10629] FAMILY LEVEL DIRECTIVE PROCESSORS.
- [10640] ACH - PROCESS *AUDITCH* DIRECTIVE.
- [10664] AFM - PROCESS *ALTFAM* DIRECTIVE.
- [10687] AUN - PROCESS *AUDITUN* DIRECTIVE.
- [10745] BRF - PROCESS *BRIEF* DIRECTIVE.
- [10754] CAF - PROCESS *CALTFAM* DIRECTIVE.
- [10775] CAT - PROCESS *CATERR* DIRECTIVE.
- [10791] DRO - PROCESS *DROP* DIRECTIVE.
- [10797] FAM - PROCESS *FAMNAME* DIRECTIVE.
- [10807] FOR - PROCESS *FOREIGN* DIRECTIVE.
- [10817] GLO - PROCESS *GLOBAL* DIRECTIVE.
- [10827] INV - PROCESS *INCORRECT* DIRECTIVE.
- [10842] ISV - PROCESS *ISV* DIRECTIVE.
- [10857] LKF - PROCESS *LINKFAM* DIRECTIVE.
- [10871] MCH - PROCESS *MREADCH* DIRECTIVE.
- [10896] MID - PROCESS *MID* DIRECTIVE.
- [10911] MUN - PROCESS *MREADUN* DIRECTIVE.
- [10971] NBF - PROCESS *NOBRIEF* DIRECTIVE.
- [10980] PGA - PROCESS *PURGALL* DIRECTIVE.
- [11021] PGO - PROCESS GO DIRECTIVE.
- [11043] PTF - PROCESS *PURGE* DIRECTIVE.
- [11101] REL - PROCESS *RELEASE* DIRECTIVE.
- [11122] REM - PROCESS *REMOVE* DIRECTIVE.
- [11144] SCH - PROCESS *SOURCCH* DIRECTIVE.
- [11169] SOU - PROCESS *SOURCE* DIRECTIVE.
- [11208] SUN - PROCESS *SOURCUN* DIRECTIVE.
- [11268] USE - PROCESS *USER* DIRECTIVE.
- [11280] VAL - PROCESS *VALIDAT* DIRECTIVE.
- [11299] VSN - PROCESS *VSN* DIRECTIVE.
- [11395] IJM - ISSUE JSN MESSAGE.
- [11431] VSN LEVEL DIRECTIVE PROCESSORS.
- [11444] ADD - PROCESS *ADD* DIRECTIVE.
- [11460] DRO - PROCESS *DROP* DIRECTIVE.
- [11477] OWN - PROCESS *OWNER* DIRECTIVE.
- [11492] PGO - PROCESS *GO* DIRECTIVE.
- [11512] REV - PROCESS *REVISE* DIRECTIVE.
- [11565] STA - PROCESS *STATUS* DIRECTIVE
- [11590] SYS - PROCESS *SYSTEM* DIRECTIVE.
- [11614] VTY - PROCESS *VT* DIRECTIVE.
- [11631] USER LEVEL DIRECTIVE PROCESSORS.
- [11644] ACN - PROCESS *AUDITCN* DIRECTIVE.
- [11653] AFI - PROCESS *AUDITFI* DIRECTIVE.
- [11664] AFV - PROCESS *AUDITFV* DIRECTIVE.
- [11673] DRO - PROCESS *DROP* DIRECTIVE.
- [11683] FIL - PROCESS *FILE* DIRECTIVE.
- [11718] FIV - PROCESS *FILEV* DIRECTIVE.
- [11772] MCN - PROCESS *MREADCN* DIRECTIVE.
- [11782] MFI - PROCESS *MREADFI* DIRECTIVE.
- [11794] MFV - PROCESS *MREADFV* DIRECTIVE.
- [11804] RLF - PROCESS *RELEASF* DIRECTIVE.
- [11821] RLV - PROCESS *RELEASV* DIRECTIVE.
- [11852] SCN - PROCESS *SOURCCN* DIRECTIVE.
- [11862] SFI - PROCESS *SOURCFI* DIRECTIVE.
- [11875] SFV - PROCESS *SOURCFV* DIRECTIVE.
- [11885] SDD - SET DEFAULT DENSITY IN FILE CATALOG.
- [11920] FILE LEVEL DIRECTIVE PROCESSORS.
- [11949] AAU - PROCESS *AUDITAU* DIRECTIVE.
- [11995] AUS - PROCESS *AUSER* DIRECTIVE.
- [12046] ALT - PROCESS *AMEND* DIRECTIVE.
- [12061] AVS - PROCESS *AVSN* DIRECTIVE.
- [12214] DEN - PROCESS *D* DIRECTIVE.
- [12233] DRO - PROCESS *DROP* DIRECTIVE.
- [12244] PGO - PROCESS *GO* DIRECTIVE.
- [12264] PFI - PROCESS *FI* DIRECTIVE.
- [12297] PSV - PROCESS *SV* DIRECTIVE.
- [12327] RDA - CONVERT RDATE TO URDATE.
- [12431] RES - PROCESS *RESERVE* DIRECTIVE.
- [12455] URD - SET URDATE FLAG.
- [12477] ALTERNATE USER LEVEL PROCESSORS.
- [12494] ADM - PROCESS *ADMIT* DIRECTIVE.
- [12516] DRO - PROCESS *DROP* DIRECTIVE.
- [12525] K-DISPLAY AREA.
- [12532] KLEFT - LEFT SCREEN K-DISPLAY HEADER.
- [12547] KRIGHT - RIGHT SCREEN K-DISPLAY HEADER.
- [12575] KFAMLS - LEFT SCREEN FAMILY LEVEL K-DISPLAY.
- [12619] KFAMRS - RIGHT SCREEN FAMILY LEVEL K-DISPLAY.
- [12671] KVSNLS - LEFT SCREEN VSN LEVEL K-DISPLAY.
- [12697] KVSNRS - RIGHT SCREEN VSN LEVEL K-DISPLAY.
- [12711] KUSELS - LEFT SCREEN USER LEVEL K-DISPLAY.
- [12729] KUSERS - RIGHT SCREEN USER LEVEL K-DISPLAY.
- [12763] KFILLS1 - LEFT SCREEN FILE LEVEL K-DISPLAY, PAGE 1.
- [12805] KFILLS2 - LEFT SCREEN FILE LEVEL K-DISPLAY, PAGE 2.
- [12850] KFILLS3 - LEFT SCREEN FILE LEVEL K-DISPLAY, PAGE 3.
- [12899] KFILRS - RIGHT SCREEN FILE LEVEL K-DISPLAY.
- [12919] KAUSLS - LEFT SCREEN ALTERNATE USER LEVEL K-DISPLAY.
- [12945] KAUSRS - RIGHT SCREEN ALTERNATE USER LEVEL K-DISPLAY.
- [13039] BUFFER AREA.
- [13079] PRESET AREA.
- [13096] PRS - PRESET *TFSP* AND *TFSPE*.
- [13374] TFR - PROCESS *TFSPR* COMMAND.
- [13422] ABT - *PRESET* ABORT PROCESSOR.
- [13465] TOPO - TABLE OF OPTIONS FOR *OP* PARAMETER.
- [13483] TPAE - TABLE OF COMMAND PARAMETERS FOR *TFSPE*.
- [13499] TPAR - TABLE OF COMMAND PARAMETERS FOR *TFSP*.
- [13523] TPPR - TABLE OF COMMAND PARAMETERS FOR *TFSPR*.
- [13530] ATT - ATTACH FILE.
- [13569] CCF - CHECK COPY FILE.
- [13654] CDN - COPY DEFAULT TAPE CATALOG FILE.
- [13679] CFS - CHECK FILE STATUS.
- [13704] CIL - CLEAR INTERLOCKS ON FILE.
- [13722] CPN - COPY OLD TAPE CATALOG TO NEW FILE.
- [13760] GFI - GET FILE INFORMATION.
- [13783] GFL - GET FILE LENGTH.
- [13803] GOT - GET JOB ORIGIN.
- [13881] INF - INITIALIZE FILES.
- [13923] RFP - READ FIRST PRU OF FILE.
- [13944] SFL - SET FAMILY NAME.
- [13975] SIL - SET INTERLOCK ON FILE.
- [14062] WFP - REWRITE FIRST PRU OF FILE.
- [14076] ZFN - ZERO OUT FILE NAMES IN FETS.
- [14098] WBUF - WORKING BUFFER FOR TAPE CATALOG FILES.
Source Code
- TFSP.txt
- IDENT TFSP,ORIG
- ABS
- SST
- SYSCOM B1
- ENTRY TFSP
- ENTRY TFSPE
- ENTRY TFSPR
- ENTRY RFL=
- ENTRY SSJ=
- TITLE TFSP - TAPE FILE SUPERVISOR PROCESSOR.
- *COMMENT TAPE FILE SUPERVISOR PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TFSP SPACE 4,10
- *** TFSP - TAPE FILE SUPERVISOR PROCESSOR.
- *
- * J. D. HOLMBECK. 82/10/01.
- TFSP SPACE 4,10
- *** TFSP COMMAND.
- *
- * THE TAPE FILE SUPERVISOR, TFSP, CREATES AND MANAGES THE TAPE
- * CATALOG FILE.
- *
- * TFSP CAN MANIPULATE EITHER THE FAMILY TAPE CATALOG FILE (A
- * FAST-ATTACHED FILE NAMED *ZZZZZFC* ON USER INDEX 377777) OR
- * LOCAL FILE IMAGES OF THE TAPE CATALOG FILE.
- *
- * TFSP CAN ONLY ACCESS THE FAMILY TAPE CATALOG FILE IF IT IS
- * CALLED FROM A SYSTEM ORIGIN JOB OR IT IS CALLED FROM A JOB
- * THAT HAS A USER NAME THAT HAS BEEN VALIDATED TO ACCESS THE
- * FILE.
- *
- * ONLY ONE TFSP JOB CAN ACCESS A TAPE CATALOG FILE OF A FAMILY
- * AT ONE TIME. HOWEVER, SEVERAL TFSP JOBS CAN BE ACCESSING
- * TAPE CATALOG FILES OF DIFFERENT FAMILIES AT THE SAME TIME.
- TFSPE SPACE 4,10
- *** TFSPE COMMAND.
- *
- * TFSPE IS CALLED BY THE SYSTEM WHEN AN ERROR IS DISCOVERED IN
- * A VSN OR TAPE FILE ENTRY.
- *
- * TFSPE CAN BE USED BY SITE PERSONNEL TO CLEAR INTERLOCKS IN
- * THE TAPE CATALOG FILE THAT PREVENT NORMAL TFSP JOBS FROM
- * ACCESSING THE TAPE CATALOG FILE.
- *
- * WHEN TFSPE IS EXECUTED, ANY OTHER TFSP JOB THAT IS ACCESSING
- * THE TAPE CATALOG FILE OF THE SAME FAMILY WILL BE ABORTED.
- *
- * TFSPE CAN ONLY BE USED FROM A SYSTEM ORIGIN JOB.
- *
- * TFSPE IS EQUIVALENT TO THE TFSP(OP=K) COMMAND WITH
- * THE FOLLOWING THREE EXCEPTIONS -
- *
- * 1. THE INITIAL LEFT SCREEN K-DISPLAY INCLUDES THE FOLLOWING
- * INFORMATION -
- *
- * TAPE CATALOG ERROR DISCOVERED AT - YY/MM/DD, HH.MM.SS.
- *
- * THE ERROR IS EXPLAINED IN THE MESSAGE BUFFER.
- *
- * 2. THE INTERLOCK THAT PREVENTS MULTIPLE TFSP JOBS FROM
- * ACCESSING A TAPE CATALOG FILE IS CLEARED AND THEN RESET SO
- * THAT ONLY THE TFSPE JOB CAN ACCESS THE FILE. ANY OTHER
- * TFSP JOB ATTEMPTING TO ACCESS THE TAPE CATALOG FILE WILL
- * BE ABORTED.
- *
- * 3. IF THE RF PARAMETER IS SPECIFIED, TFSPE WILL REMOVE THE
- * FAST-ATTACHED STATUS OF THE TAPE CATALOG FILE. THIS CAN
- * BE USED TO PREVENT ACCESS TO THE TAPE CATALOG FILE AFTER
- * TFSPE HAS COMPLETED. WHEN THE FILE IS MADE FAST-ATTACHED
- * AGAIN VIA THE *TMSON* COMMAND, ALL BUSY INTERLOCKS
- * IN THE TAPE CATALOG FILE WILL BE CLEARED.
- SPACE 4,10
- *** TFSP AND TFSPE COMMAND FORMATS.
- *
- * TFSP( P1 , P2 , ... PN ) Z OPTION DIRECTIVES
- * TFSPE( P1 , P2 , ... PN )
- *
- * WHERE P1 , ... , PN CAN BE THE FOLLOWING -
- *
- * I = FILENAM
- * INPUT FILE WITH TFSP DIRECTIVES. IGNORED BY OP=K AND
- * OP=Z OPTIONS. IF I=0, NO INPUT FILE IS USED. DEFAULT
- * IS INPUT. VALID FOR TFSP ONLY.
- *
- * L = FILENAM
- * OUTPUT FILE. TFSP LISTS INPUT DIRECTIVES, ERRORS
- * ENCOUNTERED, AND INFORMATION AS SPECIFIED BY THE AUDIT
- * DIRECTIVES (AUDITUN, AUDITVS, AUDITCN, AUDITFI,
- * AUDITFV, AUDITCH, AND AUDITAU). IF L=0, NO OUTPUT
- * FILE IS GENERATED. DEFAULT IS OUTPUT.
- *
- * P = FILENAM
- * OLD TAPE CATALOG FILE. IGNORED EXCEPT FOR LOCAL FILE
- * (LF) MODE. IF P=0, A NEW TAPE CATALOG FILE WILL BE
- * CREATED. DEFAULT IS OLD. VALID FOR TFSP ONLY.
- *
- * N = FILENAM
- * NEW OR UPDATED TAPE CATALOG FILE. IGNORED EXCEPT FOR
- * LOCAL FILE (LF) MODE. DEFAULT IS NEW IF P=0. DEFAULT
- * IS *FILENAM* IF P=*FILENAM*. VALID FOR TFSP ONLY.
- *
- * S = FILENAM
- * SOURCE FILE TO RECEIVE TFSP INPUT DIRECTIVES GENERATED
- * FROM INFORMATION ON THE TAPE CATALOG FILE. THE SOURCE
- * FILE IS GENERATED BY THE SOURCE DIRECTIVES (SOURCE,
- * SOURCUN, SOURCVS, SOURCCH, SOURCCN, SOURCFI, AND
- * SOURCFV). IF S=0, NO SOURCE FILE IS GENERATED.
- * DEFAULT IS SOURCE.
- *
- * SS = FILENAM
- * MACHINE READABLE FILE. TFSP LISTS INFORMATION TO
- * *FILENAM* IN MACHINE READABLE FORMAT AS SPECIFIED BY
- * THE MACHINE READABLE AUDIT DIRECTIVES (MREADUN,
- * MREADVS, MREADCH, MREADCN, MREADFI, AND MREADFV). IF
- * SS=0, NO MACHINE READABLE FILE IS GENERATED. DEFAULT
- * IS NO MACHINE READABLE FILE.
- *
- * OP = OPTION
- * TFSP OPTION. VALID VALUES ARE -
- *
- * I - READ TFSP DIRECTIVES FROM THE FILE SPECIFIED BY
- * THE I PARAMETER.
- *
- * K - READ TFSP DIRECTIVES FROM K-DISPLAY INPUT.
- * DISPLAY TAPE CATALOG FILE INFORMATION AT THE
- * K-DISPLAY. VALID ONLY FOR SYSTEM ORIGIN JOBS.
- *
- * Z - READ TFSP DIRECTIVES FROM THE DELIMITED STRING
- * FOLLOWING THE COMMAND TERMINATOR. THE
- * FIRST CHARACTER FOLLOWING THE TERMINATOR IS
- * ASSUMED TO BE THE DELIMITER.
- *
- * DEFAULT IS OP=I. VALID FOR TFSP ONLY.
- *
- * LF
- * LOCAL FILE MODE. IF SPECIFIED, TFSP WILL ACCESS AND
- * UPDATE THE LOCAL FILES SPECIFIED BY THE P AND N
- * PARAMETERS. IF NOT SPECIFIED, TFSP WILL ACCESS AND
- * POSSIBLY UPDATE THE FAST-ATTACHED FILE *ZZZZZFC* ON
- * USER INDEX 377777. FOR NON-SYSTEM ORIGIN JOBS, IF THE
- * LF PARAMETER IS NOT SPECIFIED, TFSP WILL ABORT IF THE
- * USER HAS NOT BEEN VALIDATED TO ACCESS THE FAMILY TAPE
- * CATALOG FILE VIA THE VALIDAT DIRECTIVE.
- * VALID FOR TFSP ONLY.
- *
- * A
- * ABORT MODE. IF SPECIFIED, TFSP WILL ABORT WHEN THE
- * FIRST ERROR IS ENCOUNTERED WHILE PROCESSING THE
- * DIRECTIVES. IF NOT SPECIFIED, TFSP WILL ISSUE AN
- * ERROR MESSAGE TO THE OUTPUT FILE AND DAYFILE, BUT WILL
- * CONTINUE PROCESSING WITH THE DIRECTIVES ON THE NEXT
- * LINE OF INPUT. ABORT MODE IS USUALLY SELECTED WHEN
- * TFSP IS RUN WITH NON-INTERACTIVE INPUT SUCH AS RUNNING
- * TFSP IN A BATCH ORIGIN JOB. ABORT MODE IS USUALLY NOT
- * SELECTED WHEN TFSP IS RUN WITH INTERACTIVE INPUT SUCH
- * AS RUNNING TFSP WITH THE K-DISPLAY OR FROM A
- * TIME-SHARING TERMINAL. VALID FOR TFSP ONLY.
- *
- * NV
- * NO VERIFY MODE. IGNORED IF NOT LOCAL FILE (LF) MODE.
- * IGNORED IF NOT CREATING NEW TAPE CATALOG FILE (P=0).
- * IF SPECIFIED, TFSP WILL NOT CHECK THE STATUS OF VSNS
- * SPECIFIED BY THE VSN DIRECTIVE, TAPE FILES SPECIFIED
- * BY THE FILE OR FILEV DIRECTIVE, OR ALTERNATE USERS
- * SPECIFIED BY THE AUSER DIRECTIVE. THIS CAN SPEED
- * PROCESSING OF LARGE TFSP INPUT FILES. HOWEVER, THIS
- * CAN ALSO CREATE ERRORS IN THE TAPE CATALOG FILE IF THE
- * INPUT FILE IS SET UP INCORRECTLY. VALID FOR TFSP
- * ONLY.
- *
- * RT
- * RETRY ON CATALOG INTERLOCK OPTION. IGNORED FOR LOCAL
- * FILE (LF) MODE. IF SPECIFIED, TFSP WILL NOT ABORT IF
- * THE FAST-ATTACHED TAPE CATALOG FILE IS INTERLOCKED BY
- * ANOTHER TFSP JOB. TFSP WILL WAIT UNTIL THE OTHER JOB
- * IS COMPLETE SO IT CAN ACCESS THE TAPE CATALOG FILE.
- * GENERALLY, THE RETRY OPTION IS SELECTED WHEN TFSP IS
- * RUN IN A PROCEDURE FILE OR IN A BATCH ORIGIN JOB.
- * VALID FOR TFSP ONLY.
- *
- * FM = FAMILY
- * FAMILY THAT THE TAPE CATALOG FILE RESIDES ON.
- * INCORRECT ENTRY IF NOT A SYSTEM ORIGIN JOB. INCORRECT
- * ENTRY IF IN LOCAL FILE (LF) MODE. DEFAULT IS THE
- * FAMILY OF THE CALLING JOB. A NON-SYSTEM ORIGIN JOB IS
- * FORCED TO ACCESS THE TAPE CATALOG FILE FOR ITS FAMILY.
- *
- * CF = FILENAM
- * COPY FILE FOR TFSPE. IF THIS PARAMETER IS SPECIFIED
- * ON THE TFSPE COMMAND, TFSPE WILL ATTEMPT TO DEFINE A
- * DIRECT-ACCESS FILE ON USER NAME *SYSTEMX* WITH THE
- * PERMANENT FILE NAME *FILENAM*. TFSPE WILL THEN COPY
- * THE CURRENT TAPE CATALOG FILE TO *FILENAM*. IF THIS
- * PARAMETER IS NOT SPECIFIED, NO COPY WILL TAKE PLACE.
- * IF *CF* IS SPECIFIED WITHOUT A FILE NAME, *ZFCCOPY* IS
- * ASSUMED.
- *
- * CLEAR
- * CLEAR INFORMATION FROM TAPE CATALOG FILE FOR TFSPE.
- * IF THIS PARAMETER IS SPECIFIED ON THE TFSPE COMMAND,
- * TFSPE WILL OVERWRITE THE TAPE CATALOG FILE AS AN EMPTY
- * TAPE CATALOG FILE. THE FOREIGN CATALOG AND CATALOG
- * ERROR STATUSES ARE SET. THE *CLEAR* PARAMETER CAN
- * ONLY BE SPECIFIED IF THERE IS A CATALOG ERROR ON THE
- * CURRENT TAPE CATALOG FILE AND THE *CF* PARAMETER IS
- * ALSO SPECIFIED ON THE TFSPE COMMAND.
- TFSPR SPACE 4,15
- *** TFSPR COMMAND.
- *
- * TFSPR(FM=FAMILY)
- *
- * FAMILY = NAME OF FAMILY TO PROCESS.
- *
- * THE TFSPR COMMAND WILL CLEAR ALL TAPE CATALOG INTERLOCKS
- * HELD BY OTHER MACHINES SHARING THE CATALOG AT THE TIME OF A
- * SYSTEM FAILURE. TFSPR NEED ONLY BE RUN IF THE FAILED
- * MACHINE(S) WILL NOT REDEADSTARTED. THE MREC UTILITY MUST BE
- * RUN ON THE CATALOG DEVICE FOR EACH MACHINE TO BE RECOVERED
- * PRIOR TO RUNNING TFSPR. FAILURE TO DO SO WILL PREVENT THE
- * CATALOG INTERLOCKS FOR THAT MACHINE FROM BEING RELEASED.
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- * FOLLOWING ARE THE DAYFILE MESSAGES ISSUED BY TFSP.
- * ADDITIONAL MESSAGES MAY BE ISSUED BY THE SYSTEM OR BY THE PP
- * ROUTINES CALLED BY TFSP. CONSULT THE DOCUMENTATION FOR THE
- * PP *TFM* FOR A LISTING OF ITS DAYFILE MESSAGES.
- *
- * TFSP COMPLETE.
- * TFSP NORMAL COMPLETION.
- *
- * TFSP ABORTED.
- * CONTROL POINT ERROR FLAG IS SET. CONSULT DAYFILE
- * LISTING FOR REASON.
- *
- * TFSP ABORTED BY USER.
- * TFSP RUNNING IN AN INTERACTIVE JOB WAS ABORTED VIA
- * USER BREAK PROCESSING.
- *
- * PARAMETER ERROR - PARAM.
- * THE SPECIFIED PARAMETER IS NOT A TFSP PARAMETER.
- *
- * INCORRECT OPTION - OP.
- * THE SPECIFIED OPTION IS NOT ALLOWED WITH THE OP
- * PARAMETER.
- *
- * DIRECTIVE ERRORS.
- * ERRORS WERE ENCOUNTERED WHILE PROCESSING THE
- * DIRECTIVES. CONSULT THE OUTPUT LISTING FOR REASON.
- *
- * INCORRECT ACCESS.
- * USER WHO WAS NOT VALIDATED ATTEMPTED TO ACCESS THE
- * FAMILY TAPE CATALOG FILE.
- *
- * FAMILY NOT ACTIVE.
- * A FAST-ATTACHED FILE NAMED *ZZZZZFC* WAS NOT FOUND ON
- * THE FAMILY.
- *
- * FILE NAME CONFLICT - LFN.
- * SPECIFIED FILE USED FOR MORE THAN ONE PURPOSE. ONLY
- * THE P AND N PARAMETERS CAN SPECIFY THE SAME FILE NAME.
- *
- * TAPE CATALOG FILE INTERLOCKED.
- * ANOTHER TFSP JOB IS ACCESSING THE TAPE CATALOG FILE OF
- * THE FAMILY.
- *
- * EMPTY TAPE CATALOG FILE.
- * THE FILE SPECIFIED BY THE P PARAMETER IS A ZERO-LENGTH
- * FILE.
- *
- * UNEXPECTED TAPE CATALOG ERROR.
- * THE PP PROGRAM *TFM* RETURNED AN ERROR CODE THAT TFSP
- * WAS NOT EXPECTING. IF THIS MESSAGE IS ISSUED WHILE
- * WORKING ON A FAST-ATTACHED TAPE CATALOG FILE, CONTACT
- * SITE ANALYST.
- *
- * ABNORMAL TERMINATION, ERROR CODE = NN.
- * THE SYSTEM RETURNED AN ERROR THAT TFSP COULD NOT
- * RECOGNIZE. IF THIS MESSAGE IS ISSUED, CONTACT SITE
- * ANALYST.
- *
- * *CF* PARAMETER REQUIRED WITH *CLEAR*.
- * THE TFSPE COMMAND WAS ISSUED WITH THE *CLEAR*
- * PARAMETER BUT WITHOUT THE *CF* PARAMETER.
- *
- * CATALOG ERROR REQUIRED WITH *CLEAR*.
- * THE TFSPE COMMAND WAS ISSUED WITH THE *CLEAR*
- * PARAMETER FOR A TAPE CATALOG FILE THAT DID NOT HAVE A
- * TAPE CATALOG ERROR.
- SPACE 4,10
- *** ACCOUNT FILE MESSAGES.
- *
- * THE FOLLOWING ARE THE ACCOUNT FILE MESSAGES ISSUED BY TFSP.
- * THESE MESSAGES ARE ONLY ISSUED WHEN TFSP IS ACCESSING THE
- * FAST-ATTACHED TAPE CATALOG FILE.
- *
- * SDAU, FAMNAME/USERNAM/QNZZZ/VSNFFF, VSNCCC.
- * ISSUED FOR EACH VSN ASSIGNED TO A TAPE FILE.
- *
- * SDCR, FAMNAME/USERNAM/QNZZZ/VSNFFF, YY/MM/DD.
- * ISSUED WHEN CONDITIONAL RELEASE IS SET.
- *
- * SDCR, FAMNAME/USERNAM/QNZZZ/VSNFFF, .
- * ISSUED WHEN CONDITIONAL RELEASE IS CLEARED.
- *
- * SDAD, FAMILY , VSN , PRN , SSSSSS.
- * ISSUED FOR EACH VSN ADDED TO CATALOG.
- *
- * SDRM, FAMILY , VSN .
- * ISSUED FOR EACH VSN REMOVED FROM CATALOG.
- *
- * SDRV, FAMILY , VSN , PRN , SSSSSS.
- * ISSUED FOR EACH VSN REVISED IN CATALOG.
- *
- * SDAM, FAMILY , USERNAM, FVSN , SSSSSS.
- * ISSUED FOR EACH TAPE FILE AMENDED IN CATALOG.
- *
- * SDRA, FAMNAME/USERNAM/QNZZZ/VSNFFF, TFD.
- * ISSUED BY *TFM* TO PROVIDE MORE INFORMATION ABOUT
- * A TAPE FILE FOR DATABASE RECOVERY PURPOSES.
- *
- * SDRB, FAMNAMEXLOGICAL*FILE*IDNTYPHYSICAL*FILE*IDT.
- * ISSUED BY *TFM* TO PROVIDE MORE INFORMATION ABOUT
- * A TAPE FILE FOR DATABASE RECOVERY PURPOSES.
- * THIS MESSAGE ONLY APPEARS FOR A SYMBOLIC ACCESS TAPE.
- *
- * SDRC, FAMNAME/CONTROLWRDX/CHRGNUMBER, MULSIDY.
- * ISSUED BY *TFM* TO PROVIDE MORE INFORMATION ABOUT
- * A TAPE FILE FOR DATABASE RECOVERY PURPOSES.
- SPACE 4,10
- *** GENERAL RULES FOR INPUT DIRECTIVES.
- *
- * SOME TFSP DIRECTIVES CAN CONSIST OF AN IDENTIFIER AND A DATA
- * FIELD SEPARATED BY AN EQUAL SIGN. FOR EXAMPLE -
- *
- * VSN=V1
- *
- * OTHER TFSP DIRECTIVES CONSIST ONLY OF AN IDENTIFIER AND ARE
- * NOT EQUIVALENCED. FOR EXAMPLE -
- *
- * HELP
- *
- * IN GENERAL, TFSP DIRECTIVES CAN BE SEPARATED BY A
- * NON-ALPHA-NUMERIC CHARACTER, AN END-OF-LINE OR AN
- * END-OF-CARD. FOR EXAMPLE -
- *
- * VSN=V1
- * ERRFLAG=SET+OWNER=USER;ADD
- *
- * IN GENERAL, BLANKS ON A TFSP DIRECTIVE INPUT LINE ARE
- * IGNORED. FOR EXAMPLE -
- *
- * VS N = V 1
- *
- * IS THE SAME AS -
- *
- * VSN=V1
- *
- * HOWEVER, THE PRN, SI, AND UC DIRECTIVES ACCEPT BLANKS AND ALL
- * OTHER NON-ALPHA-NUMERIC CHARACTERS IN THEIR DATA FIELDS. THE
- * SEPARAT DIRECTIVE IS AVAILABLE TO FORCE ONE NON-BLANK,
- * NON-ALPHA-NUMERIC CHARACTER TO ALWAYS BE INTERPRETED AS A
- * SEPARATOR. FOR EXAMPLE -
- *
- * SEPARAT=*
- * UC=A B,SI=*FA=A
- * SEPARAT=,
- * UC=A B,SI=*FA=A
- *
- * IS THE SAME AS -
- *
- * UC=A B,SI=
- * FA=A
- * UC=A B
- * SI=*FA=A
- *
- * ENTRY OF A COLON CHARACTER IN THE INPUT FILE CAN CAUSE
- * UNPREDICTABLE RESULTS. THE COLON DIRECTIVE IS AVAILABLE TO
- * FORCE A NON-ALPHA-NUMERIC CHARACTER TO BE INTERPRETED AS A
- * COLON. FOR EXAMPLE -
- *
- * COLON=)
- * UC=AB)XX
- *
- * IS THE SAME AS -
- *
- * UC=AB:XX
- *
- * IF A DIRECTIVE IDENTIFIER IS ONE, TWO, OR THREE CHARACTERS
- * LONG, THE ENTIRE IDENTIFIER MUST BE SPELLED OUT. IF AN
- * IDENTIFIER IS MORE THAN THREE CHARACTERS LONG, AT LEAST THE
- * FIRST THREE CHARACTERS MUST BE SPECIFIED PLUS ANY ADDITIONAL
- * CHARACTERS NEEDED TO MAKE THE DIRECTIVE UNIQUE. FOR
- * EXAMPLE -
- *
- * AUDITV=V1
- * AUDITU=USER1
- * VAL=USER2
- *
- * IS THE SAME AS -
- *
- * AUDITVS=V1
- * AUDITUN=USER1
- * VALIDAT=USER2
- *
- * HOWEVER, ENTRY OF VA=USER2 WOULD BE INCORRECT BECAUSE THE
- * IDENTIFIER IS LESS THAN THREE CHARACTERS. ENTRY OF AUDIT=V1
- * WOULD BE INCORRECT BECAUSE THE IDENTIFIER WOULD NOT BE
- * UNIQUE.
- *
- * SOME DIRECTIVES HAVE A SPECIFIC SET OF OPTIONS THAT CAN BE
- * ENTERED IN THE DATA FIELD. ONLY ENOUGH CHARACTERS TO
- * UNIQUELY IDENTIFY THE OPTION MUST BE SPECIFIED IN THE DATA
- * FIELD. FOR EXAMPLE -
- *
- * CT=PR
- * CT=S
- * CT=PU
- *
- * IS THE SAME AS -
- *
- * CT=PRIVATE
- * CT=SPRIV
- * CT=PUBLIC
- *
- * HOWEVER, CT=P WOULD BE INCORRECT BECAUSE THE DATA FIELD WOULD
- * NOT BE UNIQUE.
- *
- * EACH DIRECTIVE LINE OF INPUT IS FREE FORMAT THROUGH COLUMN
- * 72. ANY DATA AFTER COLUMN 72 IS IGNORED.
- *
- * ALL NUMERIC DATA IS ASSUMED TO BE DECIMAL UNLESS A B
- * POST-RADIX IS USED TO FORCE OCTAL.
- *
- * FOR EQUIVALENCED DIRECTIVES, IF THE DATA FIELD IS NOT
- * SPECIFIED, THE DEFAULT VALUE WILL BE SET IF THE DIRECTIVE HAS
- * A DEFAULT. FOR EXAMPLE -
- *
- * NS=
- *
- * IS THE SAME AS -
- *
- * NS=18
- *
- * TFSP DIRECTIVES ARE DIVIDED INTO SIX CATEGORIES - UNIVERSAL,
- * FAMILY LEVEL, VSN LEVEL, USER LEVEL, FILE LEVEL, AND
- * ALTERNATE USER LEVEL. FAMILY LEVEL IS CONSIDERED THE HIGHEST
- * LEVEL AND ALTERNATE USER THE LOWEST LEVEL.
- *
- * EACH LEVEL HAS ITS OWN SET OF VALID DIRECTIVES. CERTAIN
- * DIRECTIVES IN A HIGHER LEVEL MAY BE ENTERED FROM ANY LOWER
- * LEVEL. IF TFSP IS AT A LOWER LEVEL AND A HIGHER LEVEL
- * DIRECTIVE IS ISSUED, TFSP WILL EITHER EXECUTE THE DIRECTIVE
- * AND REMAIN AT THE CURRENT LEVEL OR PERFORM AN *IMPLIED DROP*
- * TO THE HIGHER LEVEL. AN *IMPLIED* DROP SIMPLY MEANS
- * THAT TFSP TERMINATES THE CURRENT LEVEL WITHOUT AN UPDATE
- * AND GOES TO THE LEVEL FOR THE DIRECTIVE THAT WAS ENTERED.
- * MOST DIRECTIVES MAY BE ISSUED FOR A *HIGHER* LEVEL FROM A
- * LOWER TFSP LEVEL. *IMPLIED DROPS* OCCUR IF THE DIRECTIVE
- * REQUIRES A CHANGE IN A TFSP LEVEL.
- *
- * AN EXAMPLE FOLLOWS.
- *
- * USER=USERNAM
- * FILEVS=VSN1
- * VSN=VSN2
- *
- * IN THE EXAMPLE, WHEN THE VSN=VSN2 DIRECTIVE WAS ISSUED, TFSP
- * PERFORMED AN *IMPLIED DROP* OUT OF THE FILE LEVEL FOR *VSN1*,
- * AND AN *IMPLIED DROP* OUT OF THE USER LEVEL FOR *USERNAM*.
- * NO UPDATE WAS PERFORMED FOR THE FILE LEVEL AND TFSP WILL BE
- * AT THE VSN LEVEL FOR VOLUME SERIAL NUMBER *VSN2*.
- *
- * ANOTHER EXAMPLE OF A *IMPLIED DROP* FOLLOWS.
- *
- * USER=USERNAM
- * FILEV=VSN1
- * FILEV=VSN2
- *
- * IN THIS EXAMPLE, WHEN THE *FILEV=VSN2* DIRECTIVE WAS ISSUED,
- * TFSP TERMINATES THE FILE LEVEL FOR *VSN1* WITHOUT UPDATING
- * *VSN1*. THE FILE LEVEL FOR *VSN2* IS THEN DISPLAYED AND ANY
- * INQUIRIES OR UPDATES WILL NOW BE FOR VSN2.
- *
- * AN EXAMPLE OF DIRECTIVES THAT MAY BE ENTERED THAT WILL NOT
- * REQUIRE A *IMPLIED DROP* FOLLOW.
- *
- * USER=USERNAM
- * FILEV=VSN1
- * AUDITVS=VSN2
- * AVSN=VSN2
- * AMEND
- *
- * IN THIS EXAMPLE, THE *AUDITVS=VSN2* DIRECTIVE WAS ISSUED
- * AND TFSP PERFORMED THE AUDIT WITHOUT HAVING TO SWITCH FROM
- * THE FILE LEVEL. THE *AUDITVS* WAS PERFORMED AND TFSP STAYS
- * AT THE FILE LEVEL.
- *
- * EXAMPLES OF DIRECTIVES FOR DIFFERENT LEVELS THAT ARE NOT
- * VALID FROM ANOTHER LEVEL.
- *
- * USER=USERNAM
- * FILEV=VSN1
- * PRN=IVSN1
- *
- * THE *PRN=IVSN1* IS INCORRECT BECAUSE IT IS A VSN LEVEL
- * DIRECTIVE. SINCE THERE IS NO VSN LEVEL SPECIFIED, THERE
- * WOULD BE NO WAY OF KNOWING WHICH TAPE FILE THE *PRN=IVSN1*
- * DIRECTIVE WAS REALLY INTENDED TO BE FOR.
- *
- * ANOTHER EXAMPLE OF INCORRECT DIRECTIVE ENTRY FOLLOWS.
- *
- * USER=USERNAM
- * AUSER=USERNO
- *
- * THE *AUSER* DIRECTIVE WOULD BE INCORRECT AT THIS POINT
- * BECAUSE THERE HAS BEEN NO FILE LEVEL SPECIFIED. THE AUSER
- * ENTRY DEALS SPECIFICALLY WITH A TAPE FILE ENTRY.
- *
- * SOME DIRECTIVES MAY NOT BE ENTERED FROM OTHER LEVELS.
- * THESE DIRECTIVES CONSIST OF DIRECTIVES THAT WOULD
- * REQUIRE THE TAPE CATALOG TO BE UPDATED IF THE DIRECTIVE
- * WAS TO BE PROCESSED.
- *
- * AN EXAMPLE FOLLOWS.
- *
- * USER=USERNUM
- * PURGE=VSN1
- *
- * IN THIS EXAMPLE, THE *PURGE* DIRECTIVE WOULD BE
- * INCORRECT BECAUSE IT REQUIRES THE TAPE CATALOG
- * TO BE UPDATED. SINCE THE *PURGE* DIRECTIVE IS
- * A FAMILY LEVEL DIRECTIVE IT WILL ONLY BE VALID
- * FROM THE FAMILY LEVEL.
- *
- * THE DIRECTIVES THAT MAY NOT BE ENTERED FROM ANOTHER
- * LEVEL ARE LISTED BELOW.
- *
- * ISV, PURGALL, PURGE, RELEASE, REMOVE,
- * RELEASF, AND RELEASV.
- SPACE 4,10
- *** UNIVERSAL DIRECTIVES.
- *
- * UNIVERSAL DIRECTIVES DO NOT REFERENCE SPECIFIC TAPE FILE
- * ENTRIES OR VSNS IN THE TAPE CATALOG FILE. UNIVERSAL
- * DIRECTIVES MAY OCCUR ANYWHERE IN THE DIRECTIVE STREAM.
- *
- * SEPARAT = CHAR
- * THE NON-BLANK, NON-ALPHA-NUMERIC CHARACTER *CHAR* WILL
- * BE INTERPRETED AS A SEPARATOR, EVEN BY THE PRN, UC,
- * AND SI DIRECTIVES. DEFAULT IS COMMA.
- *
- * COLON = CHAR
- * THE NON-BLANK, NON-ALPHA-NUMERIC CHARACTER *CHAR* WILL
- * BE INTERPRETED AS A COLON IN THE DIRECTIVE STREAM.
- * DEFAULT IS NO CHARACTER.
- *
- * HELP
- * DISPLAY A LIST OF VALID DIRECTIVES. HELP IS ALSO
- * AVAILABLE ON THE RIGHT SCREEN OF THE K-DISPLAY FOR THE
- * OP=K OPTION. THE DISPLAY IS COPIED TO THE OUTPUT FILE
- * IF NOT THE OP=K OPTION.
- *
- * DISPLAY
- * TOGGLES OUT OF THE HELP DISPLAY TO THE NORMAL LEFT
- * SCREEN DISPLAY FOR THE OP=K OPTION. THE DISPLAY IS
- * COPIED TO THE OUTPUT FILE IF NOT THE OP=K OPTION.
- *
- * REWIND = FILENAM
- * REWINDS THE LOCAL FILE *FILENAM*. THIS DIRECTIVE IS
- * USUALLY USED WITH THE SOURCE, AUDIT, AND READ
- * DIRECTIVES. A NULL *FILENAM* IS INCORRECT.
- *
- * READ = FILENAM
- * READS TFSP DIRECTIVES OFF OF LOCAL FILE *FILENAM*
- * UNTIL AN END-OF-RECORD, END-OF-FILE, OR
- * END-OF-INFORMATION IS REACHED. TFSP PROCESSES THE
- * DIRECTIVES UNTIL AN ERROR IS ENCOUNTERED OR THE END OF
- * THE DIRECTIVES IS REACHED. THE READ DIRECTIVE CANNOT
- * BE INCLUDED IN THE FILE THAT IS READ. THE FILE IS NOT
- * REWOUND BEFORE OR AFTER IT IS READ. A NULL *FILENAM*
- * IS INCORRECT.
- *
- * STOP
- * TERMINATE TFSP. CHANGES SPECIFIED AT THE CURRENT
- * LEVEL WILL BE IGNORED.
- *
- * BRIEF
- * CAUSES *DISPLAY* HEADERS AND INFORMATIVE OUTPUT TO
- * BE SUPPRESSED. ALL MESSAGES PREFIXED BY *INFORM*
- * WILL NOT BE COPIED TO THE OUTPUT FILE. THE FIRST
- * EIGHT LINES OF OUTPUT GENERATED BY THE *DISPLAY*
- * DIRECTIVE WILL NOT BE COPIED TO THE OUTPUT FILE.
- * VALID DIRECTIVE IMAGES WILL ALSO BE SUPPRESSED.
- *
- * NOBRIEF
- * REVERSES THE AFFECT OF A *BRIEF* COMMAND. ALL
- * INFORMATIVE AND *DISPLAY* HEADER INFORMATION IS
- * WRITTEN TO THE OUTPUT FILE. *NOBRIEF* IS THE DEFAULT.
- SPACE 4,10
- *** FAMILY LEVEL DIRECTIVES.
- *
- * FAMILY LEVEL DIRECTIVES REFERENCE ALL TAPE FILE ENTRIES AND
- * VSNS IN THE TAPE CATALOG FILE. FAMILY LEVEL DIRECTIVES MAY
- * OCCUR ANYWHERE IN THE DATA STREAM. ENTRY OF A FAMILY
- * LEVEL DIRECTIVE FROM A LOWER LEVEL MAY CAUSE TFSP TO
- * ISSUE A *DROP* FOR EACH LEVEL AND PROCESSING CONTINUES
- * AT THE FAMILY LEVEL. NO UPDATES WILL OCCUR. FAMILY LEVEL
- * DIRECTIVES NOT VALID WHILE PROCESSING AT ANOTHER LEVEL ARE
- * ISV, PURGALL, PURGE, RELEASE AND REMOVE.
- *
- * DROP
- * TERMINATE TFSP.
- *
- * GO
- * MAKES UPDATES ENTERED AT FAMILY LEVEL AND THEN
- * TERMINATES TFSP.
- *
- * ISV
- * INITIALIZES SCRATCH VSN POINTERS. THIS DIRECTIVE CAN
- * BE USED TO INSURE ALL UNASSIGNED VSNS ARE IN THE
- * SCRATCH POOL.
- *
- * FAMNAME = FAMILY
- * SETS *FAMILY* AS THE FAMILY NAME OF THE TAPE CATALOG
- * FILE. IF *FAMILY* IS NULL, THE FAMILY NAME OF THE JOB
- * IS USED.
- *
- * LINKFAM = FAMILY
- * SETS *FAMILY* AS THE FAMILY ON WHICH THE TAPE CATALOG
- * RESIDES FOR PROCESSING USER JOB REQUESTS FROM THE
- * CURRENT FAMILY. THIS DIRECTIVE CAN ONLY BE USED IN
- * LOCAL FILE MODE.
- *
- * ALTFAM = FAMILY
- * ALLOWS USER JOBS ON FAMILY *FAMILY* TO ACCESS THIS
- * TAPE CATALOG. THE *LINKFAM* DIRECTIVE MUST BE USED
- * ON THE *FAMILY* TAPE CATALOG TO DIRECT PROCESSING TO
- * THIS CATALOG. THIS DIRECTIVE CAN ONLY BE USED IN
- * LOCAL FILE MODE.
- *
- * CALTFAM = FAMILY
- * CLEARS THE EFFECT OF A PREVIOUS *ALTFAM* DIRECTIVE
- * ON THE SPECIFIED FAMILY. THIS DIRECTIVE CAN ONLY BE
- * USED IN LOCAL FILE MODE.
- *
- * MID = ID
- * SETS *ID* AS THE MACHINE ID OF THE TAPE CATALOG FILE.
- * IF *ID* IS NULL, THE MACHINE ID OF THE RUNNING SYSTEM
- * IS USED.
- *
- * CATERR = STATUS
- * SETS *STATUS* AS THE ERROR STATUS OF THE TAPE CATALOG
- * FILE. VALID VALUES FOR *STATUS* ARE -
- *
- * CLEAR - CLEAR ERROR STATUS AND MESSAGE BUFFER.
- *
- * SET - SET ERROR STATUS AND ISSUE MESSAGE TO MESSAGE
- * BUFFER.
- *
- * DEFAULT IS CLEAR.
- *
- * GLOBAL = STATUS
- * SETS *STATUS* TO DETERMINE IF THE SCRATCH TAPES OF
- * THIS FAMILY ARE AVAILABLE FOR OTHER FAMILIES. VALID
- * VALUES FOR *STATUS* ARE -
- *
- * NO - SCRATCH TAPES ARE UNAVAILABLE FOR OTHER FAMILIES.
- *
- * YES - SCRATCH TAPES ARE AVAILABLE FOR OTHER FAMILIES.
- *
- * DEFAULT IS NO.
- *
- * FOREIGN = STATUS
- * SETS *STATUS* TO DETERMINE IF THE SCRATCH TAPES OF
- * THIS FAMILY ARE FOREIGN TO THE RUNNING SYSTEM. VALID
- * VALUES FOR *STATUS* ARE -
- *
- * NO - FAMILY IS NOT FOREIGN TO SYSTEM.
- *
- * YES - FAMILY IS FOREIGN TO SYSTEM.
- *
- * DEFAULT IS NO.
- *
- * AUDITCH = CHARGNO
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES FOR
- * CHARGE NUMBER *CHARGNO* TO THE OUTPUT FILE. A
- * NULL *CHARGNO* IS INCORRECT.
- *
- * AUDITUN = USERNAM
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES FOR
- * USER NAME *USERNAM* TO THE OUTPUT FILE. IF *USERNAM*
- * IS NULL, ALL TAPE FILE ENTRIES IN THE TAPE CATALOG
- * FILE ARE PROCESSED.
- *
- * AUDITVS = VSN
- * COPIES INFORMATION ABOUT VOLUME SERIAL NUMBER *VSN* TO
- * THE OUTPUT FILE. THE INFORMATION INCLUDES WHETHER THE
- * VSN IS INCLUDED IN THE TAPE CATALOG FILE AND ITS
- * POSITION IN A MULTI-VOLUME TAPE FILE. IF *VSN* IS
- * NULL, EVERY VSN IN THE TAPE CATALOG FILE IS PROCESSED.
- *
- * MREADCH = CHARGNO
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES FOR
- * CHARGE NUMBER *CHARGNO* TO THE MACHINE READABLE FILE.
- * A NULL *CHARGNO* IS INCORRECT.
- *
- * MREADUN = USERNAM
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES FOR
- * USER NAME *USERNAM* TO THE MACHINE READABLE FILE. IF
- * *USERNAM* IS NULL, ALL TAPE FILE ENTRIES IN THE TAPE
- * CATALOG FILE ARE PROCESSED.
- *
- * MREADVS = VSN
- * COPIES INFORMATION ABOUT VOLUME SERIAL NUMBER *VSN* TO
- * THE MACHINE READABLE FILE. THE INFORMATION INCLUDES
- * WHETHER THE VSN IS INCLUDED IN THE TAPE CATALOG FILE
- * AND ITS POSITION IN A MULTI-VOLUME TAPE FILE. IF
- * *VSN* IS NULL, EVERY VSN IN THE TAPE CATALOG FILE IS
- * PROCESSED.
- *
- * SOURCE
- * COPIES THE DIRECTIVES REQUIRED TO RECREATE THE TAPE
- * CATALOG FILE TO THE SOURCE FILE.
- *
- * SOURCCH = CHARGNO
- * COPIES THE DIRECTIVES REQUIRED TO CREATE THE TAPE FILE
- * ENTRIES FOR CHARGE NUMBER *CHARGNO* TO THE SOURCE
- * FILE. A NULL *CHARGNO* IS INCORRECT.
- *
- * SOURCUN = USERNAM
- * COPIES THE DIRECTIVES REQUIRED TO CREATE THE TAPE FILE
- * ENTRIES FOR USER NAME *USERNAM* TO THE SOURCE FILE.
- * IF *USERNAM* IS NULL, ALL TAPE FILE ENTRIES IN THE
- * TAPE CATALOG FILE ARE PROCESSED.
- *
- * SOURCVS = VSN
- * COPIES THE DIRECTIVES REQUIRED TO ADD VOLUME SERIAL
- * NUMBER *VSN* AS A SCRATCH TAPE TO THE SOURCE FILE. IF
- * *VSN* IS NULL, EVERY VSN IN THE TAPE CATALOG FILE IS
- * PROCESSED.
- *
- * REMOVE = VSN
- * REMOVES VOLUME SERIAL NUMBER *VSN* FROM THE TAPE
- * CATALOG FILE. ONCE REMOVED, *VSN* CANNOT BE ASSIGNED
- * TO A TAPE FILE ENTRY UNTIL VSN DIRECTIVE HAS BEEN
- * ISSUED. THE *VSN* SPECIFIED BY THE REMOVE DIRECTIVE
- * CANNOT BE ASSIGNED TO A TAPE FILE ENTRY. THE *PURGE*
- * DIRECTIVE MAY BE USED TO REMOVE A RESERVED TAPE FROM
- * THE CATALOG. A NULL *VSN* IS INCORRECT.
- *
- * RELEASE = VSN
- * PURGES THE TAPE FILE ENTRIES THAT HAVE AN ASSIGNED VSN
- * OF *VSN* FROM THE TAPE CATALOG FILE. EVERY VSN
- * ASSOCIATED WITH THAT TAPE FILE IS RELEASED. A NULL
- * *VSN* IS INCORRECT.
- *
- * VSN = VSN
- * BEGINS VSN LEVEL DIRECTIVES. ALL DIRECTIVES FOLLOWING
- * THE VSN DIRECTIVE AND BEFORE THE NEXT ADD, REVISE,
- * GO, OR DROP DIRECTIVE ARE ASSOCIATED WITH VOLUME
- * SERIAL NUMBER *VSN*. IF THE *VSN* IS ASSIGNED, THE
- * MAINTENANCE AND PHYSICAL REEL NUMBER FOR THE *VSN*
- * MAY BE REVISED AT THIS LEVEL. VALID FROM ANY LEVEL.
- * IF THE VSN DIRECTIVE IS ISSUED FROM OTHER THAN
- * THE FAMILY LEVEL, AN *IMPLIED DROP* WILL FIRST BE
- * PERFORMED TO THE FAMILY LEVEL. A NULL *VSN* IS
- * INCORRECT.
- *
- * VALIDAT = USERNAM
- * ADDS *USERNAM* AS A USER THAT IS VALIDATED TO USE TFSP
- * TO ACCESS AND UPDATE THE FAMILY TAPE CATALOG FILE FROM
- * A NON-SYSTEM ORIGIN JOB. UP TO EIGHT USER NAMES CAN
- * BE ADDED. A NULL *USERNAM* IS INCORRECT.
- *
- * INVALID = USERNAM
- * REMOVES *USERNAM* AS A USER VALIDATED BY THE VALIDAT
- * DIRECTIVE. A NULL *USERNAM* IS INCORRECT.
- *
- * PURGALL = USERNAM
- * PURGES ALL TAPE FILE ENTRIES THAT BELONG TO *USERNAM*
- * FROM THE TAPE CATALOG FILE. RELEASES ALL VSNS THAT
- * WERE ASSIGNED TO THE TAPE FILE ENTRIES OF *USERNAM*.
- * THE RELEASED VSNS ARE REMOVED FROM THE TAPE CATALOG
- * FILE. A NULL *USERNAM* IS INCORRECT.
- *
- * PURGE = VSN
- * THIS DIRECTIVE IS USED TO DELETE TAPE FILE ENTRIES
- * CONTAINING *VSN* FROM THE TAPE CATALOG FILE. EVERY
- * VSN BELONGING TO ONE OF THE PURGED TAPE FILES IS
- * FIRST RELEASED FROM THE TAPE CATALOG AND THEN
- * REMOVED. IF THE VSN IS NOT ASSIGNED TO A TAPE FILE,
- * IT IS REMOVED FROM THE TAPE CATALOG FILE. A NULL
- * *VSN* IS INCORRECT.
- *
- * USER = USERNAM
- * BEGINS USER LEVEL DIRECTIVES. ALL DIRECTIVES
- * FOLLOWING THE USER DIRECTIVE AND BEFORE THE NEXT USER
- * LEVEL DROP OR GO DIRECTIVE ARE ASSOCIATED WITH TAPE
- * FILE ENTRIES BELONGING TO USER NAME *USERNAM*.
- * VALID FROM ANY LEVEL. IF THE USER DIRECTIVE IS ISSUED
- * FROM OTHER THAN THE FAMILY LEVEL, AN *IMPLIED DROP*
- * WILL FIRST BE PERFORMED TO THE FAMILY LEVEL. A NULL
- * *USERNAM* IS INCORRECT.
- SPACE 4,10
- *** VSN LEVEL DIRECTIVES.
- *
- * VSN LEVEL DIRECTIVES REFERENCE ONE VSN THAT IS NOT ASSIGNED
- * TO ANY TAPE FILE ENTRY ON THE TAPE CATALOG FILE. VSN LEVEL
- * DIRECTIVES MAY OCCUR ANYWHERE AFTER A VSN DIRECTIVE AND
- * BEFORE AN ADD, REVISE, GO, OR DROP DIRECTIVE.
- *
- * ADD
- * END PROCESSING OF VSN LEVEL DIRECTIVES. THE VSN WILL
- * BE ADDED TO THE TAPE CATALOG. INCORRECT IF THE VSN IS
- * ALREADY IN THE TAPE CATALOG.
- *
- * REVISE
- * END PROCESSING OF VSN LEVEL DIRECTIVES. THE CHANGES
- * SPECIFIED BY THE VSN LEVEL DIRECTIVES WILL BE MADE TO
- * THE VSN. INCORRECT IF THE VSN IS NOT IN THE TAPE
- * CATALOG.
- *
- * GO
- * SAME AS ADD FOR A NEW VSN. SAME AS REVISE FOR AN
- * EXISTING VSN.
- *
- * DROP
- * END PROCESSING OF VSN LEVEL DIRECTIVES. CHANGES
- * SPECIFIED BY THE VSN LEVEL DIRECTIVES WILL BE IGNORED.
- *
- * PRN= PVSN
- * SETS *PVSN* AS THE PHYSICAL (INTERNAL) VSN. DEFAULT
- * IS THE LOGICAL (EXTERNAL) VSN.
- *
- * ERRFLAG = FLAG
- * SETS OR CLEARS THE READ/WRITE ERROR DETECTED FLAG FOR
- * THE VSN. VALID VALUES FOR *FLAG* ARE -
- *
- * SET - SET ERROR FLAG.
- *
- * CLEAR - CLEAR ERROR FLAG.
- *
- * DEFAULT IS CLEAR.
- *
- * MAINT = MAIN
- * SETS *MAIN* AS THE MAINTENANCE STATUS FOR THE VSN. A
- * VSN HELD FOR MAINTENANCE CANNOT BE ASSIGNED TO A TAPE
- * FILE ENTRY. VALID VALUES FOR *MAIN* ARE -
- *
- * HOLD - HOLD FOR MAINTENANCE.
- *
- * AVAILABLE - AVAILABLE FOR ASSIGNMENT.
- *
- * DEFAULT IS AVAILABLE.
- *
- * OWNER = TYPE
- * SETS *TYPE* AS THE OWNERSHIP STATUS OF THE VSN.
- * A *TYPE* VALUE OF *USER* MAY NOT BE SPECIFIED FOR
- * A VSN WITH THE SYSTEM VSN FLAG SET.
- * VALID VALUES FOR *TYPE* ARE -
- *
- * CENTER - CENTER OWNED.
- *
- * USER - USER OWNED.
- *
- * DEFAULT IS CENTER.
- *
- * SITE = SITE
- * SETS SITE AS THE OFF SITE/ON SITE STATUS OF THE VSN.
- * USERS CANNOT ACCESS AN OFF SITE VSN. VALID VALUES FOR
- * SITE ARE -
- *
- * ON - ON SITE.
- *
- * OFF - OFF SITE.
- *
- * DEFAULT IS ON.
- * IF THE VSN IS ASSIGNED TO A TAPE FILE ENTRY, THE SITE
- * STATUS OF EACH VSN ASSIGNED TO THE TAPE FILE WILL BE
- * CHANGED.
- *
- * STATUS = STATUS
- * AVAILABLE - CLEARS BOTH THE MAINTENANCE AND ERROR
- * FLAGS.
- *
- * CLEANED - SAME AS AVAILABLE. IN ADDITION, THE USAGE
- * COUNT IS SET TO ZERO.
- *
- * HOLD - SET THE MAINTENANCE FLAG AND CLEARS THE
- * ERROR FLAG.
- *
- * ERROR - SET BOTH THE MAINTENANCE FLAG AND ERROR
- * FLAGS.
- *
- * DEFAULT IS AVAILABLE.
- * IF THE VSN IS ASSIGNED TO A TAPE FILE ENTRY, THE
- * OWNERSHIP STATUS OF EACH VSN ASSIGNED TO THE TAPE FILE
- * WILL BE CHANGED.
- *
- * SYSTEM = SYS
- * SETS *SYS* AS THE SYSTEM VSN FLAG STATUS FOR THE VSN.
- * A VSN WITH THE SYSTEM VSN FLAG SET WILL NOT BE USED
- * AS A SCRATCH VSN, BUT CAN BE ASSIGNED TO A TAPE FILE
- * ENTRY BY *TFSP*. THIS DIRECTIVE MAY ONLY BE SPECIFIED
- * WHEN A VSN IS FIRST CREATED, AND MAY NOT BE SPECIFIED
- * FOR A USER-OWNED VSN. VALID VALUES FOR *SYSTEM* ARE -
- *
- * YES - THE VSN IS A SYSTEM VSN.
- *
- * NO - THE VSN IS NOT A SYSTEM VSN.
- *
- * DEFAULT IS NO.
- *
- * USAGE = COUNT.
- * SETS COUNT AS THE NUMBER OF TIMES THAT THE VSN HAS
- * BEEN USED SINCE MAINTENANCE WAS LAST PERFORMED ON
- * THE TAPE. THE VALUE OF COUNT MUST BE AT LEAST ZERO
- * (0) AND NO MORE THEN 63. DEFAULT IS 0.
- *
- * VT = TYPE
- * SETS *TYPE* AS THE TAPE TYPE FOR THE VSN. THIS
- * DIRECTIVE MAY ONLY BE SPECIFIED WHEN THE VSN IS FIRST
- * CREATED. VALID VALUES FOR *TYPE* ARE -
- *
- * MTNT - THE VSN MAY BE USED AS EITHER AN *MT* (7-TRACK)
- * OR AN *NT* (9-TRACK) TAPE.
- *
- * CT - THE VSN MAY BE USED ONLY AS A *CT* (CARTRIDGE)
- * TAPE.
- *
- * AT - THE VSN MAY BE USED ONLY AS AN *AT* (ACS
- * CARTRIDGE) TAPE.
- *
- * DEFAULT IS MTNT.
- SPACE 4,10
- *** USER LEVEL DIRECTIVES.
- *
- * USER LEVEL DIRECTIVES REFERENCE THE TAPE FILE ENTRIES
- * BELONGING TO ONE USER ON THE TAPE CATALOG FILE. USER LEVEL
- * DIRECTIVES MAY OCCUR ANYWHERE AFTER A USER DIRECTIVE
- * AND BEFORE A USER LEVEL GO OR DROP. IF THE DIRECTIVE
- * ENTERED IS A FILE OR FILEV DIRECTIVE AND TFSP IS AT
- * THE FILE OR ALTERNATE USER LEVEL, AN *IMPLIED DROP* WILL
- * FIRST BE PERFORMED TO THE USER LEVEL AND NO UPDATES WILL
- * OCCUR.
- *
- * DROP
- * END PROCESSING OF USER LEVEL DIRECTIVES.
- *
- * GO
- * SAME AS DROP.
- *
- * +
- * WHEN A PLUS CHARACTER IS IN COLUMN ONE OF THE INPUT
- * LINE, THE LIST OF TAPE FILE ENTRIES DISPLAYED AT THE
- * LEFT-SCREEN K-DISPLAY IS TOGGLED. IF NOT THE OP=K
- * OPTION, THE DISPLAY DIRECTIVE MUST BE ISSUED TO COPY
- * THE DISPLAY TO THE OUTPUT FILE.
- *
- * AUDITCN = CHARGNO
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES
- * BELONGING TO THE USER WITH A CHARGE NUMBER OF
- * *CHARGNO* TO THE OUTPUT FILE. A NULL *CHARGNO* IS
- * INCORRECT.
- *
- * AUDITFI = FILEIDENT
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRY
- * *FILEIDENT* TO THE OUTPUT FILE. A NULL *FILEIDENT* IS
- * INCORRECT.
- *
- * AUDITFV = VSN
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES
- * BELONGING TO THE USER WITH AN ASSIGNED VSN OF *VSN* TO
- * THE OUTPUT FILE. A NULL *VSN* IS INCORRECT.
- *
- * MREADCN = CHARGNO
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES
- * BELONGING TO THE USER WITH A CHARGE NUMBER OF
- * *CHARGNO* TO THE MACHINE READABLE FILE. A NULL
- * *CHARGNO* IS INCORRECT.
- *
- * MREADFI = FILEIDENT
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRY
- * *FILEIDENT* TO THE MACHINE READABLE FILE. A NULL
- * *FILEIDENT* IS INCORRECT.
- *
- * MREADFV = VSN
- * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES
- * BELONGING TO THE USER WITH AN ASSIGNED VSN OF *VSN* TO
- * THE MACHINE READABLE FILE. A NULL *VSN* IS INCORRECT.
- *
- * SOURCFI = FILEIDENT
- * COPIES THE DIRECTIVES REQUIRED TO CREATE THE TAPE FILE
- * ENTRY *FILEIDENT* BELONGING TO THE USER TO THE SOURCE
- * FILE. A NULL *FILEIDENT* IS INCORRECT.
- *
- * SOURCFV = VSN
- * COPIES THE DIRECTIVE REQUIRED TO CREATE THE TAPE FILE
- * ENTRIES BELONGING TO THE USER WITH AN ASSIGNED VSN OF
- * *VSN* TO THE SOURCE FILE. A NULL *VSN* IS INCORRECT.
- *
- * SOURCCN = CHARGNO
- * COPIES THE DIRECTIVES REQUIRED TO CREATE THE TAPE FILE
- * ENTRIES BELONGING TO THE USER WITH CHARGE NUMBER
- * *CHARGNO* TO THE SOURCE FILE. A NULL *CHARGNO* IS
- * INCORRECT.
- *
- * RELEASV = VSN
- * PURGES THE TAPE FILE ENTRIES BELONGING TO THE USER
- * THAT HAVE AN ASSIGNED VSN OF *VSN* FROM THE TAPE
- * CATALOG FILE. EVERY VSN ASSOCIATED WITH THAT TAPE
- * FILE IS RELEASED. A NULL *VSN* IS INCORRECT.
- *
- * RELEASF = FILEIDENT
- * PURGES THE TAPE FILE ENTRY *FILEIDENT* BELONGING TO
- * THE USER FROM THE TAPE CATALOG FILE. EVERY VSN
- * ASSOCIATED WITH THAT TAPE FILE ENTRY IS RELEASED. A
- * NULL *FILEIDENT* IS INCORRECT.
- *
- * FILE = FILEIDENT
- * BEGINS FILE LEVEL DIRECTIVES. ALL DIRECTIVES
- * FOLLOWING THE FILE DIRECTIVE AND BEFORE THE NEXT
- * AMEND, RESERVE, OR FILE LEVEL GO OR DROP DIRECTIVE
- * ARE ASSOCIATED WITH THE TAPE FILE ENTRY *FILEIDENT*
- * BELONGING TO THE USER. FILE CAN BE USED TO CREATE A
- * NEW OR UPDATE AN EXISTING SYMBOLIC ACCESS TAPE FILE
- * ENTRY. NON-SYMBOLIC ACCESS TAPE FILES MUST BE
- * REFERENCED BY THE FILEV DIRECTIVE. A NULL *FILEIDENT*
- * IS INCORRECT. VALID ENTRY FROM THE USER, FILE, OR
- * THE ALTERNATE USER LEVEL. IF ENTERED FROM THE
- * FILE OR ALTERNATE USER LEVEL, AN *IMPLIED DROP*
- * WILL FIRST BE PERFORMED TO THE USER LEVEL AND NO
- * UPDATE FOR THE CURRENT LEVEL WILL OCCUR.
- *
- * FILEV = VSN/SEQNO
- * BEGINS FILE LEVEL DIRECTIVES. ALL DIRECTIVES
- * FOLLOWING THE FILEV DIRECTIVE AND BEFORE THE NEXT
- * AMEND, RESERVE, OR FILE LEVEL GO OR DROP DIRECTIVE
- * ARE ASSOCIATED WITH THE TAPE FILE ENTRY BELONGING TO
- * THE USER THAT HAS AN ASSIGNED VSN *VSN* AND SEQUENCE
- * NUMBER *SEQNO*. THE FILE POSITION IS A MULTI-FILE SET
- * IS SPECIFIED BY *SEQNO*. FILEV CAN BE USED TO CREATE
- * A NEW OR UPDATE AN EXISTING TAPE FILE ENTRY. A NULL
- * *VSN* IS INCORRECT. IF *SEQNO* IS NULL, A VALUE OF 1
- * IS ASSUMED. VALID ENTRY FROM THE USER, FILE, OR
- * THE ALTERNATE USER LEVEL. IF ENTERED FROM THE
- * FILE OR ALTERNATE USER LEVEL, AN *IMPLIED DROP*
- * WILL FIRST BE PERFORMED TO THE USER LEVEL AND NO
- * UPDATE FOR THE CURRENT LEVEL WILL OCCUR.
- SPACE 4,10
- *** FILE LEVEL DIRECTIVES.
- *
- * FILE LEVEL DIRECTIVES REFERENCE ONE TAPE FILE ENTRY BELONGING
- * TO THE USER. FILE LEVEL DIRECTIVES MAY OCCUR ANYWHERE AFTER
- * A FILE OR FILEV DIRECTIVE AND BEFORE AN AMEND, RESERVE, OR
- * FILE LEVEL DROP OR GO (AND FROM THE ALTERNATE USER LEVEL).
- * WHENEVER A FILE LEVEL DIRECTIVE IS ASSIGNED A NULL VALUE,
- * TFSP WILL SET THE DEFAULT VALUE UNLESS STATED OTHERWISE IN
- * THE DIRECTIVE DESCRIPTION. SITE PERSONNEL WILL PROBABLY
- * FIND THAT THEY ONLY HAVE TO ENTER A FEW OF THE FILE LEVEL
- * DIRECTIVES (SUCH AS CN AND AVSN) WHEN CREATING NEW TAPE
- * FILE ENTRIES. MOST OF THE FILE LEVEL DIRECTIVES EXIST FOR
- * THE "DUMPING" AND "LOADING" OF THE TAPE FILE CATALOG
- * ENTRIES VIA THE SOURCE FILE.
- *
- * AMEND
- * END PROCESSING OF FILE LEVEL DIRECTIVES. THE CHANGES
- * SPECIFIED BY THE FILE LEVEL DIRECTIVES WILL BE MADE TO
- * THE TAPE FILE. INCORRECT IF THE TAPE FILE IS NOT
- * RESERVED.
- *
- * RESERVE
- * END PROCESSING OF FILE LEVEL DIRECTIVES. THE TAPE
- * FILE WILL BE RESERVED. INCORRECT IF THE TAPE FILE
- * ALREADY IS RESERVED.
- *
- * GO
- * SAME AS RESERVE FOR A NEW TAPE FILE ENTRY. SAME AS
- * AMEND FOR AN EXISTING TAPE FILE ENTRY.
- *
- * DROP
- * END PROCESSING OF FILE LEVEL DIRECTIVES. CHANGES
- * SPECIFIED BY THE FILE LEVEL DIRECTIVES WILL BE
- * IGNORED.
- *
- * +
- * WHEN A PLUS CHARACTER IS IN COLUMN ONE OF THE INPUT
- * LINE, THE PAGE DISPLAYED AT THE LEFT-SCREEN K-DISPLAY
- * IS TOGGLED. IF NOT THE OP=K OPTION, THE DISPLAY
- * DIRECTIVE MUST BE ISSUED TO COPY THE DISPLAY TO THE
- * OUTPUT FILE.
- *
- * AUDITAU = USERNAM
- * COPIES THE ADMIT INFORMATION GRANTED TO USER NAME
- * *USERNAM* FOR THE TAPE FILE ENTRY TO THE OUTPUT FILE.
- * IF *USERNAM* IS NULL, ALL USER NAMES ADMITTED TO THE
- * TAPE FILE ENTRY ARE PROCESSED.
- *
- * SV = ACCESS
- * SETS ACCESS AS THE SYMBOLIC ACCESS STATUS OF THE TAPE
- * FILE. VALID VALUES FOR ACCESS ARE -
- *
- * NO - NO SYMBOLIC ACCESS. TAPE FILE ENTRY CANNOT BE
- * ACCESSED BY FILE IDENTIFIER.
- *
- * SET - SYMBOLIC ACCESS. TAPE FILE ENTRY CAN BE
- * ACCESSED BY FILE IDENTIFIER.
- *
- * DEFAULT IS NO.
- *
- * RECOVER = STATUS
- * SETS *STATUS* AS THE RECOVERY STATUS OF THE TAPE FILE.
- * VALID VALUES FOR *STATUS* ARE -
- *
- * NO - TAPE FILE HAS NOT BEEN RECOVERED.
- *
- * YES - TAPE FILE HAS BEEN RECOVERED. THE USER MAY HAVE
- * TO AMEND THE THE TAPE FILE ENTRY TO RETURN IT TO
- * ITS ORIGINAL STATE.
- *
- * DEFAULT IS NO.
- *
- * FI = FILEIDENT
- * CHANGES THE LOGICAL FILE IDENTIFIER OF THE TAPE FILE
- * ENTRY TO *FILEIDENT*. THIS IS THE NAME SPECIFIED BY
- * USER COMMANDS AND THE FILE DIRECTIVE WHEN
- * ACCESSING THIS TAPE FILE ENTRY. THE *FILEIDENT* MUST
- * NOT BE THE NAME OF ANY OTHER TAPE FILE ENTRY BELONGING
- * TO THE USER IF SYMBOLIC ACCESS. DEFAULT IS THE SAME
- * NAME AS SPECIFIED IN THE PREVIOUS FILE DIRECTIVE.
- *
- * PI = FILEIDENT
- * SETS *FILEIDENT* AS THE PHYSICAL FILE IDENTIFIER OF
- * THE TAPE FILE ENTRY. GENERALLY, *FILEIDENT* IS THE
- * SAME AS THE LOGICAL FILE IDENTIFIER WHEN THE TAPE FILE
- * ENTRY IS CREATED. DEFAULT IS THE SAME NAME AS
- * SPECIFIED IN THE FILE DIRECTIVE WHEN THE TAPE FILE
- * ENTRY IS FIRST CREATED. IF *LB=KU* WHEN THE TAPE
- * FILE IS RESERVED OR AMENDED, THE PHYSICAL FILE
- * IDENTIFIER WILL BE CLEARED.
- *
- * UC = WORD
- * SETS *WORD* AS THE TEN CHARACTER USER CONTROL WORD FOR
- * THE TAPE FILE ENTRY. BLANKS ARE SIGNIFICANT. TFSP
- * WILL LEFT JUSTIFY AND BLANK FILL IF *WORD* IS LESS
- * THAN TEN CHARACTERS. DEFAULT IS TEN COLONS.
- *
- * PW = PASSWOR
- * SETS *PASSWOR* AS THE PASSWORD THAT ALTERNATE USERS
- * MUST SPECIFY TO ACCESS THE TAPE FILE. DEFAULT IS NO
- * PASSWORD.
- *
- * CT = CAT
- * SETS *CAT* AS THE ACCESS CATEGORY FOR ALTERNATE USERS
- * OF THE TAPE FILE. VALID VALUES FOR *CAT* ARE -
- *
- * PRIVATE - PRIVATE. ALTERNATE USER ACCESS RESTRICTED.
- *
- * SPRIV - SEMI-PRIVATE. ALTERNATE USER ACCESS ALLOWED
- * AND RECORDED.
- *
- * PUBLIC - PUBLIC. ALTERNATE USER ACCESS ALLOWED BUT
- * NOT RECORDED.
- *
- * DEFAULT IS PRIVATE.
- *
- * M = MODE
- * SETS *MODE* AS THE ACCESS PERMISSION FOR ALTERNATE
- * USERS. VALID VALUES FOR *MODE* ARE -
- *
- * READ - ALTERNATE USERS MAY ONLY READ THE TAPE FILE.
- *
- * WRITE - ALTERNATE USERS MAY READ OR WRITE ON THE TAPE
- * FILE.
- *
- * NULL - ALTERNATE USERS MAY NOT ACCESS THE TAPE FILE.
- *
- * DEFAULT IS READ.
- *
- * AC = OP
- * SETS *OP* AS THE CATLIST PERMISSION FOR ALTERNATE
- * USERS OF THE TAPE FILE. VALID VALUES FOR OP ARE -
- *
- * YES - ALTERNATE USERS CAN AUDIT THE PUBLIC OR
- * SEMI-PRIVATE TAPE FILE.
- *
- * NO - ALTERNATE USERS CANNOT AUDIT THE TAPE FILE.
- *
- * DEFAULT IS NO. ALTERNATE USERS CANNOT AUDIT PRIVATE
- * TAPE FILES EVEN IF AC=YES.
- *
- * CE = FLAG
- * SETS OR CLEARS THE READ/WRITE ERROR FLAG FOR THE TAPE
- * FILE ENTRY. VALID VALUES FOR *FLAG* ARE -
- *
- * SET - SET ERROR FLAG.
- *
- * CLEAR - CLEAR ERROR FLAG.
- *
- * DEFAULT IS CLEAR.
- *
- * CN = CHARGNO
- * SETS *CHARGNO* AS THE CHARGE NUMBER ASSIGNED TO THE
- * TAPE FILE ENTRY. DEFAULT IS NO CHARGE NUMBER.
- *
- * PN = PROJECTNO
- * SETS *PROJECTNO* AS THE PROJECT NUMBER ASSIGNED TO THE
- * TAPE FILE ENTRY. DEFAULT IS NO PROJECT NUMBER.
- *
- * CDATE = YYMMDD
- * SETS *YYMMDD* AS THE DATE OF CREATION OF THE TAPE FILE
- * ENTRY. DEFAULT IS THE CURRENT DATE.
- *
- * CTIME = HHMMSS
- * SETS *HHMMSS* AS THE TIME OF CREATION OF THE TAPE FILE
- * ENTRY. DEFAULT IS THE CURRENT TIME.
- *
- * ADATE = YYMMDD
- * SETS *YYMMDD* AS THE DATE OF LAST ACCESS OF THE TAPE
- * FILE ENTRY. DEFAULT IS THE CURRENT DATE.
- *
- * ATIME = HHMMSS
- * SETS *HHMMSS* AS THE TIME OF LAST ACCESS OF THE TAPE
- * FILE ENTRY. DEFAULT IS THE CURRENT TIME.
- *
- * MDATE = YYMMDD
- * SETS *YYMMDD* AS THE DATE OF LAST MODIFICATION OF THE
- * TAPE FILE ENTRY. DEFAULT IS THE CURRENT DATE.
- *
- * MTIME = HHMMSS
- * SETS *HHMMSS* AS THE TIME OF LAST MODIFICATION OF THE
- * TAPE FILE ENTRY. DEFAULT IS THE CURRENT TIME.
- *
- * ACOUNT = COUNT
- * SETS *COUNT* AS THE NUMBER OF ACCESSES OF THE TAPE
- * FILE ENTRY. DEFAULT IS ZERO.
- *
- * CR = YYDDD
- * SETS *YYDDD* (JULIAN FORMAT) AS THE CREATION DATE OF
- * AN ANSI-LABELED TAPE. THIS VALUE IS USUALLY
- * EQUIVALENT TO THE DATE SPECIFIED BY THE CDATE
- * DIRECTIVE, HOWEVER IT CAN BE DIFFERENT. DEFAULT IS
- * THE CURRENT DATE.
- *
- * CV = MODE
- * SETS *MODE* AS THE CONVERSION MODE FOR THE NINE-TRACK
- * TAPE FILE ENTRY. VALID VALUES FOR *MODE* ARE -
- *
- * AS - ASCII/DISPLAY CODE CONVERSION.
- *
- * EB - EBCDIC/DISPLAY CODE CONVERSION.
- *
- * DEFAULT IS AS.
- *
- * D= DENSITY
- * SETS *DENSITY* AS THE TAPE DENSITY. ALSO SETS THE
- * TAPE TYPE. VALID VALUES FOR *DENSITY* ARE -
- *
- * HI - 556 BPI, 7-TRACK (*MT*).
- *
- * HY - 800 BPI, 7-TRACK (*MT*).
- *
- * HD - 800 CPI, 9-TRACK (*NT*).
- *
- * PE - 1600 CPI, 9-TRACK (*NT*).
- *
- * GE - 6250 CPI, 9-TRACK (*NT*).
- *
- * CE - 38000 CPI, CARTRIDGE (*CT*).
- *
- * AE - 38000 CPI, ACS CARTRIDGE (*AT*).
- *
- * DEFAULT IS PE.
- *
- * E = NUMBER
- * SETS *NUMBER* AS THE ONE OR TWO DIGIT GENERATION
- * VERSION NUMBER FOR AN ANSI-LABELED TAPE. DEFAULT IS
- * 00.
- *
- * F = FORMAT
- * SETS *FORMAT* AS THE DATA FORMAT OF THE TAPE FILE
- * ENTRY. VALID VALUES FOR *FORMAT* ARE -
- *
- * I - INTERNAL.
- *
- * LI - LONG BLOCK INTERNAL.
- *
- * S - STRANGER.
- *
- * L - LONG BLOCK STRANGER.
- *
- * SI - SCOPE INTERNAL.
- *
- * F - FOREIGN.
- *
- * DEFAULT IS I.
- *
- * FA = CHAR
- * SETS *CHAR* AS THE ONE ALPHA-NUMERIC CHARACTER
- * ACCESSIBILITY RESTRICTION FOR AN ANSI-LABELED TAPE.
- * VALID VALUES FOR *CHAR* ARE -
- *
- * NULL - NO ACCESSIBILITY RESTRICTIONS FOR ALTERNATE
- * USERS.
- *
- * A - NO ACCESSIBILITY ALLOWED FOR ALTERNATE USERS.
- *
- * NON-A - ALTERNATE USERS MUST SPECIFY *CHAR* TO ACCESS
- * TAPE FILE ENTRY.
- *
- * DEFAULT IS NO CHARACTER.
- *
- * FC = FRAMES
- * SETS *FRAMES* AS THE MAXIMUM SIZED BLOCK THAT CAN BE
- * READ FROM OR WRITTEN TO AN F FORMAT TAPE. THE VALUE
- * SHOULD BE GREATER THAN THAT SPECIFIED BY THE NS
- * DIRECTIVE. DEFAULT IS UNLIMITED.
- * A VALUE OF ZERO (0) SETS THE INSTALLATION DEFAULT.
- *
- * G = NUMBER
- * SETS *NUMBER* AS THE ONE TO FOUR DIGIT GENERATION
- * NUMBER FOR AN ANSI LABELED TAPE. DEFAULT IS 0001.
- *
- * LB = LABEL
- * SETS LABEL AS THE LABEL STATUS OF THE TAPE FILE ENTRY.
- * VALID VALUES ARE -
- *
- * KU - UNLABELED.
- *
- * KL - ANSI-LABELED.
- *
- * NS - NON-STANDARD LABELED.
- *
- * DEFAULT IS KL.
- *
- * SI = SETID
- * SETS *SETID* AS THE SET IDENTIFIER OF AN ANSI-LABELED
- * TAPE. DEFAULT IS NO SET IDENTIFIER.
- *
- * NS = FRAMES
- * SETS *FRAMES* AS THE MINIMUM SIZE OF A VALID BLOCK.
- * ANY SMALLER BLOCK IS CONSIDERED NOISE. THE VALUE MUST
- * BE 0.GE.*FRAMES*.GE.31. THE VALUE SHOULD BE LESS THAN
- * THAT SPECIFIED BY THE FC DIRECTIVE. DEFAULT IS 0.
- * A VALUE OF ZERO (0) SETS THE INSTALLATION DEFAULT.
- *
- * RT = YYDDD
- * SETS *YYDDD* (JULIAN FORMAT) AS THE RETENTION DATE FOR
- * AN ANSI-LABELED TAPE. NO ONE (INCLUDING THE TAPE
- * OWNER) CAN WRITE OVER THE TAPE BEFORE THIS DATE.
- * DEFAULT IS THE CURRENT DATE.
- *
- * SN = SECNO
- * SETS *SECNO* AS THE ONE TO FOUR DIGIT FILE SECTION
- * NUMBER FOR AN ANSI-LABELED TAPE. DEFAULT IS 0001.
- *
- * AVSN = VSN
- * ADDS *VSN* AS THE LAST VSN ASSIGNED TO THE TAPE FILE
- * ENTRY. INCORRECT DIRECTIVE IF THE TAPE FILE ENTRY
- * ALREADY HAS 60 ASSIGNED VSNS, IF THE TAPE FILE ENTRY
- * IS NOT THE LAST FILE IN A MULTI-FILE SET, OR IF THE
- * VSN BEING ADDED HAS SYSTEM STATUS. *VSN* CAN BE
- * ASSIGNED IF ONE OF THE FOLLOWING CONDITIONS IS MET -
- *
- * 1. *VSN* IS NOT ASSIGNED TO ANOTHER TAPE FILE, DOES
- * NOT HAVE SYSTEM STATUS, AND IT-S SITE AND
- * OWNERSHIP STATUS MATCH THE STATUS OF THE FIRST
- * ASSIGNED VSN OF THE TAPE FILE.
- *
- * 2. THE TAPE FILE ENTRY HAS NO ASSIGNED VSNS AND *VSN*
- * IS NOT ASSIGNED TO ANOTHER TAPE FILE, OR IS THE
- * LAST VSN OF ANOTHER TAPE FILE BELONGING TO THE
- * USER (PROVIDING FOR MULTI-FILE SET CATALOGS).
- *
- * A NULL *VSN* IS INCORRECT.
- *
- * TSITE = SITE
- * SETS SITE AS THE OFF SITE/ON SITE STATUS OF ALL THE
- * VSNS ASSIGNED TO THE TAPE FILE ENTRY. USERS CANNOT
- * ACCESS OFF SITE TAPE FILES. VALID VALUES FOR SITE
- * ARE -
- *
- * ON - ON SITE.
- *
- * OFF - OFF SITE.
- *
- * DEFAULT IS ON.
- *
- * RDATE = YYMMDD
- * SET YYMMDD AS THE USER RELEASE DATE OF THE TAPE
- * FILE ENTRY. IF THE DIRECTIVE IS SPECIFIED WITH NO
- * DATE (RDATE=), THE USER RELEASE DATE IS CLEARED.
- * DEFAULT IS NO RELEASE DATE.
- *
- * URDATE = YYMMDD
- * SET YYMMDD AS THE UNCONDITIONAL RELEASE DATE OF THE
- * TAPE FILE ENTRY. IF THE DIRECTIVE IS SPECIFIED WITH NO
- * DATE (RDATE=), THE UNCONDITIONAL RELEASE DATE IS
- * CLEARED. DEFAULT IS NO RELEASE DATE.
- *
- * TOWNER = TYPE
- * SETS *TYPE* AS THE OWNERSHIP STATUS OF ALL THE VSNS
- * ASSIGNED TO THE TAPE FILE ENTRY. VALID VALUES FOR
- * *TYPE* ARE -
- *
- * CENTER - CENTER OWNED.
- *
- * USER - USER OWNED.
- *
- * DEFAULT IS CENTER.
- *
- * AUSER = USERNAM
- * BEGINS ALTERNATE USER LEVEL DIRECTIVES. ALL
- * DIRECTIVES FOLLOWING THE AUSER DIRECTIVE AND BEFORE
- * THE NEXT ADMIT, DROP, OR GO DIRECTIVE ARE ASSOCIATED
- * WITH THE PERMISSION GRANTED TO USER NAME *USERNAM* FOR
- * THE TAPE FILE ENTRY. INCORRECT ENTRY IF THE TAPE FILE
- * HAS NOT YET BEEN RESERVED. A NULL *USERNAM* IS
- * INCORRECT. IF ENTERED FROM THE ALTERNATE USER LEVEL,
- * AN IMPLIED DROP WILL BE PERFORMED AND NO UPDATE FOR
- * THE CURRENT LEVEL WILL OCCUR.
- SPACE 4,10
- *** ALTERNATE USER LEVEL DIRECTIVES.
- *
- * ALTERNATE USER LEVEL DIRECTIVES REFERENCE AN ALTERNATE USER
- * GRANTED EXPLICIT PERMISSION TO ACCESS THE TAPE FILE.
- * ALTERNATE USER LEVEL DIRECTIVES MAY OCCUR ANYWHERE AFTER AN
- * AUSER DIRECTIVE AND BEFORE AN ADMIT, DROP, OR GO DIRECTIVE.
- * WHENEVER A ALTERNATE USER LEVEL DIRECTIVE IS ASSIGNED A NULL
- * VALUE, TFSP WILL SET THE DEFAULT VALUE.
- *
- * ADMIT
- * END PROCESSING OF ALTERNATE USER LEVEL DIRECTIVES.
- * THE CHANGES SPECIFIED BY THE ALTERNATE USER LEVEL
- * DIRECTIVES WILL BE MADE TO THE ALTERNATE USER.
- *
- * GO
- * SAME AS ADMIT.
- *
- * DROP
- * END PROCESSING OF ALTERNATE USER LEVEL DIRECTIVES.
- * CHANGES SPECIFIED BY THE ALTERNATE USER LEVEL
- * DIRECTIVES WILL BE IGNORED.
- *
- * AMODE = MODE
- * SETS *MODE* AS THE ACCESS PERMISSION GRANTED TO THE
- * USER. VALID VALUES FOR *MODE* ARE -
- *
- * NULL - NO ACCESS ALLOWED TO THE USER.
- *
- * READ - USER ALLOWED TO READ BUT NOT WRITE ON THE TAPE
- * FILE.
- *
- * WRITE - USER ALLOWED TO READ AND WRITE ON THE TAPE
- * FILE.
- *
- * IMPLICIT - SEMI-PRIVATE ACCESS. THE MODE SPECIFIED BY
- * THE M FILE LEVEL DIRECTIVE TAKES PRECEDENCE.
- *
- * SPECIAL - TMS CONVERSION MODE.
- *
- * DEFAULT IS IMPLICIT.
- *
- * AACOUNT = COUNT
- * SETS THE NUMBER OF ACCESSES BY THE USER TO *COUNT*.
- * DEFAULT IS ZERO.
- *
- * AADATE = YYMMDD
- * SETS THE DATE OF LAST ACCESS BY THE USER TO *YYMMDD*.
- * DEFAULT IS THE CURRENT DATE.
- *
- * AATIME = HHMMSS
- * SETS THE TIME OF LAST ACCESS BY THE USER TO *HHMMSS*.
- * DEFAULT IS THE CURRENT TIME.
- SPACE 4,10
- *** INFORMATIVE DIRECTIVE MESSAGES.
- *
- * INFORMATIVE DIRECTIVE MESSAGES ARE ISSUED TO THE OUTPUT FILE
- * OR K-DISPLAY AFTER THE DIRECTIVE IS PROCESSED. THESE
- * MESSAGES ARE PREFIXED BY THE CHARACTERS *INFORM*.
- * THESE MESSAGES WILL NOT BE WRITTEN TO THE OUTPUT FILE
- * IF TFSP IS IN *BRIEF* MODE.
- *
- * P AND N PARAMETERS IGNORED.
- * FIRST MESSAGE ISSUED WHENEVER TFSP IS NOT RUN IN LOCAL
- * FILE (LF) MODE.
- *
- * I PARAMETER IGNORED.
- * FIRST MESSAGE ISSUED WHENEVER TFSP IS RUN WITH THE
- * OP=K OR OP=Z OPTION.
- *
- * VSN REMOVED FROM CATALOG.
- * THE REMOVE DIRECTIVE HAS COMPLETED.
- *
- * FILE RELEASED.
- * THE RELEASE, RELEASF, OR RELEASV DIRECTIVE HAS
- * COMPLETED.
- *
- * ALTERNATE USER CURRENTLY IS ADMITTED.
- * THE USER NAME SPECIFIED BY THE AUSER DIRECTIVE HAS
- * BEEN ADMITTED PREVIOUSLY.
- *
- * ALTERNATE USER NOT CURRENTLY ADMITTED.
- * THE USER NAME SPECIFIED BY THE AUSER DIRECTIVE HAS NOT
- * BEEN PREVIOUSLY ADMITTED.
- *
- * ALTERNATE USER NOT PROCESSED.
- * AN ALTERNATE USER DROP DIRECTIVE HAS BEEN ISSUED.
- *
- * ALTERNATE USER ADMITTED.
- * A NEW ALTERNATE USER HAS BEEN ADMITTED VIA THE ADMIT
- * DIRECTIVE.
- *
- * ALTERNATE USER ADMIT UPDATED.
- * THE ADMIT ENTRY FOR A PREVIOUSLY ADMITTED ALTERNATE
- * USER HAS BEEN UPDATED VIA THE ADMIT DIRECTIVE.
- *
- * PREMATURE END OF FILE, XXXXXXX.
- * A NULL INPUT LINE WAS FOUND WHILE READING DIRECTIVES
- * FROM FILE XXXXXXX.
- *
- * FILE CURRENTLY IS RESERVED.
- * THE TAPE FILE SPECIFIED BY THE FILE DIRECTIVE HAS BEEN
- * PREVIOUSLY RESERVED.
- *
- * FILE NOT CURRENTLY RESERVED.
- * THE TAPE FILE SPECIFIED BY THE FILE DIRECTIVE HAS NOT
- * BEEN PREVIOUSLY RESERVED.
- *
- * FILE NOT PROCESSED.
- * THE FILE LEVEL DROP DIRECTIVE HAS BEEN ISSUED.
- *
- * FILE RESERVED.
- * THE RESERVE DIRECTIVE HAS BEEN ISSUED FOR A TAPE FILE
- * THAT PREVIOUSLY WAS NOT RESERVED.
- *
- * FILE AMENDED.
- * THE AMEND DIRECTIVE HAS BEEN ISSUED FOR A TAPE FILE
- * THAT PREVIOUSLY WAS RESERVED.
- *
- * USER LEVEL COMPLETE.
- * THE USER LEVEL DROP DIRECTIVE HAS BEEN ISSUED.
- *
- * VSN CURRENTLY IN CATALOG.
- * THE VSN SPECIFIED BY THE VSN DIRECTIVE HAS PREVIOUSLY
- * BEEN ADDED TO THE TAPE CATALOG FILE.
- *
- * VSN INTERLOCKED. JSN IS XXXX.
- * THE VSN SPECIFIED BY THE VSN DIRECTIVE IS BUSY
- * AND ASSIGNED (WAITING FOR TAPE TO BE MOUNTED).
- * THE JSN OF THE JOB REQUESTING THE TAPE IS GIVEN.
- *
- * VSN NOT CURRENTLY IN CATALOG.
- * THE VSN SPECIFIED BY THE VSN DIRECTIVE HAS NOT BEEN
- * PREVIOUSLY ADDED TO THE TAPE CATALOG FILE.
- *
- * VSN RESERVED BY UUUUUUU.
- * THE VSN SPECIFIED BY THE VSN DIRECTIVE HAS PREVIOUSLY
- * BEEN ADDED TO THE TAPE CATALOG FILE AND IS ASSIGNED TO
- * A TAPE FILE OF USER NAME UUUUUUU.
- *
- * VSN NOT PROCESSED.
- * THE VSN LEVEL DROP DIRECTIVE HAS BEEN ISSUED.
- *
- * VSN ADDED TO CATALOG.
- * THE ADD DIRECTIVE HAS BEEN ISSUED FOR A VSN THAT HAS
- * NOT BEEN PREVIOUSLY ADDED TO THE TAPE CATALOG FILE.
- *
- * VSN REVISED.
- * THE REVISE DIRECTIVE HAS BEEN ISSUED FOR A VSN THAT
- * HAS BEEN PREVIOUSLY ADDED TO THE TAPE CATALOG FILE.
- SPACE 4,10
- *** DIRECTIVE ERROR MESSAGES.
- *
- * TFSP DIRECTIVE ERROR MESSAGES ARE ISSUED TO THE OUTPUT FILE
- * OR K-DISPLAY AFTER TFSP HAS ATTEMPTED TO PROCESS THE
- * DIRECTIVE. THE MESSAGES ARE PREFIXED BY THE CHARACTERS
- * *ERROR*.
- *
- * ALTERNATE FAMILIES AT MAXIMUM.
- * AN ATTEMPT WAS MADE TO ADD A FAMILY NAME WITH THE
- * *ALTFAM* DIRECTIVE WHEN THE MAXIMUM NUMBER OF
- * ALTERNATE FAMILIES WERE ALREADY DEFINED.
- *
- * ASSIGNED VSNS AT MAXIMUM.
- * AN ATTEMPT WAS MADE TO ASSIGN MORE THAN 60 VSNS TO A
- * TAPE FILE OR TO ASSIGN A VSN TO A TAPE FILE THAT WAS
- * NOT THE LAST FILE OF A MULTI-FILE SET.
- *
- * CANNOT CHANGE SYSTEM VSN FLAG.
- * AN ATTEMPT WAS MADE TO CHANGE THE SYSTEM VSN FLAG OF
- * A VSN ENTRY WHICH WAS ALREADY IN THE CATALOG.
- *
- * CANNOT CHANGE TAPE TYPE / DENSITY.
- * AN ATTEMPT WAS MADE TO CHANGE THE TAPE TYPE OF A VSN
- * ENTRY WHICH WAS ALREADY IN THE CATALOG; OR AN ATTEMPT
- * WAS MADE TO CHANGE THE DENSITY OF A TAPE FILE WHICH
- * HAD VSN-S ASSIGNED, AND THAT NEW DENSITY IMPLIED A
- * CHANGE IN TAPE TYPE.
- *
- * DATA FIELD ERROR.
- * THE DATA SPECIFIED WITH THE DIRECTIVE IS NOT VALID FOR
- * THAT DIRECTIVE.
- *
- * DIRECTIVE INCORRECT FROM CURRENT LEVEL.
- * THE DIRECTIVE THAT WAS ENTERED MAY NOT BE ISSUED FROM
- * THE CURRENT LEVEL. CONSULT *HELP* DISPLAY FOR CORRECT
- * LEVEL.
- *
- * DIRECTIVE NOT VALID ON FAST ATTACH CATALOG.
- * THE DIRECTIVE CAN ONLY BE USED IN LOCAL FILE MODE.
- *
- * FILE BUSY.
- * THE TAPE FILE ENTRY SPECIFIED BY THE FILE OR FILEV
- * DIRECTIVE IS IN USE AND CANNOT BE ACCESSED AT THIS
- * TIME.
- *
- * FILE ALREADY RESERVED.
- * AN ATTEMPT WAS MADE TO ISSUE THE RESERVE DIRECTIVE FOR
- * A TAPE FILE THAT ALREADY WAS RESERVED.
- *
- * FILE IDENTIFIER CONFLICT.
- * THE FILE IDENTIFIER SPECIFIED BY THE FI DIRECTIVE IS
- * THE SAME AS THE FILE IDENTIFIER FOR ANOTHER OF THE
- * SYMBOLIC ACCESS FILES OF THE USER.
- *
- * FILE NAME CONFLICT.
- * THE FILE SPECIFIED BY THE READ DIRECTIVE IS THE SAME
- * AS A FILE USED BY ONE OF THE COMMAND
- * PARAMETERS.
- *
- * FILE NOT IN CATALOG.
- * THE TAPE FILE SPECIFIED BY THE RELEASF OR RELEASV
- * DIRECTIVE IS NOT AMONG THE TAPE FILES OF THE USER.
- *
- * FILE NOT RESERVED.
- * AN ATTEMPT WAS MADE TO ISSUE THE AUSER OR AMEND
- * DIRECTIVE FOR A TAPE FILE THAT IS NOT YET RESERVED.
- *
- * INCORRECT DIRECTIVE.
- * EITHER THE DIRECTIVE IS NOT A TFSP DIRECTIVE OR IT
- * CANNOT BE ISSUED AT THIS POINT IN THE DIRECTIVE
- * STREAM.
- *
- * INCORRECT FILE IDENTIFIER.
- * AN INCORRECT FILE IDENTIFIER WAS SPECIFIED.
- *
- * INCORRECT SEQUENCE NUMBER.
- * THE SEQUENCE NUMBER SPECIFIED BY THE FILEV DIRECTIVE
- * IS TOO LARGE.
- *
- * NO SCRATCH AVAILABLE.
- * NO MORE SCRATCH TAPES LEFT IN THE SCRATCH POOL.
- * SCRATCH TAPES MUST BE ADDED TO THE TAPE CATALOG
- * BEFORE ANY MORE SCRATCH TAPES CAN BE ASSIGNED.
- *
- * NON-MATCHING STATUSES.
- * THE STATUS OF THE VSN SPECIFIED BY THE AVSN DIRECTIVE
- * DOES NOT MATCH THE STATUS OF THE FIRST VSN OF THE TAPE
- * FILE.
- *
- * NON-MATCHING TAPE TYPE.
- * THE TAPE TYPE OF THE VSN SPECIFIED BY THE AVSN
- * DIRECTIVE EITHER DOES NOT MATCH THE TAPE TYPE IN THE
- * TAPE FILE CATALOG ENTRY, OR DOES NOT MATCH THE TAPE
- * TYPE OF THE FIRST VSN OF THE TAPE FILE.
- *
- * READ DIRECTIVE INCORRECT.
- * AN ATTEMPT WAS MADE TO ISSUE THE READ DIRECTIVE FROM
- * THE FILE BEING READ BY A PREVIOUS READ DIRECTIVE.
- *
- * REQUIRED DATA MISSING.
- * AN ATTEMPT WAS MADE TO RESERVE A TAPE FILE ENTRY
- * WITHOUT A VSN.
- *
- * SYSTEM VSN CANNOT BE USER-OWNED.
- * AN ATTEMPT WAS MADE TO CHANGE THE OWNERSHIP OF A VSN
- * WITH THE SYSTEM VSN FLAG SET FROM *CENTER* TO *USER*;
- * OR AN ATTEMPT WAS MADE TO SET THE SYSTEM VSN FLAG FOR
- * A USER-OWNED VSN.
- *
- * SYSTEM VSN MUST BE FIRST VSN.
- * AN ATTEMPT WAS MADE TO ADD A SYSTEM VSN TO AN EXISTING
- * TAPE FILE ENTRY. A SYSTEM VSN MAY BE THE FIRST VSN OF
- * A TAPE FILE ENTRY, BUT MAY NOT OCCUPY ANY OTHER PLACE
- * IN THE SET.
- *
- * VALIDATED USERS AT MAXIMUM.
- * AN ATTEMPT WAS MADE TO ADD A NINTH VALIDATED USER VIA
- * THE VALIDAT DIRECTIVE.
- *
- * VSN ALREADY ASSIGNED.
- * THE VSN SPECIFIED BY AN REMOVE OR AVSN DIRECTIVE IS
- * ASSIGNED TO A TAPE FILE ENTRY.
- *
- * VSN ALREADY IN CATALOG.
- * AN ATTEMPT WAS MADE TO ISSUE THE ADD DIRECTIVE FOR A
- * VSN THAT HAD ALREADY BEEN ADDED TO THE TAPE CATALOG
- * FILE.
- *
- * VSN BUSY.
- * THE VSN SPECIFIED BY THE VSN OR AVSN DIRECTIVE IS IN
- * USE AND CANNOT BE ACCESSED AT THIS TIME.
- *
- * VSN NOT ADDED TO CATALOG.
- * AN ATTEMPT WAS MADE TO ISSUE THE REVISE DIRECTIVE FOR
- * A VSN THAT HAD NOT YET BEEN ADDED TO THE TAPE CATALOG
- * FILE.
- *
- * VSN NOT ASSIGNED TO FILE.
- * THE VSN SPECIFIED BY THE RELEASE DIRECTIVE IS NOT
- * ASSIGNED TO A TAPE FILE.
- *
- * VSN NOT AVAILABLE.
- * THE VSN SPECIFIED BY THE FILEV DIRECTIVE IS EITHER NOT
- * IN THE TAPE CATALOG OR IS ASSIGNED TO ANOTHER USER.
- *
- * VSN NOT IN CATALOG.
- * THE VSN SPECIFIED BY AN RELEASE OR AVSN DIRECTIVE IS
- * NOT IN THE TAPE CATALOG FILE.
- TITLE SYSTEM EQUIVALENCES AND MACROS FOR MACROS.
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCMAC
- *CALL COMCCMD
- *CALL COMCDCM
- QUAL COMSMTX
- *CALL COMSMTX
- QUAL *
- *CALL COMSPRD
- *CALL COMSSFM
- *CALL COMSSSD
- *CALL COMSSSJ
- *CALL COMSTFM
- SETREG SPACE 4,15
- ** SETREG - SET REGISTER WITH VALUE OR DEFAULT.
- *
- * SETREG REG,VALUE,DEFAULT
- *
- * ENTRY REG = REGISTER TO RECEIVE VALUE OR DEFAULT.
- * VALUE = VALUE SET INTO *REG* IF NOT NULL.
- * DEFAULT = VALUE SET INTO *REG* IF *VALUE* IS NULL.
- *
- * EXIT REGISTER SET TO *VALUE* OR *DEFAULT*.
- *
- * MACROS SETVAL.
- PURGMAC SETREG
- SETREG MACRO RG,VA,DF
- SETVAL ( R= RG,),VA,DF
- ENDM
- SETVAL SPACE 4,10
- ** SETVAL - SET VALUE OR ITS DEFAULT.
- *
- * SETVAL (INST),VALUE,DEFAULT
- *
- * ENTRY INST = FIRST PART OF INSTRUCTION. (INCLUDE SPACES.)
- * VALUE = VALUE FOR *INST* IF NOT NULL.
- * DEFAULT = VALUE FOR *INST* IF *VALUE* IS NULL.
- *
- * EXIT INSTRUCTION SET WITH *VALUE* OR *DEFAULT*.
- PURGMAC SETVAL
- SETVAL MACRO IN,VA,DF
- IFC EQ,$VA$$ IF DEFAULT
- IN_DF
- ELSE IF NOT DEFAULT
- IN_VA
- ENDIF
- ENDM
- TITLE MACROS FOR TABLE GENERATION.
- BITMIC SPACE 4,15
- ** BITMIC - GENERATE SPECIAL CHARACTER BIT STRING MICRO.
- *
- * TAG BITMIC (C1,C2,...,CN)
- *
- * ENTRY CI = SPECIAL CHARACTER (CODE .GE. 45B).
- * = *L* FOR LEFT PARENTHESIS.
- * = *R* FOR RIGHT PARENTHESIS.
- * = *U* FOR UNDERLINE/ARROW.
- *
- * EXIT DECIMAL MICRO *TAG* IS GENERATED. BIT POSITION
- * EQUALING (CHARACTER CODE - 45B) IS SET FOR EACH
- * CHARACTER *CI*. IF *TAG* IS REDEFINED, THE NEW VALUE
- * IS THE LOGICAL DIFFERENCE OF THE OLD VALUE WITH THE
- * NEW BIT STRING. FOR COLON, BIT POSITION 35 IS SET.
- PURGMAC BITMIC
- MACRO BITMIC,TAG,S
- LOCAL A,B,C
- A DECMIC 0
- ECHO ,B=(S)
- .1 IFC EQ,D_B_D_L_D
- C DECMIC 1R(-1R+
- .1 ELSE
- .2 IFC EQ,D_B_D_R_D
- C DECMIC 1R)-1R+
- .2 ELSE
- .3 IFC EQ,D_B_D_U_D
- C DECMIC 65B-1R+
- .3 ELSE
- .4 IFC EQ,D_B_D_:_D
- C DECMIC 100B-1R+
- .4 ELSE
- C DECMIC 1R_B-1R+
- ENDIF
- A DECMIC "A"&1S_"C"
- ENDD
- IF -MIC,TAG
- TAG DECMIC "A"
- ELSE
- TAG DECMIC "TAG"&"A"
- ENDIF
- ENDM
- CATBASE SPACE 4,10
- ** CATBASE - INITIALIZE TABLE FOR *CATBIT* MACRO.
- *
- * NAME CATBASE
- *
- * ENTRY NAME = NAME OF TABLE.
- *
- * EXIT *NAME* DEFINED TO LOCATION COUNTER VALUE.
- * */CATBIT/BASE* SET TO ORIGIN COUNTER.
- PURGMAC CATBASE
- MACRO CATBASE,TAG
- TAG BSS 0
- QUAL CATBIT
- BASE SET *O
- QUAL *
- LOC 0
- ENDM
- CATBIT SPACE 4,25
- ** CATBIT - GENERATE CATALOG ENTRY.
- *
- * NAME CATBIT WORD,UPB,BCOUNT,VALUE1,VALUE2
- *
- * ENTRY NAME = IDENTIFIER TO BE ASSOCIATED WITH CATALOG
- * ENTRY. DEFAULT IN NO IDENTIFIER.
- * WORD = RELATIVE ADDRESS OF ENTRY IN CATALOG. VERIFIED
- * AGAINST ACTUAL ADDRESS. DEFAULT IS NO
- * VERIFICATION.
- * UPPERB = UPPER BIT POSITION OF CATALOG ENTRY.
- * VERIFIED AGAINST ACTUAL BIT POSITION.
- * DEFAULT IS NO VERIFICATION.
- * BCOUNT = BIT COUNT OF CATALOG ENTRY.
- * VALUE1 = VALUE OF CATALOG ENTRY IF *BCOUNT* .LE. 60.
- * VALUE OF FIRST 60 BITS OF CATALOG ENTRY IF
- * *BCOUNT* .GT. 60. DEFAULT IS 0.
- * VALUE2 = VALUE OF REMAINDER OF CATALOG ENTRY IF
- * *BCOUNT* IS .GT. 60.
- *
- * EXIT CATALOG ENTRY GENERATED.
- * */ADD/NAME* DEFINED TO ORIGIN COUNTER.
- * */CAT/NAME* DEFINED TO RELATIVE ADDRESS IN CATALOG.
- * CATALOG.
- * */UPB/NAME* DEFINED TO POSITION COUNTER.
- * */BTC/NAME* DEFINED TO *BCOUNT*.
- PURGMAC CATBIT
- MACRO CATBIT,TAG,WD,UB,BC,V1,V2
- LOCAL A
- IFC NE,$TAG$$ IF *NAME* TO BE DEFINED
- QUAL ADD
- TAG EQU *O
- QUAL *
- QUAL CAT
- TAG EQU *
- QUAL *
- QUAL UPB
- TAG EQU *P-1
- QUAL *
- QUAL BTC
- TAG EQU BC
- QUAL *
- ENDIF
- IFC NE,$WD$$ IF VERIFY RELATIVE ADDRESS
- ERRNZ WD-* INCONSISTENT CATALOG ADDRESS
- ENDIF
- IFC NE,$UB$$ IF VERIFY UPPER BIT
- ERRNZ UB-*P+1 INCONSISTENT BIT POSITION
- ENDIF
- IFLE BC,60 IF BIT COUNT .LE. 60
- A DECMIC BC
- VFD "A"/V1
- ELSE IF BIT COUNT .GT. 60
- A DECMIC BC-60
- VFD 60/V1
- VFD "A"/V2
- ENDIF
- ENDM
- CATEND SPACE 4,10
- ** CATEND - END TABLE FOR CATBIT MACRO.
- *
- * CATEND LENGTH
- *
- * ENTRY LENGTH = TABLE LENGTH TO VERIFY AGAINST ACTUAL LENGTH.
- PURGMAC CATEND
- CATEND MACRO LN
- BSS 0
- ERRNZ LN-* INCONSISTENT TABLE LENGTH
- LOC *O
- ENDM
- DCTAB SPACE 4,45
- ** DCTAB - GENERATE DIRECTIVE CONTROL TABLE.
- *
- * NAME DCTAB IND,MNC,MXC,AC,SC,UB,BC,PRO,ENT,MNV,MXV,DEF
- *
- * ENTRY NAME = LABEL ASSOCIATED WITH DIRECTIVE.
- * IND = *DIP* PROCESSOR INDEX.
- * PIZF - ZERO FILL.
- * PIBF - BLANK FILL.
- * PIOP - OPTION SELECTION.
- * PIBD - NUMERIC BINARY DATA.
- * PIPD - PACKED DATE.
- * PIPT - PACKED TIME.
- * PIJD - JULIAN DATE.
- * PIVQ - VSN/SEQUENCE NUMBER.
- * PIVS - PADDED VSN.
- * MNC = MINIMUM NUMBER OF CHARACTERS.
- * MXC = MAXIMUM NUMBER OF CHARACTERS.
- * AC = ADDRESS OF ALLOWED CHARACTERS BIT STRING.
- * DEFAULT IS ="NC".
- * SC = ADDRESS OF SUPPRESSED CHARACTERS BIT STRING.
- * DEFAULT IS ="BL".
- * UB = UPPER BIT POSITION OF CATALOG ENTRY.
- * DEFAULT IS /UPB/NAME.
- * BC = BIT COUNT OF CATALOG ENTRY.
- * = 0 IF NO CATALOG ENTRY.
- * DEFAULT IS /BTC/NAME.
- * PRO = POST PROCESSOR ADDRESS.
- * DEFAULT IS 0 - NO POST PROCESSOR.
- * ENT = ADDRESS OF CATALOG ENTRY.
- * DEFAULT IS */ADD/NAME*.
- * MNV = ADDRESS OF MINIMUM VALUE FOR *PIBD* TYPE.
- * MXV = ADDRESS OF MAXIMUM VALUE FOR *PIBD* TYPE.
- * = ADDRESS OF OPTION TABLE FOR *PIOP* TYPE.
- * DEFAULT FOR *PIOP* TYPE IS /DOTAB/NAME.
- * DEF = ADDRESS OF DEFAULT VALUE.
- * DEFAULT FOR *PIOP* TYPE IS /DOTAB/NAME.
- *
- * EXIT LABEL /DCTAB/NAME IS GENERATED.
- * MICROS *POP*, *MNV*, *MXV*, AND *DEF* DEFINED
- * FOR *DCTABO*.
- * FIRST THREE WORDS OF TABLE ARE GENERATED.
- * 12/IND,6/MNC,6/MXC,18/AC,18/SC
- * 12/UB,12/BC,18/PRO,18/ENT
- * 6/,18/MNV,18/MXV,18/DEF
- *
- * NOTES THE *DCTAB* MACRO MUST BE FOLLOWED BY A *DCTABL*
- * MACRO.
- PURGMAC DCTAB
- MACRO DCTAB,TAG,IN,MC,XC,AC,SC,UB,BC,PR,EN,MV,XV,DF
- LOCAL A
- * SET FIRST WORD.
- A VFD 12/IN,6/MC,6/XC
- SETVAL ( VFD 18/),AC,(="NC")
- SETVAL ( VFD 18/),SC,(="BL")
- * DEFINE *NAME*.
- QUAL DCTAB
- TAG EQU A
- QUAL *
- * SET SECOND WORD.
- IF -DEF,/UPB/TAG IF NO DEFAULTS
- VFD 12/UB,12/BC,18/PR,18/EN
- ELSE IF DEFAULTS
- SETVAL ( VFD 12/),UB,/UPB/TAG
- SETVAL ( VFD 12/),BC,/BTC/TAG
- VFD 18/PR
- SETVAL ( VFD 18/),EN,/ADD/TAG
- ENDIF
- * SET MICROS FOR *DCTABO*.
- POP MICRO 1,, IN
- SETVAL ( MNV MICRO 1,, ),(MV),0
- IFC NE,$IN$PIOP$ IF NOT OPTION TYPE
- SETVAL ( MXV MICRO 1,, ),(XV),0
- SETVAL ( DEF MICRO 1,, ),(DF),0
- ELSE IF OPTION TYPE
- SETVAL ( MXV MICRO 1,, ),(XV),/DOTAB/TAG
- SETVAL ( DEF MICRO 1,, ),(DF),/DOTAB/TAG
- ENDIF
- * SET CHECK FOR THIRD WORD.
- DCTRMT RMT
- ERRNZ /DCTAB/TAG+2-* NO *DCTABL* FOR TAG
- DCTRMT RMT
- ENDM
- DCTABL SPACE 4,20
- ** DCTABL - GENERATE DIRECTIVE LEVEL CONTROL TABLE.
- *
- * NAME DCTABL PVL,DVL
- *
- * ENTRY NAME = LABEL ASSOCIATED WITH DIRECTIVE.
- * PVL = FLAG FOR IMPLIED DROP REQUIREMENT.
- * = 0 IF DIRECTIVE REQUIRES NO IMPLIED DROP.
- * = 1 IF DIRECTIVE REQUIRES IMPLIED DROP.
- * DVL = FLAG FOR LOWER LEVEL VALIDITY.
- * = 0 IF VALID FROM LOWER LEVEL.
- * = 1 IF NOT VALID FROM ANOTHER LEVEL.
- * MICROS *POP*, *MNV*, *MXV*, AND *DEF* DEFINED
- * BY *DCTAB*.
- *
- * EXIT WORD 2 OF DIRECTIVE CONTROL TABLE REGENERATED.
- * 1/,1/PVL,1/DVL,3/,18/MNV,18/MXV,18/DEF
- PURGMAC DCTABL
- MACRO DCTABL,TAG,PV,DV
- * SET MICROS FOR *DCTABO*.
- SETVAL ( PVL MICRO 1,, ),(PV),0
- SETVAL ( DVL MICRO 1,, ),(DV),0
- * SET THIRD WORD.
- DCTRMT HERE
- VFD 1/,1/"PVL",1/"DVL",3/,18/"MNV",18/"MXV",18/"DEF"
- ENDM
- DCTABO SPACE 4,40
- ** DCTABO - GENERATE DIRECTIVE CONTROL TABLE OUTPUT BLOCK.
- *
- * NAME DCTABO KCH,KUB,KADD,ACH,AUB,AADD,SCH,SUB,SADD,MCH,MUB,MADD
- *
- * ENTRY NAME = DIRECTIVE IDENTIFIER.
- * KCH = NUMBER OF CHARACTERS IN K-DISPLAY.
- * DEFAULT IS 10.
- * KUB = UPPER BIT POSITION IN K-DISPLAY.
- * DEFAULT IS 5.
- * KADD = ADDRESS IN K-DISPLAY.
- * DEFAULT IS */KDIS/NAME*.
- * ACH = NUMBER OF CHARACTERS IN AUDIT LISTING.
- * DEFAULT IS */ALSC/NAME*.
- * AUB = UPPER BIT POSITION IN AUDIT LISTING.
- * DEFAULT IS */ALSU/NAME*.
- * AADD = ADDRESS IN AUDIT LISTING.
- * DEFAULT IS */ALS/NAME*.
- * SCH = NUMBER OF CHARACTERS IN SOURCE LISTING.
- * DEFAULT IS */SLSC/NAME*.
- * SUB = UPPER BIT POSITION IN SOURCE LISTING.
- * DEFAULT IS */SLSU/NAME*.
- * SADD = ADDRESS IN SOURCE LISTING.
- * DEFAULT IS */SLS/NAME*.
- * MCH = NUMBER OF CHARACTERS IN MACHINE READABLE LIST.
- * DEFAULT IS */MLSC/NAME*.
- * MUB = UPPER BIT POSITION IN MACHINE READABLE LISTING.
- * DEFAULT IS */MLSU/NAME*.
- * MADD = ADDRESS IN MACHINE READABLE LISTING.
- * DEFAULT IS */MSL/NAME*.
- * MICROS *POP*, *MNV*, *MXV*, *DEF*, *PVL*,
- * AND *DVL* DEFINED BY *DCTABL* AND
- * BY *DCTAB*.
- *
- * EXIT OUTPUT BLOCK FLAG SET IN DIRECTIVE CONTROL TABLE.
- * TWO WORD BLOCK GENERATED.
- * 6/KCH,6/KUB,18/KADD,6/ACH,6/AUB,18/AADD
- * 6/SCH,6/SUB,18/SADD,6/MCH,6/MUB,18/MADD
- PURGMAC DCTABO
- MACRO DCTABO,TAG,KC,KU,KA,AC,AU,AA,SC,SU,SA,MC,MU,MA
- LOCAL A,B
- * SET OUTPUT BLOCK FLAG IN DIRECTIVE CONTROL TABLE.
- A SET *O
- B SET *
- ORG /DCTAB/TAG+2
- VFD 1/1,1/"PVL",1/"DVL",3/,18/"MNV",18/"MXV",18/"DEF"
- ORG A
- LOC B
- * SET OUTPUT BLOCK VALUES.
- IFC EQ,$"POP"$PIBD$ IF BINARY DATA TYPE
- A SET -1
- ELSE IF NOT BINARY DATA TYPE
- A SET 1
- ENDIF
- SETVAL ( VFD 6/),KC,10
- SETVAL ( VFD 6/),KU,5
- SETVAL ( VFD 18/),KA,(/KDIS/TAG)
- SETVAL ( VFD 6/),AC,(/ALSC/TAG*A)
- SETVAL ( VFD 6/),AU,(/ALSU/TAG)
- SETVAL ( VFD 18/),AA,(/ALS/TAG)
- SETVAL ( VFD 6/),SC,(/SLSC/TAG*A)
- SETVAL ( VFD 6/),SU,(/SLSU/TAG)
- SETVAL ( VFD 18/),SA,(/SLS/TAG)
- SETVAL ( VFD 6/),MC,(/MLSC/TAG*A)
- SETVAL ( VFD 6/),MU,(/MLSU/TAG)
- SETVAL ( VFD 18/),MA,(/MLS/TAG)
- ENDM
- DOTAB SPACE 4,15
- ** DOTAB - GENERATE DIRECTIVE OPTION TABLE.
- *
- * NAME DOTAB ((OP1,VAL1),(OP2,VAL2),...,(OPN,VALN))
- *
- * ENTRY NAME = LABEL ASSOCIATED WITH DIRECTIVE.
- * OPI = DIRECTIVE OPTION.
- * VALI = VALUE ASSOCIATED WITH OPTION *OPI*.
- *
- * EXIT LABEL /DOTAB/NAME IS GENERATED.
- * TWO WORD BLOCK FOR EACH OPTION IS GENERATED.
- * 60/0L*OPI*
- * 60/*VALI*
- * TABLE IS TERMINATED BY A ZERO WORD.
- PURGMAC DOTAB
- MACRO DOTAB,TAG,ST
- LOCAL A,B,DOENT
- * DEFINE MACRO FOR TABLE GENERATION.
- * DOENT OPTION,VALUE
- DOENT MACRO OP,VA
- VFD 60/0L_OP
- VFD 60/VA
- DOENT ENDM
- * GENERATE TABLE.
- A SET *
- ECHO ,B=(ST)
- DOENT B
- ENDD
- CON 0
- * DEFINE *NAME*.
- QUAL DOTAB
- TAG EQU A
- QUAL *
- ENDM
- DTAB SPACE 4,15
- ** DTAB - GENERATE DIRECTIVE TABLE ENTRY.
- *
- * NAME DTAB IDENT,ADDR
- *
- * ENTRY NAME = IF SPECIFIED, LABEL */DTAB/NAME* IS DEFINED.
- * IDENT = DIRECTIVE IDENTIFIER.
- * ADDR = PROCESSOR/CONTROL TABLE ADDRESS.
- * DEFAULT IS */DCTAB/NAME*.
- *
- * EXIT ONE WORD ENTRY GENERATED.
- * 42/*IDENT*,18/ADDR
- PURGMAC DTAB
- MACRO DTAB,TAG,ID,AD
- LOCAL A
- A VFD 42/0L_ID
- SETVAL ( VFD 18/),AD,(/DCTAB/ID)
- IFC NE,$TAG$$ IF DEFINE *NAME*
- QUAL DTAB
- TAG EQU A
- QUAL *
- ENDIF
- ENDM
- INDEX SPACE 4,15
- ** INDEX - GENERATE INDEXED TABLE ENTRY.
- *
- * INDEX IND,OP,ADD
- *
- * ENTRY IND = INDEX VALUE.
- * OP = OPERATION FIELD OF TABLE ENTRY.
- * ADD = ADDRESS FIELD OF TABLE ENTRY.
- * LABELS /INDEX/NAME AND /INDEX/LENGTH DEFINED BY THE
- * *INDTAB* MACRO.
- *
- * EXIT TABLE ENTRY GENERATED.
- PURGMAC INDEX
- INDEX MACRO IN,OP,AD
- LOCAL A
- A SET *O
- ORG /INDEX/NAME+/INDEX/LENGTH*IN
- LOC IN
- OP AD
- ORG A+/INDEX/LENGTH
- LOC *O
- ENDM
- INDTAB SPACE 4,10
- ** INDTAB - DEFINE START OF INDEXED TABLE.
- *
- * NAME INDTAB LENGTH
- *
- * ENTRY NAME = NAME OF INDEXED TABLE.
- * LENGTH = LENGTH OF INDEXED TABLE ENTRY.
- *
- * EXIT LABELS /INDEX/NAME AND /INDEX/LENGTH DEFINED FOR USE
- * BY THE *INDEX* MACRO.
- PURGMAC INDTAB
- MACRO INDTAB,TAG,LN
- TAG BSS 0
- QUAL INDEX
- NAME SET TAG
- LENGTH SET LN
- QUAL *
- ENDM
- KEND SPACE 4,10
- ** KEND - END K-DISPLAY.
- *
- * KEND
- *
- * EXIT QUALIFIED LABELS *NEXT*, *LENGTH*, AND *LINES*
- * DEFINED FOR K-DISPLAY TABLE.
- PURGMAC KEND
- KEND MACRO
- NEXT EQU *
- LENGTH EQU NEXT-START
- LINES EQU "KLINES"
- QUAL *
- CON 0
- ENDM
- KLINE SPACE 4,10
- ** KLINE - GENERATE K-DISPLAY LINE.
- *
- * KLINE (STRING),E,CPL
- *
- * ENTRY STRING = CHARACTER STRING TO DISPLAY.
- * E = END-OF-LINE GENERATED IF SPECIFIED.
- * CPL = MAXIMUM NUMBER OF CHARACTERS PER LINE.
- * DEFAULT IS 60.
- * MICROS *KLINEC* AND *KLINES* PREVIOUSLY DEFINED.
- *
- * EXIT DISPLAY LINE GENERATED.
- * MICROS *KLINEC* AND *KLINES* INCREMENTED.
- PURGMAC KLINE
- KLINE MACRO ST,EL,CC
- LOCAL A,B
- .1 IFC EQ,$EL$$ IF NOT END OF LINE
- DATA H$ST$
- .1 ELSE IF END OF LINE
- DATA C$ST$
- .2 IF MIC,KLINES IF *KLINES* PREVIOUSLY DEFINED
- KLINES DECMIC "KLINES"+1
- ENDIF
- A MICRO 1,,$ST$
- B MICCNT A
- IF -MIC,KLINEC IF *KLINEC* NOT PREVIOUSLY DEFINED
- KLINEC DECMIC 0
- ENDIF
- KLINEC DECMIC "KLINEC"+B
- .1 IFC NE,$CC$$
- ERRNG CC-"KLINEC" K-DISPLAY LINE TOO LONG
- .1 ELSE
- .2 IFC NE,$EL$$
- ERRNG 60-"KLINEC" K-DISPLAY LINE TOO LONG
- ENDIF
- IFC NE,$EL$$ IF END OF LINE
- KLINEC DECMIC 0
- ENDIF
- ENDM
- KNEXT SPACE 4,15
- ** KNEXT - GENERATE POINTER TO REST OF K-DISPLAY.
- *
- * KNEXT NDISP,NOLAB
- *
- * ENTRY NDISP = ADDRESS OF REST OF K-DISPLAY.
- * NOLAB = IF SPECIFIED, LABELS *NEXT*, *LENGTH*, AND
- * *LINES* ARE NOT DEFINED.
- *
- * EXIT ONE WORD GENERATED TO POINT TO REST OF K-DISPLAY.
- * 12/7777B,30/,18/NDISP
- * LABEL *NEXT* DEFINED AT CURRENT LOCATION.
- * LABEL *LENGTH* DEFINED EQUAL TO *NEXT-START*.
- * LABEL *LINES* SET TO MICRO *KLINES*.
- PURGMAC KNEXT
- KNEXT MACRO ND,NL
- LOCAL A
- A EQU *
- VFD 12/7777B,30/,18//ND/START
- IFC EQ,$NL$$ IF NOT *NOLAB*
- NEXT EQU A
- LENGTH EQU NEXT-START
- LINES EQU "KLINES"
- QUAL *
- ENDIF
- ENDM
- KSTART SPACE 4,15
- ** KSTART - START K-DISPLAY BUFFER.
- *
- * NAME KSTART CW
- *
- * ENTRY NAME = NAME ASSIGNED TO K-DISPLAY BUFFER.
- * CW = IF SPECIFIED, A CONTROL WORD SPECIFYING 64
- * CHARACTERS PER LINE AND CODED FORMAT IS
- * GENERATED.
- *
- * EXIT LABEL *NAME* DEFINED AT CURRENT LOCATION.
- * CONTROL WORD IS GENERATED.
- * 10/0,1/0,1/1,47/0,1/0 IF *CW*.
- * 42/,18//NAME/LENGTH IF NOT *CW*.
- * LABEL */NAME/START* DEFINED AFTER CONTROL WORD.
- * *NAME* SET AS QUALIFIER.
- * MICRO *KLINES* INITIALIZED.
- PURGMAC KSTART
- MACRO KSTART,TAG,CW
- IFC EQ,$CW$$ IF NOT *CW*
- TAG VFD 42/,18//TAG/LENGTH
- ELSE IF *CW*
- TAG VFD 10/0,1/0,1/1,47/0,1/0
- ENDIF
- QUAL TAG
- START BSS 0
- KLINES DECMIC 0
- ENDM
- LISTER SPACE 4,25
- ** LISTER - GENERATE OUTPUT/SOURCE LISTING ENTRY.
- *
- * NAME LISTER QUAL,CHAR,STRING,E,CPL
- *
- * ENTRY NAME = IF SPECIFIED, THREE LABELS ARE DEFINED -
- * /"LQUAL"/NAME - ADDRESS OF LISTING ENTRY.
- * /"LQUAL"U/NAME - UPPER BIT OF LISTING ENTRY.
- * /"LQUAL"C/NAME - BIT COUNT OF LISTING ENTRY.
- * QUAL = IF SPECIFIED, MICRO *LQUAL* IS SET TO *QUAL*.
- * MUST BE LESS THAN 8 CHARACTERS.
- * CHAR = NUMBER OF CHARACTERS IN LISTING ENTRY.
- * STRING = CHARACTERS OF LISTING ENTRY.
- * DEFAULT IS BLANKS.
- * E = IF SPECIFIED, END OF LINE IS GENERATED.
- * CPL = MAXIMUM NUMBER OF CHARACTERS PER LINE.
- * DEFAULT IS UNLIMITED.
- * MICRO *LISTERC* SET TO NUMBER OF CHARACTERS IN LINE.
- *
- * EXIT LISTING ENTRY GENERATED.
- * THREE LABELS DEFINED.
- * MICRO *LQUAL* REDEFINED.
- * MICRO *LISTERC* INCREMENTED.
- PURGMAC LISTER
- MACRO LISTER,TAG,LQ,CH,ST,EN,CC
- LOCAL A,B,D,E,F,G,I,J
- A EQU *O
- B EQU *P-1
- D DECMIC CH
- E MICRO 1,,$ST$
- F SET CH-1
- F SET F/10
- DUP F
- D DECMIC "D"-10
- G MICRO 1,10,$"E"$
- E MICRO 11,,$"E"$
- VFD 60/10H"G"
- ENDD
- I DECMIC "D"*6
- VFD "I"/"D"H"E"
- .1 IFC NE,$EN$$ IF END OF LINE
- J DECMIC *P
- VFD "J"/0
- .2 IFLT "J",12 IF MORE ZEROS NEEDED
- VFD 60/0
- ENDIF
- IFC NE,$LQ$$ IF QUALIFIER SPECIFIED
- LQUAL MICRO 1,, LQ
- LISTERC DECMIC CH
- ELSE IF NO QUALIFIER
- LISTERC DECMIC "LISTERC"+CH
- ENDIF
- IFC NE,$TAG$$ IF *NAME* SPECIFIED
- QUAL "LQUAL"
- TAG EQU A
- QUAL *
- QUAL "LQUAL"U
- TAG EQU B
- QUAL *
- QUAL "LQUAL"C
- TAG EQU CH
- QUAL *
- ENDIF
- IFC NE,$CC$$ IF MAXIMUM NUMBER OF CHARACTERS SPECIFIED
- ERRNG CC-"LISTERC" LIST LINE TOO LONG
- ENDIF
- IFC NE,$EN$$ IF END OF LINE
- LISTERC DECMIC 0
- ENDIF
- ENDM
- REWORD SPACE 4,10
- ** REWORD - RESET VALUE IN PREVIOUSLY DEFINED WORD.
- *
- * REWORD ADDR,(VALUE)
- *
- * ENTRY ADDR = ADDRESS OF WORD TO BE RESET.
- * VALUE = NEW VALUE OF WORD IN *VFD* BIT FORMAT.
- *
- * EXIT (ADDR) = VALUE.
- PURGMAC REWORD
- REWORD MACRO AD,VA
- LOCAL A,B
- A SET *
- B SET *O
- ORG AD
- VFD VA
- ORG B
- LOC A
- ENDM
- TITLE MACROS FOR EXECUTABLE CODE.
- ABTMSG SPACE 4,15
- ** ABTMSG - ABORT WITH ERROR MESSAGE
- *
- * ABTMSG EADD,NA
- *
- * ENTRY EADD = ERROR MESSAGE ADDRESS. (USES A6, X6.)
- * IF NOT SPECIFIED, ADDRESS IS NOT CHANGED.
- *
- * NA = IF SPECIFIED, NO JUMP TO *ABT*.
- *
- * EXIT *TFSP* ABORTED. ERROR MESSAGE ISSUED TO DAYFILE.
- *
- * USES A - 6.
- * X - 6.
- *
- * CALLS ABT.
- PURGMAC ABTMSG
- ABTMSG MACRO EA,NA
- MACREF ABTMSG
- IFC NE,$EA$$ IF SET ERROR MESSAGE ADDRESS
- R= X6,EA
- R= A6,EM
- ENDIF
- IFC EQ,$NA$$ IF ABORT *TFSP*
- EQ //ABT ABORT *TFSP*
- ENDIF
- ENDM
- CALLTFM SPACE 4,15
- ** CALLTFM - CALL *TFM*.
- *
- * CALLTFM FET,REQ
- *
- * ENTRY FET = FET ADDRESS. (USES X2.)
- * REQ = FUNCTION CODE IF NO INTERLOCK.
- * = (-1)*FUNCTION CODE IF INTERLOCK. (USES X6.)
- *
- * EXIT (X2) = FET ADDRESS.
- * (X4) = ERROR CODE.
- * TO *ABT* IF UNRECOGNIZABLE ERROR CODE.
- *
- * USES X - 6.
- *
- * CALLS CTF.
- PURGMAC CALLTFM
- CALLTFM MACRO FT,RQ
- MACREF CALLTFM
- R= X6,RQ SET FUNCTION CODE
- R= X2,FT SET FET ADDRESS
- RJ //CTF CALL *TFM*
- ENDM
- CHKFIL SPACE 4,10
- ** CHKFIL - CHECK IF FILE IS READY.
- *
- * CHKFIL FET
- *
- * ENTRY FET = FET ADDRESS OF FILE. (USES X2.)
- *
- * EXIT (X1) = 0 IF NO FILE NAME.
- * (X2) = FET ADDRESS.
- *
- * CALLS CFR.
- PURGMAC CHKFIL
- CHKFIL MACRO FT
- MACREF CHKFIL
- R= X2,FT
- RJ //CFR CHECK IF FILE IS READY
- ENDM
- CLEAR SPACE 4,15
- ** CLEAR - CLEAR BUFFER.
- *
- * CLEAR BUF,LEN
- *
- * ENTRY BUF = ADDRESS OF BUFFER. (USES B6.)
- * LEN = LENGTH OF BUFFER.
- *
- * EXIT (B6) = BUFFER ADDRESS.
- * WORDS IN BUFFER SET TO ZERO.
- *
- * USES A - 6.
- * B - 7.
- * X - 6.
- PURGMAC CLEAR
- CLEAR MACRO BF,LN
- LOCAL A,B
- MACREF CLEAR
- R= B6,BF
- R= B7,LN
- R= X6,0
- A SB7 B7-B1
- NG B7,B IF END OF BUFFER
- SA6 B6+B7 CLEAR WORD IN BUFFER
- EQ A CHECK NEXT WORD
- B BSS 0 EXIT
- ENDM
- CLINES SPACE 4,15
- ** CLINES - COUNT LINES IN BUFFER.
- *
- * CLINES BUF,WC
- *
- * ENTRY BUF = BUFFER ADDRESS. (USES A1, X1.)
- * WC = WORD COUNT OF BUFFER. (USES B6.)
- *
- * EXIT (A1) = LWA+1 OF BUFFER.
- * (B6) = WORD COUNT OF BUFFER.
- * (B7) = LINE COUNT OF BUFFER.
- *
- * USES B - 2.
- * X - 1.
- *
- * CALLS CWL.
- PURGMAC CLINES
- CLINES MACRO BF,WC
- MACREF CLINES
- R= A1,BF
- R= B6,WC
- R= B2,0
- RJ CWL COUNT WORDS/LINES IN BUFFER
- ENDM
- CWORDS SPACE 4,15
- ** CWORDS - COUNT WORDS IN BUFFER.
- *
- * CWORDS BUF,LC
- *
- * ENTRY BUF = BUFFER ADDRESS. (USES A1, X1.)
- * LC = LINE COUNT OF BUFFER. (USES B7.)
- *
- * EXIT (A1) = LWA+1 OF BUFFER.
- * (B6) = WORD COUNT OF BUFFER.
- * (B7) = LINE COUNT OF BUFFER.
- *
- * USES B - 2.
- * X - 1.
- *
- * CALLS CWL.
- PURGMAC CWORDS
- CWORDS MACRO BF,LC
- MACREF CWORDS
- R= A1,BF
- R= B7,LC
- R= B2,1
- RJ CWL COUNT WORDS/LINES IN BUFFER
- ENDM
- DELVSN SPACE 4,15
- ** DELVSN - DELETE VSN ENTRIES.
- *
- * DELVSN VBUF,VLEN
- *
- * ENTRY VBUF = ADDRESS OF VSN BUFFER. (USES B6.)
- * VLEN = LENGTH OF VSN BUFFER. (USES B7.)
- *
- * EXIT (X4) = 0 IF DELETE COMPLETE.
- * .NE. 0 IF A VSN IS ASSIGNED.
- *
- * USES B - 6, 7.
- *
- * CALLS DVS.
- PURGMAC DELVSN
- DELVSN MACRO VB,VL
- MACREF DELVSN
- R= B6,VB
- R= B7,VL
- RJ //DVS DELETE VSN ENTRIES
- ENDM
- DISLIS SPACE 4,25
- ** DISLIS - DISPLAY LIST OF ENTRIES.
- *
- * DISLIS LADD,DADD,LLEN,BCE,BCB,EPL
- *
- * ENTRY LADD = LIST ADDRESS. (USES A1, X1.)
- * DADD = DISPLAY ADDRESS. (USES A2, X2.)
- * LLEN = LIST LENGTH.
- * .LT.0 IF ZERO WORD TERMINATED.
- * DEFAULT IS -1. (USES B3.)
- * BCE = BIT COUNT OF ENTRY. MAXIMUM IS 120.
- * DEFAULT IS 60. (USES B4.)
- * BCB = BIT COUNT BETWEEN ENTRIES. MAXIMUM IS 60.
- * DEFAULT IS 6. (USES B6.)
- * EPL = NUMBER OF ENTRIES PER DISPLAY LINE.
- * DEFAULT IS 5. (USES X7.)
- * (X6) = IMAGE TO SET BETWEEN ENTRIES, RIGHT JUSTIFIED.
- *
- * EXIT (A1) = LWA+1 OF LIST.
- * (A2) = LWA+1 OF DISPLAY.
- * (X3) = LAST BIT POSITION - 1 OF DISPLAY.
- *
- * USES B - 3, 4, 6.
- * X - 1, 2, 7.
- *
- * CALLS TLD.
- PURGMAC DISLIS
- DISLIS MACRO LA,DA,LL,BE,BB,EP
- MACREF DISLIS
- R= A1,LA
- R= A2,DA
- SETREG B3,LL,(-1)
- SETREG B4,BE,60
- SETREG B6,BB,6
- SETREG X7,EP,5
- RJ TLD PROCESS TABLE LIST TO DISPLAY.
- ENDM
- GFILE SPACE 4,25
- ** GFILE - GET FILE CATALOG VIA FILE IDENTIFIER.
- *
- * GFILE UADD,FADD,FBUF,PBUF,VBUF,NV
- *
- * ENTRY UADD = ADDRESS OF USER NAME. (USES A1, X1.)
- * FADD = ADDRESS OF FILE ID. (USES A2, A3, X2, X3.)
- * FBUF = ADDRESS OF FILE CATALOG BUFFER. (USES B6.)
- * PBUF = ADDRESS OF PREVIOUS FILE BUFFER. (USES B7.)
- * VBUF = ADDRESS OF VSN BUFFER. (USES B2.)
- * NV = 0 IF VERIFY FILE STATUS.
- * .NE. 0 IF ASSUME FILE NOT FOUND.
- * DEFAULT IS 0. (USES B4.)
- *
- * EXIT (X4) = 0 IF FILE FOUND.
- * .NE. 0 IF FILE NOT FOUND. DEFAULT SET IN BUFFER.
- * (X6) = FILE CATALOG RANDOM ADDRESS.
- * (X7) = PREVIOUS FILE RANDOM ADDRESS.
- * (B6) = FILE COUNT.
- * (B7) = VSN COUNT.
- *
- * USES A - 1, 2, 3.
- * B - 2, 4.
- * X - 1, 2, 3.
- *
- * CALLS GFI.
- PURGMAC GFILE
- GFILE MACRO UA,FA,FB,PB,VB,NV
- MACREF GFILE
- R= A1,UA
- R= A2,FA
- R= A3,A2+B1
- R= B6,FB
- R= B7,PB
- R= B2,VB
- SETREG B4,NV,0
- RJ GFI GET FILE CATALOG VIA FILE IDENTIFIER
- ENDM
- GFILEV SPACE 4,30
- ** GFILEV - GET FILE CATALOG VIA VSN.
- *
- * GFILEV UADD,VADD,SQNO,FBUF,PBUF,VBUF,NV
- *
- * ENTRY UADD = ADDRESS OF USER NAME.
- * VADD = ADDRESS OF VSN.
- * SQNO = SEQUENCE NUMBER. (USES X3.)
- * FBUF = ADDRESS OF FILE CATALOG BUFFER. (USES B6.)
- * PBUF = ADDRESS OF PREVIOUS FILE BUFFER. (USES B7.)
- * VBUF = ADDRESS OF VSN BUFFER. (USES B2.)
- * NV = 0 IF VERIFY FILE STATUS.
- * .NE. 0 IF ASSUME FILE NOT FOUND.
- * DEFAULT IS 0. (USES B4.)
- *
- * EXIT (X4) = 0 IF FILE FOUND.
- * = 1 IF FILE NOT FOUND AND DEFAULT SET IN BUFFERS.
- * = -1 IF INCORRECT SEQUENCE NUMBER.
- * = -2 IF VSN NOT AVAILABLE.
- * (X6) = FILE CATALOG RANDOM ADDRESS.
- * (X7) = PREVIOUS FILE RANDOM ADDRESS.
- * (B6) = FILE COUNT.
- * (B7) = VSN COUNT.
- *
- * USES A - 1, 2.
- * B - 2, 4.
- * X - 1, 2, 3.
- *
- * CALLS GFV.
- PURGMAC GFILEV
- GFILEV MACRO UA,VA,QN,FB,PB,VB,NV
- MACREF GFILEV
- R= A1,UA
- R= A2,VA
- R= X3,QN
- R= B6,FB
- R= B7,PB
- R= B2,VB
- SETREG B4,NV,0
- RJ GFV GET FILE CATALOG VIA VSN
- ENDM
- GRENTRY SPACE 4,15
- ** GRENTRY - GET RECORD ENTRY.
- *
- * GRENTRY FET,BUF
- *
- * ENTRY FET = ADDRESS OF FET TO USE. (USES X2.)
- * BUF = ADDRESS OF WORKING BUFFER. (USES X1.)
- *
- * EXIT (X6) = 0 IF NO MORE ENTRIES.
- * CURRENT ENTRY SET INTO BUFFER.
- *
- * USES X - 1, 2.
- *
- * CALLS GRE.
- PURGMAC GRENTRY
- GRENTRY MACRO FT,BF
- MACREF GRENTRY
- R= X2,FT
- R= X1,BF
- RJ //GRE GET RECORD ENTRY
- ENDM
- ISSMSG SPACE 4,15
- ** ISSMSG - ISSUE MESSAGE TO OUTPUT.
- *
- * ISSMSG MADD,TYPE
- *
- * ENTRY MADD = ADDRESS OF MESSAGE. (USES B5.)
- * TYPE = *I* IF INFORMATIVE.
- * = *E* IF ERROR.
- * (USES B2.)
- *
- * EXIT MESSAGE ISSUED TO OUTPUT/K-DISPLAY.
- *
- * USES B - 2, 5.
- *
- * CALLS MTO.
- PURGMAC ISSMSG
- ISSMSG MACRO MA,TY
- MACREF ISSMSG
- R= B5,MA
- IFC EQ,$TY$I$ IF INFORMATIVE
- R= B2,0
- ELSE IF ERROR
- R= B2,1
- ENDIF
- RJ //MTO ISSUE MESSAGE TO OUTPUT
- ENDM
- LISTAB SPACE 4,25
- ** LISTAB - LIST ENTRIES FROM TABLE.
- *
- * LISTAB TADD,LADD,TLEN,RADD,ELEN,BC
- *
- * ENTRY TADD = TABLE ADDRESS. (USES X6.)
- * LADD = LIST ADDRESS. (USES X7.)
- * TLEN = TABLE LENGTH.
- * .LT. 0 IF ZERO WORD TERMINATED.
- * DEFAULT IS -1. (USES B2.)
- * RADD = RELATIVE ADDRESS IN ENTRY.
- * DEFAULT IS 0. (USES B3.)
- * ELEN = ENTRY LENGTH. DEFAULT IS 1. (USES B4.)
- * BC = BIT COUNT. MAXIMUM IS 120.
- * DEFAULT IS 60. (USES B5.)
- *
- * EXIT (X1) = LWA+1 OF TABLE.
- *
- * USES B - 2, 3, 4, 5.
- * X - 6, 7.
- *
- * CALLS TSL.
- PURGMAC LISTAB
- LISTAB MACRO TA,LA,TL,RA,EL,BC
- MACREF LISTAB
- R= X6,TA
- R= X7,LA
- SETREG B2,TL,(-1)
- SETREG B3,RA,0
- SETREG B4,EL,1
- SETREG B5,BC,60
- RJ TSL PROCESS TABLE ENTRY TO SINGLE ENTRY LIST
- ENDM
- LISTVSN SPACE 4,20
- ** LISTVSN - LIST VSN ENTRY.
- *
- * LISTVSN VADD,VBUF,ILOCK
- *
- * ENTRY VADD = ADDRESS OF VSN. (USES A1, X1.)
- * VBUF = ADDRESS OF VSN BUFFER. (USES A2, X2.)
- * ILOCK = 0 IF NO INTERLOCK SET ON VSN.
- * = 1 IF SET INTERLOCK ON VSN.
- * DEFAULT IS 0. (USES B2.)
- *
- * EXIT (X4) = 0 IF VSN FOUND.
- * VSN ENTRY IMAGE SET IN BUFFER.
- * DEFAULT ENTRY IMAGE SET IN BUFFER IF VSN NOT FOUND.
- *
- * USES A - 1.
- * B - 2, 6.
- * X - 1.
- *
- * CALLS LVS.
- PURGMAC LISTVSN
- LISTVSN MACRO VA,VB,IL
- MACREF LISTVSN
- R= A1,VA
- R= B6,VB
- SETREG B2,IL,0
- RJ //LVS LIST VSN ENTRY
- ENDM
- LJUST SPACE 4,20
- ** LJUST - LEFT JUSTIFY AND MASK FIELD IN X-REGISTER.
- *
- * LJUST XA,XB,BC,UB
- *
- * ENTRY XA = X-REGISTER WITH FIELD.
- * XB = X-REGISTER TO RECEIVE MASKED FIELD.
- * BC = BIT COUNT OF FIELD.
- * MUST BE 1 .LE. *BC* .LE. 60.
- * UB = UPPER BIT POSITION OF FIELD.
- * MUST BE 0 .LE. *UB* .LE. 59.
- *
- * EXIT (XA) = FIELD LEFT JUSTIFIED.
- * (XB) = FIELD LEFT JUSTIFIED AND MASKED.
- * (X0) = MASK OF LEFT JUSTIFIED FIELD.
- *
- * USES B - 2 IF *BC* AND/OR *UB* INCLUDE REGISTERS.
- PURGMAC LJUST
- LJUST MACRO XA,XB,BC,UB
- LOCAL A
- MACREF LJUST
- IF REG,BC IF BIT COUNT IN REGISTER
- MX0 1
- SB2 BC-1
- AX0 B2
- ELSE IF CONSTANT BIT COUNT
- MX0 BC
- ENDIF
- .1 IF REG,UB IF UPPER BIT IN REGISTER
- SB2 UB-59
- L_XA -B2
- .1 ELSE IF CONSTANT UPPER BIT
- .2 IFNE UB,59 IF NON-ZERO SHIFT COUNT
- A SET UB
- L_XA 59-A
- ENDIF
- B_XB X0*XA
- ENDM
- MOVEBIT SPACE 4,30
- ** MOVEBIT - MOVE BIT STRING.
- *
- * MOVEBIT SADD,DADD,COUNT,SUPPER,DUPPER
- *
- * ENTRY SADD = SOURCE ADDRESS OF BIT STRING. IF *SADD=A1*,
- * X1 IS ASSUMED TO HOLD ((A1)). (USES A1, X1.)
- * DADD = DESTINATION ADDRESS OF BIT STRING. IF
- * *DADD=A2*, X2 IS ASSUMED TO HOLD ((A2)).
- * (USES A2, X2.)
- * COUNT = BIT COUNT. DEFAULT IS 60. (USES B4.)
- * SUPPER = UPPER BIT POSITION OF SOURCE STRING.
- * DEFAULT IS 59. (USES B3.)
- * DUPPER = UPPER BIT POSITION OF DESTINATION STRING.
- * DEFAULT IS 59. (USES B2.)
- *
- * EXIT STRING FROM *SADD* MOVED INTO *DADD*.
- * (A1) = ADDRESS OF REMAINDER OF SOURCE STRING.
- * (A2) = ADDRESS OF REMAINDER OF DESTINATION STRING.
- * (B2) = UPPER BIT POSITION OF REMAINDER OF DESTINATION
- * STRING.
- * (B3) = UPPER BIT POSITION OF REMAINDER OF SOURCE
- * STRING.
- *
- * USES A - 1, 2.
- * B - 2, 3, 4.
- * X - 1, 2.
- *
- * CALLS MBS.
- PURGMAC MOVEBIT
- MOVEBIT MACRO SA,DA,C,SU,DU
- MACREF MOVEBIT
- R= A1,SA
- R= A2,DA
- SETREG B4,C,60
- SETREG B3,SU,59
- SETREG B2,DU,59
- RJ //MBS MOVE BIT STRING
- ENDM
- NEWPAGE SPACE 4,20
- ** NEWPAGE - GENERATE NEW PAGE HEADER FOR OUTPUT.
- *
- * NEWPAGE BUF,WC,NP
- *
- * ENTRY BUF = BUFFER ADDRESS OF NEW PAGE HEADER.
- * DEFAULT IS (HD).
- * WC = WORD COUNT OF NEW HEADER.
- * DEFAULT IS (HL).
- * NP = IF SPECIFIED HEADER WILL NOT BE PRINTED
- * AT THIS TIME.
- *
- * EXIT NEW PAGE HEADER SET FOR OUTPUT FILE.
- *
- * USES A - 6.
- * X - 6.
- *
- * CALLS NPG.
- PURGMAC NEWPAGE
- NEWPAGE MACRO BF,WC,NP
- MACREF NEWPAGE
- IFC NE,$BF$$ IF NOT DEFAULT HEADER
- R= X6,BF
- R= A6,HD
- ENDIF
- IFC NE,$WC$$ IF NOT DEFAULT WORD COUNT
- R= X6,WC
- R= A6,HL
- ENDIF
- IFC EQ,$NP$$ IF PRINT NEXT PAGE
- RJ //NPG PRINT NEW PAGE HEADER
- ELSE IF NO PRINT
- SX6 MXLP+1
- SA6 LC
- ENDIF
- ENDM
- RCREC SPACE 4,20
- ** RCREC - READ CATALOG RECORD.
- *
- * RCREC FET,REC,BUF,IL
- *
- * ENTRY FET = ADDRESS OF FET TO USE. (USES X2.)
- * REC = RECORD RANDOM ADDRESS. (USES X1.)
- * BUF = WORKING BUFFER TO RECEIVE RECORD. (USES X3.)
- * IL .NE. 0 IF UTILITY INTERLOCK TO BE SET BEFORE READ.
- * DEFAULT IS 0. (USES B2.)
- *
- * EXIT RECORD READ INTO BUFFER.
- *
- * USES B - 2.
- * X - 1, 2, 3.
- *
- * CALLS RCR.
- PURGMAC RCREC
- RCREC MACRO FT,RC,BF,IL
- MACREF RCREC
- R= X2,FT
- R= X1,RC
- SETREG X3,BF,0
- SETREG B2,IL,0
- RJ //RCR READ CATALOG RECORD
- ENDM
- READFET SPACE 4,15
- ** READFET - READ WORDS FROM FET INTO WORKING BUFFER.
- *
- * READFET FET,BUF,N
- *
- * ENTRY FET = FET ADDRESS. (USES X2.)
- * BUF = WORKING BUFFER ADDRESS. (USES B6.)
- * N = NUMBER OF WORDS TO TRANSFER. (USES B7.)
- *
- * EXIT (X1) = 0 IF TRANSFER COMPLETE.
- * = (B6) IF (B7).NE.0.
- * (X2) = FET ADDRESS.
- * (B6) = LWA+1 OF WORKING BUFFER.
- * (B7) = NUMBER OF WORDS NOT TRANSFERRED.
- *
- * CALLS RDF.
- PURGMAC READFET
- READFET MACRO FT,BF,NW
- MACREF READFET
- R= B6,BF
- R= B7,NW
- R= X2,FT
- RJ //RDF READ WORDS FROM FET INTO WORKING BUFFER
- ENDM
- RELVSN SPACE 4,15
- ** RELVSN - RELEASE FILE VIA VSN.
- *
- * RELVSN UADD,VADD,QNADD
- *
- * ENTRY UADD = ADDRESS OF USER NAME.
- * VADD = ADDRESS OF VSN.
- * QNADD = SEQUENCE NUMBER.
- * QNADD = 1 IF NO SEQUENCE NUMBER SUPPLIED.
- *
- * EXIT (X4) = 0 IF RELEASE COMPLETE.
- * .NE. 0 IF VSN NOT ASSIGNED TO USER.
- *
- * USES A - 1, 2.
- * X - 1, 2, 3.
- *
- * CALLS RLV.
- PURGMAC RELVSN
- RELVSN MACRO UA,VA,QN
- MACREF RELVSN
- R= A1,UA
- R= A2,VA
- IFC EQ,$QN$$,2
- R= X3,1
- SKIP 1
- R= X3,QN
- RJ //RLV RELEASE FILE VIA VSN
- ENDM
- REPVSN SPACE 4,15
- ** REPVSN - REPLACE/ADD VSNS.
- *
- * REPVSN VBUF,VLEN
- *
- * ENTRY VBUF = VSN BUFFER ADDRESS. (USES B6.)
- * VLEN = VSN BUFFER LENGTH. (USES B7.)
- *
- * EXIT VSN ENTRIES REPLACED/ADDED.
- *
- * USES B - 6, 7.
- *
- * CALLS RVS.
- PURGMAC REPVSN
- REPVSN MACRO VB,VL
- MACREF REPVSN
- R= B6,VB
- R= B7,VL
- RJ //RVS REPLACE/ADD VSNS
- ENDM
- RESETP SPACE 4,15
- ** RESETP - RESET *IN* AND *OUT* POINTERS OF FILE.
- *
- * RESETP FET
- *
- * ENTRY FET = ADDRESS OF FET. (USES X2.)
- *
- * EXIT *IN* AND *OUT* SET TO *FIRST*.
- * (X2) = ADDRESS OF FET.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * MACROS RECALL.
- PURGMAC RESETP
- RESETP MACRO FT
- MACREF RESETP
- RECALL FT
- SA1 X2+B1
- SX6 X1
- SA6 A1+B1
- SA6 A6+B1
- ENDM
- RJM SPACE 4,15
- ** RJM - RETURN JUMP TO ADDRESS IN REGISTERS.
- *
- * RJM ADDR
- *
- * ENTRY ADDR = ADDRESS TO RETURN JUMP TO.
- *
- * EXIT RETURN JUMP EXECUTED.
- *
- * USES A - 1, 6.
- * B - 2.
- * X - 1, 6.
- PURGMAC RJM
- RJM MACRO AD
- LOCAL A
- MACREF RJM
- IF -REG,AD IF NORMAL RETURN JUMP
- RJ AD
- ELSE IF RETURN JUMP TO REGISTER VALUE
- R= B2,AD
- R= A1,A
- BX6 X1
- R= A6,B2
- JP B2+1
- A EQ *+1
- ENDIF
- ENDM
- RJUST SPACE 4,20
- ** RJUST - RIGHT JUSTIFY AND MASK FIELD IN X-REGISTER.
- *
- * RJUST XA,XB,BC,UB
- *
- * ENTRY XA = X-REGISTER WITH FIELD.
- * XB = X-REGISTER TO RECEIVE MASKED FIELD.
- * BC = BIT COUNT OF FIELD.
- * MUST BE 1 .LE. *BC* .LE. 60.
- * UB = UPPER BIT POSITION OF FIELD.
- * MUST BE 0 .LE. *UB* .LE. 59.
- *
- * EXIT (XA) = FIELD RIGHT JUSTIFIED.
- * (XB) = FIELD RIGHT JUSTIFIED AND MASKED.
- * (X0) = (-1)*MASK OF RIGHT JUSTIFIED FIELD.
- *
- * USES B - 2 IF *BC* AND/OR *UB* INCLUDE REGISTERS.
- PURGMAC RJUST
- RJUST MACRO XA,XB,BC,UB
- LOCAL A
- MACREF RJUST
- .1 IF REG,BC IF BIT COUNT IN REGISTER
- MX0 1
- SB2 BC-1
- AX0 B2
- L_XA B2
- .2 IF REG,UB IF UPPER BIT IN REGISTER
- SB2 UB-60
- L_XA -B2
- .2 ELSE IF CONSTANT UPPER BIT
- .3 IFNE UB,60 IF NON-ZERO SHIFT COUNT
- A SET UB
- L_XA -A+60
- .1 ELSE IF CONSTANT BIT COUNT
- A SET BC
- MX0 -A
- .2 IF REG,UB IF UPPER BIT IN REGISTER
- SB2 UB-60-BC+1
- L_XA -B2
- .2 ELSE IF CONSTANT UPPER BIT
- .3 IFNE BC-1,UB IF NON-ZERO SHIFT COUNT
- A SET UB
- L_XA BC-1-A+60
- ENDIF
- B_XB -X0*XA
- ENDM
- SAFET SPACE 4,25
- ** SAFET - SET AUDIT FET.
- *
- * SAFET UADD,VADD,FADD,TYPE,RADD
- *
- * ENTRY UADD = ADDRESS OF USER NAME. (USES A1, X1.)
- * VADD = ADDRESS OF VSN. DEFAULT IS *=0*.
- * (USES A2, X2.)
- * FADD = ADDRESS OF FILE IDENTIFIER.
- * DEFAULT IS *=0*. (USES A3, A4, X3, X4.)
- * TYPE = AUDIT TYPE. DEFAULT IS *FCST*. (USES B2.)
- * RADD = ADDRESS OF AUDIT RANDOM ADDRESS.
- * DEFAULT IS *=0*. (USES A4, X4, X6.)
- *
- * EXIT (X4) = 0 IF NO ERROR IN AUDIT.
- * (N3 - N3+15B) = AUDIT FET.
- *
- * USES A - 1, 2, 3, 4.
- * B - 2.
- * X - 1, 2, 3, 4, 6.
- *
- * CALLS SAF.
- PURGMAC SAFET
- SAFET MACRO UA,VA,FA,TY,RA
- MACREF SAFET
- R= A1,UA
- SETREG A2,VA,(=0)
- SETREG A4,RA,(=0)
- BX6 X4
- SETREG A3,FA,(=0)
- IFC EQ,$FA$$ IF DEFAULT FILE IDENTIFIER
- R= A4,=0
- ELSE IF NOT DEFAULT FILE IDENTIFIER
- R= A4,FA+1
- ENDIF
- SETREG B2,TY,FCST
- RJ //SAF SET AUDIT FET
- ENDM
- SETSORC SPACE 4,20
- ** SETSORC - SET SOURCE VALUES IN TABLE.
- *
- * SETSORC TYPE,LEVEL
- *
- * ENTRY TYPE = *A* IF AUDIT TABLE.
- * = *K* IF K-DISPLAY TABLE.
- * = *M* IF MACHINE READABLE TABLE.
- * = *S* IF SOURCE LISTING TABLE.
- * (USES B2.)
- * LEVEL = DIRECTIVE LEVEL. (USES X1.)
- *
- * EXIT SOURCE VALUES SET IN TABLE.
- *
- * USES B - 2.
- * X - 1.
- *
- * CALLS SST.
- PURGMAC SETSORC
- SETSORC MACRO TY,LV
- MACREF SETSORC
- .1 IFC EQ,$TY$A$ IF AUDIT
- R= B2,1
- .1 ELSE
- .2 IFC EQ,$TY$K$ IF K-DISPLAY
- R= B2,0
- .2 ELSE
- .3 IFC EQ,$TY$M$ IF MACHINE READABLE
- R= B2,3
- .3 ELSE IF SOURCE LISTING
- R= B2,2
- ENDIF
- R= X1,LV
- RJ //SST SET SOURCE VALUES IN TABLE
- ENDM
- SRCHTAB SPACE 4,35
- ** SRCHTAB - SEARCH TABLE FOR ENTRY.
- *
- * SRCHTAB TADD,VADD,TLEN,ELEN,RADD.
- *
- * ENTRY TADD = ADDRESS OF TABLE. IF *TADD=A1*, X1 IS ASSUMED
- * TO HOLD THE FIRST WORD OF THE TABLE.
- * USES A1, X1.
- * VADD = ADDRESS OF VALUE. IF *VADD=A2*, X2 IS ASSUMED
- * TO HOLD THE VALUE. USES A2, X2.
- * TLEN = LENGTH OF TABLE. IF .LT. 0, TABLE IS
- * TERMINATED BY A ZERO WORD. DEFAULT IS -1.
- * USES B2.
- * ELEN = LENGTH OF TABLE ENTRY. DEFAULT IS 1. USES B3.
- * RADD = RELATIVE ADDRESS OF VALUE IN ENTRY.
- * DEFAULT IS 0. USES B4.
- * (X0) = SEARCH MASK. BIT POSITIONS OF VALUE SHOULD BE
- * SET.
- *
- * EXIT (A1) = ADDRESS OF ENTRY IF VALUE IS FOUND.
- * (A2) = *VADD*.
- * (A3) = ADDRESS OF VALUE WORD IF VALUE IS FOUND.
- * (B2) = *TLEN*.
- * (B3) = *ELEN*.
- * (B4) = *RADD*.
- * (B7) = RELATIVE ADDRESS OF VALUE WORD IN TABLE IF
- * VALUE IS FOUND.
- * (X1) = FIRST WORD OF ENTRY IF VALUE IS FOUND.
- * (X2) = VALUE.
- * (X3) = VALUE WORD OF ENTRY IF VALUE IS FOUND.
- * (X4) = 0 IF VALUE IS FOUND.
- *
- * CALLS STB.
- PURGMAC SRCHTAB
- SRCHTAB MACRO TA,VA,TL,EL,RA
- MACREF SRCHTAB
- R= A1,TA
- R= A2,VA
- SETREG B2,TL,(-1)
- SETREG B3,EL,1
- SETREG B4,RA,0
- RJ //STB SEARCH TABLE
- ENDM
- USERAUD SPACE 4,25
- ** USERAUD - PROCESS USER AUDIT LIST.
- *
- * USERAUD TYPE,CN,VSN
- *
- * ENTRY (UN) = USER NAME.
- * TYPE = *A* IF *AUDIT*.
- * = *M* IF *MACHINE READABLE.*
- * = *S* IF *SOURCE*.
- * = *SNV* IF *SOURCE WITH NO VSNS.*
- * (USES B2.)
- * CN = ADDRESS OF CHARGE NUMBER.
- * DEFAULT IS IGNORE CHARGE NUMBER. (USES A1, X1.)
- * VSN = ADDRESS OF VSN.
- * DEFAULT IS IGNORE VSN. (USES A2, X2.)
- *
- * EXIT ALL FILES MATCHING ENTRY CONDITIONS PROCESSED.
- *
- * USES A - 1, 2.
- * B - 2.
- * X - 1, 2.
- *
- * CALLS USA.
- PURGMAC USERAUD
- USERAUD MACRO TY,CN,VS
- MACREF USERAUD
- .1 IFC EQ,$TY$A$ IF AUDIT
- R= B2,1
- .1 ELSE
- .2 IFC EQ,$TY$M$ IF MACHINE READABLE
- R= B2,3
- .2 ELSE
- .3 IFC EQ,$TY$S$ IF SOURCE
- R= B2,2
- .3 ELSE IF SOURCE NO VSNS
- R= B2,4
- ENDIF
- SETREG A1,CN,(=0)
- SETREG A2,VS,(=0)
- RJ //USA PROCESS USER AUDIT LIST
- ENDM
- WCREC SPACE 4,20
- ** WCREC - WRITE CATALOG RECORD.
- *
- * WCREC FET,REC,BUF,IL
- *
- * ENTRY ADDRESS OF FET TO USE. (USES X2.)
- * REC = RECORD RANDOM ADDRESS. (USES X1.)
- * BUF = WORKING BUFFER ADDRESS. (USES X3.)
- * IL .NE. 0 IF CLEAR UTILITY INTERLOCK AFTER WRITE.
- * DEFAULT IS 0. (USES B2.)
- *
- * EXIT CATALOG RECORD REWRITTEN.
- *
- * USES B - 2.
- * X - 1, 2, 3.
- *
- * CALLS WCR.
- PURGMAC WCREC
- WCREC MACRO FT,REC,BUF,IL
- MACREF WCREC
- R= X2,FT
- R= X1,REC
- R= X3,BUF
- SETREG B2,IL,0
- RJ //WCR WRITE CATALOG RECORD
- ENDM
- WLINES SPACE 4,15
- ** WLINES - WRITE LINES TO OUTPUT FILE.
- *
- * WLINES BUF,LC
- *
- * ENTRY BUF = BUFFER ADDRESS. (USES A1, X1.)
- * LC = LINE COUNT OF BUFFER. (USES B7.)
- *
- * EXIT LINES WRITTEN TO OUTPUT FILE.
- *
- * USES A - 1.
- * B - 2, 7.
- * X - 1.
- *
- * CALLS WTL.
- PURGMAC WLINES
- WLINES MACRO BF,LC
- R= A1,BF
- R= B2,1
- R= B7,LC
- RJ //WTL WRITE LINES TO OUTPUT
- ENDM
- WRITFET SPACE 4,15
- ** WRITFET - WRITE WORDS FROM WORKING BUFFER INTO FET.
- *
- * WRITFET FET,BUF,N
- *
- * ENTRY FET = FET ADDRESS. (USES X2.)
- * BUF = WORKING BUFFER ADDRESS. (USES B6.)
- * N = NUMBER OF WORDS TO TRANSFER. (USES B7.)
- *
- * EXIT (X1) = 0 IF TRANSFER COMPLETE.
- * = (B6) IF (B7).NE.0.
- * (X2) = FET ADDRESS.
- * (B6) = LWA+1 OF WORKING BUFFER.
- * (B7) = NUMBER OF WORDS NOT TRANSFERRED.
- *
- * CALLS WTF.
- PURGMAC WRITFET
- WRITFET MACRO FT,BF,NW
- MACREF WRITFET
- R= B6,BF
- R= B7,NW
- R= X2,FT
- RJ //WTF WRITE WORDS FROM WORKING BUFFER INTO FET
- ENDM
- WWORDS SPACE 4,15
- ** WWORDS - WRITE WORDS TO OUTPUT FILE.
- *
- * WWORDS BUF,WC
- *
- * ENTRY BUF = BUFFER ADDRESS. (USES A1, X1.)
- * WC = WORD COUNT OF BUFFER. (USES B6.)
- *
- * EXIT WORDS WRITTEN TO OUTPUT FILE.
- *
- * USES A - 1.
- * B - 2, 6.
- * X - 1.
- *
- * CALLS WTL.
- PURGMAC WWORDS
- WWORDS MACRO BF,WC
- R= A1,BF
- R= B2,0
- R= B6,WC
- RJ //WTL WRITE LINES TO OUTPUT FILE
- ENDM
- TITLE PROGRAM EQUIVALENCES.
- QUAL SPACE 4,10
- ** QUALIFIERS USED BY *TFSP*.
- QUAL
- QUAL ADD
- QUAL ALS
- QUAL ALSC
- QUAL ALSU
- QUAL BTC
- QUAL CAT
- QUAL CATBIT
- QUAL DCTAB
- QUAL DOTAB
- QUAL DTAB
- QUAL INDEX
- QUAL KAUSLS
- QUAL KAUSRS
- QUAL KDIS
- QUAL KFAMLS
- QUAL KFAMRS
- QUAL KFILLS1
- QUAL KFILLS2
- QUAL KFILLS3
- QUAL KFILRS
- QUAL KLEFT
- QUAL KMESS
- QUAL KRIGHT
- QUAL KUSELS
- QUAL KUSERS
- QUAL KVSNLS
- QUAL KVSNRS
- QUAL LVAU
- QUAL LVFA
- QUAL LVFI
- QUAL LVUS
- QUAL LVVS
- QUAL MLS
- QUAL MLSC
- QUAL MLSU
- QUAL PAUA
- QUAL PAUAC
- QUAL PAUAU
- QUAL PDIR
- QUAL PDIRC
- QUAL PDIRU
- QUAL PDIS
- QUAL PDISC
- QUAL PDISU
- QUAL PFIA
- QUAL PFIAC
- QUAL PFIAU
- QUAL PHEL
- QUAL PHELC
- QUAL PHELU
- QUAL PRESET
- QUAL PVSA
- QUAL PVSAC
- QUAL PVSAU
- QUAL SCS
- QUAL SCSC
- QUAL SCSU
- QUAL SMA
- QUAL SMAC
- QUAL SMAU
- QUAL SMB
- QUAL SMBC
- QUAL SMBU
- QUAL SMC
- QUAL SMCC
- QUAL SMCU
- QUAL SMD
- QUAL SMDD
- QUAL SMDU
- QUAL SMF
- QUAL SMFC
- QUAL SMFU
- QUAL UPB
- QUAL
- MICRO SPACE 4,10
- ** SPECIAL CHARACTER BIT STRING MICROS.
- AC BITMIC (+,-,*,/,L,R,$,=, ,(,),.,#,[,])
- AC BITMIC (%,",U,!,&,',?,<,>,@,\,^,;,:) ALL CHARACTERS
- AH BITMIC (*,-) ASTERISK AND HYPHEN
- AS BITMIC (*) ASTERISK
- BL BITMIC ( ) BLANK CHARACTER
- CO BITMIC ((,)) COMMA
- EC BITMIC (+,-,*,/,L,R,$,=, ,(,),.,#,[,])
- EC BITMIC (%,",U,!,&,',?,<,>,@,\,^,;) ALL EXCEPT COLON
- NC BITMIC () NO CHARACTERS
- MICRO SPACE 4,10
- ** GENERAL MICROS.
- MXAA DECMIC 777777B MAXIMUM ALTERNATE USER ACCESS COUNT
- MXAC DECMIC 77777777B MAXIMUM ACCESS COUNT
- MXFC DECMIC 12000B MAXIMUM MAXIMUM BLOCK COUNT
- SPACE 4,10
- ** GENERAL EQUATES.
- CAPL EQU 72 CHARACTERS ASSEMBLED PER LINE OF INPUT
- CSPL EQU 80 CHARACTERS SCANNED PER LINE OF INPUT
- MXLP EQU 60 MAXIMUM NUMBER OF LINES PER OUTPUT PAGE
- USBBL EQU CSPL+10 STRING BUFFER LENGTH
- BUFL SPACE 4,10
- ** BUFFER LENGTHS.
- CBUFL EQU 5 CHARACTER BUFFER LENGTH
- EBUFL EQU 4 ERROR MESSAGE BUFFER LENGTH
- FBUFL EQU 1001B FILE BUFFER LENGTH
- KBUFL EQU 8 K-DISPLAY INPUT BUFFER LENGTH
- RBUFL EQU 1B REWIND FILE BUFFER LENGTH
- SBUFL EQU 101B SCRATCH FILE BUFFER LENGTH
- TBUFL EQU 1001B TAPE CATALOG FILE BUFFER LENGTH
- N1BUFL EQU 401B VSN BUFFER LENGTH
- N2BUFL EQU 101B USER NAME BUFFER LENGTH
- N3BUFL EQU 501B TAPE FILE BUFFER LENGTH
- N4BUFL EQU 101B ALTERNATE USER NAME BUFFER LENGTH
- TAVSL EQU TSVL*60+1 ASSIGNED VSNS BUFFER LENGTH
- UBUFL EQU 101B ALTERNATE USER BUFFER LENGTH
- VBUFL EQU 101B VSN ENTRY BUFFER LENGTH
- WBUFL EQU TCEL+TSVL*60+1 WORKING BUFFER
- SPACE 4,10
- ** LEVEL DEFINITIONS.
- LVFA EQU 0 FAMILY LEVEL
- LVVS EQU 1 VSN LEVEL
- LVUS EQU 2 USER LEVEL
- LVFI EQU 3 FILE LEVEL
- LVAU EQU 4 ALTERNATE USER LEVEL
- OP SPACE 4,10
- ** *OP* PARAMETER OPTIONS.
- KOPT EQU 0 *K* K-DISPLAY OPTION
- IOPT EQU 1 *I* INPUT FILE OPTION
- ZOPT EQU 2 *Z* CONTROL CARD OPTION
- SPACE 4,10
- ** PROCESSOR INDICES.
- PIZF EQU 0 ZERO FILL
- PIBF EQU 1 BLANK FILL
- PIOP EQU 2 OPTION SELECTION
- PIBD EQU 3 NUMERIC BINARY DATA
- PIPD EQU 4 PACKED DATE
- PIPT EQU 5 PACKED TIME
- PIJD EQU 6 JULIAN DATE
- PIVQ EQU 7 VSN/SEQUENCE NUMBER
- PIVS EQU 8 PADDED VSN
- PIBS EQU 9 SPECIAL CHARACTER BIT STRING
- ORG SPACE 4,10
- ** PROGRAM ORIGIN.
- ORIG EQU 110B
- ORG ORIG
- TITLE DATA AREA.
- FETS SPACE 4,10
- ** FILE ENVIRONMENT TABLES.
- I BSS 0 INPUT FILE
- INPUT FILEC IBUF,FBUFL,(FET=16)
- L BSS 0 OUTPUT FILE
- OUTPUT FILEC LBUF,FBUFL,(FET=16),EPR
- N1 BSS 0 VSN TAPE CATALOG FILE
- NEW1 FILEB N1BUF,N1BUFL,(FET=8),EPR
- REWORD N1+5,(42/,18/EBUF) ERROR MESSAGE ADDRESS
- N2 BSS 0 USER NAME TAPE CATALOG FILE
- NEW2 FILEB N2BUF,N2BUFL,(FET=8),EPR
- REWORD N2+5,(42/,18/EBUF) ERROR MESSAGE ADDRESS
- N3 BSS 0 TAPE FILE TAPE CATALOG FILE
- NEW3 FILEB N3BUF,N3BUFL,(FET=16),EPR
- REWORD N3+5,(42/,18/EBUF) ERROR MESSAGE ADDRESS
- N4 BSS 0 ALTERNATE USER NAME TAPE CATALOG FILE
- NEW4 FILEB N4BUF,N4BUFL,(FET=8),EPR
- REWORD N4+5,(42/,18/EBUF) ERROR MESSAGE ADDRESS
- R BSS 0 REWIND FILE
- R FILEB RBUF,RBUFL,(FET=8)
- RD BSS 0 *READ* FILE
- RD FILEC SBUF,SBUFL,(FET=8)
- S BSS 0 SOURCE FILE
- SOURCE FILEC SSBUF,FBUFL,(FET=16),EPR
- SS BSS 0 MACHINE READABLE OUTPUT FILE
- SS FILEC SSBUF,FBUFL,(FET=16),EPR
- T BSS 0 TERMINAL INTERRUPT FILE
- ZZZZINT FILEC TBUF,SBUFL,(FET=8),(DTY=2RTT)
- UB BSS 0 ALTERNATE USER ENTRY BUFFER
- UB FILEB UBUF,UBUFL,(FET=8)
- VB BSS 0 VSN ENTRY BUFFER FET
- VB FILEB VBUF,VBUFL,(FET=8)
- WORKING SPACE 4,10
- ** WORKING STORAGE.
- AA CON 0 AUDIT RANDOM ADDRESS
- AB CON 0 ABORT OPTION
- AF CON 0 ADMIT FLAG
- AI CON 0 ALTERNATE INPUT FILE NAME
- AP CON 0 ALTERNATE PROCESSING FLAG
- AU CON 0 ALTERNATE USER
- BF CON 0 BRIEF/NOBRIEF FLAG
- CF CON 0 CURRENT FAMILY NAME
- CI CON 0 CLEAR INTERLOCK FLAG
- CL CON "NC" SPECIAL CHARACTER FOR COLON
- DD CON 0 DISPLAY DATE
- DE CON 0 DENSITY / TAPE TYPE
- DF CON 0 DIRECTIVE IMAGE
- CON 0 PROCESSOR/CONTROL TABLE ADDRESS
- CON 0 DIRECTIVE SEPARATOR
- DM CON 0 DIRECTIVE MESSAGE FLAG
- DP CON 0 DROP PROCESSOR COUNT
- DT CON 0 DISPLAY TIME
- ED CON 0 EQUIVALENCED DIRECTIVE FLAG
- EF CON 0 ERROR FLAG
- EL CON 0 END OF LINE FLAG
- EM CON 0 DAYFILE ERROR MESSAGE ADDRESS
- ER CON 0 ERROR ADDRESS
- ET CON 0 EOF FOR INPUT FLAG
- FA CON 0 FAST-ATTACH FLAG FOR *TFSPE*
- FM CON 0 ALTERNATE FAMILY NAME
- HD CON PDIR SECOND PART OF HEADER LENGTH
- HL CON PDIRL PAGE HEADER LENGTH
- IF CON I INPUT FILE FET ADDRESS
- IS CON 0 INPUT FILE STATUS
- JD CON 0 JULIAN DATE
- LC CON MXLP+1 LINE COUNT OF OUTPUT PAGE
- LF CON 0 LOCAL FILE OPTION
- LV CON LVFA CURRENT LEVEL
- ME CON 0 MAINTENANCE AND ERROR STATUS
- MI CON 2RAA MACHINE ID
- MX CON 0 CATALOG DEVICE MACHINE INDEX-1
- NI BSS 2 NEW FILE IDENTIFIER
- NL CON 0 NEXT LEVEL NUMBER
- NV CON 0 NO VERIFY FLAG
- OP DATA C*I* INPUT OPTION
- OS CON 0 OUTPUT FILE STATUS
- OT CON 0 ORIGIN TYPE
- PD CON 0 PACKED DATE
- PG CON 0 CURRENT PAGE NUMBER
- QN CON 0 SEQUENCE NUMBER
- RC CON 0 REEL COUNT
- RF CON 0 RESERVE FLAG
- RS CON 0 URDATE SPECIFIED FLAG
- RT CON 0 RETRY FLAG
- SB CON 0 ADDRESS OF STRING BUFFER
- SE CON "CO" SEPARATOR CHARACTER
- SF CON 0 SAVE SPECIAL STORAGE FLAG
- SM CON 0 STRING BUFFER MAXIMUM ADDRESS
- SP CON 0 STRING BUFFER POINTER
- ST CON 0 VSN STATUS BITS
- SV CON 0 SYMBOLIC ACCESS FLAG
- SVF CON 0 SYSTEM VSN FLAG
- TE CON 0 *TFSPE* FLAG
- TG CON 0 TOGGLE PAGE
- TI CON 0 TERMINAL INTERRUPT FLAG
- VTT CON 0 VSN TAPE TYPE
- WKSP SPACE 4,10
- ** SPECIAL WORKING STORAGE.
- WKSP BSS 0 FIRST WORD OF SPECIAL STORAGE
- AV CON 0 NEW ASSIGNED VSN BUFFER ADDRESS
- CA CON 0 CATALOG RANDOM ADDRESS
- CN CON 0 CHARGE NUMBER
- EV CON 0 EXTERNAL VSN
- FI BSS 2 FILE IDENTIFIER
- FV CON 0 FIRST VSN
- PA CON 0 PREVIOUS FILE CATALOG RANDOM ADDRESS
- UF CON 0 USER NAME FOUND FLAG
- UN CON 0 USER NAME
- VC CON 0 VSN COUNT
- VF CON 0 VSN IN CATALOG FLAG
- VI CON 0 SCRATCH VSN INTERLOCK FLAG
- VS CON 0 VOLUME SERIAL NUMBER
- WKSPL EQU *-WKSP SPECIAL WORKING STORAGE LENGTH
- SSJ= SPACE 4,10
- ** SSJ= BLOCK.
- SSJ= VFD 12/0,24/-0,12/LSCS,12/IRSI
- BSSZ SSJL-1
- FCAT SPACE 4,10
- ** FCAT - FILE CATALOG IMAGE.
- CIGS BSS 0 FIRST WORD OF CATALOG IMAGES
- FCAT CATBASE
- FI CATBIT CELI,59,FIKL*6,10H,7H LOGICAL FILE IDENTIFIER
- CATBIT CEST,17,6
- AC CATBIT CEST,11,1,0 ALTERNATE AUDIT MODE
- RECOVER CATBIT CEST,10,1,0 RECOVERED STATUS
- CATBIT CEST,9,7
- SV CATBIT CEST,2,1,0 SYMBOLIC ACCESS FLAG
- CE CATBIT CEST,1,1,0 ERROR FLAG
- FBIL CATBIT CEST,0,1,0 FILE BUSY INTERLOCK
- EVSN CATBIT CEES,59,36 EXTERNAL VSN
- CATBIT CEES,23,12
- REELC CATBIT CEES,11,12,0 REEL COUNT
- CATBIT CETD,59,1
- LB CATBIT CETD,58,2,2 LABEL
- TTYP CATBIT CETD,56,2,2 TAPE DEVICE TYPE
- POS *P+2
- D CATBIT CETD,56,6,44B TAPE DEVICE TYPE / DENSITY
- CV CATBIT CETD,50,3,2 CONVERSION MODE
- CATBIT CETD,47,12
- F CATBIT CETD,35,6,0 FORMAT
- NS CATBIT CETD,29,6,0 NOISE SIZE
- FC CATBIT CETD,23,24,"MXFC" MAXIMUM BLOCK SIZE
- IVSN CATBIT CEVS,59,36 INTERNAL VSN
- FA CATBIT CEVS,23,6,0 ACCESSIBILITY CHARACTER
- CATBIT CEVS,17,3
- SN CATBIT CEVS,14,15,0001 SECTION NUMBER
- PI CATBIT CEPI,59,FIKL*6,10H,7H PHYSICAL FILE IDENTIFIER
- CATBIT CESQ,17,3
- QN CATBIT CESQ,14,15,0001 SEQUENCE NUMBER
- SI CATBIT CESI,59,VSKL*6 SET IDENTIFIER
- E CATBIT CESI,23,9,00 GENERATION VERSION NUMBER
- G CATBIT CESI,14,15,0001 GENERATION NUMBER
- CR CATBIT CERC,59,30 CREATION DATE (YYDDD)
- RT CATBIT CERC,29,30 RETENTION DATE (YYDDD)
- PW CATBIT CEPW,59,PWKL*6,0 PASSWORD
- CATBIT CEPW,17,6
- CT CATBIT CEPW,11,6,FCPR FILE CATEGORY
- M CATBIT CEPW,5,6,FMRE FILE MODE
- NCAT CATBIT CECD,59,24 NEXT CATALOG RANDOM ADDRESS
- CDATE CATBIT CECD,35,18 CREATION DATE (PACKED)
- CTIME CATBIT CECD,17,18 CREATION TIME (PACKED)
- AUCAT CATBIT CEMD,59,24 ADMIT CATALOG RANDOM ADDRESS
- MDATE CATBIT CEMD,35,18 MODIFICATION DATE (PACKED)
- MTIME CATBIT CEMD,17,18 MODIFICATION TIME (PACKED)
- ACOUNT CATBIT CEAD,59,24,0 ACCESS COUNT
- ADATE CATBIT CEAD,35,18 ACCESS DATE (PACKED)
- ATIME CATBIT CEAD,17,18 ACCESS TIME (PACKED)
- UC CATBIT CEUC,59,UCKL*6,0 USER CONTROL WORD
- CN CATBIT CECN,59,60 CHARGE NUMBER
- PN CATBIT CEPN,59,PNKL*6 PROJECT NUMBER
- CATBIT CEPN+2,59,60
- CATBIT CEPN+3,59,60
- CATBIT CEPN+4,59,60
- CATEND TCEL END OF TAPE FILE CATALOG
- ACAT SPACE 4,10
- ** ACAT - ALTERNATE USER CATALOG IMAGE.
- ACAT CATBASE
- AUSER CATBIT AEUN,59,UNKL*6 ALTERNATE USER NAME
- CATBIT AEUN,17,18
- AACOUNT CATBIT AEAC,59,18,0000 ACCESS COUNT
- AMODE CATBIT AEAC,41,6,0 ADMIT MODE
- AADATE CATBIT AEAC,35,18 ACCESS DATE
- AATIME CATBIT AEAC,17,18 ACCESS TIME
- CATEND TAEL END OF ALTERNATE USER CATALOG
- VCAT SPACE 4,10
- ** VCAT - VSN CATALOG IMAGE.
- VCAT CATBASE
- VSN CATBIT VEES,59,VSKL*6 VSN
- VASC CATBIT VEES,23,6,0 ASSIGNED VSN CATALOG NUMBER
- VASF CATBIT VEES,17,18,0 ASSIGNED FILE POINTER
- PRN CATBIT VEVS,59,VSKL*6 INTERNAL VSN (PRN)
- REELNO CATBIT VEVS,23,6,0 REEL NUMBER
- CATBIT VEVS,17,1
- MAINT CATBIT VEVS,16,1,0 MAINTENANCE FLAG
- CATBIT VEVS,15,1,1 AVAILABLE SCRATCH STATUS
- CATBIT VEVS,14,2
- OWNER CATBIT VEVS,12,1,0 OWNERSHIP TYPE
- CATBIT VEVS,11,4
- SYSTEM CATBIT VEVS,7,1,0 SYSTEM VSN FLAG
- VT CATBIT VEVS,6,2,0 VSN ENTRY TAPE TYPE (0=MT/NT,1=CT,3=AT)
- NEWRDT CATBIT VEVS,4,1,0 NEW RELEASE DATE FORMAT
- SITE CATBIT VEVS,3,1,0 SITE STATUS
- CATBIT VEVS,2,1
- ERRFLAG CATBIT VEVS,1,1,0 ERROR FLAG
- VSBF CATBIT VEVS,0,1,0 VSN BUSY FLAG
- FVSN CATBIT VEFV,59,36 FIRST VSN
- CATBIT VEFV,23,24
- NVSN CATBIT VENV,59,36 NEXT VSN
- USAGE CATBIT VENV,23,6,0 USAGE COUNT
- URDATE CATBIT VENV,17,18 RELEASE DATE
- CATEND TSVL END OF VSN ENTRY CATALOG
- DFIC SPACE 4,10
- ** DFIC - DEFAULT FILE CATALOG.
- DFIC CATBASE
- CATBIT CELI,59,FIKL*6,10H,7H LOGICAL FILE IDENTIFIER
- CATBIT CEST,17,6
- CATBIT CEST,11,1,0 ALTERNATE AUDIT MODE
- CATBIT CEST,10,1,0 RECOVERED STATUS
- CATBIT CEST,9,7
- CATBIT CEST,2,1,0 SYMBOLIC ACCESS FLAG
- CATBIT CEST,1,1,0 ERROR FLAG
- CATBIT CEST,0,1,0 FILE BUSY INTERLOCK
- CATBIT CEES,59,36 EXTERNAL VSN
- CATBIT CEES,23,12
- CATBIT CEES,11,12,0 REEL COUNT
- CATBIT CETD,59,1
- CATBIT CETD,58,2,2 LABEL
- CATBIT CETD,56,6,44B TAPE DEVICE TYPE / DENSITY
- CATBIT CETD,50,3,2 CONVERSION MODE
- CATBIT CETD,47,12
- CATBIT CETD,35,6,0 FORMAT
- CATBIT CETD,29,6,0 NOISE SIZE
- CATBIT CETD,23,24,"MXFC" MAXIMUM BLOCK SIZE
- CATBIT CEVS,59,36 INTERNAL VSN
- CATBIT CEVS,23,6,0 ACCESSIBILITY CHARACTER
- CATBIT CEVS,17,3
- CATBIT CEVS,14,15,0001 SECTION NUMBER
- CATBIT CEPI,59,FIKL*6 PHYSICAL FILE IDENTIFIER
- CATBIT CESQ,17,3
- CATBIT CESQ,14,15,0001 SEQUENCE NUMBER
- CATBIT CESI,59,VSKL*6 SET IDENTIFIER
- CATBIT CESI,23,9,00 GENERATION VERSION NUMBER
- CATBIT CESI,14,15,0001 GENERATION NUMBER
- CATBIT CERC,59,30 CREATION DATE (YYDDD)
- CATBIT CERC,29,30 RETENTION DATE (YYDDD)
- CATBIT CEPW,59,PWKL*6,0 PASSWORD
- CATBIT CEPW,17,6
- CATBIT CEPW,11,6,FCPR FILE CATEGORY
- CATBIT CEPW,5,6,FMRE FILE MODE
- CATBIT CECD,59,24 NEXT CATALOG RANDOM ADDRESS
- CATBIT CECD,35,18 CREATION DATE (PACKED)
- CATBIT CECD,17,18 CREATION TIME (PACKED)
- CATBIT CEMD,59,24 ADMIT CATALOG RANDOM ADDRESS
- CATBIT CEMD,35,18 MODIFICATION DATE (PACKED)
- CATBIT CEMD,17,18 MODIFICATION TIME (PACKED)
- CATBIT CEAD,59,24,0 ACCESS COUNT
- CATBIT CEAD,35,18 ACCESS DATE (PACKED)
- CATBIT CEAD,17,18 ACCESS TIME (PACKED)
- CATBIT CEUC,59,UCKL*6,0 USER CONTROL WORD
- CATBIT CECN,59,60 CHARGE NUMBER
- CATBIT CEPN,59,PNKL*6 PROJECT NUMBER
- CATBIT CEPN+2,59,60
- CATBIT CEPN+3,59,60
- CATBIT CEPN+4,59,60
- CATEND TCEL END OF DEFAULT FILE CATALOG
- DAUC SPACE 4,10
- ** DAUC - DEFAULT ALTERNATE USER CATALOG.
- DAUC CATBASE
- CATBIT AEUN,59,UNKL*6 ALTERNATE USER NAME
- CATBIT AEUN,17,18
- CATBIT AEAC,59,18,0000 ACCESS COUNT
- CATBIT AEAC,41,1,0 ADMIT TYPE
- CATBIT AEAC,40,5,0 ADMIT MODE
- CATBIT AEAC,35,18 ACCESS DATE
- CATBIT AEAC,17,18 ACCESS TIME
- CATEND TAEL END OF DEFAULT ALTERNATE USER CATALOG
- DVSC SPACE 4,10
- ** DVSC - DEFAULT VSN CATALOG.
- DVSC CATBASE
- CATBIT VEES,59,VSKL*6 VSN
- CATBIT VEES,23,6,0 ASSIGNED FILE CATALOG NUMBER
- CATBIT VEES,17,18,0 ASSIGNED FILE POINTER
- CATBIT VEVS,59,VSKL*6 INTERNAL VSN (PRN)
- CATBIT VEVS,23,6,0 REEL NUMBER
- CATBIT VEVS,17,1
- CATBIT VEVS,16,1,0 MAINTENANCE FLAG
- CATBIT VEVS,15,1,1 AVAILABLE SCRATCH STATUS
- CATBIT VEVS,14,2
- CATBIT VEVS,12,1,0 OWNERSHIP TYPE
- CATBIT VEVS,11,4
- CATBIT VEVS,7,1,0 SYSTEM VSN FLAG
- CATBIT VEVS,6,2,0 VSN ENTRY TAPE DEVICE TYPE
- CATBIT VEVS,4,1,0 NEW RELEASE DATE FORMAT
- CATBIT VEVS,3,1,0 SITE STATUS
- CATBIT VEVS,2,1
- CATBIT VEVS,1,1,0 ERROR FLAG
- CATBIT VEVS,0,1,0 VSN BUSY FLAG
- CATBIT VEFV,59,36 FIRST VSN
- CATBIT VEFV,23,24
- CATBIT VENV,59,36 NEXT VSN
- CATBIT VENV,23,6,0 USAGE COUNT
- CATBIT VENV,17,18 RELEASE DATE
- CATEND TSVL END OF VSN ENTRY CATALOG
- CIGSL EQU *-CIGS LENGTH OF CATALOG IMAGES
- THBP SPACE 4,15
- ** TABLE FOR HOLD BUFFER PROCESSING.
- *
- * THIS TABLE CONTAINS 2 WORD ENTRIES FOR EACH MEMORY PARTITION
- * THAT NEEDS TO BE SAVED WHEN PROCESSING HIGHER LEVEL
- * DIRECTIVES FROM A LOWER LEVEL. THE TABLE IS TERMINATED WITH
- * A ZERO WORD.
- *
- *T, 60/ADDRESS
- *T, 60/WORD COUNT
- THBP CON WKSP,WKSPL SPECIAL WORKING STORAGE
- CON CIGS,CIGSL CATALOG IMAGES
- CON TAVS,TAVSL TABLE OF ASSIGNED VSNS
- CON 0
- * HBUFL SHOULD BE THE SUM OF LENGTHS OF THE MEMORY PARTITIONS
- * SAVED IN HBUF.
- HBUFL EQU WKSPL+CIGSL+TAVSL
- DTAB SPACE 4,15
- ** DIRECTIVE TABLES.
- *
- * ENTRY ONE WORD PER DIRECTIVE.
- * 42/IDENT,18/ADDR
- *
- * IDENT = DIRECTIVE IDENTIFIER, LEFT JUSTIFIED.
- * ADDR = ADDRESS OF DIRECTIVE CONTROL TABLE IF
- * EQUIVALENCED DIRECTIVE.
- * = (-1) * PROCESSOR ADDRESS IF NOT EQUIVALENCED
- * DIRECTIVE.
- *
- * EACH DIRECTIVE TABLE IS TERMINATED BY A ZERO WORD.
- TFAD SPACE 4,10
- ** TFAD - TABLE OF FAMILY LEVEL DIRECTIVES.
- TFAD BSS 0
- DTAB ALTFAM
- DTAB AUDITCH
- DTAB AUDITUN
- DTAB AUDITVS
- DTAB BRIEF,-/LVFA/BRF
- DTAB CALTFAM
- DTAB CATERR
- DTAB COLON
- DTAB DISPLAY,-DIS
- DTAB DROP,-/LVFA/DRO
- DTAB STOP,-STO
- DTAB FAMNAME
- DTAB FOREIGN
- DTAB GLOBAL
- DTAB GO,-/LVFA/PGO
- DTAB HELP,-HEL
- DTAB INVALID
- DTAB ISV,-/LVFA/ISV
- DTAB LINKFAM
- DTAB MID
- DTAB MREADCH
- DTAB MREADUN
- DTAB MREADVS
- DTAB NOBRIEF,-/LVFA/NBF
- DTAB PURGALL
- DTAB PURGE
- DTAB READ
- DTAB RELEASE
- DTAB REMOVE
- DTAB REWIND
- DTAB SEPARAT
- DTAB SOURCCH
- DTAB SOURCE,-/LVFA/SOU
- DTAB SOURCUN
- DTAB SOURCVS
- DTAB USER
- DTAB VALIDAT
- DTAB VSN
- CON 0 END OF TABLE
- TVSD SPACE 4,10
- ** TVSD - TABLE OF VSN LEVEL DIRECTIVES.
- TVSD BSS 0
- DTAB ADD,-/LVVS/ADD
- DTAB BRIEF,-/LVFA/BRF
- DTAB COLON
- DTAB DISPLAY,-DIS
- DTAB DROP,-/LVVS/DRO
- DTAB STOP,-STO
- DTAB ERRFLAG
- DTAB GO,-/LVVS/PGO
- DTAB HELP,-HEL
- DTAB MAINT
- DTAB NOBRIEF,-/LVFA/NBF
- DTAB OWNER
- PRN DTAB PRN
- DTAB READ
- DTAB REVISE,-/LVVS/REV
- DTAB REWIND
- DTAB SEPARAT
- DTAB SITE
- DTAB STATUS
- DTAB SYSTEM
- DTAB USAGE
- DTAB VT
- CON 0 END OF TABLE
- TUSD SPACE 4,10
- ** TUSD - TABLE OF USER LEVEL DIRECTIVES.
- TUSD BSS 0
- DTAB AUDITCN
- DTAB AUDITFI
- DTAB AUDITFV
- DTAB BRIEF,-/LVFA/BRF
- DTAB COLON
- DTAB DISPLAY,-DIS
- DTAB DROP,-/LVUS/DRO
- DTAB STOP,-STO
- FILE DTAB FILE
- DTAB FILEV
- DTAB GO,-/LVUS/DRO
- DTAB HELP,-HEL
- DTAB MREADCN
- DTAB MREADFI
- DTAB MREADFV
- DTAB NOBRIEF,-/LVFA/NBF
- DTAB READ
- DTAB RELEASF
- DTAB RELEASV
- DTAB REWIND
- DTAB SEPARAT
- DTAB SOURCCN
- DTAB SOURCFI
- DTAB SOURCFV
- CON 0 END OF TABLE
- TFLD SPACE 4,10
- ** TFLD - TABLE OF FILE LEVEL DIRECTIVES.
- TFLD BSS 0
- DTAB AC
- DTAB ACOUNT
- DTAB ADATE
- DTAB AMEND,-/LVFI/ALT
- DTAB ATIME
- DTAB AUDITAU
- DTAB AUSER
- DTAB AVSN
- DTAB BRIEF,-/LVFA/BRF
- DTAB CDATE
- DTAB CE
- DTAB CN
- DTAB COLON
- DTAB CR
- DTAB CT
- DTAB CTIME
- DTAB CV
- DTAB D
- DTAB DISPLAY,-DIS
- DTAB DROP,-/LVFI/DRO
- DTAB E
- DTAB STOP,-STO
- DTAB F
- DTAB FA
- DTAB FC
- FI DTAB FI
- DTAB G
- DTAB GO,-/LVFI/PGO
- DTAB HELP,-HEL
- DTAB LB
- DTAB M
- DTAB MDATE
- DTAB MTIME
- DTAB NOBRIEF,-/LVFA/NBF
- DTAB NS
- PI DTAB PI
- DTAB PN
- PW DTAB PW
- DTAB RDATE
- DTAB READ
- DTAB RECOVER
- DTAB RESERVE,-/LVFI/RES
- DTAB REWIND
- DTAB RT
- DTAB SEPARAT
- SI DTAB SI
- DTAB SN
- DTAB SV
- DTAB TOWNER
- DTAB TSITE
- UC DTAB UC
- DTAB URDATE
- CON 0 END OF TABLE
- TAUD SPACE 4,10
- ** TAUD - TABLE OF ALTERNATE USER LEVEL DIRECTIVES.
- TAUD BSS 0
- DTAB AACOUNT
- DTAB AADATE
- DTAB AATIME
- DTAB ADMIT,-/LVAU/ADM
- DTAB AMODE
- DTAB BRIEF,-/LVFA/BRF
- DTAB COLON
- DTAB DISPLAY,-DIS
- DTAB DROP,-/LVAU/DRO
- DTAB STOP,-STO
- DTAB GO,-/LVAU/ADM
- DTAB HELP,-HEL
- DTAB NOBRIEF,-/LVFA/NBF
- DTAB READ
- DTAB REWIND
- DTAB SEPARAT
- CON 0 END OF TABLE
- TDTA SPACE 4,10
- ** TDTA - TABLE OF DIRECTIVE TABLE ADDRESSES.
- TDTA INDTAB 1
- INDEX LVFA,CON,TFAD FAMILY LEVEL
- INDEX LVVS,CON,TVSD VSN LEVEL
- INDEX LVUS,CON,TUSD USER LEVEL
- INDEX LVFI,CON,TFLD FILE LEVEL
- INDEX LVAU,CON,TAUD ALTERNATE USER LEVEL
- DCTAB SPACE 4,50
- ** DIRECTIVE CONTROL TABLES.
- *
- * ENTRY AT LEAST THREE WORDS PER DIRECTIVE.
- * 12/INDEX,6/MINC,6/MAXC,18/ALLOW,18/SUPP
- * 12/UBIT,12/BITC,18/PROC,18/ENTRY
- * 1/OB,1/PVL,1/DVL,3/ ,18/MINV,18/MAXV,18/DEFAULT
- *
- * INDEX = *DIP* PROCESSOR INDEX.
- * PIZF - ZERO FILL.
- * PIOP - OPTION SELECTION.
- * PIBD - NUMERIC BINARY DATA.
- * PIPD - PACKED DATE.
- * PIPT - PACKED TIME.
- * PIJD - JULIAN DATE.
- * PIVQ - VSN/SEQUENCE NUMBER.
- * PIVS - PADDED VSN.
- * MINC = MINIMUM NUMBER OF CHARACTERS.
- * MAXC = MAXIMUM NUMBER OF CHARACTERS.
- * ALLOW = ADDRESS OF ALLOWED CHARACTERS BIT STRING.
- * SUPP = ADDRESS OF SUPPRESSED CHARACTERS BIT STRING.
- * UBIT = UPPER BIT POSITION OF CATALOG ENTRY.
- * BITC = BIT COUNT OF CATALOG ENTRY.
- * = 0 IF NO CATALOG ENTRY.
- * PROC = POST PROCESSOR ADDRESS.
- * = 0 IF NO POST PROCESSOR.
- * ENTRY = ADDRESS OF CATALOG ENTRY.
- * PVL = FLAG FOR IMPLIED DROP REQUIREMENT.
- * = 0 IF DIRECTIVE REQUIRES NO IMPLIED DROP.
- * = 1 IF DIRECTIVE REQUIRES AN IMPLIED DROP.
- * DVL = FLAG FOR LOWER LEVEL VALIDITY.
- * = 0 IF VALID FROM LOWER LEVEL.
- * = 1 IF NOT VALID FROM DIFFERENT LEVEL.
- * MINV = ADDRESS OF MINIMUM VALUE FOR *PIBD* TYPE.
- * MAXV = ADDRESS OF MAXIMUM VALUE FOR *PIBD* TYPE.
- * = ADDRESS OF OPTION TABLE FOR *PIOP* TYPE.
- * DEFAULT = ADDRESS OF DEFAULT VALUE.
- * OB = OUTPUT BLOCK FLAG. IF SET, AN EXTRA TWO WORD
- * BLOCK FOLLOWS.
- * 6/KCH,6/KUB,18/KADD,6/ACH,6/AUB,18/AADD
- * 6/SCH,6/SUB,18/SADD,6/MCH,6/MUB,18/MADD
- *
- * KCH = NUMBER OF CHARACTERS IN K-DISPLAY.
- * KUB = UPPER BIT POSITION IN K-DISPLAY.
- * KADD = ADDRESS IN K-DISPLAY.
- * ACH = NUMBER OF CHARACTERS IN AUDIT LISTING.
- * AUB = UPPER BIT POSITION IN AUDIT LISTING.
- * AADD = ADDRESS IN AUDIT LISTING.
- * SCH = NUMBER OF CHARACTERS IN SOURCE LISTING.
- * SUB = UPPER BIT POSITION IN SOURCE LISTING.
- * SADD = ADDRESS IN SOURCE LISTING.
- * MCH = NUMBER OF CHARACTERS IN MACHINE READABLE LIST.
- * MUB = UPPER BIT POSITION IN MACHINE READABLE LISTING.
- * MADD = ADDRESS IN MACHINE READABLE LISTING.
- * UNIVERSAL DIRECTIVE CONTROL TABLES.
- COLON DCTAB PIBS,0,1,="EC",,59,UCKL*6,,CL,,,=0
- COLON DCTABL 0,0
- COLON DCTABO ,,,0,0,0,0,0,0,0,0,0
- READ DCTAB PIZF,1,7,,,59,42,REA,AI
- READ DCTABL 0,0
- READ DCTABO ,,,0,0,0,0,0,0,0,0,0
- REWIND DCTAB PIZF,1,7,,,59,42,REW,R
- REWIND DCTABL 0,0
- SEPARAT DCTAB PIBS,0,1,="EC",,59,UCKL*6,,SE,,,(=C*,*)
- SEPARAT DCTABL 0,0
- SEPARAT DCTABO ,,,0,0,0,0,0,0,0,0,0
- * FAMILY LEVEL DIRECTIVE CONTROL TABLES.
- ALTFAM DCTAB PIZF,0,7,,,59,FNKL*6,/LVFA/AFM,/LVFA/AFMA,,,=0
- ALTFAM DCTABL 0,0
- AUDITCH DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVFA/ACH,CN
- AUDITCH DCTABL 0,0
- AUDITUN DCTAB PIZF,0,7,="AS",,59,UNKL*6,/LVFA/AUN,UN,,,=0
- AUDITUN DCTABL 0,0
- AUDITVS DCTAB PIVS,0,6,,,59,VSKL*6,/LVFA/AVS,VS,,,=0
- AUDITVS DCTABL 0,0
- CALTFAM DCTAB PIZF,0,7,,,59,FNKL*6,/LVFA/CAF,/LVFA/CAFA,,,=0
- CALTFAM DCTABL 0,0
- CATERR DCTAB PIOP,0,10,,,0,1,/LVFA/CAT,/LVFA/CATA
- CATERR DCTABL 0,0
- FAMNAME DCTAB PIZF,0,7,,,59,7*6,/LVFA/FAM,/LVFA/FAMA,,,FM
- FAMNAME DCTABL 0,0
- FOREIGN DCTAB PIOP,0,10,,,0,1,/LVFA/FOR,/LVFA/FORA
- FOREIGN DCTABL 0,0
- GLOBAL DCTAB PIOP,0,10,,,0,1,/LVFA/GLO,/LVFA/GLOA
- GLOBAL DCTABL 0,0
- INVALID DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFA/INV,UN
- INVALID DCTABL 0,0
- LINKFAM DCTAB PIZF,0,7,,,59,FNKL*6,/LVFA/LKF,/LVFA/LKFA,,,=0
- LINKFAM DCTABL 0,0
- MID DCTAB PIZF,0,2,,,11,2*6,/LVFA/MID,/LVFA/MIDA,,,MI
- MID DCTABL 0,0
- MREADCH DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVFA/MCH,CN
- MREADCH DCTABL 0,0
- MREADUN DCTAB PIZF,0,7,="AS",,59,UNKL*6,/LVFA/MUN,UN,,,=0
- MREADUN DCTABL 0,0
- MREADVS DCTAB PIVS,0,6,,,59,VSKL*6,/LVFA/MVS,VS,,,=0
- MREADVS DCTABL 0,0
- PURGALL DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFA/PGA,UN
- PURGALL DCTABL 1,1
- PURGE DCTAB PIVS,1,6,,,59,VSKL*6,/LVFA/PTF,VS
- PURGE DCTABL 1,1
- RELEASE DCTAB PIVS,1,6,,,59,VSKL*6,/LVFA/REL,VS
- RELEASE DCTABL 1,1
- REMOVE DCTAB PIVS,1,6,,,59,VSKL*6,/LVFA/REM,VS
- REMOVE DCTABL 1,1
- SOURCCH DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVFA/SCH,CN
- SOURCCH DCTABL 0,0
- SOURCUN DCTAB PIZF,0,7,="AS",,59,UNKL*6,/LVFA/SUN,UN,,,=0
- SOURCUN DCTABL 0,0
- SOURCVS DCTAB PIVS,0,6,,,59,VSKL*6,/LVFA/SVS,VS,,,=0
- SOURCVS DCTABL 0,0
- USER DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFA/USE,UN
- USER DCTABL 1,0
- VALIDAT DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFA/VAL,UN
- VALIDAT DCTABL 0,0
- VSN DCTAB PIVS,1,6,,,59,VSKL*6,/LVFA/VSN,VS
- VSN DCTABL 1,0
- * VSN LEVEL DIRECTIVE CONTROL TABLES.
- ERRFLAG DCTAB PIOP,0,10
- ERRFLAG DCTABL 0,1
- ERRFLAG DCTABO 0,0,0,0,0,0
- MAINT DCTAB PIOP,0,10
- MAINT DCTABL 0,1
- MAINT DCTABO 0,0,0,0,0,0
- OWNER DCTAB PIOP,0,10,,,,,/LVVS/OWN
- OWNER DCTABL 0,1
- OWNER DCTABO
- PRN DCTAB PIBF,0,6,="AC",="NC",,,,,,,VS
- PRN DCTABL 0,1
- PRN DCTABO ,,,,,,0,0,0
- SITE DCTAB PIOP,0,10
- SITE DCTABL 0,1
- SITE DCTABO
- STATUS DCTAB PIOP,0,10,,,1,2,/LVVS/STA,ME
- STATUS DCTABL 0,1
- STATUS DCTABO 0,0,0,0,0,0,0,0,0,0,0,0
- SYSTEM DCTAB PIOP,2,3,,,,,/LVVS/SYS
- SYSTEM DCTABL 0,1
- SYSTEM DCTABO
- USAGE DCTAB PIBD,0,10,,,,,,,=0,=77B,=C*0*
- USAGE DCTABL 0,1
- USAGE DCTABO -2
- VT DCTAB PIOP,2,4,,,,,/LVVS/VTY
- VT DCTABL 0,1
- VT DCTABO
- * USER LEVEL DIRECTIVE CONTROL TABLES.
- AUDITCN DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVUS/ACN,CN
- AUDITCN DCTABL 0,0
- AUDITFI DCTAB PIBF,1,17,="AC",="NC",59,FIKL*6,/LVUS/AFI,FI
- AUDITFI DCTABL 0,0
- AUDITFV DCTAB PIVS,1,6,,,59,VSKL*6,/LVUS/AFV,VS
- AUDITFV DCTABL 0,0
- FILE DCTAB PIBF,1,17,="AC",="NC",59,FIKL*6,/LVUS/FIL,FI
- FILE DCTABL 1,0
- FILEV DCTAB PIVQ,1,6,,,59,60,/LVUS/FIV,FV
- FILEV DCTABL 1,0
- MREADCN DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVUS/MCN,CN
- MREADCN DCTABL 0,0
- MREADFI DCTAB PIBF,1,17,="AC",="NC",59,FIKL*6,/LVUS/MFI,FI
- MREADFI DCTABL 0,0
- MREADFV DCTAB PIVS,1,6,,,59,VSKL*6,/LVUS/MFV,VS
- MREADFV DCTABL 0,0
- RELEASF DCTAB PIBF,1,17,,,59,FIKL*6,/LVUS/RLF,FI
- RELEASF DCTABL 1,1
- RELEASV DCTAB PIVQ,1,6,,,59,60,/LVUS/RLV,VS
- RELEASV DCTABL 1,1
- SOURCCN DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVUS/SCN,CN
- SOURCCN DCTABL 0,0
- SOURCFI DCTAB PIBF,1,17,="AC",="NC",59,FIKL*6,/LVUS/SFI,FI
- SOURCFI DCTABL 0,0
- SOURCFV DCTAB PIVS,1,6,,,59,VSKL*6,/LVUS/SFV,VS
- SOURCFV DCTABL 0,0
- * FILE LEVEL DIRECTIVE CONTROL TABLES.
- AC DCTAB PIOP,0,10
- AC DCTABL 1,0
- AC DCTABO ,,,,,,,,,0,0,0
- ACOUNT DCTAB PIBD,0,10,,,,,,,=0,="MXAC",=C*0000*
- ACOUNT DCTABL 1,0
- ACOUNT DCTABO -8
- ADATE DCTAB PIPD,0,6,,,,,,,,,DD
- ADATE DCTABL 1,0
- ADATE DCTABO
- ATIME DCTAB PIPT,0,6,,,,,,,,,DT
- ATIME DCTABL 1,0
- ATIME DCTABO
- AUDITAU DCTAB PIZF,0,7,="AS",,59,UNKL*6,/LVFI/AAU,AU,,,=0
- AUDITAU DCTABL 0,0
- AUSER DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFI/AUS,AU
- AUSER DCTABL 1,0
- AVSN DCTAB PIVS,1,6,,,59,VSKL*6,/LVFI/AVS,VS
- AVSN DCTABL 1,0
- CDATE DCTAB PIPD,0,6,,,,,,,,,DD
- CDATE DCTABL 1,0
- CDATE DCTABO
- CE DCTAB PIOP,0,10
- CE DCTABL 1,0
- CE DCTABO
- CN DCTAB PIZF,0,10,="AS",,,,,,,=0
- CN DCTABL 1,0
- CN DCTABO
- CR DCTAB PIJD,0,5,,,,,,,,,JD
- CR DCTABL 1,0
- CR DCTABO ,,,,,,,,,0,0,0
- CT DCTAB PIOP,0,10
- CT DCTABL 1,0
- CT DCTABO
- CTIME DCTAB PIPT,0,6,,,,,,,,,DT
- CTIME DCTABL 1,0
- CTIME DCTABO
- CV DCTAB PIOP,0,10
- CV DCTABL 1,0
- CV DCTABO
- D DCTAB PIOP,2,2,,,,,/LVFI/DEN
- D DCTABL 1,0
- D DCTABO
- E DCTAB PIBD,0,10,,,,,,,=0,=99,=C*00*
- E DCTABL 1,0
- E DCTABO -2,,,,,,,,,0,0,0
- F DCTAB PIOP,0,10
- F DCTABL 1,0
- F DCTABO
- FA DCTAB PIZF,0,1,,,,,,,,,=0
- FA DCTABL 1,0
- FA DCTABO ,,,,,,,,,0,0,0
- FC DCTAB PIBD,0,10,,,,,,,=0,="MXFC",=C*"MXFC"*
- FC DCTABL 1,0
- FC DCTABO -4,,,,,,,,,0,0,0
- FI DCTAB PIBF,0,17,="AC",="NC",,,/LVFI/PFI,,,,FI
- FI DCTABL 1,0
- FI DCTABO 20,,,,,,0,0,0
- G DCTAB PIBD,0,10,,,,,,,=1,=9999,=C*0001*
- G DCTABL 1,0
- G DCTABO -4,,,,,,,,,0,0,0
- LB DCTAB PIOP,0,10
- LB DCTABL 1,0
- LB DCTABO
- M DCTAB PIOP,0,10
- M DCTABL 1,0
- M DCTABO
- MDATE DCTAB PIPD,0,6,,,,,,,,,DD
- MDATE DCTABL 1,0
- MDATE DCTABO
- MTIME DCTAB PIPT,0,6,,,,,,,,,DT
- MTIME DCTABL 1,0
- MTIME DCTABO
- NS DCTAB PIBD,0,10,,,,,,,=0,=31,=C*0*
- NS DCTABL 1,0
- NS DCTABO -2,,,,,,,,,0,0,0
- PI DCTAB PIBF,0,17,="AC",="NC",,,,,,,FI
- PI DCTABL 1,0
- PI DCTABO 20,,,,,,0,0,0
- PN DCTAB PIZF,0,20,="AH",,,,,,,=0
- PN DCTABL 1,0
- PN DCTABO 20
- PW DCTAB PIZF,0,7,="EC",,,,,,,,=0
- PW DCTABL 1,0
- PW DCTABO ,,,,,,0,0,0
- RDATE DCTAB PIPD,0,6,,,17,18,/LVFI/RDA,/LVFI/RDAA,,,(=1L)
- RDATE DCTABL 1,0
- RDATE DCTABO 0,0,0,0,0,0,0,0,0,0,0,0
- RECOVER DCTAB PIOP,0,10
- RECOVER DCTABL 1,0
- RECOVER DCTABO ,,,0,0,0,,,,0,0,0
- RT DCTAB PIJD,0,5,,,,,,,,,JD
- RT DCTABL 1,0
- RT DCTABO ,,,,,,,,,0,0,0
- SI DCTAB PIBF,0,6,="AC",="NC",,,,,,,=0
- SI DCTABL 1,0
- SI DCTABO ,,,,,,0,0,0,0,0,0
- SN DCTAB PIBD,0,10,,,,,,,=1,=9999,=C*0001*
- SN DCTABL 1,0
- SN DCTABO -4,,,,,,,,,0,0,0
- SV DCTAB PIOP,0,10,,,,,/LVFI/PSV
- SV DCTABL 1,0
- SV DCTABO ,,,,,,,,,0,0,0
- TOWNER DCTAB PIOP,0,10,,,/UPB/OWNER,/BTC/OWNER,,ST
- TOWNER DCTABL 1,0
- TOWNER DCTABO ,,,0,0,0,0,0,0,0,0,0
- TSITE DCTAB PIOP,0,10,,,/UPB/SITE,/BTC/SITE,,ST
- TSITE DCTABL 1,0
- TSITE DCTABO ,,,0,0,0,0,0,0,0,0,0
- UC DCTAB PIBF,0,10,="AC",="NC",,,,,,,=0
- UC DCTABL 1,0
- UC DCTABO ,,,,,,0,0,0
- URDATE DCTAB PIPD,0,6,,,,,/LVFI/URD,TAVS+/CAT/URDATE,,,(=1L)
- URDATE DCTABL 1,0
- URDATE DCTABO
- * ALTERNATE USER LEVEL DIRECTIVE CONTROL TABLES.
- AACOUNT DCTAB PIBD,0,10,,,,,,,=0,="MXAA",=C*0000*
- AACOUNT DCTABL 1,0
- AACOUNT DCTABO -6,,,,,,,,,0,0,0
- AADATE DCTAB PIPD,0,6,,,,,,,,,DD
- AADATE DCTABL 1,0
- AADATE DCTABO ,,,,,,,,,0,0,0
- AATIME DCTAB PIPT,0,6,,,,,,,,,DT
- AATIME DCTABL 1,0
- AATIME DCTABO ,,,,,,,,,0,0,0
- AMODE DCTAB PIOP,0,10
- AMODE DCTABL 1,0
- AMODE DCTABO ,,,,,,,,,0,0,0
- DOTAB SPACE 4,10
- ** DIRECTIVE OPTION TABLES.
- *
- * ENTRY TWO WORDS PER OPTION.
- * 60/ IDENT
- * 60/ VALUE
- *
- * IDENT = OPTION IDENTIFIER, LEFT JUSTIFIED.
- * VALUE = VALUE ASSIGNED TO CATALOG ENTRY.
- *
- * EACH OPTION TABLE IS TERMINATED BY A ZERO WORD.
- * FAMILY LEVEL OPTION TABLES.
- CATERR DOTAB ((CLEAR,0),(SET,1))
- FOREIGN DOTAB ((NO,0),(YES,1))
- GLOBAL DOTAB ((NO,0),(YES,1))
- * VSN LEVEL DIRECTIVE OPTION TABLES.
- ERRFLAG DOTAB ((CLEAR,0),(SET,1))
- MAINT DOTAB ((AVAILABLE,0),(HOLD,1))
- STATUS DOTAB ((AVAILABLE,0),(CLEANED,1),(HOLD,2),(ERROR,3))
- OWNER DOTAB ((CENTER,0),(USER,1))
- SITE DOTAB ((ON,0),(OFF,1))
- SYSTEM DOTAB ((NO,0),(YES,1))
- VT DOTAB ((MTNT,0),(CT,1),(AT,3))
- * FILE LEVEL DIRECTIVE OPTION TABLES.
- AC DOTAB ((NO,0),(YES,1))
- CE DOTAB ((CLEAR,0),(SET,1))
- CT DOTAB ((PRIVATE,FCPR),(SPRIV,FCSP),(PUBLIC,FCPU))
- CV DOTAB ((AS,2),(EB,3))
- D DOTAB ((PE,44B),(GE,45B),(HI,2),(LO,1),(HY,3),(HD,43B),(CE,26
- ,B),(AE,66B))
- F DOTAB ((I,0),(SI,1),(F,2),(S,3),(L,4),(LI,5))
- LB DOTAB ((KL,2),(KU,0),(NS,1))
- M DOTAB ((READ,FMRE),(WRITE,FMWR),(NULL,FMNA))
- RECOVER DOTAB ((NO,0),(YES,1))
- SV DOTAB ((NO,0),(SET,1))
- TOWNER DOTAB ((CENTER,0),(USER,1))
- TSITE DOTAB ((ON,0),(OFF,1))
- * ALTERNATE USER LEVEL DIRECTIVE OPTION TABLES.
- AMODE DOTAB ((IMPLICIT,0),(WRITE,FMWR),(READ,FMRE),(NULL,FMNA),(SPE
- ,CIAL,FMPF))
- DMESS SPACE 4,10
- ** DAYFILE MESSAGES.
- MABT DATA C* TFSP ABORTED.*
- MABU DATA C* TFSP ABORTED BY USER.*
- MANT DATA C* ABNORMAL TERMINATION, ERROR CODE = $$$$$$$.*
- MCOM DATA C* TFSP COMPLETE.*
- MDER DATA C* DIRECTIVE ERRORS.*
- MFNA DATA C* FAMILY NOT ACTIVE.*
- MINA DATA C* INCORRECT ACCESS.*
- MTCI DATA C* TAPE CATALOG FILE INTERLOCKED.*
- MUTE DATA C* UNEXPECTED TAPE CATALOG ERROR.*
- EMESS SPACE 4,10
- ** DIRECTIVE ERROR MESSAGES.
- EAFM KLINE ( ALTERNATE FAMILIES AT MAXIMUM.),E,50
- EAVM KLINE ( ASSIGNED VSNS AT MAXIMUM.),E,50
- ECSV KLINE ( CANNOT CHANGE SYSTEM VSN FLAG.),E,50
- ECTD KLINE ( CANNOT CHANGE TAPE TYPE / DENSITY.),E,50
- EDFE KLINE ( DATA FIELD ERROR.),E,50
- EDLE KLINE ( DIRECTIVE INCORRECT FROM CURRENT LEVEL.),E,50
- ENVF KLINE ( DIRECTIVE NOT VALID ON FAST ATTACH CATALOG.),E,50
- EFAR KLINE ( FILE ALREADY RESERVED.),E,50
- EFIB KLINE ( FILE BUSY.),E,50
- EFIC KLINE ( FILE IDENTIFIER CONFLICT.),E,50
- EFNC KLINE ( FILE NAME CONFLICT.),E,50
- EFNI KLINE ( FILE NOT IN CATALOG.),E,50
- EFNR KLINE ( FILE NOT RESERVED.),E,50
- EILD KLINE ( INCORRECT DIRECTIVE.),E,50
- EIFI KLINE ( INCORRECT FILE IDENTIFIER.),E,50
- EIQN KLINE ( INCORRECT SEQUENCE NUMBER.),E,50
- EWSA KLINE ( NO SCRATCH AVAILABLE.),E,50
- ENMS KLINE ( NON-MATCHING STATUSES.),E,50
- ENMT KLINE ( NON-MATCHING TAPE TYPE.),E,50
- ERDI KLINE ( READ DIRECTIVE INCORRECT.),E,50
- ERDM KLINE ( REQUIRED DATA MISSING.),E,50
- ESVC KLINE ( SYSTEM VSN CANNOT BE USER-OWNED.),E,50
- ESVM KLINE ( SYSTEM VSN MUST BE FIRST VSN.),E,50
- EVUM KLINE ( VALIDATED USERS AT MAXIMUM.),E,50
- EVAA KLINE ( VSN ALREADY ASSIGNED.),E,50
- EVAI KLINE ( VSN ALREADY IN CATALOG.),E,50
- EVSB KLINE ( VSN BUSY.),E,50
- EVNA KLINE ( VSN NOT ADDED TO CATALOG.),E,50
- EVNF KLINE ( VSN NOT ASSIGNED TO FILE.),E,50
- EVNV KLINE ( VSN NOT AVAILABLE.),E,50
- EVNC KLINE ( VSN NOT IN CATALOG.),E,50
- IMESS SPACE 4,10
- ** INFORMATIVE MESSAGES.
- IAIA KLINE ( ALTERNATE USER CURRENTLY IS ADMITTED.),E,50
- IANA KLINE ( ALTERNATE USER NOT CURRENTLY ADMITTED.),E,50
- IANP KLINE ( ALTERNATE USER NOT PROCESSED.),E,50
- IAUA KLINE ( ALTERNATE USER ADMITTED.),E,50
- IAUU KLINE ( ALTERNATE USER ADMIT UPDATED.),E,50
- IEOF KLINE ( PREMATURE END OF FILE, XXXXXXX.),E,50
- IFAL KLINE ( FILE AMENDED.),E,50
- IFIR KLINE ( FILE CURRENTLY IS RESERVED.),E,50
- IFNP KLINE ( FILE NOT PROCESSED.),E,50
- IFNR KLINE ( FILE NOT CURRENTLY RESERVED.),E,50
- IFRC KLINE ( FILE RELEASED FROM CATALOG.),E,50
- IFRE KLINE ( FILE RESERVED.),E,50
- IIPI KLINE ( I PARAMETER IGNORED.),E,50
- IPNI KLINE ( P AND N PARAMETERS IGNORED.),E,50
- IULC KLINE ( USER LEVEL COMPLETE.),E,50
- IVAC KLINE ( VSN ADDED TO CATALOG.),E,50
- IVIC KLINE ( VSN CURRENTLY IN CATALOG.),E,50
- IVNC KLINE ( VSN NOT CURRENTLY IN CATALOG.),E,50
- IVNP KLINE ( VSN NOT PROCESSED.),E,50
- IVRB KLINE ( VSN RESERVED BY #######.),E,50
- IVRC KLINE ( VSN REMOVED FROM CATALOG.),E,50
- IVSI KLINE ( VSN INTERLOCKED. JSN IS ????.),E,50
- IVSR KLINE ( VSN REVISED.),E,50
- PHEAD SPACE 4,10
- ** PAGE HEADER MESSAGES.
- PAUA BSS 0 ALTERNATE USER AUDIT LISTING
- LISTER PAUA,17,( AUDIT LISTING.),E
- LISTER ,10,( USER = )
- USER LISTER ,7 USER NAME
- LISTER ,10,( FILE = )
- FILE LISTER ,17 FILE IDENTIFIER
- LISTER ,1,,E
- LISTER ,10,( FVSN = )
- FVSN LISTER ,6 FIRST VSN
- LISTER ,11,( QN = )
- QN LISTER ,4,0001,E SEQUENCE NUMBER
- LISTER ,1,( ),E
- LISTER ,30,( USER NAME MODE )
- LISTER ,31,( ACCESSES DATE TIME),E
- LISTER ,1,( ),E
- PAUAL EQU *-PAUA LENGTH OF HEADER
- PDIR BSS 0 DIRECTIVE LISTING
- LISTER PDIR,21,( DIRECTIVE LISTING.),E
- LISTER ,1,( ),E
- PDIRL EQU *-PDIR LENGTH OF HEADER
- PDIS BSS 0 DISPLAY LISTING
- LISTER PDIS,19,( DISPLAY LISTING.),E
- PDISL EQU *-PDIS LENGTH OF HEADER
- PFIA BSS 0 FILE AUDIT LISTING
- LISTER PFIA,17,( AUDIT LISTING.),E
- LISTER ,1,( ),E
- LISTER ,40,( USER FILE-IDENTIFIER SV FVSN )
- LISTER ,38,(QN CE CHARGE PROJECT-NUMBER )
- EOL1 LISTER ,2 END OF LINE FOR MASS STORAGE OUTPUT
- LISTER ,42,( PASSWORD PHYSICAL-FILE-ID MD CT AC UCW),E
- LISTER ,40,( CR CV D E F FA FC G )
- LISTER ,38,( LB NS RT SN SI )
- EOL2 LISTER ,2 END OF LINE FOR MASS STORAGE OUTPUT
- LISTER ,40,( ACCESSES CDATE CTIME ADATE ATIME MD)
- LISTER ,10,(ATE MTIME),E
- LISTER ,1,( ),E
- PFIAL EQU *-PFIA LENGTH OF HEADER
- PHEL BSS 0 HELP DISPLAY
- LISTER PHEL,16,( HELP LISTING.),E
- PHELL EQU *-PHEL LENGTH OF HEADER
- PVSA BSS 0 VSN AUDIT LISTING
- LISTER PVSA,17,( AUDIT LISTING.),E
- LISTER ,1,( ),E
- LISTER ,48,( VSN PRN VT STATUS UC OWNER SITE SYSTEM)
- LISTER ,39,( USER CHARGE URDATE FVSN NVSN),E
- LISTER ,1,( ),E
- PVSAL EQU *-PVSA LENGTH OF HEADER
- TITLE MAIN PROGRAM.
- TFS SPACE 4,10
- ** TFS - MAIN ROUTINE FOR *TFSP* AND *TFSPE*.
- TFS BSS 0
- SX6 B1 FLAG CLEAR INTERLOCK ON ABORT
- SA6 CI
- RCREC N1,1,REC1 READ FIRST RECORD
- SX3 REC1+TBHL SET SYSTEM TABLE ADDRESS
- SX4 TSST SET SYSTEM TABLE IMAGE ADDRESS
- RJ MSV SAVE SYSTEM TABLE VALUES
- RJ KFM SET FAMILY LEVEL K-DISPLAY
- SA1 TE
- NZ X1,TFS2 IF *TFSPE*
- SA1 LF
- NZ X1,TFS1 IF LOCAL FILE MODE
- ISSMSG IPNI,I ISSUE INFORMATIVE MESSAGE
- TFS1 SA1 OP CHECK OPTION
- SX1 X1-IOPT
- ZR X1,TFS2 IF *OP=I*
- ISSMSG IIPI,I ISSUE INFORMATIVE MESSAGE
- TFS2 SA1 LV GET LEVEL
- SETSORC K,X1 SET SOURCE VALUES IN K-DISPLAY
- SA1 /KFILLS1/FILE PREVENT EXTRA END OF LINES
- SB3 59
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 /KFILLS2/FILE
- SB3 59
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 /KFILLS3/FILE
- SB3 59
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 /KAUSLS/FILE
- SB3 59
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 /KDIS/FI
- SB3 5
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 /KDIS/PI
- SB3 5
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 DM CHECK DIRECTIVE MESSAGE FLAG
- SX6 B0 CLEAR FLAG
- SA6 A1
- NZ X1,TFS3 IF KEEP CURRENT MESSAGE
- MOVE 4,(=40H),/KMESS/DIRECT CLEAR CURRENT MESSAGE
- TFS3 RJ DIP PROCESS DIRECTIVE INPUT
- SA1 EF
- ZR X1,TFS4 IF NO ERROR
- ABTMSG MDER,NA SET ERROR MESSAGE ADDRESS
- SA1 AB
- NZ X1,TFS6 IF ABORT OPTION
- TFS4 SA1 ET
- PL X1,TFS2 IF NOT EOF
- SA1 IF CHECK INPUT FET ADDRESS
- SX1 X1-I
- NZ X1,TFS7 IF NOT END OF INPUT FILE
- SA1 IS CHECK INPUT FILE STATUS
- SX1 X1
- ZR X1,TFS6 IF NO INPUT FILE
- PL X1,TFS5 IF NOT BATCH JOB
- MX0 42
- SA1 I GET INPUT FILE NAME
- BX1 X0*X1
- SB2 1RX
- SB3 TFSD
- SB5 -IEOF
- RJ SNM SET NAME IN MESSAGE
- ISSMSG TFSD,I ISSUE INFORMATIVE MESSAGE
- EQ TFS6 TERMINATE TFSP
- TFS5 ISSMSG EILD,E ISSUE ERROR MESSAGE
- SX6 B0
- SA6 ET CLEAR EOF FLAG
- SA6 EF CLEAR ERROR FLAG
- SA1 I CLEAR *EOF* ON FET
- MX0 57
- LX0 3
- BX6 X0*X1
- SA6 A1
- EQ TFS2 READ NEXT LINE OF INPUT FILE
- TFS6 MOVE TFSAL,TFSA,USBB SET TERMINATION DIRECTIVES
- SX6 USBB-1
- SA6 SP
- SX6 X6+B1
- SA6 SB
- SX6 USBB+TFSAL
- SA6 SM
- EQ TFS8 SET FET ADDRESS
- TFS7 SA1 TFSB+0 RESET INPUT STRING BUFFER POINTERS
- SX6 X1
- SA6 SB
- SA1 A1+B1
- SX6 X1
- SA6 SM
- SA1 A1+B1
- SX6 X1
- SA6 SP
- MOVE USBBL,TFSC,USBB RESET INPUT STRING BUFFER
- TFS8 SX6 I SET INPUT FET ADDRESS
- SA6 IF
- SX6 B0 CLEAR EOF FLAG
- SA6 ET
- SA6 AI CLEAR ALTERNATE INPUT FILE NAME
- EQ TFS2 READ NEXT LINE OF INPUT FILE
- TFSA DATA 1RD,1RR,1RO,1RP TERMINATION DIRECTIVES
- DATA 1R,,1RD,1RR,1RO,1RP
- DATA 1R,,1RD,1RR,1RO,1RP
- DATA 1R,,1RD,1RR,1RO,1RP
- TFSAL EQU *-TFSA LENGTH OF TERMINATION DIRECTIVE
- TFSB BSS 0 STRING POINTER IMAGES
- LOC 0
- BSS 1 IMAGE OF (SB)
- BSS 1 IMAGE OF (SM)
- BSS 1 IMAGE OF (SP)
- LOC *O
- TFSC BSS USBBL IMAGE OF INPUT STRING BUFFER
- TFSD DATA C* PREMATURE END OF FILE, XXXXXXX.*
- ABT SPACE 4,10
- ** ABT - ABORT *TFSP*.
- *
- * ENTRY (CI) = 0 IF NO CLEAR OF UTILITY INTERLOCK.
- * (EM) = DAYFILE ERROR MESSAGE ADDRESS.
- * = 0 IF NO ERROR MESSAGE.
- *
- * EXIT *TFSP* ABORTED.
- ABT BSS 0 ENTRY
- SA1 CI
- ZR X1,ABT1 IF NO CLEAR OF INTERLOCK
- SX6 B0 FLAG NO INTERLOCKS CLEARED
- SA6 A1
- SA6 RT CLEAR RETRY FLAG
- RJ RVE REPLACE VSN ENTRIES
- SX1 B0 SET NO USER NAME
- RJ IUN INTERLOCK USER NAME
- ABT1 SA2 FM CHECK FAMILY NAME
- SA1 CF
- BX2 X1-X2
- ZR X2,ABT2 IF NO FAMILY NAME CHANGE NEEDED
- RJ CFM CHANGE FAMILY
- ABT2 SA1 OS
- ZR X1,ABT3 IF NO OUTPUT FILE
- WRITER L,R FLUSH OUTPUT BUFFER
- ABT3 SA1 TE
- ZR X1,ABT5 IF NOT *TFSPE*
- ABT4 RETURN N1,R RETURN FILE
- ABT5 MESSAGE MABT,0,R ISSUE *TFSP ABORTED* MESSAGE
- SA5 EM
- ZR X5,ABT6 IF NO ERROR MESSAGE
- MESSAGE X5,3,R ISSUE ERROR MESSAGE
- ABT6 RETURN T,R RETURN INTERRUPT FILE
- ABORT ABORT PROGRAM
- END SPACE 4,10
- ** END - TERMINATE *TFSP*.
- *
- * EXIT TO ABT IF DIRECTIVE ERRORS AND ABORT MODE.
- * *TFSP* TERMINATED.
- *
- * USES A - 1, 2.
- * X - 1, 2.
- *
- * CALLS ABT, CFM, IUN, RVE.
- *
- * MACROS ENDRUN, ENFA, MESSAGE, RETURN, WRITER.
- *
- * ENTERED AT END7 FROM TFR.
- END BSS 0 ENTRY
- SA1 EF
- ZR X1,END1 IF NO DIRECTIVE ERRORS
- SA1 AB
- NZ X1,ABT IF ABORT MODE
- END1 RJ RVE REPLACE VSN ENTRIES IN CATALOG FILE
- SX1 B0 SET NO USER NAME
- RJ IUN INTERLOCK USER NAME
- END2 SA1 OS
- ZR X1,END3 IF NO OUTPUT FILE
- WRITER L,R FLUSH OUTPUT BUFFER
- END3 SA1 EF
- ZR X1,END4 IF NO DIRECTIVE ERRORS
- MESSAGE MDER,3,R ISSUE DIRECTIVE ERROR MESSAGE
- END4 SA1 TE
- ZR X1,END6 IF NOT *TFSPE*
- END5 RETURN N1,R RETURN FILE
- END6 RETURN T,R RETURN INTERRUPT FILE
- * ENTRY FROM TFR.
- END7 SA2 FM CHECK FAMILY NAME
- SA1 CF
- BX2 X1-X2
- ZR X2,END8 IF FAMILY NOT CHANGED
- RJ CFM CHANGE FAMILY
- END8 MESSAGE MCOM,0,R ISSUE COMPLETION MESSAGE
- ENDRUN TERMINATE PROGRAM
- RPV SPACE 4,10
- ** RPV - REPRIEVE HANDLER.
- *
- * EXIT PROGRAM RESUMED IF TERMINAL INTERRUPT.
- * PROGRAM ABORTED IF SYSTEM ERROR.
- RPV BSS 0 ENTRY
- SA1 RPVA+7 CHECK ERROR FLAG
- RJUST X1,X1,12,11
- SX6 X1-TIET
- ZR X6,RPV1 IF TERMINAL INTERRUPT
- SX6 X1-TAET
- ZR X6,RPV1 IF TERMINAL INTERRUPT
- EQ RPV7 ISSUE ERROR MESSAGE
- RPV1 SX6 B0 CLEAR INTERRUPT RESPONSE
- SA6 RPVC
- QUAL RPV
- RESETP T DISPLAY INTERRUPT INFORMATION
- WRITEW X2,RPVD,RPVDL
- WRITER X2,R
- READ X2,R GET USER RESPONSE
- READC X2,RPVC,1
- QUAL *
- SA1 RPVA+4
- NZ X1,RPV6 IF INTERRUPTS PENDING
- MX0 42 CHECK USER RESPONSE
- SA1 RPVC
- SA2 RPVE
- RPV2 ZR X2,RPV1 IF INCORRECT RESPONSE
- BX6 X0*X2
- BX6 X6-X1
- ZR X6,RPV3 IF RESPONSE FOUND
- SA2 A2+B1
- EQ RPV2 CHECK NEXT TABLE ENTRY
- RPV3 SB2 X2
- JP B2 PROCESS RESPONSE
- RPV4 SX6 B1 SET TERMINAL INTERRUPT FLAG
- SA6 TI
- RPV5 REPRIEVE RPVA,RESUME,237B RESUME PROGRAM
- RPV6 ABTMSG MABU ABORT *TFSP*
- RPV7 SX6 X1-RPVBL
- PL X6,RPV8 IF UNKNOWN ERROR
- SA2 X1+RPVB
- ZR X2,RPV8 IF UNKNOWN ERROR
- ABTMSG X2 ABORT *TFSP*
- RPV8 RJ COD CONVERT TO OCTAL DISPLAY
- BX1 X4 SET DISPLAY ERROR CODE
- SB2 1R$ SET CHARACTER TO REPLACE
- SB3 MANT SET DAYFILE MESSAGE ADDRESS
- SB5 B3
- RJ SNM SET NAME IN MESSAGE
- ABTMSG MANT ABORT *TFSP*
- RPVA BSS 0 REPRIEVE BLOCK
- LOC 0
- VFD 36/0
- VFD 12/RPVAL BLOCK LENGTH
- VFD 2/0
- VFD 9/ FUNCTION
- VFD 1/0 COMPLETION BIT
- VFD 30/0 CHECKSUM LWA
- VFD 30/RPV TRANSFER ADDRESS
- VFD 60/ CHECKSUM VALUE
- VFD 24/237B MASK
- VFD 24/ ERROR CLASS
- VFD 12/ ERROR CODE
- VFD 60/ PENDING INTERRUPTS
- VFD 60/ PENDING RA+1 REQUEST
- VFD 60/ INTERRUPTED TERMINAL I/O
- VFD 48/
- VFD 12/ ERROR FLAG
- VFD 60/
- BSS 20B EXCHANGE PACKAGE
- RPVAL EQU *
- LOC *O
- RPVB INDTAB 1 TABLE OF ERROR CODE MESSAGES
- INDEX 0,CON,0 INCORRECT - NORMAL TERMINATION
- INDEX ARET,CON,(=C* ARITHMETIC ERROR.*)
- INDEX ITET,CON,(=C* SCP INVALID TRANSFER ADDRESS.*)
- INDEX PSET,CON,(=C* PROGRAM STOP ERROR.*)
- INDEX PPET,CON,(=C* PPU ABORT.*)
- INDEX CPET,CON,0 INCORRECT - CPU ABORT
- INDEX PCET,CON,(=C* PPU CALL ERROR.*)
- INDEX MLET,CON,(=C* MESSAGE LIMIT.*)
- INDEX TLET,CON,(=C* TIME LIMIT ERROR.*)
- INDEX FLET,CON,(=C* FILE LIMIT ERROR.*)
- INDEX TKET,CON,(=C* TRACK LIMIT ERROR.*)
- INDEX SRET,CON,(=C* SRU LIMIT ERROR.*)
- INDEX FSET,CON,(=C* FORCED ERROR.*)
- INDEX RCET,CON,(=C* JOB HUNG IN AUTORECALL.*)
- INDEX ODET,CON,(=C* OPERATOR DROP.*)
- INDEX IDET,CON,(=C* IDLEDOWN.*)
- INDEX RRET,CON,(=C* OPERATOR RERUN.*)
- INDEX DRET,CON,(=C* DEADSTART RERUN.*)
- INDEX STET,CON,(=C* SUSPENSION TIMEOUT.*)
- INDEX OKET,CON,(=C* OPERATOR KILL.*)
- INDEX SVET,CON,(=C* SECURITY VIOLATION.*)
- INDEX SSET,CON,(=C* SUBSYSTEM ABORTED.*)
- INDEX ECET,CON,(=C* ECS PARITY ERROR.*)
- INDEX PEET,CON,(=C* CPU PARITY ERROR.*)
- INDEX SYET,CON,(=C* SYSTEM ABORT.*)
- INDEX RAET,CON,(=C* RECOVERY ABORT.*)
- INDEX RSET,CON,(=C* RECOVERED SUBSYSTEM.*)
- INDEX ORET,CON,(=C* OVERRIDE ERROR CONDITION.*)
- RPVBL EQU *-RPVB NUMBER OF RECOGNIZED ERROR CODES
- RPVC CON 0 INTERRUPT USER RESPONSE
- RPVD BSS 0 INTERRUPT INSTRUCTIONS
- DATA C* USER BREAK PROCESSING.*
- DATA C* *
- DATA C* PLEASE ENTER ONE OF THE FOLLOWING NUMBERS -*
- DATA C* *
- DATA C* 1 ABORT TFSP.*
- DATA C* 2 RESUME PROCESSING (SOME TERMINAL OUTPUT LOST).*
- DATA C* 3 TERMINATE CURRENT AUDIT OR SOURCE DIRECTIVE.*
- RPVDL EQU *-RPVD LENGTH OF INSTRUCTIONS
- RPVE BSS 0 TABLE OF USER INTERRUPT RESPONSES
- VFD 42/0L1,18/RPV6 TERMINATE TFSP
- VFD 42/0L2,18/RPV5 RESUME PROCESSING
- VFD 42/0L3,18/RPV4 TERMINATE AUDIT OR SOURCE DIRECTIVE
- CON 0 END OF TABLE
- COMMON SPACE 4,10
- ** COMMON DECKS FOR REPRIEVE HANDLER.
- QUAL RPV
- QUAL$ EQU 1 FORCE UNQUALIFIED COMMON DECKS
- *CALL COMCCIO
- *CALL COMCRDC
- *CALL COMCSYS
- *CALL COMCWTW
- QUAL *
- TITLE SUBROUTINES FOR MACROS.
- CFR SPACE 4,10
- ** CFR - CHECK IF FILE IS READY.
- *
- * ENTRY (X2) = FET ADDRESS.
- *
- * EXIT (X1) = 0 IF NO FILE NAME.
- * (X2) = FET ADDRESS.
- *
- * USES A - 1.
- *
- * MACROS RECALL.
- CFR SUBR ENTRY/EXIT
- SA1 X2
- AX1 18
- ZR X1,CFRX IF NO FILE NAME
- RECALL X2 WAIT UNTIL FILE IS READY
- SX1 B1
- EQ CFRX RETURN
- CTF SPACE 4,15
- ** CTF - CALL *TFM*.
- *
- * ENTRY (X2) = FET ADDRESS.
- * (X6) = FUNCTION IF NO INTERLOCK TO SET.
- * = (-1)*FUNCTION IF INTERLOCK TO SET.
- *
- * EXIT (X2) = FET ADDRESS.
- * (X4) = ERROR CODE.
- * TO *ABT* IF UNEXPECTED ERROR CODE.
- *
- * USES A - 1, 2, 4, 6, 7.
- * X - 0, 1, 6, 7.
- *
- * MACROS ABTMSG, MESSAGE, RECALL, RJUST, SYSTEM.
- CTF SUBR ENTRY/EXIT
- LX6 3
- PL X6,CTF1 IF NO INTERLOCK TO SET
- BX6 -X6 RESET FUNCTION CODE
- SA1 LF
- NZ X1,CTF1 IF LOCAL FILE MODE
- SX6 X6+4 SET INTERLOCK BIT
- CTF1 SA6 CTFA SAVE FUNCTION CODE
- CTF2 RECALL X2 INSURE FET NOT BUSY
- MX0 42 SET FUNCTION CODE IN FET
- SA1 X2
- BX6 X0*X1
- SA1 CTFA
- BX6 X6+X1
- SA6 X2
- SX7 X2 SAVE FET ADDRESS
- SA7 CTFB
- SYSTEM TFM,R,X7,SSJF*100B CALL *TFM*
- SA2 CTFB GET ERROR CODE
- SA4 X2
- RJUST X4,X4,8,16
- SX1 X4-/EMSG/MXEC
- PL X1,CTF3 IF BEYOND KNOWN ERROR CODES
- SA1 X4+CTFC GET PROCESSOR ADDRESS
- SB2 X1
- ZR B2,CTF3 IF NO PROCESSOR ADDRESS
- JP B2 JUMP TO PROCESSOR
- * PROCESS UNEXPECTED ERROR CODES.
- CTF3 MESSAGE EBUF,0,R ISSUE *TFM* ERROR MESSAGE
- ABTMSG MUTE ABORT *TFSP*
- CTFA BSS 1 FUNCTION CODE
- CTFB BSS 1 FET ADDRESS
- CTFC INDTAB 1 TABLE OF ERROR CODE PROCESSORS
- INDEX 0,CON,CTFX NO ERROR
- INDEX /EMSG/VBS,CON,CTFX VSN BUSY
- INDEX /EMSG/LNF,CON,CTFX FILE NOT FOUND
- INDEX /EMSG/FNF,CON,CTFX FILE NOT FOUND
- INDEX /EMSG/VNF,CON,CTFX VSN NOT FOUND
- INDEX /EMSG/UNF,CON,CTFX USER NOT FOUND
- INDEX /EMSG/NMT,CON,CTFX FILE NOT ON TAPE
- INDEX /EMSG/VSR,CON,CTFX VSN RESERVED
- INDEX /EMSG/VSD,CON,CTFX VSN DUPLICATE
- INDEX /EMSG/FAR,CON,CTFX FILE ALREADY RESERVED
- INDEX /EMSG/VAR,CON,CTFX VSN ALREADY RESERVED
- INDEX /EMSG/DLK,CON,CTF3 DEADLOCK
- INDEX /EMSG/ILR,CON,CTF3 *TFM* INCORRECT REQUEST
- INDEX /EMSG/TMD,CON,CTF3 *TMS* DISABLED
- INDEX /EMSG/MNA,CON,CTF3 *MAGNET* NOT ACTIVE
- INDEX /EMSG/EBP,CON,CTF3 ERRONEOUS BUFFER POINTER
- INDEX /EMSG/TUA,CON,CTF3 *TFM* UTILITY ACTIVE
- INDEX /EMSG/BAE,CON,CTF3 BUFFER ARGUMENT ERROR
- INDEX /EMSG/EID,CON,CTF3 ERROR IN INDEX DATA
- INDEX /EMSG/ECD,CON,CTF3 ERROR IN CATALOG DATA
- INDEX /EMSG/EAD,CON,CTF3 ERROR IN CATALOG DATA
- INDEX /EMSG/RAE,CON,CTF3 RANDOM ADDRESS ERROR
- INDEX /EMSG/TKL,CON,CTF3 TRACK LIMIT
- INDEX /EMSG/MSE,CON,CTF3 MASS STORAGE ERROR
- INDEX /EMSG/CNF,CON,CTFX CATALOG NOT FOUND
- INDEX /EMSG/ECF,CON,CTFX EMPTY CATALOG
- INDEX /EMSG/CLE,CON,CTF3 CATALOG LINKAGE ERROR
- INDEX /EMSG/IOS,CON,CTF3 I/O SEQUENCE ERROR ON CATALOG
- INDEX /EMSG/EOI,CON,CTF3 EOI NOT ON TRACK CHAIN
- INDEX /EMSG/NAE,CON,CTFX NO ADMITS
- INDEX /EMSG/TPI,CON,CTF3 TMS PROCESSING INHIBITED
- INDEX /EMSG/SFA,CON,CTF3 FAMILY ACTIVITY SUSPENDED
- INDEX /EMSG/FCE,CON,CTF3 FAMILY CATALOG ERROR
- INDEX /EMSG/WSA,CON,CTFX WAIT SCRATCH ASSIGNMENT
- INDEX /EMSG/NEU,CON,CTF3 NO EXTEND ON USER OWNED FILE
- INDEX /EMSG/WRF,CON,CTF3 WRITE REQUEST ON READ ONLY FILE
- INDEX /EMSG/MPE,CON,CTF3 MULTI-FILE PROCESSING ERROR
- INDEX /EMSG/FCI,CON,CTF3 FILE CREATION INCORRECT
- INDEX /EMSG/EFD,CON,CTFX ERROR IN FILE DATA
- INDEX /EMSG/CNA,CON,CTFX LINKED CATALOG NOT ACCESSIBLE
- ERRNZ *-CTFC-/EMSG/MXEC INCORRECT NUMBER OF ERROR CODES
- CWL SPACE 4,15
- ** CWL - COUNT WORDS/LINES IN BUFFER.
- *
- * ENTRY (A1) = BUFFER ADDRESS.
- * (B2) = 0 IF COUNT NUMBER OF LINES.
- * = 1 IF COUNT NUMBER OF WORDS.
- * (B6) = WORD COUNT IF (B2) = 0.
- * (B7) = LINE COUNT IF (B2) = 1.
- * (X1) = FIRST WORD OF BUFFER.
- *
- * EXIT (A1) = LWA+1 OF BUFFER.
- * (B6) = WORD COUNT OF BUFFER.
- * (B7) = LINE COUNT OF BUFFER.
- *
- * USES B - 3, 4.
- * X - 0, 1.
- CWL SUBR ENTRY/EXIT
- SB3 B6 SET WORD COUNT FOR COUNTING LINES
- SB4 377777B
- ZR B2,CWL1 IF COUNTING LINES
- SB3 B4 SET LINE COUNT FOR COUNTING WORDS
- SB4 B7
- CWL1 MX0 -12 SET END OF LINE MASK
- SB6 B0 PRESET WORD COUNT
- SB7 B0 PRESET LINE COUNT
- CWL2 GE B6,B3,CWLX IF NO MORE WORDS IN BUFFER
- GE B7,B4,CWLX IF NO MORE LINES IN BUFFER
- SB6 B6+B1 INCREMENT WORD COUNT
- BX6 -X0*X1 CHECK END OF LINE BYTE
- SA1 A1+B1
- NZ X6,CWL2 IF NOT END OF LINE
- SB7 B7+B1 INCREMENT LINE COUNT
- EQ CWL2 CHECK WORD/LINE COUNTS
- DVS SPACE 4,15
- ** DVS - DELETE VSN ENTRY.
- *
- * ENTRY (B6) = ADDRESS OF VSN BUFFER.
- * (B7) = LENGTH OF VSN BUFFER.
- *
- * EXIT (X4) = 0 IF DELETE COMPLETE.
- * .NE. 0 IF A VSN IS ASSIGNED TO A FILE.
- *
- * USES A - 1, 3, 6.
- * B - 6, 7.
- * X - 1, 3, 6.
- *
- * CALLS SMD.
- *
- * MACROS CALLTFM, RESETP, WRITFET.
- DVS SUBR ENTRY/EXIT
- SX6 B6 SAVE BUFFER ADDRESS
- SA6 DVSA
- SX6 B7 SAVE BUFFER LENGTH
- SA6 DVSB
- RESETP N1 SET VSN ENTRIES INTO FET BUFFER
- SA1 DVSA
- SA3 DVSB
- WRITFET X2,X1,X3
- CALLTFM X2,DVES DELETE VSN ENTRIES
- NZ X4,DVSX IF ERROR
- SA1 DVSA SET BUFFER ADDRESS
- SB6 X1
- SA1 DVSB SET BUFFER LENGTH
- SB7 X1
- RJ SMD ISSUE *SDRM* ACCOUNT FILE MESSAGE
- SX4 B0 FLAG NO ERROR
- EQ DVSX RETURN
- DVSA BSS 1 VSN BUFFER ADDRESS
- DVSB BSS 1 VSN BUFFER LENGTH
- GFI SPACE 4,25
- ** GFI - GET FILE CATALOG VIA FILE IDENTIFIER.
- *
- * ENTRY (X1) = USER NAME.
- * (X2) = FIRST 10 CHARACTERS OF FILE ID.
- * (X3) = LAST 7 CHARACTERS OF FILE ID.
- * (B2) = VSN BUFFER ADDRESS.
- * (B4) = 0 IF VERIFY FILE STATUS.
- * .NE. 0 IF ASSUME FILE NOT FOUND.
- * (B6) = FILE CATALOG BUFFER ADDRESS.
- * (B7) = PREVIOUS FILE BUFFER ADDRESS.
- *
- * EXIT (X4) = 0 IF FILE FOUND.
- * .NE. IF FILE NOT FOUND. DEFAULT SET IN BUFFER.
- * (X6) = FILE CATALOG RANDOM ADDRESS.
- * (X7) = PREVIOUS FILE RANDOM ADDRESS.
- * (B6) = FILE COUNT.
- * (B7) = VSN COUNT.
- *
- * USES A - 1, 2, 3, 6.
- * B - 2.
- * X - 1, 2, 3.
- *
- * CALLS UFA.
- *
- * MACROS GFILEV, MOVE, MOVEBIT, RJUST, SAFET.
- GFI3 SA3 GFIC SET DEFAULT CATALOG IMAGE IN BUFFER
- MOVE TCEL,DFIC,X3
- SA2 GFIC SET DEFAULT FILE IDENTIFIER
- MOVEBIT GFIB,X2+/CAT/FI,/BTC/FI,,/UPB/FI
- SA2 GFIC SET DEFAULT PHYSICAL IDENTIFIER
- MOVEBIT GFIB,X2+/CAT/PI,/BTC/PI,,/UPB/PI
- SA2 GFIC SET SYMBOLIC ACCESS FLAG
- MOVEBIT (=1),X2+/CAT/SV,/BTC/SV,/BTC/SV-1,/UPB/SV
- SB7 B0 SET VSN COUNT
- SB6 B1 SET FILE COUNT
- SX7 B0 SET PREVIOUS FILE RANDOM ADDRESS
- SX6 B0 SET FILE CATALOG RANDOM ADDRESS
- SX4 B1 FLAG FILE NOT FOUND
- GFI SUBR ENTY/EXIT
- BX6 X1 SAVE USER NAME
- SA6 GFIA
- BX6 X2 SAVE FILE IDENTIFIER
- SA6 GFIB
- BX6 X3
- SA6 A6+B1
- SX6 B6 SAVE FILE CATALOG BUFFER ADDRESS
- SA6 GFIC
- SX6 B7 SAVE PREVIOUS FILE BUFFER ADDRESS
- SA6 GFID
- SX6 B2 SAVE VSN BUFFER ADDRESS
- SA6 GFIE
- NZ B4,GFI3 IF NO VERIFY
- SAFET GFIA,,GFIB,SCST SET AUDIT FET
- NZ X4,GFI3 IF FILE NOT FOUND
- SA1 GFIC SET BUFFER ADDRESSES
- SB6 X1
- SA1 GFIE
- SB2 X1
- RJ UFA UNPACK FILE AUDIT
- SA6 GFIF SAVE CATALOG RANDOM ADDRESS
- SA1 GFIC GET SEQUENCE NUMBER
- SA3 X1+/CAT/QN
- RJUST X3,X3,/BTC/QN,/UPB/QN
- SX3 X3-1
- NZ X3,GFI2 IF MULTI-FILE
- SA1 X1+/CAT/NCAT CHECK NEXT CATALOG RANDOM ADDRESS
- RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
- NZ X1,GFI2 IF MULTI-FILE
- SA1 A1+/CAT/REELC-/CAT/NCAT SET VSN COUNT
- RJUST X1,X1,/BTC/REELC,/UPB/REELC
- SB7 X1
- SB6 B1 SET FILE COUNT
- SX7 B0 SET PREVIOUS FILE RANDOM ADDRESS
- SA1 GFIF SET FILE CATALOG RANDOM ADDRESS
- BX6 X1
- EQ GFIX RETURN
- GFI2 SA2 GFIE SET ADDRESS OF FIRST VSN
- SA4 GFIC SET FILE CATALOG BUFFER ADDRESS
- SB6 X4
- SA4 GFID SET PREVIOUS FILE BUFFER ADDRESS
- SB2 X2 SET VSN BUFFER ADDRESS
- GFILEV GFIA,X2,X3+B1,B6,X4,B2 GET FILE CATALOG VIA VSN
- EQ GFIX RETURN
- GFIA BSS 1 USER NAME
- GFIB BSS 2 FILE IDENTIFIER
- GFIC BSS 1 FILE CATALOG BUFFER ADDRESS
- GFID BSS 1 PREVIOUS FILE BUFFER ADDRESS
- GFIE BSS 1 VSN BUFFER ADDRESS
- GFIF BSS 1 FILE CATALOG RANDOM ADDRESS
- GFV SPACE 4,30
- ** GFV - GET FILE CATALOG VIA VSN.
- *
- * ENTRY (X1) = USER NAME.
- * (X2) = VSN.
- * (X3) = SEQUENCE NUMBER.
- * (B2) = VSN BUFFER ADDRESS.
- * (B4) = 0 IF VERIFY FILE STATUS.
- * .NE. 0 IF ASSUME FILE NOT FOUND.
- * (B6) = FILE BUFFER ADDRESS.
- * (B7) = PREVIOUS FILE BUFFER ADDRESS.
- *
- * EXIT (X4) = 0 IF FILE FOUND.
- * = 1 IF FILE NOT FOUND. DEFAULT USED.
- * = -1 IF INCORRECT SEQUENCE NUMBER.
- * = -2 IF VSN UNAVAILABLE.
- * (X6) = FILE CATALOG RANDOM ADDRESS.
- * (X7) = PREVIOUS FILE CATALOG RANDOM ADDRESS.
- * (B6) = FILE COUNT.
- * (B7) = VSN COUNT.
- *
- * USES A - 1, 2, 3, 4, 6, 7.
- * B - 2, 6, 7.
- * X - 0, 1, 2, 3, 4, 6, 7.
- *
- * CALLS UFA.
- *
- * MACROS LISTVSN, MOVE, MOVEBIT, REPVSN, RJUST, SAFET.
- GFV11 SA1 GFVH GET FILE COUNT
- SB6 X1
- SA1 GFVI GET VSN COUNT
- SB7 X1
- SA1 GFVJ GET FILE RANDOM ADDRESS
- BX6 X1
- SA1 GFVK GET PREVIOUS FILE RANDOM ADDRESS
- BX7 X1
- GFV SUBR ENTRY/EXIT
- BX6 X1 SAVE USER NAME
- SA6 GFVA
- BX6 X2 SAVE VSN
- SA6 GFVB
- SX6 X3 SAVE SEQUENCE NUMBER
- SA6 GFVC
- SX6 B6 SAVE FILE BUFFER ADDRESS
- SA6 GFVD
- SX6 B7 SAVE PREVIOUS FILE BUFFER ADDRESS
- SA6 GFVE
- SX6 B2 SAVE VSN BUFFER ADDRESS
- SA6 GFVF
- SX6 B4 SAVE NO VERIFY FLAG
- SA6 GFVG
- SX6 B0 CLEAR FILE COUNT
- SA6 GFVH
- SA6 GFVI CLEAR VSN COUNT
- SA6 GFVJ CLEAR CATALOG RANDOM ADDRESS
- SA6 GFVK CLEAR PREVIOUS CATALOG RANDOM ADDRESS
- SA6 GFVL CLEAR LAST VSN
- ZR B4,GFV1 IF VERIFY STATUS
- SX3 X3-1
- ZR X3,GFV7 IF FIRST FILE
- GFV1 SAFET GFVA,GFVB,,SCST SET AUDIT FET
- NZ X4,GFV7 IF NO FILE FOR USER
- GFV2 SB6 WBUF SET FILE BUFFER
- SB2 WBUF+TCEL SET VSN BUFFER
- RJ UFA UNPACK FILE AUDIT
- NZ X4,GFV6 IF END OF AUDIT
- SA1 GFVH INCREMENT FILE COUNT
- SX7 X1+B1
- SA7 A1
- SA1 GFVC COMPARE TO SEQUENCE NUMBER
- IX7 X1-X7
- NG X7,GFV4 IF FILE ALREADY FOUND
- SA3 GFVE GET PREVIOUS FILE BUFFER ADDRESS
- SB2 GFVK GET PREVIOUS RANDOM ADDRESS ADDRESS
- NZ X7,GFV3 IF FILE NOT YET FOUND
- SA3 GFVD GET FILE BUFFER ADDRESS
- SB2 GFVJ GET RANDOM ADDRESS ADDRESS
- GFV3 SA6 B2 SET RANDOM ADDRESS
- MOVE TCEL,WBUF,X3 SET CATALOG IMAGE IN BUFFER
- GFV4 SA3 GFVI INCREMENT VSN COUNT
- SA2 WBUF+/CAT/REELC
- RJUST X2,X1,/BTC/REELC,/UPB/REELC
- IX6 X1+X3
- LX1 2 SET SIZE OF VSN BUFFERS
- LX3 2
- SB2 B0
- MX0 VSKL*6 COMPARE LAST VSN TO EXTERNAL VSN
- SA2 GFVL
- SA4 WBUF+TCEL
- BX2 X2-X4
- BX2 X0*X2
- NZ X2,GFV5 IF VSNS NOT THE SAME
- SB2 -4 FLAG MATCHING VSNS
- SX6 X6-1 DECREMENT VSN COUNT
- GFV5 SA6 A3 RESET VSN COUNT
- SA2 X1+WBUF+TCEL-4 RESET LAST VSN
- BX6 X2
- SA6 GFVL
- SA4 GFVF GET VSN BUFFER ADDRESS
- IX3 X4+X3
- MOVE X1,WBUF+TCEL,X3+B2 SET VSNS IN BUFFER
- EQ GFV2 CHECK NEXT FILE
- GFV6 SA1 GFVH
- ZR X1,GFV7 IF NO FILES
- SA2 GFVC CHECK IF FILE FOUND
- IX6 X1-X2
- SX4 B0
- PL X6,GFV11 IF FILE FOUND
- SX6 X6+B1 CHECK IF VALID SEQUENCE NUMBER
- SX4 -B1
- NZ X6,GFV11 IF INCORRECT SEQUENCE NUMBER
- SA3 GFVD SET DEFAULT FILE CATALOG
- MOVE TCEL,DFIC,X3
- SA2 GFVD SET SEQUENCE NUMBER IN CATALOG
- MOVEBIT GFVC,X2+/CAT/QN,/BTC/QN,/BTC/QN-1,/UPB/QN
- SX4 B1
- EQ GFV11 SET FILE COUNT
- GFV7 SA1 GFVC CHECK IF VALID SEQUENCE NUMBER
- SX1 X1-1
- SX4 -B1
- NZ X1,GFV11 IF INCORRECT SEQUENCE NUMBER
- LISTVSN GFVB,GFVM,1 LIST VSN ENTRY
- ZR X4,GFV8 IF VSN FOUND
- SX4 -2
- EQ GFV11 SET FILE COUNT
- GFV8 SA1 GFVG
- NZ X1,GFV9 IF NO VERIFY
- SA1 GFVM+/CAT/VSBF CHECK IF VSN IS BUSY
- RJUST X1,X1,/BTC/VSBF,/UPB/VSBF
- SX4 -2
- NZ X1,GFV11 IF VSN IS BUSY
- SA1 GFVM+/CAT/VASF CHECK IF VSN IS ASSIGNED
- RJUST X1,X1,/BTC/VASF,/UPB/VASF
- NZ X1,GFV10 IF VSN IS ASSIGNED TO ANOTHER USER
- SA1 LF
- NZ X1,GFV9 IF LOCAL FILE MODE
- SA1 GFVM+/CAT/NVSN CHECK IF IN SCRATCH POOL
- LJUST X1,X1,/BTC/NVSN,/UPB/NVSN
- NZ X1,GFV10 IF IN SCRATCH POOL
- GFV9 SA3 GFVD SET DEFAULT FILE CATALOG
- MOVE TCEL,DFIC,X3
- SA3 GFVF SET ASSIGNED VSN
- MOVE TSVL,GFVM,X3
- SA2 GFVD SET EXTERNAL VSN
- MOVEBIT GFVM+/CAT/VSN,X2+/CAT/EVSN,/BTC/EVSN,,/UPB/EVSN
- SA2 GFVD SET INTERNAL VSN
- MOVEBIT GFVM+/CAT/PRN,X2+/CAT/IVSN,/BTC/IVSN,,/UPB/IVSN
- SA2 GFVD SET REEL COUNT
- SA2 X2+/CAT/REELC
- MOVEBIT (=1),A2,/BTC/REELC,/BTC/REELC-1,/UPB/REELC
- SX6 B1 SET FILE COUNT
- SA6 GFVH
- SA6 GFVI SET VSN COUNT
- SX4 B1
- EQ GFV11 SET FILE COUNT
- GFV10 MOVEBIT (=0),GFVM+/CAT/VSBF,/BTC/VSBF,,/UPB/VSBF
- REPVSN GFVM,4 REPLACE VSN ENTRY
- SX4 -2
- EQ GFV11 SET FILE COUNT
- GFVA BSS 1 USER NAME
- GFVB BSS 1 VSN
- GFVC BSS 1 SEQUENCE NUMBER
- GFVD BSS 1 FILE BUFFER ADDRESS
- GFVE BSS 1 PREVIOUS FILE BUFFER ADDRESS
- GFVF BSS 1 VSN BUFFER ADDRESS
- GFVG BSS 1 NO VERIFY FLAG
- GFVH BSS 1 FILE COUNT
- GFVI BSS 1 VSN COUNT
- GFVJ BSS 1 FILE RANDOM ADDRESS
- GFVK BSS 1 PREVIOUS FILE RANDOM ADDRESS
- GFVL BSS 1 LAST VSN
- GFVM BSS TSVL VSN ENTRY BUFFER
- GRE SPACE 4,15
- ** GRE - GET RECORD ENTRY.
- *
- * ENTRY (X1) = ENTRY BUFFER ADDRESS.
- * (X2) = TAPE CATALOG FET ADDRESS.
- * FET BUFFER CONTAINS IMAGE OF ONE RECORD
- * OF TAPE CATALOG FILE.
- *
- * EXIT (X6) = 0 IF NO MORE ENTRIES.
- * CURRENT ENTRY IMAGE IN ENTRY BUFFER.
- *
- * USES A - 1, 3.
- * X - 0, 1, 3, 4.
- *
- * MACROS RCREC, READFET, RJUST.
- GRE SUBR ENTRY/EXIT
- SX6 X1 SAVE ENTRY BUFFER ADDRESS
- SA6 GREA
- GRE1 SA1 X2+B1 CHECK IF FIRST READ OF RECORD
- SX1 X1
- SA3 X2+3
- IX3 X3-X1
- NZ X3,GRE2 IF NOT FIRST READ
- READFET X2,GREB,TBHL POSITION PAST BUFFER CONTROL WORD
- GRE2 SA1 X2+B1 GET ENTRY COUNT
- SA3 X1
- RJUST X3,X6,12,23
- RJUST X3,X3,12,23 GET ENTRY LENGTH
- IX6 X6*X3
- SX4 X1+4 CHECK IF ANY ENTRIES LEFT
- IX4 X4+X6
- SA1 X2+3
- IX4 X1-X4
- PL X4,GRE3 IF NO MORE ENTRIES
- SA1 GREA GET NEXT ENTRY
- READFET X2,X1,X3
- SX6 B1 FLAG ENTRY FOUND
- EQ GREX RETURN
- GRE3 MX0 -24 CHECK NEXT RANDOM ADDRESS
- SA1 X2+TFRR
- BX6 -X0*X1
- ZR X6,GREX IF NO MORE RECORDS
- RCREC X2,X6 READ NEXT RECORD
- EQ GRE1 PROCESS NEXT ENTRY
- GREA BSS 1 ENTRY BUFFER ADDRESS
- GREB BSS TBHL BUFFER CONTROL WORD BUFFER
- LVS SPACE 4,15
- ** LVS - LIST VSN ENTRY.
- *
- * ENTRY (X1) = VSN.
- * (B2) = 0 IF NO INTERLOCK OF VSN.
- * = 1 IF INTERLOCK VSN.
- * (B6) = VSN BUFFER ADDRESS.
- *
- * EXIT (X4) = 0 IF VSN FOUND.
- * VSN ENTRY IMAGE SET IN BUFFER.
- * DEFAULT SET IN BUFFER IF NOT FOUND.
- *
- * USES A - 1, 2, 3, 4, 6.
- * X - 1, 2, 3.
- *
- * MACROS CALLTFM, MOVE, MOVEBIT, RESETP, WRITFET.
- LVS SUBR ENTRY/EXIT
- BX6 X1 SAVE VSN
- SA6 LVSA
- SX6 B6 SAVE VSN BUFFER ADDRESS
- SA6 LVSB
- SX6 B2 SAVE INTERLOCK STATUS
- SA6 LVSC
- MOVE TSVL,DVSC,B6 SET DEFAULT VSN IMAGE
- SA2 LVSB
- MOVEBIT LVSA,X2+/CAT/VSN,/BTC/VSN,,/UPB/VSN
- SA2 LVSB
- MOVEBIT LVSA,X2+/CAT/PRN,/BTC/PRN,,/UPB/PRN
- RESETP N1 SET VSN ENTRY IMAGE IN FET
- SA1 LVSB
- WRITFET X2,X1,4
- SA1 LVSC CHECK INTERLOCK STATUS
- SX6 LVES SET FUNCTION CODE
- ZR X1,LVS1 IF NO INTERLOCK
- SX6 -LVES SET FUNCTION CODE WITH INTERLOCK
- LVS1 CALLTFM X2,X6 LIST VSN ENTRY
- SX6 X4 SAVE ERROR CODE
- SA6 LVSD
- SA3 LVSB SET VSN ENTRY IMAGE IN BUFFER
- MOVE TSVL,N1BUF,X3
- SA1 LF
- ZR X1,LVS2 IF NOT LOCAL FILE MODE
- SA2 LVSB CLEAR VSN BUSY FLAG
- MOVEBIT (=0),X2+/CAT/VSBF,/BTC/VSBF,,/UPB/VSBF
- LVS2 SA4 LVSD
- EQ LVSX RETURN
- LVSA BSS 1 VSN
- LVSB BSS 1 VSN ENTRY BUFFER ADDRESS
- LVSC BSS 1 INTERLOCK STATUS
- LVSD BSS 1 ERROR CODE
- MBS SPACE 4,20
- ** MBS - MOVE BIT STRING.
- *
- * ENTRY (A1) = ADDRESS OF SOURCE STRING.
- * (A2) = ADDRESS OF DESTINATION STRING.
- * (B2) = UPPER BIT POSITION OF DESTINATION STRING.
- * (B3) = UPPER BIT POSITION OF SOURCE STRING.
- * (B4) = BIT COUNT.
- * (X1) = FIRST WORD OF SOURCE STRING.
- * (X2) = FIRST WORD OF DESTINATION STRING.
- *
- * EXIT (A1) = ADDRESS OF REMAINDER OF SOURCE STRING.
- * (A2) = ADDRESS OF REMAINDER OF DESTINATION STRING.
- * (B2) = UPPER BIT POSITION OF REMAINDER OF DESTINATION
- * STRING.
- * (B3) = UPPER BIT POSITION OF REMAINDER OF SOURCE
- * STRING.
- *
- * USES B - 4.
- * X - 1, 2.
- *
- * CALLS SBS.
- MBS SUBR ENTRY/EXIT
- MBS1 LE B4,MBSX IF NO MORE BITS TO TRANSFER
- RJ SBS SET BIT STRING
- SA6 A2 SET NEW STRING
- BX2 X6
- PL B2,MBS2 IF MORE BITS IN DESTINATION WORD
- SB2 59 RESET UPPER BIT POSITION
- SA2 A2+B1 RESET DESTINATION ADDRESS
- MBS2 PL B3,MBS1 IF MORE BITS IN SOURCE WORD
- SB3 59 RESET UPPER BIT POSITION
- SA1 A1+B1 RESET SOURCE ADDRESS
- EQ MBS1 CHECK BIT COUNT
- MTO SPACE 4,15
- ** MTO - ISSUE MESSAGE TO OUTPUT.
- *
- * ENTRY (B2) = 0 IF INFORMATIVE MESSAGE.
- * = 1 IF ERROR MESSAGE.
- * (B5) = MESSAGE ADDRESS.
- *
- * EXIT MESSAGE ISSUED TO OUTPUT FILE/K-DISPLAY.
- *
- * USES A - 1, 2, 6.
- * B - 2, 7.
- * X - 1, 2, 6.
- *
- * CALLS IRL.
- *
- * MACROS CWORDS, MOVE, WLINES.
- MTO SUBR ENTRY/EXIT
- SX6 B5 SAVE MESSAGE ADDRESS
- SA6 MTOA
- SA2 =10H *INFORM*
- ZR B2,MTO1 IF INFORMATIVE MESSAGE
- SX6 B1 SET ERROR FLAG
- SA6 EF
- SA6 DM SET DIRECTIVE MESSAGE FLAG
- SA2 =10H *ERROR*
- MTO1 BX6 X2 SET START OF MESSAGE IN K-DISPLAY
- SA6 /KMESS/MESSAGE+0
- CWORDS B5,1 COUNT WORDS IN LINE
- SX6 B0 FLAG END OF K-DISPLAY
- SA6 B6+/KMESS/MESSAGE+1
- SA2 MTOA SET MESSAGE IN K-DISPLAY
- MOVE B6,X2,/KMESS/MESSAGE+1
- SA1 BF CHECK IF *BRIEF* MODE
- ZR X1,MTO2 IF NOT *BRIEF* MODE
- SA1 DM CHECK MESSAGE TYPE
- ZR X1,MTOX IF INFORMATIVE MESSAGE AND *BRIEF*
- WLINES /KMESS/DIRECT,1 WRITE DIRECTIVE TO OUTPUT
- MTO2 WLINES /KMESS/MESSAGE,1 WRITE MESSAGE TO OUTPUT
- SA1 DM CHECK MESSAGE TYPE
- ZR X1,MTOX IF INFORMATIVE MESSAGE
- RJ IRL IGNORE REST OF INPUT LINE
- EQ MTOX RETURN
- MTOA BSS 1 MESSAGE ADDRESS
- NPG SPACE 4,15
- ** NPG - NEW PAGE HEADER GENERATOR.
- *
- * ENTRY (HD) = ADDRESS OF HEADER BUFFER.
- * (HL) = LENGTH OF HEADER.
- * (PG) = PAGE NUMBER.
- *
- * EXIT PAGE HEADER WRITTEN TO OUTPUT FILE.
- *
- * USES A - 1, 2, 6.
- * B - 7.
- * X - 0, 1, 2, 6.
- *
- * CALLS CDD.
- *
- * MACROS CLINES, WRITEW.
- NPG SUBR ENTRY/EXIT
- SA1 OS
- ZR X1,NPGX IF NO OUTPUT FILE
- PL X1,NPG1 IF TERMINAL OUTPUT
- SA1 PG RESET PAGE NUMBER
- SX1 X1+B1
- SX6 X1
- SA6 A1
- RJ CDD CONVERT CONSTANT TO DECIMAL DISPLAY
- MX0 24 RESET PAGE NUMBER IN HEADER
- BX6 -X0*X6
- SA1 =C*PAGE*
- BX6 X1+X6
- SA6 NPGE
- CLINES NPGA,NPGAL COUNT LINES IN FIRST PART OF HEADER
- SX6 B7 SET LINE COUNT
- SA6 LC
- SB7 B6 WRITE FIRST PART OF HEADER TO OUTPUT FILE
- WRITEW L,A1-B6,B7
- NPG1 SA1 HD COUNT LINES IN SECOND PART OF HEADER
- SA2 HL
- CLINES X1,X2
- SA2 LC RESET LINE COUNT
- SX6 X2+B7
- SA6 A2
- SB7 B6 WRITE SECOND PART OF HEADER TO OUTPUT FILE
- WRITEW L,A1-B6,B7
- EQ NPGX RETURN
- NPGA BSS 0 FIRST LINE OF PAGE HEADER
- DATA H*1 TAPE FILE SUPERVISOR. *
- NPGB DATA H$*TFSP* FAMILY = $
- NPGC DATA H* *
- NPGD DATA H*YY/MM/DD. HH.MM.SS. *
- NPGE DATA C*PAGE 1*
- NPGF BSS 0 SECOND LINE OF PAGE HEADER
- DUP 9
- DATA 10H
- ENDD
- NPGG BSS 0 DIRECTIVE IMAGE
- DATA 30H
- CON 0
- NPGAL EQU *-NPGA LENGTH OF FIRST PART OF HEADER
- RCR SPACE 4,15
- ** RCR - READ CATALOG RECORD.
- *
- * ENTRY (X1) = RECORD RANDOM ADDRESS.
- * (X2) = FET ADDRESS.
- * (X3) = WORKING BUFFER ADDRESS.
- * = 0 IF NO WORKING BUFFER.
- * (B2) .NE. 0 IF SET UTILITY INTERLOCK BEFORE READ.
- *
- * EXIT RECORD READ INTO BUFFER.
- *
- * USES A - 3, 6.
- * X - 3, 6.
- *
- * CALLS SUI.
- *
- * MACROS CALLTFM, READFET, RESETP.
- RCR SUBR ENTRY/EXIT
- BX6 X1 SET RANDOM ADDRESS
- SA6 X2+TFRR
- SX6 X3 SAVE WORKING BUFFER ADDRESS
- SA6 RCRA
- ZR B2,RCR1 IF NO INTERLOCK TO SET
- RJ SUI SET UTILITY INTERLOCK
- RCR1 RESETP X2 READ CATALOG RECORD
- CALLTFM X2,RDRS
- SA3 RCRA CHECK BUFFER ADDRESS
- ZR X3,RCRX IF NO WORKING BUFFER
- READFET X2,X3,100B MOVE TO WORKING BUFFER
- EQ RCRX RETURN
- RCRA BSS 1 WORKING BUFFER ADDRESS
- RDF SPACE 4,20
- ** RDF - READ WORDS FROM FET INTO WORKING BUFFER.
- *
- * ENTRY (X2) = FET ADDRESS.
- * (B6) = WORKING BUFFER ADDRESS.
- * (B7) = NUMBER OF WORDS TO TRANSFER.
- *
- * EXIT (X1) = 0 IF TRANSFER COMPLETE.
- * = (B6) IF (B7).NE.0.
- * (X2) = FET ADDRESS.
- * (B6) = LWA+1 OF WORKING BUFFER.
- * (B7) = NUMBER OF WORDS NOT TRANSFERRED.
- *
- * USES A - 1, 3, 7.
- * X - 3, 6, 7.
- *
- * MACROS READW.
- RDF SUBR ENTRY/EXIT
- SA1 X2+2 COMPARE *IN* TO *OUT*
- SA3 A1+B1
- IX6 X1-X3
- PL X6,RDF1 IF *IN* .GE. *OUT*
- SA1 X2+B1 GET *FIRST*
- SX1 X1
- SA3 A3+B1 GET *LIMIT*
- SX3 X3
- IX1 X3-X1 GET NUMBER OF WORDS AVAILABLE IN BUFFER
- IX6 X6+X1
- RDF1 SX1 B7 CHECK IF ENOUGH WORDS IN BUFFER
- IX1 X6-X1
- SX7 B0
- PL X1,RDF2 IF ENOUGH WORDS IN BUFFER
- SB7 X6 RESET WORD COUNT
- BX7 -X1
- RDF2 SA7 RDFA SAVE NUMBER OF WORDS NOT TRANSFERRED
- READW X2,B6,B7 TRANSFER FROM FET BUFFER
- SA1 RDFA
- ZR X1,RDFX IF TRANSFER COMPLETE
- SB7 X1 SET NUMBER OF WORDS NOT TRANSFERRED
- SX1 B6 SET LWA+1 OF BUFFER
- EQ RDFX RETURN
- RDFA BSS 1 NUMBER OF WORDS NOT TRANSFERRED
- RLV SPACE 4,15
- ** RLV - RELEASE BY VSN.
- *
- * ENTRY (X1) = USER NAME.
- * (X2) = VSN.
- * (X3) = SEQUENCE NUMBER.
- *
- * EXIT (X4) = 0 IF RELEASE COMPLETE.
- * .NE. 0 IF VSN NOT ASSIGNED TO USER.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * CALLS SMB.
- *
- * MACROS CALLTFM, MOVEBIT, RESETP.
- RLV SUBR ENTRY/EXIT
- BX6 X1 SAVE USER NAME
- SA6 RLVA
- BX6 X2 SAVE VSN
- SA6 RLVB
- BX6 X3
- SA6 RLVC
- RESETP N3 SET FET FOR RELEASE
- MOVEBIT RLVA,N3+TFUN,UNKL*6
- MOVEBIT RLVB,N3+TFES,VSKL*6
- SX6 B0
- SA6 N3+TFID
- MOVEBIT (=0),N3+TFID+1,FIKL*6-60
- MOVEBIT RLVC,N3+TFID+1,15,14,14
- CALLTFM N3,RTCS RELEASE TAPE CATALOG FILE
- EQ RLVX RETURN
- RLVA BSS 1 USER NAME
- RLVB BSS 1 VSN
- RLVC BSS 1 SEQUENCE NUMBER
- RVS SPACE 4,15
- ** RVS - REPLACE/ADD VSNS.
- *
- * ENTRY (B6) = VSN BUFFER ADDRESS.
- * (B7) = VSN BUFFER LENGTH.
- *
- * EXIT VSN ENTRIES REPLACED/ADDED.
- *
- * USES A - 1, 3, 6.
- * X - 1, 3, 6.
- *
- * MACROS CALLTFM, RESETP, WRITFET.
- RVS SUBR ENTRY/EXIT
- ZR B7,RVSX IF NO VSNS TO REPLACE
- SX6 B6 SAVE BUFFER ADDRESS
- SA6 RVSA
- SX6 B7 SAVE BUFFER LENGTH
- SA6 RVSB
- RESETP N1 SET VSN BUFFER INTO FET BUFFER
- SA1 RVSA
- SA3 RVSB
- WRITFET X2,X1,X3
- CALLTFM X2,RVES REPLACE/ADD VSN ENTRIES
- EQ RVSX RETURN
- RVSA BSS 1 VSN BUFFER ADDRESS
- RVSB BSS 1 VSN BUFFER LENGTH
- SAF SPACE 4,20
- ** SAF - SET AUDIT FET.
- *
- * ENTRY (X1) = USER NAME.
- * (X2) = VSN.
- * (X3) = FIRST TEN CHARACTERS OF FILE IDENTIFIER.
- * (X4) = LAST SEVEN CHARACTERS OF FILE IDENTIFIER.
- * (X6) = AUDIT RANDOM ADDRESS.
- * (B2) = AUDIT TYPE.
- *
- * EXIT (X4) = 0 IF NO ERROR IN AUDIT.
- * (N3 - N3+15B) = AUDIT FET.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * MACROS CALLTFM, MOVEBIT, RESETP.
- SAF SUBR ENTRY/EXIT
- SA6 SAFA SAVE RANDOM ADDRESS
- BX6 X1 SAVE USER NAME
- SA6 SAFB
- BX6 X2 SAVE VSN
- SA6 SAFC
- BX6 X3 SAVE FILE IDENTIFIER
- SA6 SAFD
- BX6 X4
- SA6 A6+B1
- SX6 B2 SAVE AUDIT TYPE
- SA6 SAFE
- RESETP N3 RESET FET POINTERS
- SA1 SAFA SET AUDIT RANDOM ADDRESS
- BX6 X1
- SA6 N3+TFRR
- MOVEBIT SAFB,N3+TFUN,UNKL*6 SET USER NAME IN FET
- MOVEBIT SAFC,N3+TFES,VSKL*6 SET VSN IN FET
- MOVEBIT SAFD,N3+TFID,FIKL*6 SET FILE ID IN FET
- MOVEBIT SAFE,N3+TFPW,3,2,2 SET AUDIT TYPE IN FET
- CALLTFM N3,AUCS ISSUE AUDIT REQUEST
- EQ SAFX RETURN
- SAFA BSS 1 AUDIT RANDOM ADDRESS
- SAFB BSS 1 USER NAME
- SAFC BSS 1 VSN
- SAFD BSS 2 FILE IDENTIFIER
- SAFE BSS 1 AUDIT TYPE
- SBS SPACE 4,20
- ** SBS - SET BIT STRING.
- *
- * ENTRY (X1) = SOURCE STRING.
- * (X2) = DESTINATION STRING.
- * (B2) = UPPER BIT POSITION OF DESTINATION STRING.
- * (B3) = UPPER BIT POSITION OF SOURCE STRING.
- * (B4) = MAXIMUM BIT COUNT.
- *
- * EXIT (X6) = NEW STRING.
- * (B2) = LOWER BIT POSITION - 1 OF DESTINATION STRING.
- * .LT. 0 IF STRING AT END OF WORD.
- * (B3) = LOWER BIT POSITION - 1 OF SOURCE STRING.
- * .LT. 0 IF STRING AT END OF WORD.
- * (B4) = REMAINING BIT COUNT.
- * (B6) = NUMBER OF BITS TRANSFERRED.
- *
- * USES B - 7.
- * X - 0, 7.
- SBS SUBR ENTRY/EXIT
- SB6 B4-B1
- LE B6,B3,SBS1 IF UPPER BIT OF SOURCE .GT. BIT COUNT
- SB6 B3
- SBS1 LE B6,B2,SBS2 IF UPPER BIT OF DESTINATION .GT. COUNT
- SB6 B2
- SBS2 BX6 X2 PRESET DESTINATION IMAGE
- NG B6,SBS4 IF NO BIT COUNT
- MX0 1 CREATE MASK
- AX0 B6
- SB7 B3+B1 GET SOURCE STRING
- LX0 B7
- BX6 X0*X1
- SB7 B2-B3 GET DESTINATION IMAGE
- PL B7,SBS3 IF VALID SHIFT COUNT
- SB7 B7+60
- SBS3 LX0 B7
- BX0 -X0*X2
- LX6 B7 SET NEW IMAGE
- BX6 X0+X6
- SBS4 SB6 B6+B1 SET NUMBER OF BITS SET
- SB2 B2-B6 RESET UPPER BIT POSITIONS
- SB3 B3-B6
- SB4 B4-B6 RESET BIT COUNT
- EQ SBSX RETURN
- SST SPACE 4,20
- ** SST - SET SOURCE VALUES IN TABLE.
- *
- * ENTRY (B2) = 0 IF K-DISPLAY TABLE.
- * 1 IF AUDIT TABLE.
- * 2 IF SOURCE FILE TABLE.
- * (X1) = DIRECTIVE LEVEL.
- *
- * EXIT SOURCE VALUES SET IN TABLE.
- *
- * USES A - 1, 2, 6.
- * B - 2, 3, 4.
- * X - 0, 1, 2, 6.
- *
- * CALLS CXS.
- *
- * MACROS MOVEBIT.
- SST SUBR ENTRY/EXIT
- SX2 B2 SET LOWER BIT POSITION OF TABLE ADDRESS
- LX2 59-0
- SX6 B0
- NG X2,SST1 IF LOWER BIT 0
- SX6 30
- SST1 SA6 SSTA
- SX6 B2 SET ADDRESS OF TABLE ADDRESS
- AX6 1
- SX6 CXSA+3+X6
- SA6 SSTB
- SA1 TDTA+X1 GET DIRECTIVE TABLE ADDRESSES
- SX6 X1+B1 SAVE NEXT ADDRESS
- SA6 SSTC
- SST2 SA1 X1
- ZR X1,SSTX IF END OF DIRECTIVE TABLES
- RJ CXS CONVERT CATALOG ENTRY TO SOURCE
- NG B3,SST4 IF NO DIRECTIVE CONTROL TABLE
- SA1 CXSA+2
- PL X1,SST4 IF NO OUTPUT CONTROL BLOCK
- SA1 SSTB GET TABLE ADDRESS
- SA1 X1
- SA2 SSTA
- SB2 X2
- AX1 B2
- SX2 X1
- ZR X2,SST4 IF NO TABLE ADDRESS
- MX0 -6 GET UPPER BIT POSITION
- AX1 18
- BX6 -X0*X1
- SB2 X6
- LX1 48 GET CHARACTER COUNT
- AX1 6+48
- SB3 59 PRESET DATA FIELD BIT POSITION
- SX6 6
- IX1 X1*X6
- SB4 X1 PRESET BIT COUNT
- PL X1,SST3 IF CHARACTERS COUNTED FROM LEFT
- SB4 -B4 RESET BIT COUNT
- SB3 B4-B1 RESET BIT POSITION
- SST3 MOVEBIT CBUF+1,X2,B4,B3,B2 MOVE DATA FIELD TO SOURCE FIELD
- SST4 SA1 SSTC GET DIRECTIVE TABLE ADDRESS
- SX6 X1+B1 SAVE NEXT ADDRESS
- SA6 A1
- EQ SST2 GET DIRECTIVE TABLE IMAGE
- SSTA CON 30 LOWER BIT POSITION OF TABLE ADDRESS
- SSTB CON CXSA+3 ADDRESS OF TABLE ADDRESS
- SSTC BSS 1 DIRECTIVE TABLE ADDRESS
- STB SPACE 4,20
- ** STB - SEARCH TABLE.
- *
- * ENTRY (A1) = TABLE ADDRESS.
- * (B2) = TABLE LENGTH.
- * .LT. 0 IF TERMINATED BY A ZERO WORD.
- * (B3) = ENTRY LENGTH.
- * (B4) = RELATIVE ADDRESS IN ENTRY.
- * (X0) = MASK.
- * (X2) = VALUE TO COMPARE AGAINST.
- *
- * EXIT (A1) = ADDRESS OF ENTRY IF FOUND.
- * (A3) = (A1) + (B4).
- * (B7) = RELATIVE ADDRESS IN TABLE IF FOUND.
- * (X1) = FIRST WORD OF ENTRY IF FOUND.
- * (X3) = ENTRY WORD WITH VALUE.
- * (X4) .NE. 0 IF ENTRY NOT FOUND.
- *
- * USES B - 6.
- STB1 ZR X1,STBX IF END OF TABLE
- STB2 BX4 X3-X2 COMPARE ENTRIES
- BX4 X0*X4
- ZR X4,STBX IF ENTRY FOUND
- SB7 B7+B3 GET NEXT ENTRY IN TABLE
- SA1 A1+B3
- SA3 A3+B3
- NG B2,STB1 IF TABLE TERMINATED BY A ZERO WORD
- SB6 B7-B2
- NG B6,STB2 IF NOT END OF TABLE
- STB SUBR ENTRY/EXIT
- SA3 A1+B4 POSITION FIRST ENTRY
- SB7 B4
- SX4 B1 PRESET ENTRY NOT FOUND
- ZR B2,STBX IF NO TABLE
- PL B2,STB2 IF TABLE LENGTH SPECIFIED
- EQ STB1 CHECK FOR END OF TABLE
- TLD SPACE 4,25
- ** TLD - TABLE LIST TO DISPLAY PROCESSOR.
- *
- * ENTRY (A1) = ADDRESS OF TABLE.
- * (A2) = ADDRESS OF DISPLAY.
- * (B3) = TABLE LENGTH.
- * (B4) = BIT COUNT OF ENTRY.
- * (B6) = BIT COUNT OF IMAGE BETWEEN ENTRIES.
- * (X6) = IMAGE BETWEEN ENTRIES, RIGHT JUSTIFIED.
- * (X7) = NUMBER OF ENTRIES PER DISPLAY LINE.
- *
- * EXIT (A1) = LWA+1 OF TABLE.
- * (A2) = LWA+1 OF DISPLAY.
- * (X3) = LAST BIT POSITION + 1 OF DISPLAY.
- *
- * USES A - 3, 4, 5, 6, 7.
- * B - 2, 4.
- * X - 1, 2, 4, 5, 6, 7.
- *
- * CALLS FEL, ZTB.
- *
- * MACROS MOVEBIT.
- TLD8 SA3 TLDI SET LAST BIT POSITION + 1 OF DISPLAY
- TLD SUBR ENTRY/EXIT
- SA6 TLDA SET *BETWEEN* IMAGE
- SX6 B6-B1 SET UPPER BIT POSITION OF IMAGE
- SA6 TLDB
- SX6 B6+B4 SET BIT COUNT OF IMAGE
- SA6 TLDC
- SX6 B3
- NG B3,TLD1 IF ZERO-WORD TERMINATED TABLE
- SX6 A1+B3
- TLD1 SA6 TLDD SET LWA+1 OF TABLE
- SA7 TLDE SET ENTRIES PER DISPLAY LINE
- SX6 B0 SET ENTRY COUNT
- SA6 TLDF
- SX6 B0 PRESET ONE WORD PER ENTRY FLAG
- SB4 B4-60
- NG B4,TLD2 IF ONE WORD PER ENTRY
- SX6 B1 SET TWO WORDS PER ENTRY FLAG
- TLD2 SA6 TLDG
- SX6 A1 SET TABLE ADDRESS
- SA6 TLDH
- SX6 59 SET UPPER BIT POSITION OF DISPLAY
- SA6 TLDI
- TLD3 SA1 TLDH GET ADDRESS OF TABLE
- SA3 TLDD GET LWA+1 OF TABLE
- IX6 X1-X3
- SA1 X1
- NG X3,TLD4 IF ZERO-WORD TERMINATED
- PL X6,TLD8 IF END OF TABLE
- EQ TLD5 SPACE FILL NAME
- TLD4 ZR X1,TLD8 IF END OF TABLE
- TLD5 RJ ZTB CONVERT ZEROES TO BLANKS
- SA6 TLDA+1 SET ENTRY IN IMAGE
- SA3 TLDG
- ZR X3,TLD6 IF ONE WORD PER ENTRY
- SA1 A1+B1 GET REST OF ENTRY
- RJ ZTB CONVERT ZEROES TO BLANKS
- SA6 A6+B1 SET REST OF ENTRY IN IMAGE
- TLD6 SX6 A1+B1 RESET TABLE ADDRESS
- SA6 TLDH
- SA3 TLDC GET BIT COUNT OF IMAGE
- SA4 TLDB GET UPPER BIT POSITION OF IMAGE
- SA5 TLDI GET UPPER BIT POSITION OF DISPLAY
- MOVEBIT TLDA,A2,X3,X4,X5 MOVE IMAGE TO DISPLAY
- SA1 TLDF RESET ENTRY COUNT
- SX6 X1+B1
- SA6 A1
- SA1 TLDE COMPARE TO ENTRIES PER LINE
- IX6 X6-X1
- SA2 A2 PRESET DISPLAY ADDRESS
- NZ X6,TLD7 IF NOT LAST ENTRY ON LINE
- SA6 A6
- SX3 B2
- RJ FEL FORCE END OF LINE
- SB2 59 RESET UPPER BIT POSITION
- TLD7 SX6 B2
- SA6 TLDI
- EQ TLD3 CHECK FOR END OF TABLE
- TLDA BSS 3 IMAGE OF ENTRY
- TLDB BSS 1 UPPER BIT POSITION OF IMAGE
- TLDC BSS 1 LENGTH OF IMAGE
- TLDD BSS 1 LWA+1 OF TABLE
- TLDE BSS 1 ENTRIES PER LINE
- TLDF BSS 1 ENTRY COUNT
- TLDG BSS 1 TWO WORD ENTRY FLAG
- TLDH BSS 1 ADDRESS OF TABLE
- TLDI BSS 1 UPPER BIT POSITION OF DISPLAY
- TSL SPACE 4,20
- ** TSL - TABLE ENTRIES TO SINGLE ENTRY LIST PROCESSOR.
- *
- * ENTRY (X6) = TABLE ADDRESS.
- * (X7) = LIST ADDRESS.
- * (B2) = TABLE LENGTH.
- * .LT. 0 IF ZERO WORD TERMINATED.
- * (B3) = RELATIVE ADDRESS IN ENTRY.
- * (B4) = ENTRY LENGTH.
- * (B5) = BIT COUNT. MUST BE .LE. 120.
- *
- * EXIT (X1) = LWA+1 OF TABLE.
- *
- * USES A - 1, 2, 3, 4, 6, 7.
- * X - 2, 3, 4, 6, 7.
- *
- * MACROS MOVEBIT.
- TSL6 SA1 TSLA RETURN LWA+1 OF TABLE
- TSL SUBR ENTRY/EXIT
- SA6 TSLA SAVE TABLE ADDRESS
- SA7 TSLF SAVE LIST ADDRESS
- SX6 X6+B2
- PL B2,TSL1 IF NOT ZERO WORD TERMINATED
- SX6 B2
- TSL1 SA6 TSLB SAVE LWA+1 OF TABLE
- SX6 B3 SAVE RELATIVE ADDRESS IN ENTRY
- SA6 TSLC
- SX6 B4 SAVE ENTRY LENGTH
- SA6 TSLD
- SX6 B5 SAVE BIT COUNT
- SA6 TSLE
- TSL2 SA1 TSLA GET TABLE ADDRESS
- SA2 TSLB GET LWA+1 OF TABLE
- SA3 TSLC GET RELATIVE ADDRESS IN TABLE
- SA4 TSLD GET ENTRY LENGTH
- IX6 X1+X3 SET ADDRESS OF ENTRY
- IX7 X1+X4 SET ADDRESS OF NEXT ENTRY
- SA1 X1
- PL X2,TSL3 IF NOT ZERO WORD TERMINATED
- ZR X1,TSL6 IF END OF TABLE
- EQ TSL4 MOVE TABLE ENTRY TO LIST
- TSL3 IX2 X6-X2
- PL X2,TSL6 IF END OF TABLE
- TSL4 SA3 TSLE GET BIT COUNT
- SA2 TSLF GET LIST ADDRESS
- SA7 TSLA RESET TABLE ADDRESS
- SX7 X2+B1 RESET LIST ADDRESS
- SX4 X3-61
- NG X4,TSL5 IF LESS THAN 60 BITS
- SX7 X7+B1
- TSL5 SA7 A2 RESET LIST ADDRESS
- MOVEBIT X6,X2,X3 MOVE ENTRY FROM TABLE TO LIST
- EQ TSL2 CHECK NEXT ENTRY
- TSLA BSS 1 TABLE ADDRESS
- TSLB BSS 1 LWA+1 OF TABLE
- TSLC BSS 1 RELATIVE ADDRESS IN ENTRY
- TSLD BSS 1 ENTRY LENGTH
- TSLE BSS 1 BIT COUNT
- TSLF BSS 1 LIST ADDRESS
- USA SPACE 4,20
- ** USA - USER AUDIT LIST PROCESSOR.
- *
- * ENTRY (X1) = 0 IF IGNORE CHARGE NUMBER.
- * = CHARGE NUMBER.
- * (X2) = VSN.
- * = 0 IF AUDIT ALL FILES.
- * (B2) = 1 IF *AUDIT*.
- * = 2 IF *SOURCE*.
- * = 3 IF *MACHINE READABLE.*
- * = 4 IF *SOURCE* WITHOUT VSNS.
- *
- * EXIT FILES PROCESSED FOR USER NAME.
- *
- * USES A - 1, 2, 6.
- * B - 2, 6.
- * X - 1, 2, 6.
- *
- * CALLS FIA, FIS, PMF, PSF, UFA.
- *
- * MACROS CLEAR, LJUST, MOVEBIT, RJUST, SAFET.
- USA8 SX4 B0 PRESET NO ERRORS
- SA1 UASB
- NZ X1,USAX IF FILES FOUND
- SX4 B1 FLAG ERRORS
- USA SUBR ENTRY/EXIT
- SX6 B2 SAVE TYPE
- SA6 USAC
- BX6 X1 SAVE CHARGE NUMBER
- SA6 USAA
- BX6 X2 SAVE VSN
- SA6 USAD
- SX6 B0 SET RANDOM ADDRESS TO ZERO
- SA6 UASB FLAG NO FILES FOUND
- SB2 FCST
- ZR X2,USA1 IF NO VSN
- SB2 SCST
- USA1 SAFET UN,USAD,,B2 SET FET FOR AUDIT
- NZ X4,USAX IF NO FILES FOUND
- USA2 CLEAR TAVS,TAVSL CLEAR VSN BUFFER
- SB6 FCAT SET BUFFER ADDRESSES
- SB2 TAVS
- RJ UFA UNPACK FILE AUDIT
- NZ X4,USA8 IF AUDIT COMPLETE
- SA1 TI
- NZ X1,USA8 IF TERMINAL INTERRUPT
- SA1 USAA
- ZR X1,USA3 IF NO CHARGE NUMBER
- SA2 /ADD/CN COMPARE CHARGE NUMBERS
- BX1 X1-X2
- NZ X1,USA2 IF CHARGE NUMBERS DO NOT MATCH
- USA3 SX6 B1 FLAG FILE FOUND
- SA6 UASB
- SA1 USAC CHECK TYPE
- SX1 X1-1
- NZ X1,USA4 IF NOT AUDIT
- RJ FIA PROCESS FILE AUDIT
- EQ USA2 CHECK NEXT FILE
- USA4 SX1 X1-1
- NZ X1,USA6 IF NOT SOURCE
- SA1 /ADD/QN CHECK SEQUENCE NUMBER
- RJUST X1,X1,/BTC/QN,/UPB/QN
- SX6 X1-1
- ZR X6,USA5 IF FIRST FILE
- SA1 /ADD/EVSN COMPARE LAST VSN TO EXTERNAL VSN
- LJUST X1,X1,/BTC/EVSN,/UPB/EVSN
- SA2 USAE
- SX6 B0
- BX1 X1-X2
- NZ X1,USA5 IF NOT THE SAME VSN
- SX6 B1 FLAG SKIP FIRST VSN
- USA5 RJ PSF PROCESS FILE SOURCE
- SA1 /ADD/REELC SET LAST VSN
- RJUST X1,X1,/BTC/REELC,/UPB/REELC
- LX1 2
- MOVEBIT X1+TAVS+/CAT/VSN-4,USAE,/BTC/VSN,/UPB/VSN
- EQ USA2 CHECK NEXT FILE
- USA6 SX1 X1-1
- NZ X1,USA7 IF NOT MACHINE READABLE
- RJ PMF PROCESS FILE MACHINE READABLE
- EQ USA2 CHECK NEXT FILE
- USA7 RJ FIS PROCESS FILE SOURCE LISTING
- EQ USA2 CHECK NEXT FILE
- USAA BSS 1 CHARGE NUMBER
- UASB BSS 1 FILE FOUND FLAG
- USAC BSS 1 TYPE CODE
- USAD BSS 1 VSN
- USAE BSS 1 LAST VSN
- WCR SPACE 4,15
- ** WCR - WRITE CATALOG RECORD.
- *
- * ENTRY (X1) = RECORD RANDOM ADDRESS.
- * (X3) = WORKING BUFFER ADDRESS.
- * (B2) .NE. 0 IF CLEAR UTILITY INTERLOCK AFTER WRITE.
- *
- * EXIT RECORD REWRITTEN FROM BUFFER.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * CALLS CUI.
- *
- * MACROS CALLTFM, RESETP, WRITFET.
- WCR SUBR ENTRY/EXIT
- SX6 B2 SAVE INTERLOCK STATUS
- SA6 WCRA
- SX6 X3 SAVE BUFFER ADDRESS
- SA6 WCRB
- BX6 X1 SET RANDOM ADDRESS
- SA6 X2+TFRR
- RESETP X2 RESET FET POINTERS
- SA1 WCRB GET BUFFER ADDRESS
- WRITFET X2,X1,100B WRITE CATALOG RECORD
- CALLTFM X2,WRRS
- SA1 WCRA
- ZR X1,WCRX IF NOT CLEAR INTERLOCK
- RJ CUI CLEAR UTILITY INTERLOCK
- EQ WCRX RETURN
- WCRA BSS 1 INTERLOCK STATUS
- WCRB BSS 1 BUFFER ADDRESS
- WTF SPACE 4,20
- ** WTF - WRITE WORDS FROM WORKING BUFFER IN FET.
- *
- * ENTRY (X2) = FET ADDRESS.
- * (B6) = WORKING BUFFER ADDRESS.
- * (B7) = NUMBER OF WORDS TO TRANSFER.
- *
- * EXIT (X1) = 0 IF TRANSFER COMPLETE.
- * = (B6) IF (B7).NE.0.
- * (X2) = FET ADDRESS.
- * (B6) = LWA+1 OF WORKING BUFFER.
- * (B7) = NUMBER OF WORDS NOT TRANSFERRED.
- *
- * USES A - 1, 3, 7.
- * X - 3, 6, 7.
- *
- * MACROS WRITEW.
- WTF SUBR ENTRY/EXIT
- SA1 X2+2 COMPARE *IN* TO *OUT*
- SA3 A1+B1
- IX6 X3-X1
- SX6 X6-1
- PL X6,WTF1 IF *OUT* .GT. *IN*
- SA1 X2+B1 GET *FIRST*
- SX1 X1
- SA3 A3+B1 GET *LIMIT*
- SX3 X3
- IX1 X3-X1 GET NUMBER OF WORDS AVAILABLE IN BUFFER
- IX6 X6+X1
- WTF1 SX1 B7 CHECK IF ENOUGH WORDS IN BUFFER
- IX1 X6-X1
- SX7 B0
- PL X1,WTF2 IF ENOUGH WORDS IN BUFFER
- SB7 X6 RESET WORD COUNT
- BX7 -X1
- WTF2 SA7 WTFA SAVE NUMBER OF WORDS NOT TRANSFERRED
- WRITEW X2,B6,B7 TRANSFER TO FET BUFFER
- SA1 WTFA
- ZR X1,WTFX IF TRANSFER COMPLETE
- SB7 X1 SET NUMBER OF WORDS NOT TRANSFERRED
- SX1 B6 SET LWA+1 OF BUFFER
- EQ WTFX RETURN
- WTFA BSS 1 NUMBER OF WORDS NOT TRANSFERRED
- WTL SPACE 4,15
- ** WTL - WRITE LINES TO OUTPUT.
- *
- * ENTRY (A1) = BUFFER ADDRESS.
- * (B2) = 0 IF COUNT BY WORDS.
- * = 1 IF COUNT BY LINES.
- * (B6) = WORD COUNT IF (B2) = 0.
- * (B7) = LINE COUNT IF (B2) = 1.
- * (X1) = FIRST WORD OF BUFFER.
- *
- * EXIT LINES WRITTEN TO OUTPUT FILE.
- *
- * USES A - 1, 2, 6.
- * B - 2, 6.
- * X - 1, 2, 6.
- *
- * MACROS CLINES, CWORDS, NEWPAGE, WRITEW.
- WTL SUBR ENTRY/EXIT
- ZR B2,WTL1 IF COUNT BY WORDS
- CWORDS A1,B7 COUNT NUMBER OF WORDS IN BUFFER
- EQ WTL2 SAVE BUFFER ADDRESS
- WTL1 CLINES A1,B6 COUNT NUMBER OF LINES IN BUFFER
- WTL2 SB2 A1-B6 SAVE BUFFER ADDRESS
- SX6 B2
- SA6 WTLA
- SX6 B6 SAVE WORD COUNT
- SA6 WTLB
- SX6 B7 SAVE LINE COUNT
- SA6 WTLC
- SA1 OS
- ZR X1,WTLX IF NO OUTPUT FILE
- PL X1,WTL3 IF TERMINAL OUTPUT
- SA1 LC CHECK LINE COUNT
- SX1 X1+B7
- SX1 X1-MXLP
- NG X1,WTL3 IF NOT TOO MANY LINES ON PAGE
- NEWPAGE GENERATE NEW PAGE HEADER
- WTL3 SA1 WTLC RESET LINE COUNT
- SA2 LC
- IX6 X1+X2
- SA6 A2
- SA1 WTLA GET BUFFER ADDRESS
- SB6 X1
- SA1 WTLB GET WORD COUNT
- WRITEW L,B6,X1 WRITE TO OUTPUT FILE
- EQ WTLX RETURN
- WTLA BSS 1 BUFFER ADDRESS
- WTLB BSS 1 WORD COUNT
- WTLC BSS 1 LINE COUNT
- TITLE MISCELLANEOUS SUBROUTINES.
- ACI SPACE 4,25
- ** ACI - ASSEMBLE CHARACTERS INTERFACE.
- *
- * ENTRY (X1) = BIT STRING OF CHARACTERS TO PERMIT.
- * (X4) = MAXIMUM NUMBER OF CHARACTERS PERMITTED.
- * (X6) = BIT STRING OF CHARACTER TO SUPPRESS.
- *
- * EXIT (CBUF - CBUF+CBUFL) = LEFT JUSTIFIED
- * ASSEMBLED CHARACTERS.
- * (X4) = NUMBER OF CHARACTERS.
- * (B5) = SEPARATOR ( 0 IF END-OF-LINE).
- * (B6) = 0 IF EOF.
- * .NE. 0 IF ASSEMBLY COMPLETE.
- * (ET) = -1 IF EOF.
- *
- * USES A - 1, 2, 4, 6, 7.
- * B - 2, 4.
- * X - 1, 2, 6, 7.
- *
- * CALLS ASC.
- *
- * MACROS CLEAR.
- *
- * NOTES BASED ON SUBROUTINE *ACI* IN *MODVAL*.
- ACI SUBR ENTRY/EXIT
- SA6 ACIC SAVE BIT STRING TO SUPPRESS
- SX6 X4 SAVE MAXIMUM CHARACTER COUNT
- SA6 ACIE
- BX7 X1 SAVE BIT STRING TO PERMIT
- SX6 B0 CLEAR CHARACTER COUNT
- SA7 ACIB
- SA6 ACIA
- SA6 ACID CLEAR CHARACTER BUFFER INDEX
- CLEAR CBUF,CBUFL CLEAR CHARACTER BUFFER
- ACI1 SA2 ACIC CHARACTERS TO BE SUPPRESSED
- SA1 ACIB CHARACTERS TO BE ALLOWED
- BX6 X2
- RJ ASC ASSEMBLE CHARACTERS
- SA2 ACID
- SA6 CBUF+X2 STORE ASSEMBLED CHARACTERS
- SA1 ACIA
- SB4 X4-10
- IX4 X1+X4 INCREMENT CHARACTER COUNT
- NG B4,ACIX IF SEPARATOR ENCOUNTERED
- BX7 X4
- SA7 A1
- SA4 ACIE RESET MAXIMUM CHARACTER COUNT
- IX4 X4-X7
- BX7 X4
- SA7 A4
- SX7 X2-CBUFL-1
- PL X7,ACI1 IF BUFFER FULL
- SX7 X2+B1 INCREMENT CHARACTER BUFFER INDEX
- SA7 A2
- EQ ACI1 ASSEMBLE MORE CHARACTERS
- ACIA BSS 1 CHARACTER COUNT
- ACIB BSS 1 BIT STRING OF CHARACTERS TO PERMIT
- ACIC BSS 1 BIT STRING OF CHARACTERS TO SUPPRESS
- ACID BSS 1 CHARACTER BUFFER INDEX
- ACIE BSS 1 MAXIMUM CHARACTER COUNT
- ARV SPACE 4,20
- ** ARV - ADD/REVISE VSN ENTRY.
- *
- * ENTRY (VCAT) = VSN ENTRY IMAGE.
- * (VI) = 1, IF VSN BUSY AND ASSIGNED.
- * 0, IF VSN NOT BUSY OR ASSIGNED.
- *
- * EXIT VSN ENTRY ADDED REVISED IN *VBUF*.
- * (ER) = 0, IF NO ERROR FOUND.
- * = ERROR MESSAGE ADDRESS, IF ERROR OCCURRED.
- * (VI) = IF VSN INTERLOCKED, THIS WILL BE CLEARED.
- *
- * USES A - 1, 2, 6.
- * X - 0, 1, 2, 6.
- *
- * CALLS RVB, RVE.
- *
- * MACROS CALLTFM, MOVE, RESETP, WRITFET.
- ARV SUBR ENTRY/EXIT
- SX6 B0
- SA6 ER CLEAR ERROR FLAG
- SA1 VI CHECK FOR VSN INTERLOCKED
- ZR X1,ARV4 IF VSN NOT INTERLOCKED
- MX0 36 SET UP MASK
- SX1 HMVS+UOVS+TVVS+ERVS
- BX0 X0+X1
- SA1 VCAT+VEVS GET CURRENT STATUS
- SA2 VBUF+VEVS GET BEGINNING STATUS
- BX1 X0*X1
- BX2 X0*X2
- BX1 X1-X2
- ZR X1,ARV4 IF STATUS NOT CHANGED
- WRITFET N1,VCAT,TSVL
- RESETP N1 RESET BUFFER POINTERS
- CALLTFM X2,-GNSS
- ZR X4,ARV3 IF NO ERRORS OCCURRED
- SX1 /EMSG/WSA CHECK FOR *WAIT SCRATCH ASSIGNMENT*
- IX2 X1-X4
- NZ X2,ARV1 IF NOT THIS ERROR
- SX6 EWSA *NO SCRATCH AVAILABLE*
- BX6 -X6
- SA6 ER
- EQ ARVX RETURN
- ARV1 SX1 /EMSG/VBS CHECK FOR ERROR
- IX2 X1-X4
- NZ X2,ARV2 IF NOT THIS ERROR
- SX6 EVAA *VSN ALREADY ASSIGNED*
- BX6 -X6
- SA6 ER
- EQ ARVX RETURN
- ARV2 SX6 IVNP *VSN NOT PROCESSED*
- SA6 ER
- EQ ARVX RETURN
- ARV3 MOVE TSVL,N1BUF,VCAT
- SX6 B0
- SA6 VI CLEAR VSN INTERLOCK
- ARV4 RJ RVB REPLACE VSN IN BUFFER
- SA1 LF
- NZ X1,ARVX IF LOCAL FILE MODE
- RJ RVE REPLACE VSN ENTRIES
- EQ ARVX RETURN
- ASC SPACE 4,30
- ** ASC - ASSEMBLE CHARACTERS.
- *
- * ENTRY (SP) = STRING BUFFER ADDRESS OF PREVIOUS CHAR.
- * (SM) = STRING BUFFER LIMIT.
- * (IF) = INPUT FET ADDRESS.
- * (X1) = BIT STRING OF CHARACTERS TO PERMIT.
- * (X4) = MAXIMUM CHARACTER COUNT.
- * (X6) = BIT STRING OF CHARACTERS TO SUPPRESS.
- * IF BIT POSITION EQUALING (SPECIAL CHARACTER DISPLAY
- * CODE - 45B) IS SET, THAT CHARACTER IS SUPPRESSED OR
- * PERMITTED AS DATA (NOT TREATED AS SEPARATOR).
- *
- * EXIT (SP) = UPDATED STRING BUFFER ADDRESS.
- * (X6) = LEFT -JUSTIFIED ASSEMBLED CHARACTERS.
- * (X5) = RIGHT-JUSTIFIED ASSEMBLED CHARACTERS.
- * (X4) = NUMBER OF CHARACTERS
- * (B5) = SEPARATOR (0 IF END OF LINE).
- * (B6) = 0 IF EOF.
- * (ET) = -1 IF EOF.
- *
- * USES A - 1, 2, 4, 6, 7.
- * B - 2, 3, 4, 7.
- * X - 1, 2, 7.
- *
- * CALLS ISB.
- *
- * NOTES BASED ON SUBROUTINE *ASC* IN *SFS*.
- ASC8 SX4 -B4 SET CHARACTER COUNT
- SX4 X4+10D
- SX6 B5 SAVE SEPARATOR
- SA6 EL
- SX6 B2 RESET STRING POINTER
- SA6 SP
- SX6 B0
- SB3 B4+B4
- ZR X4,ASCX IF NO CHARACTERS
- SB4 B3+B3 LEFT JUSTIFY CHARACTER STRING
- SB4 B4+B3
- LX6 X5,B4
- ASC SUBR ENTRY/EXIT
- SX4 X4-10 SAVE (10 - MAXIMUM NUMBER OF CHARACTERS)
- BX7 -X4
- SA7 ASCC
- SX5 B0 PRESET CHARACTER STRING
- SB4 10 PRESET MAXIMUM CHARACTER COUNT
- BX7 X1
- SB6 B1 PRESET NOT EOF
- ASC1 SA1 SP SET STRING POINTER
- SB2 X1
- SA1 SM SET MAXIMUM SCAN CHARACTERS
- SB7 USBB+CAPL CHARACTER ASSEMBLY LIMIT
- SB3 X1
- LE B3,B7,ASC2 IF LINE LENGTH .LE. CHARACTER LIMIT
- SB3 B7
- ASC2 GE B2,B3,ASC7 IF BUFFER EMPTY
- ASC3 SA4 ASCC CHECK CHARACTER COUNT
- SB5 X4
- GT B4,B5,ASC4 IF LESS THAN MAXIMUM
- SX6 -B1 FLAG MAXIMUM COUNT
- SA6 A4
- SA4 ="BL" RESET TO SUPPRESS BLANKS
- BX6 X4
- SA6 ASCA
- SA4 ="NC" RESET TO ALLOW NO SPECIAL CHARACTERS
- BX7 X4
- SA7 A6+B1
- ASC4 SB2 B2+B1 CHECK IF END OF BUFFER
- SB5 B0
- GE B2,B3,ASC8 IF END OF STRING BUFFER
- SA1 B2 GET CHARACTER
- SB5 X1
- SB7 X1-1R+
- LT B7,ASC6 IF NOT SPECIAL CHARACTER
- AX4 X6,B7 CHECK IF SUPPRESSED CHARACTER
- LX4 59
- NG X4,ASC3 IF CHARACTER TO BE SUPPRESSED
- SA4 CL CHECK FOR COLON CHARACTER
- AX4 B7
- LX4 59
- PL X4,ASC5 IF NOT COLON CHARACTER
- SX1 1R: SET COLON AS CHARACTER
- SB7 100B-1R+
- ASC5 AX4 X7,B7 CHECK IF PERMITTED CHARACTER
- LX4 59
- PL X4,ASC8 IF CHARACTER NOT TO BE PERMITTED
- ASC6 LX5 6 ADD TO CHARACTER STRING
- SB4 B4-1
- BX5 X5+X1
- NZ B4,ASC3 IF MORE CHARACTERS TO ASSEMBLE
- SB6 B1
- EQ ASC8 SET CHARACTER COUNT
- ASC7 SA6 ASCA SAVE BIT STRINGS
- SA7 A6+B1
- SX6 B4 SAVE CHARACTER COUNT
- SA6 ASCB
- RJ ISB INPUT STRING BUFFER
- SA2 ASCB RESTORE CHARACTER COUNT
- SA1 ASCA RESTORE BIT STRINGS
- SB4 X2
- BX6 X1
- SA1 A1+B1
- SX7 X1
- NZ B6,ASC1 IF NOT END OF FILE
- SA1 SP RESET STRING POINTER
- SB2 X1
- SB5 B0 RESET END OF LINE INDICATOR
- EQ ASC8 SET CHARACTER COUNT
- ASCA BSS 1 SUPPRESSED CHARACTERS BIT STRING
- BSS 1 ALLOWED CHARACTERS BIT STRING
- ASCB BSS 1 HOLD AREA FOR CHARACTER COUNT
- ASCC BSS 1 10 - MAXIMUM NUMBER OF CHARACTERS
- AUA SPACE 4,15
- ** AUA - ALTERNATE USER AUDIT LIST PROCESSOR.
- *
- * ENTRY (ACAT) = IMAGE OF ALTERNATE USER ENTRY.
- *
- * EXIT ALTERNATE USER INFORMATION WRITTEN TO OUTPUT FILE.
- *
- * USES A - 1.
- * X - 1.
- *
- * CALLS SFN.
- *
- * MACROS MOVEBIT, SETSORC, WLINES.
- AUA SUBR ENTRY/EXIT
- SA1 /ADD/AUSER SET ALTERNATE USER NAME IN LISTING
- LJUST X1,X1,/BTC/AUSER,/UPB/AUSER
- RJ SFN SPACE FILL NAME
- BX1 X6
- MOVEBIT A1,/ALS/AUSER,UNKL*6,,/ALSU/AUSER
- SETSORC A,LVAU SET SOURCE VALUES IN AUDIT LIST
- WLINES AUAA,1 WRITE TO OUTPUT FILE
- EQ AUAX RETURN
- AUAA BSS 0 AUDIT LISTING
- LISTER ALS,4
- AUSER LISTER ,7 ALTERNATE USER NAME
- LISTER ,7
- AMODE LISTER ,5,WRITE ADMIT MODE
- LISTER ,8
- AACOUNT LISTER ,6,000000 ACCESS COUNT
- LISTER ,8
- AADATE LISTER ,6,YYMMDD ACCESS DATE
- LISTER ,6
- AATIME LISTER ,6,HHMMSS,E ACCESS TIME
- AUL SPACE 4,10
- ** AUL - ALTERNATE USER LEVEL PROCESSOR.
- *
- * EXIT PROGRAM SET FOR ALTERNATE USER DIRECTIVES.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * MACROS MOVE, MOVEBIT.
- AUL SUBR ENTRY/EXIT
- SX6 LVAU SET ALTERNATE USER LEVEL
- SA6 LV
- SA1 UN SET USER NAME IN K-DISPLAY
- BX6 X1
- SA6 /KAUSLS/USER
- MOVEBIT FI,/KAUSLS/FILE,FIKL*6 SET FILE ID IN K-DISPLAY
- SA1 AU SET ALTERNATE USER IN K-DISPLAY
- BX6 X1
- SA6 /KAUSLS/AUSER
- SA1 AF CHECK ADMIT FLAG
- SA2 AULA PRESET MESSAGE ADDRESS
- ZR X1,AUL1 IF USER NOT ADMITTED
- SA2 AULB RESET MESSAGE ADDRESS
- AUL1 MOVE 3,A2,/KAUSLS/MESS SET ADMIT MESSAGE
- SA1 AULC RESET LEFT SCREEN POINTER
- BX6 X1
- SA6 /KLEFT/NEXT
- SA1 AULD RESET RIGHT SCREEN POINTER
- BX6 X1
- SA6 /KRIGHT/NEXT
- SA1 =H* ALT USER * SET LEVEL IN HELP DISPLAY
- BX6 X1
- SA6 /KRIGHT/LV
- EQ AULX RETURN
- AULA DATA 30HUSER NOT CURRENTLY ADMITTED.
- AULB DATA 30HUSER CURRENTLY IS ADMITTED.
- AULC KNEXT KAUSLS,NOLAB
- AULD KNEXT KAUSRS,NOLAB
- AUS SPACE 4,15
- ** AUS - ALTERNATE USER SOURCE LIST PROCESSOR.
- *
- * ENTRY (ACAT) = IMAGE OF ALTERNATE USER ENTRY.
- *
- * EXIT ALTERNATE USER INFORMATION WRITTEN TO SOURCE FILE.
- *
- * USES A - 1.
- * X - 1.
- *
- * CALLS SFN.
- *
- * MACROS MOVEBIT, SETSORC, WRITEW.
- AUS SUBR ENTRY/EXIT
- SA1 /ADD/AUSER SET ALTERNATE USER NAME IN LIST
- RJ SFN SPACE FILL NAME
- BX1 X6
- MOVEBIT A1,/SLS/AUSER,UNKL*6,,/SLSU/AUSER
- SETSORC S,LVAU SET SOURCE VALUES IN SOURCE LISTING
- WRITEW S,AUSA,AUSAL WRITE TO SOURCE FILE
- EQ AUSX RETURN
- AUSA BSS 0 SOURCE LISTING
- LISTER SLS,6,AUSER=
- AUSER LISTER ,7 ALTERNATE USER
- LISTER ,7,(,AMODE=)
- AMODE LISTER ,5,WRITE,E,CAPL ADMIT MODE
- LISTER ,8,AACOUNT=
- AACOUNT LISTER ,6,000000 ACCESS COUNT
- LISTER ,8,(,AADATE=)
- AADATE LISTER ,6,YYMMDD ACCESS DATE
- LISTER ,8,(,AATIME=)
- AATIME LISTER ,6,HHMMSS ACCESS TIME
- LISTER ,3,(,GO),E,CAPL
- AUSAL EQU *-AUSA LENGTH OF SOURCE LISTING
- CAB SPACE 4,15
- ** CAB - CHECK IF ALTERNATE USER ENTRY IN BUFFER.
- *
- * ENTRY (AU) = ALTERNATE USER NAME.
- *
- * EXIT (X4) = 0 IF ENTRY FOUND.
- * (A1) = ADDRESS OF ENTRY IN *UBUF*.
- *
- * USES B - 2, 3.
- * X - 0, 1.
- *
- * MACROS SRCHTAB.
- CAB SUBR ENTRY/EXIT
- SA1 UB+1 GET BUFFER LENGTH
- SB2 X1
- SA1 A1+B1
- SB3 X1
- SB2 B3-B2
- MX0 42 SEARCH BUFFER FOR ALTERNATE USER ENTRY
- SRCHTAB UBUF,AU,B2,2
- EQ CABX RETURN
- CFC SPACE 4,10
- ** CFC - CHECK FOR FILE NAME CONFLICT.
- *
- * ENTRY (X2) = ADDRESS OF FET TO CHECK AGAINST.
- *
- * EXIT (X4) = 0 IF NO CONFLICT.
- * = ADDRESS OF CONFLICTING FET.
- *
- * USES A - 1, 3, 4.
- * X - 0, 1, 3.
- CFC SUBR ENTRY/EXIT
- MX0 42 CHECK FILE NAME
- SA1 X2
- BX4 X0*X1
- ZR X4,CFCX IF NO FILE NAME
- SA4 CFCA SET TABLE ADDRESS
- CFC1 ZR X4,CFCX IF END OF TABLE
- IX3 X2-X4
- ZR X3,CFC2 IF SAME FET
- SA3 X4 CHECK IF CONFLICT
- BX3 X3-X1
- BX3 X0*X3
- ZR X3,CFCX IF FILE NAME CONFLICT
- CFC2 SA4 A4+B1
- EQ CFC1 CHECK NEXT FET
- CFCA BSS 0 TABLE OF FET ADDRESSES
- CON I INPUT FILE FET
- CON L OUTPUT FILE FET
- CON N1 TAPE CATALOG FILE FET
- CON S SOURCE FILE FET
- CON SS MACHINE READABLE FILE FET
- CON 0 END OF TABLE
- CFI SPACE 4,15
- ** CFI - CHECK FILE IDENTIFIER IN OUTPUT.
- *
- * ENTRY (A1) = ADDRESS OF FILE ID IN OUTPUT.
- * (B3) = UPPER BIT POSITION OF FILE ID IN OUTPUT.
- * (X1) = FIRST WORD OF FILE ID IN OUTPUT.
- *
- * EXIT END OF LINE ELIMINATED FROM FILE ID IN OUTPUT.
- *
- * USES A - 1, 2, 3, 6, 7.
- * B - 6.
- * X - 0, 1, 2, 3, 6, 7.
- *
- * MACROS MOVEBIT.
- CFI2 MX0 -12 CHECK FOR END OF LINE
- SA1 CFIA
- SA2 CFIC
- IX2 X1+X2
- SA2 X2
- BX1 -X0*X2
- NZ X1,CFI3 IF NOT END OF LINE
- MOVEBIT (=10H),A2,6,5,5 FORCE NO END OF LINE
- CFI3 MX0 -12 CHECK FOR END OF LINE
- SA1 CFIA
- SA2 CFID
- IX2 X1+X2
- SA2 X2
- BX1 -X0*X2
- NZ X1,CFIX IF NOT END OF LINE
- MOVEBIT (=10H),A2,6,5,5 FORCE NO END OF LINE
- CFI SUBR ENTRY/EXIT
- SX6 A1 SAVE ADDRESS OF FILE ID IN OUTPUT
- SA6 CFIA
- SX6 B3 SAVE UPPER BIT POSITION OF FILE ID
- SA6 CFIB
- SX6 B1 CHECK FOR POSSIBLE END OF LINES
- SX7 B1
- SB6 B3-6
- NG B6,CFI1 IF NO END OF LINE IN FIRST WORD
- SX6 B0
- SB6 B3-42
- NG B6,CFI1 IF POSSIBLE END OF LINE IN TWO WORDS
- SX7 B0
- CFI1 SA6 CFIC SET POSSIBLE END OF LINE POSITIONS
- SA7 CFID
- MOVEBIT A1,CFIE,FIKL*6,B3 GET FILE ID
- SA1 CFIE CHECK IF NO FILE ID
- SA2 A1+B1
- BX1 X1+X2
- NZ X1,CFI2 IF FILE ID IS PRESENT
- SA2 CFIA SPACE FILE FILE ID FIELD
- SA3 CFIB
- MOVEBIT (=17H),X2,FIKL*6,,X3
- EQ CFIX RETURN
- CFIA BSS 1 ADDRESS OF FILE ID IN OUTPUT
- CFIB BSS 1 UPPER BIT OF FILE ID IN OUTPUT
- CFIC BSS 1 POSITION OF END OF LINE IN OUTPUT
- CFID BSS 1 POSITION OF END OF LINE IN OUTPUT
- CFIE BSS 2 IMAGE OF FILE ID
- CFM SPACE 4,10
- ** CFM - CHANGE FAMILY.
- *
- * ENTRY (X1) = NEW FAMILY NAME.
- *
- * EXIT TO *ABT1* IF CHANGE NOT ALLOWED.
- *
- * USES A - 1, 6.
- * X - 1, 5, 6.
- *
- * MACROS ABTMSG, ENFAM.
- CFM SUBR ENTRY/EXIT
- BX6 X1
- SA6 CFMA
- ENFAM CFMA CHANGE FAMILY
- SA1 CFMA
- LX1 59-11
- PL X1,CFMX IF CHANGE SUCCESSFUL
- SA1 CF FORCE NO FAMILY CHANGE
- BX6 X1
- SA6 FM
- ABTMSG MFNA ABORT *TFSP*
- CFMA BSS 1 NEW FAMILY NAME
- CJD SPACE 4,10
- ** CJD - CHECK JULIAN DATE.
- *
- * ENTRY (X1) = JULIAN DATE LEFT JUSTIFIED.
- *
- * EXIT (X4) = 0 IF IN CORRECT FORMAT.
- *
- * USES A - 1, 5, 6, 7.
- * X - 0, 1, 5, 6, 7.
- *
- * CALLS DXB.
- CJD SUBR ENTRY/EXIT
- MX0 12 GET YEAR
- BX5 X0*X1
- MX0 24 SAVE DAY
- LX1 12
- SX2 1RD
- LX2 36
- BX6 X1+X2
- BX6 X0*X6
- SA6 CJDA
- LX2 6 FLAG DECIMAL
- BX5 X5+X2
- RJ DXB CONVERT DISPLAY TO BINARY
- NZ X4,CJDX IF ERROR
- MX0 -2 CHECK FOR LEAP YEAR
- BX0 -X0*X6
- SX7 365
- NZ X0,CJD1 IF NOT LEAP YEAR
- SX7 X7+B1
- CJD1 SA5 CJDA GET DAY
- SA7 A5 SAVE NUMBER OF DAYS IN YEAR
- RJ DXB CONVERT DISPLAY TO BINARY
- NZ X4,CJDX IF ERROR
- SA1 CJDA CHECK NUMBER OF DAYS
- IX1 X1-X6
- PL X1,CJDX IF LEGAL NUMBER OF DAYS
- SX4 B1 FLAG ERROR
- EQ CJDX RETURN
- CJDA BSS 1 DAY COUNT
- CRD SPACE 4,20
- ** CRD - CHECK RELEASE DATE.
- *
- * IF THE RELEASE DATE WAS SPECIFIED, ISSUE THE CONDITIONAL
- * RELEASE (*SDCR*) MESSAGE, AND CLEAR THE SYMBOLIC ACCESS FLAGS
- * FROM ALL CATALOG ENTRIES.
- *
- * ENTRY (RS) = 1 IF URDATE SPECIFIED.
- *
- * EXIT (RS) = 0.
- *
- * USES A - 1, 2, 3, 6.
- * X - 1, 2, 3, 6.
- *
- * CALLS SMB.
- *
- * MACROS CALLTFM, GFILEV, ISSMSG, MOVEBIT, RESETP, RJUST,
- * WRITFET.
- CRD SUBR ENTRY/EXIT
- SA1 RS
- NZ X1,CRD1 IF URDATE SPECIFIED
- SA1 TAVS+/CAT/URDATE
- RJUST X1,X1,/BTC/URDATE,/UPB/URDATE
- ZR X1,CRDX IF NO URDATE SET
- SX6 B1
- EQ CRD2 VERIFY NO CATALOG ENTRIES ARE SYMBOLIC
- CRD1 SX6 B0 CLEAR URDATE SPECIFIED
- SA6 A1
- SA1 UN
- SA2 FV
- SA3 TAVS+/CAT/URDATE
- RJUST X3,X3,/BTC/URDATE,/UPB/URDATE
- RJ SMB ISSUE *SDCR* MESSAGE
- SA1 TAVS+/CAT/URDATE
- RJUST X1,X1,/BTC/URDATE,/UPB/URDATE
- ZR X1,CRDX IF URDATE CLEARED
- SX6 B1
- CRD2 SA6 CRDA SAVE SEQUENCE NUMBER
- GFILEV UN,FV,X6,FCAT,PCAT,TAVS
- SA1 /ADD/SV
- RJUST X1,X1,/BTC/SV,/UPB/SV
- ZR X1,CRD3 IF NOT SYMBOLIC ACCESS
- SA6 N3+TFRR SET RANDOM ADDRESS
- MOVEBIT (=0),/ADD/SV,/BTC/SV,,/UPB/SV CLEAR SYMBOLIC ACCESS
- RESETP N3
- WRITFET X2,FCAT,TCEL
- SX6 RCES REPLACE CATALOG ENTRY
- CALLTFM X2,X6
- CRD3 SA1 /ADD/NCAT
- RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
- ZR X1,CRDX IF NO MORE CATALOG ENTRIES
- SA1 CRDA
- SX6 X1+B1
- EQ CRD2 CLEAR SYMBOLIC ACCESS IN NEXT CATALOG
- CRDA CON 0 SEQUENCE NUMBER
- CUI SPACE 4,10
- ** CUI - CLEAR UTILITY INTERLOCK.
- *
- * EXIT UTILITY INTERLOCK CLEARED ON TAPE CATALOG FILE.
- *
- * USES A - 1.
- * X - 1.
- *
- * MACROS CALLTFM, RESETP.
- CUI SUBR ENTRY/EXIT
- SA1 LF
- NZ X1,CUIX IF LOCAL FILE MODE
- RESETP N1 CLEAR UTILITY INTERLOCK
- CALLTFM X2,CUAS
- EQ CUIX RETURN
- CVB SPACE 4,15
- ** CVB - CHECK IF VSN ENTRY IN BUFFER.
- *
- * ENTRY (VS) = VSN.
- *
- * EXIT (X4) = 0 IF VSN FOUND.
- * (A1) = ADDRESS OF ENTRY IN *VBUF*.
- *
- * USES B - 2, 3.
- * X - 0, 1.
- *
- * MACROS SRCHTAB.
- CVB SUBR ENTRY/EXIT
- SA1 VB+1 GET BUFFER LENGTH
- SB2 X1
- SA1 A1+B1
- SB3 X1
- SB2 B3-B2
- MX0 36 SEARCH BUFFER FOR VSN ENTRY
- SRCHTAB VBUF,VS,B2,4
- EQ CVBX RETURN
- CXS SPACE 4,10
- ** CXS - CONVERT CATALOG IMAGE TO SOURCE.
- *
- * ENTRY (X1) = IMAGE OF DIRECTIVE TABLE ENTRY.
- *
- * EXIT (B2) .LT. 0 IF NO DIRECTIVE CONTROL TABLE.
- * (CBUF) = IMAGE OF DIRECTIVE WITH EQUAL SIGN.
- * (CBUF+1 - CBUF+2) = IMAGE OF DATA FIELD.
- * (CXSA - CXSA+3) = IMAGE OF CONTROL TABLE.
- *
- * USES A - 1, 2, 4, 6.
- * B - 3.
- * X - 0, 1, 2, 4, 6.
- *
- * CALLS CDD, SFN, UDT, ZTB.
- *
- * MACROS MOVE, MOVEBIT, SRCHTAB.
- CXS8 SA1 CXSA+0 GET SUPPRESSED CHARACTERS
- SA2 X1
- AX1 18 GET ALLOWED CHARACTERS
- SA1 X1
- LX1 59-100B+1R+
- NG X1,CXS9 IF COLONS ALLOWED
- LX2 59-1R +1R+
- PL X2,CXS9 IF BLANKS NOT SUPPRESSED
- SA1 CXSB SET FIRST WORD OF DATA FIELD IMAGE
- RJ ZTB CONVERT ZEROES TO BLANKS
- SA6 CBUF+1
- SA1 CXSB+1 SET SECOND WORD OF DATA FIELD IMAGE
- RJ ZTB CONVERT ZEROES TO BLANKS
- SA6 CBUF+2
- SB3 B0 FLAG CONTROL TABLE FOUND
- EQ CXSX RETURN
- CXS9 SA1 =H* * PRESET DATA FIELD BUFFER
- BX6 X1
- SA6 CBUF+1
- SA6 A6+B1
- SA4 CXSA+0 GET BIT COUNT OF DATA FIELD
- LX4 18
- AX4 36+18
- SX0 6
- IX4 X0*X4
- MOVEBIT CXSB,CBUF+1,X4 MOVE DATA FIELD TO BUFFER
- SB3 B0 FLAG CONTROL TABLE FOUND
- CXS SUBR ENTRY/EXIT
- SB3 X1
- NG B3,CXSX IF NO DIRECTIVE TABLE
- MX0 42 GET DIRECTIVE IMAGE
- BX1 X0*X1
- RJ SFN SPACE FILL NAME
- LX6 -6+60 POSITION DIRECTIVE IMAGE
- SX2 1R=&1R
- BX6 X6-X2
- SA6 CBUF+0 SET DIRECTIVE IMAGE IN BUFFER
- MOVE 5,B3,CXSA GET DIRECTIVE CONTROL TABLE
- SX6 B0 CLEAR DATA FIELD BUFFER
- SA6 CXSB
- SA6 A6+B1
- SA2 CXSA+1 SET CATALOG TABLE ADDRESS
- SA1 X2
- MX0 -12 SET BIT COUNT
- AX2 36
- BX3 -X0*X2
- SB4 X3
- AX2 12 SET UPPER BITS
- SB3 X2
- MOVEBIT A1,CXSB,B4,B3 MOVE ENTRY TO BUFFER
- SA1 CXSA+0 SET PROCESSOR ADDRESS
- AX1 48
- SA2 CXSC+X1
- SB2 X2
- SA2 A1+B1 GET BIT COUNT
- LX2 12
- AX2 36+12
- SB3 X2
- SA1 CXSB RIGHT JUSTIFY VALUE
- LX1 B3
- JP B2 JUMP TO PROCESSOR
- * PROCESS OPTION SELECTION (PIOP).
- CXS1 BX2 X1 SET VALUE TO COMPARE
- SA1 CXSA+2 SET ADDRESS OF TABLE
- AX1 18
- MX0 60 SET MASK
- SRCHTAB X1,A2,,2,1 SEARCH FOR OPTION
- BX6 X1
- EQ CXS7 SAVE SOURCE ENTRY
- * PROCESS BINARY DATA (PIBD).
- CXS2 RJ CDD CONVERT CONSTANT TO DISPLAY CODE
- NZ B2,CXS3 IF VALUE NON-ZERO
- SX6 1R0 SET DATA FIELD OF ZERO
- SB2 6
- CXS3 MX0 1 BUILD DATA FIELD MASK
- SB3 B2-B1
- AX0 B3
- LX0 B2
- SA1 =H*0000000000* INSERT LEADING ZEROES
- BX1 -X0*X1
- BX6 X0*X6
- BX6 X1+X6
- EQ CXS7 TRIM EXCESS BLANKS
- * PROCESS PACKED DATE (PIPD).
- CXS4 SB3 70 FLAG DATE
- RJ UDT UNPACK DATE
- EQ CXS7 SAVE SOURCE ENTRY
- * PROCESS PACKED TIME (PIPT).
- CXS5 SB3 100 FLAG TIME
- RJ UDT UNPACK TIME
- EQ CXS7 SAVE SOURCE ENTRY
- * PROCESS SPECIAL CHARACTER BIT STRING (PIBS).
- CXS6 SX6 B0 PRESET NO CHARACTER
- ZR X1,CXS7 IF NO CHARACTER
- NX1,B2 GET CHARACTER CODE
- SB2 B2-47
- SB3 1R+
- SX6 B3-B2
- LX6 54
- CXS7 SA6 CXSB
- EQ CXS8 SAVE SOURCE ENTRY
- CXSA BSS 5 CONTROL TABLE IMAGE
- CXSB BSS 2 DATA FIELD BUFFER
- CXSC INDTAB 1 TABLE OF PROCESSOR ADDRESSES
- INDEX PIZF,CON,CXS8 ZERO FILL
- INDEX PIBF,CON,CXS8 BLANK FILL
- INDEX PIOP,CON,CXS1 OPTION SELECTION
- INDEX PIBD,CON,CXS2 BINARY DATA
- INDEX PIPD,CON,CXS4 PACKED DATE
- INDEX PIPT,CON,CXS5 PACKED TIME
- INDEX PIJD,CON,CXS8 JULIAN DATE
- INDEX PIVQ,CON,CXS8 VSN/SEQUENCE NUMBER
- INDEX PIVS,CON,CXS8 PADDED VSN
- INDEX PIBS,CON,CXS6 SPECIAL CHARACTER BIT STRING
- DDC SPACE 4,15
- ** DDC - DECIMAL DIGIT CONVERSION.
- *
- * ENTRY (X1) = DISPLAY CODE OF TWO DECIMAL DIGITS IN UPPER 12
- * BITS.
- * (X2) = MINIMUM BINARY VALUE.
- * (X3) = MAXIMUM BINARY VALUE.
- *
- * EXIT (X4) = 0 IF NO CONVERSION ERROR.
- * (X6) = BINARY VALUE OF DECIMAL DIGITS.
- *
- * USES A - 2, 3, 6.
- * X - 0, 1, 2, 3, 5.
- *
- * CALLS DXB.
- DDC SUBR ENTRY/EXIT
- BX6 X2 SAVE MINIMUM VALUE
- SA6 DDCA
- BX6 X3 SAVE MAXIMUM VALUE
- SA6 DDCB
- MX0 12 GET FIRST TWO DIGITS
- BX1 X0*X1
- SX2 1RD FORCE DECIMAL CONVERSION
- LX2 42
- BX5 X1+X2
- RJ DXB CONVERT DISPLAY TO BINARY
- NZ X4,DDCX IF CONVERSION ERROR
- SA2 DDCA COMPARE TO MINIMUM VALUE
- IX4 X6-X2
- NG X4,DDCX IF LESS THAN MINIMUM
- SA3 DDCB COMPARE TO MAXIMUM VALUE
- IX4 X3-X6
- NG X4,DDCX IF GREATER THAN MAXIMUM
- SX4 B0 FLAG NO ERROR
- EQ DDCX RETURN
- DDCA BSS 1 MINIMUM VALUE
- DDCB BSS 1 MAXIMUM VALUE
- DIP SPACE 4,15
- ** DIP - DIRECTIVE INPUT PROCESSOR.
- *
- * ENTRY (IF) = INPUT FILE FET ADDRESS.
- *
- * EXIT (EF) .NE. 0 IF DIRECTIVE ERROR.
- * (ET) .LT. 0 IF END OF INPUT FILE.
- *
- * USES A - 1, 2, 3, 4, 5, 6, 7.
- * B - 2, 3, 4, 5, 6, 7.
- * X - 0, 1, 2, 3, 4, 5, 6, 7.
- *
- * CALLS ACI, CJD, DTO, DXB, DXD, DXT, PVS, SCI.
- *
- * MACROS ISSMSG, LJUST, MOVE, MOVEBIT, RJM, SRCHTAB.
- DIP28 SA1 DIPD SET ADDRESS OF DATA FIELD
- SB6 X1
- RJ DTO ISSUE DIRECTIVE TO OUTPUT FILE
- SA1 DIPA+1 CHECK PROCESSOR ADDRESS
- AX1 18
- SB2 X1
- ZR B2,DIPX IF NO PROCESSOR
- RJM B2 JUMP TO PROCESSOR
- SA1 SF CHECK IF RESET NEEDED
- ZR X1,DIPX IF NO RESET NEEDED
- RJ RNS RESET NEEDED STORAGE
- DIP SUBR ENTRY/EXIT
- SX6 B0 CLEAR BUFFER SAVE FLAG
- SA6 SF
- SA6 AP CLEAR ALTERNATE PROCESSING FLAG
- SA1 LV GET TABLE OF DIRECTIVES FOR THIS LEVEL
- BX6 X1 STORE LEVEL NUMBER
- SA6 NL
- SA1 TDTA+X1 GET PROCESSOR ADDRESS
- BX6 X1
- RJ SCI SCAN FOR CODE IDENTIFIER
- SX6 B0 CLEAR TERMINAL INTERRUPT FLAG
- SA6 TI
- ZR B6,DIPX IF END OF FILE
- ZR X1,DIP22 IF DIRECTIVE NOT FOUND
- SA1 AP CHECK IF ALTERNATE PROCESSING
- ZR X1,DIP3 IF DIRECTIVE AT CURRENT LEVEL
- NG B7,DIP23 IF NOT VALID AT CURRENT LEVEL
- SA1 B7+2 CHECK IF DIRECTIVE VALID AT CURRENT LEVEL
- LX1 59-57
- NG X1,DIP23 IF NOT VALID AT CURRENT LEVEL
- LX1 59-58-59+57 CHECK IF DROP REQUIRED
- NG X1,DIP1 IF IMPLIED DROP REQUIRED
- SX6 B1 SET STORAGE COPY FLAG
- SA6 SF
- RJ SNS SAVE NEEDED STORAGE
- EQ DIP3 PROCESS DIRECTIVE AT CURRENT LEVEL
- DIP1 SX6 B7 SAVE EQUIVALENCED DIRECTIVE FLAG
- SA6 ED
- SA2 LV GET CURRENT LEVEL
- SA3 NL GET DESTINATION LEVEL
- IX6 X2-X3 COMPUTE NUMBER OF LEVELS TO DROP
- NG X6,DIP23 IF INCORRECT DROP
- ZR X6,DIP23 IF INCORRECT DROP
- SA6 DP NUMBER OF DROPS TO PROCESS
- DIP2 SA1 DIPE+X2 GET DROP PROCESSOR ADDRESS
- ZR X1,DIP3 IF NO DROP FOR THIS LEVEL
- RJM X1 EXECUTE DROP FOR THIS LEVEL
- SA2 LV GET CURRENT LEVEL NUMBER
- SA3 DP GET DROP COUNTER
- SX6 X3-1 DECREMENT DROP COUNTER
- SA4 ED RESET B7 FOR EQUIVALENCED DIRECTIVE
- SB7 X4
- SA6 A3 STORE DROP COUNTER
- NZ X6,DIP2 IF MORE IMPLIED DROPS
- DIP3 PL B7,DIP4 IF EQUIVALENCED DIRECTIVE
- SB6 B0 FLAG NO DATA FIELD
- RJ DTO ISSUE DIRECTIVE TO OUTPUT FILE
- SA1 DF+1 SET PROCESSOR ADDRESS
- BX1 -X1
- RJM X1 JUMP TO PROCESSOR
- SA1 SF CHECK IF RESET NEEDED
- ZR X1,DIPX IF NO RESET
- RJ RNS RESET NEEDED STORAGE
- EQ DIPX RETURN
- DIP4 SA1 DF+2 CHECK SEPARATOR
- SB4 X1-1R=
- NZ B4,DIP25 IF SEPARATOR NOT *=*
- MOVE 3,B7,DIPA GET DIRECTIVE CONTROL BLOCK
- SA2 DIPA SET CHARACTERS TO SUPPRESS
- SA1 X2
- BX6 X1
- AX2 18 SET CHARACTERS TO ALLOW
- SA1 X2
- SA3 SE DO NOT ALLOW SEPARATOR CHARACTER
- BX1 -X3*X1
- MX0 -6 GET MAXIMUM CHARACTER COUNT
- AX2 18
- BX4 -X0*X2
- RJ ACI ASSEMBLE CHARACTERS
- SX6 B5 SAVE SEPARATOR
- SA6 DF+2
- SX6 -CBUF PRESET DATA FIELD ADDRESS
- SA6 DIPD
- MX0 -6 CHECK NUMBER OF CHARACTERS
- SA1 DIPA
- AX1 36 SET MAXIMUM NUMBER OF CHARACTERS
- BX2 -X0*X1
- AX1 6 SET MINIMUM NUMBER OF CHARACTERS
- BX1 -X0*X1
- IX1 X4-X1
- NG X1,DIP24 IF TOO FEW CHARACTERS
- IX1 X2-X4
- NG X1,DIP24 IF TOO MANY CHARACTERS
- SB3 X2 SET CHARACTER COUNT FOR *PIBF*, *PIOP*
- NZ X4,DIP6 IF NOT DEFAULT
- SB2 B1+B1 SET NUMBER OF WORDS OF DEFAULT DATA FIELD
- SX1 X2-11
- PL X1,DIP5 IF TWO WORDS
- SB2 B1 SET ONE WORD
- SX6 B0 CLEAR SECOND WORD OF BUFFER
- SA6 CBUF+1
- DIP5 SA1 DIPA+2 SET DEFAULT VALUE
- SX2 X1
- MOVE B2,X2,CBUF
- SX4 B3 SET CHARACTER COUNT FOR *PIBF*, *PIOP*
- DIP6 SA1 DIPA CHECK DATA FIELD TYPE
- AX1 48
- SA1 DIPC+X1 GET INDEX ADDRESS
- SB2 X1
- JP B2 JUMP TO ADDRESS
- * ZERO FILL (PIZF).
- DIP7 MOVE 2,CBUF,DIPB DO NOT CHANGE DATA
- SB6 -2 FLAG LEFT JUSTIFIED
- EQ DIP20 SET VALUE IN TABLE
- * BLANK FILL (PIBF).
- DIP8 SX1 6 SET (X0) = CHARACTER MASK
- IX4 X4*X1
- LJUST X1,X1,X4,59
- SA1 =C* * PRESET BLANK FILL
- BX6 X1
- SA6 DIPB
- SA6 A6+B1
- MOVEBIT CBUF,DIPB,X4 MOVE DATA
- SX6 DIPB RESET DATA FIELD ADDRESS
- SA6 DIPD
- SB6 -2 FLAG LEFT JUSTIFIED
- EQ DIP20 SET VALUE IN TABLE
- * OPTION SELECTION (PIOP).
- DIP9 SX1 6 SET (X0) = CHARACTER MASK
- IX4 X4*X1
- LJUST X1,X1,X4,59
- SA1 DIPA+2 SET OPTION TABLE ADDRESS
- AX1 18
- SRCHTAB X1,CBUF,,2 SEARCH FOR OPTION
- NZ X4,DIP24 IF ENTRY NOT FOUND
- SA4 A1+B1 SAVE VALUE
- BX6 X4
- BX7 X3 SAVE DATA FIELD
- BX4 X3-X2
- ZR X4,DIP10 IF EXACT MATCH
- SRCHTAB A1+B3,A2,B2,B3,B4 SEARCH REST OF TABLE
- NZ X4,DIP10 IF NO CONFLICT
- BX4 X3-X2
- NZ X4,DIP24 IF NOT EXACT MATCH
- SA4 A1+B1 SAVE VALUE
- BX6 X4
- BX7 X3 SAVE DATA FIELD
- DIP10 SA6 DIPB
- SA7 CBUF
- SB6 B1 FLAG RIGHT JUSTIFIED
- EQ DIP20 SET VALUE IN TABLE
- * NUMERIC BINARY DATA (PIBD).
- DIP11 SA5 CBUF
- SB7 B1
- RJ DXB CONVERT DISPLAY CODE TO BINARY
- NZ X4,DIP24 IF ERROR IN DATA
- SA1 DIPA+2 GET MAXIMUM VALUE
- AX1 18
- SA2 X1
- AX1 18 GET MINIMUM VALUE
- SA1 X1
- IX2 X2-X6
- NG X2,DIP24 IF VALUE TOO LARGE
- IX1 X6-X1
- NG X1,DIP24 IF VALUE TOO SMALL
- SA6 DIPB
- SB6 B1 FLAG RIGHT JUSTIFIED
- EQ DIP20 SET VALUE IN TABLE
- * PACKED DATE (PIPD).
- DIP12 SA1 CBUF
- RJ DXD CONVERT DISPLAY CODE TO PACKED DATE
- NZ X4,DIP24 IF ERROR IN DATA
- SA6 DIPB
- SB6 B1 FLAG RIGHT JUSTIFIED
- EQ DIP20 SET VALUE IN TABLE
- * PACKED TIME (PIPT).
- DIP13 SA1 CBUF
- RJ DXT CONVERT DISPLAY CODE TO PACKED TIME
- NZ X4,DIP24 IF ERROR IN DATA
- SA6 DIPB
- SB6 B1 FLAG RIGHT JUSTIFIED
- EQ DIP20 SET VALUE IN TABLE
- * JULIAN DATE (PIJD).
- DIP14 SA1 CBUF
- BX6 X1
- SA6 DIPB
- RJ CJD CHECK FOR JULIAN DATE
- NZ X4,DIP24 IF NOT JULIAN DATE
- SB6 -2 FLAG LEFT JUSTIFIED
- EQ DIP20 SET VALUE IN TABLE
- * VSN/SEQUENCE NUMBER (PIVQ).
- DIP15 RJ PVS PAD VSN
- SA6 DIPB SAVE VSN
- SA1 =C*1* SET SEQUENCE NUMBER DEFAULT
- BX6 X1
- SA6 CBUF
- SA1 DF+2 CHECK SEPARATOR
- SX1 X1-1R/
- NZ X1,DIP16 IF SEQUENCE NOT SPECIFIED
- SA1 ="BL" SET SUPPRESSED CHARACTERS
- BX6 X1
- SA1 ="NC" SET ALLOWED CHARACTERS
- SX4 10 SET MAXIMUM CHARACTERS
- RJ ACI ASSEMBLE CHARACTERS
- DIP16 SA1 CBUF SAVE SEQUENCE IMAGE
- BX6 X1
- SA6 DIPB+1
- MOVEBIT DIPB,CBUF,VSKL*6 SET DATA FIELD IMAGE
- MOVEBIT (=C*/*),CBUF,6,,59-VSKL*6
- MOVEBIT DIPB+1,CBUF,60,,59-VSKL*6-6
- SA5 DIPB+1 GET DISPLAY SEQUENCE NUMBER
- SB7 B1
- RJ DXB CONVERT DISPLAY TO BINARY
- NZ X4,DIP24 IF CONVERSION ERROR
- ZR X6,DIP24 IF VALUE .EQ. 0
- SX1 X6-10000
- PL X1,DIP24 IF VALUE .GT. 9999
- SA1 DIPB MERGE VSN AND SEQUENCE NUMBER
- BX6 X1+X6
- SA6 A1
- SB6 -2 FLAG LEFT JUSTIFIED
- EQ DIP20 SET VALUE IN TABLE
- * PADDED VSN (PIVS).
- DIP17 RJ PVS PAD VSN
- SA6 DIPB
- SA6 CBUF
- SB6 -2 FLAG LEFT JUSTIFIED
- EQ DIP20 SET VALUE IN TABLE
- * SPECIAL CHARACTER BIT STRING (PIBS).
- DIP18 SA1 CBUF CHECK IF SPECIFIED
- BX6 X1
- ZR X1,DIP19 IF NO CHARACTER
- LX1 -54+60 GET BIT POSITION
- SB2 X1-1R+
- NG B2,DIP24 IF NOT SPECIAL CHARACTER
- SX6 B1 POSITION BIT STRING
- LX6 B2
- DIP19 SA6 DIPB
- SB2 -2 FLAG LEFT JUSTIFIED
- * EQ DIP20 SET VALUE IN TABLE
- * SET VALUE IN CATALOG TABLE.
- DIP20 SA3 DIPA+1 SET CATALOG TABLE ADDRESS
- SA2 X3
- MX0 -12 SET BIT COUNT
- AX3 36
- BX1 -X0*X3
- SB4 X1
- AX3 12 SET UPPER BIT OF FIELD
- SB2 X3
- SB3 59
- NG B6,DIP21 IF LEFT JUSTIFIED
- SB3 B4-B1 SET UPPER BIT POSITION OF VALUE
- DIP21 MOVEBIT DIPB,A2,B4,B3,B2 SET VALUE IN TABLE
- EQ DIP28 ISSUE DIRECTIVE TO OUTPUT FILE
- DIP22 SB6 B0 FLAG NO DATA FIELD
- RJ DTO ISSUE DIRECTIVE TO OUTPUT FILE
- SB5 EILD SET ERROR MESSAGE ADDRESS
- EQ DIP27 ISSUE MESSAGE
- DIP23 SB6 B0 FLAG NO DATA FIELD
- RJ DTO ISSUE DIRECTIVE TO OUTPUT
- SB5 EDLE SET ERROR MESSAGE ADDRESS
- EQ DIP27 ISSUE ERROR MESSAGE
- DIP24 SA1 DIPD SET DATA FIELD ADDRESS
- SB6 X1
- EQ DIP26 ISSUE ERROR MESSAGE
- DIP25 SB6 B0 FLAG NO DATA FIELD
- DIP26 RJ DTO ISSUE DIRECTIVE TO OUTPUT FILE
- SB5 EDFE SET ERROR MESSAGE ADDRESS
- DIP27 ISSMSG B5,E ISSUE ERROR MESSAGE
- EQ DIPX RETURN
- DIPA BSS 3 IMAGE OF DIRECTIVE CONTROL BLOCK
- DIPB BSS 2 IMAGE OF DATA FIELD VALUE
- DIPC INDTAB 1 *DIP* PROCESSOR TABLE
- INDEX PIZF,CON,DIP7 ZERO FILL
- INDEX PIBF,CON,DIP8 BLANK FILL
- INDEX PIOP,CON,DIP9 OPTION SELECTION
- INDEX PIBD,CON,DIP11 NUMERIC BINARY DATA
- INDEX PIPD,CON,DIP12 PACKED DATE
- INDEX PIPT,CON,DIP13 PACKED TIME
- INDEX PIJD,CON,DIP14 JULIAN DATE
- INDEX PIVQ,CON,DIP15 VSN/SEQUENCE NUMBER
- INDEX PIVS,CON,DIP17 PADDED VSN
- INDEX PIBS,CON,DIP18 SPECIAL CHARACTER BIT STRING
- DIPD BSS 1 DATA FIELD ADDRESS
- DIPE BSS 0 DROP PROCESSOR TABLE
- LOC 0
- CON 0 FAMILY LEVEL DROP
- CON /LVVS/DRO VSN LEVEL DROP
- CON /LVUS/DRO USER LEVEL DROP
- CON /LVFI/DRO FILE LEVEL DROP
- CON /LVAU/DRO ALTERNATE USER LEVEL DROP
- LOC *O
- CON 0 END OF PROCESSOR ADDRESS
- DTO SPACE 4,20
- ** DTO - ISSUE DIRECTIVE TO OUTPUT FILE.
- *
- * ENTRY (DF) = DIRECTIVE LEFT JUSTIFIED.
- * (B6) = 0 IF NO DATA FIELD.
- * = ADDRESS OF SPACE FILLED DATA FIELD.
- * (BF) = BRIEF/NOBRIEF FLAG.
- *
- * EXIT DIRECTIVE ISSUED TO OUTPUT FILE.
- * ((B6) - (B6)+1) SPACE FILLED.
- *
- * USES A - 1, 6.
- * B - 6.
- * X - 1, 6.
- *
- * CALLS SFN.
- *
- * MACROS MOVE, MOVEBIT, WLINES.
- DTO SUBR ENTRY/EXIT
- SA1 =10H BLANK FILL DATA FIELD
- BX6 X1
- SA6 /KMESS/DIRECT+2
- SA6 A6+B1
- SA1 DF GET DIRECTIVE
- RJ SFN SPACE FILL NAME
- LX6 -6+60 SET DIRECTIVE IN MESSAGE
- SA6 /KMESS/DIRECT+1
- ZR B6,DTO2 IF NO DATA FIELD
- SX2 2R= &2R SET EQUAL SIGN IN MESSAGE
- BX6 X6-X2
- SA6 A6
- PL B6,DTO1 IF ALREADY SPACE FILLED
- SB6 -B6 GET DATA FIELD ADDRESS
- SA1 B6
- RJ SFN SPACE FILL NAME
- SA6 B6
- SA1 B6+B1 GET SECOND WORD OF DATA FIELD
- RJ SFN SPACE FILL NAME
- SA6 B6+B1
- DTO1 MOVEBIT B6,/KMESS/DIRECT+1,PNKL*6,,5 MOVE FIELD TO MESSAGE
- DTO2 SX6 B0 CLEAR MESSAGE BUFFER
- SA6 /KMESS/MESSAGE
- SA6 A6+B1
- SA1 =10H ********* SET START OF DIRECTIVE MESSAGE
- BX6 X1
- SA6 /KMESS/DIRECT
- MOVE 3,/KMESS/DIRECT+1,NPGG MOVE DIRECTIVE TO PAGE HEADER
- SA1 BF CHECK *BRIEF* FLAG
- NZ X1,DTOX IF *BRIEF* MODE SET
- WLINES /KMESS/DIRECT,1 WRITE DIRECTIVE TO OUTPUT FILE
- EQ DTOX RETURN
- DXD SPACE 4,15
- ** DXD - DISPLAY TO PACKED DATE CONVERSION.
- *
- * ENTRY (X1) = DISPLAY DATE LEFT JUSTIFIED IN YYMMDD FORMAT.
- *
- * EXIT (X4) = 0 IF NO CONVERSION ERROR.
- * (X6) = PACKED DATE.
- *
- * USES A - 1, 3, 6, 7.
- * X - 0, 1, 2, 3, 7.
- *
- * CALLS DDC.
- DXD SUBR ENTRY/EXIT
- SX4 B0 CHECK BLANK RELEASE DATE
- SA3 =C* *
- BX6 X1-X3
- ZR X6,DXDX IF NO RELEASE DATE
- BX6 X1 SAVE MONTH AND DAY
- SA6 DXDA
- SX2 B0 SET MINIMUM VALUE
- SX3 99 SET MAXIMUM VALUE
- RJ DDC CONVERT DECIMAL DIGITS
- NZ X4,DXDX IF CONVERSION ERROR
- MX0 -2 CHECK FOR LEAP YEAR
- BX1 -X0*X6
- SX7 28
- NZ X1,DXD1 IF NOT LEAP YEAR
- SX7 X7+B1
- DXD1 SA7 DXDC+2-1 SET NUMBER OF DAYS IN FEBRUARY
- SX6 X6-70
- PL X6,DXD2 IF BETWEEN 1970 AND 1999
- SX6 X6+100
- DXD2 SX4 B1 CHECK IF YEAR TOO LARGE
- SX1 X6-100B
- PL X1,DXDX IF AFTER 2033
- LX6 12 SET PACKED YEAR
- SA6 DXDB
- SA1 DXDA GET MONTH
- LX1 12
- SX2 B1 SET MINIMUM NUMBER OF MONTHS/DAYS
- SX3 12 SET MAXIMUM NUMBER OF MONTHS
- RJ DDC CONVERT DECIMAL DIGITS
- NZ X4,DXDX IF CONVERSION ERROR
- SA3 DXDC+X6-1 GET NUMBER OF DAYS IN MONTH
- SA1 DXDB SET PACKED MONTH
- LX6 6
- BX6 X1+X6
- SA6 A1
- SA1 DXDA GET DAY
- LX1 24
- RJ DDC CONVERT DECIMAL DIGITS
- NZ X4,DXDX IF CONVERSION ERROR
- SA1 DXDB SET PACKED DAY
- BX6 X1+X6
- EQ DXDX RETURN
- DXDA BSS 1 DISPLAY DATE
- DXDB BSS 1 PACKED DATE
- DXDC BSS 0 DAYS PER MONTH TABLE
- LOC 1
- CON 31 JANUARY
- CON 28 FEBRUARY
- * CON 29 (FEBRUARY - LEAP YEAR)
- CON 31 MARCH
- CON 30 APRIL
- CON 31 MAY
- CON 30 JUNE
- CON 31 JULY
- CON 31 AUGUST
- CON 30 SEPTEMBER
- CON 31 OCTOBER
- CON 30 NOVEMBER
- CON 31 DECEMBER
- LOC *O
- DXT SPACE 4,15
- ** DXT - DISPLAY TO PACKED TIME CONVERSION.
- *
- * ENTRY (X1) = DISPLAY TIME LEFT JUSTIFIED IN HHMMSS FORMAT.
- *
- * EXIT (X4) = 0 IF NO CONVERSION ERROR
- * (X6) = PACKED TIME.
- *
- * USES A - 1, 6.
- * X - 1, 2, 3.
- *
- * CALLS DDC.
- DXT SUBR ENTRY/EXIT
- BX6 X1 SAVE MINUTES AND SECONDS
- SA6 DXTA
- SX2 B0 SET MINIMUM VALUE
- SX3 23 SET MAXIMUM NUMBER OF HOURS
- RJ DDC CONVERT DISPLAY DIGITS
- NZ X4,DXTX IF CONVERSION ERROR
- LX6 12 SET PACKED HOURS
- SA6 DXTB
- SA1 DXTA GET MINUTES
- LX1 12
- SX3 59 SET MAXIMUM NUMBER OF MINUTES/SECONDS
- RJ DDC CONVERT DISPLAY DIGITS
- NZ X4,DXTX IF CONVERSION ERROR
- SA1 DXTB SET PACKED MINUTES
- LX6 6
- BX6 X1+X6
- SA6 A1
- SA1 DXTA GET SECONDS
- LX1 24
- RJ DDC CONVERT DISPLAY DIGITS
- NZ X4,DXTX IF CONVERSION ERROR
- SA1 DXTB SET PACKED SECONDS
- BX6 X1+X6
- EQ DXTX RETURN
- DXTA BSS 1 DISPLAY TIME
- DXTB BSS 1 PACKED TIME
- FAL SPACE 4,10
- ** FAL - FAMILY LEVEL PROCESSOR.
- *
- * EXIT PROGRAM SET FOR FAMILY LEVEL DIRECTIVES.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- FAL SUBR ENTRY/EXIT
- SX6 LVFA SET FAMILY LEVEL
- SA6 LV
- SA1 FALA RESET LEFT SCREEN POINTER
- BX6 X1
- SA6 /KLEFT/NEXT
- SA1 FALB RESET RIGHT SCREEN POINTER
- BX6 X1
- SA6 /KRIGHT/NEXT
- SA1 =H* FAMILY * SET LEVEL IN HELP DISPLAY
- BX6 X1
- SA6 /KRIGHT/LV
- EQ FALX RETURN
- FALA KNEXT KFAMLS,NOLAB
- FALB KNEXT KFAMRS,NOLAB
- FEL SPACE 4,15
- ** FEL - FORCE END OF LINE.
- *
- * ENTRY (A2) = ADDRESS TO START END OF LINE.
- * (X3) = BIT POSITION TO START END OF LINE.
- *
- * EXIT (A2) = ADDRESS OF END OF END OF LINE.
- *
- * USES A - 1.
- * B - 4.
- * X - 0, 1, 2, 6.
- *
- * MACROS MOVEBIT.
- FEL SUBR ENTRY/EXIT
- MX0 -12 CHECK BIT POSITION
- SX1 X3-59
- NZ X1,FEL1 IF NOT AT START OF WORD
- SA1 A2-1 CHECK PREVIOUS WORD
- BX1 -X0*X1
- ZR X1,FELX IF ALREADY AT END OF LINE
- FEL1 SA2 A2
- SB4 X3+B1 PRESET BIT COUNT
- SX6 X3-6
- PL X6,FEL2 IF END OF LINE ON ONLY ONE WORD
- SB4 B4+60 RESET BIT COUNT
- FEL2 MOVEBIT FELA,A2,B4,,X3 SET END OF LINE
- EQ FELX RETURN
- FELA BSS 2 END OF LINE IMAGE
- FEV SPACE 4,15
- ** FEV - FIND EXTERNAL VSN.
- *
- * ENTRY (FCAT) = FILE CATALOG IMAGE.
- * (TAVS) = ASSIGNED VSN ENTRIES.
- *
- * EXIT (X4) = 0 IF VSN FOUND.
- * (A1) = ADDRESS OF EXTERNAL VSN ENTRY IN *TAVS*.
- * (X6) = VSN BUFFER SIZE.
- *
- * USES A - 2.
- * X - 0, 2.
- *
- * MACROS RJUST, SRCHTAB.
- FEV SUBR ENTRY/EXIT
- MX0 VSKL*6 FIND EXTERNAL VSN
- SA2 /ADD/EVSN
- SRCHTAB TAVS,A2,TAVSL,4
- SA2 /ADD/REELC
- RJUST X2,X6,/BTC/REELC,/UPB/REELC
- LX6 2
- EQ FEVX RETURN
- FIA SPACE 4,15
- ** FIA - FILE AUDIT LIST PROCESSOR.
- *
- * ENTRY (FCAT) = IMAGE OF FILE CATALOG.
- * (TAVS) = IMAGE OF ASSIGNED VSNS.
- *
- * EXIT FILE INFORMATION WRITTEN TO OUTPUT FILE.
- *
- * USES A - 1, 6.
- * B - 2, 3, 7.
- * X - 1, 6, 7.
- *
- * CALLS CDD, FEL, FEV, SFN.
- *
- * MACROS CLEAR, DISLIS, LISTAB, MOVEBIT, RJUST, SETSORC,
- * WWORDS.
- FIA SUBR ENTRY/EXIT
- SA1 UN SET USER NAME IN LISTING
- RJ SFN SPACE FILL NAME
- BX1 X6 SET USER NAME IN LISTING
- MOVEBIT A1,/ALS/FUN,UNKL*6,59,/ALSU/FUN
- SA1 TAVS+/CAT/FVSN SET FIRST VSN IN LISTING
- MOVEBIT A1,/ALS/VSNF,VSKL*6,,/ALSU/VSNF
- SA1 /ADD/QN SET SEQUENCE NUMBER IN LISTING
- RJUST X1,X1,/BTC/QN,/UPB/QN
- SX1 X1+10000
- RJ CDD CONVERT TO DECIMAL DISPLAY
- BX1 X6
- MOVEBIT A1,/ALS/QN,24,23,/ALSU/QN
- SETSORC A,LVFI SET SOURCE VALUES IN AUDIT LISTING
- SA1 /ALS/FI CHECK FOR EXTRA END OF LINES
- SB3 /ALSU/FI
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 /ALS/PI
- SB3 /ALSU/PI
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- MOVE 4,FIAF,FIAD CLEAR RELEASE MESSAGE
- MX0 -18
- SA1 TAVS+/CAT/URDATE SET UNCONDITIONAL RELEASE DATE
- BX1 -X0*X1
- ZR X1,FIA1 IF NO CONDITIONAL RELEASE DATE
- SA1 TAVS+/CAT/NEWRDT CHECK RELEASE DATE FORMAT
- LJUST X1,X1,/BTC/NEWRDT,/UPB/NEWRDT
- NG X1,FIA0.1 IF NEW FORMAT
- MOVEBIT /ALS/URDATE,/ALS/RDATE,6*6,/ALSU/URDATE,/ALSU/RDATE
- MOVE 4,FIAE,FIAD SET CONDITIONALLY RELEASE MESSAGE
- EQ FIA1 CLEAR LIST OF VSNS
- FIA0.1 MOVE 4,FIAG,FIAD SET UNCONDITIONAL RELEASE MESSAGE
- FIA1 CLEAR FIAC,60 CLEAR LIST OF VSNS
- RJ FEV FIND EXTERNAL VSN
- SB2 X6 GET LIST OF VSNS
- LISTAB A1,FIAC,B2,,4,VSKL*6
- SA1 =4R SET IMAGE BETWEEN VSNS
- BX6 X1
- SX7 12 PRESET NUMBER OF VSN ENTRIES PER LINE
- SA1 OS
- NG X1,FIA2 IF MASS STORAGE OUTPUT
- SX7 6 RESET NUMBER OF VSN ENTRIES PER LINE
- FIA2 DISLIS FIAC,FIAB,,VSKL*6,24,X7
- RJ FEL FORCE END OF LINE
- SA1 =C* * INSERT BLANK LINE
- BX6 X1
- SA6 A2
- SB7 A2-FIAA+1 SET ASSIGNED VSNS LIST LENGTH
- WWORDS FIAA,B7 WRITE ASSIGNED VSNS LIST
- EQ FIAX RETURN
- FIAA BSS 0 AUDIT LISTING
- LISTER ALS,1
- FUN LISTER ,7 USER NAME
- LISTER ,2
- FI LISTER ,17 FILE IDENTIFIER
- LISTER ,2
- SV LISTER ,1 SYMBOLIC ACCESS FLAG
- LISTER ,2
- VSNF LISTER ,6 FIRST VSN
- LISTER ,2
- QN LISTER ,4 SEQUENCE NUMBER
- LISTER ,1
- CE LISTER ,1 ERROR FLAG
- LISTER ,1
- CN LISTER ,10 CHARGE NUMBER
- LISTER ,1
- PN LISTER ,20 PROJECT NUMBER
- EOL1 LISTER ,2 END OF TERMINAL OUTPUT LINE
- LISTER ,1
- PW LISTER ,7 PASSWORD
- LISTER ,2
- PI LISTER ,17 PHYSICAL IDENTIFIER
- LISTER ,2
- M LISTER ,1 MODE
- LISTER ,2
- CT LISTER ,2 CATEGORY
- LISTER ,2
- AC LISTER ,1 ALTERNATE AUDIT FLAG
- LISTER ,2
- UC LISTER ,10 USER CONTROL WORD
- LISTER ,1,,E
- LISTER ,1
- CR LISTER ,5 CREATION DATE
- LISTER ,3
- CV LISTER ,2 CONVERSION MODE
- LISTER ,2
- D LISTER ,2 DENSITY
- LISTER ,3
- E LISTER ,2 GENERATION VERSION NUMBER
- LISTER ,3
- F LISTER ,2 FORMAT
- LISTER ,2
- FA LISTER ,1 ACCESSIBILITY CHARACTER
- LISTER ,3
- FC LISTER ,4 MAXIMUM FRAME COUNT
- LISTER ,3
- G LISTER ,4 GENERATION NUMBER
- LISTER ,2
- LB LISTER ,2 LABEL TYPE
- LISTER ,2
- NS LISTER ,2 NOISE SIZE
- LISTER ,3
- RT LISTER ,5 RETENTION DATE
- LISTER ,3
- SN LISTER ,4 SECTION NUMBER
- LISTER ,4
- SI LISTER ,6 SET IDENTIFIER
- LISTER ,3
- EOL2 LISTER ,2 END OF TERMINAL OUTPUT LINE
- LISTER ,1
- ACOUNT LISTER ,8 ACCESS COUNT
- LISTER ,1
- CDATE LISTER ,6 CREATION DATE
- LISTER ,1
- CTIME LISTER ,6 CREATION TIME
- LISTER ,1
- ADATE LISTER ,6 ACCESS DATE
- LISTER ,1
- ATIME LISTER ,6 ACCESS TIME
- LISTER ,1
- MDATE LISTER ,6 MODIFICATION DATE
- LISTER ,1
- MTIME LISTER ,6,,E MODIFICATION TIME
- FIAD DATA 36L
- FIAB BSS 0 LISTING OF ASSIGNED VSNS
- DUP 10
- DATA 30H
- DATA 26L
- ENDD
- DATA C* *
- FIAC BSS 60 LIST OF ASSIGNED VSNS
- FIAE BSS 0
- LISTER ,27,( ** CONDITIONALLY RELEASED )
- RDATE LISTER ,6,YYMMDD
- LISTER ,3,( **),E
- FIAF DATA 36L
- FIAG BSS 0
- LISTER ,19,( ** TO BE RELEASED )
- URDATE LISTER ,6,YYMMDD UNCONDITIONAL RELEASE DATE
- LISTER ,11,( ** ),E
- FIL SPACE 4,10
- ** FIL - FILE LEVEL PROCESSOR.
- *
- * EXIT PROGRAM SET FOR FILE LEVEL DIRECTIVES.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * CALLS RDA.
- *
- * MACROS LJUST, MOVE, MOVEBIT, RJUST.
- FIL SUBR ENTRY/EXIT
- SX6 B0 CLEAR ALTERNATE USER
- SA6 AU
- SX6 LVFI SET FILE LEVEL
- SA6 LV
- SA1 UN SET USER NAME IN K-DISPLAY
- BX6 X1
- SA6 /KFILLS1/USER
- SA6 /KFILLS2/USER
- SA6 /KFILLS3/USER
- MOVEBIT FI,/KFILLS1/FILE,FIKL*6 SET FILE ID IN K-DISPLAY
- MOVEBIT FI,/KFILLS2/FILE,FIKL*6
- MOVEBIT FI,/KFILLS3/FILE,FIKL*6
- SA1 RF CHECK RESERVED FLAG
- SA2 FILA PRESET MESSAGE ADDRESS
- ZR X1,FIL1 IF FILE NOT RESERVED
- SA2 FILB RESET MESSAGE ADDRESS
- FIL1 MOVE 3,A2,/KFILLS1/MESS SET RESERVE MESSAGE IN K-DISPLAY
- MOVE 3,/KFILLS1/MESS,/KFILLS2/MESS
- MOVE 3,/KFILLS2/MESS,/KFILLS3/MESS
- SA1 /ADD/D GET FILE DENSITY
- RJUST X1,X2,/BTC/D,/UPB/D
- MX0 60 GET DENSITY MNEMONIC
- SRCHTAB /DOTAB/D,A2,,2,1
- MOVEBIT A1,/KDIS/D,2*6,,5 SET MNEMONIC IN K-DISPLAY
- SA1 FILC RESET LEFT SCREEN POINTER
- BX6 X1
- SA6 /KLEFT/NEXT
- SA1 FILD RESET RIGHT SCREEN POINTER
- BX6 X1
- SA6 /KRIGHT/NEXT
- SA1 =H* FILE * SET LEVEL IN HELP DISPLAY
- BX6 X1
- SA6 /KRIGHT/LV
- SX6 B1 SET FILE LEVEL TOGGLE PAGE
- SA6 TG
- SA1 TAVS+/CAT/URDATE CHECK RELEASE DATE
- RJUST X1,X6,/BTC/URDATE,/UPB/URDATE
- ZR X6,FILX IF NO RELEASE DATE
- SA1 TAVS+/CAT/NEWRDT CHECK RELEASE DATE FORMAT
- LJUST X1,X1,/BTC/NEWRDT,/UPB/NEWRDT
- NG X1,FILX IF NEW FORMAT
- SA6 /LVFI/RDAA
- RJ /LVFI/RDA CONVERT RDATE TO URDATE
- EQ FILX RETURN
- FILA DATA 30HFILE NOT CURRENTLY RESERVED.
- FILB DATA 30HFILE CURRENTLY IS RESERVED.
- FILC KNEXT KFILLS1,NOLAB
- FILD KNEXT KFILRS,NOLAB
- FIS SPACE 4,15
- ** FIS - FILE SOURCE LISTING PROCESSOR.
- *
- * ENTRY (FCAT) = IMAGE OF FILE CATALOG.
- * (TAVS) = IMAGE OF ASSIGNED VSNS.
- *
- * EXIT FILE INFORMATION WRITTEN TO SOURCE FILE.
- *
- * USES A - 1, 2, 3, 6.
- * B - 2.
- * X - 1, 2, 3, 6.
- *
- * CALLS AUS, CDD, FEL, FEV, SCS.
- *
- * MACROS CLEAR, DISLIS, GRENTRY, LISTAB, MOVEBIT, RCREC, RJUST,
- * SETSORC, WRITEC, WRITEW.
- FIS7 WRITEC S,(=C*DROP*) WRITE LAST LINE OF ENTRY
- FIS SUBR ENTRY/EXIT
- SX6 B0 PRESET ADD ALL VSNS
- SA6 FISD
- SA1 /ADD/QN CHECK SEQUENCE NUMBER
- RJUST X1,X1,/BTC/QN,/UPB/QN
- SB2 X1-1
- NZ B2,FIS2 IF NOT *QN=1*
- SA2 /ADD/SV CHECK SYMBOLIC ACCESS
- RJUST X2,X2,/BTC/SV,/UPB/SV
- ZR X2,FIS1 IF NOT SYMBOLIC ACCESS
- MOVEBIT FI,FISE,FIKL*6 SAVE VALUE OF (FI)
- MOVEBIT /ADD/FI,FI,FIKL*6 ADD *FILE* TO SOURCE ENTRY
- SA1 /DTAB/FILE
- RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
- MOVEBIT FISE,FI,FIKL*6 RESTORE VALUE OF (FI)
- SX6 FISG FLAG *FILE* DIRECTIVE
- SA6 FISH
- MOVE CSPL/10,SCSB,X6 SAVE IMAGE OF DIRECTIVE
- EQ FIS3 GET SOURCE VALUES
- FIS1 SX6 B1 RESET TO IGNORE FIRST VSN
- SA6 FISD
- FIS2 RJ CDD CONVERT TO DECIMAL DISPLAY
- BX1 X4 SET SEQUENCE NUMBER IN IDENTIFIER
- MOVEBIT A1,/SLS/QN,4*6,,/SLSU/QN
- SA1 TAVS+/CAT/FVSN
- MOVEBIT A1,/SLS/IDENT,VSKL*6,,/SLSU/IDENT
- WRITEC S,FISF WRITE FIRST LINE OF SOURCE ENTRY
- SX6 FISF FLAG *FILEV* DIRECTIVE
- SA6 FISH
- FIS3 SA1 TAVS+/CAT/NEWRDT CHECK RELEASE DATE FORMAT
- LJUST X1,X6,/BTC/NEWRDT,/UPB/NEWRDT
- SX1 1RU
- NG X6,FIS3.1 IF NEW FORMAT
- SX1 1R
- FIS3.1 MOVEBIT A1,/SLS/NEWRDT,1*6,5,/SLSU/NEWRDT
- SETSORC S,LVFI SET SOURCE VALUES IN SOURCE LISTING
- SA1 /DTAB/FI ADD *FI* TO SOURCE ENTRY
- RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
- WRITEW S,FISA,FISAL WRITE FIRST PART OF SOURCE LISTING
- SA1 /DTAB/PI ADD *PI* TO SOURCE ENTRY
- RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
- SA1 /DTAB/PW ADD *PW* TO SOURCE ENTRY
- RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
- SA1 /DTAB/UC ADD *UC* TO SOURCE ENTRY
- RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
- SA1 /DTAB/SI ADD *SI* TO SOURCE ENTRY
- RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
- CLEAR FISC,60 CLEAR LIST OF VSNS
- RJ FEV FIND EXTERNAL VSN
- SA2 FISD
- ZR X2,FIS4 IF SYMBOLIC ACCESS
- SA1 A1+TSVL SKIP FIRST VSN
- SX6 X6-4
- FIS4 ZR X6,FIS5 IF NO ASSIGNED VSNS
- SB2 X6 GET LIST OF VSNS
- LISTAB A1,FISC,B2,,4,VSKL*6
- SA3 =6R,AVSN= SET IMAGE BETWEEN ENTRIES
- BX6 X3
- DISLIS FISC,FISB,,VSKL*6,36,6 SET VSNS IN SOURCE LISTING
- RJ FEL FORCE END OF LINE
- SX2 A2-FISB SET LENGTH OF SOURCE LISTING
- WRITEW S,FISB,X2 WRITE ASSIGNED VSNS TO SOURCE
- FIS5 WRITEC S,(=C*GO*) WRITE LAST LINE OF SOURCE ENTRY
- SA1 /ADD/AUCAT CHECK FOR ALTERNATE USERS
- RJUST X1,X1,/BTC/AUCAT,/UPB/AUCAT
- ZR X1,FISX IF NO ALTERNATE USERS
- SA1 FISH WRITE FIRST DIRECTIVE
- WRITEC S,X1
- SA1 /ADD/AUCAT GET ALTERNATE USERS RANDOM ADDRESS
- RJUST X1,X1,/BTC/AUCAT,/UPB/AUCAT
- RCREC N4,X1
- FIS6 GRENTRY N4,ACAT GET RECORD ENTRY
- ZR X6,FIS7 IF END OF ENTRIES
- RJ AUS PROCESS ALTERNATE USER SOURCE LISTING
- EQ FIS6 GET NEXT ENTRY
- FISA BSS 0 SOURCE LISTING
- LISTER SLS,3,(SV=)
- SV LISTER ,3,NO SYMBOLIC ACCESS STATUS
- LISTER ,9,(,RECOVER=)
- RECOVER LISTER ,3,NO RECOVERY STATUS
- LISTER ,4,(,PN=)
- PN LISTER ,20,,E,CAPL PROJECT NUMBER
- LISTER ,3,CN=
- CN LISTER ,10 CHARGE NUMBER
- LISTER ,4,(,CT=)
- CT LISTER ,7,PRIVATE FILE CATEGORY
- LISTER ,3,(,M=)
- M LISTER ,5,WRITE FILE MODE
- LISTER ,4,(,AC=)
- AC LISTER ,3,NO ALTERNATE AUDIT FLAG
- LISTER ,4,(,CE=)
- CE LISTER ,5,CLEAR,E,CAPL ERROR FLAG
- LISTER ,3,CR=
- CR LISTER ,5,YYDDD CREATION DATE
- LISTER ,4,(,CV=)
- CV LISTER ,2,AS CONVERSION MODE
- LISTER ,3,(,D=)
- D LISTER ,2,PE DENSITY
- LISTER ,3,(,E=)
- E LISTER ,2,00 GENERATION VERSION NUMBER
- LISTER ,3,(,F=)
- F LISTER ,2,I FORMAT
- LISTER ,4,(,FA=)
- FA LISTER ,1 ACCESSIBILITY CHARACTER
- LISTER ,4,(,FC=)
- FC LISTER ,4,"MXFC" MAXIMUM BLOCK COUNT
- LISTER ,3,(,G=)
- G LISTER ,4,0001 GENERATION NUMBER
- LISTER ,4,(,LB=)
- LB LISTER ,2,KL LABEL TYPE
- LISTER ,4,(,NS=)
- NS LISTER ,2,00,E,CAPL NOISE SIZE
- LISTER ,3,RT=
- RT LISTER ,5,YYDDD RETENTION DATE
- LISTER ,4,(,SN=)
- SN LISTER ,4,0001 SECTION NUMBER
- LISTER ,8,(,ACOUNT=)
- ACOUNT LISTER ,8,00000000 ACCESS COUNT
- LISTER ,7,(,CDATE=)
- CDATE LISTER ,6,YYMMDD CREATION DATE
- LISTER ,7,(,CTIME=)
- CTIME LISTER ,6,HHMMSS,E,CAPL CREATION TIME
- LISTER ,6,ADATE=
- ADATE LISTER ,6,YYMMDD LAST ACCESS DATE
- LISTER ,7,(,ATIME=)
- ATIME LISTER ,6,HHMMSS LAST ACCESS TIME
- LISTER ,7,(,MDATE=)
- MDATE LISTER ,6,YYMMDD LAST MODIFICATION DATE
- LISTER ,7,(,MTIME=)
- MTIME LISTER ,6,HHMMSS,E,CAPL LAST MODIFICATION TIME
- NEWRDT LISTER ,1,(U) URDATE/RDATE FLAG
- LISTER ,6,(RDATE=)
- URDATE LISTER ,6,YYMMDD,E,CAPL RELEASE DATE
- FISAL EQU *-FISA LENGTH OF SOURCE LISTING
- FISB BSS 0 ASSIGNED VSNS SOURCE LISTINGS
- DUP 10
- DATA 24H,AVSN= ,AVSN=
- DATA 24H,AVSN= ,AVSN=
- DATA 24L,AVSN= ,AVSN=
- ENDD
- FISC BSS 60 ASSIGNED VSNS
- FISD BSS 1 PROCESS FIRST VSN FLAG
- FISE BSS 2 VALUE OF (FI)
- FISF BSS 0 FIRST LINE OF *FILEV* ENTRY
- LISTER SLS,6,FILEV=
- IDENT LISTER ,6 VSN IDENTIFIER
- LISTER ,1,/
- QN LISTER ,4,,E,CAPL SEQUENCE NUMBER
- FISG BSS CSPL/10 FIRST LINE OF *FILE* ENTRY
- CON 0
- FISH CON FISF ADDRESS OF FIRST DIRECTIVE
- FOB SPACE 4,10
- ** FOB - FLUSH OUTPUT BUFFER.
- *
- * ENTRY (OS) .GT. 0 IF TERMINAL OUTPUT.
- *
- * EXIT OUTPUT WRITTEN TO TERMINAL FILE.
- *
- * USES A - 1.
- * X - 1.
- *
- * MACROS WRITER.
- FOB SUBR ENTRY/EXIT
- SA1 OS
- ZR X1,FOBX IF NO OUTPUT FILE
- NG X1,FOBX IF MASS STORAGE OUTPUT FILE
- WRITER L,R FLUSH OUTPUT BUFFER
- EQ FOBX RETURN
- GAE SPACE 4,15
- ** GAE - GET ALTERNATE USER ENTRY.
- *
- * ENTRY (AU) = ALTERNATE USER NAME.
- * (CA) = RANDOM ADDRESS OF FILE CATALOG.
- *
- * EXIT (X4) .NE. 0 IF ALTERNATE USER NOT IN CATALOG.
- * (ACAT - ACAT+1) = ALTERNATE USER ENTRY.
- *
- * USES A - 1, 6.
- * X - 1, 2, 6.
- *
- * CALLS CAB.
- *
- * MACROS CALLTFM, MOVE, MOVEBIT, RESETP, WRITFET.
- GAE SUBR ENTRY/EXIT
- RJ CAB CHECK IF ALTERNATE USER IN BUFFER
- ZR X4,GAE1 IF ALTERNATE USER IN BUFFER
- MOVEBIT AU,DAUC+/CAT/AUSER,UNKL*6,,/UPB/AUSER
- MOVE TAEL,DAUC,ACAT SET DEFAULT ALTERNATE USER CATALOG
- SA1 CA CHECK CATALOG ADDRESS
- SX4 B1 PRESET ERROR FLAG
- ZR X1,GAEX IF NO CATALOG ADDRESS
- BX6 X1
- SA6 N4+TFRR
- RESETP N4 LIST ALTERNATE USER ENTRY
- WRITFET X2,ACAT,TAEL
- CALLTFM X2,LAES
- NZ X4,GAEX IF ALTERNATE USER NOT FOUND
- SA1 N4BUF
- GAE1 SX2 A1 GET ALTERNATE USER ENTRY
- MOVE TAEL,X2,ACAT
- SX4 B0
- EQ GAEX RETURN
- GUV SPACE 4,15
- ** GUV - GET USER INFORMATION FOR VSN.
- *
- * ENTRY (VCAT) = VSN ENTRY IMAGE.
- *
- * EXIT (X1) = USER NAME.
- * = 0 IF NOT ASSIGNED.
- * (FI) = FILE IDENTIFIER.
- * (UN) = USER NAME.
- *
- * USES A - 1, 6.
- * X - 1, 2, 6.
- *
- * MACROS MOVE, MOVEBIT, RCREC, RJUST.
- GUV2 SA1 UN GET USER NAME
- GUV SUBR ENTRY/EXIT
- SA1 /ADD/VASF GET ASSIGNED FILE POINTER
- RJUST X1,X6,/BTC/VASF,/UPB/VASF
- ZR X6,GUV1 IF NOT ASSIGNED
- RCREC N3,X6 GET ASSIGNED FILE CATALOG
- SA2 /ADD/VASC GET CATALOG NUMBER
- RJUST X2,X2,/BTC/VASC,/UPB/VASC
- SX2 X2-1 GET ADDRESS OF FILE CATALOG IN BUFFER
- SX1 TCEL
- IX2 X2*X1
- SX2 N3BUF+4+X2
- MOVE X1,X2,FCAT SET FILE CATALOG IMAGE
- MOVEBIT N3BUF+3,UN,UNKL*6 SET USER NAME
- MOVEBIT /ADD/FI,FI,FIKL*6 SET FILE ID
- EQ GUV2 RETURN WITH USER NAME
- GUV1 SA6 UN CLEAR USER NAME
- SA1 =17H CLEAR FILE IDENTIFIER
- MOVEBIT A1,FI,FIKL*6
- EQ GUV2 RETURN WITH USER NAME
- GVE SPACE 4,15
- ** GVE - GET VSN ENTRY.
- *
- * ENTRY (VS) = VSN NAME.
- * (X6) = 0 IF NO INTERLOCK.
- * = 1 IF INTERLOCK.
- *
- * EXIT (X4) = 0 IF VSN IN CATALOG.
- * (VCAT - VCAT+3) = VSN ENTRY.
- *
- * USES A - 1, 6.
- * B - 2.
- * X - 1, 6.
- *
- * CALLS CVB.
- *
- * MACROS LISTVSN, MOVE.
- GVE1 SX2 A1 GET VSN ENTRY
- MOVE TSVL,X2,VCAT
- SX4 B0
- GVE SUBR ENTRY/EXIT
- SA6 GVEA SAVE INTERLOCK STATUS
- RJ CVB CHECK IF VSN IN BUFFER
- ZR X4,GVE1 IF VSN IN BUFFER
- SA1 GVEA LIST VSN
- SB2 X1
- LISTVSN VS,VCAT,B2
- EQ GVEX RETURN
- GVEA CON 4 INTERLOCK STATUS
- IFP SPACE 4,15
- ** IFP - INPUT FILE PROCESSOR.
- *
- * ENTRY (IF) = INPUT FILE FET ADDRESS.
- *
- * EXIT (KBUF - KBUF+KBUFL) = CODED LINE FROM INPUT FILE.
- * (X1) = 0 IF NOT EOR/EOF.
- * (X7) = 0 IF END OF LINE FOUND.
- *
- * USES A - 2, 3.
- * X - 0, 2, 3.
- *
- * MACROS READC.
- IFP SUBR ENTRY/EXIT
- SA2 IF
- SA3 OP CHECK INPUT OPTION
- SX3 X3-ZOPT
- ZR X3,IFP1 IF *Z* OPTION
- SA3 X2 CHECK IF NO FILE NAME
- SX1 -B1
- AX3 18
- ZR X3,IFPX IF NO FILE NAME
- IFP1 READC X2,KBUF,KBUFL
- MX0 -12 CHECK IF END OF LINE FOUND
- BX7 -X0*X4
- EQ IFPX RETURN
- IRL SPACE 4,10
- ** IRL - IGNORE REST OF INPUT LINE.
- *
- * EXIT CURRENT INPUT LINE SKIPPED.
- *
- * USES A - 1.
- * X - 1, 4, 6.
- *
- * CALLS ACI.
- IRL SUBR ENTRY/EXIT
- SA1 EL CHECK FOR END OF LINE
- ZR X1,IRLX IF END OF INPUT LINE
- MX1 60 ALLOW ALL CHARACTERS
- SX6 B0 SUPPRESS NO CHARACTERS
- SX4 CSPL SET MAXIMUM NUMBER OF CHARACTERS
- RJ ACI ASSEMBLE CHARACTERS
- EQ IRLX RETURN
- ISB SPACE 4,20
- ** ISB - INPUT STRING BUFFER.
- *
- * ENTRY (IF) = INPUT FET ADDRESS.
- *
- * EXIT (SB) = STRING BUFFER ADDRESS.
- * (SP) = STRING BUFFER CHARACTER POINTER.
- * (SM) = STRING BUFFER LIMIT.
- * (B6) = 0 IF EOR OR EOF.
- * (ET) = -1 IF EOR OR EOF.
- *
- * USES A - 1, 2, 6, 7.
- * B - 2, 6.
- * X - 1, 2, 6, 7.
- *
- * CALLS FOB, IFP, KFI, KIP, TOG, USB.
- *
- * MACROS READS, RJM.
- *
- * NOTES BASED ON SUBROUTINE *ISB* IN *SFS*.
- ISB4 SX6 -B1 SET END OF FILE FLAG
- SA6 ET
- SB6 B0
- ISB SUBR ENTRY/EXIT
- SA1 OP CHECK OPTION
- SX1 X1-KOPT
- NZ X1,ISB1 IF NOT K-DISPLAY
- SA1 IF CHECK INPUT FET ADDRESS
- SX1 X1-I
- NZ X1,ISB1 IF ALTERNATE INPUT FILE
- RJ KIP PROCESS K-DISPLAY INPUT
- SX7 B0
- EQ ISB2 SET STRING BUFFER POINTERS
- ISB1 RJ FOB FLUSH OUTPUT BUFFER
- RJ IFP PROCESS INPUT FILE
- NZ X1,ISB4 IF EOR OR EOF
- ISB2 SA7 ISBA SET END OF LINE FOUND FLAG
- MX0 12 INSURE END OF LINE AFTER 72 CHARACTERS
- SA1 KBUF+7
- BX7 X0*X1
- SA7 A1
- SB2 KBUF
- RJ USB UNPACK STRING BUFFER
- SX6 X6+B1 RESET STRING BUFFER LIMIT
- SA6 SM
- SX7 USBB-1 SET STRING BUFFER CHARACTER POINTER
- SA7 SP
- SX7 X7+B1 SET STRING BUFFER ADDRESS
- SA7 SB
- SA1 X7 CHECK FIRST CHARACTER
- SX1 X1-1R+
- NZ X1,ISB3 IF NOT TOGGLE CHARACTER
- SA1 LV CHECK DIRECTIVE LEVEL
- SA1 X1+ISBB
- ZR X1,ISB3 IF NO TOGGLE PROCESSOR
- RJM X1 JUMP TO PROCESSOR
- ISB3 SB6 B1 FLAG NO EOR/EOF
- SA1 ISBA
- ZR X1,ISBX IF END OF LINE FOUND
- RJ IFP PROCESS INPUT FILE
- SA7 ISBA
- EQ ISB3 FIND END OF LINE
- ISBA BSS 1 END OF LINE FLAG
- ISBB INDTAB 1 TABLE OF TOGGLE PROCESSORS
- INDEX LVFA,CON,0 FAMILY LEVEL
- INDEX LVVS,CON,0 VSN LEVEL
- INDEX LVUS,CON,KFI USER LEVEL
- INDEX LVFI,CON,TOG FILE LEVEL
- INDEX LVAU,CON,0 ALTERNATE USER LEVEL
- IUN SPACE 4,10
- ** IUN - INTERLOCK USER NAME.
- *
- * ENTRY (X1) = USER NAME TO INTERLOCK.
- * (X1) = 0 TO CLEAR INTERLOCK.
- *
- * EXIT USER NAME INTERLOCK SET.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * MACROS RCREC, WCREC.
- IUN SUBR ENTRY/EXIT
- SA2 LF
- NZ X2,IUNX IF LOCAL FILE MODE
- BX6 X1 SAVE USER NAME
- SA6 IUNA
- RCREC N1,1,REC1,1 CHANGE INTERLOCKED USER NAME
- SA1 IUNA
- SA2 REC1+BWUN
- MX6 -18
- BX6 -X6*X2
- BX6 X6+X1 MERGE USER NAME
- SA6 A2 WRITE INTERLOCK WORD
- WCREC N1,1,REC1,1
- EQ IUNX RETURN
- IUNA BSS 1 INTERLOCKED USER NAME
- KAV SPACE 4,15
- ** KAV - SET ASSIGNED VSNS IN K-DISPLAY.
- *
- * ENTRY (FCAT) = FILE CATALOG IMAGE.
- * (TAVS) = ASSIGNED VSNS IMAGE.
- *
- * EXIT VSNS SET IN K-DISPLAY.
- *
- * USES A - 1, 6.
- * B - 2.
- * X - 1, 6.
- *
- * CALLS FEV.
- *
- * MACROS CLEAR, DISLIS, LISTAB.
- KAV SUBR ENTRY/EXIT
- CLEAR KAVA,60 CLEAR LIST OF VSNS
- RJ FEV FIND EXTERNAL VSN
- SB2 X6 GET LIST OF VSNS
- LISTAB A1,KAVA,B2,,4,36
- SX6 3R DISPLAY LIST OF VSNS
- DISLIS KAVA,/KFILLS1/AVSN,TAVSL/4,36,18,6
- SA1 RC SET LENGTH OF DISPLAY
- SX6 6
- SX1 X1+5
- IX1 X1/X6
- SX6 6
- IX1 X1*X6
- SX6 X1+/KFILLS1/AVSN-/KFILLS1/START
- SA6 KFILLS1 LENGTH OF DISPLAY
- EQ KAVX RETURN
- KAVA BSS TAVSL/4 LIST OF ASSIGNED VSNS
- KFI SPACE 4,15
- ** KFI - SET FILE IDENTIFIERS IN K-DISPLAY.
- *
- * ENTRY (AA) = AUDIT RANDOM ADDRESS.
- *
- * (AA) = NEW AUDIT RANDOM ADDRESS.
- *
- * USES A - 1, 2, 6.
- * B - 2, 3.
- * X - 1, 2, 6.
- *
- * CALLS CDD, SFN.
- *
- * MACROS DISLIS, CLEAR, MOVEBIT, READFET, RJUST, SAFET.
- KFI SUBR ENTRY/EXIT
- CLEAR KFIE,KFIEL CLEAR LIST OF FILE IDENTIFIERS
- SX6 KFIE SET LIST ADDRESS
- SA6 KFIA
- KFI1 SAFET UN,,,FCST,AA SET UP FET FOR AUDIT
- SX6 B0 PRESET NEW AUDIT RANDOM ADDRESS
- ZR X4,KFI2 IF FILES FOUND
- SA6 AA CLEAR RANDOM ADDRESS
- EQ KFI7 LIST FILES
- KFI2 SA1 N3 CHECK IF AUDIT COMPLETE
- RJUST X1,X1,1,1
- NZ X1,KFI3 IF END OF AUDIT
- SA1 N3+TFRR RESET RANDOM ADDRESS
- BX6 X1
- KFI3 SA6 AA
- KFI4 READFET N3,FCAT,TCEL SET CATALOG IMAGE
- NZ X1,KFI6 IF END OF BUFFER
- SA1 /ADD/REELC SET VSN ENTRIES
- RJUST X1,X1,/BTC/REELC,/UPB/REELC
- LX1 2
- READFET X2,TAVS,X1
- READFET X2,KFIC,1 SET CATALOG RANDOM ADDRESS
- SA1 /ADD/SV CHECK IF SYMBOLIC ACCESS
- RJUST X1,X1,/BTC/SV,/UPB/SV
- ZR X1,KFI5 IF NOT SYMBOLIC ACCESS
- SA2 KFIA INCREMENT LIST ADDRESS
- SX6 X2+2
- SA6 A2
- MOVEBIT /ADD/FI,X2,FIKL*6,/UPB/FI SET FILE ID IN LIST
- EQ KFI4 CHECK FOR NEXT FILE
- KFI5 SA2 KFIA SET FIRST VSN IN LIST
- MOVEBIT TAVS+/CAT/FVSN,X2,VSKL*6,/UPB/FVSN
- MOVEBIT (=C*/*),A2,1*6,,B2 SET SLASH IN LIST
- SA1 /ADD/QN GET SEQUENCE NUMBER
- RJUST X1,X1,/BTC/QN,/UPB/QN
- RJ CDD CONVERT TO DECIMAL DISPLAY
- BX1 X4
- RJ SFN SPACE FILL NAME
- SA6 KFID
- SA2 KFIA INCREMENT LIST ADDRESS
- SX6 X2+2
- SA6 A2
- MOVEBIT KFID,X2,10*6,,17 SET *QN* IN LIST
- EQ KFI4 CHECK FOR NEXT FILE
- KFI6 SA1 AA
- ZR X1,KFI7 IF NO MORE FILES
- SA2 KFIA CHECK IF BUFFER FULL
- SX2 X2-KFIE-13*2
- NG X2,KFI1 IF BUFFER NOT FULL
- SA2 KFIA SET DUMMY FILE IDENTIFIERS
- MOVEBIT (=17H),X2,FIKL*6
- MOVEBIT (=17H MORE FILES),A2+B1,FIKL*6
- KFI7 SX6 2R SET IMAGE BETWEEN ENTRIES
- DISLIS KFIE,/KUSELS/FILE,KFIEL,FIKL*6,12,3
- SA1 KFIA SET LENGTH OF DISPLAY
- SX1 X1-KFIE+4
- SX6 6
- IX1 X1/X6
- SX6 6
- IX1 X1*X6
- SX6 X1+/KUSELS/FILE-/KUSELS/START+6
- SA6 KUSELS
- EQ KFIX GET *TFM* ERROR CODE
- KFIA BSS 1 LIST ADDRESS
- KFIC BSS 1 CATALOG RANDOM ADDRESS
- KFID BSS 1 SEQUENCE NUMBER
- KFIE BSS 24*2+6 FILE ID LIST BUFFER
- KFIEL EQU *-KFIE LIST BUFFER LENGTH
- KFM SPACE 4,10
- ** KFM - SET FAMILY LEVEL K-DISPLAY.
- *
- * EXIT FAMILY LEVEL K-DISPLAY SET.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * CALLS CDD, SFN.
- *
- * MACROS DISLIS, LJUST, MOVEBIT, RJUST.
- KFM SUBR ENTRY/EXIT
- SA1 TFMN GET FAMILY NAME
- LJUST X1,X1,42,59
- RJ SFN SPACE FILL NAME
- SA6 KFMA
- MOVEBIT KFMA,/KFAMLS/FAMNAME,42,,5 SET FAMILY NAME
- MOVEBIT KFMA,NPGC,42 SET NAME IN PAGE HEADER
- MOVEBIT KFMA,/MLS/FAMILY,/MLSC/FAMILY*6,,/MLSU/FAMILY
- SA1 TLFM GET LINKED FAMILY NAME
- LJUST X1,X1,42,59
- RJ SFN SPACE FILL NAME
- SA6 KFMA
- MOVEBIT KFMA,/KFAMLS/LINKFAM,42,,5 SET FAMILY NAME
- MOVEBIT TIDM,/KFAMLS/MID,2*6,,5 SET MACHINE ID
- SA1 TSTT SET ERROR STATUS
- RJUST X1,X6,1,2
- SA1 =6HSET
- NZ X6,KFM1 IF ERROR STATUS SET
- SA1 =6HCLEAR
- KFM1 MOVEBIT A1,/KFAMLS/CATERR,6*6,,5
- SA1 TSTT SET FOREIGN STATUS
- RJUST X1,X6,1,13
- SA1 =3HYES
- NZ X6,KFM2 IF FOREIGN STATUS ON
- SA1 =3HNO
- KFM2 MOVEBIT A1,/KFAMLS/FOREIGN,3*6,,5
- SA1 TSTT SET GLOBAL STATUS
- RJUST X1,X6,1,12
- SA1 =3HYES
- NZ X6,KFM3 IF GLOBAL STATUS ON
- SA1 =3HNO
- KFM3 MOVEBIT A1,/KFAMLS/GLOBAL,3*6,,5
- SA1 TCMB SET MESSAGE BUFFER
- RJ SFN SPACE FILL NAME
- SA6 KFMB
- SA1 TCMB+1 GET SECOND WORD
- RJ SFN SPACE FILL NAME
- SA6 KFMB+1
- SA1 TCMB+2 GET THIRD WORD
- RJ SFN SPACE FILL NAME
- SA6 KFMB+2
- SA1 TCMB+3 GET FOURTH WORD
- RJ SFN SPACE FILL NAME
- SA6 KFMB+3
- MOVEBIT KFMB,/KFAMLS/MB,240,,53 MOVE TO K-DISPLAY
- SA1 TTCS GET CATALOG SIZE
- RJUST X1,X1,24,35
- SA2 =100000000
- IX1 X2+X1
- RJ CDD CONVERT TO DECIMAL DISPLAY
- LJUST X6,X1,48,47 SET CATALOG SIZE IN K-DISPLAY
- MOVEBIT A1,/KFAMLS/SIZE+1,8*6,,23
- SA1 TSMC GET *MT/NT* SCRATCH COUNT
- RJUST X1,X1,24,23
- SA2 =100000000
- IX1 X1+X2
- RJ CDD CONVERT TO DECIMAL DISPLAY
- LJUST X6,X1,48,47 SET *MT/NT* SCRATCH COUNT IN K-DISPLAY
- MOVEBIT A1,/KFAMLS/SCM+2,8*6
- SA1 TSCC GET *CT* SCRATCH COUNT
- RJUST X1,X1,24,23
- SA2 =100000000
- IX1 X1+X2
- RJ CDD CONVERT TO DECIMAL DISPLAY
- LJUST X6,X1,48,47 SET *CT* SCRATCH COUNT IN K-DISPLAY
- MOVEBIT A1,/KFAMLS/SCC+2,8*6
- SA1 TSAC GET *AT* SCRATCH COUNT
- RJUST X1,X1,24,23
- SA2 =100000000
- IX1 X1+X2
- RJ CDD CONVERT TO DECIMAL DISPLAY
- LJUST X6,X1,48,47 SET *AT* SCRATCH COUNT IN K-DISPLAY
- MOVEBIT A1,/KFAMLS/SCA+2,8*6
- SX6 1R DISPLAY LIST OF VALIDATED USER NAMES
- DISLIS TVUN,/KFAMLS/VALIDAT,UNCL,42,,4
- SX6 1R DISPLAY LIST PERMITTED ALTERNATE FAMILIES
- DISLIS TAFM,/KFAMLS/ALTFAM,PAFL,42,,4
- EQ KFMX RETURN
- KFMA BSS 1 SPACE FILLED FAMILY NAME
- KFMB BSS MBML SPACE FILLED MESSAGE BUFFER
- KIP SPACE 4,10
- ** KIP - KEYBOARD INPUT PROCESSOR.
- *
- * ENTRY (KCW) = K-DISPLAY CONTROL WORD.
- *
- * EXIT DATA IN *KBUF*.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * MACROS CONSOLE, MOVE, RECALL.
- *
- * NOTES BASED ON SUBROUTINE *KIP* IN *SFS*.
- KIP SUBR ENTRY/EXIT
- SX6 B0 CLEAR K-DISPLAY INPUT BUFFER
- SA6 KBUF
- MOVE 3,KIPA,/KMESS/STATUS MOVE MESSAGE TO K-DISPLAY
- CONSOLE KCW
- KIP1 SA1 KBUF CHECK K-DISPLAY INPUT
- NZ X1,KIP2 IF INPUT PRESENT
- RECALL
- EQ KIP1
- KIP2 MOVE 3,KIPB,/KMESS/STATUS MOVE MESSAGE TO K-DISPLAY
- EQ KIPX RETURN
- KIPA DATA 28L WAITING FOR INPUT.
- KIPB DATA 28L PROCESSING DIRECTIVES.
- KST SPACE 4,10
- ** KST - SET VSN STATUS IN K-DISPLAY.
- *
- * ENTRY (VCAT) = VSN CATALOG.
- *
- * EXIT VSN STATUS SET INTO K-DISPLAY.
- *
- * USES A - 1.
- * X - 1.
- *
- * MACROS RJUST.
- KST3 MOVEBIT A1,/KDIS/STATUS,10*6,59,5
- KST SUBR ENTRY/EXIT
- SA1 /ADD/ERRFLAG CHECK ERROR FLAG
- RJUST X1,X1,/BTC/ERRFLAG,/UPB/ERRFLAG
- ZR X1,KST1 IF ERROR FLAG NOT SET
- SA1 =10HERROR
- EQ KST3 SET VSN STATUS IN K-DISPLAY
- KST1 SA1 /ADD/MAINT CHECK MAINTENANCE FLAG
- RJUST X1,X1,/BTC/MAINT,/UPB/MAINT
- ZR X1,KST2 IF MAINTENANCE FLAG NOT SET
- SA1 =10HHOLD
- EQ KST3 SET VSN STATUS IN K-DISPLAY
- KST2 SA1 =10HAVAILABLE
- EQ KST3 SET VSN STATUS IN K-DISPLAY
- KVQ SPACE 4,15
- ** KVQ - SET FIRST VSN AND SEQUENCE NUMBER IN K-DISPLAY.
- *
- * ENTRY (FV) = FIRST VSN.
- * (QN) = SEQUENCE NUMBER.
- *
- * EXIT FIRST VSN AND SEQUENCE SET INTO K-DISPLAY.
- *
- * USES A - 1, 6.
- * X - 0, 1, 6.
- *
- * CALLS CDD, SFN.
- KVQ SUBR ENTRY/EXIT
- SA1 FV GET FIRST VSN
- RJ SFN SPACE FILL NAME
- MX0 36 SET SPACE FILLED FIRST VSN
- BX6 X0*X6
- SA6 /KFILLS1/FVSN
- SA6 /KFILLS2/FVSN
- SA6 /KFILLS3/FVSN
- SA1 QN GET SEQUENCE NUMBER
- SX1 X1+10000
- RJ CDD CONVERT TO DECIMAL DISPLAY
- MX0 -24
- BX6 -X0*X6 SET DISPLAY VALUE
- LX6 36
- SA6 /KFILLS1/QN
- SA6 /KFILLS2/QN
- SA6 /KFILLS3/QN
- EQ KVQX RETURN
- MSV SPACE 4,10
- ** MSV - MOVE SYSTEM TABLE VALUES TO/FROM WORKING BUFFER.
- *
- * ENTRY (X3) = ADDRESS FROM WHICH TO MOVE VALUES.
- * (X4) = ADDRESS TO WHICH TO MOVE VALUES.
- *
- * EXIT TABLE VALUES MOVED.
- *
- * MACROS MOVEBIT.
- MSV SUBR ENTRY/EXIT
- MOVEBIT X3+TMFM,X4+TMFM,7*6 MOVE FAMILY NAME
- MOVEBIT X3+TMFM,X4+TMFM,18,17,17 STATUS FLAGS
- MOVEBIT X3+TMID,X4+TMID,2*6 MACHINE ID
- MOVEBIT X3+TMMB,X4+TMMB,MBML*60 MESSAGE BUFFER
- MOVEBIT X3+TMUN,X4+TMUN,UNCL*60 VALID USERNAME
- MOVEBIT X3+TMLF,X4+TMLF,7*6 LINKED FAMILY NAME
- MOVEBIT X3+TMPA,X4+TMPA,PAFL*60 PERMITTED FAMILIES
- EQ MSVX RETURN
- PFC SPACE 4,15
- ** PFC - PACK DIRECT CELLS INTO FILE CATALOG.
- *
- * ENTRY (CA) = CATALOG RANDOM ADDRESS.
- * (EV) = EXTERNAL VSN.
- * (QN) = SEQUENCE NUMBER.
- * (RC) = REEL COUNT.
- * (RF) = 0 IF FILE NOT RESERVED.
- * (VC) = VSN COUNT.
- *
- * EXIT VALUES SET INTO FILE CATALOG.
- *
- * USES A - 1, 3.
- * X - 0, 1, 3.
- *
- * MACROS MOVEBIT, SRCHTAB.
- PFC SUBR ENTRY/EXIT
- MOVEBIT CA,PCAT+/CAT/NCAT,/BTC/NCAT,/BTC/NCAT-1,/UPB/NCAT
- MOVEBIT QN,/ADD/QN,/BTC/QN,/BTC/QN-1,/UPB/QN
- MOVEBIT RC,/ADD/REELC,/BTC/REELC,/BTC/REELC-1,/UPB/REELC
- MOVEBIT EV,/ADD/EVSN,/BTC/EVSN,,/UPB/EVSN
- MX0 VSKL*6 FIND INTERNAL VSN
- SA3 VC
- LX3 2
- SRCHTAB TAVS,EV,VSKL*6,4
- MOVEBIT A1+/CAT/PRN,/ADD/IVSN,/BTC/IVSN,,/UPB/IVSN
- EQ PFCX RETURN
- PMF SPACE 4,15
- ** PMF - PROCESS MACHINE READABLE LIST FOR FILE.
- *
- * ENTRY (FCAT) = FILE CATALOG IMAGE.
- * (TAVS) = ASSIGNED VSNS IMAGE.
- *
- * EXIT FILE INFORMATION WRITTEN TO MACHINE READABLE FILE.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * CALLS FEV, VSM.
- *
- * MACROS MOVE, RJUST.
- PMF SUBR ENTRY/EXIT
- SX6 B0 CLEAR VSN COUNT
- SA6 PMFA
- RJ FEV FIND EXTERNAL VSN
- SX6 A1 SAVE RELATIVE ADDRESS IN *TAVS*
- SA6 PMFB
- PMF1 SA2 PMFA CHECK VSN COUNT
- SA1 /ADD/REELC
- RJUST X1,X1,/BTC/REELC,/UPB/REELC
- IX1 X2-X1
- PL X1,PMFX IF END OF VSNS
- SX6 X2+B1 RESET VSN COUNT
- SA6 A2
- LX2 2 SET VSN ENTRY
- SA1 PMFB
- IX2 X1+X2
- MOVE TSVL,X2,VCAT
- RJ VSM PROCESS VSN MACHINE READABLE LIST
- EQ PMF1 CHECK NEXT VSN
- PMFA BSS 1 VSN COUNT
- PMFB BSS 1 RELATIVE ADDRESS IN *TAVS*
- PSF SPACE 4,10
- ** PSF - PROCESS SOURCE LISTING FOR FILE.
- *
- * ENTRY (FCAT) = FILE CATALOG IMAGE.
- * (TAVS) = ASSIGNED VSNS IMAGE.
- * (X6) = 0 IF INCLUDE EXTERNAL VSN.
- * = 1 IF EXCLUDE EXTERNAL VSN.
- *
- * EXIT FILE LEVEL DIRECTIVES WRITTEN TO SOURCE FILE.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * CALLS FEV, FIS, VSS.
- *
- * MACROS MOVE, RJUST, WRITEC.
- PSF SUBR ENTRY/EXIT
- SA6 PSFA SET INITIAL VSN COUNT
- RJ FEV FIND EXTERNAL VSN
- SX6 A1 SAVE RELATIVE ADDRESS IN *TAVS*
- SA6 PSFB
- PSF1 SA2 PSFA CHECK VSN COUNT
- SA1 /ADD/REELC
- RJUST X1,X1,/BTC/REELC,/UPB/REELC
- IX1 X2-X1
- PL X1,PSF2 IF END OF VSNS
- SX6 X2+B1 RESET VSN COUNT
- SA6 A2
- LX2 2 SET VSN ENTRY
- SA1 PSFB
- IX2 X1+X2
- MOVE TSVL,X2,VCAT
- RJ VSS PROCESS VSN SOURCE LISTING
- EQ PSF1 CHECK FOR NEXT VSN
- PSF2 SA1 UN SET USER NAME IN SOURCE LISTING
- BX6 X1
- SA6 PSFD
- WRITEC S,PSFC WRITE *USER* DIRECTIVE
- RJ FIS PROCESS FILE SOURCE LISTING
- WRITEC S,(=C*DROP*) WRITE LAST DIRECTIVE
- EQ PSFX RETURN
- PSFA BSS 1 VSN COUNT
- PSFB BSS 1 RELATIVE ADDRESS IN *TAVS*
- PSFC DATA 10HUSER = INITIAL DIRECTIVE
- PSFD DATA C* *
- PVS SPACE 4,15
- ** PVS - PAD VSN WITH CHARACTER *0*.
- *
- * ENTRY (X4) = NUMBER OF CHARACTERS IN UNPADDED VSN.
- * (CBUF) = LEFT JUSTIFIED UNPADDED VSN.
- *
- * EXIT (X6) = PADDED VSN. CHARACTER *0* INSERTED BEFORE
- * FIRST NUMERIC CHARACTER UNTIL VSN IS SIX
- * CHARACTERS LONG.
- *
- * USES A - 1, 2.
- * B - 2, 3.
- * X - 0, 1, 2, 3, 4, 7.
- PVS SUBR ENTRY/EXIT
- SX1 6 GET CORRECT NUMBER OF ZEROS
- IX4 X1*X4
- SB2 X4
- SA1 =36R000000
- AX1 B2
- SA2 CBUF GET UNPADDED VSN
- SB3 60
- MX0 -6
- SX6 B0
- PVS1 BX7 X2 SAVE END OF VSN
- LX2 6 CHECK CHARACTER
- BX3 -X0*X2
- ZR X3,PVS2 IF END OF CHARACTERS
- SX4 X3-1R0
- PL X4,PVS2 IF NUMERIC CHARACTER
- LX6 6 BUILD FIRST PART OF VSN
- BX6 X6+X3
- BX2 X0*X2
- SB3 B3-6
- EQ PVS1 CHECK NEXT CHARACTER
- PVS2 SB2 B2-36 ADD ZEROES TO VSN
- AX6 B2
- BX6 X6+X1
- BX6 X6+X7 ADD END OF VSN
- SB3 B3+B2
- LX6 B3
- EQ PVSX RETURN
- RAB SPACE 4,15
- ** RAB - REPLACE ALTERNATE USER ENTRY IN BUFFER.
- *
- * ENTRY (ACAT) = ALTERNATE USER ENTRY IMAGE.
- *
- * EXIT IMAGE SET INTO *UBUF*.
- *
- * USES X - 3.
- *
- * CALLS CAB, RAE.
- *
- * MACROS MOVE, WRITFET.
- RAB2 SX3 A1 REPLACE ALTERNATE USER ENTRY IN BUFFER
- MOVE TAEL,ACAT,X3
- RAB SUBR ENTRY/EXIT
- RJ CAB CHECK FOR ALTERNATE USER ENTRY IN BUFFER
- ZR X4,RAB2 IF ALTERNATE USER ENTRY IN BUFFER
- WRITFET UB,ACAT,TAEL SET ENTRY INTO BUFFER
- ZR X1,RABX IF TRANSFER COMPLETE
- RJ RAE REPLACE ALTERNATE USER ENTRIES
- WRITFET UB,ACAT,TAEL SET ENTRY INTO BUFFER
- EQ RABX RETURN
- RAE SPACE 4,10
- ** RAE - REPLACE ALTERNATE USER ENTRY IN CATALOG FILE.
- *
- * ENTRY (UBUF) = ALTERNATE USER ENTRIES.
- *
- * EXIT ALTERNATE USER ENTRIES REPLACED IN CATALOG.
- *
- * USES A - 1, 2.
- * X - 1, 2.
- *
- * MACROS CALLTFM, RESETP, WRITFET.
- RAE SUBR ENTRY/EXIT
- RESETP N4 RESET FET POINTERS
- SA1 UB+1 GET WORD COUNT OF BUFFER
- SX1 X1
- SA2 A1+B1
- IX1 X2-X1
- ZR X1,RAEX IF NO ENTRIES IN BUFFER
- SA2 CA SET CATALOG RANDOM ADDRESS
- BX6 X2
- SA6 N4+TFRR
- WRITFET N4,UBUF,X1 REPLACE/ADD ADMIT ENTRIES
- CALLTFM X2,RAES
- RESETP UB
- EQ RAEX RETURN
- RAF SPACE 4,15
- ** RAF - RESERVE/AMEND FILE CATALOG ENTRY.
- *
- * ENTRY DIRECT CELLS SET.
- * (FCAT) = FILE CATALOG BUFFER.
- * (PCAT) = PREVIOUS FILE BUFFER.
- * (TAVS) = ASSIGNED VSNS.
- *
- * EXIT FILE CATALOG ENTRY REPLACED IN CATALOG.
- *
- * USES A - 1, 2, 3, 5, 6, 7.
- * X - 0, 1, 2, 3, 4, 5, 6, 7.
- *
- * CALL CRD, PFC, SMA.
- *
- * MACROS CALLTFM, REPVSN, RESETP, RJUST, WRITFET.
- RAF9 SA1 VC REPLACE VSN ENTRIES
- LX1 2
- REPVSN TAVS,X1
- RJ SMA ISSUE *SDAU* ACCOUNT FILE MESSAGE
- SA1 RF
- NZ X1,RAF10 IF PREVIOUSLY RESERVED
- SA1 PA
- ZR X1,RAF10 IF NO PREVIOUS FILE
- RJ PFC PACK DIRECT CELLS INTO FILE CATALOG
- RESETP N3 SET UP FET
- SA1 PA SET PREVIOUS FILE RANDOM ADDRESS
- BX6 X1
- SA6 X2+TFRR
- WRITFET X2,PCAT,TCEL SET PREVIOUS FILE INTO FET BUFFER
- CALLTFM X2,RCES REPLACE PREVIOUS FILE
- RAF10 RJ CRD CHECK RELEASE DATE
- RAF SUBR ENTRY/EXIT
- RJ PFC PACK DIRECT CELLS INTO FILE CATALOG
- SA1 /ADD/TTYP CHECK TAPE DEVICE TYPE
- RJUST X1,X6,/BTC/TTYP,/UPB/TTYP
- ZR X6,RAF1 IF SEVEN TRACK
- SA1 /ADD/CV
- RJUST X1,X6,/BTC/CV,/UPB/CV
- SX6 X6-2
- PL X6,RAF2 IF CONVERSION MODE EQUAL AS OR EB
- SX6 B1
- RAF1 SX6 X6+B1
- SA6 RAFA
- MOVEBIT A6,/ADD/CV,/BTC/CV,/BTC/CV-1,/UPB/CV
- RAF2 SA1 /ADD/LB CHECK LABEL TYPE
- RJUST X1,X6,/BTC/LB,/UPB/LB
- ZR X6,RAF3 IF UNLABELED
- SA2 /ADD/PI
- NZ X2,RAF4 IF PHYSICAL FILE ID EXISTS
- MOVEBIT /ADD/FI,A2,FIKL*6 SET PHYSICAL FILE ID
- EQ RAF4 SET UP FET
- RAF3 SA6 /ADD/PI CLEAR PHYSICAL FILE ID
- MOVEBIT (=0),A6+B1,FIKL*6-10*6
- RAF4 RESETP N3 SET UP FET
- SA1 CA SET FILE CATALOG RANDOM ADDRESS
- BX6 X1
- SA6 X2+TFRR
- SA1 UN SET USER NAME
- BX6 X1
- SA6 X2+TFUN
- WRITFET X2,FCAT,TCEL SET FILE CATALOG INTO FET BUFFER
- SA1 RF CHECK IF FILE IS RESERVED
- SX6 ICES
- ZR X1,RAF5 IF FILE NOT RESERVED
- SX6 RCES
- RAF5 CALLTFM X2,X6 RESERVE/AMEND FILE CATALOG
- SA2 CA
- NZ X2,RAF6 IF FILE PREVIOUSLY RESERVED
- SA1 N3+TFRR SET FILE CATALOG RANDOM ADDRESS
- RJUST X1,X2,24,59
- BX6 X2
- SA6 A2
- RAF6 SA1 TAVS+/CAT/VASF CHECK FIRST FILE RANDOM ADDRESS
- RJUST X1,X1,24,23
- ZR X1,RAF7 IF NO FIRST FILE
- BX2 X1 SET RANDOM ADDRESS FOR VSN ENTRIES
- RAF7 SA3 ST GET VSN STATUS BITS
- SX6 UOVS+TVVS
- BX3 X6*X3
- SX6 B1
- LX6 17-0
- ERRNZ 400000B-RTVS INCORRECT BIT POSITION
- BX3 X6+X3
- SA1 FV GET FIRST VSN
- BX7 X1
- SX4 B0 PRESET VSN NUMBER
- MX0 VSKL*6 GET VSN MASK
- SA1 TAVS GET FIRST ENTRY IN TABLE
- RAF8 ZR X1,RAF9 IF END OF VSNS
- BX6 X0*X1 SET RANDOM INDEX
- BX6 X6+X2
- SA6 A1
- SA1 A1+B1 SET STATUS BITS
- SX6 ASVS+UOVS+TVVS+VIVS
- BX6 -X6*X1
- BX6 X6+X3
- SX4 X4+B1 SET REEL NUMBER
- LX4 18
- BX6 X6+X4
- AX4 18
- SA6 A1
- SA7 A1+B1 SET FIRST VSN
- SA1 A1+3 SET NEXT VSN
- BX6 X0*X1
- SA5 A7+B1
- BX5 -X0*X5
- BX6 X6+X5
- SA6 A7+B1
- EQ RAF8 CHECK NEXT VSN
- RAFA BSS 1 CONVERSION MODE
- RNS SPACE 4,10
- ** RNS - RESET NEEDED STORAGE.
- *
- * ENTRY NONE.
- *
- * EXIT CATALOG BUFFERS, SPECIAL WORKING STORAGE, AND TABLE
- * OF ASSIGNED VSNS RESTORED FROM HOLD BUFFER *HBUF*.
- *
- * USES A - 1, 2, 6.
- * B - 2, 3.
- * X - 1, 2, 6.
- RNS SUBR ENTRY/EXIT
- SA1 HBUF-1 FWA OF HOLD BUFFER-1
- SA2 THBP-1 FWA OF TABLE OF MEMORY PARTITIONS-1
- RNS1 SA2 A2+B1 MEMORY PARTITION TO RESET FROM TABLE
- ZR X2,RNSX IF RESET COMPLETE
- SB2 X2
- SA2 A2+B1 GET WORD COUNT FROM TABLE
- SB3 X2
- RNS2 SA1 A1+B1 HOLD BUFFER WORD TO MOVE
- BX6 X1
- SA6 B2 WORD RESET IN MEMORY
- SB2 B2+B1 INCREMENT MEMORY ADDRESS TO RESET
- SB3 B3-B1 DECREMENT WORD COUNT
- NZ B3,RNS2 IF MORE WORDS TO MOVE
- EQ RNS1 CONTINUE
- RCW SPACE 4,10
- ** RCW - READ CMR WORD.
- *
- * ENTRY (X2) = ADDRESS OF CMR WORD TO READ.
- *
- * EXIT (X1) = CMR WORD.
- *
- * USES A - 1.
- * X - 1, 2, 6.
- *
- * MACROS SYSTEM.
- RCW SUBR ENTRY/EXIT
- MX6 1 SET ABSOLUTE READ
- SA6 RCWB
- LX2 18 SET READ ADDRESS
- SX1 A6 SET BUFFER ADDRESS
- LX6 36-59 SET WORD COUNT
- BX6 X6+X2
- BX6 X6+X1
- SA6 RCWA WRITE STATUS WORD
- SYSTEM RSB,R,RCWA READ CMR WORD
- SA1 RCWB
- EQ RCWX RETURN
- RCWA CON 0 *RSB* STATUS WORD
- RCWB CON 0 *RSB* BUFFER
- RVB SPACE 4,15
- ** RVB - REPLACE VSN ENTRY IN BUFFER.
- *
- * ENTRY (VCAT) = VSN ENTRY IMAGE.
- *
- * EXIT IMAGE SET INTO *VBUF*.
- *
- * USES X - 3.
- *
- * CALLS CVB, RVE.
- *
- * MACROS MOVE, WRITFET.
- RVB2 SX3 A1 REPLACE VSN ENTRY IN BUFFER
- MOVE TSVL,VCAT,X3
- RVB SUBR ENTRY/EXIT
- RJ CVB CHECK FOR VSN ENTRY IN BUFFER
- ZR X4,RVB2 IF VSN ENTRY IN BUFFER
- WRITFET VB,VCAT,4 SET ENTRY INTO BUFFER
- ZR X1,RVBX IF TRANSFER COMPLETE
- RJ RVE REPLACE VSN ENTRIES
- WRITFET VB,VCAT,4 SET ENTRY INTO BUFFER
- EQ RVBX RETURN
- RVE SPACE 4,10
- ** RVE - REPLACE VSN ENTRY IN CATALOG FILE.
- *
- * ENTRY (VBUF) = VSN ENTRIES.
- *
- * EXIT VSN ENTRIES REPLACED IN CATALOG.
- *
- * USES A - 1, 2.
- * X - 1, 2.
- *
- * MACROS REPVSN, RESETP.
- RVE SUBR ENTRY/EXIT
- SA1 VB+1 GET WORD COUNT OF BUFFER
- SX1 X1
- SA2 A1+B1
- IX1 X2-X1
- ZR X1,RVEX IF NO ENTRIES IN BUFFER
- REPVSN VBUF,X1 REPLACE/ADD VSN ENTRIES
- RESETP VB
- EQ RVEX RETURN
- SCI SPACE 4,25
- ** SCI - SCAN FOR CODE IDENTIFIER.
- *
- * ENTRY (SP) = ADDRESS OF LAST CHARACTER PROCESSED.
- * (SM) = STRING BUFFER LIMIT.
- * (X6) = TABLE ADDRESS OF TABLE INFORMATION.
- * (NL) = CURRENT PROCESSING LEVEL.
- *
- * EXIT (X1) = 0 IF ERROR.
- * (B6) = 0 IF END OF FILE.
- * (B7) = CONTROL BLOCK OR PROCESSOR ADDRESS.
- * (AP) = 1 IF DIRECTIVE FOUND AT A HIGHER LEVEL.
- * (NL) = LEVEL ON WHICH DIRECTIVE WAS FOUND.
- * (DF) = DIRECTIVE IMAGE.
- * (DF+1) = PROCESSOR/CONTROL TABLE ADDRESS.
- * (DF+2) = DIRECTIVE SEPARATOR.
- * (EL) = 0 IF END OF LINE.
- * (ET) = -1 IF EOF.
- *
- * USES A - 1, 2, 6, 7.
- * B - 4.
- * X - 0, 2, 4, 6, 7.
- *
- * CALLS ASC.
- *
- * MACROS LJUST, SRCHTAB.
- *
- * NOTES BASED ON SUBROUTINE *SCI* IN *SFS*.
- SCI5 SX1 B0 FLAG ERROR
- SCI SUBR ENTRY/EXIT
- SA6 SCIA SAVE DIRECTIVE TABLE ADDRESS
- SCI1 SA2 ="BL" SET CHARACTERS TO SUPPRESS
- BX6 X2
- SA1 ="NC" SET CHARACTERS TO ALLOW
- RJ ASC ASSEMBLE CHARACTERS
- SX7 B5 GET SEPARATOR
- SA7 DF+2
- SA6 DF SAVE DIRECTIVE IMAGE
- SB4 B5-1R= SET SEPARATOR
- SX1 B1 FLAG NO ERROR
- ZR B6,SCIX IF EOF
- SX2 X4-8
- PL X2,SCI5 IF TOO MANY CHARACTERS
- ZR X4,SCI1 IF NO CHARACTERS
- SX1 6 SET (X0) = CHARACTER MASK
- IX4 X4*X1
- LJUST X1,X1,X4,59
- MX4 18 FORCE AT LEAST THREE CHARACTERS IN MASK
- BX0 X0+X4
- SA1 SCIA GET DIRECTIVE TABLE ADDRESS
- BX2 X6 SET DIRECTIVE TO SEARCH FOR
- SCI2 SRCHTAB X1,A2,-1 SEARCH FOR DIRECTIVE
- ZR X4,SCI3 IF DIRECTIVE FOUND
- SA1 NL CHECK NEXT LEVEL
- SX6 X1-1
- NG X6,SCI5 IF INCORRECT DIRECTIVE
- SA6 NL STORE LEVEL BEING PROCESSED
- SX7 B1
- SA7 AP SET ALTERNATE PROCESSING FLAG
- SA1 TDTA+X6 GET FWA OF DIRECTIVE TABLE
- EQ SCI2 PROCESS NEXT LEVEL
- SCI3 BX6 X1 SAVE DIRECTIVE TABLE IMAGE
- SA6 SCIC
- BX6 X1-X2
- AX6 18
- ZR X6,SCI4 IF EXACT MATCH
- SRCHTAB A1+B3,A2,B2,B3,B4 CHECK FOR DIRECTIVE CONFLICT
- ZR X4,SCI5 IF DIRECTIVE CONFLICT
- SCI4 MX0 42 SAVE DIRECTIVE IMAGE
- SA1 SCIC
- BX6 X0*X1
- SA6 DF
- BX6 -X0*X1 SAVE PROCESSOR/CONTROL TABLE ADDRESS
- SA6 A6+B1
- SB7 X6
- SB6 B1 FLAG NOT END OF FILE
- EQ SCIX RETURN
- SCIA BSS 1 ADDRESS OF DIRECTIVE TABLE
- SCIB BSS 1 ALLOWED CHARACTERS BIT STRING
- SCIC BSS 1 DIRECTIVE TABLE IMAGE
- SCS SPACE 4,15
- ** SCS - SPECIAL CHARACTER SOURCE ENTRY PROCESSOR.
- *
- * ENTRY (X1) = FIRST WORD OF DIRECTIVE TABLE.
- *
- * EXIT DIRECTIVE WRITTEN TO SOURCE FILE.
- * (SCSB) = IMAGE OF LINE WRITTEN TO SOURCE FILE.
- *
- * USES A - 1, 6.
- * B - 2, 3, 5.
- * X - 0, 1, 2, 3, 6.
- *
- * CALLS CXS.
- *
- * MACROS MOVEBIT, WRITEC.
- SCS SUBR ENTRY/EXIT
- RJ CXS CONVERT CATALOG ENTRY TO SOURCE
- SB2 B0 UNPACK DATA FIELD
- SB3 B0
- MX0 -6
- SCS1 SA1 B2+CBUF+1 GET WORD OF CHARACTERS
- SB5 9
- SCS2 LX1 6 GET CHARACTER
- BX6 -X0*X1
- SA6 B3+SCSC
- SB3 B3+B1
- SB5 B5-B1
- PL B5,SCS2 IF MORE CHARACTERS IN WORD
- SB2 B2+B1
- LE B2,B1,SCS1 IF MORE WORDS
- SX3 B1 FIND SPECIAL CHARACTERS IN STRING BUFFER
- LX3 1R -45B ASSUME SPACE
- SB2 19
- SCS3 NG B2,SCS4 IF ALL CHARACTERS CHECKED
- SA1 B2+SCSC
- SB2 B2-B1
- SB3 X1-45B
- NG B3,SCS3 IF NOT SPECIAL CHARACTER
- SX6 B1 FLAG SPECIAL CHARACTER
- LX6 B3
- BX3 X3+X6
- EQ SCS3 CHECK NEXT CHARACTER
- SCS4 SX6 100B FIND TWO CHARACTERS NOT IN STRING
- LX3 59-77B+45B-1
- SB2 B0
- SCS5 GT B2,B1,SCS7 IF TWO CHARACTERS FOUND
- SCS6 LX3 1 CHECK CHARACTER
- SX6 X6-1
- NG X3,SCS6 IF CHARACTER IN STRING
- SA6 B2+SCSA SAVE UNUSED CHARACTER
- SB2 B2+B1
- EQ SCS5 CHECK NUMBER OF CHARACTERS
- SCS7 SB5 B0 CHANGE COLON CHARACTERS IN STRING
- SA2 /SCS/FIELD
- SB2 /SCSU/FIELD
- SCS8 SX1 B5-20
- PL X1,SCS10 IF ALL CHARACTERS CHECKED
- SA1 B5+SCSC
- NZ X1,SCS9 IF NOT COLON
- SA1 SCSA+1 GET COLON CHARACTER
- SCS9 MOVEBIT A1,A2,6,5,B2
- SB5 B5+B1
- EQ SCS8 CHECK NEXT CHARACTER
- SCS10 MOVEBIT CBUF,/SCS/DIRECT,,,/SCSU/DIRECT SET DIRECTIVE
- MOVEBIT SCSA+1,/SCS/COLON,6,5,/SCSU/COLON SET COLON
- MOVEBIT SCSA+0,/SCS/SEP1,6,5,/SCSU/SEP1 SET SEPARATOR
- MOVEBIT SCSA+0,/SCS/SEP2,6,5,/SCSU/SEP2
- MOVEBIT SCSA+0,/SCS/SEP3,6,5,/SCSU/SEP3
- WRITEC S,SCSB WRITE SOURCE ENTRY
- EQ SCSX RETURN
- SCSA BSS 1 SEPARATOR CHARACTER
- BSS 1 COLON CHARACTER
- SCSB BSS 0 SOURCE FILE ENTRY
- LISTER SCS,6,COLON=
- COLON LISTER ,1
- LISTER ,9,(,SEPARAT=)
- SEP1 LISTER ,1
- LISTER ,1,(,)
- DIRECT LISTER ,10,( =)
- FIELD LISTER ,20
- SEP2 LISTER ,1
- LISTER ,8,(SEPARAT=)
- SEP3 LISTER ,1
- LISTER ,6,COLON=,E,CAPL
- SCSC BSS 20 UNPACKED DATA FIELD
- SMA SPACE 4,15
- ** SMA - ISSUE *SDAU* ACCOUNT FILE MESSAGE.
- *
- * ENTRY (AV) = NEW ASSIGNED VSN TABLE ADDRESS.
- * = 0 IF NO NEW VSNS.
- * TABLE TERMINATED BY A ZERO WORD.
- *
- * EXIT MESSAGE ISSUED TO ACCOUNT FILE.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * CALLS COD, SFN.
- *
- * MACROS MOVEBIT, MESSAGE.
- SMA SUBR ENTRY/EXIT
- SA1 LF
- NZ X1,SMAX IF LOCAL FILE MODE
- SA1 AV
- ZR X1,SMAX IF NO NEW VSNS
- SX6 X1 SAVE TABLE ADDRESS
- SA6 SMAA
- SA1 FM GET FAMILY NAME
- RJ SFN SPACE FILL NAME
- SA6 SMAB SET FAMILY NAME
- MOVEBIT SMAB,/SMA/FAMILY,42,,/SMAU/FAMILY
- SA1 UN GET USER NAME
- RJ SFN SPACE FILL NAME
- SA6 SMAB SET USER NAME
- MOVEBIT SMAB,/SMA/USER,UNKL*6,,/SMAU/USER
- SA1 SMAA SET FIRST VSN
- MOVEBIT X1+/CAT/FVSN,/SMA/FVSN,VSKL*6,/UPB/FVSN,/SMAU/FVSN
- SA1 QN GET SEQUENCE NUMBER
- SX6 100000B
- IX1 X6+X1
- RJ COD CONVERT TO OCTAL DISPLAY
- SA6 SMAD SET SEQUENCE NUMBER IN MESSAGE
- MOVEBIT A6,/SMA/SEQNO,5*6,29,/SMAU/SEQNO
- SMA1 SA1 SMAA INCREMENT TABLE ADDRESS
- SX6 X1+4
- SA6 A1
- SA1 X1+/CAT/VSN
- ZR X1,SMAX IF END OF TABLE
- MOVEBIT A1,/SMA/VSN,VSKL*6,/UPB/VSN,/SMAU/VSN SET VSN
- IFNE TMSG,0,1
- MESSAGE SMAC,TMSG/1S12,R ISSUE DAYFILE MESSAGE
- EQ SMA1 CHECK NEXT VSN
- SMAA BSS 1 NEW ASSIGNED VSN TABLE ADDRESS
- SMAB BSS 1 SPACE FILLED NAME
- SMAC BSS 0 ACCOUNT FILE MESSAGE
- LISTER SMA,6,(SDAU, )
- FAMILY LISTER ,7 FAMILY NAME
- LISTER ,1,(/)
- USER LISTER ,7 USER NAME
- LISTER ,1,(/)
- SEQNO LISTER ,5 SEQUENCE NUMBER
- LISTER ,1,(/)
- FVSN LISTER ,6 FIRST VSN
- LISTER ,2,(, )
- VSN LISTER ,6 VSN
- LISTER ,1,(.),E
- SMAD BSS 1 SEQUENCE NUMBER
- SMB SPACE 4,15
- ** SMB - ISSUE *SDCR* CONDITIONAL RELEASE ACCOUNT FILE MESSAGE.
- *
- * ENTRY (X1) = USER NAME OF FILE RELEASED.
- * (X2) = FIRST VSN OF FILE RELEASED.
- * (X3) = UNCONDITIONAL RELEASE DATE.
- *
- * EXIT MESSAGE ISSUED TO ACCOUNT FILE.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * CALLS SFN.
- *
- * MACROS EDATE, MESSAGE, MOVEBIT.
- SMB SUBR ENTRY/EXIT
- BX6 X1 SAVE USERNAME
- SA6 SMBA
- BX6 X2 SAVE VSN
- SA6 SMBB
- BX6 X3 SAVE RELEASE DATE
- SA6 SMBC
- SA1 LF
- NZ X1,SMBX IF LOCAL FILE MODE
- SA1 FM SET FAMILY
- RJ SFN SPACE FILL NAME
- SA6 SMBD
- MOVEBIT SMBD,/SMB/FAMILY,42,,/SMBU/FAMILY
- SA1 SMBA SET USERNAME
- RJ SFN SPACE FILL NAME
- SA6 SMBD
- MOVEBIT SMBD,/SMB/USER,42,,/SMBU/USER
- MOVEBIT SMBB,/SMB/FVSN,36,,/SMBU/FVSN
- SA1 SMBC SET RELEASE DATE
- NZ X1,SMB1 IF RELEASE DATE SET
- SA1 =10H.
- BX6 X1
- EQ SMB2 ISSUE MESSAGE
- SMB1 EDATE X1
- SMB2 MX0 18 REMOVE SLASHES FROM DATE
- BX1 X0*X6
- LX6 6
- BX6 -X0*X6
- BX1 X1+X6
- MX0 30
- BX1 X0*X1
- LX6 6
- BX6 -X0*X6
- BX1 X1+X6
- RJ SFN SPACE FILL NAME
- SA6 SMBD
- MOVEBIT SMBD,/SMB/URDATE,60,,/SMBU/URDATE
- IFNE TMSG,0,1
- MESSAGE SMBE,TMSG/1S12,R ISSUE DAYFILE MESSAGE
- EQ SMBX RETURN
- SMBA BSS 1 USERNAME
- SMBB BSS 1 FIRST VSN
- SMBC BSS 1 PACKED RELEASE DATE
- SMBD BSS 1 SPACED FILLED NAME
- SMBE BSS 0 ACCOUNT FILE MESSAGE
- LISTER SMB,6,(SDCR, )
- FAMILY LISTER ,7
- LISTER ,1,(/)
- USER LISTER ,7
- LISTER ,1,(/)
- LISTER ,5,(00001)
- LISTER ,1,(/)
- FVSN LISTER ,6
- LISTER ,2,(, )
- URDATE LISTER ,10,,E
- SMC SPACE 4,15
- ** SMC - ISSUE *SDAD* OR *SDRV* ACCOUNT FILE MESSAGE.
- *
- * ENTRY (B2) = 0 IF *SDAD*.
- * .NE. 0 IF *SDRV*.
- * (VCAT) = REVISED/ADDED VSN ENTRY.
- *
- * EXIT MESSAGE ISSUED TO ACCOUNT FILE.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * CALLS COD, SFN.
- *
- * MACROS MESSAGE, MOVEBIT, RJUST.
- SMC SUBR ENTRY/EXIT
- SA1 LF
- NZ X1,SMCX IF LOCAL FILE MODE
- SA1 =4HSDAD SET MESSAGE TYPE
- ZR B2,SMC1 IF *SDAD*
- SA1 =4HSDRV
- SMC1 MOVEBIT A1,/SMC/TYPE,/SMCC/TYPE*6,,/SMCU/TYPE
- SA1 FM GET FAMILY NAME
- RJ SFN SPACE FILE NAME
- SA6 SMCA SET FAMILY NAME
- MOVEBIT SMCA,/SMC/FAMILY,42,,/SMCU/FAMILY
- MOVEBIT /ADD/VSN,/SMC/VSN,VSKL*6,,/SMCU/VSN SET VSN
- MOVEBIT /ADD/PRN,/SMC/PRN,VSKL*6,,/SMCU/PRN SET PRN
- SA1 VCAT+1 GET STATUS BITS
- RJUST X1,X1,18,17
- SX6 B1
- LX6 18-0
- BX1 X6+X1
- RJ COD CONVERT TO OCTAL DISPLAY CODE
- SA6 SMCA SET STATUS BITS
- MOVEBIT SMCA,/SMC/STATUS,36,35,/SMCU/STATUS
- IFNE TMSG,0,1
- MESSAGE SMCB,TMSG/1S12,R ISSUE DAYFILE MESSAGE
- EQ SMCX RETURN
- SMCA BSS 1 SPACE FILLED NAME
- SMCB BSS 0 ACCOUNT FILE MESSAGE
- TYPE LISTER SMC,4,SDAD MESSAGE TYPE
- LISTER ,2,(, )
- FAMILY LISTER ,7 FAMILY NAME
- LISTER ,2,(, )
- VSN LISTER ,6 VSN
- LISTER ,2,(, )
- PRN LISTER ,6 PRN
- LISTER ,2,(, )
- STATUS LISTER ,6,000000 STATUS BITS
- LISTER ,1,(.),E
- SMD SPACE 4,15
- ** SMD - ISSUE *SDRM* ACCOUNT FILE MESSAGE.
- *
- * ENTRY (B6) = ADDRESS OF VSN ENTRY BUFFER.
- * (B7) = BUFFER LENGTH.
- *
- * EXIT MESSAGE ISSUED TO ACCOUNT FILE.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * CALLS SFN.
- *
- * MACROS MESSAGE, MOVEBIT.
- SMD SUBR ENTRY/EXIT
- SA1 LF
- NZ X1,SMDX IF LOCAL FILE MODE
- SX6 B6 SAVE BUFFER ADDRESS
- SA6 SMDA
- SX6 B7 SAVE BUFFER LENGTH
- SA6 SMDB
- SX6 B0 PRESET RELATIVE ADDRESS IN BUFFER
- SA6 SMDC
- SA1 FM GET FAMILY NAME
- RJ SFN SPACE FILL NAME
- SA6 SMDD SET FAMILY NAME
- MOVEBIT SMDD,/SMD/FAMILY,42,,/SMDU/FAMILY
- SMD1 SA1 SMDB CHECK IF END OF TABLE
- SA2 SMDC
- IX1 X2-X1
- PL X1,SMDX IF END OF TABLE
- SX6 X2+B1 INCREMENT RELATIVE ADDRESS
- SA6 A2
- SA1 SMDA GET ADDRESS OF VSN
- IX1 X1+X2
- MOVEBIT X1,/SMD/VSN,VSKL*6,/UPB/VSN,/SMDU/VSN
- IFNE TMSG,0,1
- MESSAGE SMDE,TMSG/1S12,R ISSUE DAYFILE MESSAGE
- EQ SMD1 CHECK NEXT VSN
- SMDA BSS 1 VSN BUFFER ADDRESS
- SMDB BSS 1 VSN BUFFER LENGTH
- SMDC BSS 1 RELATIVE ADDRESS IN VSN BUFFER
- SMDD BSS 1 SPACE FILLED NAME
- SMDE BSS 0 ACCOUNT FILE MESSAGE
- LISTER SMD,6,(SDRM, )
- FAMILY LISTER ,7 FAMILY NAME
- LISTER ,2,(, )
- VSN LISTER ,6 VSN
- LISTER ,1,(.),E
- SMF SPACE 4,15
- ** SMF - ISSUE *SDAM* ACCOUNT FILE MESSAGE.
- *
- * ENTRY (FV) = FIRST VSN OF FILE AMENDED.
- * (ST) = VSN STATUS BITS OF FILE AMENDED.
- * (UN) = USER NAME OF FILE AMENDED.
- *
- * EXIT ACCOUNT FILE MESSAGE ISSUED.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * CALLS COD, SFN.
- *
- * MACROS MOVEBIT, MESSAGE.
- SMF SUBR ENTRY/EXIT
- SA1 LF
- NZ X1,SMFX IF LOCAL FILE MODE
- SA1 FM GET FAMILY NAME
- RJ SFN SPACE FILL NAME
- SA6 SMFA SET FAMILY NAME
- MOVEBIT SMFA,/SMF/FAMILY,42,,/SMFU/FAMILY
- SA1 UN GET USER NAME
- RJ SFN SPACE FILL NAME
- SA6 SMFA SET USER NAME
- MOVEBIT SMFA,/SMF/USER,UNKL*6,,/SMFU/USER
- MOVEBIT FV,/SMF/FVSN,VSKL*6,,/SMFU/FVSN SET FIRST VSN
- SA1 ST GET STATUS BITS
- SX6 B1
- LX6 18-0
- BX1 X1+X6
- RJ COD CONVERT TO OCTAL DISPLAY
- SA6 SMFA SET STATUS BITS
- MOVEBIT SMFA,/SMF/STATUS,36,35,/SMFU/STATUS
- IFNE TMSG,0,1
- MESSAGE SMFB,TMSG/1S12,R ISSUE DAYFILE MESSAGE
- EQ SMFX RETURN
- SMFA BSS 1 SPACE FILLED NAME
- SMFB BSS 0 ACCOUNT FILE MESSAGE
- LISTER SMF,6,(SDAM, )
- FAMILY LISTER ,7 FAMILY NAME
- LISTER ,2,(, )
- USER LISTER ,7 USER NAME
- LISTER ,2,(, )
- FVSN LISTER ,6 FIRST VSN
- LISTER ,2,(, )
- STATUS LISTER ,6,000000 VSN STATUS BITS
- LISTER ,1,(.),E
- SNS SPACE 4,10
- ** SNS - SAVE NEEDED STORAGE.
- *
- * ENTRY NONE.
- *
- * EXIT CATALOG BUFFERS, SPECIAL WORKING STORAGE, AND TABLE
- * OF ASSIGNED VSNS SAVED IN HOLD BUFFER *HBUF*.
- *
- * USES A - 1, 2, 6.
- * B - 2, 3.
- * X - 1, 2, 6.
- SNS SUBR ENTRY/EXIT
- SB2 HBUF FWA OF STORAGE BUFFER
- SA2 THBP-1 FWA OF TABLE OF MEMORY PARTITIONS-1
- SNS1 SA2 A2+B1 MEMORY PARTITION TO SAVE FROM TABLE
- ZR X2,SNSX IF ALL MEMORY SAVED
- SA1 X2-1
- SA2 A2+B1 WORD COUNT FROM TABLE
- SB3 X2
- SNS2 SA1 A1+B1 GET WORD TO SAVE
- BX6 X1
- SA6 B2 WORD SAVED IN BUFFER
- SB2 B2+B1 INCREMENT BUFFER ADDRESS
- SB3 B3-B1 DECREMENT WORD COUNT
- NZ B3,SNS2 IF MORE WORDS TO SAVE
- EQ SNS1 CONTINUE
- SUI SPACE 4,10
- ** SUI - SET UTILITY INTERLOCK.
- *
- * EXIT UTILITY INTERLOCK SET IN TAPE CATALOG.
- *
- * USES A - 1.
- * X - 1.
- *
- * MACROS CALLTFM, RESETP.
- *
- * EXIT UTILITY INTERLOCK SET ON TAPE CATALOG FILE.
- *
- * USES A - 1.
- * X - 1.
- *
- * MACROS CALLTFM, RESETP.
- SUI SUBR ENTRY/EXIT
- SA1 LF
- NZ X1,SUIX IF LOCAL FILE MODE
- RESETP N1 SET UTILITY INTERLOCK
- CALLTFM X2,SUAS
- EQ SUIX RETURN
- TOG SPACE 4,10
- ** TOG - TOGGLE FILE LEVEL LEFT SCREEN DISPLAY.
- *
- * ENTRY (TG) = 0 IF *HELP* DISPLAY ON LEFT SCREEN.
- * = PAGE NUMBER IF FILE LEVEL DISPLAY.
- *
- * EXIT (TG) TOGGLED IF FILE LEVEL.
- * LEFT SCREEN TOGGLED IF FILE LEVEL.
- *
- * USES A - 1, 6.
- * X - 1, 2, 6.
- TOG SUBR ENTRY/EXIT
- SA1 TG
- ZR X1,TOGX IF *HELP* DISPLAY
- SX6 X1+B1 SET NEXT PAGE
- SX2 X6-TOGAL
- NG X2,TOG1 IF NOT BEYOND LAST PAGE
- SX1 B0 SET FIRST PAGE
- SX6 B1
- TOG1 SA6 TG RESET PAGE
- SA1 TOGA+X1 RESET DISPLAY ADDRESS
- BX6 X1
- SA6 /KLEFT/NEXT
- EQ TOGX RETURN
- TOGA BSS 0
- LOC 1
- KNEXT KFILLS1,NOLAB
- KNEXT KFILLS2,NOLAB
- KNEXT KFILLS3,NOLAB
- TOGAL EQU *
- LOC *O
- UDT SPACE 4,15
- ** UDT - UNPACK DATE/TIME.
- *
- * ENTRY (X1) = PACKED DATE/TIME.
- * (B3) = 70 IF UNPACKING DATE
- * = 100 IF UNPACKING TIME
- *
- * EXIT (X6) = DATE/TIME LEFT JUSTIFIED IN YYMMDD OR HHMMSS
- * FORMAT.
- *
- * USES A - 1, 6.
- * B - 3, 6.
- * X - 0, 1, 3.
- *
- * CALLS CDD.
- UDT3 SA1 =6L SET NO DATE
- BX6 X1
- UDT SUBR ENTRY/EXIT
- NZ X1,UDT1 IF NON-ZERO DATE/TIME
- SB6 B3-70
- ZR B6,UDT3 IF DATE
- UDT1 SX6 B0 CLEAR UNPACKED BUFFER
- SA6 UDTB
- LX1 -12+60 POSITION PACKED DATE/TIME
- SB6 B1+B1 SET FOR THREE TIMES THROUGH LOOP
- UDT2 MX0 12 SAVE REMAINDER OF PACKED DATE/TIME
- BX6 X0*X1
- SA6 UDTA
- SX1 X1+B3 INSURE TWO DISPLAY DIGITS
- RJ CDD CONVERT CONSTANT TO DECIMAL DISPLAY
- MX0 -12 UPDATE UNPACKED DATE/TIME
- SA1 UDTB
- LX1 12
- BX6 -X0*X6
- BX6 X1+X6
- SA6 A1
- SA1 UDTA GET REMAINDER OF PACKED DATE/TIME
- LX1 6
- SB3 100 INSURE TWO DISPLAY DIGITS
- SB6 B6-B1
- PL B6,UDT2 IF MORE TO CONVERT
- LX6 24
- EQ UDTX RETURN
- UDTA BSS 1 PACKED DATE/TIME
- UDTB BSS 1 UNPACKED DATE/TIME
- UFA SPACE 4,15
- ** UFA - UNPACK FILE AUDIT.
- *
- * ENTRY (N3 - N3+15B) = AUDIT FET.
- * (B2) = ASSIGNED VSN BUFFER ADDRESS.
- * (B6) = FILE CATALOG BUFFER ADDRESS.
- *
- * EXIT (X4) = 0 IF FILE AUDIT UNPACKED.
- * .NE. 0 IF END OF AUDIT.
- * (X6) = RANDOM ADDRESS OF FILE CATALOG.
- * FILE CATALOG IMAGE SET IN BUFFER.
- * ASSIGNED VSN ENTRIES SET IN BUFFER.
- *
- * USES A - 1, 6.
- * B - 6.
- * X - 1.
- *
- * MACROS CALLTFM, MOVEBIT, READFET, RJUST.
- UFA SUBR ENTRY/EXIT
- SX6 B2 SAVE VSN BUFFER ADDRESS
- SA6 UFAA
- SX6 B6 SAVE FILE BUFFER ADDRESS
- SA6 UFAB
- UFA1 READFET N3,B6,TCEL SET FILE CATALOG IN BUFFER
- ZR X1,UFA2 IF CATALOG FOUND
- SA1 X2 CHECK IF AUDIT COMPLETE
- RJUST X1,X4,1,1
- NZ X4,UFAX IF AUDIT COMPLETE
- CALLTFM X2,AUCS REISSUE AUDIT REQUEST
- NZ X4,UFAX IF END OF AUDIT
- SA1 UFAB RESET FILE BUFFER ADDRESS
- SB6 X1
- EQ UFA1 SET FILE CATALOG IN BUFFER
- UFA2 SA1 B6-TCEL+/CAT/REELC GET REEL COUNT
- RJUST X1,X6,/BTC/REELC,/UPB/REELC
- LX6 2
- SA1 UFAA GET VSN BUFFER ADDRESS
- READFET X2,X1,X6 SET ASSIGNED VSN ENTRIES IN BUFFER
- READFET X2,UFAC,1 GET CATALOG RANDOM ADDRESS
- SA1 LF
- ZR X1,UFA3 IF NOT LOCAL FILE MODE
- SA2 UFAB CLEAR FILE BUSY INTERLOCK
- MOVEBIT (=0),X2+/CAT/FBIL,/BTC/FBIL,,/UPB/FBIL
- UFA3 SA1 UFAC
- RJUST X1,X6,24,23
- SX4 B0 FLAG UNPACK COMPLETE
- EQ UFAX RETURN
- UFAA BSS 1 VSN BUFFER ADDRESS
- UFAB BSS 1 FILE CATALOG BUFFER ADDRESS
- UFAC BSS 1 CATALOG RANDOM ADDRESS
- UFC SPACE 4,20
- ** UFC - UNPACK FILE CATALOG INTO DIRECT CELLS.
- *
- * ENTRY (X6) = CATALOG RANDOM ADDRESS.
- * (X7) = PREVIOUS FILE RANDOM ADDRESS.
- * (B7) = VSN COUNT.
- *
- * EXIT (CA) = FILE CATALOG ADDRESS.
- * (EV) = EXTERNAL VSN.
- * (FI) = FILE IDENTIFIER.
- * (FV) = FIRST VSN.
- * (NI) = FILE IDENTIFIER.
- * (PA) = PREVIOUS FILE RANDOM ADDRESS.
- * (QN) = SEQUENCE NUMBER.
- * (RC) = REEL COUNT.
- * (ST) = VSN STATUS BITS.
- * (SV) = SYMBOLIC ACCESS FLAG.
- * (VC) = VSN COUNT.
- *
- * USES A - 1, 6, 7.
- * X - 0, 1, 6.
- *
- * MACROS MOVEBIT.
- UFC SUBR ENTRY/EXIT
- SA6 CA SET FILE CATALOG RANDOM ADDRESS
- SA7 PA SET PREVIOUS FILE CATALOG RANDOM ADDRESS
- SX6 B7 SET VSN COUNT
- SA6 VC
- NZ B7,UFC1 IF VSNS ASSIGNED
- SA6 FV CLEAR FIRST VSN
- SA6 ST CLEAR VSN STATUS
- EQ UFC2 SET FILE IDENTIFIER
- UFC1 MOVEBIT TAVS+/CAT/VSN,FV,/BTC/VSN,/UPB/VSN SET FIRST VSN
- SX0 277777B SET VSN STATUS BITS
- SA1 TAVS+1
- BX1 X0*X1
- MOVEBIT A1,ST,18,17,17
- UFC2 MOVEBIT /ADD/FI,FI,/BTC/FI,/UPB/FI SET FILE ID
- MOVEBIT /ADD/FI,NI,/BTC/FI,/UPB/FI
- MOVEBIT /ADD/EVSN,EV,/BTC/EVSN,/UPB/EVSN
- MOVEBIT /ADD/QN,QN,/BTC/QN,/UPB/QN,/BTC/QN-1
- MOVEBIT /ADD/SV,SV,/BTC/SV,/UPB/SV,/BTC/SV-1
- MOVEBIT /ADD/REELC,RC,/BTC/REELC,/UPB/REELC,/BTC/REELC-1
- MOVEBIT /ADD/D,DE,/BTC/D,/UPB/D,/BTC/D-1
- EQ UFCX RETURN
- USL SPACE 4,10
- ** USL - USER LEVEL PROCESSOR.
- *
- * EXIT PROGRAM SET FOR USER LEVEL DIRECTIVES.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * CALLS KFI, RAE.
- USL SUBR ENTRY/EXIT
- RJ RAE REPLACE ALTERNATE USER ENTRIES
- SX6 B0 FLAG INITIAL AUDIT
- SA6 AA
- SA1 NV
- NZ X1,USL1 IF NO VERIFY MODE
- RJ KFI SET FILE-IDS IN K-DISPLAY
- USL1 SX6 LVUS SET USER LEVEL
- SA6 LV
- SA1 UN SET USER NAME IN K-DISPLAY
- BX6 X1
- SA6 /KUSELS/USER
- SA1 USLA RESET LEFT SCREEN POINTER
- BX6 X1
- SA6 /KLEFT/NEXT
- SA1 USLB RESET RIGHT SCREEN POINTER
- BX6 X1
- SA6 /KRIGHT/NEXT
- SA1 =H* USER * SET LEVEL IN HELP DISPLAY
- BX6 X1
- SA6 /KRIGHT/LV
- EQ USLX RETURN
- USLA KNEXT KUSELS,NOLAB
- USLB KNEXT KUSERS,NOLAB
- VSA SPACE 4,15
- ** VSA - VSN AUDIT LIST PROCESSOR.
- *
- * ENTRY (VCAT) = VSN ENTRY IMAGE.
- *
- * EXIT VSN INFORMATION COPIED TO OUTPUT FILE.
- *
- * USES A - 1.
- * B - 3.
- * X - 0, 1.
- *
- * CALLS SFN.
- *
- * MACROS MOVEBIT, SETSORC, WLINES.
- VSA SUBR ENTRY/EXIT
- MX0 -18
- SA1 /ADD/URDATE GET RELEASE DATE
- BX1 -X0*X1
- SB3 70
- RJ UDT UNPACK DATE/TIME
- SA6 VSAB SET RELEASE DATE
- MOVEBIT VSAB,/ALS/RELDATE,6*6,59,/ALSU/RELDATE
- SA1 /ADD/URDATE CHECK RELEASE DATE
- MX0 -18
- BX6 -X0*X1
- SX1 1R
- ZR X6,VSA0.1 IF NO RELEASE DATE
- SA1 /ADD/NEWRDT CHECK RELEASE DATE FORMAT
- LJUST X1,X6,/BTC/NEWRDT,/UPB/NEWRDT
- SX1 1R*
- PL X6,VSA0.1 IF OLD FORMAT
- SX1 1R
- VSA0.1 MOVEBIT A1,/ALS/NEWRDT,1*6,5,/ALSU/NEWRDT
- SA1 =18H PRESET USER AND CHARGE AS BLANK
- MOVEBIT A1,/ALS/VUSER,18*6,,/ALSU/VUSER
- SA1 UN GET USER NAME
- RJ SFN SPACE FILL NAME
- BX1 X6 SET USER NAME IN LISTING
- MOVEBIT A1,/ALS/VUSER,UNKL*6,,/ALSU/VUSER
- SA1 /ADD/CN GET CHARGE NUMBER
- RJ SFN SPACE FILL NAME
- BX1 X6
- MOVEBIT A1,/ALS/VCHG,CNKL*6,,/ALSU/VCHG
- SA1 /ADD/FVSN GET FIRST VSN
- RJ SFN SPACE FILL NAME
- BX1 X6 SET FIRST VSN IN LISTING
- MOVEBIT A1,/ALS/FVSN,VSKL*6,,/ALSU/FVSN
- MX0 VSKL*6 CHECK IF LAST SCRATCH VSN
- SA1 /ADD/NVSN
- BX1 X0-X1
- BX1 X0*X1
- ZR X1,VSA1 IF LAST SCRATCH VSN
- SA1 A1
- VSA1 RJ SFN SPACE FILL NAME
- BX1 X6 SET NEXT VSN IN LISTING
- MOVEBIT A1,/ALS/NVSN,VSKL*6,,/ALSU/NVSN
- SA1 UN
- NZ X1,VSA2 IF VSN ASSIGNED
- SA1 =18H *NOT ASSIGNED* SET MESSAGE IN LISTING
- MOVEBIT A1,/ALS/VUSER,18*6,,/ALSU/VUSER
- VSA2 MOVEBIT /ADD/VSN,/ALS/VSN,/ALSC/VSN*6,/UPB/VSN,/ALSU/VSN
- SA1 /ADD/ERRFLAG CHECK ERROR FLAG
- RJUST X1,X1,/BTC/ERRFLAG,/UPB/ERRFLAG
- ZR X1,VSA3 IF ERROR FLAG NOT SET
- SA1 =5HERROR
- EQ VSA5 SET VSN STATUS IN LISTING
- VSA3 SA1 /ADD/MAINT CHECK MAINTENANCE FLAG
- RJUST X1,X1,/BTC/MAINT,/UPB/MAINT
- ZR X1,VSA4 IF MAINTENANCE FLAG NOT SET
- SA1 =5HHOLD
- EQ VSA5 SET VSN STATUS IN LISTING
- VSA4 SA1 =5HAVAIL
- VSA5 MOVEBIT A1,/ALS/STATUS,5*6,,/ALSU/STATUS
- SETSORC A,LVVS SET SOURCE VALUES IN AUDIT LISTING
- WLINES VSAA,1 WRITE TO OUTPUT FILE
- EQ VSAX RETURN
- VSAA BSS 0 AUDIT LISTING
- LISTER ALS,2
- VSN LISTER ,6 VSN
- LISTER ,1
- PRN LISTER ,6 INTERNAL VSN (PRN)
- LISTER ,1
- VT LISTER ,4 VSN TAPE TYPE
- LISTER ,1
- STATUS LISTER ,6,AVAIL STATUS
- LISTER ,1
- USAGE LISTER ,2,00 USAGE COUNT
- LISTER ,1
- OWNER LISTER ,6,CENTER OWNERSHIP TYPE
- LISTER ,1
- SITE LISTER ,3,ON SITE STATUS
- LISTER ,1
- SYSTEM LISTER ,6,NO SYSTEM VSN FLAG
- LISTER ,1
- VUSER LISTER ,7 USER NAME
- LISTER ,1
- VCHG LISTER ,10 CHARGE NUMBER
- LISTER ,1
- NEWRDT LISTER ,1 NEW RELEASE DATE FORMAT
- RELDATE LISTER ,6 RELEASE DATE
- LISTER ,1
- FVSN LISTER ,6 FIRST VSN
- LISTER ,1
- NVSN LISTER ,6,,E NEXT VSN
- VSAB CON 0 RELEASE DATE IMAGE
- VSL SPACE 4,10
- ** VSL - VSN LEVEL PROCESSOR.
- *
- * EXIT PROGRAM SET FOR VSN LEVEL DIRECTIVES.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * MACROS MOVE.
- VSL SUBR ENTRY/EXIT
- SX6 LVVS SET VSN LEVEL
- SA6 LV
- SA1 VS SET VSN IN K-DISPLAY
- BX6 X1
- SA6 /KVSNLS/VSN
- SA1 VF CHECK VSN IN CATALOG FLAG
- SA2 VSLA PRESET MESSAGE ADDRESS
- ZR X1,VSL1 IF VSN NOT IN CATALOG
- SA2 VSLB RESET MESSAGE ADDRESS
- VSL1 MOVE 3,A2,/KVSNLS/MESS
- MOVEBIT /ADD/VT,VTT,/BTC/VT,/UPB/VT,/BTC/VT-1
- MOVEBIT /ADD/SYSTEM,SVF,/BTC/SYSTEM,/UPB/SYSTEM,/BTC/SYSTEM-1
- RJ KST SET VSN STATUS IN K-DISPLAY
- SA1 VSLC RESET LEFT SCREEN POINTER
- BX6 X1
- SA6 /KLEFT/NEXT
- SA1 VSLD RESET RIGHT SCREEN POINTER
- BX6 X1
- SA6 /KRIGHT/NEXT
- SA1 =H* VSN * SET LEVEL IN HELP DISPLAY
- BX6 X1
- SA6 /KRIGHT/LV
- EQ VSLX RETURN
- VSLA DATA 30HVSN NOT CURRENTLY IN CATALOG.
- VSLB DATA 30HVSN CURRENTLY IS IN CATALOG.
- VSLC KNEXT KVSNLS,NOLAB
- VSLD KNEXT KVSNRS,NOLAB
- VSM SPACE 4,15
- ** VSM - VSN MACHINE READABLE LIST PROCESSOR.
- *
- * ENTRY (VCAT) = VSN ENTRY IMAGE.
- *
- * EXIT VSN INFORMATION COPIED TO MACHINE READABLE OUTPUT
- * FILE.
- *
- * USES A - 1, 2.
- * B - 3.
- * X - 0, 1, 2.
- *
- * CALLS SFN, UDT.
- *
- * MACROS MOVEBIT, RJUST, SETSORC, WRITEC.
- VSM SUBR ENTRY/EXIT
- SA1 /ADD/VASF CHECK VSN ASSIGNED FLAG
- RJUST X1,X1,/BTC/VASF,/UPB/VASF
- ZR X1,VSM4 IF VSN NOT ASSIGNED TO A FILE
- SA2 /ADD/RECOVER CHECK FOR RECOVERED STATUS
- LX2 59-/UPB/RECOVER
- SA1 =C*N*
- PL X2,VSM1 IF NOT RECOVERED
- SA1 =C*S*
- VSM1 MOVEBIT A1,/MLS/RECOVER,1*6,59,/MLSU/RECOVER
- SA2 VCAT+VEVS CHECK IF FILE RESERVED
- LX2 59-17
- ERRNZ 400000B-RTVS INCORRECT BIT POSITION
- SA1 =C*R*
- NG X2,VSM2 IF FILE RESERVED
- SA1 =C*N*
- VSM2 MOVEBIT A1,/MLS/RESF,1*6,59,/MLSU/RESF SET RESERVED STATUS
- SA1 UN SET USER NAME IN LISTING
- RJ SFN SPACE FILL NAME
- BX1 X6
- MOVEBIT A1,/MLS/USER,/MLSC/USER*6,,/MLSU/USER
- SETSORC M,LVFI SET SOURCE VALUES IN MACHINE READ LIST
- SA1 /MLS/FI CHECK FOR EXTRA END OF LINES
- SB3 /MLSU/FI
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 /MLS/PI
- SB3 /MLSU/PI
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 /ADD/TTYP CHECK TAPE DEVICE TYPE
- RJUST X1,X6,/BTC/TTYP,/UPB/TTYP
- SA1 VSMB+X6 GET MNEMONIC
- MOVEBIT A1,/MLS/TTYP,/MLSC/TTYP*6,,/MLSU/TTYP
- EQ VSM5 ADD VSN INFORMATION
- VSM4 MOVEBIT (=50H),/MLS/USER,50*6,,/MLSU/USER SET BLANKS
- MOVEBIT (=50H),A2,50*6,,B2
- MOVEBIT (=47H),A2,47*6,,B2
- MOVEBIT (=19H),/MLS/LB,19*6,,/MLSU/LB
- MOVEBIT (=1HN),/MLS/RESF,1*6,59,/MLSU/RESF
- MOVEBIT (=1HN),/MLS/RECOVER,1*6,59,/MLSU/RECOVER
- VSM5 MOVEBIT /ADD/VSN,/MLS/VSN,/MLSC/VSN*6,/UPB/VSN,/MLSU/VSN
- SA1 /ADD/FVSN GET FIRST VSN
- RJ SFN SPACE FILL NAME
- BX1 X6 SET FIRST VSN IN LISTING
- MOVEBIT A1,/MLS/FVSN,VSKL*6,,/MLSU/FVSN
- MX0 VSKL*6 CHECK IF LAST SCRATCH VSN
- SA1 /ADD/NVSN
- BX1 X0*X1
- BX1 X0-X1
- ZR X1,VSM6 IF LAST SCRATCH VSN
- SA1 A1
- BX1 X0*X1
- VSM6 RJ SFN SPACE FILL NAME
- BX1 X6 SET NEXT VSN IN LISTING
- MOVEBIT A1,/MLS/NVSN,VSKL*6,,/MLSU/NVSN
- SA1 /ADD/REELNO GET REEL NUMBER
- RJUST X1,X1,/BTC/REELNO,/UPB/REELNO
- SX1 X1+100
- RJ CDD CONVERT TO DECIMAL DISPLAY
- LJUST X6,X1,12,11 SET REEL NUMBER IN LISTING
- MOVEBIT A1,/MLS/REELNO,/MLSC/REELNO*6,,/MLSU/REELNO
- SA1 /ADD/URDATE GET RELEASE DATE
- MX0 -18
- BX1 -X0*X1
- SB3 70 SET DATE FLAG FOR UDT
- RJ UDT UNPACK DATE
- BX1 X6 SET RELEASE DATE IN LISTING
- MOVEBIT A1,/MLS/URDATE,6*6,,/MLSU/URDATE
- SA1 /ADD/URDATE CHECK RELEASE DATE
- MX0 -18
- BX6 -X0*X1
- SX1 1R
- ZR X6,VSM7 IF NO RELEASE DATE
- SA1 /ADD/NEWRDT CHECK IF NEW RELEASE DATE FORMAT
- LJUST X1,X6,/BTC/NEWRDT,/UPB/NEWRDT
- SX1 1R*
- PL X6,VSM7 IF OLD FORMAT
- SX1 1R
- VSM7 MOVEBIT A1,/MLS/NEWRDT,1*6,5,/MLSU/NEWRDT
- SETSORC M,LVVS SET SOURCE VALUES IN MACHINE READ LIST
- WRITEC SS,VSMA WRITE ENTRY TO MACHINE READABLE FILE
- EQ VSMX RETURN
- VSMA BSS 0 MATCHING READABLE LISTING
- LISTER MLS,1,2 RECORD TYPE
- FAMILY LISTER ,7 FAMILY NAME
- USER LISTER ,7 USER NAME
- CN LISTER ,7 CHARGE NUMBER
- PN LISTER ,20 PROJECT NUMBER
- FI LISTER ,17 FILE IDENTIFIER
- CT LISTER ,7,PRIVATE FILE CATEGORY
- CDATE LISTER ,6,YYMMDD CREATION DATE
- CTIME LISTER ,6,HHMMSS CREATION TIME
- ADATE LISTER ,6,YYMMDD LAST ACCESS DATE
- ATIME LISTER ,6,HHMMSS LAST ACCESS TIME
- MDATE LISTER ,6,YYMMDD LAST MODIFICATION DATE
- MTIME LISTER ,6,HHMMSS LAST MODIFICATION TIME
- M LISTER ,6,READ PERMISSION MODE
- ACOUNT LISTER ,10,0000000000 ACCESS COUNT
- F LISTER ,2,I FORMAT
- CV LISTER ,2,AS CONVERSION MODE
- TTYP LISTER ,2,NT TAPE DEVICE TYPE
- D LISTER ,2,PE DENSITY
- LISTER ,3 BLANKS
- UC LISTER ,10 USER CONTROL WORD
- LISTER ,4 BLANKS
- CE LISTER ,1,C ERROR FLAG
- LISTER ,1 BLANKS
- PW LISTER ,7 PASSWORD
- LISTER ,3 BLANKS
- VSN LISTER ,6 VSN
- PRN LISTER ,6 PRN
- FVSN LISTER ,6 FIRST VSN
- NVSN LISTER ,6 NEXT VSN
- MAINT LISTER ,5,AVAIL MAINTENANCE FLAG
- SITE LISTER ,3,ON SITE STATUS
- OWNER LISTER ,6,CENTER OWNERSHIP TYPE
- ERRFLAG LISTER ,1,C ERROR FLAG
- REELNO LISTER ,2,00 REEL NUMBER
- LB LISTER ,2,KL LABEL TYPE
- PI LISTER ,17 PHYSICAL FILE IDENTIFIER
- USAGE LISTER ,2,00 USAGE COUNT
- URDATE LISTER ,6 RELEASE DATE
- RESF LISTER ,1,N RESERVED FLAG
- RECOVER LISTER ,1,N RECOVER FLAG
- NEWRDT LISTER ,1 NEW RELEASE DATE FORMAT
- SYSTEM LISTER ,3,NO SYSTEM VSN FLAG
- VT LISTER ,4,MTNT,E VSN TAPE TYPE
- VSMB BSS 0 TABLE OF TAPE DEVICE TYPES
- CON 0LMT 7-TRACK TAPE
- CON 0LCT CARTRIDGE TAPE
- CON 0LNT 9-TRACK TAPE
- CON 0LAT ACS CARTRIDGE TAPE
- VSS SPACE 4,15
- ** VSS - VSN SOURCE LISTING PROCESSOR.
- *
- * ENTRY (VCAT) = VSN ENTRY IMAGE.
- *
- * EXIT VSN INFORMATION COPIED TO SOURCE FILE.
- *
- * USES A - 1.
- * X - 1.
- *
- * CALLS SCS.
- *
- * MACROS MOVEBIT, SETSORC, WRITEC.
- VSS SUBR ENTRY/EXIT
- MOVEBIT /ADD/VSN,/SLS/VSN,VSKL*6,,/SLSU/VSN
- SETSORC S,LVVS SET SOURCE VALUES IN SOURCE LISTING
- WRITEC S,VSSA WRITE FIRST LINE OF SOURCE ENTRY
- SA1 /DTAB/PRN ADD PRN TO SOURCE ENTRY
- RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
- WRITEC S,VSSB WRITE LAST LINE OF SOURCE ENTRY
- EQ VSSX RETURN
- VSSA BSS 0 FIRST LINE OF VSN SOURCE ENTRY
- LISTER SLS,4,VSN=
- VSN LISTER ,6 VSN
- LISTER ,4,(,VT=)
- VT LISTER ,4,MTNT VSN ENTRY TAPE TYPE
- LISTER ,7,(,USAGE=)
- USAGE LISTER ,2,00 USAGE COUNT
- LISTER ,9,(,ERRFLAG=)
- ERRFLAG LISTER ,5,CLEAR ERROR FLAG
- LISTER ,7,(,MAINT=)
- MAINT LISTER ,9,AVAILABLE MAINTENANCE FLAG
- LISTER ,6,(,SITE=)
- SITE LISTER ,3,ON,E,CAPL SITE STATUS
- VSSB BSS 0 LAST LINE OF VSN SOURCE ENTRY
- LISTER ,6,OWNER=
- OWNER LISTER ,6,CENTER OWNERSHIP TYPE
- LISTER ,8,(,SYSTEM=)
- SYSTEM LISTER ,3,NO SYSTEM VSN FLAG
- LISTER ,3,(,GO),E,CAPL
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCCDD
- *CALL COMCCOD
- *CALL COMCCPM
- *CALL COMCCIO
- *CALL COMCDXB
- *CALL COMCEDT
- *CALL COMCMVE
- *CALL COMCRDC
- *CALL COMCRDW
- *CALL COMCSFM
- *CALL COMCSFN
- *CALL COMCSNM
- *CALL COMCSYS
- USBB BSS CSPL+10 STRING BUFFER
- *CALL COMCUSB
- *CALL COMCWTC
- *CALL COMCWTW
- *CALL COMCZTB
- TITLE UNIVERSAL DIRECTIVE PROCESSORS.
- UNIDIR SPACE 4,10
- ** UNIVERSAL DIRECTIVE PROCESSORS.
- *
- * ENTRY FROM *DIP*.
- * (AI) = ALTERNATE INPUT FILE NAME.
- * (IF) = INPUT FILE FET ADDRESS.
- * (TG) = FILE LEVEL K-DISPLAY PAGE NUMBER.
- * (BF) = BRIEF/NOBRIEF FLAG FOR HEADER DISPLAY.
- *
- * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
- DIS SPACE 4,10
- ** DIS - PROCESS *DISPLAY* DIRECTIVE.
- DIS2 SX6 B1 SET FILE LEVEL TOGGLE
- SA6 TG
- SA1 DISA SET NORMAL LEFT SCREEN CONTROL WORD
- BX6 X1
- SA6 KCW
- DIS SUBR ENTRY/EXIT
- SA1 OP CHECK OPTION
- SX1 X1-KOPT
- ZR X1,DIS2 IF *OP=K*
- SA1 BF CHECK *BRIEF* FLAG
- NZ X1,DIS1 IF *BRIEF* MODE SET
- NEWPAGE PDIS,PDISL FORCE NEW PAGE
- WWORDS /KLEFT/START,/KLEFT/LENGTH
- DIS1 SA1 /KLEFT/NEXT GET ADDRESS OF REMAINDER OF DISPLAY
- SX2 X1
- SA1 X1-1 GET LENGTH OF REMAINDER OF DISPLAY
- SB6 X1
- WWORDS X2,B6 WRITE REMAINDER OF LEFT SCREEN DISPLAY
- NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE ON NEXT DIRECTIVE
- EQ DISX RETURN
- DISA VFD 24/KBUF,18/KRIGHT,18/KLEFT CONTROL WORD IMAGE
- STO SPACE 4,10
- ** STO - PROCESS *STOP* DIRECTIVE.
- *
- * SET TERMINATION DIRECTIVES (DROP) IN THE STRING BUFFER.
- *
- * EXIT (USBB) = SERIES OF *DROP* DIRECTIVES.
- * (SP) = BUFFER POINTER.
- * (SB) = BUFFER ADDRESS.
- * (SM) = BUFFER MAXIMUM ADDRESS.
- *
- * USES A - 6.
- * X - 6.
- *
- * MACROS MOVE.
- STO SUBR ENTRY/EXIT
- MOVE TFSAL,TFSA,USBB SET TERMINATION DIRECTIVES
- SX6 USBB-1 SET BUFFER POINTER
- SA6 SP
- SX6 X6+B1 SET BUFFER ADDRESS
- SA6 SB
- SX6 USBB+TFSAL SET BUFFER MAXIMUM ADDRESS
- SA6 SM
- EQ STOX RETURN
- HEL SPACE 4,10
- ** HEL - PROCESS *HELP* DIRECTIVE.
- HEL1 SX6 B0 FLAG *HELP* DISPLAY
- SA6 TG
- SA1 HELA SET *HELP* CONTROL WORD
- BX6 X1
- SA6 KCW
- HEL SUBR ENTRY/EXIT
- SA1 OP CHECK OPTION
- SX1 X1-KOPT
- ZR X1,HEL1 IF *OP=K*
- NEWPAGE PHEL,PHELL FORCE NEW PAGE
- WWORDS /KRIGHT/START,/KRIGHT/LENGTH WRITE HEADER
- SA1 /KRIGHT/NEXT GET ADDRESS OF REMAINDER OF DISPLAY
- SX2 X1
- SA1 X1-1 GET LENGTH OF REMAINDER OF DISPLAY
- SB6 X1
- WWORDS X2,B6 WRITE REMAINDER OF RIGHT SCREEN DISPLAY
- NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE ON NEXT DIRECTIVE
- EQ HELX RETURN
- HELA VFD 24/KBUF,18/KRIGHT,18/KRIGHT CONTROL WORD IMAGE
- REA SPACE 4,10
- ** REA - PROCESS *READ* DIRECTIVE.
- REA1 SX6 B0 CLEAR ALTERNATE INPUT FILE NAME
- SA6 AI
- REA2 ISSMSG B5,E ISSUE ERROR MESSAGE
- REA SUBR ENTRY/EXIT
- SA1 IF CHECK INPUT FET ADDRESS
- SX1 X1-I
- SB5 ERDI SET ERROR MESSAGE ADDRESS
- NZ X1,REA2 IF ALTERNATE INPUT FILE
- SA1 DIPB SET FILE NAME IN FET
- SX6 B1
- BX6 X1+X6
- SA6 RD
- SX2 A6
- RJ CFC CHECK FOR FILE NAME CONFLICT
- SB5 EFNC SET ERROR MESSAGE ADDRESS
- NZ X4,REA1 IF CONFLICT
- SX6 X2 SET INPUT FILE FET
- SA6 IF
- SA1 SB SAVE INPUT STRING BUFFER POINTERS
- SX6 X1
- SA6 TFSB+0
- SA1 SM
- SX6 X1
- SA6 A6+B1
- SA1 SP
- SX6 X1
- SA6 A6+B1
- MOVE USBBL,USBB,TFSC SAVE INPUT STRING BUFFER
- SX6 B0 PRESET INPUT STRING BUFFER POINTERS
- SA6 SB
- SA6 SM
- SA6 SP
- EQ REAX RETURN
- REW SPACE 4,10
- ** REW - PROCESS *REWIND* DIRECTIVE.
- REW SUBR ENTRY/EXIT
- SX2 R
- RJ CFC CHECK FOR FILE NAME CONFLICT
- ZR X4,REW1 IF NO CONFLICT
- RECALL X4 REWIND FILE
- REWIND X2,R
- EQ REWX RETURN
- REW1 REWIND R,R REWIND FILE
- EQ REWX RETURN
- TITLE FAMILY LEVEL DIRECTIVE PROCESSORS.
- SPACE 4
- QUAL LVFA
- FAMDIR SPACE 4,10
- ** FAMILY LEVEL DIRECTIVE PROCESSORS.
- *
- * ENTRY FROM *DIP*.
- * (REC1) = IMAGE OF FIRST TAPE CATALOG FILE RECORD.
- *
- * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
- ACH SPACE 4,10
- ** ACH - PROCESS *AUDITCH* DIRECTIVE.
- ACH SUBR ENTRY/EXIT
- NEWPAGE PFIA,PFIAL SET NEW PAGE HEADER
- ACH1 RCREC N2,5
- GRENTRY N2,ACHA GET RECORD ENTRY FROM CATALOG
- ZR X6,ACH3 IF NO USERNAMES
- ACH2 GRENTRY N2,ACHA GET RECORD ENTRY FROM CATALOG
- ZR X6,ACH3 IF END OF USERNAMES
- SA1 TI
- NZ X1,ACH3 IF TERMINAL INTERRUPT
- MX0 42 GET USERNAME
- SA1 ACHA
- BX6 X0*X1
- SA6 UN STORE USERNAME TO AUDIT
- USERAUD A,CN PROCESS CHARGE AUDIT
- EQ ACH2 CHECK NEXT USERNAME
- ACH3 NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE
- EQ ACHX RETURN
- ACHA BSS 1 SECONDARY USERNAME POINTER
- AFM SPACE 4,10
- ** AFM - PROCESS *ALTFAM* DIRECTIVE.
- AFM2 ISSMSG ENVF,E ISSUE ERROR MESSAGE
- AFM SUBR ENTRY/EXIT
- SA1 LF
- ZR X1,AFM2 IF NOT LOCAL FILE MODE
- MX0 42
- SRCHTAB TAFM,AFMA,PAFL SEARCH FOR FAMILY NAME
- ZR X4,AFMX IF ALREADY IN TABLE
- SRCHTAB TAFM,=0,B2,B3,B4 SEARCH FOR EMPTY ENTRY
- ZR X4,AFM1 IF EMPTY ENTRY FOUND
- ISSMSG EAFM,E ISSUE ERROR MESSAGE
- EQ AFMX RETURN
- AFM1 SA2 AFMA SET FAMILY NAME IN TABLE
- BX6 X2
- SA6 A1
- RJ KFM SET FAMILY LEVEL K-DISPLAY
- EQ AFMX RETURN
- AFMA BSS 1 ALTERNATE FAMILY NAME
- AUN SPACE 4,10
- ** AUN - PROCESS *AUDITUN* DIRECTIVE.
- AUN3 NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
- AUN SUBR ENTRY/EXIT
- NEWPAGE PFIA,PFIAL SET NEW PAGE HEADER
- SA1 UN
- ZR X1,AUN1 IF MULTIPLE VSNS
- USERAUD A PROCESS USER AUDIT LIST
- EQ AUN3 FORCE NEW PAGE
- AUN1 RCREC N2,5
- GRENTRY N2,AUNA GET RECORD ENTRY
- ZR X6,AUN3 IF END OF USER NAMES
- AUN2 GRENTRY N2,AUNA GET RECORD ENTRY
- ZR X6,AUN3 IF END OF USER NAMES
- SA1 TI
- NZ X1,AUN3 IF TERMINAL INTERRUPT
- MX0 42 GET USER NAME
- SA1 AUNA
- BX6 X0*X1
- SA6 UN
- USERAUD A PROCESS USER AUDIT LIST
- EQ AUN2 CHECK NEXT USER NAME
- AUNA BSS 1 SECONDARY USER NAME POINTER IMAGE
- AVS SPACE 4,10
- * AVS - PROCESS *AUDITVS* DIRECTIVE.
- AVS4 NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
- AVS SUBR ENTRY/EXIT
- NEWPAGE PVSA,PVSAL FORCE NEW PAGE
- SA1 VS
- ZR X1,AVS1 IF MULTIPLE VSNS
- SX6 B0
- RJ GVE GET VSN ENTRY
- NZ X4,AVSX IF NOT FOUND
- RJ GUV GET USER INFORMATION ON VSN
- RJ VSA PROCESS VSN OUTPUT LIST
- EQ AVS4 FORCE NEW PAGE
- AVS1 SA1 LF
- ZR X1,AVS2 IF NOT LOCAL FILE MODE
- RJ RVE REPLACE VSN ENTRIES
- AVS2 RCREC N1,4 GET RECORD ENTRY OF DUMMY VSN
- GRENTRY N1,VCAT
- ZR X6,AVS4 IF NO MORE ENTRIES
- AVS3 GRENTRY N1,VCAT
- ZR X6,AVS4 IF NO MORE ENTRIES
- SA1 TI
- NZ X1,AVS4 IF TERMINAL INTERRUPT
- RJ GUV GET USER INFORMATION ON VSN
- RJ VSA PROCESS VSN OUTPUT LIST
- EQ AVS3 GET NEXT ENTRY
- BRF SPACE 4,10
- ** BRF - PROCESS *BRIEF* DIRECTIVE.
- BRF SUBR ENTRY/EXIT
- SA1 BF CHECK BRIEF FLAG
- SX6 B1
- SA6 A1 SET FLAG FOR BRIEF
- EQ BRFX RETURN
- CAF SPACE 4,10
- ** CAF - PROCESS *CALTFAM* DIRECTIVE.
- CAF1 ISSMSG ENVF,E ISSUE ERROR MESSAGE
- CAF SUBR ENTRY/EXIT
- SA1 LF
- ZR X1,CAF1 IF NOT LOCAL FILE MODE
- MX0 42
- SRCHTAB TAFM,CAFA,PAFL SEARCH FOR FAMILY NAME
- NZ X4,CAFX IF NOT IN TABLE
- SB7 B7+B3 MOVE END OF TABLE OVER DELETED FAMILY
- SB2 B2-B7
- MOVE B2,A1+B3,A1
- SX6 B0 CLEAR LAST ENTRY IN TABLE
- SA6 TAFM+PAFL-1
- RJ KFM SET FAMILY LEVEL K-DISPLAY
- EQ CAFX RETURN
- CAFA BSS 1 ALTERNATE FAMILY NAME
- CAT SPACE 4,10
- ** CAT - PROCESS *CATERR* DIRECTIVE.
- CAT1 MOVEBIT CATB,TCMB,40*6 SET NEW ERROR MESSAGE
- CAT2 RJ KFM SET FAMILY LEVEL K-DISPLAY
- CAT SUBR ENTRY/EXIT
- MOVEBIT CATA,TSTT,1,0,2 SET/CLEAR ERROR STATUS
- SA1 CATA
- NZ X1,CAT1 IF SET ERROR STATUS
- CLEAR TCMB,MBML CLEAR MESSAGE BUFFER
- EQ CAT2 REWRITE FIRST RECORD
- CATA BSS 1 CATALOG ERROR STATUS
- CATB DATA 38LERROR SET BY TFSP.
- DRO SPACE 4,10
- ** DRO - PROCESS *DROP* DIRECTIVE.
- DRO SUBR ENTRY/EXIT
- EQ END END *TFSP*
- FAM SPACE 4,10
- ** FAM - PROCESS *FAMNAME* DIRECTIVE.
- FAM SUBR ENTRY/EXIT
- MOVEBIT FAMA,TFMN,7*6 SET FAMILY NAME
- RJ KFM SET FAMILY LEVEL K-DISPLAY
- EQ FAMX RETURN
- FAMA BSS 1 NEW FAMILY NAME
- FOR SPACE 4,10
- ** FOR - PROCESS *FOREIGN* DIRECTIVE.
- FOR SUBR ENTRY/EXIT
- MOVEBIT FORA,TSTT,1,0,13 SET FOREIGN STATUS
- RJ KFM SET FAMILY LEVEL K-DISPLAY
- EQ FORX RETURN
- FORA BSS 1 FOREIGN STATUS
- GLO SPACE 4,10
- ** GLO - PROCESS *GLOBAL* DIRECTIVE.
- GLO SUBR ENTRY/EXIT
- MOVEBIT GLOA,TSTT,1,0,12 SET GLOBAL STATUS
- RJ KFM SET FAMILY LEVEL K-DISPLAY
- EQ GLOX RETURN
- GLOA BSS 1 GLOBAL STATUS
- INV SPACE 4,10
- ** INV - PROCESS *INCORRECT* DIRECTIVE.
- INV SUBR ENTRY/EXIT
- MX0 42
- SRCHTAB TVUN,UN,UNCL SEARCH FOR USER NAME
- NZ X4,INVX IF NOT IN TABLE
- SB7 B7+B3 MOVE END OF TABLE OVER DELETED USER
- SB2 B2-B7
- MOVE B2,A1+B3,A1
- SX6 B0 CLEAR LAST ENTRY IN TABLE
- SA6 TVUN+UNCL-1
- RJ KFM SET FAMILY LEVEL K-DISPLAY
- EQ INVX RETURN
- ISV SPACE 4,10
- ** ISV - PROCESS *ISV* DIRECTIVE.
- *
- * EXIT SCRATCH VSN-S INITIALIZED.
- *
- * CALLS KFM.
- *
- * MACROS CALLTFM, RCREC.
- ISV SUBR ENTRY\EXIT
- CALLTFM N1,ISFS INITIALIZE SCRATCH VSNS
- RCREC N1,1,REC1 REREAD FIRST RECORD
- RJ KFM UPDATE K-DISPLAY BUFFER
- EQ ISVX RETURN
- LKF SPACE 4,10
- ** LKF - PROCESS *LINKFAM* DIRECTIVE.
- LKF1 ISSMSG ENVF,E * DIRECTIVE NOT VALID ON FAST ATTACH *
- LKF SUBR ENTRY/EXIT
- SA1 LF
- ZR X1,LKF1 IF NOT LOCAL FILE MODE
- MOVEBIT LKFA,TLFM,7*6 SET LINKED FAMILY NAME
- RJ KFM UPDATE FAMILY K-DISPLAY
- EQ LKFX EXIT
- LKFA BSS 1 LINKED FAMILY NAME
- MCH SPACE 4,10
- ** MCH - PROCESS *MREADCH* DIRECTIVE.
- MCH SUBR ENTRY/EXIT
- CHKFIL SS CHECK FOR MACHINE READABLE FILE
- ZR X1,MCHX IF NO FILE WAS SPECIFIED
- MCH1 RCREC N2,5
- GRENTRY N2,MCHA GET USERNAMES TO AUDIT
- ZR X6,MCH3 IF NO USERNAMES
- MCH2 GRENTRY N2,MCHA GET USERNAMES TO AUDIT
- ZR X6,MCH3 IF END OF USERNAMES TO AUDIT
- SA1 TI
- NZ X1,MCH3 IF TERMINAL INTERRUPT
- SA1 MCHA GET USERNAME
- MX0 42
- BX6 X0*X1 MASK USERNAME TO AUDIT
- SA6 UN
- USERAUD M,CN PROCESS NEXT USERNAME TO MACHINE FILE
- EQ MCH2 CHECK NEXT USERNAME TO AUDIT
- MCH3 WRITER SS WRITE END OF RECORD ON FILE
- EQ MCHX RETURN
- MCHA BSS 1 SECONDARY USERNAME POINTER
- MID SPACE 4,10
- ** MID - PROCESS *MID* DIRECTIVE.
- MID1 ISSMSG EDFE,E ISSUE ERROR MESSAGE
- MID SUBR ENTRY/EXIT
- SA1 MIDA CHECK FOR TWO CHARACTERS
- RJUST X1,X1,6,11
- ZR X1,MID1 IF ONLY ONE CHARACTER
- MOVEBIT MIDA,TIDM,2*6,11 SET MACHINE ID
- RJ KFM SET FAMILY LEVEL K-DISPLAY
- EQ MIDX RETURN
- MIDA BSS 1 NEW MACHINE ID
- MUN SPACE 4,10
- ** MUN - PROCESS *MREADUN* DIRECTIVE.
- MUN3 WRITER SS WRITE END OF RECORD
- MUN SUBR ENTRY/EXIT
- CHKFIL SS CHECK MACHINE READABLE FILE
- ZR X1,MUNX IF NO FILE
- SA1 UN
- ZR X1,MUN1 IF MULTIPLE VSNS
- USERAUD M PROCESS USER MACHINE READABLE LIST
- EQ MUN3 WRITE END OF RECORD
- MUN1 RCREC N2,5
- GRENTRY N2,MUNA GET RECORD ENTRY OF DUMMY USER
- ZR X6,MUN3 IF END OF USER NAMES
- MUN2 GRENTRY N2,MUNA GET RECORD ENTRY
- ZR X6,MUN3 IF END OF USER NAMES
- SA1 TI
- NZ X1,MUN3 IF TERMINAL INTERRUPT
- MX0 42 GET USER NAME
- SA1 MUNA
- BX6 X0*X1
- SA6 UN
- USERAUD M PROCESS USER MACHINE READABLE LIST
- EQ MUN2 CHECK NEXT USER NAME
- MUNA BSS 1 SECONDARY USER NAME POINTER IMAGE
- MVS SPACE 4,10
- * MVS - PROCESS *MREADVS* DIRECTIVE.
- MVS4 WRITER SS SET END OF RECORD
- MVS SUBR ENTRY/EXIT
- CHKFIL SS
- ZR X1,MVSX IF NO MACHINE READABLE FILE
- SA1 VS
- ZR X1,MVS1 IF MULTIPLE VSNS
- SX6 B0
- RJ GVE GET VSN ENTRY
- NZ X4,MVSX IF NOT FOUND
- RJ GUV GET USER INFORMATION ON VSN
- RJ VSM PROCESS VSN MACHINE READABLE LIST
- EQ MVS4 SET END OF RECORD
- MVS1 SA1 LF
- ZR X1,MVS2 IF NOT LOCAL FILE MODE
- RJ RVE REPLACE VSN ENTRIES
- MVS2 RCREC N1,4 GET RECORD ENTRY OF DUMMY VSN
- GRENTRY N1,VCAT
- ZR X6,MVS4 IF NO MORE ENTRIES
- MVS3 GRENTRY N1,VCAT
- ZR X6,MVS4 IF NO MORE ENTRIES
- SA1 TI
- NZ X1,MVS4 IF TERMINAL INTERRUPT
- RJ GUV GET USER INFORMATION ON VSN
- RJ VSM PROCESS VSN MACHINE READABLE LIST
- EQ MVS3 GET NEXT ENTRY
- NBF SPACE 4,10
- ** NBF - PROCESS *NOBRIEF* DIRECTIVE.
- NBF SUBR ENTRY/EXIT
- SA1 BF CLEAR BRIEF FLAG
- SX6 B0
- SA6 A1 SET BRIEF FLAG
- EQ NBFX RETURN
- PGA SPACE 4,10
- ** PGA - PROCESS *PURGALL* DIRECTIVE.
- PGA4 MX1 42 SET GENERAL INTERLOCK
- RJ IUN INTERLOCK USER NAME
- PGA SUBR ENTRY/EXIT
- SA1 UN
- RJ IUN INTERLOCK USER NAME
- PGA1 SAFET UN,,,FCST SET AUDIT FET
- NZ X4,PGA4 IF NO MORE FILES
- SB6 FCAT SET BUFFER ADDRESSES
- SB2 TAVS
- RJ UFA UNPACK FILE AUDIT
- SA1 /ADD/NCAT CHECK IF MULTI-FILE
- RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
- NZ X1,PGA2 IF MULTI-FILE
- RJ SUI SET UTILITY INTERLOCK
- RELVSN UN,TAVS RELEASE FILE VIA VSN
- SA1 /ADD/REELC SET VSN BUFFER LENGTH
- RJUST X1,X1,/BTC/REELC,/UPB/REELC
- EQ PGA3 DELETE VSN ENTRIES
- PGA2 GFILEV UN,TAVS,1,FCAT,FCAT,TAVS GET MULTI-FILE
- SX6 B7 SAVE VSN COUNT
- SA6 PGAA
- RJ SUI SET UTILITY INTERLOCK
- RELVSN UN,TAVS RELEASE FILE VIA VSN
- SA1 PGAA SET VSN BUFFER LENGTH
- PGA3 LX1 2 LIST VSN ENTRIES
- LISTAB TAVS,PGAB,X1,,TSVL,VSKL*6
- SX1 X1-TAVS
- AX1 2
- DELVSN PGAB,X1 DELETE VSN ENTRIES
- RJ ISV INTIALIZE SCRATCH VSNS
- RJ CUI CLEAR UTILITY INTERLOCK
- EQ PGA1 CHECK FOR MORE FILES
- PGAA BSS 1 VSN COUNT
- PGAB BSS 60 ASSIGNED VSNS
- PGO SPACE 4,10
- ** PGO - PROCESS GO DIRECTIVE.
- *
- * EXIT FIRST PRU OF CATALOG READ, MODIFIED AND REWRITTEN.
- * EXIT TO *END*.
- *
- * CALLS END.
- *
- * USES X3, X4.
- *
- * CALLS MSV.
- *
- * MACROS RCREC, WCREC.
- PGO SUBR ENTRY/EXIT
- RCREC N1,1,REC1,1 READ FIRST RECORD
- SX3 TSST SET MODIFIED VALUE TABLE ADDRESS
- SX4 REC1+TBHL SET SYSTEM TABLE ADDRESS
- RJ MSV MOVE SYSTEM TABLE VALUES
- WCREC N1,1,REC1,1 REWRITE FIRST RECORD
- EQ END END *TFSP*
- PTF SPACE 4,10
- ** PTF - PROCESS *PURGE* DIRECTIVE.
- PTF5 ISSMSG B5,E ISSUE ERROR MESSAGE
- RJ CUI CLEAR UTILITY INTERLOCK
- PTF SUBR ENTRY/EXIT
- RJ RVE REPLACE VSN ENTRIES
- SX6 B0
- RJ GVE GET VSN ENTRY
- SB5 EVNC
- NZ X4,PTF5 IF VSN IS NOT IN CATALOG
- RJ GUV GET USER INFORMATION FOR THIS VSN
- SB5 EVNF
- ZR X1,PTF3 IF VSN NOT ASSIGNED TO TAPE FILE
- MOVEBIT /ADD/FVSN,VS,VSKL*6,/UPB/FVSN SET FIRST VSN
- SAFET UN,VS,,SCST GENERATE FET AUDIT
- SB5 EVNC
- NZ X4,PTF5 IF ERROR IN CATALOG FOR THIS FILE
- SB6 FCAT SET BUFFER ADDRESSES FOR FILE AUDIT
- SB2 TAVS
- RJ UFA UNPACK FILE AUDIT
- SA1 /ADD/NCAT CHECK IF MULTI-FILE
- RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
- NZ X1,PTF1 IF MULTI-FILE SET
- RJ SUI SET UTILITY INTERLOCK
- RELVSN UN,TAVS RELEASE FILE VIA VSN
- SA1 /ADD/REELC SET VSN BUFFER LENGTH
- RJUST X1,X1,/BTC/REELC,/UPB/REELC
- EQ PTF2 DELETE VSN ENTRIES
- PTF1 GFILEV UN,TAVS,1,FCAT,FCAT,TAVS GET MULTI FILE
- SX6 B7 SAVE THE VSN COUNT
- SA6 PTFA
- RJ SUI SET UTILITY INTERLOCK
- RELVSN UN,TAVS RELEASE FILE VIA-VSN
- SA1 PTFA VSN BUFFER LENGTH
- PTF2 LX1 2 LIST OF VSN ENTRIES
- LISTAB TAVS,PTFB,X1,,TSVL,VSKL*6
- DELVSN PTFB,X1-PTFB DELETE ENTRIES
- EQ PTF4 INITIALIZE SCRATCH VSNS
- PTF3 RJ SUI SET UTILITY INTERLOCK
- DELVSN VS,1
- ZR X4,PTF4 IF NO ERRORS
- SB5 EVNC PRESET ERROR ADDRESS
- SX4 X4-/EMSG/VNF
- ZR X4,PTF5 IF NOT IN CATALOG
- SB5 EVAA RESET ERROR MESSAGE ADDRESS
- EQ PTF5 ISSUE ERROR MESSAGE
- PTF4 RJ ISV INITIALIZE SCRATCH VSNS
- RJ CUI CLEAR UTILITY INTERLOCK
- ISSMSG IVRC,I ISSUE INFORMATIVE MESSAGE
- EQ PTFX RETURN
- PTFA BSS 1 VSN COUNT
- PTFB BSS 60 ASSIGNED VSNS
- REL SPACE 4,10
- ** REL - PROCESS *RELEASE* DIRECTIVE.
- REL1 ISSMSG B5,E ISSUE ERROR MESSAGE
- RJ CUI CLEAR UTILITY INTERLOCK
- REL SUBR ENTRY/EXIT
- RJ SUI SET UTILITY INTERLOCK
- SX6 B0
- RJ GVE GET VSN ENTRY
- SB5 EVNC
- NZ X4,REL1 IF VSN NOT IN CATALOG
- RJ GUV GET USER INFORMATION FOR VSN
- SB5 EVNF
- ZR X1,REL1 IF VSN NOT ASSIGNED
- MOVEBIT /ADD/FVSN,VS,VSKL*6,/UPB/FVSN SET FIRST VSN
- RELVSN UN,VS RELEASE FILE VIA VSN
- RJ CUI CLEAR UTILITY INTERLOCK
- ISSMSG IFRC,I ISSUE INFORMATIVE MESSAGE
- EQ RELX RETURN
- REM SPACE 4,10
- ** REM - PROCESS *REMOVE* DIRECTIVE.
- REM2 ISSMSG B5,E ISSUE ERROR MESSAGE
- RJ CUI CLEAR UTILITY INTERLOCK
- REM SUBR ENTRY/EXIT
- RJ RVE REPLACE VSN ENTRIES
- RJ SUI SET UTILITY INTERLOCK
- DELVSN VS,1 DELETE VSN
- ZR X4,REM1 IF NO ERRORS
- SB5 EVNC PRESET ERROR MESSAGE ADDRESS
- SX4 X4-/EMSG/VNF
- ZR X4,REM2 IF VSN NOT IN CATALOG
- SB5 EVAA RESET ERROR MESSAGE ADDRESS
- EQ REM2 ISSUE ERROR MESSAGE
- REM1 RJ ISV INITIALIZE SCRATCH VSNS
- RJ CUI CLEAR UTILITY INTERLOCK
- ISSMSG IVRC,I ISSUE INFORMATIVE MESSAGE
- EQ REMX RETURN
- SCH SPACE 4,10
- ** SCH - PROCESS *SOURCCH* DIRECTIVE.
- SCH SUBR ENTRY/EXIT
- CHKFIL S CHECK IF FILE SPECIFIED
- ZR X1,SCHX IF FILE NOT SPECIFIED
- SCH1 RCREC N2,5
- GRENTRY N2,SCHA GET DUMMY USER RECORD
- ZR X6,SCH3 IF NO USERNAMES
- SCH2 GRENTRY N2,SCHA GET USERNAMES
- ZR X6,SCH3 IF END OF USERNAMES
- SA1 TI
- NZ X1,SCH3 IF TERMINAL INTERRUPT
- MX0 42
- SA1 SCHA
- BX6 X0*X1 MASK USERNAME TO PROCESS
- SA6 UN
- USERAUD S,CN PROCESS USER SOURCE LISTING
- EQ SCH2 CHECK IF MORE USERS TO PROCESS
- SCH3 WRITER S WRITE END OF RECORD
- EQ SCHX RETURN
- SCHA BSS 1 SECONDARY USERNAME POINTER
- SOU SPACE 4,10
- ** SOU - PROCESS *SOURCE* DIRECTIVE.
- SOU4 WRITER S WRITE END OF RECORD
- SOU SUBR ENTRY/EXIT
- CHKFIL S CHECK SOURCE FILE
- ZR X1,SOUX IF NO FILE
- RCREC N1,4
- GRENTRY N1,VCAT GET RECORD ENTRY FOR DUMMY VSN
- ZR X6,SOU2 IF END OF VSNS
- SOU1 GRENTRY N1,VCAT GET RECORD ENTRY
- ZR X6,SOU2 IF END OF VSNS
- RJ VSS PROCESS SOURCE VSN ENTRY
- SA1 TI
- NZ X1,SOU4 IF TERMINAL INTERRUPT
- EQ SOU1 GET NEXT VSN
- SOU2 RCREC N2,5
- GRENTRY N2,SOUA GET RECORD ENTRY OF DUMMY USER NAME
- ZR X6,SOU4 IF END OF USER NAMES
- SOU3 GRENTRY N2,SOUA GET RECORD ENTRY
- ZR X6,SOU4 IF END OF USER NAMES
- SA1 TI
- NZ X1,SOU4 IF TERMINAL INTERRUPT
- MX0 42 GET USER NAME
- SA1 SOUA
- BX6 X0*X1
- SA6 UN
- SA6 SOUC
- WRITEC S,SOUB WRITE USER DIRECTIVE
- USERAUD SNV PROCESS USER SOURCE LIST WITH NO VSNS
- WRITEC S,(=C*DROP*) WRITE *DROP* DIRECTIVE
- EQ SOU3 CHECK NEXT USER NAME
- SOUA BSS 1 SECONDARY USER NAME POINTER IMAGE
- SOUB DATA H*USER =* INITIAL DIRECTIVE
- SOUC DATA C* *
- SUN SPACE 4,10
- ** SUN - PROCESS *SOURCUN* DIRECTIVE.
- SUN3 WRITER S WRITE END OF RECORD
- SUN SUBR ENTRY/EXIT
- CHKFIL S CHECK SOURCE FILE
- ZR X1,SUNX IF NO FILE
- SA1 UN
- ZR X1,SUN1 IF MULTIPLE VSNS
- USERAUD S PROCESS USER SOURCE LIST
- EQ SUN3 WRITE END OF RECORD
- SUN1 RCREC N2,5
- GRENTRY N2,SUNA GET RECORD ENTRY OF DUMMY USER
- ZR X6,SUN3 IF END OF USER NAMES
- SUN2 GRENTRY N2,SUNA GET RECORD ENTRY
- ZR X6,SUN3 IF END OF USER NAMES
- SA1 TI
- NZ X1,SUN3 IF TERMINAL INTERRUPT
- MX0 42 GET USER NAME
- SA1 SUNA
- BX6 X0*X1
- SA6 UN
- USERAUD S PROCESS USER SOURCE LIST
- EQ SUN2 CHECK NEXT USER NAME
- SUNA BSS 1 SECONDARY USER NAME POINTER IMAGE
- SVS SPACE 4,10
- * SVS - PROCESS *SOURCVS* DIRECTIVE.
- SVS4 WRITER S SET END OF RECORD
- SVS SUBR ENTRY/EXIT
- CHKFIL S
- ZR X1,SVSX IF NO SOURCE FILE
- SA1 VS
- ZR X1,SVS1 IF MULTIPLE VSNS
- SX6 B0
- RJ GVE GET VSN ENTRY
- NZ X4,SVSX IF NOT FOUND
- RJ GUV GET USER INFORMATION ON VSN
- RJ VSS PROCESS VSN SOURCE LIST
- EQ SVS4 SET END OF RECORD
- SVS1 SA1 LF
- ZR X1,SVS2 IF NOT LOCAL FILE MODE
- RJ RVE REPLACE VSN ENTRIES
- SVS2 RCREC N1,4 GET RECORD ENTRY OF DUMMY VSN
- GRENTRY N1,VCAT
- ZR X6,SVS4 IF NO MORE ENTRIES
- SVS3 GRENTRY N1,VCAT
- ZR X6,SVS4 IF NO MORE ENTRIES
- SA1 TI
- NZ X1,SVS4 IF TERMINAL INTERRUPT
- RJ GUV GET USER INFORMATION ON VSN
- RJ VSS PROCESS VSN SOURCE LIST
- EQ SVS3 GET NEXT ENTRY
- USE SPACE 4,10
- ** USE - PROCESS *USER* DIRECTIVE.
- USE SUBR ENTRY/EXIT
- RJ RVE REPLACE VSN ENTRIES
- SA1 UN GET USER NAME
- RJ IUN INTERLOCK USER NAME
- SX6 B1 SET USER NAME NOT FOUND
- SA6 UF
- RJ USL PROCESS USER LEVEL
- EQ USEX RETURN
- VAL SPACE 4,10
- ** VAL - PROCESS *VALIDAT* DIRECTIVE.
- VAL2 RJ KFM SET FAMILY LEVEL K-DISPLAY
- VAL SUBR ENTRY/EXIT
- MX0 42
- SRCHTAB TVUN,UN,UNCL SEARCH FOR USER NAME
- ZR X4,VAL2 IF ALREADY IN TABLE
- SRCHTAB TVUN,=0,B2,B3,B4 SEARCH FOR EMPTY ENTRY
- NZ X4,VAL1 IF NO ROOM LEFT IN TABLE
- SA2 UN SET USER NAME IN TABLE
- BX6 X2
- SA6 A1
- EQ VAL2 REWRITE FIRST RECORD
- VAL1 ISSMSG EVUM,E ISSUE ERROR MESSAGE
- EQ VAL2 REWRITE FIRST RECORD
- VSN SPACE 4,10
- ** VSN - PROCESS *VSN* DIRECTIVE.
- VSN6 RJ GUV GET USER INFORMATION FOR VSN
- RJ SUI SET UTILITY INTERLOCK
- GFILEV UN,VS,1,FCAT,PCAT,TAVS GET TAPE FILE ENTRY
- SA1 /ADD/FBIL
- LJUST X1,X1,/BTC/FBIL,/UPB/FBIL
- NZ X1,VSN7 IF FILE BUSY
- SA1 /ADD/REELNO CHECK REEL NUMBER OF VSN
- RJUST X1,X1,/BTC/REELNO,/UPB/REELNO
- SX1 X1-1
- ZR X1,VSN6.1 IF FIRST REEL EQUALS CURRENT REEL
- SA1 TAVS+/CAT/VSBF CHECK IF FIRST VSN BUSY
- RJUST X1,X1,/BTC/VSBF,/UPB/VSBF
- NZ X1,VSN7 IF FIRST VSN BUSY
- VSN6.1 SX6 B7 SAVE VSN COUNT
- SA6 VC
- SA1 UN
- RJ IUN INTERLOCK USER NAME
- RJ CUI CLEAR UTILITY INTERLOCK
- SB2 1R# REPLACE USER NAME IN ERROR MESSAGE
- SB3 VSNA
- SB5 -IVRB
- SA1 UN
- RJ SNM SET NAME IN MESSAGE
- RJ RVE REPLACE VSN ENTRIES
- ISSMSG VSNA,I ISSUE INFORMATIVE MESSAGE
- SX6 B1
- EQ VSN4 SET VSN IN CATALOG FLAG
- VSN7 RJ CUI CLEAR UTILITY INTERLOCK
- RJ RVE REPLACE VSN ENTRIES
- VSN8 SX6 B0 CLEAR VSN INTERLOCK FLAG
- SA6 VI
- SB5 EVSB *VSN BUSY*
- ISSMSG B5,E ISSUE ERROR MESSAGE
- VSN SUBR ENTRY/EXIT
- SX6 B0
- SA6 VI CLEAR VSN INTERLOCK
- SA6 VC CLEAR VSN COUNT
- SA1 NV
- NZ X1,VSN1 IF NO VERIFY MODE
- SX6 B1 FLAG VSN INTERLOCK
- RJ GVE GET VSN ENTRY
- ZR X4,VSN2 IF VSN IN CATALOG
- VSN1 MOVE TSVL,DVSC,VCAT SET DEFAULT VSN ENTRY
- MOVEBIT VS,/ADD/VSN,/BTC/VSN,,/UPB/VSN
- MOVEBIT VS,/ADD/PRN,/BTC/PRN,,/UPB/PRN
- ISSMSG IVNC,I ISSUE INFORMATIVE MESSAGE
- SX6 B0
- EQ VSN4 CLEAR VSN IN CATALOG FLAG
- VSN2 SA1 /ADD/VSBF CHECK IF VSN IS BUSY
- RJUST X1,X1,/BTC/VSBF,/UPB/VSBF
- SX6 B1
- ZR X1,VSN3 IF VSN NOT BUSY
- SA6 VI SET VSN BUSY FLAG
- VSN3 RJ RVB REPLACE VSN IN BUFFER
- SA1 /ADD/VASF CHECK IF VSN IS ASSIGNED
- RJUST X1,X1,/BTC/VASF,/UPB/VASF
- NZ X1,VSN5 IF VSN ASSIGNED
- SA1 VI
- NZ X1,VSN8 IF VSN IS BUSY AND NOT ASSIGNED
- ISSMSG IVIC,I ISSUE INFORMATIVE MESSAGE
- SX6 B1
- VSN4 SA6 VF SET/CLEAR VSN IN CATALOG FLAG
- RJ VSL PROCESS VSN LEVEL
- EQ VSNX RETURN
- * PROCESS VSN WITH FILE CATALOG ASSIGNED.
- VSN5 SA1 VI
- ZR X1,VSN6 IF VSN NOT BUSY, BUT ASSIGNED
- SA1 LF
- NZ X1,VSN8 IF LOCAL FILE MODE
- SX1 ASVS CHECK FOR SCRATCH VSN
- SA2 VCAT+VEVS
- BX1 X1*X2
- ZR X1,VSN6 IF *VSN* NOT SCRATCH
- SA1 VCAT+VEFV
- SA2 MX
- MX3 -9
- MX7 -4
- BX3 -X3*X1 EXTRACT EJT ORDINAL
- LX1 -12
- BX7 -X7*X1 EXTRACT MACHINE INDEX-1
- BX7 X7-X2
- NZ X7,VSN8 IF NOT ASSIGNED ON THIS MACHINE
- RJ IJM ISSUE JSN MESSAGE
- SX6 B1 SET VSN IN CATALOG
- EQ VSN4 SET VSN IN CATALOG FLAG
- VSNA DATA C* VSN RESERVED BY #######.*
- IJM SPACE 4,10
- ** IJM - ISSUE JSN MESSAGE.
- *
- * ENTRY (X3) = EJT ORDINAL.
- *
- * EXIT VSN INTERLOCKED MESSAGE ISSUED.
- *
- * USES B - 2, 3, 5.
- * X - 0, 1, 2.
- *
- * CALLS RCW, SNM.
- *
- * MACROS ISSMSG.
- IJM SUBR ENTRY/EXIT
- SX2 EJTP READ EJT POINTERS
- RJ RCW
- SX2 EJTE SET EJT ENTRY LENGTH
- LX1 24
- IX2 X3*X2
- SX1 X1
- IX2 X1+X2
- ERRNZ JSNE-0
- RJ RCW READ EJT *JSNE* WORD
- MX0 24 SET JSN
- BX1 X0*X1
- SB2 1R?
- SB3 IJMA SET MESSAGE ADDRESS
- SB5 -IVSI SET TEMPLATE ADDRESS
- RJ SNM SET NAME IN MESSAGE
- ISSMSG IJMA,I
- EQ IJMX RETURN
- IJMA DATA C* VSN INTERLOCKED. JSN IS ????.*
- QUAL *
- TITLE VSN LEVEL DIRECTIVE PROCESSORS.
- SPACE 4
- QUAL LVVS
- VSNDIR SPACE 4,10
- ** VSN LEVEL DIRECTIVE PROCESSORS.
- *
- * ENTRY FROM *DIP*.
- * (VF) = 0 IF VSN NOT IN CATALOG.
- * (VS) = VSN NAME.
- * (VCAT) = VSN ENTRY IMAGE.
- *
- * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
- ADD SPACE 4,10
- ** ADD - PROCESS *ADD* DIRECTIVE.
- ADD1 ISSMSG B5,E ISSUE ERROR MESSAGE
- ADD SUBR ENTRY/EXIT
- SA1 VF CHECK VSN FLAG
- SB5 EVAI SET ERROR MESSAGE ADDRESS
- NZ X1,ADD1 IF VSN ALREADY IN CATALOG
- RJ ARV ADD/REVISE VSN ENTRY
- SB2 B0
- RJ SMC ISSUE *SDAD* ACCOUNT FILE MESSAGE
- ISSMSG IVAC,I ISSUE INFORMATIVE MESSAGE
- RJ FAL PROCESS FAMILY LEVEL
- EQ ADDX RETURN
- DRO SPACE 4,10
- ** DRO - PROCESS *DROP* DIRECTIVE.
- DRO SUBR ENTRY/EXIT
- SA1 VF
- ZR X1,DRO1 IF VSN NOT IN CATALOG
- SA1 LF
- NZ X1,DRO1 IF LOCAL FILE MODE
- RJ RVE REPLACE VSN ENTRIES
- SA1 VC
- ZR X1,DRO1 IF NOT ASSIGNED VSN
- MX1 UNKL*6
- RJ IUN INTERLOCK USER NAME
- DRO1 ISSMSG IVNP,I ISSUE INFORMATIVE MESSAGE
- RJ FAL PROCESS FAMILY LEVEL
- EQ DROX RETURN
- OWN SPACE 4,10
- ** OWN - PROCESS *OWNER* DIRECTIVE.
- OWN SUBR ENTRY/EXIT
- SA1 /ADD/OWNER GET NEW OWNERSHIP
- RJUST X1,X1,/BTC/OWNER,/UPB/OWNER
- ZR X1,OWNX IF CENTER-OWNED VSN
- SA1 /ADD/SYSTEM GET SYSTEM VSN FLAG
- RJUST X1,X1,/BTC/SYSTEM,/UPB/SYSTEM
- ZR X1,OWNX IF SYSTEM VSN FLAG NOT SET
- SX1 B0+ RESET OWNERSHIP TO CENTER-OWNED
- MOVEBIT A1,/ADD/OWNER,/BTC/OWNER,/BTC/OWNER-1,/UPB/OWNER
- ISSMSG ESVC,E * SYSTEM VSN CANNOT BE USER-OWNED.*
- EQ OWNX RETURN
- PGO SPACE 4,10
- ** PGO - PROCESS *GO* DIRECTIVE.
- *
- * ENTRY (VF) = 0, IF VSN NOT IN CATALOG.
- *
- * EXIT VSN ADDED OR REVISED.
- *
- * USES A - 1.
- * X - 1.
- *
- * CALLS ADD, REV.
- PGO1 RJ ADD ADD VSN ENTRY
- PGO SUBR ENTRY/EXIT
- SA1 VF
- ZR X1,PGO1 IF VSN NOT IN CATALOG
- RJ REV REVISE VSN
- EQ PGOX RETURN
- REV SPACE 4,10
- ** REV - PROCESS *REVISE* DIRECTIVE.
- REV7 ISSMSG B5,E ISSUE ERROR MESSAGE
- REV SUBR ENTRY/EXIT
- SA1 VF CHECK VSN FLAG
- SB5 EVNA SET ERROR MESSAGE ADDRESS
- ZR X1,REV7 IF VSN NOT IN CATALOG
- SA1 VC
- NZ X1,REV4 IF ASSIGNED VSN
- RJ ARV ADD/REPLACE VSN ENTRY
- REV1 SB2 B1
- RJ SMC ISSUE *SDRV* ACCOUNT FILE MESSAGE
- SA4 ER
- PL X4,REV2 IF NO *ERROR* MESSAGE SET
- BX4 -X4
- SB5 X4
- EQ REV7 ISSUE *ERROR* MESSAGE
- REV2 SB5 X4
- NZ B5,REV3 IF *INFORM* MESSAGE ALREADY SET
- SB5 IVSR SET *INFORM* MESSAGE
- REV3 ISSMSG B5,I ISSUE *INFORM* MESSAGE
- RJ FAL PROCESS FAMILY LEVEL
- EQ REVX RETURN
- REV4 MX0 VSKL*6 FIND ENTRY IN VSN TABLE
- SA3 VC
- ERRNZ TSVL-4 VSN ENTRY LENGTH NOT 2**2
- LX3 2
- SRCHTAB TAVS,VS,X3,TSVL
- MOVE TSVL,VCAT,A1 REPLACE VSN ENTRY IN TABLE
- SX0 UOVS+TVVS RESET OWNERSHIP AND SITE STATUSES
- SA1 VCAT+VEVS
- BX1 X0*X1
- SA2 VC
- LX2 2
- REV5 SX2 X2-TSVL
- NG X2,REV6 IF END OF VSN TABLE
- SA3 X2+TAVS+VEVS RESET STATUS BITS
- BX6 -X0*X3
- BX6 X6+X1
- SA6 A3
- EQ REV5 CHECK NEXT VSN
- REV6 SA1 VC REPLACE VSNS ASSIGNED TO TAPE FILE
- LX1 2
- REPVSN TAVS,X1
- MX1 UNKL*6
- RJ IUN INTERLOCK USER NAME
- EQ REV1 ISSUE *SDRV* MESSAGE
- STA SPACE 4,10
- ** STA - PROCESS *STATUS* DIRECTIVE
- STA4 RJ KST SET VSN STATUS IN K-DISPLAY
- STA SUBR ENTRY/EXIT
- SA1 ME
- ZR X1,STA2 IF AVAILABLE
- SX1 X1-1
- ZR X1,STA1 IF CLEANED
- SX1 X1-1
- ZR X1,STA3 IF HOLD
- MOVEBIT (=1),/ADD/ERRFLAG,/BTC/ERRFLAG,0,/UPB/ERRFLAG
- MOVEBIT (=1),/ADD/MAINT,/BTC/MAINT,0,/UPB/MAINT
- EQ STA4 SET STATUS IN K-DISPLAY
- STA1 MOVEBIT (=0),/ADD/USAGE,/BTC/USAGE,59,/UPB/USAGE
- STA2 MOVEBIT (=0),/ADD/ERRFLAG,/BTC/ERRFLAG,0,/UPB/ERRFLAG
- MOVEBIT (=0),/ADD/MAINT,/BTC/MAINT,0,/UPB/MAINT
- EQ STA4 SET STATUS IN K-DISPLAY
- STA3 MOVEBIT (=0),/ADD/ERRFLAG,/BTC/ERRFLAG,0,/UPB/ERRFLAG
- MOVEBIT (=1),/ADD/MAINT,/BTC/MAINT,0,/UPB/MAINT
- EQ STA4 SET STATUS IN K-DISPLAY
- SYS SPACE 4,10
- ** SYS - PROCESS *SYSTEM* DIRECTIVE.
- SYS SUBR ENTRY/EXIT
- SA1 /ADD/SYSTEM GET NEW SYSTEM VSN FLAG
- RJUST X1,X1,/BTC/SYSTEM,/UPB/SYSTEM
- SA3 VF CHECK IF VSN ALREADY IN CATALOG
- ZR X3,SYS2 IF VSN NOT IN CATALOG
- SA2 SVF
- BX6 X1-X2
- ZR X6,SYSX IF SYSTEM VSN FLAG DID NOT CHANGE
- SB5 ECSV * CANNOT CHANGE SYSTEM VSN FLAG.*
- SYS1 SA1 SVF RESET OLD *SYSTEM* VALUE INTO VSN ENTRY
- MOVEBIT A1,/ADD/SYSTEM,/BTC/SYSTEM,/BTC/SYSTEM-1,/UPB/SYSTEM
- ISSMSG B5,E ISSUE ERROR MESSAGE
- EQ SYSX RETURN
- SYS2 ZR X1,SYSX IF SYSTEM VSN FLAG NOT SET
- SA1 /ADD/OWNER CHECK VSN OWNERSHIP
- RJUST X1,X1,/BTC/OWNER,/UPB/OWNER
- ZR X1,SYSX IF CENTER-OWNED VSN
- SB5 ESVC * SYSTEM VSN CANNOT BE USER-OWNED.*
- EQ SYS1 RESET OLD VALUE AND ISSUE ERROR MESSAGE
- VTY SPACE 4,10
- ** VTY - PROCESS *VT* DIRECTIVE.
- VTY SUBR ENTRY/EXIT
- SA1 VF CHECK IF VSN ALREADY IN CATALOG
- ZR X1,VTYX IF VSN NOT IN CATALOG
- SA1 /ADD/VT GET NEW VSN TAPE TYPE
- RJUST X1,X1,/BTC/VT,/UPB/VT
- SA2 VTT
- BX6 X1-X2
- ZR X6,VTYX IF VSN TAPE TYPE DID NOT CHANGE
- SA1 VTT RESET OLD *VT* VALUE INTO VSN ENTRY
- MOVEBIT A1,/ADD/VT,/BTC/VT,1,/UPB/VT
- ISSMSG ECTD,E * CANNOT CHANGE TAPE TYPE / DENSITY.*
- EQ VTYX RETURN
- SPACE 4,10
- QUAL *
- TITLE USER LEVEL DIRECTIVE PROCESSORS.
- SPACE 4
- QUAL LVUS
- USEDIR SPACE 4,10
- ** USER LEVEL DIRECTIVE PROCESSORS.
- *
- * ENTRY FROM *DIP*.
- * (AA) = AUDIT RANDOM ADDRESS FOR K-DISPLAY.
- * (UF) = 0 IF FILES ASSIGNED TO USER.
- * (UN) = USER NAME.
- *
- * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
- ACN SPACE 4,10
- ** ACN - PROCESS *AUDITCN* DIRECTIVE.
- ACN SUBR ENTRY/EXIT
- NEWPAGE PFIA,PFIAL SET PAGE HEADER
- USERAUD A,CN PROCESS USER AUDIT LIST
- NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
- EQ ACNX FORCE NEW PAGE
- AFI SPACE 4,10
- ** AFI - PROCESS *AUDITFI* DIRECTIVE.
- AFI SUBR ENTRY/EXIT
- NEWPAGE PFIA,PFIAL FORCE NEW PAGE
- GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
- NZ X4,AFIX IF FILE NOT FOUND
- RJ FIA PROCESS FILE AUDIT
- NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
- EQ AFIX RETURN
- AFV SPACE 4,10
- ** AFV - PROCESS *AUDITFV* DIRECTIVE.
- AFV SUBR ENTRY/EXIT
- NEWPAGE PFIA,PFIAL FORCE NEW PAGE
- USERAUD A,,VS PROCESS USER AUDIT LIST
- NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
- EQ AFVX RETURN
- DRO SPACE 4,10
- ** DRO - PROCESS *DROP* DIRECTIVE.
- DRO SUBR ENTRY/EXIT
- MX1 42 SET GENERAL USER NAME INTERLOCK
- RJ IUN INTERLOCK USER NAME
- ISSMSG IULC,I ISSUE INFORMATIVE MESSAGE
- RJ FAL PROCESS FAMILY LEVEL
- EQ DROX RETURN
- FIL SPACE 4,10
- ** FIL - PROCESS *FILE* DIRECTIVE.
- FIL3 ISSMSG B5,E ISSUE ERROR MESSAGE
- FIL SUBR ENTRY/EXIT
- SA4 NV GET FILE VIA FILE ID
- GFILE UN,FI,FCAT,PCAT,TAVS,X4
- ZR X4,FIL1 IF FILE FOUND
- SX6 B0 PRESET URDATE FIELD
- SA6 TAVS+/CAT/URDATE
- SA6 TAVS+/CAT/NEWRDT
- RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
- ISSMSG IFNR,I ISSUE INFORMATIVE MESSAGE
- SX6 B0
- EQ FIL2 CLEAR RESERVE FLAG
- FIL1 RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
- SA1 /ADD/FBIL CHECK IF FILE IS BUSY
- RJUST X1,X1,/BTC/FBIL,/UPB/FBIL
- SB5 EFIB
- NZ X1,FIL3 IF FILE IS BUSY
- ISSMSG IFIR,I ISSUE INFORMATIVE MESSAGE
- SX6 B1 SET RESERVE FLAG
- FIL2 SA6 RF
- SA1 VC CLEAR NEXT VSN ENTRY IN TABLE
- LX1 2
- SX6 B0
- SA6 X1+TAVS
- SA6 AV CLEAR NEW VSN TABLE ADDRESS
- RJ KVQ SET FIRST VSN AND SEQUENCE IN K-DISPLAY
- RJ KAV SET ASSIGNED VSNS IN K-DISPLAY
- RJ //FIL PROCESS FILE LEVEL
- EQ FILX RETURN
- FIV SPACE 4,10
- ** FIV - PROCESS *FILEV* DIRECTIVE.
- FIV4 ISSMSG B5,E ISSUE ERROR MESSAGE
- FIV SUBR ENTRY/EXIT
- MX0 VSKL*6 SET FIRST VSN
- SA1 FV
- BX6 X0*X1
- SA6 A1
- SA6 VS
- BX3 -X0*X1 SET SEQUENCE NUMBER
- SA4 NV GET FILE VIA VSN
- GFILEV UN,FV,X3,FCAT,PCAT,TAVS,X4
- ZR X4,FIV2 IF FILE FOUND
- PL X4,FIV1 IF DEFAULT IS SET
- SX4 X4+B1 CHECK IF INCORRECT SEQUENCE NUMBER
- SB5 EIQN
- ZR X4,FIV4 IF INCORRECT SEQUENCE NUMBER
- SB5 EVNV
- EQ FIV4 ISSUE ERROR MESSAGE
- FIV1 RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
- RJ SDD SET DEFAULT DENSITY
- ISSMSG IFNR,I ISSUE INFORMATIVE MESSAGE
- SX6 B0 CLEAR NEW VSN TABLE ADDRESS
- SA6 AV
- SA1 QN
- SX1 X1-1
- NZ X1,FIV3 IF NOT FIRST FILE
- SX6 TAVS SET NEW VSN TABLE ADDRESS
- SA6 AV
- SX6 B0
- EQ FIV3 CLEAR RESERVE FLAG
- FIV2 RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
- SA1 /ADD/FBIL CHECK IF FILE IS BUSY
- RJUST X1,X1,/BTC/FBIL,/UPB/FBIL
- SB5 EFIB
- NZ X1,FIV4 IF FILE IS BUSY
- ISSMSG IFIR,I ISSUE INFORMATIVE MESSAGE
- SX6 B0 CLEAR NEW VSN TABLE ADDRESS
- SA6 AV
- SX6 B1 SET RESERVE FLAG
- FIV3 SA6 RF
- SA1 VC CLEAR NEXT VSN ENTRY IN TABLE
- LX1 2
- SX6 B0
- SA6 X1+TAVS
- RJ KVQ SET FIRST VSN AND SEQUENCE IN K-DISPLAY
- RJ KAV SET ASSIGNED VSNS IN K-DISPLAY
- RJ //FIL PROCESS FILE LEVEL
- EQ FIVX RETURN
- MCN SPACE 4,10
- ** MCN - PROCESS *MREADCN* DIRECTIVE.
- MCN SUBR ENTRY/EXIT
- CHKFIL SS CHECK MACHINE READABLE FILE
- ZR X1,MCNX IF NO FILE
- USERAUD M,CN PROCESS MACHINE READABLE LIST
- WRITER SS WRITE END OF RECORD
- EQ MCNX RETURN
- MFI SPACE 4,10
- ** MFI - PROCESS *MREADFI* DIRECTIVE.
- MFI SUBR ENTRY/EXIT
- CHKFIL SS
- ZR X1,MFIX IF NO MACHINE READABLE FILE
- GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
- NZ X4,MFIX IF FILE NOT FOUND
- RJ PMF PROCESS FILE MACHINE READABLE
- WRITER SS SET END OF RECORD
- EQ MFIX RETURN
- MFV SPACE 4,10
- ** MFV - PROCESS *MREADFV* DIRECTIVE.
- MFV SUBR ENTRY/EXIT
- CHKFIL SS
- ZR X1,MFVX IF NO MACHINE READABLE FILE
- USERAUD M,,VS PROCESS MACHINE READABLE LIST
- WRITER SS SET END OF RECORD
- EQ MFVX RETURN
- RLF SPACE 4,10
- ** RLF - PROCESS *RELEASF* DIRECTIVE.
- RLF1 ISSMSG EFNI,E ISSUE ERROR MESSAGE
- RLF SUBR ENTRY/EXIT
- GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
- NZ X4,RLF1 IF FILE NOT FOUND
- MOVEBIT TAVS+/CAT/VSN,VS,/BTC/VSN,/UPB/VSN SET VSN
- RELVSN UN,VS RELEASE FILE VIA VSN
- ISSMSG IFRC,I ISSUE INFORMATIVE MESSAGE
- SAFET UN,,,FCST CHECK IF FILES ASSIGNED
- SX6 X4 SET/CLEAR USER NAME FOUND FLAG
- SA6 UF
- RJ USL PROCESS USER LEVEL
- EQ RLFX RETURN
- RLV SPACE 4,10
- ** RLV - PROCESS *RELEASV* DIRECTIVE.
- RLV3 ISSMSG EFNI,E ISSUE ERROR MESSAGE
- RLV SUBR ENTRY/EXIT
- SX6 B0
- RJ GVE GET VSN ENTRY
- NZ X4,RLV3 IF VSN NOT IN CATALOG
- SA1 /ADD/FVSN CHECK FIRST VSN
- LJUST X1,X6,/BTC/FVSN,/UPB/FVSN
- SA1 LF
- ZR X1,RLV1 IF NOT LOCAL FILE MODE
- MX0 VSKL*6
- SA1 VS SAVE VSN
- BX6 X0*X1
- SA6 A1
- BX3 -X0*X1
- EQ RLV2 RELEASE VSN
- RLV1 SA6 VS SET VSN TO FIRST VSN
- SX3 B1+
- RLV2 RELVSN UN,VS,X3 RELEASE VSN
- NZ X4,RLV3 IF FILE NOT FOUND
- ISSMSG IFRC,I ISSUE INFORMATIVE MESSAGE
- SAFET UN,,,FCST CHECK IF FILES ASSIGNED
- SX6 X4 SET/CLEAR USER NAME FOUND FLAG
- SA6 UF
- RJ USL PROCESS USER LEVEL
- EQ RLVX RETURN
- SCN SPACE 4,10
- ** SCN - PROCESS *SOURCCN* DIRECTIVE.
- SCN SUBR ENTRY/EXIT
- CHKFIL S CHECK SOURCE FILE
- ZR X1,SCNX IF NO FILE
- USERAUD S,CN PROCESS USER SOURCE LIST
- WRITER S WRITE END OF RECORD
- EQ SCNX RETURN
- SFI SPACE 4,10
- ** SFI - PROCESS *SOURCFI* DIRECTIVE.
- SFI SUBR ENTRY/EXIT
- CHKFIL S
- ZR X1,SFIX IF NO SOURCE FILE
- GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
- NZ X4,SFIX IF FILE NOT FOUND
- SX6 B0 FLAG DO NOT SKIP FIRST VSN
- RJ PSF PROCESS FILE SOURCE
- WRITER S SET END OF RECORD
- EQ SFIX RETURN
- SFV SPACE 4,10
- ** SFV - PROCESS *SOURCFV* DIRECTIVE.
- SFV SUBR ENTRY/EXIT
- CHKFIL S
- ZR X1,SFVX IF NO SOURCE FILE
- USERAUD S,,VS PROCESS USER SOURCE LIST
- WRITER S SET END OF RECORD
- EQ SFVX RETURN
- SDD SPACE 4,15
- ** SDD - SET DEFAULT DENSITY IN FILE CATALOG.
- *
- * ENTRY (VS) = VSN.
- * FILE CATALOG ENTRY IN *FCAT* BUFFER.
- *
- * EXIT (DE) = DEFAULT FILE DENSITY FOR VSN TAPE TYPE.
- * NEW FILE DENSITY SET IN FILE CATALOG ENTRY.
- * VSN ENTRY IN *VCAT* BUFFER.
- *
- * USES X - 1, 6.
- * A - 1, 6.
- *
- * CALLS GVE.
- *
- * MACROS MOVEBIT, RJUST.
- SDD SUBR ENTRY/EXIT
- RJ GVE GET VSN ENTRY
- SA1 /ADD/VT GET VSN TAPE TYPE
- RJUST X1,X1,/BTC/VT,/UPB/VT
- SA1 X1+SDDA SET DEFAULT DENSITY FOR TAPE TYPE
- BX6 X1
- SA6 DE
- MOVEBIT A1,/ADD/D,/BTC/D,5,/UPB/D
- EQ SDDX RETURN
- SDDA BSS 0 DEFAULT DENSITIES (INDEXED BY TAPE TYPE)
- CON 44B PE DENSITY (MT/NT TAPE TYPE)
- CON 26B CE DENSITY (CT TAPE TYPE)
- CON 0
- CON 66B AE DENSITY (AT TAPE TYPE)
- QUAL *
- TITLE FILE LEVEL DIRECTIVE PROCESSORS.
- SPACE 4
- QUAL LVFI
- FIL SPACE 4,30
- ** FILE LEVEL DIRECTIVE PROCESSORS.
- *
- * ENTRY (AV) = ADDRESS OF NEW VSNS WITHIN *TAVS*.
- * (CA) = RANDOM ADDRESS OF FILE CATALOG.
- * (CN) = CHARGE NUMBER.
- * (EV) = EXTERNAL VSN.
- * (FC) = MAXIMUM FRAME COUNT.
- * (FI) = ORIGINAL FILE IDENTIFIER.
- * (FV) = FIRST VSN.
- * (NI) = NEW FILE IDENTIFIER.
- * (NS) = NOISE SIZE.
- * (PA) = PREVIOUS FILE RANDOM ADDRESS.
- * (QN) = SEQUENCE NUMBER.
- * (RC) = REEL COUNT.
- * (RF) = 0 IF FILE NOT RESERVED.
- * (ST) = ASSIGNED VSNS STATUS BITS.
- * (SV) = 0 IF NOT SYMBOLIC ACCESS.
- * (UF) = 0 IF FILES ASSIGNED TO USER.
- * (UN) = USER NAME.
- * (VC) = VSN COUNT.
- * (FCAT) = FILE CATALOG IMAGE.
- * (TAVS) = ASSIGNED VSNS IMAGE.
- *
- * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
- AAU SPACE 4,10
- ** AAU - PROCESS *AUDITAU* DIRECTIVE.
- AAU3 NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
- AAU SUBR ENTRY/EXIT
- SA1 UN GET USER NAME
- RJ SFN SPACE FILL NAME
- BX1 X6 SET USER NAME IN HEADER
- MOVEBIT A1,/PAUA/USER,UNKL*6,,/PAUAU/USER
- MOVEBIT FI,/PAUA/FILE,FIKL*6,,/PAUAU/FILE SET FILE ID
- SA1 /PAUA/FILE CHECK FOR EXTRA END OF LINES
- SB3 /PAUAU/FILE
- RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
- SA1 FV GET FIRST VSN
- RJ SFN SPACE FILL NAME
- BX1 X6 SET FIRST VSN IN HEADER
- MOVEBIT A1,/PAUA/FVSN,VSKL*6,,/PAUAU/FVSN
- SA1 QN GET SEQUENCE NUMBER
- SX1 X1+10000
- RJ CDD CONVERT TO DECIMAL DISPLAY
- MX0 -24 SET SEQUENCE NUMBER IN HEADER
- BX1 -X0*X6
- MOVEBIT A1,/PAUA/QN,4*6,23,/PAUAU/QN
- NEWPAGE PAUA,PAUAL FORCE NEW PAGE
- SA1 AU
- ZR X1,AAU1 IF MULTIPLE USER AUDIT
- RJ GAE GET ALTERNATE USER ENTRY
- SA1 RF
- ZR X1,AAU3 IF FILE NOT RESERVED
- NZ X4,AAU3 IF ALTERNATE USER NOT FOUND
- RJ AUA PROCESS ALTERNATE USER AUDIT
- EQ AAU3 RETURN
- AAU1 RJ RAE REPLACE ALTERNATE USER ENTRIES
- SA1 /ADD/AUCAT GET ADMIT CATALOG RANDOM ADDRESS
- RJUST X1,X1,/BTC/AUCAT,/UPB/AUCAT
- ZR X1,AAU3 IF NO ADMIT CATALOG
- RCREC N4,X1
- AAU2 GRENTRY N4,ACAT GET RECORD ENTRY
- ZR X6,AAU3 IF NO MORE ENTRIES
- SA1 TI
- NZ X1,AAU3 IF TERMINAL INTERRUPT
- RJ AUA PROCESS ALTERNATE USER AUDIT
- EQ AAU2 GET NEXT ENTRY
- AUS SPACE 4,10
- ** AUS - PROCESS *AUSER* DIRECTIVE.
- AUS7 ISSMSG B5,E ISSUE ERROR MESSAGE
- AUS SUBR ENTRY/EXIT
- SA1 NV
- NZ X1,AUS1 IF NO VERIFY MODE
- SA1 RF CHECK RESERVE FLAG
- SB5 EFNR SET ERROR MESSAGE ADDRESS
- ZR X1,AUS7 IF FILE NOT RESERVED
- RJ GAE GET ALTERNATE USER ENTRY
- ZR X4,AUS5 IF ENTRY FOUND
- ISSMSG IANA,I ISSUE INFORMATIVE MESSAGE
- SX6 B0
- EQ AUS6 CLEAR ALTERNATE USER FLAG
- AUS1 SA1 RF
- NZ X1,AUS4 IF FILE RESERVED
- SA1 SV
- NZ X1,AUS2 IF SYMBOLIC ACCESS
- SA3 QN GET FILE VIA VSN
- GFILEV UN,FV,X3,FCAT,PCAT,TAVS
- SB5 EFNR
- NZ X4,AUS7 IF FILE NOT RESERVED
- EQ AUS3 UNPACK FILE CATALOG
- AUS2 GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
- SB5 EFNR
- NZ X4,AUS7 IF FILE NOT RESERVED
- AUS3 RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
- SX6 B1 SET RESERVED FLAG
- SA6 RF
- SA1 VC CLEAR NEXT VSN ENTRY IN TABLE
- LX1 2
- SX6 B0
- SA6 X1+TAVS
- SA6 AV CLEAR NEW VSN TABLE ADDRESS
- RJ KVQ SET FIRST VSN AND SEQUENCE IN K-DISPLAY
- RJ KAV SET ASSIGNED VSNS IN K-DISPLAY
- AUS4 MOVE TAEL,DAUC,ACAT SET DEFAULT ALTERNATE USER
- MOVEBIT AU,/ADD/AUSER,/BTC/AUSER,,/UPB/AUSER
- SX6 B0
- EQ AUS6 CLEAR ALTERNATE USER FLAG
- AUS5 ISSMSG IAIA,I ISSUE INFORMATIVE MESSAGE
- SX6 B1 SET ALTERNATE USER FLAG
- AUS6 SA6 AF
- RJ AUL PROCESS ALTERNATE USER
- EQ AUSX RETURN
- ALT SPACE 4,10
- ** ALT - PROCESS *AMEND* DIRECTIVE.
- ALT1 ISSMSG B5,E ISSUE ERROR MESSAGE
- ALT SUBR ENTRY/EXIT
- SA1 RF CHECK RESERVE FLAG
- SB5 EFNR SET ERROR MESSAGE ADDRESS
- ZR X1,ALT1 IF FILE NOT RESERVED
- RJ RAF RESERVE/AMEND FILE CATALOG ENTRY
- ISSMSG IFAL,I ISSUE INFORMATIVE MESSAGE
- RJ SMF ISSUE *SDAM* ACCOUNT FILE MESSAGE
- RJ USL PROCESS USER LEVEL
- EQ ALTX RETURN
- AVS SPACE 4,10
- ** AVS - PROCESS *AVSN* DIRECTIVE.
- AVS8 ISSMSG B5,E ISSUE ERROR MESSAGE
- REPVSN VCAT,TSVL REPLACE VSN ENTRY
- EQ AVSX RETURN
- AVS9 ISSMSG B5,E ISSUE ERROR MESSAGE
- AVS SUBR ENTRY/EXIT
- SA1 /ADD/NCAT CHECK IF LAST FILE
- RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
- SB5 EAVM
- NZ X1,AVS9 IF NOT LAST FILE
- SA3 VC CHECK VSN BUFFER LENGTH
- LX3 2
- ZR X3,AVS2 IF NO VSNS ASSIGNED
- SA1 RC
- NZ X1,AVS1 IF REELS ASSIGNED TO THIS FILE
- SA2 X3+TAVS-4 COMPARE TO LAST VSN
- SA4 VS
- BX4 X4-X2
- LJUST X4,X4,VSKL*6,59
- NZ X4,AVS1 IF NOT LAST VSN
- SX6 X1+B1 INCREMENT REEL COUNT
- SA6 A1
- SA1 VS SET EXTERNAL VSN
- BX6 X1
- SA6 EV
- SX6 A2 SET NEW VSN TABLE ADDRESS
- SA6 AV
- EQ AVS7 CLEAR NEXT ENTRY
- AVS1 MX0 VSKL*6 CHECK IF VSN IS ALREADY ASSIGNED
- SRCHTAB TAVS,VS,X3,4
- SB5 EVAA
- ZR X4,AVS9 IF ALREADY ASSIGNED
- MOVE TSVL,DVSC,VCAT SET DEFAULT VSN ENTRY
- AVS2 LISTVSN VS,VCAT,1 GET VSN ENTRY
- SB5 EVNC
- NZ X4,AVS9 IF VSN NOT FOUND
- SA1 /ADD/VSBF CHECK IF VSN IS BUSY
- RJUST X1,X1,/BTC/VSBF,/UPB/VSBF
- SB5 EVSB
- NZ X1,AVS9 IF VSN IS BUSY
- SA1 /ADD/VT GET TAPE TYPE BITS FOR VSN ENTRY
- RJUST X1,X1,/BTC/VT,/UPB/VT
- SA2 /ADD/TTYP GET TAPE TYPE FIELD FROM TAPE FILE CATALOG
- RJUST X2,X2,/BTC/TTYP,/UPB/TTYP
- SX6 X2-2
- NZ X6,AVS2.1 IF NOT *NT*
- SX2 B0+ SET TAPE TYPE TO *MT/NT*
- AVS2.1 BX1 X1-X2 COMPARE TAPE TYPES
- SB5 ENMT
- NZ X1,AVS8 IF TAPE TYPES DO NOT MATCH
- SA1 LF
- NZ X1,AVS3 IF LOCAL FILE MODE
- SA1 /ADD/NVSN CHECK IF LAST VSN
- LJUST X1,X1,/BTC/NVSN,/UPB/NVSN
- SB5 EVAA
- NZ X1,AVS8 IF NOT LAST VSN
- AVS3 SA1 VC
- ZR X1,AVS5 IF NO VSNS ASSIGNED
- SA1 /ADD/VASF CHECK IF VSN IS ASSIGNED
- RJUST X1,X1,/BTC/VASF,/UPB/VASF
- SB5 EVAA
- NZ X1,AVS8 IF VSN ALREADY ASSIGNED
- SA1 VCAT+VEVS
- SX0 SVVS
- SB5 ESVM
- BX2 X0*X1
- NZ X2,AVS8 IF SYSTEM VSN
- SX0 UOVS+TVVS CHECK IF STATUSES MATCH
- SA2 ST
- BX1 X1-X2
- BX2 X0*X1
- SB5 ENMS
- NZ X2,AVS8 IF STATUSES DO NOT MATCH
- SX0 CTVS+ACVS CHECK IF TAPE TYPES MATCH
- SB5 ENMT
- BX2 X0*X1
- NZ X2,AVS8 IF TAPE TYPES DO NOT MATCH
- SA3 VC INCREMENT VSN COUNT
- SX6 X3+B1
- SA6 A3
- LX3 2
- SA1 AV
- NZ X1,AVS4 IF NOT FIRST ADDED VSN
- SX6 X3+TAVS SET NEW VSN TABLE ADDRESS
- SA6 A1
- AVS4 MOVE TSVL,VCAT,X3+TAVS SET NEW VSN IN TABLE
- SA1 RC INCREMENT REEL COUNT
- SX6 X1+B1
- SA6 A1
- NZ X1,AVS7 IF NOT FIRST REEL
- SA1 VS SET EXTERNAL VSN
- BX6 X1
- SA6 EV
- EQ AVS7 CLEAR NEXT ENTRY
- AVS5 SA1 /ADD/VASF
- RJUST X1,X1,/BTC/VASF,/UPB/VASF
- NZ X1,AVS6 IF VSN ASSIGNED
- SA1 TAVS+/CAT/URDATE RESTORE RELEASE DATE
- MOVEBIT A1,/ADD/URDATE,/BTC/URDATE,/UPB/URDATE,/UPB/URDATE
- SA1 TAVS+/CAT/NEWRDT RESTORE NEW RELEASE DATE FLAG
- MOVEBIT A1,/ADD/NEWRDT,/BTC/NEWRDT,/UPB/NEWRDT,/UPB/NEWRDT
- SX6 TAVS SET NEW VSN TABLE ADDRESS
- SA6 AV
- MOVE TSVL,VCAT,TAVS SET NEW VSN IN TABLE
- SX6 B1 SET VSN COUNT
- SA6 VC
- SA6 RC SET REEL COUNT
- SA1 VS SET EXTERNAL VSN
- BX6 X1
- SA6 EV
- EQ AVS7 CLEAR NEXT ENTRY
- AVS6 SA1 /ADD/NVSN CHECK IF LAST VSN
- LJUST X1,X1,/BTC/NVSN,/UPB/NVSN
- SB5 EVAA
- NZ X1,AVS8 IF NOT LAST VSN
- GFILEV UN,VS,10000,PCAT,PCAT,TAVS GET LAST FILE
- SX4 X4+B1
- SB5 EVAA
- NG X4,AVS8 IF VSN NOT AVAILABLE
- SA7 PA SET PREVIOUS FILE RANDOM ADDRESS
- SX6 B6+B1 SET SEQUENCE NUMBER
- SA6 QN
- SX6 B7 SET VSN COUNT
- SA6 VC
- LX6 2 SET NEW VSN TABLE ADDRESS
- SX6 X6+TAVS-4
- SA6 AV
- SX6 B1 SET REEL COUNT
- SA6 RC
- SA1 VS SET EXTERNAL VSN
- BX6 X1
- SA6 EV
- AVS7 SA1 VC CLEAR NEXT VSN ENTRY
- LX1 2
- SX6 B0
- SA6 X1+TAVS
- SX0 UOVS+TVVS+CTVS+ACVS SET STATUS BITS
- SA1 VCAT+1
- BX1 X0*X1
- MOVEBIT A1,ST,18,17,17
- MOVEBIT TAVS+/CAT/VSN,FV,/BTC/VSN SET FIRST VSN
- RJ //PFC PACK FILE CATALOG
- RJ KVQ SET FIRST VSN AND SEQUENCE IN K-DISPLAY
- RJ KAV SET ASSIGNED VSNS IN K-DISPLAY
- EQ AVSX RETURN
- DEN SPACE 4,10
- ** DEN - PROCESS *D* DIRECTIVE.
- DEN SUBR ENTRY/EXIT
- SA1 /ADD/EVSN
- MX0 36
- BX1 X0*X1
- ZR X1,DENX IF NO VSN-S ASSIGNED
- SA1 /ADD/TTYP GET NEW TAPE TYPE
- RJUST X1,X1,/BTC/TTYP,/UPB/TTYP
- SA2 DE
- AX2 4
- BX6 X1-X2
- ZR X6,DENX IF NEW DENSITY DOES NOT CHANGE TAPE TYPE
- SA1 DE RESET OLD VALUE INTO TAPE CATALOG ENTRY
- MOVEBIT A1,/ADD/D,/BTC/D,5,/UPB/D
- ISSMSG ECTD,E * CANNOT CHANGE TAPE TYPE / DENSITY.*
- EQ DENX RETURN
- DRO SPACE 4,10
- ** DRO - PROCESS *DROP* DIRECTIVE.
- DRO SUBR ENTRY/EXIT
- SA1 VC REPLACE ORIGINAL VSNS
- LX1 2
- REPVSN TAVS,X1
- ISSMSG IFNP,I ISSUE INFORMATIVE MESSAGE
- RJ USL PROCESS USER LEVEL
- EQ DROX RETURN
- PGO SPACE 4,10
- ** PGO - PROCESS *GO* DIRECTIVE.
- *
- * ENTRY (RF) = 0, IF FILE NOT RESERVED.
- *
- * EXIT VSN AMENDED OR RESERVED.
- *
- * USES A - 1.
- * X - 1.
- *
- * CALLS ALT, RES.
- PGO1 RJ RES RESERVE FILE
- PGO SUBR ENTRY/EXIT
- SA1 RF
- ZR X1,PGO1 IF FILE NOT RESERVED
- RJ ALT AMEND FILE
- EQ PGOX RETURN
- PFI SPACE 4,10
- ** PFI - PROCESS *FI* DIRECTIVE.
- PFI4 MOVEBIT NI,/ADD/FI,/BTC/FI,,/UPB/FI RESET NEW FILE ID
- ISSMSG EFIC,E ISSUE ERROR MESSAGE
- PFI SUBR ENTRY/EXIT
- SA1 SV
- ZR X1,PFI3 IF NOT SYMBOLIC ACCESS
- MOVEBIT /ADD/FI,PFIA,/BTC/FI,/UPB/FI GET NEW FILE ID
- SA1 PFIA COMPARE FILE IDS
- SA2 A1+B1
- SA3 FI
- BX3 X3-X1
- NZ X3,PFI1 IF NOT THE SAME AS ORIGINAL FILE ID
- SA3 A1+B1
- BX3 X3-X2
- ZR X3,PFI3 IF THE SAME AS ORIGINAL FILE ID
- PFI1 SA3 NI
- BX3 X3-X1
- NZ X3,PFI2 IF NOT THE SAME AS NEW FILE ID
- SA3 A3+B1
- BX3 X3-X2
- NZ X3,PFI3 IF THE SAME AS NEW FILE ID
- PFI2 SA1 NV
- NZ X1,PFI3 IF NO VERIFY MODE
- SAFET UN,,PFIA,SCST CHECK IF FILE EXISTS
- ZR X4,PFI4 IF ANOTHER FILE HAS THAT NAME
- PFI3 MOVEBIT /ADD/FI,NI,/BTC/FI,/UPB/FI SET NEW FILE ID
- EQ PFIX RETURN
- PFIA BSS 2 NEW FILE IDENTIFIER
- PSV SPACE 4,10
- ** PSV - PROCESS *SV* DIRECTIVE.
- PSV3 MOVEBIT SV,/ADD/SV,/BTC/SV,/BTC/SV-1,/UPB/SV
- ISSMSG EFIC,E ISSUE ERROR MESSAGE
- PSV SUBR ENTRY/EXIT
- SA1 /ADD/SV CHECK IF SYMBOLIC ACCESS
- RJUST X1,X1,/BTC/SV,/UPB/SV
- ZR X1,PSV2 IF CHANGE TO NOT SYMBOLIC ACCESS
- SA1 SV CHECK IF ALREADY SYMBOLIC ACCESS
- NZ X1,PSVX IF ALREADY SYMBOLIC ACCESS
- SA1 NI CHECK NEW FILE IDENTIFIER
- SA2 A1+B1
- SA3 =10H
- BX3 X3-X1
- ZR X3,PSV3 IF INCORRECT FILE ID
- SA3 FI
- BX3 X3-X1
- NZ X3,PSV1 IF NOT THE SAME AS ORIGINAL FILE ID
- SA3 A3+B1
- BX3 X3-X2
- ZR X3,PSV2 IF THE SAME AS ORIGINAL FILE ID
- PSV1 SA1 NV
- NZ X1,PSV2 IF NO VERIFY MODE
- SAFET UN,,NI,SCST CHECK FILE EXISTS
- ZR X4,PSV3 IF FILE ALREADY EXISTS
- PSV2 MOVEBIT /ADD/SV,SV,/BTC/SV,/UPB/SV,/BTC/SV-1
- EQ PSVX RETURN
- RDA SPACE 4,10
- ** RDA - CONVERT RDATE TO URDATE.
- *
- * USES X - ALL.
- * A - 2, 4.
- * B - 3, 4, 5, 6.
- *
- * CALLS URD.
- *
- * MACROS MOVEBIT.
- RDA SUBR ENTRY/EXIT
- SA2 RDAA GET CONDITIONAL RELEASE DATE
- SX6 B0
- ZR X2,RDA7 IF NO RELEASE DATE
- SX5 CRDP GET TERM
- MX0 -12
- BX1 -X0*X5
- MX0 -6 UNPACK DATE
- BX3 -X0*X2
- SB3 X3 DAY
- AX2 6
- BX3 -X0*X2
- SB4 X3 MONTH
- AX2 6
- BX2 -X0*X2
- SB5 X2 YEAR
- MX0 -2 MASK FOR LEAP YEAR
- * ADVANCE YEAR.
- RDA1 SX4 X1-366D (TERM REMAINING) - (DAYS IN LEAP YEAR)
- NG X4,RDA4 IF LESS THAN 1 YEAR REMAINING
- SB5 B5+B1 ADD 1 YEAR TO EXPIRATION DATE
- SX3 B5+B1
- SB6 B1+B1
- BX2 -X0*X3
- ZR X2,RDA2 IF CURRENT YEAR IS A LEAP YEAR
- SX2 X3+B1 YEAR + 1 + LEAP YEAR OFFSET
- BX2 -X0*X2
- NZ X2,RDA3 IF NEXT YEAR IS NOT A LEAP YEAR
- LE B4,B6,RDA3 IF BEFORE LEAP DAY
- SX1 X1-1 SUBTRACT 1 DAY TO OFFSET LEAP DAY
- EQ RDA3 SUBTRACT 1 YEAR FROM TERM
- RDA2 GT B4,B6,RDA3 IF AFTER LEAP DAY
- SX1 X1-1 SUBTRACT 1 DAY TO OFFSET LEAP DAY
- RDA3 SX1 X1-365D SUBTRACT 1 YEAR FROM TERM
- EQ RDA1 CONTINUE PROCESSING
- * ADVANCE MONTH.
- RDA4 SA4 RDAB-1+B4 GET DAYS IN CURRENT MONTH
- SX7 B4-2
- NZ X7,RDA5 IF CURRENT MONTH NOT FEBRUARY
- SX2 B5+2
- BX7 -X0*X2
- NZ X7,RDA5 IF NOT LEAP YEAR
- SX4 X4+B1 ADD LEAP DAY
- RDA5 SX2 B3+
- IX2 X4-X2 DAYS TO END OF CURRENT MONTH
- IX3 X1-X2 SUBTRACT FROM TERM REMAINING
- NG X3,RDA6 IF NOT ENOUGH TERM REMAINING TO FILL MONTH
- ZR X3,RDA6 IF TERM EXACTLY FILLS CURRENT MONTH
- SB3 B0+
- SB4 B4+B1 INCREMENT MONTH
- BX1 X3 SET NEW TERM
- SX7 B4-13
- NZ X7,RDA4 IF NOT END OF YEAR
- SB5 B5+B1 INCREMENT YEAR
- SB4 B1 SET MONTH TO JANUARY
- EQ RDA4 CONTINUE
- * RETURN NEW PACKED DATE.
- RDA6 SB3 X1+B3 SET DAYS
- SX6 B5 ADD IN YEAR
- LX6 6
- SX6 X6+B4 ADD IN MONTH
- LX6 6
- SX6 X6+B3 ADD IN DAY
- RDA7 SA6 RDAA
- MOVEBIT A6,TAVS+/CAT/URDATE,/BTC/URDATE,17,/UPB/URDATE
- RJ URD PROCESS UNCONDITIONAL RELEASE DATE
- EQ RDAX RETURN
- RDAA CON 0 PACKED CONDITIONAL/UNCONDITIONAL DATE
- RDAB BSS 0 TABLE OF DAYS IN MONTH
- LOC 1
- CON 31 JANUARY
- CON 28 FEBRUARY
- CON 31 MARCH
- CON 30 APRIL
- CON 31 MAY
- CON 30 JUNE
- CON 31 JULY
- CON 31 AUGUST
- CON 30 SEPTEMBER
- CON 31 OCTOBER
- CON 30 NOVEMBER
- CON 31 DECEMBER
- LOC *O
- RES SPACE 4,10
- ** RES - PROCESS *RESERVE* DIRECTIVE.
- RES2 ISSMSG B5,E ISSUE ERROR MESSAGE
- RES SUBR ENTRY/EXIT
- SA1 RF CHECK RESERVE FLAG
- SB5 EFAR SET ERROR MESSAGE ADDRESS
- NZ X1,RES2 IF FILE ALREADY RESERVED
- SA1 RC
- SB5 ERDM *REQUIRED DATA MISSING.*
- ZR X1,RES2 IF NO VSNS ASSIGNED
- SA1 UF
- ZR X1,RES1 IF USER NAME ALREADY IN FILE
- RESETP N2 INSERT USER NAME
- WRITFET X2,UN,1
- CALLTFM X2,IUES
- RES1 RJ RAF RESERVE/AMEND FILE CATALOG ENTRY
- ISSMSG IFRE,I ISSUE INFORMATIVE MESSAGE
- SX6 B0 FLAG USER NAME FOUND
- SA6 UF
- RJ USL PROCESS USER LEVEL
- EQ RESX RETURN
- URD SPACE 4,10
- ** URD - SET URDATE FLAG.
- *
- * EXIT (RS) = 1.
- *
- * USES X - 6.
- * A - 6.
- *
- * MACROS MOVEBIT.
- URD SUBR ENTRY/EXIT
- SX6 B1 FLAG *URDATE* ISSUED
- SA6 RS
- SA1 TAVS+/CAT/URDATE CHECK RELEASE DATE
- RJUST X1,X6,/BTC/URDATE,/UPB/URDATE
- SA1 =1
- NZ X6,URD1 IF DATE SET
- SA1 =0
- URD1 MOVEBIT A1,TAVS+/CAT/NEWRDT,/BTC/NEWRDT,0,/UPB/NEWRDT
- EQ URDX RETURN
- QUAL *
- TITLE ALTERNATE USER LEVEL PROCESSORS.
- SPACE 4
- QUAL LVAU
- AUS SPACE 4,15
- ** ALTERNATE USER LEVEL DIRECTIVE PROCESSORS.
- *
- * ENTRY FROM *DIP*.
- * (AF) = 0 IF ALTERNATE USER NOT ADMITTED.
- * (AU) = ALTERNATE USER NAME.
- * (FV) = FIRST VSN.
- * (QN) = SEQUENCE NUMBER.
- * (UN) = USER NAME.
- * (ACAT) = ALTERNATE USER CATALOG IMAGE.
- * (FCAT) = FILE CATALOG IMAGE.
- *
- * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
- ADM SPACE 4,10
- ** ADM - PROCESS *ADMIT* DIRECTIVE.
- ADM SUBR ENTRY/EXIT
- RJ RAB REPLACE ALTERNATE USER IN BUFFER
- SA1 AF CHECK ADMIT FLAG
- SB5 IAUU PRESET INFORMATIVE MESSAGE ADDRESS
- NZ X1,ADM2 IF OLD ADMIT ENTRY
- SA1 /ADD/AUCAT CHECK ADMIT RANDOM ADDRESS
- RJUST X1,X1,/BTC/AUCAT,/UPB/AUCAT
- NZ X1,ADM1 IF NOT FIRST ALTERNATE USER
- RJ RAE REPLACE ALTERNATE USER ENTRIES
- SA3 QN RESET ADMIT RANDOM ADDRESS
- GFILEV UN,FV,X3,ADMA,PCAT,TAVS
- MOVEBIT ADMA+/CAT/AUCAT,/ADD/AUCAT,24
- ADM1 SB5 IAUA
- ADM2 ISSMSG B5,I ISSUE INFORMATIVE MESSAGE
- RJ FIL PROCESS FILE LEVEL
- EQ ADMX RETURN
- ADMA BSS TCEL FILE CATALOG IMAGE
- DRO SPACE 4,10
- ** DRO - PROCESS *DROP* DIRECTIVE.
- DRO SUBR ENTRY/EXIT
- ISSMSG IANP,I ISSUE INFORMATIVE MESSAGE
- RJ FIL PROCESS FILE LEVEL
- EQ DROX RETURN
- QUAL *
- TITLE K-DISPLAY AREA.
- KCW SPACE 4,10
- ** K-DISPLAY CONTROL WORD.
- KCW VFD 24/KBUF,18/KRIGHT,18/KLEFT CONTROL WORD
- KLEFT SPACE 4,10
- ** KLEFT - LEFT SCREEN K-DISPLAY HEADER.
- KLEFT KSTART CW
- KLINE ( ),E
- PROGRAM KLINE ( *TFSP* - TAPE FILE SUPERVISOR.),E
- KLINE ( ),E
- SEPARAT KLINE ( SEPARAT=, )
- KLINE (SEPARATOR CHARACTER. (0-1 CHARACTERS.)),E
- COLON KLINE ( COLON = )
- KLINE (COLON CHARACTER. (0-1 CHARACTERS.)),E
- READ KLINE ( READ = )
- KLINE (ALTERNATE INPUT FILE.),E
- KNEXT KFAMLS
- KRIGHT SPACE 4,10
- ** KRIGHT - RIGHT SCREEN K-DISPLAY HEADER.
- KRIGHT KSTART CW
- KLINE ( ),E
- PROGRAM KLINE ( *TFSP*)
- LV KLINE ( FAMILY LEVEL *HELP* DISPLAY.),E
- KLINE ( ),E
- KLINE ( HELP )
- KLINE (DISPLAY LEGAL DIRECTIVES.),E
- KLINE ( DISPLAY )
- KLINE (TOGGLE OUT OF *HELP* DISPLAY.),E
- KLINE ( SEPARAT = CHAR )
- KLINE (SET SEPARATOR CHARACTER.),E
- KLINE ( )
- KLINE (DEFAULT IS COMMA.),E
- KLINE ( COLON = CHAR )
- KLINE (SET COLON CHARACTER. DEFAULT IS NONE.),E
- KLINE ( READ = FILENAM )
- KLINE (READ DIRECTIVES OFF OF LOCAL FILE.),E
- KLINE ( REWIND = FILENAM )
- KLINE (REWIND LOCAL FILE.),E
- KLINE ( BRIEF/NOBRIEF )
- KLINE (ENABLE/DISABLE INFORMATIVE OUTPUT.),E
- KLINE ( STOP )
- KLINE (TERMINATE TFSP.),E
- KNEXT KFAMRS
- KFAMLS SPACE 4,10
- ** KFAMLS - LEFT SCREEN FAMILY LEVEL K-DISPLAY.
- KFAMLS KSTART
- KLINE ( ),E
- FAMNAME KLINE ( FAMNAME= )
- KLINE (FAMILY NAME. (1-7 CHARACTERS)),E
- LINKFAM KLINE ( LINKFAM= )
- KLINE (LINKED CATALOG FAMILY. (1-7 CHARACTERS)),E
- MID KLINE ( MID =AA )
- KLINE (MACHINE ID. (2 CHARACTERS)),E
- CATERR KLINE ( CATERR =CLEAR )
- KLINE (ERROR STATUS. (CLEAR, SET)),E
- FOREIGN KLINE ( FOREIGN=NO )
- KLINE (FOREIGN STATUS. (NO, YES)),E
- GLOBAL KLINE ( GLOBAL =NO )
- KLINE (GLOBAL STATUS. (NO, YES)),E
- KLINE ( ),E
- TFSPE KLINE ( TAPE CATALOG ERROR DISCOVERED AT - )
- TDATE KLINE (YY/MM/DD, HH.MM.SS.),E
- TFSPEL EQU *-TFSPE LENGTH OF *TFSPE* MESSAGE
- KLINE ( ),E
- KLINE ( CURRENT MESSAGE BUFFER -),E
- KLINE ( ),E
- MB KLINE ( ),E
- KLINE ( ),E
- SIZE KLINE ( CATALOG SIZE = 00000000. MT)
- SCM KLINE (/NT SCRATCH COUNT = 00000000.),E
- SCC KLINE ( CT SCRATCH COUNT = 00000000.)
- SCA KLINE ( AT SCRATCH COUNT = 00000000.),E
- KLINE ( ),E
- KLINE ( USER NAMES VALIDATED TO ACCESS),E
- KLINE ( TAPE CATALOG FILE VIA *TFSP* -),E
- KLINE ( ),E
- VALIDAT BSS 0
- DUP 2
- KLINE ( ),E
- ENDD
- KLINE ( ),E
- KLINE ( FAMILIES PERMITTED TO ACCESS CATALOG -),E
- KLINE ( ),E
- ALTFAM KLINE ( ),E
- KNEXT KMESS
- KFAMRS SPACE 4,10
- ** KFAMRS - RIGHT SCREEN FAMILY LEVEL K-DISPLAY.
- KFAMRS KSTART
- KLINE ( AUDITCH = CHARGNO )
- KLINE (AUDIT BY CHARGE NUMBER.),E
- KLINE ( AUDITUN = USERNAM )
- KLINE (AUDIT USER. DEFAULT IS ALL USERS.),E
- KLINE ( AUDITVS = VSN )
- KLINE (AUDIT VSN. DEFAULT IS ALL VSNS.),E
- KLINE ( MREADCH = CHARGNO )
- KLINE (MACHINE READABLE *AUDITCH*.),E
- KLINE ( MREADUN = USERNAM )
- KLINE (MACHINE READABLE *AUDITUN*.),E
- KLINE ( MREADVS = VSN )
- KLINE (MACHINE READABLE *AUDITVS*.),E
- KLINE ( SOURCCH = CHARGNO )
- KLINE (SOURCE OF CHARGE NUMBER.),E
- KLINE ( SOURCUN = USERNAM )
- KLINE (SOURCE OF USER. DEFAULT IS ALL USERS.),E
- KLINE ( SOURCVS = VSN )
- KLINE (SOURCE OF VSN.),E
- KLINE ( SOURCE )
- KLINE (SOURCE OF ALL OF TAPE CATALOG FILE.),E
- KLINE ( RELEASE = VSN )
- KLINE (RELEASE VSN AND ITS TAPE FILE.),E
- KLINE ( REMOVE = VSN )
- KLINE (REMOVE VSN FROM TAPE CATALOG FILE.),E
- KLINE ( PURGALL = USERNAM )
- KLINE (RELEASE ALL TAPE FILES OF USER.),E
- KLINE ( PURGE = VSN )
- KLINE (PURGE TAPE FILES CONTAINING VSN.),E
- KLINE ( VALIDAT = USERNAM )
- KLINE (VALIDATE USER TO USE *TFSP*.),E
- KLINE ( INVALID = USERNAM )
- KLINE (INVALIDATE USER TO USE *TFSP*.),E
- KLINE ( ALTFAM = FAMILY )
- KLINE (ALLOW ALTERNATE FAMILY ACCESS.),E
- KLINE ( CALTFAM = FAMILY )
- KLINE (DISALLOW ALTERNATE FAMILY ACCESS.),E
- KLINE ( ISV )
- KLINE (INITIALIZE SCRATCH VSNS.),E
- KLINE ( VSN = VSN )
- KLINE (BEGIN VSN LEVEL DIRECTIVES.),E
- KLINE ( USER = USERNAM )
- KLINE (BEGIN USER LEVEL DIRECTIVES.),E
- KLINE ( DROP )
- KLINE (TERMINATE *TFSP*.),E
- KLINE ( GO )
- KLINE (MAKE UPDATES AND TERMINATE *TFSP*.),E
- KEND
- KVSNLS SPACE 4,10
- ** KVSNLS - LEFT SCREEN VSN LEVEL K-DISPLAY.
- KVSNLS KSTART
- KLINE ( VSN = )
- VSN KLINE ( ),E
- KLINE ( ),E
- KLINE ( )
- MESS KLINE (VSN NOT CURRENTLY IN CATALOG.),E
- KLINE ( ),E
- VT KLINE ( VT =MTNT )
- KLINE (TAPE TYPE. (MTNT, CT OR AT)),E
- PRN KLINE ( PRN = )
- KLINE (PHYSICAL VSN (PRN). (1-6 CHARACTERS)),E
- STATUS KLINE ( STATUS =AVAILABLE )
- KLINE (STATUS. (AVAILABLE,CLEANED,HOLD,ERROR)),E
- SITE KLINE ( SITE =ON )
- KLINE (SITE STATUS. (ON, OFF)),E
- OWNER KLINE ( OWNER =CENTER )
- KLINE (OWNERSHIP TYPE. (CENTER, USER)),E
- SYSTEM KLINE ( SYSTEM =NO )
- KLINE (SYSTEM VSN FLAG. (NO, YES)),E
- USAGE KLINE ( USAGE =0 )
- KLINE (USAGE COUNTER. (0 - 63)),E
- KNEXT KMESS
- KVSNRS SPACE 4,10
- ** KVSNRS - RIGHT SCREEN VSN LEVEL K-DISPLAY.
- KVSNRS KSTART
- KLINE ( ADD )
- KLINE (PROCESS ADDING VSN TO CATALOG.),E
- KLINE ( REVISE )
- KLINE (PROCESS REVISING VSN IN CATALOG.),E
- KLINE ( DROP )
- KLINE (IGNORE ADD/REVISE OF VSN.),E
- KLINE ( GO )
- KLINE (ADD OR REVISE VSN.),E
- KEND
- KUSELS SPACE 4,10
- ** KUSELS - LEFT SCREEN USER LEVEL K-DISPLAY.
- *
- * ENTRY (KUSELS) = LENGTH OF DISPLAY FOR TERMINAL OUTPUT.
- KUSELS KSTART
- KLINE ( USER = )
- USER KLINE ( ),E
- KLINE ( ),E
- KLINE ( TAPE FILES -),E
- KLINE ( ),E
- FILE BSS 0
- DUP 9
- KLINE ( )
- KLINE ( ),E
- ENDD
- KNEXT KMESS
- KUSERS SPACE 4,10
- ** KUSERS - RIGHT SCREEN USER LEVEL K-DISPLAY.
- KUSERS KSTART
- KLINE ( AUDITCN = CHARGNO )
- KLINE (AUDIT TAPE FILES WITH CHARGE NUMBER.),E
- KLINE ( AUDITFI = FILEID )
- KLINE (AUDIT TAPE FILE.),E
- KLINE ( AUDITFV = VSN )
- KLINE (AUDIT TAPE FILES WITH VSN.),E
- KLINE ( MREADCN = CHARGNO )
- KLINE (MACHINE READABLE *AUDITCN*.),E
- KLINE ( MREADFI = FILEID )
- KLINE (MACHINE READABLE *AUDITFI*.),E
- KLINE ( MREADFV = VSN )
- KLINE (MACHINE READABLE *AUDITFV*.),E
- KLINE ( SOURCCN = CHARGNO )
- KLINE (SOURCE OF TAPE FILES WITH CHARGE NUMBER.),E
- KLINE ( SOURCFI = FILEID )
- KLINE (SOURCE OF TAPE FILE.),E
- KLINE ( SOURCFV = VSN )
- KLINE (SOURCE OF TAPE FILES WITH VSN.),E
- KLINE ( RELEASF = FILEID )
- KLINE (RELEASE BY TAPE FILE.),E
- KLINE ( RELEASV = VSN )
- KLINE (RELEASE BY VSN.),E
- KLINE ( FILE = FILEID )
- KLINE (BEGIN FILE LEVEL DIRECTIVES.),E
- KLINE ( FILEV = VSN/QN )
- KLINE (BEGIN FILE LEVEL DIRECTIVES.),E
- KLINE ( DROP )
- KLINE (END USER LEVEL DIRECTIVES.),E
- KEND
- KFILLS1 SPACE 4,10
- ** KFILLS1 - LEFT SCREEN FILE LEVEL K-DISPLAY, PAGE 1.
- KFILLS1 KSTART
- KLINE ( USER = )
- USER KLINE ( ),E
- KLINE ( FVSN = )
- FVSN KLINE ( ),E
- KLINE ( QN = )
- QN KLINE ( ),E
- KLINE ( FILE = )
- FILE KLINE ( PAGE 1 OF 3),E
- KLINE ( ),E
- KLINE ( )
- MESS KLINE (FILE NOT CURRENTLY RESERVED. ),E
- KLINE ( ),E
- SV KLINE ( SV = )
- KLINE (SYMBOLIC ACCESS. (NO, SET)),E
- RECOVER KLINE ( RECOVER= )
- KLINE (RECOVERED STATUS. (NO, YES)),E
- CN KLINE ( CN = )
- KLINE (CHARGE NUMBER. (0-10 CHARACTERS)),E
- PN KLINE ( PN = )
- KLINE (PROJECT NUMBER.(0-20 CHARS)),E
- CE KLINE ( CE =CLEAR )
- KLINE (ERROR FLAG. (CLEAR, SET)),E
- UC KLINE ( UC = )
- KLINE (USER CONTROL WORD. (0-10 CHARACTERS)),E
- TSITE KLINE ( TSITE =ON )
- KLINE (SITE STATUS. (ON, OFF)),E
- URDATE KLINE ( URDATE = )
- KLINE (RELEASE DATE. (YYMMDD)),E
- TOWNER KLINE ( TOWNER =CENTER )
- KLINE (OWNERSHIP TYPE. (CENTER, USER)),E
- KLINE ( ASSIGNED VSNS - ),E
- AVSN BSS 0
- DUP 10
- KLINE ( )
- KLINE ( ),E
- ENDD
- KNEXT KMESS
- KFILLS2 SPACE 4,10
- ** KFILLS2 - LEFT SCREEN FILE LEVEL K-DISPLAY, PAGE 2.
- KFILLS2 KSTART
- KLINE ( USER = )
- USER KLINE ( ),E
- KLINE ( FVSN = )
- FVSN KLINE ( ),E
- KLINE ( QN = )
- QN KLINE ( ),E
- KLINE ( FILE = )
- FILE KLINE ( PAGE 2 OF 3),E
- KLINE ( ),E
- KLINE ( )
- MESS KLINE (FILE NOT CURRENTLY RESERVED. ),E
- KLINE ( ),E
- FI KLINE ( FI = )
- KLINE (LOGICAL FILE IDENTIFIER.),E
- KLINE ( (1-17 CHARACTERS)),E
- PW KLINE ( PW = )
- KLINE (PASSWORD. (0-7 CHARACTERS)),E
- CT KLINE ( CT =PRIVATE )
- KLINE (ACCESS CATEGORY.),E
- KLINE ( )
- KLINE ((PRIVATE, SPRIV, PUBLIC)),E
- M KLINE ( M =READ )
- KLINE (ACCESS MODE. (READ, WRITE, NULL)),E
- AC KLINE ( AC =NO )
- KLINE (ALTERNATE CATLIST. (NO, YES)),E
- ACOUNT KLINE ( ACOUNT =0000 )
- KLINE (ACCESS COUNT. (0-"MXAC")),E
- CDATE KLINE ( CDATE = )
- KLINE (CREATION DATE. (YYMMDD)),E
- CTIME KLINE ( CTIME = )
- KLINE (CREATION TIME. (HHMMSS)),E
- ADATE KLINE ( ADATE = )
- KLINE (LAST ACCESS DATE. (YYMMDD)),E
- ATIME KLINE ( ATIME = )
- KLINE (LAST ACCESS TIME. (HHMMSS)),E
- MDATE KLINE ( MDATE = )
- KLINE (LAST MODIFICATION DATE. (YYMMDD)),E
- MTIME KLINE ( MTIME = )
- KLINE (LAST MODIFICATION TIME. (HHMMSS)),E
- KNEXT KMESS
- KFILLS3 SPACE 4,10
- ** KFILLS3 - LEFT SCREEN FILE LEVEL K-DISPLAY, PAGE 3.
- *
- * ENTRY (KFILLS3) = LENGTH OF DISPLAY FOR TERMINAL OUTPUT.
- KFILLS3 KSTART
- KLINE ( USER = )
- USER KLINE ( ),E
- KLINE ( FVSN = )
- FVSN KLINE ( ),E
- KLINE ( QN = )
- QN KLINE ( ),E
- KLINE ( FILE = )
- FILE KLINE ( PAGE 3 OF 3),E
- KLINE ( ),E
- KLINE ( )
- MESS KLINE (FILE NOT CURRENTLY RESERVED. ),E
- KLINE ( ),E
- PI KLINE ( PI = )
- KLINE (PHYSICAL FILE IDENTIFIER.),E
- KLINE ( (1-17 CHARACTERS)),E
- CR KLINE ( CR = )
- KLINE (CREATION DATE. (YYDDD)),E
- CV KLINE ( CV =AS )
- KLINE (CONVERSION MODE. (AS, EB)),E
- D KLINE ( D =PE )
- KLINE (DENSITY. (PE, GE, HI, HY, HD, CE, AE)),E
- E KLINE ( E =00 )
- KLINE (GENERATION VERSION NUMBER. (0-99)),E
- F KLINE ( F =I )
- KLINE (FORMAT. (I, LI, S, L, SI, F)),E
- FA KLINE ( FA = )
- KLINE (ACCESSIBILITY. (0-1 CHARACTERS)),E
- FC KLINE ( FC ="MXFC" )
- KLINE (F-FORMAT MAX BLOCK SIZE. (1-"MXFC")),E
- G KLINE ( G =0001 )
- KLINE (GENERATION NUMBER. (1-9999)),E
- LB KLINE ( LB =KL )
- KLINE (LABEL TYPE. (KL, KU, NS)),E
- NS KLINE ( NS =0 )
- KLINE (NOISE SIZE. (0-31)),E
- RT KLINE ( RT = )
- KLINE (RETENTION DATE. (YYDDD)),E
- SI KLINE ( SI = )
- KLINE (SET IDENTIFIER. (0-6 CHARACTERS)),E
- SN KLINE ( SN =0001 )
- KLINE (SECTION NUMBER. (1-9999)),E
- KNEXT KMESS
- KFILRS SPACE 4,10
- ** KFILRS - RIGHT SCREEN FILE LEVEL K-DISPLAY.
- KFILRS KSTART
- KLINE ( AUDITAU = USERNAM )
- KLINE (AUDIT ALTERNATE USER.),E
- KLINE ( AVSN = VSN )
- KLINE (ASSIGN VSN TO TAPE FILE.),E
- KLINE ( AUSER = USERNAM )
- KLINE (BEGIN ALTERNATE USER LEVEL DIRECTIVES.),E
- KLINE ( RESERVE )
- KLINE (PROCESS RESERVE OF TAPE FILE.),E
- KLINE ( AMEND )
- KLINE (PROCESS AMEND OF TAPE FILE.),E
- KLINE ( DROP )
- KLINE (IGNORE RESERVE/AMEND OF TAPE FILE.),E
- KLINE ( GO )
- KLINE (RESERVE OR AMEND TAPE FILE.),E
- KEND
- KAUSLS SPACE 4,10
- ** KAUSLS - LEFT SCREEN ALTERNATE USER LEVEL K-DISPLAY.
- KAUSLS KSTART
- KLINE ( USER = )
- USER KLINE ( ),E
- KLINE ( FILE = )
- FILE KLINE ( ),E
- KLINE ( AUSER = )
- AUSER KLINE ( ),E
- KLINE ( ),E
- KLINE ( )
- MESS KLINE (USER NOT CURRENTLY ADMITTED. ),E
- KLINE ( ),E
- AMODE KLINE ( AMODE =WRITE )
- KLINE (PERMISSION MODE.),E
- KLINE ( )
- KLINE ((IMPLICIT, WRITE, READ, NULL, SPECIAL)),E
- AACOUNT KLINE ( AACOUNT=0000 )
- KLINE (ACCESS COUNT. (0-"MXAA")),E
- AADATE KLINE ( AADATE = )
- KLINE (LAST ACCESS DATE. (YYMMDD)),E
- AATIME KLINE ( AATIME = )
- KLINE (LAST ACCESS TIME. (HHMMSS)),E
- KNEXT KMESS
- KAUSRS SPACE 4,10
- ** KAUSRS - RIGHT SCREEN ALTERNATE USER LEVEL K-DISPLAY.
- KAUSRS KSTART
- KLINE ( ADMIT )
- KLINE (PROCESS ALTERNATE USER ADMIT.),E
- KLINE ( DROP )
- KLINE (IGNORE ALTERNATE USER ADMIT.),E
- KLINE ( GO )
- KLINE (PROCESS ALTERNATE USER ADMIT.),E
- KEND
- KMESS SPACE 4,10
- ** K-DISPLAY STATUS MESSAGES.
- KMESS KSTART
- KLINE ( ),E
- STATUS KLINE ( PROCESSING DIRECTIVES.),E
- DIRECT KLINE ( *********)
- KLINE ( ),E
- MESSAGE KLINE ( )
- KLINE ( ),E
- KEND END OF K-DISPLAY
- * INSURE DISPLAYS LESS THAN 40 LINES.
- ERRNG 37-/KLEFT/LINES-/KFAMLS/LINES-/KMESS/LINES
- ERRNG 37-/KLEFT/LINES-/KVSNLS/LINES-/KMESS/LINES
- ERRNG 37-/KLEFT/LINES-/KUSELS/LINES-/KMESS/LINES
- ERRNG 37-/KLEFT/LINES-/KFILLS1/LINES-/KMESS/LINES
- ERRNG 37-/KLEFT/LINES-/KFILLS2/LINES-/KMESS/LINES
- ERRNG 37-/KLEFT/LINES-/KFILLS3/LINES-/KMESS/LINES
- ERRNG 37-/KLEFT/LINES-/KAUSLS/LINES-/KMESS/LINES
- ERRNG 37-/KRIGHT/LINES-/KFAMRS/LINES
- ERRNG 37-/KRIGHT/LINES-/KUSERS/LINES
- ERRNG 37-/KRIGHT/LINES-/KFILRS/LINES
- ERRNG 37-/KRIGHT/LINES-/KAUSRS/LINES
- KDIS SPACE 4,10
- ** K-DISPLAY DIRECTIVE POINTERS.
- QUAL KDIS
- AACOUNT EQU /KAUSLS/AACOUNT
- AADATE EQU /KAUSLS/AADATE
- AATIME EQU /KAUSLS/AATIME
- AC EQU /KFILLS2/AC
- ACOUNT EQU /KFILLS2/ACOUNT
- ADATE EQU /KFILLS2/ADATE
- AMODE EQU /KAUSLS/AMODE
- ATIME EQU /KFILLS2/ATIME
- CDATE EQU /KFILLS2/CDATE
- CE EQU /KFILLS1/CE
- CN EQU /KFILLS1/CN
- COLON EQU /KLEFT/COLON
- CR EQU /KFILLS3/CR
- CT EQU /KFILLS2/CT
- CTIME EQU /KFILLS2/CTIME
- CV EQU /KFILLS3/CV
- D EQU /KFILLS3/D
- E EQU /KFILLS3/E
- F EQU /KFILLS3/F
- FA EQU /KFILLS3/FA
- FC EQU /KFILLS3/FC
- FI EQU /KFILLS2/FI
- G EQU /KFILLS3/G
- LB EQU /KFILLS3/LB
- M EQU /KFILLS2/M
- MDATE EQU /KFILLS2/MDATE
- MTIME EQU /KFILLS2/MTIME
- NS EQU /KFILLS3/NS
- OWNER EQU /KVSNLS/OWNER
- PI EQU /KFILLS3/PI
- PN EQU /KFILLS1/PN
- PRN EQU /KVSNLS/PRN
- PW EQU /KFILLS2/PW
- READ EQU /KLEFT/READ
- RECOVER EQU /KFILLS1/RECOVER
- RT EQU /KFILLS3/RT
- SEPARAT EQU /KLEFT/SEPARAT
- SI EQU /KFILLS3/SI
- SITE EQU /KVSNLS/SITE
- SN EQU /KFILLS3/SN
- STATUS EQU /KVSNLS/STATUS
- SV EQU /KFILLS1/SV
- SYSTEM EQU /KVSNLS/SYSTEM
- TOWNER EQU /KFILLS1/TOWNER
- TSITE EQU /KFILLS1/TSITE
- UC EQU /KFILLS1/UC
- URDATE EQU /KFILLS1/URDATE
- USAGE EQU /KVSNLS/USAGE
- VT EQU /KVSNLS/VT
- QUAL *
- TITLE BUFFER AREA.
- BUFFER SPACE 4,10
- ** BUFFER ASSIGNMENTS.
- USE BUFFERS
- BUF1 BSS 0 MAIN PROGRAM BUFFERS
- CBUF BSS CBUFL CHARACTER BUFFER
- EBUF BSS EBUFL ERROR MESSAGE BUFFER
- KBUF BSS KBUFL K-DISPLAY INPUT BUFFER
- LBUF BSS FBUFL OUTPUT FILE BUFFER
- PCAT BSS TCEL PREVIOUS FILE CATALOG IMAGE
- N1BUF BSS N1BUFL VSN TAPE CATALOG BUFFER
- N2BUF BSS N2BUFL USER NAME TAPE CATALOG BUFFER
- N3BUF BSS N3BUFL TAPE FILE TAPE CATALOG BUFFER
- N4BUF BSS N4BUFL ALTERNATE USER NAME TAPE CATALOG BUFFER
- RBUF BSS RBUFL REWIND FILE BUFFER
- REC1 BSS 100B IMAGE OF FIRST TAPE CATALOG FILE RECORD
- TAVS BSS TAVSL TABLE OF ASSIGNED VSNS
- TBUF BSS SBUFL TERMINAL INTERRUPT FILE BUFFER
- TSMC EQU REC1+TBHL+TMSM *MT/NT* SCRATCH COUNT
- TSCC EQU REC1+TBHL+TMSC *CT* SCRATCH COUNT
- TSAC EQU REC1+TBHL+TMSA *AT* SCRATCH COUNT
- TTCS EQU REC1+TBHL+TMCT TAPE CATALOG SIZE
- TSST BSS TSTL IMAGE OF SYSTEM TABLE
- TFMN EQU TSST+TMFM FAMILY NAME
- TSTT EQU TFMN STATUS WORD
- TIDM EQU TSST+TMID MACHINE ID
- TCMB EQU TSST+TMMB MESSAGE BUFFER
- TVUN EQU TSST+TMUN VALIDATED USERS
- TLFM EQU TSST+TMLF LINKED FAMILY NAME
- TAFM EQU TSST+TMPA PERMITTED ALTERNATE FAMILIES
- SBUF BSS SBUFL SCRATCH FILE BUFFER
- SSBUF BSS FBUFL MACHINE READABLE/SOURCE FILE BUFFER
- UBUF BSS UBUFL ALTERNATE USER ENTRY BUFFER
- VBUF BSS VBUFL VSN ENTRY BUFFER
- WBUF BSS WBUFL WORKING BUFFER
- HBUF BSS HBUFL HOLD BUFFER
- BUF1E BSS 0 END OF MAIN PROGRAM BUFFERS
- TITLE PRESET AREA.
- SPACE 4
- ORG BUF1 OVERWRITTEN BY ALL BUFFERS EXCEPT *IBUF*
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCWTS
- *CALL COMCZAP
- SPACE 4
- QUAL PRESET
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *CALL COMSPFM
- PRS SPACE 4,10
- ** PRS - PRESET *TFSP* AND *TFSPE*.
- *
- * EXIT TO *TFS*.
- PRS28 RJ ZAP ENTER *Z* DIRECTIVES INTO INPUT BUFFER
- EQ TFS ENTER MAIN PROGRAM
- BUF2 BSS 0 CAN BE OVERWRITTEN BY *IBUF*
- * ENTRY TO *TFSP*.
- TFSP SB1 1 ENTRY
- RJ ZFN ZERO OUT FILE NAMES IN FETS
- MOVE PRSAL,PRSA,/KFAMLS/TFSPE CLEAR *TFSPE* MESSAGE
- RJ GOT GET ORIGIN TYPE
- SX1 X6-SYOT
- ZR X1,PRS1 IF SYSTEM ORIGIN
- SX6 B0 DISABLE *FM* PARAMETER
- SA6 TPARSY
- SA6 TOPOK DISABLE *OP=K*
- PRS1 SB5 TPAR SET PARAMETER TABLE ADDRESS
- SA1 ACTR SET NUMBER OF ARGUMENTS
- SB4 X1
- SA4 ARGR SET START OF ARGUMENTS
- RJ ARG PROCESS ARGUMENTS
- SB5 MPER SET ERROR MESSAGE ADDRESS
- NZ X1,ABT IF ARGUMENT ERROR
- SA1 LF
- ZR X1,PRS2 IF NOT LOCAL FILE MODE
- SA1 FM
- SA4 =C*FM* SET PARAMETER NAME
- NZ X1,ABT IF *FM* SPECIFIED
- PRS2 MX0 42 SEARCH FOR OPTION
- SRCHTAB TOPO,OP
- ZR X4,PRS3 IF OPTION FOUND
- SB5 MILO SET ERROR MESSAGE ADDRESS
- BX4 X2 SET OPTION NAME
- EQ ABT ABORT WITH ERROR MESSAGE
- PRS3 BX6 -X0*X3 SET *OP* OPTION
- SA6 OP
- SX1 X6-IOPT
- ZR X1,PRS5 IF *OP=I*
- SETFET I,(LFN=B0) SET *I=0*
- EQ PRS5 CHECK FILE NAMES
- * ENTRY TO *TFSPE*.
- TFSPE SB1 1 ENTRY
- RJ GOT GET ORIGIN TYPE
- SX1 X6-SYOT
- ZR X1,PRS4 IF SYSTEM ORIGIN
- ABTMSG MILA ABORT *TFSP*
- PRS4 RJ ZFN ZERO OUT FILE NAMES IN FETS
- SA1 =10H *TFSPE* SET NAME OF PROGRAM IN K-DISPLAY
- BX6 X1
- SA6 /KLEFT/PROGRAM
- SA6 /KRIGHT/PROGRAM
- SA6 NPGB SET NAME OF PROGRAM IN PAGE HEADER
- SX6 KOPT SET *OP=K*
- SA6 OP
- SETFET I,(LFN=B0) SET *I=0*
- SX6 B1 SET *TFSPE* FLAG
- SA6 TE
- SB5 TPAE SET PARAMETER TABLE ADDRESS
- SA1 ACTR SET NUMBER OF ARGUMENTS
- SB4 X1
- SA4 ARGR SET START OF ARGUMENTS ADDRESS
- RJ ARG PROCESS ARGUMENTS
- SB5 MPER SET ERROR MESSAGE ADDRESS
- NZ X1,ABT IF ARGUMENT ERRORS
- * PROCESS FILE NAMES.
- PRS5 RJ GSF GET SCRATCH FILE NAME
- SX1 B1 SET TERMINAL INTERRUPT FILE NAME
- BX6 X6+X1
- SA6 T
- SA1 OT CHECK ORIGIN TYPE
- SX1 X1-TXOT
- NZ X1,PRS6 IF NOT INTERACTIVE ORIGIN
- REQUEST A6,TT,NOMSG ASSIGN TO TERMINAL
- EQ PRS7 REDUCE QUEUE PRIORITY
- PRS6 SA1 LF
- ZR X1,PRS8 IF NOT LOCAL FILE MODE
- PRS7 SETRNR OPROLL REDUCE QUEUE PRIORITY
- PRS8 SA1 LF
- ZR X1,PRS10 IF NOT LOCAL FILE MODE
- SA1 TE
- NZ X1,PRS10 IF *TFSPE*
- MX0 42 CHECK TAPE CATALOG FILE NAMES
- SA1 N
- BX1 X0*X1
- NZ X1,PRS11 IF NEW FILE NAME SPECIFIED
- SA1 P
- BX1 X0*X1
- NZ X1,PRS9 IF OLD FILE NAME SPECIFIED
- SETFET N,(LFN==C*NEW*) SET NEW TAPE CATALOG FILE NAME
- EQ PRS11 SET REMAINING FETS
- PRS9 SETFET N,(LFN=P) SET NEW TAPE CATALOG FILE NAME
- EQ PRS11 SET REMAINING FETS
- PRS10 SETFET P,(LFN=B0) SET OLD TAPE CATALOG FILE NAME
- SETFET N,(LFN==C*"TMFC"*) SET NEW TAPE CATALOG FILE NAME
- PRS11 SA1 LF
- NZ X1,PRS12 IF LOCAL FILE MODE
- SA1 TE
- NZ X1,PRS12 IF *TFSPE*
- SETFET N1,(LFN=B0) SET FILE NAME FOR FETS
- SETFET N2,(LFN=B0)
- SETFET N3,(LFN=B0)
- SETFET N4,(LFN=B0)
- EQ PRS13 SET TAPE CATALOG IMAGES
- PRS12 SETFET N1,(LFN=N) SET FILE NAMES FOR FETS
- SETFET N2,(LFN=N)
- SETFET N3,(LFN=N)
- SETFET N4,(LFN=N)
- PRS13 SB5 MFNC PRESET ERROR MESSAGE ADDRESS
- MX0 42 COMPARE TAPE CATALOG FILE NAMES
- SA3 P
- SA4 N
- BX3 X3-X4
- BX3 X0*X3
- SA2 PRSB PRESET TABLE ADDRESS
- NZ X3,PRS14 IF TAPE CATALOG NAMES DO NOT MATCH
- SA2 A2+B1 RESET TABLE ADDRESS
- PRS14 ZR X2,PRS17 IF END OF TABLE
- SA4 X2 CHECK FILE NAME
- BX4 X0*X4
- ZR X4,PRS16 IF NO FILE NAME
- SA1 A2+B1
- PRS15 ZR X1,PRS16 IF END OF TABLE
- SA3 X1 COMPARE FILE NAMES
- BX3 X3-X4
- BX3 X0*X3
- ZR X3,ABT IF FILE NAME CONFLICT
- SA1 A1+B1
- EQ PRS15 CHECK NEXT FET
- PRS16 SA2 A2+B1
- EQ PRS14 CHECK NEXT FILE NAME
- * PRESET TABLES IN MAIN PROGRAM.
- PRS17 SB3 7 SPACE FILL COMMAND IMAGE
- PRS18 SA1 CCDR+B3
- RJ SFN SPACE FILL NAME
- SA6 A1
- SB3 B3-B1
- PL B3,PRS18
- MOVEBIT CCDR,NPGF,480,,41 MOVE IMAGE TO PAGE HEADER
- MACHID MI SET MACHINE ID
- PDATE PD SET PACKED DATE AND TIME
- MOVEBIT PD,DFIC+/CAT/CDATE,36,35,35 SET DEFAULT DATES
- MOVEBIT PD,DFIC+/CAT/MDATE,36,35,35
- MOVEBIT PD,DFIC+/CAT/ADATE,36,35,35
- MOVEBIT PD,DAUC+/CAT/AADATE,36,35,35
- SA1 PD GET PACKED TIME
- SX1 X1
- SB3 100
- RJ UDT UNPACK TIME
- SA6 DT SAVE DISPLAY TIME
- SA1 PD GET PACKED DATE
- AX1 18
- SB3 70
- RJ UDT UNPACK DATE
- SA6 DD SAVE DISPLAY DATE
- DATE NPGD MOVE DATE INTO PAGE HEADER
- CLOCK NPGD+1 MOVE TIME INTO PAGE HEADER
- SA1 TE
- ZR X1,PRS19 IF NOT *TFSPE*
- MOVE 2,NPGD,/KFAMLS/TDATE MOVE DATE/TIME TO MESSAGE
- PRS19 JDATE JD SET JULIAN DATE
- SA1 JD
- BX6 X1
- LX6 30
- SA6 A1
- MOVEBIT JD,DFIC+/CAT/RT,30 SET DEFAULT DATES
- MOVEBIT JD,DFIC+/CAT/CR,30,,29
- SA2 L
- RJ CFS CHECK FILE STATUS OF OUTPUT
- SA6 OS
- NG X6,PRS20 IF MASS STORAGE OUTPUT
- SA1 =0 SET TERMINAL OUTPUT FOR AUDIT LISTING
- MOVEBIT A1,/ALS/EOL1,12,,11
- SA1 =0
- MOVEBIT A1,/ALS/EOL2,12,,11
- MOVEBIT (=0),/PFIA/EOL1,/PFIAC/EOL1*6,,/PFIAU/EOL1
- MOVEBIT (=0),/PFIA/EOL2,/PFIAC/EOL2*6,,/PFIAU/EOL2
- * PROCESS FAMILY NAME.
- PRS20 RJ SFL SET FAMILY NAME
- RJ SFN SPACE FILL NAME
- SA6 NPGC SET FAMILY NAME IN PAGE HEADER
- BX1 X6 SET FAMILY NAME IN MACHINE READABLE ENTRY
- MOVEBIT A1,/MLS/FAMILY,/MLSC/FAMILY*6,,/MLSU/FAMILY
- SA1 TE
- NZ X1,PRS24 IF *TFSPE*
- SA1 LF
- ZR X1,PRS23 IF NOT LOCAL FILE MODE
- * PROCESS *TFSP* - LOCAL FILE MODE.
- MX0 42 CHECK OLD TAPE CATALOG NAME
- SA1 P
- BX1 X0*X1
- NZ X1,PRS21 IF FILE NAME SPECIFIED
- RJ CDN COPY DEFAULT NEW TAPE CATALOG FILE
- REPRIEVE RPVA,SET,237B SET EXTENDED REPRIEVE
- EQ PRS26 INITIALIZE FILES
- PRS21 RJ CPN COPY OLD TAPE CATALOG TO NEW
- ZR X4,PRS22 IF NOT EMPTY TAPE CATALOG
- ABTMSG METC ABORT *TFSP*
- PRS22 RJ RFP READ FIRST PRU
- RJ CIL CLEAR INTERLOCKS ON FILE
- REPRIEVE RPVA,SET,237B SET EXTENDED REPRIEVE
- EQ PRS26 INITIALIZE FILES
- * PROCESS *TFSP* - NOT LOCAL FILE MODE.
- PRS23 REPRIEVE RPVA,SET,237B SET EXTENDED REPRIEVE
- RJ SIL SET INTERLOCK ON FILE
- ZR X4,PRS26 IF INTERLOCK SET
- ABTMSG X6 ABORT *TFSP*
- * PROCESS *TFSPE*.
- PRS24 REPRIEVE RPVA,SET,237B SET EXTENDED REPRIEVE
- SB3 PTWR SELECT WRITE MODE REGULAR ATTACH
- RJ ATT ATTACH TAPE CATALOG FILE
- ZR X4,PRS25 IF FILE ATTACHED
- ABTMSG MFNA ABORT *TFSP*
- PRS25 RJ CIL CLEAR INTERLOCKS ON FILE
- SX6 B1 SET LOCAL FILE MODE FLAG
- SA6 LF
- RJ CCF CHECK COPY FILE
- PRS26 RJ INF INITIALIZE FILES
- SX6 B0 CHECK IF NO VERIFY MODE IS VALID
- SA1 LF
- ZR X1,PRS27 IF NOT LOCAL FILE MODE
- SA1 P
- LJUST X1,X1,42,59
- NZ X1,PRS27 IF NOT *P=0*
- SA1 NV KEEP NO VERIFY STATUS
- SX6 X1
- PRS27 SA6 NV SET/CLEAR NO VERIFY STATUS
- SA1 OP CHECK OPTION
- SX1 X1-ZOPT
- NZ X1,TFS IF NOT *OP=Z*
- SX2 I SET INPUT FET ADDRESS
- EQ PRS28 GET *Z* DIRECTIVES
- PRSA BSS 0 CLEAR *TFSPE* MESSAGE IMAGE
- DUP /KFAMLS/TFSPEL-1
- KLINE ( )
- ENDD
- KLINE (),E
- PRSAL EQU *-PRSA
- PRSB BSS 0 TABLE OF FET ADDRESSES
- CON P OLD TAPE CATALOG FILE FET
- CON N NEW TAPE CATALOG FILE FET
- CON I INPUT FILE FET
- CON L OUTPUT FILE FET
- CON S SOURCE FILE FET
- CON SS MACHINE READABLE FILE FET
- CON COPF COPY FILE FOR *TFSPE*
- CON 0 END OF TABLE
- TFR SPACE 4,10
- ** TFR - PROCESS *TFSPR* COMMAND.
- *
- * EXIT TO END7 IF NO ERROR.
- * TO ABT IF ERROR.
- *
- * USES A - 1, 4, 6, 7.
- * X - 0, 1, 4, 6, 7.
- * B - 4, 5.
- *
- * CALLS ABT, ARG, END, GOT, SFL.
- *
- * MACROS ABTMSG, MESSAGE, SYSTEM.
- TFSPR BSS 0 ENTRY
- SB1 1
- RJ GOT GET ORIGIN TYPE
- SX6 X6-SYOT
- ZR X6,TFR1 IF SYSTEM ORIGIN
- ABTMSG MILA * INCORRECT ACCESS.*
- TFR1 RJ ZFN ZERO OUT FILE NAMES
- SA1 ACTR READ ARGUMENT COUNT
- SA4 ARGR SET ARGUMENT ADDRESS
- SB4 X1 SET ARGUMENT COUNT
- SB5 TPPR SET ARGUMENT TABLE ADDRESS
- RJ ARG PROCESS ARGUMENTS
- ZR X1,TFR2 IF NO ERROR IN ARGUMENTS
- ABTMSG MPER * PARAMETER ERROR.*
- TFR2 RJ SFL SET FAMILY NAME
- SX6 ISFS*10B SET SUBFUNCTION CODE
- SA6 N
- SX6 30000B SET PROCESS DOWN MACHINES OPTION
- SX7 TFRA SET ERROR MESSAGE ADDRESS
- SA6 N+TFES
- SA7 N+5
- SYSTEM TFM,R,N,SSJF*100B CLEAN UP CATALOG
- SA1 N CHECK ERROR CODE
- MX0 -9
- LX0 17-8
- BX1 -X0*X1
- ZR X1,END7 IF NO ERROR
- MESSAGE TFRA ISSUE ERROR MESSAGE
- EQ ABT ABORT
- TFRA BSSZ 4 ERROR MESSAGE
- ABT SPACE 4,10
- ** ABT - *PRESET* ABORT PROCESSOR.
- *
- * ENTRY (B5) = ERROR MESSAGE ADDRESS.
- * (X4) = IMAGE TO INSERT IN ERROR MESSAGE.
- *
- * EXIT *TFSP* ABORTED.
- ABT BSS 0 ENTRY
- MX0 42 GET LAST SEVEN CHARACTERS OF IMAGE
- BX1 X0*X4
- SB3 B5 SET ERROR MESSAGE ADDRESS
- SB2 1R$
- RJ SNM SET NAME IN MESSAGE
- ABTMSG B5 ABORT *TFSP*
- DMESS SPACE 4,10
- ** DAYFILE ERROR MESSAGES.
- MCRC DATA C$ *CF* PARAMETER REQUIRED WITH *CLEAR*.$
- MERC DATA C$ CATALOG ERROR REQUIRED WITH *CLEAR*.$
- METC DATA C* EMPTY TAPE CATALOG FILE.*
- MFNC DATA C* FILE NAME CONFLICT - $$$$$$$.*
- MILA DATA C* INCORRECT ACCESS.*
- MILO DATA C* INCORRECT OPTION - $$$$$$$.*
- MPER DATA C* PARAMETER ERROR - $$$$$$$.*
- FETS SPACE 4,10
- ** FILE ENVIRONMENT TABLES.
- P BSS 0 OLD TAPE CATALOG FILE
- OLD FILEB PBUF,TBUFL,(FET=8),EPR
- N BSS 0 NEW TAPE CATALOG FILE
- NEW FILEB NBUF,TBUFL,(FET=16),EPR
- REWORD N+CFPW,(42/,18/PBUF)
- WORKING SPACE 4,10
- ** WORKING STORAGE FOR PRESET.
- COPF CON 0 COPY FILE NAME FOR *TFSPE*
- CLR CON 0 *CLEAR* OPTION FOR *TFSPE*
- TOPO SPACE 4,10
- ** TOPO - TABLE OF OPTIONS FOR *OP* PARAMETER.
- *
- * ENTRY ONE WORD PER OPTION.
- * 42/OP,18/VALUE
- *
- * OP = OPTION LEFT JUSTIFIED.
- * VALUE = NUMERIC VALUE OF OPTION.
- *
- * TABLE TERMINATED BY A ZERO WORD.
- TOPO BSS 0
- VFD 42/0LI,18/IOPT *I* OPTION
- VFD 42/0LZ,18/ZOPT *Z* OPTION
- TOPOK VFD 42/0LK,18/KOPT *K* OPTION
- * CON 0 (NON-SYSTEM ORIGIN)
- CON 0 END OF TABLE
- TPAE SPACE 4,10
- ** TPAE - TABLE OF COMMAND PARAMETERS FOR *TFSPE*.
- *
- * ENTRY ONE WORD PER PARAMETER FORMATTED FOR *COMCARG*.
- *
- * TABLE TERMINATED BY A ZERO WORD.
- TPAE BSS 0 *TFSPE* PARAMETERS
- L ARG L,L OUTPUT FILE
- S ARG S,S SOURCE FILE
- SS ARG SS,SS MACHINE READABLE FILE
- FM ARG FM,FM,400B FAMILY
- CF ARG (=0LZFCCOPY),COPF COPY FILE
- CLEAR ARG (-=1),CLR CLEAR CATALOG OPTION
- CON 0 END OF TABLE
- TPAR SPACE 4,10
- ** TPAR - TABLE OF COMMAND PARAMETERS FOR *TFSP*.
- *
- * ENTRY ONE WORD PER PARAMETER FORMATTED FOR *COMCARG*.
- *
- * TABLE TERMINATED BY A ZERO WORD.
- TPAR BSS 0 *TFSP* PARAMETERS
- I ARG I,I INPUT FILE
- N ARG N,N,400B NEW TAPE CATALOG FILE
- P ARG P,P OLD TAPE CATALOG FILE
- OP ARG OP,OP,400B INPUT OPTION
- A ARG (-=1),AB ABORT OPTION
- NV ARG (-=1),NV NO VERIFY OPTION
- RT ARG (-=1),RT RETRY ON UTILITY ACTIVE OPTION
- LF ARG (=-1),LF LOCAL FILE OPTION
- L ARG L,L OUTPUT FILE
- S ARG S,S SOURCE FILE
- SS ARG SS,SS MACHINE READABLE FILE
- TPARSY BSS 0 SYSTEM ORIGIN PARAMETERS
- FM ARG FM,FM,400B FAMILY
- * CON 0 (NON-SYSTEM ORIGIN)
- CON 0 END OF TABLE
- TPPR SPACE 4,10
- ** TPPR - TABLE OF COMMAND PARAMETERS FOR *TFSPR*.
- TPPR BSS 0
- FM ARG FM,FM,400B FAMILY.
- ARG
- ATT SPACE 4,10
- ** ATT - ATTACH FILE.
- *
- * ENTRY (B3) = 0 FILE MODE.
- * FAST ATTACH PERFORMED IF UPDATE OR READ/UPDATE MODE.
- * REGULAR ATTACH PERFORMED IF WRITE MODE.
- *
- * EXIT (X4) = 0 IF FILE IS ATTACHED.
- * (WBUF - WBUF+100B) = FIRST PRU OF FILE.
- *
- * USES X - 1, 4, 6.
- * A - 4, 6.
- *
- * CALLS RFP.
- *
- * MACROS ATTACH, RJUST, ROLLOUT.
- ATT4 RJ RFP READ FIRST PRU
- SX4 B0 FLAG NO ERRORS
- ATT SUBR ENTRY/EXIT
- SX6 B3 SAVE MODE
- SA6 ATTA
- ATT1 SX1 B3-PTWR
- ZR X1,ATT2 IF WRITE MODE
- ATTACH N,,,,ATTA,,,IP,FA ATTACH FAST ATTACH FILE
- EQ ATT3 CHECK IF FILE ATTACHED
- ATT2 ATTACH N,,,,ATTA,,,IP ATTACH LOCAL FILE
- ATT3 SA4 N CHECK IF FILE ATTACHED
- RJUST X4,X4,8,17
- ZR X4,ATT4 IF FILE ATTACHED
- SX1 X4-/ERRMSG/FBS
- NZ X1,ATTX IF NOT FILE BUSY
- ROLLOUT =10
- EQ ATT1 RETRY ATTACH
- ATTA CON PTRU MODE OF ATTACH
- CCF SPACE 4,20
- ** CCF - CHECK COPY FILE.
- *
- * EXIT CURRENT TAPE CATALOG FILE COPIED TO COPY FILE IF *CF*
- * SPECIFIED ON COMMAND.
- * CURRENT TAPE CATALOG REWRITTEN AS EMPTY IF *CLEAR*
- * SPECIFIED ON COMMAND.
- *
- * ERRORS ABORT WITH *MCRC* ERROR MESSAGE IF *CLEAR* SPECIFIED
- * WITHOUT *CF*.
- * ABORT WITH *MERC* ERROR MESSAGE IF *CLEAR* SPECIFIED
- * WITHOUT CATALOG ERROR.
- * ABORT IF UNABLE TO DEFINE COPY FILE.
- *
- * USES X - 0, 1, 5.
- * A - 1.
- *
- * CALLS CDN.
- *
- * MACROS ABTMSG, DEFINE, MOVEBIT, READEI, READW, RETURN,
- * REWIND, SETFET, WRITER, WRITEW.
- CCF4 ABTMSG X5 ABORT PROGRAM
- CCF SUBR ENTRY/EXIT
- SA1 CLR
- ZR X1,CCF1 IF *CLEAR* NOT SPECIFIED
- SA1 COPF
- SX5 MCRC **CF* PARAMETER REQUIRED WITH *CLEAR**
- ZR X1,CCF4 IF NO COPY FILE
- SX0 FETS CHECK FOR CATALOG ERROR
- SA1 SYBL+TMFM
- BX1 X0*X1
- SX5 MERC *CATALOG ERROR REQUIRED WITH *CLEAR**
- ZR X1,CCF4 IF NO CATALOG ERROR
- CCF1 SA1 COPF
- ZR X1,CCFX IF NO COPY FILE
- MOVEBIT A1,P,42 CREATE COPY FILE
- RETURN P,R
- SETFET P,(ERA=CCFA),(DTY=B0)
- DEFINE P,,,,,,,,,IP
- MX0 -8 CHECK FOR ERROR
- SA1 P
- AX1 10
- BX1 -X0*X1
- SX5 CCFA *PFM* ERROR MESSAGE
- NZ X1,CCF4 IF ERROR
- REWIND P,R COPY TAPE CATALOG FILE
- REWIND N,R
- READEI N,R INITIATE READ
- CCF2 READW N,CCFC,CCFCL
- NG X1,CCF3 IF EOI
- WRITEW P,CCFC,CCFCL
- EQ CCF2 CONTINUE READ
- CCF3 SB7 B6-CCFC COMPLETE RECORD
- WRITEW P,CCFC,B7
- WRITER P,R WRITE EOR
- RETURN P
- SA1 CLR
- ZR X1,CCFX IF NOT *CLEAR* OPTION
- MOVE 100B,CCFB,BCW1 RESET FIRST PRU
- RJ CDN COPY DEFAULT TAPE CATALOG FILE
- EQ CCFX RETURN
- CCFA BSS 4 *PFM* ERROR MESSAGE BLOCK
- CCFB BSS 0 DEFAULT SYSTEM BLOCK FOR *CLEAR*
- LOC 0
- BWRT VFD 6/RTSB,6/0,12/0,12/100B-TBHL,12/1,12/TBHL
- BWDT VFD 24/0,36/
- BWRI VFD 12/0,24/0,24/0
- BWUN VFD 42/,18/0
- LOC *O
- LOC 0
- TMFM VFD 42/,18/FFTS+FETS FOREIGN FAMILY, CATALOG ERROR
- TMID VFD 12/,24/0,24/0
- TMCT VFD 12/0,24/0,24/0
- TMSV VFD 36/-0,24/0
- TMMB DATA 38L CATALOG CLEARED BY *TFSPE*.
- TMUN BSS UNCL
- BSS 100B-TBHL-*
- LOC *O
- CCFC BSS 100B WORKING BUFFER FOR COPY FILE
- CCFCL EQU *-CCFC WORKING BUFFER LENGTH
- CDN SPACE 4,10
- ** CDN - COPY DEFAULT TAPE CATALOG FILE.
- *
- * EXIT (WBUF) COPIED TO NEW TAPE CATALOG FILE.
- *
- * USES A - 1, 6.
- * X - 1, 6.
- *
- * MACROS MOVEBIT, REWIND, WRITER, WRITEW.
- CDN SUBR ENTRY/EXIT
- REWIND N,R WRITE DEFAULT SYSTEM BLOCK
- MOVEBIT MI,SYBL+TMID,12,11 SET MACHINE ID IN BLOCK
- MOVEBIT CF,SYBL+TMFM,42 SET FAMILY NAME IN BLOCK
- SA1 PD GET PACKED DATE/TIME
- BX6 X1
- SA6 BCW1+BWDT SET DATE IN BUFFER CONTROL WORDS
- SA6 BCW2+BWDT
- SA6 BCW3+BWDT
- SA6 BCW4+BWDT
- SA6 BCW5+BWDT
- WRITEW N,WBUF,WBUFL
- WRITER N,R WRITE EOR
- EQ CDNX RETURN
- CFS SPACE 4,10
- ** CFS - CHECK FILE STATUS.
- *
- * ENTRY (A2) = FET ADDRESS.
- * (X2) = FIRST WORD OF FET.
- *
- * EXIT (X6) = -1 IF MASS STORAGE FILE.
- * = 0 IF NO FILE.
- * = 1 IF TERMINAL FILE.
- *
- * USES X - 0, 2.
- *
- * CALLS STF.
- CFS1 SX6 B1 SET TERMINAL FILE STATUS
- CFS SUBR ENTRY/EXIT
- MX0 42 CHECK FILE NAME
- BX6 X0*X2
- ZR X6,CFSX IF NO FILE NAME
- SX2 A2
- RJ STF SET TERMINAL FILE
- ZR X6,CFS1 IF TERMINAL FILE
- SX6 -B1 SET MASS STORAGE FILE STATUS
- EQ CFSX RETURN
- CIL SPACE 4,10
- ** CIL - CLEAR INTERLOCKS ON FILE.
- *
- * ENTRY (WBUF - WBUF+100B) = FIRST PRU OF FILE.
- *
- * EXIT UTILITY INTERLOCKS CLEARED.
- *
- * CALLS WFP.
- *
- * MACROS MOVEBIT.
- CIL SUBR ENTRY/EXIT
- MOVEBIT (=0),SYBL+TMFM,1,,0 CLEAR INTERLOCKS
- MOVEBIT (=0),SYBL+TMID,24,,47
- MOVEBIT (=0),WBUF+BWUN,UNKL*6
- RJ WFP REWRITE FIRST PRU
- EQ CILX RETURN
- CPN SPACE 4,10
- ** CPN - COPY OLD TAPE CATALOG TO NEW FILE.
- *
- * EXIT (X4) = 0 IF OLD TAPE CATALOG FILE COPIED TO NEW.
- *
- * USES A - 1, 2.
- * B - 7.
- * X - 1, 2.
- *
- * CALLS GFL.
- *
- * MACROS READEI, READW, REWIND, WRITER, WRITEW.
- CPN SUBR ENTRY/EXIT
- SA2 P
- RJ GFL GET FILE LENGTH
- SX4 B1
- ZR X1,CPNX IF ZERO-LENGTH FILE
- MX0 42 COMPARE FILE NAMES
- SA1 N
- SA2 P
- BX1 X1-X2
- BX4 X0*X1
- ZR X4,CPNX IF SAME FILE NAMES
- REWIND N,R COPY OLD TAPE CATALOG FILE TO NEW
- REWIND P,R
- READEI P,R INITIATE READ
- CPN1 READW P,WBUF,WBUFL
- NG X1,CPN2 IF EOI
- WRITEW N,WBUF,WBUFL WRITE DATA
- EQ CPN1 CONTINUE READ
- CPN2 SB7 B6-WBUF COMPLETE RECORD
- WRITEW N,WBUF,B7
- WRITER N,R WRITE EOR
- SX4 B0
- EQ CPNX RETURN
- GFI SPACE 4,10
- ** GFI - GET FILE INFORMATION.
- *
- * ENTRY (X2) = FIRST WORD OF FET.
- *
- * EXIT (X2) = ADDRESS OF *FILINFO* BLOCK.
- *
- * USES A - 6.
- * X - 0, 2, 6.
- *
- * MACROS FILINFO.
- GFI SUBR ENTRY/EXIT
- MX0 42 SET FILE NAME IN *FILINFO* BLOCK
- BX2 X0*X2
- SX6 50001B
- BX6 X2+X6
- SA6 GFIA
- FILINFO GFIA GET FILE INFORMATION
- EQ GFIX RETURN
- GFIA BSS 5 *FILINFO* BLOCK
- GFL SPACE 4,10
- ** GFL - GET FILE LENGTH.
- *
- * ENTRY (X2) = FIRST WORD OF FET.
- *
- * EXIT (X1) = NUMBER OF PRUS IN FILE.
- *
- * USES A - 1.
- * X - 1.
- *
- * CALLS GFI.
- *
- * MACROS RJUST.
- GFL SUBR ENTRY/EXIT
- RJ GFI GET FILE INFORMATION
- SA1 X2+3 GET FILE LENGTH
- RJUST X1,X1,24,59
- EQ GFLX RETURN
- GOT SPACE 4,10
- ** GOT - GET JOB ORIGIN.
- *
- * ENTRY NONE.
- *
- * EXIT (X6) = ORIGIN TYPE.
- * (OT) = ORIGIN TYPE.
- *
- * USES A - 1, 6.
- * X - 1, 2.
- GOT SUBR ENTRY/EXIT
- MX0 -12 GET ORIGIN TYPE
- SA1 JOPR
- AX1 24
- BX6 -X0*X1
- SA6 OT
- EQ GOTX RETURN
- GSF SPACE 4,10
- *** GSF - GET SCRATCH FILE NAME.
- *
- * EXIT (X6) = UNASSIGNED SCRATCH FILE NAME.
- *
- * USES A - 1, 6.
- * X - 1, 4, 6.
- *
- * MACROS PDATE, STATUS.
- GSF4 SX1 B1 SET FILE NAME IN FET
- BX6 X6+X1
- SA6 Z
- STATUS Z CHECK FILE STATUS
- SX6 7776B
- SA1 Z
- BX6 X6*X1
- NZ X6,GSF1 IF FILE EXISTS
- MX6 42 GET FILE NAME
- BX6 X6*X1
- GSF SUBR ENTRY/EXIT
- GSF1 SA1 GSFA
- NZ X1,GSF2 IF BINARY NUMBER EXISTS
- SA1 GSFC SET INITIAL BINARY
- BX6 X1
- SA6 GSFA
- PDATE GSFB GET PACKED DATE AND TIME
- MX6 -6 RANDOMIZE BINARY
- SA1 GSFB
- BX6 -X6*X1
- LX6 15
- SA1 GSFA
- BX6 X1-X6
- SA6 A1
- BX1 X6
- GSF2 SX6 B1 RESET BINARY
- IX6 X1-X6
- SA6 A1
- * CONVERT BINARY TO FILE NAME.
- SX6 B0
- GSF3 ZR X1,GSF4 IF END OF BINARY
- MX4 -5 CONVERT 5 BINARY BITS TO CHARACTER CODE
- BX4 -X4*X1
- SX4 X4+B1
- BX6 X6+X4
- LX6 -6+60
- AX1 5
- EQ GSF3 GET NEXT CHARACTER CODE
- GSFA CON 0 BINARY NUMBER
- GSFB CON 0 PACKED DATE AND TIME
- GSFC CON 317777777777B
- Z BSS 0 *STATUS* FET
- Z555555 FILEB 0,0,(FET=5)
- INF SPACE 4,10
- ** INF - INITIALIZE FILES.
- *
- * EXIT INPUT, OUTPUT, SOURCE, MACHINE READABLE, AND
- * NEW TAPE CATALOG FILES SET WITH ID=0.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * CALLS CFS, GFL.
- *
- * MACROS SETID.
- INF SUBR ENTRY/EXIT
- SA2 I GET INPUT FILE
- RJ CFS CHECK FILE STATUS
- SA6 IS SAVE FILE STATUS
- SA1 OS SAVE FILE STATUS
- PL X1,INF1 IF TERMINAL FILE OR NO FILE
- SA2 L
- RJ GFL GET FILE LENGTH
- NZ X1,INF1 IF NOT ZERO-LENGTH FILE
- SETFS L,0 FORCE ID OF ZERO
- INF1 SA2 S GET SOURCE FILE
- RJ CFS CHECK FILE STATUS
- PL X6,INF2 IF TERMINAL FILE OR NO FILE
- SA2 S
- RJ GFL GET FILE LENGTH
- NZ X1,INF2 IF NOT ZERO-LENGTH FILE
- SETFS S,0 FORCE ID OF ZERO
- INF2 SA2 SS GET MACHINE READABLE FILE
- RJ CFS CHECK FILE STATUS
- PL X6,INF3 IF TERMINAL FILE OR NO FILE
- SA2 SS
- RJ GFL GET FILE LENGTH
- NZ X1,INF3 IF NOT ZERO-LENGTH FILE
- SETFS SS,0
- INF3 SA1 LF
- ZR X1,INFX IF NOT LOCAL FILE MODE
- SETFS N,0 FORCE ID FOR NEW TAPE CATALOG TO ZERO
- EQ INFX RETURN
- RFP SPACE 4,10
- ** RFP - READ FIRST PRU OF FILE.
- *
- * EXIT (WBUF - WBUF+100B) = FIRST PRU OF FILE.
- *
- * USES A - 6.
- * X - 6.
- *
- * MACROS READW, RECALL, RPHRLS.
- RFP SUBR ENTRY/EXIT
- RECALL N READ FIRST PRU OF FILE
- SX6 RFPA
- SA6 N+5
- RPHRLS X2,R
- READW X2,WBUF,100B
- EQ RFPX RETURN
- RFPA CON 1 TABLE OF PRUS TO READ
- CON 0
- SFL SPACE 4,10
- ** SFL - SET FAMILY NAME.
- *
- * EXIT (X1) = FAMILY NAME.
- * (CF) = CURRENT (ORIGINAL) FAMILY NAME.
- * (FM) = SPECIFIED FAMILY NAME.
- *
- * USES A - 1, 2, 6.
- * X - 1, 2, 6.
- *
- * CALLS CFM.
- *
- * MACROS GETPFP.
- SFL1 BX6 X1 SET FAMILY NAME
- SA6 FM
- SFL SUBR ENTRY/EXIT
- GETPFP SFLA GET PERMANENT FILE PARAMETERS
- SA1 SFLA GET CURRENT FAMILY NAME
- BX6 X1
- SA6 CF
- SA2 FM
- ZR X2,SFL1 IF NO ALTERNATE FAMILY
- BX1 X2
- RJ CFM CHANGE FAMILY
- SA1 FM
- EQ SFLX RETURN
- SFLA BSS 3 PARAMETER BLOCK
- SIL SPACE 4,10
- ** SIL - SET INTERLOCK ON FILE.
- *
- * EXIT (X4) = 0 IF INTERLOCK SET.
- * (X6) = ERROR MESSAGE ADDRESS IF INTERLOCK NOT SET.
- *
- * USES A - 1, 2.
- * X - 0, 1, 2, 3, 4, 6.
- *
- * CALLS ATT, GFI, RCW, WFP.
- *
- * MACROS MOVEBIT, RETURN, RJUST, ROLLOUT, SRCHTAB.
- SIL SUBR ENTRY/EXIT
- SIL1 SB3 PTRU SELECT READ/UPDATE FAST ATTACH
- RJ ATT ATTACH FILE
- SX6 MFNA
- NZ X4,SILX IF FILE NOT FOUND
- RETURN N,R RETURN FILE
- SA1 SYBL+TMFM CHECK UTILITY INTERLOCK BIT
- RJUST X1,X6,1,0
- SA1 WBUF+BWUN CHECK USER NAME FIELD
- MX0 42
- BX1 X0*X1
- BX1 X1+X6
- ZR X1,SIL3 IF NOT INTERLOCKED
- SIL2 SA1 RT
- SX6 MTCI
- SX4 B1 SET FLAG FOR INTERLOCK SET
- ZR X1,SILX IF NO RETRY REQUESTED
- ROLLOUT =10
- EQ SIL1 RETRY REQUEST
- SIL3 SA1 OT CHECK ORIGIN
- SX1 X1-SYOT
- ZR X1,SIL4 IF SYSTEM ORIGIN
- MX0 42 CHECK IF USER IS VALIDATED
- SRCHTAB SYBL+TMUN,SSJ=+UIDS,UNCL
- SX6 MILA
- NZ X4,SILX IF USER NOT VALIDATED
- SIL4 SB3 PTUP SELECT UPDATE MODE FAST ATTACH
- RJ ATT ATTACH FILE
- SX6 MFNA
- NZ X4,SILX IF FILE NOT FOUND
- SA1 SYBL+TMFM CHECK UTILITY INTERLOCK BIT
- RJUST X1,X6,1,0
- SA1 WBUF+BWUN CHECK USER NAME FIELD
- MX0 42
- BX1 X0*X1
- BX1 X1+X6
- ZR X1,SIL5 IF NOT INTERLOCKED
- RETURN N,R RETURN FILE
- EQ SIL2 CHECK IF RETRY
- SIL5 SX2 ESTP READ EST POINTER
- RJ RCW
- LX1 24 SET EST FWA
- SX3 X1
- SA2 N
- RJ GFI GET FILE INFORMATION
- SA2 X2+2 GET EST ORDINAL OF CATALOG
- MX0 -9
- SX4 ESTE
- LX2 12
- BX2 -X0*X2 EXTRACT EST ORDINAL
- IX2 X2*X4
- IX2 X2+X3 SET EST ADDRESS
- RJ RCW READ EST ENTRY
- MX0 -12
- LX1 59-52
- PL X1,SIL6 IF NOT SHARED DEVICE
- LX1 52-59
- BX1 -X0*X1
- LX1 3
- SX2 X1+DULL SET ADDRESS OF MST *DULL* WORD
- RJ RCW READ MACHINE INDEX
- MX0 -4 SET MACHINE INDEX-1
- LX1 -24
- BX6 -X0*X1
- SA6 MX
- MOVEBIT MX,WBUF+BWUN,4,3,15 SET MACHINE INDEX-1
- SIL6 MOVEBIT (=-0),WBUF+BWUN,UNKL*6 SET USER NAME INTERLOCK
- RJ WFP REWRITE FIRST PRU
- RETURN N,R RETURN FILE
- SX4 B0
- EQ SILX RETURN
- WFP SPACE 4,10
- ** WFP - REWRITE FIRST PRU OF FILE.
- *
- * ENTRY (WBUF - WBUF+100B) = NEW FIRST PRU OF FILE.
- *
- * MACROS REWIND, REWRITE, WRITEW.
- WFP SUBR ENTRY/EXIT
- REWIND N,R REWRITE FIRST PRU
- REWRITE X2,*
- WRITEW X2,WBUF,100B
- REWRITE X2,R
- EQ WFPX RETURN
- ZFN SPACE 4,10
- ** ZFN - ZERO OUT FILE NAMES IN FETS.
- *
- * EXIT FILE NAMES IN FETS *N*, *SS*, *UB*, AND *VB* CLEARED.
- *
- * MACROS SETFET.
- ZFN SUBR ENTRY/EXIT
- SETFET N,(LFN=B0) CLEAR NEW TAPE CATALOG FILE NAME
- SETFET SS,(LFN=B0) CLEAR MACHINE READABLE FILE NAME
- SETFET VB,(LFN=B0) CLEAR VSN ENTRY BUFFER FET
- SETFET UB,(LFN=B0) CLEAR ALTERNATE USER NAME BUFFER FET
- EQ ZFNX RETURN
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCARG
- *CALL COMCLFM
- *CALL COMCPFM
- *CALL COMCSTF
- WBUF SPACE 4,10
- ** WBUF - WORKING BUFFER FOR TAPE CATALOG FILES.
- *
- * PRESET WITH FIRST FOUR BLOCKS OF TAPE CATALOG FILE.
- WBUF BSS 0
- * FIRST PRU - SYSTEM BLOCK.
- BCW1 BSS 0 BUFFER CONTROL WORD - BLOCK 1
- LOC 0
- BWRT VFD 6/RTSB,6/0,12/0,12/100B-TBHL,12/1,12/TBHL
- BWDT VFD 24/0,36/
- BWRI VFD 12/0,24/0,24/0
- BWUN VFD 42/,18/0
- LOC *O
- SYBL BSS 0 SYSTEM BLOCK
- LOC 0
- TMFM VFD 42/,18/0
- TMID VFD 12/,24/0,24/0
- TMCT VFD 12/0,24/0,24/0
- TMSM VFD 36/-0,24/0
- TMMB BSSZ MBML
- TMUN BSSZ UNCL
- TMLF VFD 42/0,18/0
- TMPA BSSZ PAFL
- TMSC VFD 36/-0,24/0
- TMSA VFD 36/-0,24/0
- BSS 100B-TBHL-*
- LOC *O
- * SECOND PRU - PRIMARY VSN BLOCK.
- BCW2 BSS 0 BUFFER CONTROL WORD - BLOCK 2
- LOC 0
- BWRT VFD 6/RTVB,6/1,12/100B-TBHL-TPIL,12/TPIL,12/1,12/TBHL
- BWDT VFD 24/0,36/
- BWRI VFD 12/0,24/0,24/0
- BWUN VFD 42/,18/0
- LOC *O
- PVBL BSS 0 PRIMARY VSN BLOCK
- LOC 0
- VFD 12/1,24/0,6/0,18/4 DUMMY VSN ENTRY
- BSS 100B-TBHL-*
- LOC *O
- * THIRD PRU - PRIMARY USER NAME BLOCK.
- BCW3 BSS 0 BUFFER CONTROL WORD - BLOCK 3
- LOC 0
- BWRT VFD 6/RTUB,6/1,12/100B-TBHL-TPIL,12/TPIL,12/1,12/TBHL
- BWDT VFD 24/0,36/
- BWRI VFD 12/0,24/0,24/0
- BWUN VFD 42/,18/0
- LOC *O
- PUBL BSS 0 PRIMARY USER NAME BLOCK
- LOC 0
- VFD 12/1,30/0,18/5 DUMMY USER NAME ENTRY
- BSS 100B-TBHL-*
- LOC *O
- * FOURTH PRU - SECONDARY VSN BLOCK.
- BCW4 BSS 0 BUFFER CONTROL WORD - BLOCK 4
- LOC 0
- BWRT VFD 6/RTVB,6/2,12/100B-TBHL-TSVL,12/TSVL,12/1,12/TBHL
- BWDT VFD 24/0,36/
- BWRI VFD 12/0,24/0,24/0
- BWUN VFD 42/,18/0
- LOC *O
- SVBL BSS 0 SECONDARY VSN BLOCK
- LOC 0
- VFD 12/1,24/0,24/0 DUMMY VSN ENTRY
- VFD 36/0,6/0,18/0
- VFD 36/0,24/0
- VFD 36/0,24/0
- BSS 100B-TBHL-*
- LOC *O
- * FIFTH PRU - SECONDARY USER NAME INDEX.
- BCW5 BSS 0 BUFFER CONTROL WORD BLOCK 5
- LOC 0
- BWRT VFD 6/RTUB,6/2,12/100B-TBHL-TSUL,12/TSUL,12/1,12/TBHL
- BWDT VFD 24/0,36/
- BWRI VFD 12/0,24/0,24/0
- BWUN VFD 42/,18/0
- LOC *O
- SUBL BSS 0 SECONDARY VSN BLOCK
- LOC 0
- VFD 12/1,30/0,18/0 DUMMY USER NAME ENTRY
- BSS 100B-TBHL-*
- LOC *O
- WBUFL EQU *-WBUF LENGTH OF WORKING BUFFER
- BUFFERS SPACE 4,10
- ** FILE BUFFERS.
- PBUF BSS TBUFL
- NBUF BSS TBUFL
- SPACE 4
- QUAL
- ENTRY SPACE 4,10
- ** ENTRY POINTS.
- TFSP EQU /PRESET/TFSP
- TFSPE EQU /PRESET/TFSPE
- TFSPR EQU /PRESET/TFSPR
- RFL= SPACE 4,10
- ** FIELD LENGTH.
- D1 MAX BUF1E,/PRESET/BUF2
- IBUF EQU D1 INPUT FILE BUFFER
- D1 MAX IBUF+FBUFL,*
- RFL= EQU D1 REQUIRED FIELD LENGTH
- SPACE 4
- END
cdc/nos2.source/opl871/tfsp.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator