User Tools

Site Tools


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
  1. IDENT TFSP,ORIG
  2. ABS
  3. SST
  4. SYSCOM B1
  5. ENTRY TFSP
  6. ENTRY TFSPE
  7. ENTRY TFSPR
  8. ENTRY RFL=
  9. ENTRY SSJ=
  10. TITLE TFSP - TAPE FILE SUPERVISOR PROCESSOR.
  11. *COMMENT TAPE FILE SUPERVISOR PROCESSOR.
  12. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  13. TFSP SPACE 4,10
  14. *** TFSP - TAPE FILE SUPERVISOR PROCESSOR.
  15. *
  16. * J. D. HOLMBECK. 82/10/01.
  17. TFSP SPACE 4,10
  18. *** TFSP COMMAND.
  19. *
  20. * THE TAPE FILE SUPERVISOR, TFSP, CREATES AND MANAGES THE TAPE
  21. * CATALOG FILE.
  22. *
  23. * TFSP CAN MANIPULATE EITHER THE FAMILY TAPE CATALOG FILE (A
  24. * FAST-ATTACHED FILE NAMED *ZZZZZFC* ON USER INDEX 377777) OR
  25. * LOCAL FILE IMAGES OF THE TAPE CATALOG FILE.
  26. *
  27. * TFSP CAN ONLY ACCESS THE FAMILY TAPE CATALOG FILE IF IT IS
  28. * CALLED FROM A SYSTEM ORIGIN JOB OR IT IS CALLED FROM A JOB
  29. * THAT HAS A USER NAME THAT HAS BEEN VALIDATED TO ACCESS THE
  30. * FILE.
  31. *
  32. * ONLY ONE TFSP JOB CAN ACCESS A TAPE CATALOG FILE OF A FAMILY
  33. * AT ONE TIME. HOWEVER, SEVERAL TFSP JOBS CAN BE ACCESSING
  34. * TAPE CATALOG FILES OF DIFFERENT FAMILIES AT THE SAME TIME.
  35. TFSPE SPACE 4,10
  36. *** TFSPE COMMAND.
  37. *
  38. * TFSPE IS CALLED BY THE SYSTEM WHEN AN ERROR IS DISCOVERED IN
  39. * A VSN OR TAPE FILE ENTRY.
  40. *
  41. * TFSPE CAN BE USED BY SITE PERSONNEL TO CLEAR INTERLOCKS IN
  42. * THE TAPE CATALOG FILE THAT PREVENT NORMAL TFSP JOBS FROM
  43. * ACCESSING THE TAPE CATALOG FILE.
  44. *
  45. * WHEN TFSPE IS EXECUTED, ANY OTHER TFSP JOB THAT IS ACCESSING
  46. * THE TAPE CATALOG FILE OF THE SAME FAMILY WILL BE ABORTED.
  47. *
  48. * TFSPE CAN ONLY BE USED FROM A SYSTEM ORIGIN JOB.
  49. *
  50. * TFSPE IS EQUIVALENT TO THE TFSP(OP=K) COMMAND WITH
  51. * THE FOLLOWING THREE EXCEPTIONS -
  52. *
  53. * 1. THE INITIAL LEFT SCREEN K-DISPLAY INCLUDES THE FOLLOWING
  54. * INFORMATION -
  55. *
  56. * TAPE CATALOG ERROR DISCOVERED AT - YY/MM/DD, HH.MM.SS.
  57. *
  58. * THE ERROR IS EXPLAINED IN THE MESSAGE BUFFER.
  59. *
  60. * 2. THE INTERLOCK THAT PREVENTS MULTIPLE TFSP JOBS FROM
  61. * ACCESSING A TAPE CATALOG FILE IS CLEARED AND THEN RESET SO
  62. * THAT ONLY THE TFSPE JOB CAN ACCESS THE FILE. ANY OTHER
  63. * TFSP JOB ATTEMPTING TO ACCESS THE TAPE CATALOG FILE WILL
  64. * BE ABORTED.
  65. *
  66. * 3. IF THE RF PARAMETER IS SPECIFIED, TFSPE WILL REMOVE THE
  67. * FAST-ATTACHED STATUS OF THE TAPE CATALOG FILE. THIS CAN
  68. * BE USED TO PREVENT ACCESS TO THE TAPE CATALOG FILE AFTER
  69. * TFSPE HAS COMPLETED. WHEN THE FILE IS MADE FAST-ATTACHED
  70. * AGAIN VIA THE *TMSON* COMMAND, ALL BUSY INTERLOCKS
  71. * IN THE TAPE CATALOG FILE WILL BE CLEARED.
  72. SPACE 4,10
  73. *** TFSP AND TFSPE COMMAND FORMATS.
  74. *
  75. * TFSP( P1 , P2 , ... PN ) Z OPTION DIRECTIVES
  76. * TFSPE( P1 , P2 , ... PN )
  77. *
  78. * WHERE P1 , ... , PN CAN BE THE FOLLOWING -
  79. *
  80. * I = FILENAM
  81. * INPUT FILE WITH TFSP DIRECTIVES. IGNORED BY OP=K AND
  82. * OP=Z OPTIONS. IF I=0, NO INPUT FILE IS USED. DEFAULT
  83. * IS INPUT. VALID FOR TFSP ONLY.
  84. *
  85. * L = FILENAM
  86. * OUTPUT FILE. TFSP LISTS INPUT DIRECTIVES, ERRORS
  87. * ENCOUNTERED, AND INFORMATION AS SPECIFIED BY THE AUDIT
  88. * DIRECTIVES (AUDITUN, AUDITVS, AUDITCN, AUDITFI,
  89. * AUDITFV, AUDITCH, AND AUDITAU). IF L=0, NO OUTPUT
  90. * FILE IS GENERATED. DEFAULT IS OUTPUT.
  91. *
  92. * P = FILENAM
  93. * OLD TAPE CATALOG FILE. IGNORED EXCEPT FOR LOCAL FILE
  94. * (LF) MODE. IF P=0, A NEW TAPE CATALOG FILE WILL BE
  95. * CREATED. DEFAULT IS OLD. VALID FOR TFSP ONLY.
  96. *
  97. * N = FILENAM
  98. * NEW OR UPDATED TAPE CATALOG FILE. IGNORED EXCEPT FOR
  99. * LOCAL FILE (LF) MODE. DEFAULT IS NEW IF P=0. DEFAULT
  100. * IS *FILENAM* IF P=*FILENAM*. VALID FOR TFSP ONLY.
  101. *
  102. * S = FILENAM
  103. * SOURCE FILE TO RECEIVE TFSP INPUT DIRECTIVES GENERATED
  104. * FROM INFORMATION ON THE TAPE CATALOG FILE. THE SOURCE
  105. * FILE IS GENERATED BY THE SOURCE DIRECTIVES (SOURCE,
  106. * SOURCUN, SOURCVS, SOURCCH, SOURCCN, SOURCFI, AND
  107. * SOURCFV). IF S=0, NO SOURCE FILE IS GENERATED.
  108. * DEFAULT IS SOURCE.
  109. *
  110. * SS = FILENAM
  111. * MACHINE READABLE FILE. TFSP LISTS INFORMATION TO
  112. * *FILENAM* IN MACHINE READABLE FORMAT AS SPECIFIED BY
  113. * THE MACHINE READABLE AUDIT DIRECTIVES (MREADUN,
  114. * MREADVS, MREADCH, MREADCN, MREADFI, AND MREADFV). IF
  115. * SS=0, NO MACHINE READABLE FILE IS GENERATED. DEFAULT
  116. * IS NO MACHINE READABLE FILE.
  117. *
  118. * OP = OPTION
  119. * TFSP OPTION. VALID VALUES ARE -
  120. *
  121. * I - READ TFSP DIRECTIVES FROM THE FILE SPECIFIED BY
  122. * THE I PARAMETER.
  123. *
  124. * K - READ TFSP DIRECTIVES FROM K-DISPLAY INPUT.
  125. * DISPLAY TAPE CATALOG FILE INFORMATION AT THE
  126. * K-DISPLAY. VALID ONLY FOR SYSTEM ORIGIN JOBS.
  127. *
  128. * Z - READ TFSP DIRECTIVES FROM THE DELIMITED STRING
  129. * FOLLOWING THE COMMAND TERMINATOR. THE
  130. * FIRST CHARACTER FOLLOWING THE TERMINATOR IS
  131. * ASSUMED TO BE THE DELIMITER.
  132. *
  133. * DEFAULT IS OP=I. VALID FOR TFSP ONLY.
  134. *
  135. * LF
  136. * LOCAL FILE MODE. IF SPECIFIED, TFSP WILL ACCESS AND
  137. * UPDATE THE LOCAL FILES SPECIFIED BY THE P AND N
  138. * PARAMETERS. IF NOT SPECIFIED, TFSP WILL ACCESS AND
  139. * POSSIBLY UPDATE THE FAST-ATTACHED FILE *ZZZZZFC* ON
  140. * USER INDEX 377777. FOR NON-SYSTEM ORIGIN JOBS, IF THE
  141. * LF PARAMETER IS NOT SPECIFIED, TFSP WILL ABORT IF THE
  142. * USER HAS NOT BEEN VALIDATED TO ACCESS THE FAMILY TAPE
  143. * CATALOG FILE VIA THE VALIDAT DIRECTIVE.
  144. * VALID FOR TFSP ONLY.
  145. *
  146. * A
  147. * ABORT MODE. IF SPECIFIED, TFSP WILL ABORT WHEN THE
  148. * FIRST ERROR IS ENCOUNTERED WHILE PROCESSING THE
  149. * DIRECTIVES. IF NOT SPECIFIED, TFSP WILL ISSUE AN
  150. * ERROR MESSAGE TO THE OUTPUT FILE AND DAYFILE, BUT WILL
  151. * CONTINUE PROCESSING WITH THE DIRECTIVES ON THE NEXT
  152. * LINE OF INPUT. ABORT MODE IS USUALLY SELECTED WHEN
  153. * TFSP IS RUN WITH NON-INTERACTIVE INPUT SUCH AS RUNNING
  154. * TFSP IN A BATCH ORIGIN JOB. ABORT MODE IS USUALLY NOT
  155. * SELECTED WHEN TFSP IS RUN WITH INTERACTIVE INPUT SUCH
  156. * AS RUNNING TFSP WITH THE K-DISPLAY OR FROM A
  157. * TIME-SHARING TERMINAL. VALID FOR TFSP ONLY.
  158. *
  159. * NV
  160. * NO VERIFY MODE. IGNORED IF NOT LOCAL FILE (LF) MODE.
  161. * IGNORED IF NOT CREATING NEW TAPE CATALOG FILE (P=0).
  162. * IF SPECIFIED, TFSP WILL NOT CHECK THE STATUS OF VSNS
  163. * SPECIFIED BY THE VSN DIRECTIVE, TAPE FILES SPECIFIED
  164. * BY THE FILE OR FILEV DIRECTIVE, OR ALTERNATE USERS
  165. * SPECIFIED BY THE AUSER DIRECTIVE. THIS CAN SPEED
  166. * PROCESSING OF LARGE TFSP INPUT FILES. HOWEVER, THIS
  167. * CAN ALSO CREATE ERRORS IN THE TAPE CATALOG FILE IF THE
  168. * INPUT FILE IS SET UP INCORRECTLY. VALID FOR TFSP
  169. * ONLY.
  170. *
  171. * RT
  172. * RETRY ON CATALOG INTERLOCK OPTION. IGNORED FOR LOCAL
  173. * FILE (LF) MODE. IF SPECIFIED, TFSP WILL NOT ABORT IF
  174. * THE FAST-ATTACHED TAPE CATALOG FILE IS INTERLOCKED BY
  175. * ANOTHER TFSP JOB. TFSP WILL WAIT UNTIL THE OTHER JOB
  176. * IS COMPLETE SO IT CAN ACCESS THE TAPE CATALOG FILE.
  177. * GENERALLY, THE RETRY OPTION IS SELECTED WHEN TFSP IS
  178. * RUN IN A PROCEDURE FILE OR IN A BATCH ORIGIN JOB.
  179. * VALID FOR TFSP ONLY.
  180. *
  181. * FM = FAMILY
  182. * FAMILY THAT THE TAPE CATALOG FILE RESIDES ON.
  183. * INCORRECT ENTRY IF NOT A SYSTEM ORIGIN JOB. INCORRECT
  184. * ENTRY IF IN LOCAL FILE (LF) MODE. DEFAULT IS THE
  185. * FAMILY OF THE CALLING JOB. A NON-SYSTEM ORIGIN JOB IS
  186. * FORCED TO ACCESS THE TAPE CATALOG FILE FOR ITS FAMILY.
  187. *
  188. * CF = FILENAM
  189. * COPY FILE FOR TFSPE. IF THIS PARAMETER IS SPECIFIED
  190. * ON THE TFSPE COMMAND, TFSPE WILL ATTEMPT TO DEFINE A
  191. * DIRECT-ACCESS FILE ON USER NAME *SYSTEMX* WITH THE
  192. * PERMANENT FILE NAME *FILENAM*. TFSPE WILL THEN COPY
  193. * THE CURRENT TAPE CATALOG FILE TO *FILENAM*. IF THIS
  194. * PARAMETER IS NOT SPECIFIED, NO COPY WILL TAKE PLACE.
  195. * IF *CF* IS SPECIFIED WITHOUT A FILE NAME, *ZFCCOPY* IS
  196. * ASSUMED.
  197. *
  198. * CLEAR
  199. * CLEAR INFORMATION FROM TAPE CATALOG FILE FOR TFSPE.
  200. * IF THIS PARAMETER IS SPECIFIED ON THE TFSPE COMMAND,
  201. * TFSPE WILL OVERWRITE THE TAPE CATALOG FILE AS AN EMPTY
  202. * TAPE CATALOG FILE. THE FOREIGN CATALOG AND CATALOG
  203. * ERROR STATUSES ARE SET. THE *CLEAR* PARAMETER CAN
  204. * ONLY BE SPECIFIED IF THERE IS A CATALOG ERROR ON THE
  205. * CURRENT TAPE CATALOG FILE AND THE *CF* PARAMETER IS
  206. * ALSO SPECIFIED ON THE TFSPE COMMAND.
  207. TFSPR SPACE 4,15
  208. *** TFSPR COMMAND.
  209. *
  210. * TFSPR(FM=FAMILY)
  211. *
  212. * FAMILY = NAME OF FAMILY TO PROCESS.
  213. *
  214. * THE TFSPR COMMAND WILL CLEAR ALL TAPE CATALOG INTERLOCKS
  215. * HELD BY OTHER MACHINES SHARING THE CATALOG AT THE TIME OF A
  216. * SYSTEM FAILURE. TFSPR NEED ONLY BE RUN IF THE FAILED
  217. * MACHINE(S) WILL NOT REDEADSTARTED. THE MREC UTILITY MUST BE
  218. * RUN ON THE CATALOG DEVICE FOR EACH MACHINE TO BE RECOVERED
  219. * PRIOR TO RUNNING TFSPR. FAILURE TO DO SO WILL PREVENT THE
  220. * CATALOG INTERLOCKS FOR THAT MACHINE FROM BEING RELEASED.
  221. SPACE 4,10
  222. *** DAYFILE MESSAGES.
  223. *
  224. * FOLLOWING ARE THE DAYFILE MESSAGES ISSUED BY TFSP.
  225. * ADDITIONAL MESSAGES MAY BE ISSUED BY THE SYSTEM OR BY THE PP
  226. * ROUTINES CALLED BY TFSP. CONSULT THE DOCUMENTATION FOR THE
  227. * PP *TFM* FOR A LISTING OF ITS DAYFILE MESSAGES.
  228. *
  229. * TFSP COMPLETE.
  230. * TFSP NORMAL COMPLETION.
  231. *
  232. * TFSP ABORTED.
  233. * CONTROL POINT ERROR FLAG IS SET. CONSULT DAYFILE
  234. * LISTING FOR REASON.
  235. *
  236. * TFSP ABORTED BY USER.
  237. * TFSP RUNNING IN AN INTERACTIVE JOB WAS ABORTED VIA
  238. * USER BREAK PROCESSING.
  239. *
  240. * PARAMETER ERROR - PARAM.
  241. * THE SPECIFIED PARAMETER IS NOT A TFSP PARAMETER.
  242. *
  243. * INCORRECT OPTION - OP.
  244. * THE SPECIFIED OPTION IS NOT ALLOWED WITH THE OP
  245. * PARAMETER.
  246. *
  247. * DIRECTIVE ERRORS.
  248. * ERRORS WERE ENCOUNTERED WHILE PROCESSING THE
  249. * DIRECTIVES. CONSULT THE OUTPUT LISTING FOR REASON.
  250. *
  251. * INCORRECT ACCESS.
  252. * USER WHO WAS NOT VALIDATED ATTEMPTED TO ACCESS THE
  253. * FAMILY TAPE CATALOG FILE.
  254. *
  255. * FAMILY NOT ACTIVE.
  256. * A FAST-ATTACHED FILE NAMED *ZZZZZFC* WAS NOT FOUND ON
  257. * THE FAMILY.
  258. *
  259. * FILE NAME CONFLICT - LFN.
  260. * SPECIFIED FILE USED FOR MORE THAN ONE PURPOSE. ONLY
  261. * THE P AND N PARAMETERS CAN SPECIFY THE SAME FILE NAME.
  262. *
  263. * TAPE CATALOG FILE INTERLOCKED.
  264. * ANOTHER TFSP JOB IS ACCESSING THE TAPE CATALOG FILE OF
  265. * THE FAMILY.
  266. *
  267. * EMPTY TAPE CATALOG FILE.
  268. * THE FILE SPECIFIED BY THE P PARAMETER IS A ZERO-LENGTH
  269. * FILE.
  270. *
  271. * UNEXPECTED TAPE CATALOG ERROR.
  272. * THE PP PROGRAM *TFM* RETURNED AN ERROR CODE THAT TFSP
  273. * WAS NOT EXPECTING. IF THIS MESSAGE IS ISSUED WHILE
  274. * WORKING ON A FAST-ATTACHED TAPE CATALOG FILE, CONTACT
  275. * SITE ANALYST.
  276. *
  277. * ABNORMAL TERMINATION, ERROR CODE = NN.
  278. * THE SYSTEM RETURNED AN ERROR THAT TFSP COULD NOT
  279. * RECOGNIZE. IF THIS MESSAGE IS ISSUED, CONTACT SITE
  280. * ANALYST.
  281. *
  282. * *CF* PARAMETER REQUIRED WITH *CLEAR*.
  283. * THE TFSPE COMMAND WAS ISSUED WITH THE *CLEAR*
  284. * PARAMETER BUT WITHOUT THE *CF* PARAMETER.
  285. *
  286. * CATALOG ERROR REQUIRED WITH *CLEAR*.
  287. * THE TFSPE COMMAND WAS ISSUED WITH THE *CLEAR*
  288. * PARAMETER FOR A TAPE CATALOG FILE THAT DID NOT HAVE A
  289. * TAPE CATALOG ERROR.
  290. SPACE 4,10
  291. *** ACCOUNT FILE MESSAGES.
  292. *
  293. * THE FOLLOWING ARE THE ACCOUNT FILE MESSAGES ISSUED BY TFSP.
  294. * THESE MESSAGES ARE ONLY ISSUED WHEN TFSP IS ACCESSING THE
  295. * FAST-ATTACHED TAPE CATALOG FILE.
  296. *
  297. * SDAU, FAMNAME/USERNAM/QNZZZ/VSNFFF, VSNCCC.
  298. * ISSUED FOR EACH VSN ASSIGNED TO A TAPE FILE.
  299. *
  300. * SDCR, FAMNAME/USERNAM/QNZZZ/VSNFFF, YY/MM/DD.
  301. * ISSUED WHEN CONDITIONAL RELEASE IS SET.
  302. *
  303. * SDCR, FAMNAME/USERNAM/QNZZZ/VSNFFF, .
  304. * ISSUED WHEN CONDITIONAL RELEASE IS CLEARED.
  305. *
  306. * SDAD, FAMILY , VSN , PRN , SSSSSS.
  307. * ISSUED FOR EACH VSN ADDED TO CATALOG.
  308. *
  309. * SDRM, FAMILY , VSN .
  310. * ISSUED FOR EACH VSN REMOVED FROM CATALOG.
  311. *
  312. * SDRV, FAMILY , VSN , PRN , SSSSSS.
  313. * ISSUED FOR EACH VSN REVISED IN CATALOG.
  314. *
  315. * SDAM, FAMILY , USERNAM, FVSN , SSSSSS.
  316. * ISSUED FOR EACH TAPE FILE AMENDED IN CATALOG.
  317. *
  318. * SDRA, FAMNAME/USERNAM/QNZZZ/VSNFFF, TFD.
  319. * ISSUED BY *TFM* TO PROVIDE MORE INFORMATION ABOUT
  320. * A TAPE FILE FOR DATABASE RECOVERY PURPOSES.
  321. *
  322. * SDRB, FAMNAMEXLOGICAL*FILE*IDNTYPHYSICAL*FILE*IDT.
  323. * ISSUED BY *TFM* TO PROVIDE MORE INFORMATION ABOUT
  324. * A TAPE FILE FOR DATABASE RECOVERY PURPOSES.
  325. * THIS MESSAGE ONLY APPEARS FOR A SYMBOLIC ACCESS TAPE.
  326. *
  327. * SDRC, FAMNAME/CONTROLWRDX/CHRGNUMBER, MULSIDY.
  328. * ISSUED BY *TFM* TO PROVIDE MORE INFORMATION ABOUT
  329. * A TAPE FILE FOR DATABASE RECOVERY PURPOSES.
  330. SPACE 4,10
  331. *** GENERAL RULES FOR INPUT DIRECTIVES.
  332. *
  333. * SOME TFSP DIRECTIVES CAN CONSIST OF AN IDENTIFIER AND A DATA
  334. * FIELD SEPARATED BY AN EQUAL SIGN. FOR EXAMPLE -
  335. *
  336. * VSN=V1
  337. *
  338. * OTHER TFSP DIRECTIVES CONSIST ONLY OF AN IDENTIFIER AND ARE
  339. * NOT EQUIVALENCED. FOR EXAMPLE -
  340. *
  341. * HELP
  342. *
  343. * IN GENERAL, TFSP DIRECTIVES CAN BE SEPARATED BY A
  344. * NON-ALPHA-NUMERIC CHARACTER, AN END-OF-LINE OR AN
  345. * END-OF-CARD. FOR EXAMPLE -
  346. *
  347. * VSN=V1
  348. * ERRFLAG=SET+OWNER=USER;ADD
  349. *
  350. * IN GENERAL, BLANKS ON A TFSP DIRECTIVE INPUT LINE ARE
  351. * IGNORED. FOR EXAMPLE -
  352. *
  353. * VS N = V 1
  354. *
  355. * IS THE SAME AS -
  356. *
  357. * VSN=V1
  358. *
  359. * HOWEVER, THE PRN, SI, AND UC DIRECTIVES ACCEPT BLANKS AND ALL
  360. * OTHER NON-ALPHA-NUMERIC CHARACTERS IN THEIR DATA FIELDS. THE
  361. * SEPARAT DIRECTIVE IS AVAILABLE TO FORCE ONE NON-BLANK,
  362. * NON-ALPHA-NUMERIC CHARACTER TO ALWAYS BE INTERPRETED AS A
  363. * SEPARATOR. FOR EXAMPLE -
  364. *
  365. * SEPARAT=*
  366. * UC=A B,SI=*FA=A
  367. * SEPARAT=,
  368. * UC=A B,SI=*FA=A
  369. *
  370. * IS THE SAME AS -
  371. *
  372. * UC=A B,SI=
  373. * FA=A
  374. * UC=A B
  375. * SI=*FA=A
  376. *
  377. * ENTRY OF A COLON CHARACTER IN THE INPUT FILE CAN CAUSE
  378. * UNPREDICTABLE RESULTS. THE COLON DIRECTIVE IS AVAILABLE TO
  379. * FORCE A NON-ALPHA-NUMERIC CHARACTER TO BE INTERPRETED AS A
  380. * COLON. FOR EXAMPLE -
  381. *
  382. * COLON=)
  383. * UC=AB)XX
  384. *
  385. * IS THE SAME AS -
  386. *
  387. * UC=AB:XX
  388. *
  389. * IF A DIRECTIVE IDENTIFIER IS ONE, TWO, OR THREE CHARACTERS
  390. * LONG, THE ENTIRE IDENTIFIER MUST BE SPELLED OUT. IF AN
  391. * IDENTIFIER IS MORE THAN THREE CHARACTERS LONG, AT LEAST THE
  392. * FIRST THREE CHARACTERS MUST BE SPECIFIED PLUS ANY ADDITIONAL
  393. * CHARACTERS NEEDED TO MAKE THE DIRECTIVE UNIQUE. FOR
  394. * EXAMPLE -
  395. *
  396. * AUDITV=V1
  397. * AUDITU=USER1
  398. * VAL=USER2
  399. *
  400. * IS THE SAME AS -
  401. *
  402. * AUDITVS=V1
  403. * AUDITUN=USER1
  404. * VALIDAT=USER2
  405. *
  406. * HOWEVER, ENTRY OF VA=USER2 WOULD BE INCORRECT BECAUSE THE
  407. * IDENTIFIER IS LESS THAN THREE CHARACTERS. ENTRY OF AUDIT=V1
  408. * WOULD BE INCORRECT BECAUSE THE IDENTIFIER WOULD NOT BE
  409. * UNIQUE.
  410. *
  411. * SOME DIRECTIVES HAVE A SPECIFIC SET OF OPTIONS THAT CAN BE
  412. * ENTERED IN THE DATA FIELD. ONLY ENOUGH CHARACTERS TO
  413. * UNIQUELY IDENTIFY THE OPTION MUST BE SPECIFIED IN THE DATA
  414. * FIELD. FOR EXAMPLE -
  415. *
  416. * CT=PR
  417. * CT=S
  418. * CT=PU
  419. *
  420. * IS THE SAME AS -
  421. *
  422. * CT=PRIVATE
  423. * CT=SPRIV
  424. * CT=PUBLIC
  425. *
  426. * HOWEVER, CT=P WOULD BE INCORRECT BECAUSE THE DATA FIELD WOULD
  427. * NOT BE UNIQUE.
  428. *
  429. * EACH DIRECTIVE LINE OF INPUT IS FREE FORMAT THROUGH COLUMN
  430. * 72. ANY DATA AFTER COLUMN 72 IS IGNORED.
  431. *
  432. * ALL NUMERIC DATA IS ASSUMED TO BE DECIMAL UNLESS A B
  433. * POST-RADIX IS USED TO FORCE OCTAL.
  434. *
  435. * FOR EQUIVALENCED DIRECTIVES, IF THE DATA FIELD IS NOT
  436. * SPECIFIED, THE DEFAULT VALUE WILL BE SET IF THE DIRECTIVE HAS
  437. * A DEFAULT. FOR EXAMPLE -
  438. *
  439. * NS=
  440. *
  441. * IS THE SAME AS -
  442. *
  443. * NS=18
  444. *
  445. * TFSP DIRECTIVES ARE DIVIDED INTO SIX CATEGORIES - UNIVERSAL,
  446. * FAMILY LEVEL, VSN LEVEL, USER LEVEL, FILE LEVEL, AND
  447. * ALTERNATE USER LEVEL. FAMILY LEVEL IS CONSIDERED THE HIGHEST
  448. * LEVEL AND ALTERNATE USER THE LOWEST LEVEL.
  449. *
  450. * EACH LEVEL HAS ITS OWN SET OF VALID DIRECTIVES. CERTAIN
  451. * DIRECTIVES IN A HIGHER LEVEL MAY BE ENTERED FROM ANY LOWER
  452. * LEVEL. IF TFSP IS AT A LOWER LEVEL AND A HIGHER LEVEL
  453. * DIRECTIVE IS ISSUED, TFSP WILL EITHER EXECUTE THE DIRECTIVE
  454. * AND REMAIN AT THE CURRENT LEVEL OR PERFORM AN *IMPLIED DROP*
  455. * TO THE HIGHER LEVEL. AN *IMPLIED* DROP SIMPLY MEANS
  456. * THAT TFSP TERMINATES THE CURRENT LEVEL WITHOUT AN UPDATE
  457. * AND GOES TO THE LEVEL FOR THE DIRECTIVE THAT WAS ENTERED.
  458. * MOST DIRECTIVES MAY BE ISSUED FOR A *HIGHER* LEVEL FROM A
  459. * LOWER TFSP LEVEL. *IMPLIED DROPS* OCCUR IF THE DIRECTIVE
  460. * REQUIRES A CHANGE IN A TFSP LEVEL.
  461. *
  462. * AN EXAMPLE FOLLOWS.
  463. *
  464. * USER=USERNAM
  465. * FILEVS=VSN1
  466. * VSN=VSN2
  467. *
  468. * IN THE EXAMPLE, WHEN THE VSN=VSN2 DIRECTIVE WAS ISSUED, TFSP
  469. * PERFORMED AN *IMPLIED DROP* OUT OF THE FILE LEVEL FOR *VSN1*,
  470. * AND AN *IMPLIED DROP* OUT OF THE USER LEVEL FOR *USERNAM*.
  471. * NO UPDATE WAS PERFORMED FOR THE FILE LEVEL AND TFSP WILL BE
  472. * AT THE VSN LEVEL FOR VOLUME SERIAL NUMBER *VSN2*.
  473. *
  474. * ANOTHER EXAMPLE OF A *IMPLIED DROP* FOLLOWS.
  475. *
  476. * USER=USERNAM
  477. * FILEV=VSN1
  478. * FILEV=VSN2
  479. *
  480. * IN THIS EXAMPLE, WHEN THE *FILEV=VSN2* DIRECTIVE WAS ISSUED,
  481. * TFSP TERMINATES THE FILE LEVEL FOR *VSN1* WITHOUT UPDATING
  482. * *VSN1*. THE FILE LEVEL FOR *VSN2* IS THEN DISPLAYED AND ANY
  483. * INQUIRIES OR UPDATES WILL NOW BE FOR VSN2.
  484. *
  485. * AN EXAMPLE OF DIRECTIVES THAT MAY BE ENTERED THAT WILL NOT
  486. * REQUIRE A *IMPLIED DROP* FOLLOW.
  487. *
  488. * USER=USERNAM
  489. * FILEV=VSN1
  490. * AUDITVS=VSN2
  491. * AVSN=VSN2
  492. * AMEND
  493. *
  494. * IN THIS EXAMPLE, THE *AUDITVS=VSN2* DIRECTIVE WAS ISSUED
  495. * AND TFSP PERFORMED THE AUDIT WITHOUT HAVING TO SWITCH FROM
  496. * THE FILE LEVEL. THE *AUDITVS* WAS PERFORMED AND TFSP STAYS
  497. * AT THE FILE LEVEL.
  498. *
  499. * EXAMPLES OF DIRECTIVES FOR DIFFERENT LEVELS THAT ARE NOT
  500. * VALID FROM ANOTHER LEVEL.
  501. *
  502. * USER=USERNAM
  503. * FILEV=VSN1
  504. * PRN=IVSN1
  505. *
  506. * THE *PRN=IVSN1* IS INCORRECT BECAUSE IT IS A VSN LEVEL
  507. * DIRECTIVE. SINCE THERE IS NO VSN LEVEL SPECIFIED, THERE
  508. * WOULD BE NO WAY OF KNOWING WHICH TAPE FILE THE *PRN=IVSN1*
  509. * DIRECTIVE WAS REALLY INTENDED TO BE FOR.
  510. *
  511. * ANOTHER EXAMPLE OF INCORRECT DIRECTIVE ENTRY FOLLOWS.
  512. *
  513. * USER=USERNAM
  514. * AUSER=USERNO
  515. *
  516. * THE *AUSER* DIRECTIVE WOULD BE INCORRECT AT THIS POINT
  517. * BECAUSE THERE HAS BEEN NO FILE LEVEL SPECIFIED. THE AUSER
  518. * ENTRY DEALS SPECIFICALLY WITH A TAPE FILE ENTRY.
  519. *
  520. * SOME DIRECTIVES MAY NOT BE ENTERED FROM OTHER LEVELS.
  521. * THESE DIRECTIVES CONSIST OF DIRECTIVES THAT WOULD
  522. * REQUIRE THE TAPE CATALOG TO BE UPDATED IF THE DIRECTIVE
  523. * WAS TO BE PROCESSED.
  524. *
  525. * AN EXAMPLE FOLLOWS.
  526. *
  527. * USER=USERNUM
  528. * PURGE=VSN1
  529. *
  530. * IN THIS EXAMPLE, THE *PURGE* DIRECTIVE WOULD BE
  531. * INCORRECT BECAUSE IT REQUIRES THE TAPE CATALOG
  532. * TO BE UPDATED. SINCE THE *PURGE* DIRECTIVE IS
  533. * A FAMILY LEVEL DIRECTIVE IT WILL ONLY BE VALID
  534. * FROM THE FAMILY LEVEL.
  535. *
  536. * THE DIRECTIVES THAT MAY NOT BE ENTERED FROM ANOTHER
  537. * LEVEL ARE LISTED BELOW.
  538. *
  539. * ISV, PURGALL, PURGE, RELEASE, REMOVE,
  540. * RELEASF, AND RELEASV.
  541. SPACE 4,10
  542. *** UNIVERSAL DIRECTIVES.
  543. *
  544. * UNIVERSAL DIRECTIVES DO NOT REFERENCE SPECIFIC TAPE FILE
  545. * ENTRIES OR VSNS IN THE TAPE CATALOG FILE. UNIVERSAL
  546. * DIRECTIVES MAY OCCUR ANYWHERE IN THE DIRECTIVE STREAM.
  547. *
  548. * SEPARAT = CHAR
  549. * THE NON-BLANK, NON-ALPHA-NUMERIC CHARACTER *CHAR* WILL
  550. * BE INTERPRETED AS A SEPARATOR, EVEN BY THE PRN, UC,
  551. * AND SI DIRECTIVES. DEFAULT IS COMMA.
  552. *
  553. * COLON = CHAR
  554. * THE NON-BLANK, NON-ALPHA-NUMERIC CHARACTER *CHAR* WILL
  555. * BE INTERPRETED AS A COLON IN THE DIRECTIVE STREAM.
  556. * DEFAULT IS NO CHARACTER.
  557. *
  558. * HELP
  559. * DISPLAY A LIST OF VALID DIRECTIVES. HELP IS ALSO
  560. * AVAILABLE ON THE RIGHT SCREEN OF THE K-DISPLAY FOR THE
  561. * OP=K OPTION. THE DISPLAY IS COPIED TO THE OUTPUT FILE
  562. * IF NOT THE OP=K OPTION.
  563. *
  564. * DISPLAY
  565. * TOGGLES OUT OF THE HELP DISPLAY TO THE NORMAL LEFT
  566. * SCREEN DISPLAY FOR THE OP=K OPTION. THE DISPLAY IS
  567. * COPIED TO THE OUTPUT FILE IF NOT THE OP=K OPTION.
  568. *
  569. * REWIND = FILENAM
  570. * REWINDS THE LOCAL FILE *FILENAM*. THIS DIRECTIVE IS
  571. * USUALLY USED WITH THE SOURCE, AUDIT, AND READ
  572. * DIRECTIVES. A NULL *FILENAM* IS INCORRECT.
  573. *
  574. * READ = FILENAM
  575. * READS TFSP DIRECTIVES OFF OF LOCAL FILE *FILENAM*
  576. * UNTIL AN END-OF-RECORD, END-OF-FILE, OR
  577. * END-OF-INFORMATION IS REACHED. TFSP PROCESSES THE
  578. * DIRECTIVES UNTIL AN ERROR IS ENCOUNTERED OR THE END OF
  579. * THE DIRECTIVES IS REACHED. THE READ DIRECTIVE CANNOT
  580. * BE INCLUDED IN THE FILE THAT IS READ. THE FILE IS NOT
  581. * REWOUND BEFORE OR AFTER IT IS READ. A NULL *FILENAM*
  582. * IS INCORRECT.
  583. *
  584. * STOP
  585. * TERMINATE TFSP. CHANGES SPECIFIED AT THE CURRENT
  586. * LEVEL WILL BE IGNORED.
  587. *
  588. * BRIEF
  589. * CAUSES *DISPLAY* HEADERS AND INFORMATIVE OUTPUT TO
  590. * BE SUPPRESSED. ALL MESSAGES PREFIXED BY *INFORM*
  591. * WILL NOT BE COPIED TO THE OUTPUT FILE. THE FIRST
  592. * EIGHT LINES OF OUTPUT GENERATED BY THE *DISPLAY*
  593. * DIRECTIVE WILL NOT BE COPIED TO THE OUTPUT FILE.
  594. * VALID DIRECTIVE IMAGES WILL ALSO BE SUPPRESSED.
  595. *
  596. * NOBRIEF
  597. * REVERSES THE AFFECT OF A *BRIEF* COMMAND. ALL
  598. * INFORMATIVE AND *DISPLAY* HEADER INFORMATION IS
  599. * WRITTEN TO THE OUTPUT FILE. *NOBRIEF* IS THE DEFAULT.
  600. SPACE 4,10
  601. *** FAMILY LEVEL DIRECTIVES.
  602. *
  603. * FAMILY LEVEL DIRECTIVES REFERENCE ALL TAPE FILE ENTRIES AND
  604. * VSNS IN THE TAPE CATALOG FILE. FAMILY LEVEL DIRECTIVES MAY
  605. * OCCUR ANYWHERE IN THE DATA STREAM. ENTRY OF A FAMILY
  606. * LEVEL DIRECTIVE FROM A LOWER LEVEL MAY CAUSE TFSP TO
  607. * ISSUE A *DROP* FOR EACH LEVEL AND PROCESSING CONTINUES
  608. * AT THE FAMILY LEVEL. NO UPDATES WILL OCCUR. FAMILY LEVEL
  609. * DIRECTIVES NOT VALID WHILE PROCESSING AT ANOTHER LEVEL ARE
  610. * ISV, PURGALL, PURGE, RELEASE AND REMOVE.
  611. *
  612. * DROP
  613. * TERMINATE TFSP.
  614. *
  615. * GO
  616. * MAKES UPDATES ENTERED AT FAMILY LEVEL AND THEN
  617. * TERMINATES TFSP.
  618. *
  619. * ISV
  620. * INITIALIZES SCRATCH VSN POINTERS. THIS DIRECTIVE CAN
  621. * BE USED TO INSURE ALL UNASSIGNED VSNS ARE IN THE
  622. * SCRATCH POOL.
  623. *
  624. * FAMNAME = FAMILY
  625. * SETS *FAMILY* AS THE FAMILY NAME OF THE TAPE CATALOG
  626. * FILE. IF *FAMILY* IS NULL, THE FAMILY NAME OF THE JOB
  627. * IS USED.
  628. *
  629. * LINKFAM = FAMILY
  630. * SETS *FAMILY* AS THE FAMILY ON WHICH THE TAPE CATALOG
  631. * RESIDES FOR PROCESSING USER JOB REQUESTS FROM THE
  632. * CURRENT FAMILY. THIS DIRECTIVE CAN ONLY BE USED IN
  633. * LOCAL FILE MODE.
  634. *
  635. * ALTFAM = FAMILY
  636. * ALLOWS USER JOBS ON FAMILY *FAMILY* TO ACCESS THIS
  637. * TAPE CATALOG. THE *LINKFAM* DIRECTIVE MUST BE USED
  638. * ON THE *FAMILY* TAPE CATALOG TO DIRECT PROCESSING TO
  639. * THIS CATALOG. THIS DIRECTIVE CAN ONLY BE USED IN
  640. * LOCAL FILE MODE.
  641. *
  642. * CALTFAM = FAMILY
  643. * CLEARS THE EFFECT OF A PREVIOUS *ALTFAM* DIRECTIVE
  644. * ON THE SPECIFIED FAMILY. THIS DIRECTIVE CAN ONLY BE
  645. * USED IN LOCAL FILE MODE.
  646. *
  647. * MID = ID
  648. * SETS *ID* AS THE MACHINE ID OF THE TAPE CATALOG FILE.
  649. * IF *ID* IS NULL, THE MACHINE ID OF THE RUNNING SYSTEM
  650. * IS USED.
  651. *
  652. * CATERR = STATUS
  653. * SETS *STATUS* AS THE ERROR STATUS OF THE TAPE CATALOG
  654. * FILE. VALID VALUES FOR *STATUS* ARE -
  655. *
  656. * CLEAR - CLEAR ERROR STATUS AND MESSAGE BUFFER.
  657. *
  658. * SET - SET ERROR STATUS AND ISSUE MESSAGE TO MESSAGE
  659. * BUFFER.
  660. *
  661. * DEFAULT IS CLEAR.
  662. *
  663. * GLOBAL = STATUS
  664. * SETS *STATUS* TO DETERMINE IF THE SCRATCH TAPES OF
  665. * THIS FAMILY ARE AVAILABLE FOR OTHER FAMILIES. VALID
  666. * VALUES FOR *STATUS* ARE -
  667. *
  668. * NO - SCRATCH TAPES ARE UNAVAILABLE FOR OTHER FAMILIES.
  669. *
  670. * YES - SCRATCH TAPES ARE AVAILABLE FOR OTHER FAMILIES.
  671. *
  672. * DEFAULT IS NO.
  673. *
  674. * FOREIGN = STATUS
  675. * SETS *STATUS* TO DETERMINE IF THE SCRATCH TAPES OF
  676. * THIS FAMILY ARE FOREIGN TO THE RUNNING SYSTEM. VALID
  677. * VALUES FOR *STATUS* ARE -
  678. *
  679. * NO - FAMILY IS NOT FOREIGN TO SYSTEM.
  680. *
  681. * YES - FAMILY IS FOREIGN TO SYSTEM.
  682. *
  683. * DEFAULT IS NO.
  684. *
  685. * AUDITCH = CHARGNO
  686. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES FOR
  687. * CHARGE NUMBER *CHARGNO* TO THE OUTPUT FILE. A
  688. * NULL *CHARGNO* IS INCORRECT.
  689. *
  690. * AUDITUN = USERNAM
  691. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES FOR
  692. * USER NAME *USERNAM* TO THE OUTPUT FILE. IF *USERNAM*
  693. * IS NULL, ALL TAPE FILE ENTRIES IN THE TAPE CATALOG
  694. * FILE ARE PROCESSED.
  695. *
  696. * AUDITVS = VSN
  697. * COPIES INFORMATION ABOUT VOLUME SERIAL NUMBER *VSN* TO
  698. * THE OUTPUT FILE. THE INFORMATION INCLUDES WHETHER THE
  699. * VSN IS INCLUDED IN THE TAPE CATALOG FILE AND ITS
  700. * POSITION IN A MULTI-VOLUME TAPE FILE. IF *VSN* IS
  701. * NULL, EVERY VSN IN THE TAPE CATALOG FILE IS PROCESSED.
  702. *
  703. * MREADCH = CHARGNO
  704. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES FOR
  705. * CHARGE NUMBER *CHARGNO* TO THE MACHINE READABLE FILE.
  706. * A NULL *CHARGNO* IS INCORRECT.
  707. *
  708. * MREADUN = USERNAM
  709. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES FOR
  710. * USER NAME *USERNAM* TO THE MACHINE READABLE FILE. IF
  711. * *USERNAM* IS NULL, ALL TAPE FILE ENTRIES IN THE TAPE
  712. * CATALOG FILE ARE PROCESSED.
  713. *
  714. * MREADVS = VSN
  715. * COPIES INFORMATION ABOUT VOLUME SERIAL NUMBER *VSN* TO
  716. * THE MACHINE READABLE FILE. THE INFORMATION INCLUDES
  717. * WHETHER THE VSN IS INCLUDED IN THE TAPE CATALOG FILE
  718. * AND ITS POSITION IN A MULTI-VOLUME TAPE FILE. IF
  719. * *VSN* IS NULL, EVERY VSN IN THE TAPE CATALOG FILE IS
  720. * PROCESSED.
  721. *
  722. * SOURCE
  723. * COPIES THE DIRECTIVES REQUIRED TO RECREATE THE TAPE
  724. * CATALOG FILE TO THE SOURCE FILE.
  725. *
  726. * SOURCCH = CHARGNO
  727. * COPIES THE DIRECTIVES REQUIRED TO CREATE THE TAPE FILE
  728. * ENTRIES FOR CHARGE NUMBER *CHARGNO* TO THE SOURCE
  729. * FILE. A NULL *CHARGNO* IS INCORRECT.
  730. *
  731. * SOURCUN = USERNAM
  732. * COPIES THE DIRECTIVES REQUIRED TO CREATE THE TAPE FILE
  733. * ENTRIES FOR USER NAME *USERNAM* TO THE SOURCE FILE.
  734. * IF *USERNAM* IS NULL, ALL TAPE FILE ENTRIES IN THE
  735. * TAPE CATALOG FILE ARE PROCESSED.
  736. *
  737. * SOURCVS = VSN
  738. * COPIES THE DIRECTIVES REQUIRED TO ADD VOLUME SERIAL
  739. * NUMBER *VSN* AS A SCRATCH TAPE TO THE SOURCE FILE. IF
  740. * *VSN* IS NULL, EVERY VSN IN THE TAPE CATALOG FILE IS
  741. * PROCESSED.
  742. *
  743. * REMOVE = VSN
  744. * REMOVES VOLUME SERIAL NUMBER *VSN* FROM THE TAPE
  745. * CATALOG FILE. ONCE REMOVED, *VSN* CANNOT BE ASSIGNED
  746. * TO A TAPE FILE ENTRY UNTIL VSN DIRECTIVE HAS BEEN
  747. * ISSUED. THE *VSN* SPECIFIED BY THE REMOVE DIRECTIVE
  748. * CANNOT BE ASSIGNED TO A TAPE FILE ENTRY. THE *PURGE*
  749. * DIRECTIVE MAY BE USED TO REMOVE A RESERVED TAPE FROM
  750. * THE CATALOG. A NULL *VSN* IS INCORRECT.
  751. *
  752. * RELEASE = VSN
  753. * PURGES THE TAPE FILE ENTRIES THAT HAVE AN ASSIGNED VSN
  754. * OF *VSN* FROM THE TAPE CATALOG FILE. EVERY VSN
  755. * ASSOCIATED WITH THAT TAPE FILE IS RELEASED. A NULL
  756. * *VSN* IS INCORRECT.
  757. *
  758. * VSN = VSN
  759. * BEGINS VSN LEVEL DIRECTIVES. ALL DIRECTIVES FOLLOWING
  760. * THE VSN DIRECTIVE AND BEFORE THE NEXT ADD, REVISE,
  761. * GO, OR DROP DIRECTIVE ARE ASSOCIATED WITH VOLUME
  762. * SERIAL NUMBER *VSN*. IF THE *VSN* IS ASSIGNED, THE
  763. * MAINTENANCE AND PHYSICAL REEL NUMBER FOR THE *VSN*
  764. * MAY BE REVISED AT THIS LEVEL. VALID FROM ANY LEVEL.
  765. * IF THE VSN DIRECTIVE IS ISSUED FROM OTHER THAN
  766. * THE FAMILY LEVEL, AN *IMPLIED DROP* WILL FIRST BE
  767. * PERFORMED TO THE FAMILY LEVEL. A NULL *VSN* IS
  768. * INCORRECT.
  769. *
  770. * VALIDAT = USERNAM
  771. * ADDS *USERNAM* AS A USER THAT IS VALIDATED TO USE TFSP
  772. * TO ACCESS AND UPDATE THE FAMILY TAPE CATALOG FILE FROM
  773. * A NON-SYSTEM ORIGIN JOB. UP TO EIGHT USER NAMES CAN
  774. * BE ADDED. A NULL *USERNAM* IS INCORRECT.
  775. *
  776. * INVALID = USERNAM
  777. * REMOVES *USERNAM* AS A USER VALIDATED BY THE VALIDAT
  778. * DIRECTIVE. A NULL *USERNAM* IS INCORRECT.
  779. *
  780. * PURGALL = USERNAM
  781. * PURGES ALL TAPE FILE ENTRIES THAT BELONG TO *USERNAM*
  782. * FROM THE TAPE CATALOG FILE. RELEASES ALL VSNS THAT
  783. * WERE ASSIGNED TO THE TAPE FILE ENTRIES OF *USERNAM*.
  784. * THE RELEASED VSNS ARE REMOVED FROM THE TAPE CATALOG
  785. * FILE. A NULL *USERNAM* IS INCORRECT.
  786. *
  787. * PURGE = VSN
  788. * THIS DIRECTIVE IS USED TO DELETE TAPE FILE ENTRIES
  789. * CONTAINING *VSN* FROM THE TAPE CATALOG FILE. EVERY
  790. * VSN BELONGING TO ONE OF THE PURGED TAPE FILES IS
  791. * FIRST RELEASED FROM THE TAPE CATALOG AND THEN
  792. * REMOVED. IF THE VSN IS NOT ASSIGNED TO A TAPE FILE,
  793. * IT IS REMOVED FROM THE TAPE CATALOG FILE. A NULL
  794. * *VSN* IS INCORRECT.
  795. *
  796. * USER = USERNAM
  797. * BEGINS USER LEVEL DIRECTIVES. ALL DIRECTIVES
  798. * FOLLOWING THE USER DIRECTIVE AND BEFORE THE NEXT USER
  799. * LEVEL DROP OR GO DIRECTIVE ARE ASSOCIATED WITH TAPE
  800. * FILE ENTRIES BELONGING TO USER NAME *USERNAM*.
  801. * VALID FROM ANY LEVEL. IF THE USER DIRECTIVE IS ISSUED
  802. * FROM OTHER THAN THE FAMILY LEVEL, AN *IMPLIED DROP*
  803. * WILL FIRST BE PERFORMED TO THE FAMILY LEVEL. A NULL
  804. * *USERNAM* IS INCORRECT.
  805. SPACE 4,10
  806. *** VSN LEVEL DIRECTIVES.
  807. *
  808. * VSN LEVEL DIRECTIVES REFERENCE ONE VSN THAT IS NOT ASSIGNED
  809. * TO ANY TAPE FILE ENTRY ON THE TAPE CATALOG FILE. VSN LEVEL
  810. * DIRECTIVES MAY OCCUR ANYWHERE AFTER A VSN DIRECTIVE AND
  811. * BEFORE AN ADD, REVISE, GO, OR DROP DIRECTIVE.
  812. *
  813. * ADD
  814. * END PROCESSING OF VSN LEVEL DIRECTIVES. THE VSN WILL
  815. * BE ADDED TO THE TAPE CATALOG. INCORRECT IF THE VSN IS
  816. * ALREADY IN THE TAPE CATALOG.
  817. *
  818. * REVISE
  819. * END PROCESSING OF VSN LEVEL DIRECTIVES. THE CHANGES
  820. * SPECIFIED BY THE VSN LEVEL DIRECTIVES WILL BE MADE TO
  821. * THE VSN. INCORRECT IF THE VSN IS NOT IN THE TAPE
  822. * CATALOG.
  823. *
  824. * GO
  825. * SAME AS ADD FOR A NEW VSN. SAME AS REVISE FOR AN
  826. * EXISTING VSN.
  827. *
  828. * DROP
  829. * END PROCESSING OF VSN LEVEL DIRECTIVES. CHANGES
  830. * SPECIFIED BY THE VSN LEVEL DIRECTIVES WILL BE IGNORED.
  831. *
  832. * PRN= PVSN
  833. * SETS *PVSN* AS THE PHYSICAL (INTERNAL) VSN. DEFAULT
  834. * IS THE LOGICAL (EXTERNAL) VSN.
  835. *
  836. * ERRFLAG = FLAG
  837. * SETS OR CLEARS THE READ/WRITE ERROR DETECTED FLAG FOR
  838. * THE VSN. VALID VALUES FOR *FLAG* ARE -
  839. *
  840. * SET - SET ERROR FLAG.
  841. *
  842. * CLEAR - CLEAR ERROR FLAG.
  843. *
  844. * DEFAULT IS CLEAR.
  845. *
  846. * MAINT = MAIN
  847. * SETS *MAIN* AS THE MAINTENANCE STATUS FOR THE VSN. A
  848. * VSN HELD FOR MAINTENANCE CANNOT BE ASSIGNED TO A TAPE
  849. * FILE ENTRY. VALID VALUES FOR *MAIN* ARE -
  850. *
  851. * HOLD - HOLD FOR MAINTENANCE.
  852. *
  853. * AVAILABLE - AVAILABLE FOR ASSIGNMENT.
  854. *
  855. * DEFAULT IS AVAILABLE.
  856. *
  857. * OWNER = TYPE
  858. * SETS *TYPE* AS THE OWNERSHIP STATUS OF THE VSN.
  859. * A *TYPE* VALUE OF *USER* MAY NOT BE SPECIFIED FOR
  860. * A VSN WITH THE SYSTEM VSN FLAG SET.
  861. * VALID VALUES FOR *TYPE* ARE -
  862. *
  863. * CENTER - CENTER OWNED.
  864. *
  865. * USER - USER OWNED.
  866. *
  867. * DEFAULT IS CENTER.
  868. *
  869. * SITE = SITE
  870. * SETS SITE AS THE OFF SITE/ON SITE STATUS OF THE VSN.
  871. * USERS CANNOT ACCESS AN OFF SITE VSN. VALID VALUES FOR
  872. * SITE ARE -
  873. *
  874. * ON - ON SITE.
  875. *
  876. * OFF - OFF SITE.
  877. *
  878. * DEFAULT IS ON.
  879. * IF THE VSN IS ASSIGNED TO A TAPE FILE ENTRY, THE SITE
  880. * STATUS OF EACH VSN ASSIGNED TO THE TAPE FILE WILL BE
  881. * CHANGED.
  882. *
  883. * STATUS = STATUS
  884. * AVAILABLE - CLEARS BOTH THE MAINTENANCE AND ERROR
  885. * FLAGS.
  886. *
  887. * CLEANED - SAME AS AVAILABLE. IN ADDITION, THE USAGE
  888. * COUNT IS SET TO ZERO.
  889. *
  890. * HOLD - SET THE MAINTENANCE FLAG AND CLEARS THE
  891. * ERROR FLAG.
  892. *
  893. * ERROR - SET BOTH THE MAINTENANCE FLAG AND ERROR
  894. * FLAGS.
  895. *
  896. * DEFAULT IS AVAILABLE.
  897. * IF THE VSN IS ASSIGNED TO A TAPE FILE ENTRY, THE
  898. * OWNERSHIP STATUS OF EACH VSN ASSIGNED TO THE TAPE FILE
  899. * WILL BE CHANGED.
  900. *
  901. * SYSTEM = SYS
  902. * SETS *SYS* AS THE SYSTEM VSN FLAG STATUS FOR THE VSN.
  903. * A VSN WITH THE SYSTEM VSN FLAG SET WILL NOT BE USED
  904. * AS A SCRATCH VSN, BUT CAN BE ASSIGNED TO A TAPE FILE
  905. * ENTRY BY *TFSP*. THIS DIRECTIVE MAY ONLY BE SPECIFIED
  906. * WHEN A VSN IS FIRST CREATED, AND MAY NOT BE SPECIFIED
  907. * FOR A USER-OWNED VSN. VALID VALUES FOR *SYSTEM* ARE -
  908. *
  909. * YES - THE VSN IS A SYSTEM VSN.
  910. *
  911. * NO - THE VSN IS NOT A SYSTEM VSN.
  912. *
  913. * DEFAULT IS NO.
  914. *
  915. * USAGE = COUNT.
  916. * SETS COUNT AS THE NUMBER OF TIMES THAT THE VSN HAS
  917. * BEEN USED SINCE MAINTENANCE WAS LAST PERFORMED ON
  918. * THE TAPE. THE VALUE OF COUNT MUST BE AT LEAST ZERO
  919. * (0) AND NO MORE THEN 63. DEFAULT IS 0.
  920. *
  921. * VT = TYPE
  922. * SETS *TYPE* AS THE TAPE TYPE FOR THE VSN. THIS
  923. * DIRECTIVE MAY ONLY BE SPECIFIED WHEN THE VSN IS FIRST
  924. * CREATED. VALID VALUES FOR *TYPE* ARE -
  925. *
  926. * MTNT - THE VSN MAY BE USED AS EITHER AN *MT* (7-TRACK)
  927. * OR AN *NT* (9-TRACK) TAPE.
  928. *
  929. * CT - THE VSN MAY BE USED ONLY AS A *CT* (CARTRIDGE)
  930. * TAPE.
  931. *
  932. * AT - THE VSN MAY BE USED ONLY AS AN *AT* (ACS
  933. * CARTRIDGE) TAPE.
  934. *
  935. * DEFAULT IS MTNT.
  936. SPACE 4,10
  937. *** USER LEVEL DIRECTIVES.
  938. *
  939. * USER LEVEL DIRECTIVES REFERENCE THE TAPE FILE ENTRIES
  940. * BELONGING TO ONE USER ON THE TAPE CATALOG FILE. USER LEVEL
  941. * DIRECTIVES MAY OCCUR ANYWHERE AFTER A USER DIRECTIVE
  942. * AND BEFORE A USER LEVEL GO OR DROP. IF THE DIRECTIVE
  943. * ENTERED IS A FILE OR FILEV DIRECTIVE AND TFSP IS AT
  944. * THE FILE OR ALTERNATE USER LEVEL, AN *IMPLIED DROP* WILL
  945. * FIRST BE PERFORMED TO THE USER LEVEL AND NO UPDATES WILL
  946. * OCCUR.
  947. *
  948. * DROP
  949. * END PROCESSING OF USER LEVEL DIRECTIVES.
  950. *
  951. * GO
  952. * SAME AS DROP.
  953. *
  954. * +
  955. * WHEN A PLUS CHARACTER IS IN COLUMN ONE OF THE INPUT
  956. * LINE, THE LIST OF TAPE FILE ENTRIES DISPLAYED AT THE
  957. * LEFT-SCREEN K-DISPLAY IS TOGGLED. IF NOT THE OP=K
  958. * OPTION, THE DISPLAY DIRECTIVE MUST BE ISSUED TO COPY
  959. * THE DISPLAY TO THE OUTPUT FILE.
  960. *
  961. * AUDITCN = CHARGNO
  962. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES
  963. * BELONGING TO THE USER WITH A CHARGE NUMBER OF
  964. * *CHARGNO* TO THE OUTPUT FILE. A NULL *CHARGNO* IS
  965. * INCORRECT.
  966. *
  967. * AUDITFI = FILEIDENT
  968. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRY
  969. * *FILEIDENT* TO THE OUTPUT FILE. A NULL *FILEIDENT* IS
  970. * INCORRECT.
  971. *
  972. * AUDITFV = VSN
  973. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES
  974. * BELONGING TO THE USER WITH AN ASSIGNED VSN OF *VSN* TO
  975. * THE OUTPUT FILE. A NULL *VSN* IS INCORRECT.
  976. *
  977. * MREADCN = CHARGNO
  978. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES
  979. * BELONGING TO THE USER WITH A CHARGE NUMBER OF
  980. * *CHARGNO* TO THE MACHINE READABLE FILE. A NULL
  981. * *CHARGNO* IS INCORRECT.
  982. *
  983. * MREADFI = FILEIDENT
  984. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRY
  985. * *FILEIDENT* TO THE MACHINE READABLE FILE. A NULL
  986. * *FILEIDENT* IS INCORRECT.
  987. *
  988. * MREADFV = VSN
  989. * COPIES INFORMATION ABOUT THE TAPE FILE ENTRIES
  990. * BELONGING TO THE USER WITH AN ASSIGNED VSN OF *VSN* TO
  991. * THE MACHINE READABLE FILE. A NULL *VSN* IS INCORRECT.
  992. *
  993. * SOURCFI = FILEIDENT
  994. * COPIES THE DIRECTIVES REQUIRED TO CREATE THE TAPE FILE
  995. * ENTRY *FILEIDENT* BELONGING TO THE USER TO THE SOURCE
  996. * FILE. A NULL *FILEIDENT* IS INCORRECT.
  997. *
  998. * SOURCFV = VSN
  999. * COPIES THE DIRECTIVE REQUIRED TO CREATE THE TAPE FILE
  1000. * ENTRIES BELONGING TO THE USER WITH AN ASSIGNED VSN OF
  1001. * *VSN* TO THE SOURCE FILE. A NULL *VSN* IS INCORRECT.
  1002. *
  1003. * SOURCCN = CHARGNO
  1004. * COPIES THE DIRECTIVES REQUIRED TO CREATE THE TAPE FILE
  1005. * ENTRIES BELONGING TO THE USER WITH CHARGE NUMBER
  1006. * *CHARGNO* TO THE SOURCE FILE. A NULL *CHARGNO* IS
  1007. * INCORRECT.
  1008. *
  1009. * RELEASV = VSN
  1010. * PURGES THE TAPE FILE ENTRIES BELONGING TO THE USER
  1011. * THAT HAVE AN ASSIGNED VSN OF *VSN* FROM THE TAPE
  1012. * CATALOG FILE. EVERY VSN ASSOCIATED WITH THAT TAPE
  1013. * FILE IS RELEASED. A NULL *VSN* IS INCORRECT.
  1014. *
  1015. * RELEASF = FILEIDENT
  1016. * PURGES THE TAPE FILE ENTRY *FILEIDENT* BELONGING TO
  1017. * THE USER FROM THE TAPE CATALOG FILE. EVERY VSN
  1018. * ASSOCIATED WITH THAT TAPE FILE ENTRY IS RELEASED. A
  1019. * NULL *FILEIDENT* IS INCORRECT.
  1020. *
  1021. * FILE = FILEIDENT
  1022. * BEGINS FILE LEVEL DIRECTIVES. ALL DIRECTIVES
  1023. * FOLLOWING THE FILE DIRECTIVE AND BEFORE THE NEXT
  1024. * AMEND, RESERVE, OR FILE LEVEL GO OR DROP DIRECTIVE
  1025. * ARE ASSOCIATED WITH THE TAPE FILE ENTRY *FILEIDENT*
  1026. * BELONGING TO THE USER. FILE CAN BE USED TO CREATE A
  1027. * NEW OR UPDATE AN EXISTING SYMBOLIC ACCESS TAPE FILE
  1028. * ENTRY. NON-SYMBOLIC ACCESS TAPE FILES MUST BE
  1029. * REFERENCED BY THE FILEV DIRECTIVE. A NULL *FILEIDENT*
  1030. * IS INCORRECT. VALID ENTRY FROM THE USER, FILE, OR
  1031. * THE ALTERNATE USER LEVEL. IF ENTERED FROM THE
  1032. * FILE OR ALTERNATE USER LEVEL, AN *IMPLIED DROP*
  1033. * WILL FIRST BE PERFORMED TO THE USER LEVEL AND NO
  1034. * UPDATE FOR THE CURRENT LEVEL WILL OCCUR.
  1035. *
  1036. * FILEV = VSN/SEQNO
  1037. * BEGINS FILE LEVEL DIRECTIVES. ALL DIRECTIVES
  1038. * FOLLOWING THE FILEV DIRECTIVE AND BEFORE THE NEXT
  1039. * AMEND, RESERVE, OR FILE LEVEL GO OR DROP DIRECTIVE
  1040. * ARE ASSOCIATED WITH THE TAPE FILE ENTRY BELONGING TO
  1041. * THE USER THAT HAS AN ASSIGNED VSN *VSN* AND SEQUENCE
  1042. * NUMBER *SEQNO*. THE FILE POSITION IS A MULTI-FILE SET
  1043. * IS SPECIFIED BY *SEQNO*. FILEV CAN BE USED TO CREATE
  1044. * A NEW OR UPDATE AN EXISTING TAPE FILE ENTRY. A NULL
  1045. * *VSN* IS INCORRECT. IF *SEQNO* IS NULL, A VALUE OF 1
  1046. * IS ASSUMED. VALID ENTRY FROM THE USER, FILE, OR
  1047. * THE ALTERNATE USER LEVEL. IF ENTERED FROM THE
  1048. * FILE OR ALTERNATE USER LEVEL, AN *IMPLIED DROP*
  1049. * WILL FIRST BE PERFORMED TO THE USER LEVEL AND NO
  1050. * UPDATE FOR THE CURRENT LEVEL WILL OCCUR.
  1051. SPACE 4,10
  1052. *** FILE LEVEL DIRECTIVES.
  1053. *
  1054. * FILE LEVEL DIRECTIVES REFERENCE ONE TAPE FILE ENTRY BELONGING
  1055. * TO THE USER. FILE LEVEL DIRECTIVES MAY OCCUR ANYWHERE AFTER
  1056. * A FILE OR FILEV DIRECTIVE AND BEFORE AN AMEND, RESERVE, OR
  1057. * FILE LEVEL DROP OR GO (AND FROM THE ALTERNATE USER LEVEL).
  1058. * WHENEVER A FILE LEVEL DIRECTIVE IS ASSIGNED A NULL VALUE,
  1059. * TFSP WILL SET THE DEFAULT VALUE UNLESS STATED OTHERWISE IN
  1060. * THE DIRECTIVE DESCRIPTION. SITE PERSONNEL WILL PROBABLY
  1061. * FIND THAT THEY ONLY HAVE TO ENTER A FEW OF THE FILE LEVEL
  1062. * DIRECTIVES (SUCH AS CN AND AVSN) WHEN CREATING NEW TAPE
  1063. * FILE ENTRIES. MOST OF THE FILE LEVEL DIRECTIVES EXIST FOR
  1064. * THE "DUMPING" AND "LOADING" OF THE TAPE FILE CATALOG
  1065. * ENTRIES VIA THE SOURCE FILE.
  1066. *
  1067. * AMEND
  1068. * END PROCESSING OF FILE LEVEL DIRECTIVES. THE CHANGES
  1069. * SPECIFIED BY THE FILE LEVEL DIRECTIVES WILL BE MADE TO
  1070. * THE TAPE FILE. INCORRECT IF THE TAPE FILE IS NOT
  1071. * RESERVED.
  1072. *
  1073. * RESERVE
  1074. * END PROCESSING OF FILE LEVEL DIRECTIVES. THE TAPE
  1075. * FILE WILL BE RESERVED. INCORRECT IF THE TAPE FILE
  1076. * ALREADY IS RESERVED.
  1077. *
  1078. * GO
  1079. * SAME AS RESERVE FOR A NEW TAPE FILE ENTRY. SAME AS
  1080. * AMEND FOR AN EXISTING TAPE FILE ENTRY.
  1081. *
  1082. * DROP
  1083. * END PROCESSING OF FILE LEVEL DIRECTIVES. CHANGES
  1084. * SPECIFIED BY THE FILE LEVEL DIRECTIVES WILL BE
  1085. * IGNORED.
  1086. *
  1087. * +
  1088. * WHEN A PLUS CHARACTER IS IN COLUMN ONE OF THE INPUT
  1089. * LINE, THE PAGE DISPLAYED AT THE LEFT-SCREEN K-DISPLAY
  1090. * IS TOGGLED. IF NOT THE OP=K OPTION, THE DISPLAY
  1091. * DIRECTIVE MUST BE ISSUED TO COPY THE DISPLAY TO THE
  1092. * OUTPUT FILE.
  1093. *
  1094. * AUDITAU = USERNAM
  1095. * COPIES THE ADMIT INFORMATION GRANTED TO USER NAME
  1096. * *USERNAM* FOR THE TAPE FILE ENTRY TO THE OUTPUT FILE.
  1097. * IF *USERNAM* IS NULL, ALL USER NAMES ADMITTED TO THE
  1098. * TAPE FILE ENTRY ARE PROCESSED.
  1099. *
  1100. * SV = ACCESS
  1101. * SETS ACCESS AS THE SYMBOLIC ACCESS STATUS OF THE TAPE
  1102. * FILE. VALID VALUES FOR ACCESS ARE -
  1103. *
  1104. * NO - NO SYMBOLIC ACCESS. TAPE FILE ENTRY CANNOT BE
  1105. * ACCESSED BY FILE IDENTIFIER.
  1106. *
  1107. * SET - SYMBOLIC ACCESS. TAPE FILE ENTRY CAN BE
  1108. * ACCESSED BY FILE IDENTIFIER.
  1109. *
  1110. * DEFAULT IS NO.
  1111. *
  1112. * RECOVER = STATUS
  1113. * SETS *STATUS* AS THE RECOVERY STATUS OF THE TAPE FILE.
  1114. * VALID VALUES FOR *STATUS* ARE -
  1115. *
  1116. * NO - TAPE FILE HAS NOT BEEN RECOVERED.
  1117. *
  1118. * YES - TAPE FILE HAS BEEN RECOVERED. THE USER MAY HAVE
  1119. * TO AMEND THE THE TAPE FILE ENTRY TO RETURN IT TO
  1120. * ITS ORIGINAL STATE.
  1121. *
  1122. * DEFAULT IS NO.
  1123. *
  1124. * FI = FILEIDENT
  1125. * CHANGES THE LOGICAL FILE IDENTIFIER OF THE TAPE FILE
  1126. * ENTRY TO *FILEIDENT*. THIS IS THE NAME SPECIFIED BY
  1127. * USER COMMANDS AND THE FILE DIRECTIVE WHEN
  1128. * ACCESSING THIS TAPE FILE ENTRY. THE *FILEIDENT* MUST
  1129. * NOT BE THE NAME OF ANY OTHER TAPE FILE ENTRY BELONGING
  1130. * TO THE USER IF SYMBOLIC ACCESS. DEFAULT IS THE SAME
  1131. * NAME AS SPECIFIED IN THE PREVIOUS FILE DIRECTIVE.
  1132. *
  1133. * PI = FILEIDENT
  1134. * SETS *FILEIDENT* AS THE PHYSICAL FILE IDENTIFIER OF
  1135. * THE TAPE FILE ENTRY. GENERALLY, *FILEIDENT* IS THE
  1136. * SAME AS THE LOGICAL FILE IDENTIFIER WHEN THE TAPE FILE
  1137. * ENTRY IS CREATED. DEFAULT IS THE SAME NAME AS
  1138. * SPECIFIED IN THE FILE DIRECTIVE WHEN THE TAPE FILE
  1139. * ENTRY IS FIRST CREATED. IF *LB=KU* WHEN THE TAPE
  1140. * FILE IS RESERVED OR AMENDED, THE PHYSICAL FILE
  1141. * IDENTIFIER WILL BE CLEARED.
  1142. *
  1143. * UC = WORD
  1144. * SETS *WORD* AS THE TEN CHARACTER USER CONTROL WORD FOR
  1145. * THE TAPE FILE ENTRY. BLANKS ARE SIGNIFICANT. TFSP
  1146. * WILL LEFT JUSTIFY AND BLANK FILL IF *WORD* IS LESS
  1147. * THAN TEN CHARACTERS. DEFAULT IS TEN COLONS.
  1148. *
  1149. * PW = PASSWOR
  1150. * SETS *PASSWOR* AS THE PASSWORD THAT ALTERNATE USERS
  1151. * MUST SPECIFY TO ACCESS THE TAPE FILE. DEFAULT IS NO
  1152. * PASSWORD.
  1153. *
  1154. * CT = CAT
  1155. * SETS *CAT* AS THE ACCESS CATEGORY FOR ALTERNATE USERS
  1156. * OF THE TAPE FILE. VALID VALUES FOR *CAT* ARE -
  1157. *
  1158. * PRIVATE - PRIVATE. ALTERNATE USER ACCESS RESTRICTED.
  1159. *
  1160. * SPRIV - SEMI-PRIVATE. ALTERNATE USER ACCESS ALLOWED
  1161. * AND RECORDED.
  1162. *
  1163. * PUBLIC - PUBLIC. ALTERNATE USER ACCESS ALLOWED BUT
  1164. * NOT RECORDED.
  1165. *
  1166. * DEFAULT IS PRIVATE.
  1167. *
  1168. * M = MODE
  1169. * SETS *MODE* AS THE ACCESS PERMISSION FOR ALTERNATE
  1170. * USERS. VALID VALUES FOR *MODE* ARE -
  1171. *
  1172. * READ - ALTERNATE USERS MAY ONLY READ THE TAPE FILE.
  1173. *
  1174. * WRITE - ALTERNATE USERS MAY READ OR WRITE ON THE TAPE
  1175. * FILE.
  1176. *
  1177. * NULL - ALTERNATE USERS MAY NOT ACCESS THE TAPE FILE.
  1178. *
  1179. * DEFAULT IS READ.
  1180. *
  1181. * AC = OP
  1182. * SETS *OP* AS THE CATLIST PERMISSION FOR ALTERNATE
  1183. * USERS OF THE TAPE FILE. VALID VALUES FOR OP ARE -
  1184. *
  1185. * YES - ALTERNATE USERS CAN AUDIT THE PUBLIC OR
  1186. * SEMI-PRIVATE TAPE FILE.
  1187. *
  1188. * NO - ALTERNATE USERS CANNOT AUDIT THE TAPE FILE.
  1189. *
  1190. * DEFAULT IS NO. ALTERNATE USERS CANNOT AUDIT PRIVATE
  1191. * TAPE FILES EVEN IF AC=YES.
  1192. *
  1193. * CE = FLAG
  1194. * SETS OR CLEARS THE READ/WRITE ERROR FLAG FOR THE TAPE
  1195. * FILE ENTRY. VALID VALUES FOR *FLAG* ARE -
  1196. *
  1197. * SET - SET ERROR FLAG.
  1198. *
  1199. * CLEAR - CLEAR ERROR FLAG.
  1200. *
  1201. * DEFAULT IS CLEAR.
  1202. *
  1203. * CN = CHARGNO
  1204. * SETS *CHARGNO* AS THE CHARGE NUMBER ASSIGNED TO THE
  1205. * TAPE FILE ENTRY. DEFAULT IS NO CHARGE NUMBER.
  1206. *
  1207. * PN = PROJECTNO
  1208. * SETS *PROJECTNO* AS THE PROJECT NUMBER ASSIGNED TO THE
  1209. * TAPE FILE ENTRY. DEFAULT IS NO PROJECT NUMBER.
  1210. *
  1211. * CDATE = YYMMDD
  1212. * SETS *YYMMDD* AS THE DATE OF CREATION OF THE TAPE FILE
  1213. * ENTRY. DEFAULT IS THE CURRENT DATE.
  1214. *
  1215. * CTIME = HHMMSS
  1216. * SETS *HHMMSS* AS THE TIME OF CREATION OF THE TAPE FILE
  1217. * ENTRY. DEFAULT IS THE CURRENT TIME.
  1218. *
  1219. * ADATE = YYMMDD
  1220. * SETS *YYMMDD* AS THE DATE OF LAST ACCESS OF THE TAPE
  1221. * FILE ENTRY. DEFAULT IS THE CURRENT DATE.
  1222. *
  1223. * ATIME = HHMMSS
  1224. * SETS *HHMMSS* AS THE TIME OF LAST ACCESS OF THE TAPE
  1225. * FILE ENTRY. DEFAULT IS THE CURRENT TIME.
  1226. *
  1227. * MDATE = YYMMDD
  1228. * SETS *YYMMDD* AS THE DATE OF LAST MODIFICATION OF THE
  1229. * TAPE FILE ENTRY. DEFAULT IS THE CURRENT DATE.
  1230. *
  1231. * MTIME = HHMMSS
  1232. * SETS *HHMMSS* AS THE TIME OF LAST MODIFICATION OF THE
  1233. * TAPE FILE ENTRY. DEFAULT IS THE CURRENT TIME.
  1234. *
  1235. * ACOUNT = COUNT
  1236. * SETS *COUNT* AS THE NUMBER OF ACCESSES OF THE TAPE
  1237. * FILE ENTRY. DEFAULT IS ZERO.
  1238. *
  1239. * CR = YYDDD
  1240. * SETS *YYDDD* (JULIAN FORMAT) AS THE CREATION DATE OF
  1241. * AN ANSI-LABELED TAPE. THIS VALUE IS USUALLY
  1242. * EQUIVALENT TO THE DATE SPECIFIED BY THE CDATE
  1243. * DIRECTIVE, HOWEVER IT CAN BE DIFFERENT. DEFAULT IS
  1244. * THE CURRENT DATE.
  1245. *
  1246. * CV = MODE
  1247. * SETS *MODE* AS THE CONVERSION MODE FOR THE NINE-TRACK
  1248. * TAPE FILE ENTRY. VALID VALUES FOR *MODE* ARE -
  1249. *
  1250. * AS - ASCII/DISPLAY CODE CONVERSION.
  1251. *
  1252. * EB - EBCDIC/DISPLAY CODE CONVERSION.
  1253. *
  1254. * DEFAULT IS AS.
  1255. *
  1256. * D= DENSITY
  1257. * SETS *DENSITY* AS THE TAPE DENSITY. ALSO SETS THE
  1258. * TAPE TYPE. VALID VALUES FOR *DENSITY* ARE -
  1259. *
  1260. * HI - 556 BPI, 7-TRACK (*MT*).
  1261. *
  1262. * HY - 800 BPI, 7-TRACK (*MT*).
  1263. *
  1264. * HD - 800 CPI, 9-TRACK (*NT*).
  1265. *
  1266. * PE - 1600 CPI, 9-TRACK (*NT*).
  1267. *
  1268. * GE - 6250 CPI, 9-TRACK (*NT*).
  1269. *
  1270. * CE - 38000 CPI, CARTRIDGE (*CT*).
  1271. *
  1272. * AE - 38000 CPI, ACS CARTRIDGE (*AT*).
  1273. *
  1274. * DEFAULT IS PE.
  1275. *
  1276. * E = NUMBER
  1277. * SETS *NUMBER* AS THE ONE OR TWO DIGIT GENERATION
  1278. * VERSION NUMBER FOR AN ANSI-LABELED TAPE. DEFAULT IS
  1279. * 00.
  1280. *
  1281. * F = FORMAT
  1282. * SETS *FORMAT* AS THE DATA FORMAT OF THE TAPE FILE
  1283. * ENTRY. VALID VALUES FOR *FORMAT* ARE -
  1284. *
  1285. * I - INTERNAL.
  1286. *
  1287. * LI - LONG BLOCK INTERNAL.
  1288. *
  1289. * S - STRANGER.
  1290. *
  1291. * L - LONG BLOCK STRANGER.
  1292. *
  1293. * SI - SCOPE INTERNAL.
  1294. *
  1295. * F - FOREIGN.
  1296. *
  1297. * DEFAULT IS I.
  1298. *
  1299. * FA = CHAR
  1300. * SETS *CHAR* AS THE ONE ALPHA-NUMERIC CHARACTER
  1301. * ACCESSIBILITY RESTRICTION FOR AN ANSI-LABELED TAPE.
  1302. * VALID VALUES FOR *CHAR* ARE -
  1303. *
  1304. * NULL - NO ACCESSIBILITY RESTRICTIONS FOR ALTERNATE
  1305. * USERS.
  1306. *
  1307. * A - NO ACCESSIBILITY ALLOWED FOR ALTERNATE USERS.
  1308. *
  1309. * NON-A - ALTERNATE USERS MUST SPECIFY *CHAR* TO ACCESS
  1310. * TAPE FILE ENTRY.
  1311. *
  1312. * DEFAULT IS NO CHARACTER.
  1313. *
  1314. * FC = FRAMES
  1315. * SETS *FRAMES* AS THE MAXIMUM SIZED BLOCK THAT CAN BE
  1316. * READ FROM OR WRITTEN TO AN F FORMAT TAPE. THE VALUE
  1317. * SHOULD BE GREATER THAN THAT SPECIFIED BY THE NS
  1318. * DIRECTIVE. DEFAULT IS UNLIMITED.
  1319. * A VALUE OF ZERO (0) SETS THE INSTALLATION DEFAULT.
  1320. *
  1321. * G = NUMBER
  1322. * SETS *NUMBER* AS THE ONE TO FOUR DIGIT GENERATION
  1323. * NUMBER FOR AN ANSI LABELED TAPE. DEFAULT IS 0001.
  1324. *
  1325. * LB = LABEL
  1326. * SETS LABEL AS THE LABEL STATUS OF THE TAPE FILE ENTRY.
  1327. * VALID VALUES ARE -
  1328. *
  1329. * KU - UNLABELED.
  1330. *
  1331. * KL - ANSI-LABELED.
  1332. *
  1333. * NS - NON-STANDARD LABELED.
  1334. *
  1335. * DEFAULT IS KL.
  1336. *
  1337. * SI = SETID
  1338. * SETS *SETID* AS THE SET IDENTIFIER OF AN ANSI-LABELED
  1339. * TAPE. DEFAULT IS NO SET IDENTIFIER.
  1340. *
  1341. * NS = FRAMES
  1342. * SETS *FRAMES* AS THE MINIMUM SIZE OF A VALID BLOCK.
  1343. * ANY SMALLER BLOCK IS CONSIDERED NOISE. THE VALUE MUST
  1344. * BE 0.GE.*FRAMES*.GE.31. THE VALUE SHOULD BE LESS THAN
  1345. * THAT SPECIFIED BY THE FC DIRECTIVE. DEFAULT IS 0.
  1346. * A VALUE OF ZERO (0) SETS THE INSTALLATION DEFAULT.
  1347. *
  1348. * RT = YYDDD
  1349. * SETS *YYDDD* (JULIAN FORMAT) AS THE RETENTION DATE FOR
  1350. * AN ANSI-LABELED TAPE. NO ONE (INCLUDING THE TAPE
  1351. * OWNER) CAN WRITE OVER THE TAPE BEFORE THIS DATE.
  1352. * DEFAULT IS THE CURRENT DATE.
  1353. *
  1354. * SN = SECNO
  1355. * SETS *SECNO* AS THE ONE TO FOUR DIGIT FILE SECTION
  1356. * NUMBER FOR AN ANSI-LABELED TAPE. DEFAULT IS 0001.
  1357. *
  1358. * AVSN = VSN
  1359. * ADDS *VSN* AS THE LAST VSN ASSIGNED TO THE TAPE FILE
  1360. * ENTRY. INCORRECT DIRECTIVE IF THE TAPE FILE ENTRY
  1361. * ALREADY HAS 60 ASSIGNED VSNS, IF THE TAPE FILE ENTRY
  1362. * IS NOT THE LAST FILE IN A MULTI-FILE SET, OR IF THE
  1363. * VSN BEING ADDED HAS SYSTEM STATUS. *VSN* CAN BE
  1364. * ASSIGNED IF ONE OF THE FOLLOWING CONDITIONS IS MET -
  1365. *
  1366. * 1. *VSN* IS NOT ASSIGNED TO ANOTHER TAPE FILE, DOES
  1367. * NOT HAVE SYSTEM STATUS, AND IT-S SITE AND
  1368. * OWNERSHIP STATUS MATCH THE STATUS OF THE FIRST
  1369. * ASSIGNED VSN OF THE TAPE FILE.
  1370. *
  1371. * 2. THE TAPE FILE ENTRY HAS NO ASSIGNED VSNS AND *VSN*
  1372. * IS NOT ASSIGNED TO ANOTHER TAPE FILE, OR IS THE
  1373. * LAST VSN OF ANOTHER TAPE FILE BELONGING TO THE
  1374. * USER (PROVIDING FOR MULTI-FILE SET CATALOGS).
  1375. *
  1376. * A NULL *VSN* IS INCORRECT.
  1377. *
  1378. * TSITE = SITE
  1379. * SETS SITE AS THE OFF SITE/ON SITE STATUS OF ALL THE
  1380. * VSNS ASSIGNED TO THE TAPE FILE ENTRY. USERS CANNOT
  1381. * ACCESS OFF SITE TAPE FILES. VALID VALUES FOR SITE
  1382. * ARE -
  1383. *
  1384. * ON - ON SITE.
  1385. *
  1386. * OFF - OFF SITE.
  1387. *
  1388. * DEFAULT IS ON.
  1389. *
  1390. * RDATE = YYMMDD
  1391. * SET YYMMDD AS THE USER RELEASE DATE OF THE TAPE
  1392. * FILE ENTRY. IF THE DIRECTIVE IS SPECIFIED WITH NO
  1393. * DATE (RDATE=), THE USER RELEASE DATE IS CLEARED.
  1394. * DEFAULT IS NO RELEASE DATE.
  1395. *
  1396. * URDATE = YYMMDD
  1397. * SET YYMMDD AS THE UNCONDITIONAL RELEASE DATE OF THE
  1398. * TAPE FILE ENTRY. IF THE DIRECTIVE IS SPECIFIED WITH NO
  1399. * DATE (RDATE=), THE UNCONDITIONAL RELEASE DATE IS
  1400. * CLEARED. DEFAULT IS NO RELEASE DATE.
  1401. *
  1402. * TOWNER = TYPE
  1403. * SETS *TYPE* AS THE OWNERSHIP STATUS OF ALL THE VSNS
  1404. * ASSIGNED TO THE TAPE FILE ENTRY. VALID VALUES FOR
  1405. * *TYPE* ARE -
  1406. *
  1407. * CENTER - CENTER OWNED.
  1408. *
  1409. * USER - USER OWNED.
  1410. *
  1411. * DEFAULT IS CENTER.
  1412. *
  1413. * AUSER = USERNAM
  1414. * BEGINS ALTERNATE USER LEVEL DIRECTIVES. ALL
  1415. * DIRECTIVES FOLLOWING THE AUSER DIRECTIVE AND BEFORE
  1416. * THE NEXT ADMIT, DROP, OR GO DIRECTIVE ARE ASSOCIATED
  1417. * WITH THE PERMISSION GRANTED TO USER NAME *USERNAM* FOR
  1418. * THE TAPE FILE ENTRY. INCORRECT ENTRY IF THE TAPE FILE
  1419. * HAS NOT YET BEEN RESERVED. A NULL *USERNAM* IS
  1420. * INCORRECT. IF ENTERED FROM THE ALTERNATE USER LEVEL,
  1421. * AN IMPLIED DROP WILL BE PERFORMED AND NO UPDATE FOR
  1422. * THE CURRENT LEVEL WILL OCCUR.
  1423. SPACE 4,10
  1424. *** ALTERNATE USER LEVEL DIRECTIVES.
  1425. *
  1426. * ALTERNATE USER LEVEL DIRECTIVES REFERENCE AN ALTERNATE USER
  1427. * GRANTED EXPLICIT PERMISSION TO ACCESS THE TAPE FILE.
  1428. * ALTERNATE USER LEVEL DIRECTIVES MAY OCCUR ANYWHERE AFTER AN
  1429. * AUSER DIRECTIVE AND BEFORE AN ADMIT, DROP, OR GO DIRECTIVE.
  1430. * WHENEVER A ALTERNATE USER LEVEL DIRECTIVE IS ASSIGNED A NULL
  1431. * VALUE, TFSP WILL SET THE DEFAULT VALUE.
  1432. *
  1433. * ADMIT
  1434. * END PROCESSING OF ALTERNATE USER LEVEL DIRECTIVES.
  1435. * THE CHANGES SPECIFIED BY THE ALTERNATE USER LEVEL
  1436. * DIRECTIVES WILL BE MADE TO THE ALTERNATE USER.
  1437. *
  1438. * GO
  1439. * SAME AS ADMIT.
  1440. *
  1441. * DROP
  1442. * END PROCESSING OF ALTERNATE USER LEVEL DIRECTIVES.
  1443. * CHANGES SPECIFIED BY THE ALTERNATE USER LEVEL
  1444. * DIRECTIVES WILL BE IGNORED.
  1445. *
  1446. * AMODE = MODE
  1447. * SETS *MODE* AS THE ACCESS PERMISSION GRANTED TO THE
  1448. * USER. VALID VALUES FOR *MODE* ARE -
  1449. *
  1450. * NULL - NO ACCESS ALLOWED TO THE USER.
  1451. *
  1452. * READ - USER ALLOWED TO READ BUT NOT WRITE ON THE TAPE
  1453. * FILE.
  1454. *
  1455. * WRITE - USER ALLOWED TO READ AND WRITE ON THE TAPE
  1456. * FILE.
  1457. *
  1458. * IMPLICIT - SEMI-PRIVATE ACCESS. THE MODE SPECIFIED BY
  1459. * THE M FILE LEVEL DIRECTIVE TAKES PRECEDENCE.
  1460. *
  1461. * SPECIAL - TMS CONVERSION MODE.
  1462. *
  1463. * DEFAULT IS IMPLICIT.
  1464. *
  1465. * AACOUNT = COUNT
  1466. * SETS THE NUMBER OF ACCESSES BY THE USER TO *COUNT*.
  1467. * DEFAULT IS ZERO.
  1468. *
  1469. * AADATE = YYMMDD
  1470. * SETS THE DATE OF LAST ACCESS BY THE USER TO *YYMMDD*.
  1471. * DEFAULT IS THE CURRENT DATE.
  1472. *
  1473. * AATIME = HHMMSS
  1474. * SETS THE TIME OF LAST ACCESS BY THE USER TO *HHMMSS*.
  1475. * DEFAULT IS THE CURRENT TIME.
  1476. SPACE 4,10
  1477. *** INFORMATIVE DIRECTIVE MESSAGES.
  1478. *
  1479. * INFORMATIVE DIRECTIVE MESSAGES ARE ISSUED TO THE OUTPUT FILE
  1480. * OR K-DISPLAY AFTER THE DIRECTIVE IS PROCESSED. THESE
  1481. * MESSAGES ARE PREFIXED BY THE CHARACTERS *INFORM*.
  1482. * THESE MESSAGES WILL NOT BE WRITTEN TO THE OUTPUT FILE
  1483. * IF TFSP IS IN *BRIEF* MODE.
  1484. *
  1485. * P AND N PARAMETERS IGNORED.
  1486. * FIRST MESSAGE ISSUED WHENEVER TFSP IS NOT RUN IN LOCAL
  1487. * FILE (LF) MODE.
  1488. *
  1489. * I PARAMETER IGNORED.
  1490. * FIRST MESSAGE ISSUED WHENEVER TFSP IS RUN WITH THE
  1491. * OP=K OR OP=Z OPTION.
  1492. *
  1493. * VSN REMOVED FROM CATALOG.
  1494. * THE REMOVE DIRECTIVE HAS COMPLETED.
  1495. *
  1496. * FILE RELEASED.
  1497. * THE RELEASE, RELEASF, OR RELEASV DIRECTIVE HAS
  1498. * COMPLETED.
  1499. *
  1500. * ALTERNATE USER CURRENTLY IS ADMITTED.
  1501. * THE USER NAME SPECIFIED BY THE AUSER DIRECTIVE HAS
  1502. * BEEN ADMITTED PREVIOUSLY.
  1503. *
  1504. * ALTERNATE USER NOT CURRENTLY ADMITTED.
  1505. * THE USER NAME SPECIFIED BY THE AUSER DIRECTIVE HAS NOT
  1506. * BEEN PREVIOUSLY ADMITTED.
  1507. *
  1508. * ALTERNATE USER NOT PROCESSED.
  1509. * AN ALTERNATE USER DROP DIRECTIVE HAS BEEN ISSUED.
  1510. *
  1511. * ALTERNATE USER ADMITTED.
  1512. * A NEW ALTERNATE USER HAS BEEN ADMITTED VIA THE ADMIT
  1513. * DIRECTIVE.
  1514. *
  1515. * ALTERNATE USER ADMIT UPDATED.
  1516. * THE ADMIT ENTRY FOR A PREVIOUSLY ADMITTED ALTERNATE
  1517. * USER HAS BEEN UPDATED VIA THE ADMIT DIRECTIVE.
  1518. *
  1519. * PREMATURE END OF FILE, XXXXXXX.
  1520. * A NULL INPUT LINE WAS FOUND WHILE READING DIRECTIVES
  1521. * FROM FILE XXXXXXX.
  1522. *
  1523. * FILE CURRENTLY IS RESERVED.
  1524. * THE TAPE FILE SPECIFIED BY THE FILE DIRECTIVE HAS BEEN
  1525. * PREVIOUSLY RESERVED.
  1526. *
  1527. * FILE NOT CURRENTLY RESERVED.
  1528. * THE TAPE FILE SPECIFIED BY THE FILE DIRECTIVE HAS NOT
  1529. * BEEN PREVIOUSLY RESERVED.
  1530. *
  1531. * FILE NOT PROCESSED.
  1532. * THE FILE LEVEL DROP DIRECTIVE HAS BEEN ISSUED.
  1533. *
  1534. * FILE RESERVED.
  1535. * THE RESERVE DIRECTIVE HAS BEEN ISSUED FOR A TAPE FILE
  1536. * THAT PREVIOUSLY WAS NOT RESERVED.
  1537. *
  1538. * FILE AMENDED.
  1539. * THE AMEND DIRECTIVE HAS BEEN ISSUED FOR A TAPE FILE
  1540. * THAT PREVIOUSLY WAS RESERVED.
  1541. *
  1542. * USER LEVEL COMPLETE.
  1543. * THE USER LEVEL DROP DIRECTIVE HAS BEEN ISSUED.
  1544. *
  1545. * VSN CURRENTLY IN CATALOG.
  1546. * THE VSN SPECIFIED BY THE VSN DIRECTIVE HAS PREVIOUSLY
  1547. * BEEN ADDED TO THE TAPE CATALOG FILE.
  1548. *
  1549. * VSN INTERLOCKED. JSN IS XXXX.
  1550. * THE VSN SPECIFIED BY THE VSN DIRECTIVE IS BUSY
  1551. * AND ASSIGNED (WAITING FOR TAPE TO BE MOUNTED).
  1552. * THE JSN OF THE JOB REQUESTING THE TAPE IS GIVEN.
  1553. *
  1554. * VSN NOT CURRENTLY IN CATALOG.
  1555. * THE VSN SPECIFIED BY THE VSN DIRECTIVE HAS NOT BEEN
  1556. * PREVIOUSLY ADDED TO THE TAPE CATALOG FILE.
  1557. *
  1558. * VSN RESERVED BY UUUUUUU.
  1559. * THE VSN SPECIFIED BY THE VSN DIRECTIVE HAS PREVIOUSLY
  1560. * BEEN ADDED TO THE TAPE CATALOG FILE AND IS ASSIGNED TO
  1561. * A TAPE FILE OF USER NAME UUUUUUU.
  1562. *
  1563. * VSN NOT PROCESSED.
  1564. * THE VSN LEVEL DROP DIRECTIVE HAS BEEN ISSUED.
  1565. *
  1566. * VSN ADDED TO CATALOG.
  1567. * THE ADD DIRECTIVE HAS BEEN ISSUED FOR A VSN THAT HAS
  1568. * NOT BEEN PREVIOUSLY ADDED TO THE TAPE CATALOG FILE.
  1569. *
  1570. * VSN REVISED.
  1571. * THE REVISE DIRECTIVE HAS BEEN ISSUED FOR A VSN THAT
  1572. * HAS BEEN PREVIOUSLY ADDED TO THE TAPE CATALOG FILE.
  1573. SPACE 4,10
  1574. *** DIRECTIVE ERROR MESSAGES.
  1575. *
  1576. * TFSP DIRECTIVE ERROR MESSAGES ARE ISSUED TO THE OUTPUT FILE
  1577. * OR K-DISPLAY AFTER TFSP HAS ATTEMPTED TO PROCESS THE
  1578. * DIRECTIVE. THE MESSAGES ARE PREFIXED BY THE CHARACTERS
  1579. * *ERROR*.
  1580. *
  1581. * ALTERNATE FAMILIES AT MAXIMUM.
  1582. * AN ATTEMPT WAS MADE TO ADD A FAMILY NAME WITH THE
  1583. * *ALTFAM* DIRECTIVE WHEN THE MAXIMUM NUMBER OF
  1584. * ALTERNATE FAMILIES WERE ALREADY DEFINED.
  1585. *
  1586. * ASSIGNED VSNS AT MAXIMUM.
  1587. * AN ATTEMPT WAS MADE TO ASSIGN MORE THAN 60 VSNS TO A
  1588. * TAPE FILE OR TO ASSIGN A VSN TO A TAPE FILE THAT WAS
  1589. * NOT THE LAST FILE OF A MULTI-FILE SET.
  1590. *
  1591. * CANNOT CHANGE SYSTEM VSN FLAG.
  1592. * AN ATTEMPT WAS MADE TO CHANGE THE SYSTEM VSN FLAG OF
  1593. * A VSN ENTRY WHICH WAS ALREADY IN THE CATALOG.
  1594. *
  1595. * CANNOT CHANGE TAPE TYPE / DENSITY.
  1596. * AN ATTEMPT WAS MADE TO CHANGE THE TAPE TYPE OF A VSN
  1597. * ENTRY WHICH WAS ALREADY IN THE CATALOG; OR AN ATTEMPT
  1598. * WAS MADE TO CHANGE THE DENSITY OF A TAPE FILE WHICH
  1599. * HAD VSN-S ASSIGNED, AND THAT NEW DENSITY IMPLIED A
  1600. * CHANGE IN TAPE TYPE.
  1601. *
  1602. * DATA FIELD ERROR.
  1603. * THE DATA SPECIFIED WITH THE DIRECTIVE IS NOT VALID FOR
  1604. * THAT DIRECTIVE.
  1605. *
  1606. * DIRECTIVE INCORRECT FROM CURRENT LEVEL.
  1607. * THE DIRECTIVE THAT WAS ENTERED MAY NOT BE ISSUED FROM
  1608. * THE CURRENT LEVEL. CONSULT *HELP* DISPLAY FOR CORRECT
  1609. * LEVEL.
  1610. *
  1611. * DIRECTIVE NOT VALID ON FAST ATTACH CATALOG.
  1612. * THE DIRECTIVE CAN ONLY BE USED IN LOCAL FILE MODE.
  1613. *
  1614. * FILE BUSY.
  1615. * THE TAPE FILE ENTRY SPECIFIED BY THE FILE OR FILEV
  1616. * DIRECTIVE IS IN USE AND CANNOT BE ACCESSED AT THIS
  1617. * TIME.
  1618. *
  1619. * FILE ALREADY RESERVED.
  1620. * AN ATTEMPT WAS MADE TO ISSUE THE RESERVE DIRECTIVE FOR
  1621. * A TAPE FILE THAT ALREADY WAS RESERVED.
  1622. *
  1623. * FILE IDENTIFIER CONFLICT.
  1624. * THE FILE IDENTIFIER SPECIFIED BY THE FI DIRECTIVE IS
  1625. * THE SAME AS THE FILE IDENTIFIER FOR ANOTHER OF THE
  1626. * SYMBOLIC ACCESS FILES OF THE USER.
  1627. *
  1628. * FILE NAME CONFLICT.
  1629. * THE FILE SPECIFIED BY THE READ DIRECTIVE IS THE SAME
  1630. * AS A FILE USED BY ONE OF THE COMMAND
  1631. * PARAMETERS.
  1632. *
  1633. * FILE NOT IN CATALOG.
  1634. * THE TAPE FILE SPECIFIED BY THE RELEASF OR RELEASV
  1635. * DIRECTIVE IS NOT AMONG THE TAPE FILES OF THE USER.
  1636. *
  1637. * FILE NOT RESERVED.
  1638. * AN ATTEMPT WAS MADE TO ISSUE THE AUSER OR AMEND
  1639. * DIRECTIVE FOR A TAPE FILE THAT IS NOT YET RESERVED.
  1640. *
  1641. * INCORRECT DIRECTIVE.
  1642. * EITHER THE DIRECTIVE IS NOT A TFSP DIRECTIVE OR IT
  1643. * CANNOT BE ISSUED AT THIS POINT IN THE DIRECTIVE
  1644. * STREAM.
  1645. *
  1646. * INCORRECT FILE IDENTIFIER.
  1647. * AN INCORRECT FILE IDENTIFIER WAS SPECIFIED.
  1648. *
  1649. * INCORRECT SEQUENCE NUMBER.
  1650. * THE SEQUENCE NUMBER SPECIFIED BY THE FILEV DIRECTIVE
  1651. * IS TOO LARGE.
  1652. *
  1653. * NO SCRATCH AVAILABLE.
  1654. * NO MORE SCRATCH TAPES LEFT IN THE SCRATCH POOL.
  1655. * SCRATCH TAPES MUST BE ADDED TO THE TAPE CATALOG
  1656. * BEFORE ANY MORE SCRATCH TAPES CAN BE ASSIGNED.
  1657. *
  1658. * NON-MATCHING STATUSES.
  1659. * THE STATUS OF THE VSN SPECIFIED BY THE AVSN DIRECTIVE
  1660. * DOES NOT MATCH THE STATUS OF THE FIRST VSN OF THE TAPE
  1661. * FILE.
  1662. *
  1663. * NON-MATCHING TAPE TYPE.
  1664. * THE TAPE TYPE OF THE VSN SPECIFIED BY THE AVSN
  1665. * DIRECTIVE EITHER DOES NOT MATCH THE TAPE TYPE IN THE
  1666. * TAPE FILE CATALOG ENTRY, OR DOES NOT MATCH THE TAPE
  1667. * TYPE OF THE FIRST VSN OF THE TAPE FILE.
  1668. *
  1669. * READ DIRECTIVE INCORRECT.
  1670. * AN ATTEMPT WAS MADE TO ISSUE THE READ DIRECTIVE FROM
  1671. * THE FILE BEING READ BY A PREVIOUS READ DIRECTIVE.
  1672. *
  1673. * REQUIRED DATA MISSING.
  1674. * AN ATTEMPT WAS MADE TO RESERVE A TAPE FILE ENTRY
  1675. * WITHOUT A VSN.
  1676. *
  1677. * SYSTEM VSN CANNOT BE USER-OWNED.
  1678. * AN ATTEMPT WAS MADE TO CHANGE THE OWNERSHIP OF A VSN
  1679. * WITH THE SYSTEM VSN FLAG SET FROM *CENTER* TO *USER*;
  1680. * OR AN ATTEMPT WAS MADE TO SET THE SYSTEM VSN FLAG FOR
  1681. * A USER-OWNED VSN.
  1682. *
  1683. * SYSTEM VSN MUST BE FIRST VSN.
  1684. * AN ATTEMPT WAS MADE TO ADD A SYSTEM VSN TO AN EXISTING
  1685. * TAPE FILE ENTRY. A SYSTEM VSN MAY BE THE FIRST VSN OF
  1686. * A TAPE FILE ENTRY, BUT MAY NOT OCCUPY ANY OTHER PLACE
  1687. * IN THE SET.
  1688. *
  1689. * VALIDATED USERS AT MAXIMUM.
  1690. * AN ATTEMPT WAS MADE TO ADD A NINTH VALIDATED USER VIA
  1691. * THE VALIDAT DIRECTIVE.
  1692. *
  1693. * VSN ALREADY ASSIGNED.
  1694. * THE VSN SPECIFIED BY AN REMOVE OR AVSN DIRECTIVE IS
  1695. * ASSIGNED TO A TAPE FILE ENTRY.
  1696. *
  1697. * VSN ALREADY IN CATALOG.
  1698. * AN ATTEMPT WAS MADE TO ISSUE THE ADD DIRECTIVE FOR A
  1699. * VSN THAT HAD ALREADY BEEN ADDED TO THE TAPE CATALOG
  1700. * FILE.
  1701. *
  1702. * VSN BUSY.
  1703. * THE VSN SPECIFIED BY THE VSN OR AVSN DIRECTIVE IS IN
  1704. * USE AND CANNOT BE ACCESSED AT THIS TIME.
  1705. *
  1706. * VSN NOT ADDED TO CATALOG.
  1707. * AN ATTEMPT WAS MADE TO ISSUE THE REVISE DIRECTIVE FOR
  1708. * A VSN THAT HAD NOT YET BEEN ADDED TO THE TAPE CATALOG
  1709. * FILE.
  1710. *
  1711. * VSN NOT ASSIGNED TO FILE.
  1712. * THE VSN SPECIFIED BY THE RELEASE DIRECTIVE IS NOT
  1713. * ASSIGNED TO A TAPE FILE.
  1714. *
  1715. * VSN NOT AVAILABLE.
  1716. * THE VSN SPECIFIED BY THE FILEV DIRECTIVE IS EITHER NOT
  1717. * IN THE TAPE CATALOG OR IS ASSIGNED TO ANOTHER USER.
  1718. *
  1719. * VSN NOT IN CATALOG.
  1720. * THE VSN SPECIFIED BY AN RELEASE OR AVSN DIRECTIVE IS
  1721. * NOT IN THE TAPE CATALOG FILE.
  1722. TITLE SYSTEM EQUIVALENCES AND MACROS FOR MACROS.
  1723. COMMON SPACE 4,10
  1724. ** COMMON DECKS.
  1725.  
  1726.  
  1727. *CALL COMCMAC
  1728. *CALL COMCCMD
  1729. *CALL COMCDCM
  1730. QUAL COMSMTX
  1731. *CALL COMSMTX
  1732. QUAL *
  1733. *CALL COMSPRD
  1734. *CALL COMSSFM
  1735. *CALL COMSSSD
  1736. *CALL COMSSSJ
  1737. *CALL COMSTFM
  1738. SETREG SPACE 4,15
  1739. ** SETREG - SET REGISTER WITH VALUE OR DEFAULT.
  1740. *
  1741. * SETREG REG,VALUE,DEFAULT
  1742. *
  1743. * ENTRY REG = REGISTER TO RECEIVE VALUE OR DEFAULT.
  1744. * VALUE = VALUE SET INTO *REG* IF NOT NULL.
  1745. * DEFAULT = VALUE SET INTO *REG* IF *VALUE* IS NULL.
  1746. *
  1747. * EXIT REGISTER SET TO *VALUE* OR *DEFAULT*.
  1748. *
  1749. * MACROS SETVAL.
  1750.  
  1751.  
  1752. PURGMAC SETREG
  1753.  
  1754. SETREG MACRO RG,VA,DF
  1755. SETVAL ( R= RG,),VA,DF
  1756. ENDM
  1757. SETVAL SPACE 4,10
  1758. ** SETVAL - SET VALUE OR ITS DEFAULT.
  1759. *
  1760. * SETVAL (INST),VALUE,DEFAULT
  1761. *
  1762. * ENTRY INST = FIRST PART OF INSTRUCTION. (INCLUDE SPACES.)
  1763. * VALUE = VALUE FOR *INST* IF NOT NULL.
  1764. * DEFAULT = VALUE FOR *INST* IF *VALUE* IS NULL.
  1765. *
  1766. * EXIT INSTRUCTION SET WITH *VALUE* OR *DEFAULT*.
  1767.  
  1768.  
  1769. PURGMAC SETVAL
  1770.  
  1771. SETVAL MACRO IN,VA,DF
  1772. IFC EQ,$VA$$ IF DEFAULT
  1773. IN_DF
  1774. ELSE IF NOT DEFAULT
  1775. IN_VA
  1776. ENDIF
  1777. ENDM
  1778. TITLE MACROS FOR TABLE GENERATION.
  1779. BITMIC SPACE 4,15
  1780. ** BITMIC - GENERATE SPECIAL CHARACTER BIT STRING MICRO.
  1781. *
  1782. * TAG BITMIC (C1,C2,...,CN)
  1783. *
  1784. * ENTRY CI = SPECIAL CHARACTER (CODE .GE. 45B).
  1785. * = *L* FOR LEFT PARENTHESIS.
  1786. * = *R* FOR RIGHT PARENTHESIS.
  1787. * = *U* FOR UNDERLINE/ARROW.
  1788. *
  1789. * EXIT DECIMAL MICRO *TAG* IS GENERATED. BIT POSITION
  1790. * EQUALING (CHARACTER CODE - 45B) IS SET FOR EACH
  1791. * CHARACTER *CI*. IF *TAG* IS REDEFINED, THE NEW VALUE
  1792. * IS THE LOGICAL DIFFERENCE OF THE OLD VALUE WITH THE
  1793. * NEW BIT STRING. FOR COLON, BIT POSITION 35 IS SET.
  1794.  
  1795.  
  1796. PURGMAC BITMIC
  1797.  
  1798. MACRO BITMIC,TAG,S
  1799. LOCAL A,B,C
  1800. A DECMIC 0
  1801. ECHO ,B=(S)
  1802. .1 IFC EQ,D_B_D_L_D
  1803. C DECMIC 1R(-1R+
  1804. .1 ELSE
  1805. .2 IFC EQ,D_B_D_R_D
  1806. C DECMIC 1R)-1R+
  1807. .2 ELSE
  1808. .3 IFC EQ,D_B_D_U_D
  1809. C DECMIC 65B-1R+
  1810. .3 ELSE
  1811. .4 IFC EQ,D_B_D_:_D
  1812. C DECMIC 100B-1R+
  1813. .4 ELSE
  1814. C DECMIC 1R_B-1R+
  1815. ENDIF
  1816. A DECMIC "A"&1S_"C"
  1817. ENDD
  1818. IF -MIC,TAG
  1819. TAG DECMIC "A"
  1820. ELSE
  1821. TAG DECMIC "TAG"&"A"
  1822. ENDIF
  1823. ENDM
  1824. CATBASE SPACE 4,10
  1825. ** CATBASE - INITIALIZE TABLE FOR *CATBIT* MACRO.
  1826. *
  1827. * NAME CATBASE
  1828. *
  1829. * ENTRY NAME = NAME OF TABLE.
  1830. *
  1831. * EXIT *NAME* DEFINED TO LOCATION COUNTER VALUE.
  1832. * */CATBIT/BASE* SET TO ORIGIN COUNTER.
  1833.  
  1834.  
  1835. PURGMAC CATBASE
  1836.  
  1837. MACRO CATBASE,TAG
  1838. TAG BSS 0
  1839. QUAL CATBIT
  1840. BASE SET *O
  1841. QUAL *
  1842. LOC 0
  1843. ENDM
  1844. CATBIT SPACE 4,25
  1845. ** CATBIT - GENERATE CATALOG ENTRY.
  1846. *
  1847. * NAME CATBIT WORD,UPB,BCOUNT,VALUE1,VALUE2
  1848. *
  1849. * ENTRY NAME = IDENTIFIER TO BE ASSOCIATED WITH CATALOG
  1850. * ENTRY. DEFAULT IN NO IDENTIFIER.
  1851. * WORD = RELATIVE ADDRESS OF ENTRY IN CATALOG. VERIFIED
  1852. * AGAINST ACTUAL ADDRESS. DEFAULT IS NO
  1853. * VERIFICATION.
  1854. * UPPERB = UPPER BIT POSITION OF CATALOG ENTRY.
  1855. * VERIFIED AGAINST ACTUAL BIT POSITION.
  1856. * DEFAULT IS NO VERIFICATION.
  1857. * BCOUNT = BIT COUNT OF CATALOG ENTRY.
  1858. * VALUE1 = VALUE OF CATALOG ENTRY IF *BCOUNT* .LE. 60.
  1859. * VALUE OF FIRST 60 BITS OF CATALOG ENTRY IF
  1860. * *BCOUNT* .GT. 60. DEFAULT IS 0.
  1861. * VALUE2 = VALUE OF REMAINDER OF CATALOG ENTRY IF
  1862. * *BCOUNT* IS .GT. 60.
  1863. *
  1864. * EXIT CATALOG ENTRY GENERATED.
  1865. * */ADD/NAME* DEFINED TO ORIGIN COUNTER.
  1866. * */CAT/NAME* DEFINED TO RELATIVE ADDRESS IN CATALOG.
  1867. * CATALOG.
  1868. * */UPB/NAME* DEFINED TO POSITION COUNTER.
  1869. * */BTC/NAME* DEFINED TO *BCOUNT*.
  1870.  
  1871.  
  1872. PURGMAC CATBIT
  1873.  
  1874. MACRO CATBIT,TAG,WD,UB,BC,V1,V2
  1875. LOCAL A
  1876. IFC NE,$TAG$$ IF *NAME* TO BE DEFINED
  1877. QUAL ADD
  1878. TAG EQU *O
  1879. QUAL *
  1880. QUAL CAT
  1881. TAG EQU *
  1882. QUAL *
  1883. QUAL UPB
  1884. TAG EQU *P-1
  1885. QUAL *
  1886. QUAL BTC
  1887. TAG EQU BC
  1888. QUAL *
  1889. ENDIF
  1890. IFC NE,$WD$$ IF VERIFY RELATIVE ADDRESS
  1891. ERRNZ WD-* INCONSISTENT CATALOG ADDRESS
  1892. ENDIF
  1893. IFC NE,$UB$$ IF VERIFY UPPER BIT
  1894. ERRNZ UB-*P+1 INCONSISTENT BIT POSITION
  1895. ENDIF
  1896. IFLE BC,60 IF BIT COUNT .LE. 60
  1897. A DECMIC BC
  1898. VFD "A"/V1
  1899. ELSE IF BIT COUNT .GT. 60
  1900. A DECMIC BC-60
  1901. VFD 60/V1
  1902. VFD "A"/V2
  1903. ENDIF
  1904. ENDM
  1905. CATEND SPACE 4,10
  1906. ** CATEND - END TABLE FOR CATBIT MACRO.
  1907. *
  1908. * CATEND LENGTH
  1909. *
  1910. * ENTRY LENGTH = TABLE LENGTH TO VERIFY AGAINST ACTUAL LENGTH.
  1911.  
  1912.  
  1913. PURGMAC CATEND
  1914.  
  1915. CATEND MACRO LN
  1916. BSS 0
  1917. ERRNZ LN-* INCONSISTENT TABLE LENGTH
  1918. LOC *O
  1919. ENDM
  1920. DCTAB SPACE 4,45
  1921. ** DCTAB - GENERATE DIRECTIVE CONTROL TABLE.
  1922. *
  1923. * NAME DCTAB IND,MNC,MXC,AC,SC,UB,BC,PRO,ENT,MNV,MXV,DEF
  1924. *
  1925. * ENTRY NAME = LABEL ASSOCIATED WITH DIRECTIVE.
  1926. * IND = *DIP* PROCESSOR INDEX.
  1927. * PIZF - ZERO FILL.
  1928. * PIBF - BLANK FILL.
  1929. * PIOP - OPTION SELECTION.
  1930. * PIBD - NUMERIC BINARY DATA.
  1931. * PIPD - PACKED DATE.
  1932. * PIPT - PACKED TIME.
  1933. * PIJD - JULIAN DATE.
  1934. * PIVQ - VSN/SEQUENCE NUMBER.
  1935. * PIVS - PADDED VSN.
  1936. * MNC = MINIMUM NUMBER OF CHARACTERS.
  1937. * MXC = MAXIMUM NUMBER OF CHARACTERS.
  1938. * AC = ADDRESS OF ALLOWED CHARACTERS BIT STRING.
  1939. * DEFAULT IS ="NC".
  1940. * SC = ADDRESS OF SUPPRESSED CHARACTERS BIT STRING.
  1941. * DEFAULT IS ="BL".
  1942. * UB = UPPER BIT POSITION OF CATALOG ENTRY.
  1943. * DEFAULT IS /UPB/NAME.
  1944. * BC = BIT COUNT OF CATALOG ENTRY.
  1945. * = 0 IF NO CATALOG ENTRY.
  1946. * DEFAULT IS /BTC/NAME.
  1947. * PRO = POST PROCESSOR ADDRESS.
  1948. * DEFAULT IS 0 - NO POST PROCESSOR.
  1949. * ENT = ADDRESS OF CATALOG ENTRY.
  1950. * DEFAULT IS */ADD/NAME*.
  1951. * MNV = ADDRESS OF MINIMUM VALUE FOR *PIBD* TYPE.
  1952. * MXV = ADDRESS OF MAXIMUM VALUE FOR *PIBD* TYPE.
  1953. * = ADDRESS OF OPTION TABLE FOR *PIOP* TYPE.
  1954. * DEFAULT FOR *PIOP* TYPE IS /DOTAB/NAME.
  1955. * DEF = ADDRESS OF DEFAULT VALUE.
  1956. * DEFAULT FOR *PIOP* TYPE IS /DOTAB/NAME.
  1957. *
  1958. * EXIT LABEL /DCTAB/NAME IS GENERATED.
  1959. * MICROS *POP*, *MNV*, *MXV*, AND *DEF* DEFINED
  1960. * FOR *DCTABO*.
  1961. * FIRST THREE WORDS OF TABLE ARE GENERATED.
  1962. * 12/IND,6/MNC,6/MXC,18/AC,18/SC
  1963. * 12/UB,12/BC,18/PRO,18/ENT
  1964. * 6/,18/MNV,18/MXV,18/DEF
  1965. *
  1966. * NOTES THE *DCTAB* MACRO MUST BE FOLLOWED BY A *DCTABL*
  1967. * MACRO.
  1968.  
  1969.  
  1970. PURGMAC DCTAB
  1971.  
  1972. MACRO DCTAB,TAG,IN,MC,XC,AC,SC,UB,BC,PR,EN,MV,XV,DF
  1973. LOCAL A
  1974.  
  1975. * SET FIRST WORD.
  1976.  
  1977. A VFD 12/IN,6/MC,6/XC
  1978. SETVAL ( VFD 18/),AC,(="NC")
  1979. SETVAL ( VFD 18/),SC,(="BL")
  1980.  
  1981. * DEFINE *NAME*.
  1982.  
  1983. QUAL DCTAB
  1984. TAG EQU A
  1985. QUAL *
  1986.  
  1987. * SET SECOND WORD.
  1988.  
  1989. IF -DEF,/UPB/TAG IF NO DEFAULTS
  1990. VFD 12/UB,12/BC,18/PR,18/EN
  1991. ELSE IF DEFAULTS
  1992. SETVAL ( VFD 12/),UB,/UPB/TAG
  1993. SETVAL ( VFD 12/),BC,/BTC/TAG
  1994. VFD 18/PR
  1995. SETVAL ( VFD 18/),EN,/ADD/TAG
  1996. ENDIF
  1997.  
  1998. * SET MICROS FOR *DCTABO*.
  1999.  
  2000. POP MICRO 1,, IN
  2001. SETVAL ( MNV MICRO 1,, ),(MV),0
  2002. IFC NE,$IN$PIOP$ IF NOT OPTION TYPE
  2003. SETVAL ( MXV MICRO 1,, ),(XV),0
  2004. SETVAL ( DEF MICRO 1,, ),(DF),0
  2005. ELSE IF OPTION TYPE
  2006. SETVAL ( MXV MICRO 1,, ),(XV),/DOTAB/TAG
  2007. SETVAL ( DEF MICRO 1,, ),(DF),/DOTAB/TAG
  2008. ENDIF
  2009.  
  2010. * SET CHECK FOR THIRD WORD.
  2011.  
  2012. DCTRMT RMT
  2013. ERRNZ /DCTAB/TAG+2-* NO *DCTABL* FOR TAG
  2014. DCTRMT RMT
  2015. ENDM
  2016. DCTABL SPACE 4,20
  2017. ** DCTABL - GENERATE DIRECTIVE LEVEL CONTROL TABLE.
  2018. *
  2019. * NAME DCTABL PVL,DVL
  2020. *
  2021. * ENTRY NAME = LABEL ASSOCIATED WITH DIRECTIVE.
  2022. * PVL = FLAG FOR IMPLIED DROP REQUIREMENT.
  2023. * = 0 IF DIRECTIVE REQUIRES NO IMPLIED DROP.
  2024. * = 1 IF DIRECTIVE REQUIRES IMPLIED DROP.
  2025. * DVL = FLAG FOR LOWER LEVEL VALIDITY.
  2026. * = 0 IF VALID FROM LOWER LEVEL.
  2027. * = 1 IF NOT VALID FROM ANOTHER LEVEL.
  2028. * MICROS *POP*, *MNV*, *MXV*, AND *DEF* DEFINED
  2029. * BY *DCTAB*.
  2030. *
  2031. * EXIT WORD 2 OF DIRECTIVE CONTROL TABLE REGENERATED.
  2032. * 1/,1/PVL,1/DVL,3/,18/MNV,18/MXV,18/DEF
  2033.  
  2034.  
  2035. PURGMAC DCTABL
  2036.  
  2037. MACRO DCTABL,TAG,PV,DV
  2038.  
  2039. * SET MICROS FOR *DCTABO*.
  2040.  
  2041. SETVAL ( PVL MICRO 1,, ),(PV),0
  2042. SETVAL ( DVL MICRO 1,, ),(DV),0
  2043.  
  2044. * SET THIRD WORD.
  2045.  
  2046. DCTRMT HERE
  2047. VFD 1/,1/"PVL",1/"DVL",3/,18/"MNV",18/"MXV",18/"DEF"
  2048. ENDM
  2049. DCTABO SPACE 4,40
  2050. ** DCTABO - GENERATE DIRECTIVE CONTROL TABLE OUTPUT BLOCK.
  2051. *
  2052. * NAME DCTABO KCH,KUB,KADD,ACH,AUB,AADD,SCH,SUB,SADD,MCH,MUB,MADD
  2053. *
  2054. * ENTRY NAME = DIRECTIVE IDENTIFIER.
  2055. * KCH = NUMBER OF CHARACTERS IN K-DISPLAY.
  2056. * DEFAULT IS 10.
  2057. * KUB = UPPER BIT POSITION IN K-DISPLAY.
  2058. * DEFAULT IS 5.
  2059. * KADD = ADDRESS IN K-DISPLAY.
  2060. * DEFAULT IS */KDIS/NAME*.
  2061. * ACH = NUMBER OF CHARACTERS IN AUDIT LISTING.
  2062. * DEFAULT IS */ALSC/NAME*.
  2063. * AUB = UPPER BIT POSITION IN AUDIT LISTING.
  2064. * DEFAULT IS */ALSU/NAME*.
  2065. * AADD = ADDRESS IN AUDIT LISTING.
  2066. * DEFAULT IS */ALS/NAME*.
  2067. * SCH = NUMBER OF CHARACTERS IN SOURCE LISTING.
  2068. * DEFAULT IS */SLSC/NAME*.
  2069. * SUB = UPPER BIT POSITION IN SOURCE LISTING.
  2070. * DEFAULT IS */SLSU/NAME*.
  2071. * SADD = ADDRESS IN SOURCE LISTING.
  2072. * DEFAULT IS */SLS/NAME*.
  2073. * MCH = NUMBER OF CHARACTERS IN MACHINE READABLE LIST.
  2074. * DEFAULT IS */MLSC/NAME*.
  2075. * MUB = UPPER BIT POSITION IN MACHINE READABLE LISTING.
  2076. * DEFAULT IS */MLSU/NAME*.
  2077. * MADD = ADDRESS IN MACHINE READABLE LISTING.
  2078. * DEFAULT IS */MSL/NAME*.
  2079. * MICROS *POP*, *MNV*, *MXV*, *DEF*, *PVL*,
  2080. * AND *DVL* DEFINED BY *DCTABL* AND
  2081. * BY *DCTAB*.
  2082. *
  2083. * EXIT OUTPUT BLOCK FLAG SET IN DIRECTIVE CONTROL TABLE.
  2084. * TWO WORD BLOCK GENERATED.
  2085. * 6/KCH,6/KUB,18/KADD,6/ACH,6/AUB,18/AADD
  2086. * 6/SCH,6/SUB,18/SADD,6/MCH,6/MUB,18/MADD
  2087.  
  2088.  
  2089. PURGMAC DCTABO
  2090.  
  2091. MACRO DCTABO,TAG,KC,KU,KA,AC,AU,AA,SC,SU,SA,MC,MU,MA
  2092. LOCAL A,B
  2093.  
  2094. * SET OUTPUT BLOCK FLAG IN DIRECTIVE CONTROL TABLE.
  2095.  
  2096. A SET *O
  2097. B SET *
  2098. ORG /DCTAB/TAG+2
  2099. VFD 1/1,1/"PVL",1/"DVL",3/,18/"MNV",18/"MXV",18/"DEF"
  2100. ORG A
  2101. LOC B
  2102.  
  2103. * SET OUTPUT BLOCK VALUES.
  2104.  
  2105. IFC EQ,$"POP"$PIBD$ IF BINARY DATA TYPE
  2106. A SET -1
  2107. ELSE IF NOT BINARY DATA TYPE
  2108. A SET 1
  2109. ENDIF
  2110. SETVAL ( VFD 6/),KC,10
  2111. SETVAL ( VFD 6/),KU,5
  2112. SETVAL ( VFD 18/),KA,(/KDIS/TAG)
  2113. SETVAL ( VFD 6/),AC,(/ALSC/TAG*A)
  2114. SETVAL ( VFD 6/),AU,(/ALSU/TAG)
  2115. SETVAL ( VFD 18/),AA,(/ALS/TAG)
  2116. SETVAL ( VFD 6/),SC,(/SLSC/TAG*A)
  2117. SETVAL ( VFD 6/),SU,(/SLSU/TAG)
  2118. SETVAL ( VFD 18/),SA,(/SLS/TAG)
  2119. SETVAL ( VFD 6/),MC,(/MLSC/TAG*A)
  2120. SETVAL ( VFD 6/),MU,(/MLSU/TAG)
  2121. SETVAL ( VFD 18/),MA,(/MLS/TAG)
  2122. ENDM
  2123. DOTAB SPACE 4,15
  2124. ** DOTAB - GENERATE DIRECTIVE OPTION TABLE.
  2125. *
  2126. * NAME DOTAB ((OP1,VAL1),(OP2,VAL2),...,(OPN,VALN))
  2127. *
  2128. * ENTRY NAME = LABEL ASSOCIATED WITH DIRECTIVE.
  2129. * OPI = DIRECTIVE OPTION.
  2130. * VALI = VALUE ASSOCIATED WITH OPTION *OPI*.
  2131. *
  2132. * EXIT LABEL /DOTAB/NAME IS GENERATED.
  2133. * TWO WORD BLOCK FOR EACH OPTION IS GENERATED.
  2134. * 60/0L*OPI*
  2135. * 60/*VALI*
  2136. * TABLE IS TERMINATED BY A ZERO WORD.
  2137.  
  2138.  
  2139. PURGMAC DOTAB
  2140.  
  2141. MACRO DOTAB,TAG,ST
  2142. LOCAL A,B,DOENT
  2143.  
  2144. * DEFINE MACRO FOR TABLE GENERATION.
  2145. * DOENT OPTION,VALUE
  2146.  
  2147. DOENT MACRO OP,VA
  2148. VFD 60/0L_OP
  2149. VFD 60/VA
  2150. DOENT ENDM
  2151.  
  2152. * GENERATE TABLE.
  2153.  
  2154. A SET *
  2155. ECHO ,B=(ST)
  2156. DOENT B
  2157. ENDD
  2158. CON 0
  2159.  
  2160. * DEFINE *NAME*.
  2161.  
  2162. QUAL DOTAB
  2163. TAG EQU A
  2164. QUAL *
  2165. ENDM
  2166. DTAB SPACE 4,15
  2167. ** DTAB - GENERATE DIRECTIVE TABLE ENTRY.
  2168. *
  2169. * NAME DTAB IDENT,ADDR
  2170. *
  2171. * ENTRY NAME = IF SPECIFIED, LABEL */DTAB/NAME* IS DEFINED.
  2172. * IDENT = DIRECTIVE IDENTIFIER.
  2173. * ADDR = PROCESSOR/CONTROL TABLE ADDRESS.
  2174. * DEFAULT IS */DCTAB/NAME*.
  2175. *
  2176. * EXIT ONE WORD ENTRY GENERATED.
  2177. * 42/*IDENT*,18/ADDR
  2178.  
  2179.  
  2180. PURGMAC DTAB
  2181.  
  2182. MACRO DTAB,TAG,ID,AD
  2183. LOCAL A
  2184. A VFD 42/0L_ID
  2185. SETVAL ( VFD 18/),AD,(/DCTAB/ID)
  2186. IFC NE,$TAG$$ IF DEFINE *NAME*
  2187. QUAL DTAB
  2188. TAG EQU A
  2189. QUAL *
  2190. ENDIF
  2191. ENDM
  2192. INDEX SPACE 4,15
  2193. ** INDEX - GENERATE INDEXED TABLE ENTRY.
  2194. *
  2195. * INDEX IND,OP,ADD
  2196. *
  2197. * ENTRY IND = INDEX VALUE.
  2198. * OP = OPERATION FIELD OF TABLE ENTRY.
  2199. * ADD = ADDRESS FIELD OF TABLE ENTRY.
  2200. * LABELS /INDEX/NAME AND /INDEX/LENGTH DEFINED BY THE
  2201. * *INDTAB* MACRO.
  2202. *
  2203. * EXIT TABLE ENTRY GENERATED.
  2204.  
  2205.  
  2206. PURGMAC INDEX
  2207.  
  2208. INDEX MACRO IN,OP,AD
  2209. LOCAL A
  2210. A SET *O
  2211. ORG /INDEX/NAME+/INDEX/LENGTH*IN
  2212. LOC IN
  2213. OP AD
  2214. ORG A+/INDEX/LENGTH
  2215. LOC *O
  2216. ENDM
  2217. INDTAB SPACE 4,10
  2218. ** INDTAB - DEFINE START OF INDEXED TABLE.
  2219. *
  2220. * NAME INDTAB LENGTH
  2221. *
  2222. * ENTRY NAME = NAME OF INDEXED TABLE.
  2223. * LENGTH = LENGTH OF INDEXED TABLE ENTRY.
  2224. *
  2225. * EXIT LABELS /INDEX/NAME AND /INDEX/LENGTH DEFINED FOR USE
  2226. * BY THE *INDEX* MACRO.
  2227.  
  2228.  
  2229. PURGMAC INDTAB
  2230.  
  2231. MACRO INDTAB,TAG,LN
  2232. TAG BSS 0
  2233. QUAL INDEX
  2234. NAME SET TAG
  2235. LENGTH SET LN
  2236. QUAL *
  2237. ENDM
  2238. KEND SPACE 4,10
  2239. ** KEND - END K-DISPLAY.
  2240. *
  2241. * KEND
  2242. *
  2243. * EXIT QUALIFIED LABELS *NEXT*, *LENGTH*, AND *LINES*
  2244. * DEFINED FOR K-DISPLAY TABLE.
  2245.  
  2246.  
  2247. PURGMAC KEND
  2248.  
  2249. KEND MACRO
  2250. NEXT EQU *
  2251. LENGTH EQU NEXT-START
  2252. LINES EQU "KLINES"
  2253. QUAL *
  2254. CON 0
  2255. ENDM
  2256. KLINE SPACE 4,10
  2257. ** KLINE - GENERATE K-DISPLAY LINE.
  2258. *
  2259. * KLINE (STRING),E,CPL
  2260. *
  2261. * ENTRY STRING = CHARACTER STRING TO DISPLAY.
  2262. * E = END-OF-LINE GENERATED IF SPECIFIED.
  2263. * CPL = MAXIMUM NUMBER OF CHARACTERS PER LINE.
  2264. * DEFAULT IS 60.
  2265. * MICROS *KLINEC* AND *KLINES* PREVIOUSLY DEFINED.
  2266. *
  2267. * EXIT DISPLAY LINE GENERATED.
  2268. * MICROS *KLINEC* AND *KLINES* INCREMENTED.
  2269.  
  2270.  
  2271. PURGMAC KLINE
  2272.  
  2273. KLINE MACRO ST,EL,CC
  2274. LOCAL A,B
  2275. .1 IFC EQ,$EL$$ IF NOT END OF LINE
  2276. DATA H$ST$
  2277. .1 ELSE IF END OF LINE
  2278. DATA C$ST$
  2279. .2 IF MIC,KLINES IF *KLINES* PREVIOUSLY DEFINED
  2280. KLINES DECMIC "KLINES"+1
  2281. ENDIF
  2282. A MICRO 1,,$ST$
  2283. B MICCNT A
  2284. IF -MIC,KLINEC IF *KLINEC* NOT PREVIOUSLY DEFINED
  2285. KLINEC DECMIC 0
  2286. ENDIF
  2287. KLINEC DECMIC "KLINEC"+B
  2288. .1 IFC NE,$CC$$
  2289. ERRNG CC-"KLINEC" K-DISPLAY LINE TOO LONG
  2290. .1 ELSE
  2291. .2 IFC NE,$EL$$
  2292. ERRNG 60-"KLINEC" K-DISPLAY LINE TOO LONG
  2293. ENDIF
  2294. IFC NE,$EL$$ IF END OF LINE
  2295. KLINEC DECMIC 0
  2296. ENDIF
  2297. ENDM
  2298. KNEXT SPACE 4,15
  2299. ** KNEXT - GENERATE POINTER TO REST OF K-DISPLAY.
  2300. *
  2301. * KNEXT NDISP,NOLAB
  2302. *
  2303. * ENTRY NDISP = ADDRESS OF REST OF K-DISPLAY.
  2304. * NOLAB = IF SPECIFIED, LABELS *NEXT*, *LENGTH*, AND
  2305. * *LINES* ARE NOT DEFINED.
  2306. *
  2307. * EXIT ONE WORD GENERATED TO POINT TO REST OF K-DISPLAY.
  2308. * 12/7777B,30/,18/NDISP
  2309. * LABEL *NEXT* DEFINED AT CURRENT LOCATION.
  2310. * LABEL *LENGTH* DEFINED EQUAL TO *NEXT-START*.
  2311. * LABEL *LINES* SET TO MICRO *KLINES*.
  2312.  
  2313.  
  2314. PURGMAC KNEXT
  2315.  
  2316. KNEXT MACRO ND,NL
  2317. LOCAL A
  2318. A EQU *
  2319. VFD 12/7777B,30/,18//ND/START
  2320. IFC EQ,$NL$$ IF NOT *NOLAB*
  2321. NEXT EQU A
  2322. LENGTH EQU NEXT-START
  2323. LINES EQU "KLINES"
  2324. QUAL *
  2325. ENDIF
  2326. ENDM
  2327. KSTART SPACE 4,15
  2328. ** KSTART - START K-DISPLAY BUFFER.
  2329. *
  2330. * NAME KSTART CW
  2331. *
  2332. * ENTRY NAME = NAME ASSIGNED TO K-DISPLAY BUFFER.
  2333. * CW = IF SPECIFIED, A CONTROL WORD SPECIFYING 64
  2334. * CHARACTERS PER LINE AND CODED FORMAT IS
  2335. * GENERATED.
  2336. *
  2337. * EXIT LABEL *NAME* DEFINED AT CURRENT LOCATION.
  2338. * CONTROL WORD IS GENERATED.
  2339. * 10/0,1/0,1/1,47/0,1/0 IF *CW*.
  2340. * 42/,18//NAME/LENGTH IF NOT *CW*.
  2341. * LABEL */NAME/START* DEFINED AFTER CONTROL WORD.
  2342. * *NAME* SET AS QUALIFIER.
  2343. * MICRO *KLINES* INITIALIZED.
  2344.  
  2345.  
  2346. PURGMAC KSTART
  2347.  
  2348. MACRO KSTART,TAG,CW
  2349. IFC EQ,$CW$$ IF NOT *CW*
  2350. TAG VFD 42/,18//TAG/LENGTH
  2351. ELSE IF *CW*
  2352. TAG VFD 10/0,1/0,1/1,47/0,1/0
  2353. ENDIF
  2354. QUAL TAG
  2355. START BSS 0
  2356. KLINES DECMIC 0
  2357. ENDM
  2358. LISTER SPACE 4,25
  2359. ** LISTER - GENERATE OUTPUT/SOURCE LISTING ENTRY.
  2360. *
  2361. * NAME LISTER QUAL,CHAR,STRING,E,CPL
  2362. *
  2363. * ENTRY NAME = IF SPECIFIED, THREE LABELS ARE DEFINED -
  2364. * /"LQUAL"/NAME - ADDRESS OF LISTING ENTRY.
  2365. * /"LQUAL"U/NAME - UPPER BIT OF LISTING ENTRY.
  2366. * /"LQUAL"C/NAME - BIT COUNT OF LISTING ENTRY.
  2367. * QUAL = IF SPECIFIED, MICRO *LQUAL* IS SET TO *QUAL*.
  2368. * MUST BE LESS THAN 8 CHARACTERS.
  2369. * CHAR = NUMBER OF CHARACTERS IN LISTING ENTRY.
  2370. * STRING = CHARACTERS OF LISTING ENTRY.
  2371. * DEFAULT IS BLANKS.
  2372. * E = IF SPECIFIED, END OF LINE IS GENERATED.
  2373. * CPL = MAXIMUM NUMBER OF CHARACTERS PER LINE.
  2374. * DEFAULT IS UNLIMITED.
  2375. * MICRO *LISTERC* SET TO NUMBER OF CHARACTERS IN LINE.
  2376. *
  2377. * EXIT LISTING ENTRY GENERATED.
  2378. * THREE LABELS DEFINED.
  2379. * MICRO *LQUAL* REDEFINED.
  2380. * MICRO *LISTERC* INCREMENTED.
  2381.  
  2382.  
  2383. PURGMAC LISTER
  2384.  
  2385. MACRO LISTER,TAG,LQ,CH,ST,EN,CC
  2386. LOCAL A,B,D,E,F,G,I,J
  2387. A EQU *O
  2388. B EQU *P-1
  2389. D DECMIC CH
  2390. E MICRO 1,,$ST$
  2391. F SET CH-1
  2392. F SET F/10
  2393. DUP F
  2394. D DECMIC "D"-10
  2395. G MICRO 1,10,$"E"$
  2396. E MICRO 11,,$"E"$
  2397. VFD 60/10H"G"
  2398. ENDD
  2399. I DECMIC "D"*6
  2400. VFD "I"/"D"H"E"
  2401. .1 IFC NE,$EN$$ IF END OF LINE
  2402. J DECMIC *P
  2403. VFD "J"/0
  2404. .2 IFLT "J",12 IF MORE ZEROS NEEDED
  2405. VFD 60/0
  2406. ENDIF
  2407. IFC NE,$LQ$$ IF QUALIFIER SPECIFIED
  2408. LQUAL MICRO 1,, LQ
  2409. LISTERC DECMIC CH
  2410. ELSE IF NO QUALIFIER
  2411. LISTERC DECMIC "LISTERC"+CH
  2412. ENDIF
  2413. IFC NE,$TAG$$ IF *NAME* SPECIFIED
  2414. QUAL "LQUAL"
  2415. TAG EQU A
  2416. QUAL *
  2417. QUAL "LQUAL"U
  2418. TAG EQU B
  2419. QUAL *
  2420. QUAL "LQUAL"C
  2421. TAG EQU CH
  2422. QUAL *
  2423. ENDIF
  2424. IFC NE,$CC$$ IF MAXIMUM NUMBER OF CHARACTERS SPECIFIED
  2425. ERRNG CC-"LISTERC" LIST LINE TOO LONG
  2426. ENDIF
  2427. IFC NE,$EN$$ IF END OF LINE
  2428. LISTERC DECMIC 0
  2429. ENDIF
  2430. ENDM
  2431. REWORD SPACE 4,10
  2432. ** REWORD - RESET VALUE IN PREVIOUSLY DEFINED WORD.
  2433. *
  2434. * REWORD ADDR,(VALUE)
  2435. *
  2436. * ENTRY ADDR = ADDRESS OF WORD TO BE RESET.
  2437. * VALUE = NEW VALUE OF WORD IN *VFD* BIT FORMAT.
  2438. *
  2439. * EXIT (ADDR) = VALUE.
  2440.  
  2441.  
  2442. PURGMAC REWORD
  2443.  
  2444. REWORD MACRO AD,VA
  2445. LOCAL A,B
  2446. A SET *
  2447. B SET *O
  2448. ORG AD
  2449. VFD VA
  2450. ORG B
  2451. LOC A
  2452. ENDM
  2453. TITLE MACROS FOR EXECUTABLE CODE.
  2454. ABTMSG SPACE 4,15
  2455. ** ABTMSG - ABORT WITH ERROR MESSAGE
  2456. *
  2457. * ABTMSG EADD,NA
  2458. *
  2459. * ENTRY EADD = ERROR MESSAGE ADDRESS. (USES A6, X6.)
  2460. * IF NOT SPECIFIED, ADDRESS IS NOT CHANGED.
  2461. *
  2462. * NA = IF SPECIFIED, NO JUMP TO *ABT*.
  2463. *
  2464. * EXIT *TFSP* ABORTED. ERROR MESSAGE ISSUED TO DAYFILE.
  2465. *
  2466. * USES A - 6.
  2467. * X - 6.
  2468. *
  2469. * CALLS ABT.
  2470.  
  2471.  
  2472. PURGMAC ABTMSG
  2473.  
  2474. ABTMSG MACRO EA,NA
  2475. MACREF ABTMSG
  2476. IFC NE,$EA$$ IF SET ERROR MESSAGE ADDRESS
  2477. R= X6,EA
  2478. R= A6,EM
  2479. ENDIF
  2480. IFC EQ,$NA$$ IF ABORT *TFSP*
  2481. EQ //ABT ABORT *TFSP*
  2482. ENDIF
  2483. ENDM
  2484. CALLTFM SPACE 4,15
  2485. ** CALLTFM - CALL *TFM*.
  2486. *
  2487. * CALLTFM FET,REQ
  2488. *
  2489. * ENTRY FET = FET ADDRESS. (USES X2.)
  2490. * REQ = FUNCTION CODE IF NO INTERLOCK.
  2491. * = (-1)*FUNCTION CODE IF INTERLOCK. (USES X6.)
  2492. *
  2493. * EXIT (X2) = FET ADDRESS.
  2494. * (X4) = ERROR CODE.
  2495. * TO *ABT* IF UNRECOGNIZABLE ERROR CODE.
  2496. *
  2497. * USES X - 6.
  2498. *
  2499. * CALLS CTF.
  2500.  
  2501.  
  2502. PURGMAC CALLTFM
  2503.  
  2504. CALLTFM MACRO FT,RQ
  2505. MACREF CALLTFM
  2506. R= X6,RQ SET FUNCTION CODE
  2507. R= X2,FT SET FET ADDRESS
  2508. RJ //CTF CALL *TFM*
  2509. ENDM
  2510. CHKFIL SPACE 4,10
  2511. ** CHKFIL - CHECK IF FILE IS READY.
  2512. *
  2513. * CHKFIL FET
  2514. *
  2515. * ENTRY FET = FET ADDRESS OF FILE. (USES X2.)
  2516. *
  2517. * EXIT (X1) = 0 IF NO FILE NAME.
  2518. * (X2) = FET ADDRESS.
  2519. *
  2520. * CALLS CFR.
  2521.  
  2522.  
  2523. PURGMAC CHKFIL
  2524.  
  2525. CHKFIL MACRO FT
  2526. MACREF CHKFIL
  2527. R= X2,FT
  2528. RJ //CFR CHECK IF FILE IS READY
  2529. ENDM
  2530. CLEAR SPACE 4,15
  2531. ** CLEAR - CLEAR BUFFER.
  2532. *
  2533. * CLEAR BUF,LEN
  2534. *
  2535. * ENTRY BUF = ADDRESS OF BUFFER. (USES B6.)
  2536. * LEN = LENGTH OF BUFFER.
  2537. *
  2538. * EXIT (B6) = BUFFER ADDRESS.
  2539. * WORDS IN BUFFER SET TO ZERO.
  2540. *
  2541. * USES A - 6.
  2542. * B - 7.
  2543. * X - 6.
  2544.  
  2545.  
  2546. PURGMAC CLEAR
  2547.  
  2548. CLEAR MACRO BF,LN
  2549. LOCAL A,B
  2550. MACREF CLEAR
  2551. R= B6,BF
  2552. R= B7,LN
  2553. R= X6,0
  2554. A SB7 B7-B1
  2555. NG B7,B IF END OF BUFFER
  2556. SA6 B6+B7 CLEAR WORD IN BUFFER
  2557. EQ A CHECK NEXT WORD
  2558. B BSS 0 EXIT
  2559. ENDM
  2560. CLINES SPACE 4,15
  2561. ** CLINES - COUNT LINES IN BUFFER.
  2562. *
  2563. * CLINES BUF,WC
  2564. *
  2565. * ENTRY BUF = BUFFER ADDRESS. (USES A1, X1.)
  2566. * WC = WORD COUNT OF BUFFER. (USES B6.)
  2567. *
  2568. * EXIT (A1) = LWA+1 OF BUFFER.
  2569. * (B6) = WORD COUNT OF BUFFER.
  2570. * (B7) = LINE COUNT OF BUFFER.
  2571. *
  2572. * USES B - 2.
  2573. * X - 1.
  2574. *
  2575. * CALLS CWL.
  2576.  
  2577.  
  2578. PURGMAC CLINES
  2579.  
  2580. CLINES MACRO BF,WC
  2581. MACREF CLINES
  2582. R= A1,BF
  2583. R= B6,WC
  2584. R= B2,0
  2585. RJ CWL COUNT WORDS/LINES IN BUFFER
  2586. ENDM
  2587. CWORDS SPACE 4,15
  2588. ** CWORDS - COUNT WORDS IN BUFFER.
  2589. *
  2590. * CWORDS BUF,LC
  2591. *
  2592. * ENTRY BUF = BUFFER ADDRESS. (USES A1, X1.)
  2593. * LC = LINE COUNT OF BUFFER. (USES B7.)
  2594. *
  2595. * EXIT (A1) = LWA+1 OF BUFFER.
  2596. * (B6) = WORD COUNT OF BUFFER.
  2597. * (B7) = LINE COUNT OF BUFFER.
  2598. *
  2599. * USES B - 2.
  2600. * X - 1.
  2601. *
  2602. * CALLS CWL.
  2603.  
  2604.  
  2605. PURGMAC CWORDS
  2606.  
  2607. CWORDS MACRO BF,LC
  2608. MACREF CWORDS
  2609. R= A1,BF
  2610. R= B7,LC
  2611. R= B2,1
  2612. RJ CWL COUNT WORDS/LINES IN BUFFER
  2613. ENDM
  2614. DELVSN SPACE 4,15
  2615. ** DELVSN - DELETE VSN ENTRIES.
  2616. *
  2617. * DELVSN VBUF,VLEN
  2618. *
  2619. * ENTRY VBUF = ADDRESS OF VSN BUFFER. (USES B6.)
  2620. * VLEN = LENGTH OF VSN BUFFER. (USES B7.)
  2621. *
  2622. * EXIT (X4) = 0 IF DELETE COMPLETE.
  2623. * .NE. 0 IF A VSN IS ASSIGNED.
  2624. *
  2625. * USES B - 6, 7.
  2626. *
  2627. * CALLS DVS.
  2628.  
  2629.  
  2630. PURGMAC DELVSN
  2631.  
  2632. DELVSN MACRO VB,VL
  2633. MACREF DELVSN
  2634. R= B6,VB
  2635. R= B7,VL
  2636. RJ //DVS DELETE VSN ENTRIES
  2637. ENDM
  2638. DISLIS SPACE 4,25
  2639. ** DISLIS - DISPLAY LIST OF ENTRIES.
  2640. *
  2641. * DISLIS LADD,DADD,LLEN,BCE,BCB,EPL
  2642. *
  2643. * ENTRY LADD = LIST ADDRESS. (USES A1, X1.)
  2644. * DADD = DISPLAY ADDRESS. (USES A2, X2.)
  2645. * LLEN = LIST LENGTH.
  2646. * .LT.0 IF ZERO WORD TERMINATED.
  2647. * DEFAULT IS -1. (USES B3.)
  2648. * BCE = BIT COUNT OF ENTRY. MAXIMUM IS 120.
  2649. * DEFAULT IS 60. (USES B4.)
  2650. * BCB = BIT COUNT BETWEEN ENTRIES. MAXIMUM IS 60.
  2651. * DEFAULT IS 6. (USES B6.)
  2652. * EPL = NUMBER OF ENTRIES PER DISPLAY LINE.
  2653. * DEFAULT IS 5. (USES X7.)
  2654. * (X6) = IMAGE TO SET BETWEEN ENTRIES, RIGHT JUSTIFIED.
  2655. *
  2656. * EXIT (A1) = LWA+1 OF LIST.
  2657. * (A2) = LWA+1 OF DISPLAY.
  2658. * (X3) = LAST BIT POSITION - 1 OF DISPLAY.
  2659. *
  2660. * USES B - 3, 4, 6.
  2661. * X - 1, 2, 7.
  2662. *
  2663. * CALLS TLD.
  2664.  
  2665.  
  2666. PURGMAC DISLIS
  2667.  
  2668. DISLIS MACRO LA,DA,LL,BE,BB,EP
  2669. MACREF DISLIS
  2670. R= A1,LA
  2671. R= A2,DA
  2672. SETREG B3,LL,(-1)
  2673. SETREG B4,BE,60
  2674. SETREG B6,BB,6
  2675. SETREG X7,EP,5
  2676. RJ TLD PROCESS TABLE LIST TO DISPLAY.
  2677. ENDM
  2678. GFILE SPACE 4,25
  2679. ** GFILE - GET FILE CATALOG VIA FILE IDENTIFIER.
  2680. *
  2681. * GFILE UADD,FADD,FBUF,PBUF,VBUF,NV
  2682. *
  2683. * ENTRY UADD = ADDRESS OF USER NAME. (USES A1, X1.)
  2684. * FADD = ADDRESS OF FILE ID. (USES A2, A3, X2, X3.)
  2685. * FBUF = ADDRESS OF FILE CATALOG BUFFER. (USES B6.)
  2686. * PBUF = ADDRESS OF PREVIOUS FILE BUFFER. (USES B7.)
  2687. * VBUF = ADDRESS OF VSN BUFFER. (USES B2.)
  2688. * NV = 0 IF VERIFY FILE STATUS.
  2689. * .NE. 0 IF ASSUME FILE NOT FOUND.
  2690. * DEFAULT IS 0. (USES B4.)
  2691. *
  2692. * EXIT (X4) = 0 IF FILE FOUND.
  2693. * .NE. 0 IF FILE NOT FOUND. DEFAULT SET IN BUFFER.
  2694. * (X6) = FILE CATALOG RANDOM ADDRESS.
  2695. * (X7) = PREVIOUS FILE RANDOM ADDRESS.
  2696. * (B6) = FILE COUNT.
  2697. * (B7) = VSN COUNT.
  2698. *
  2699. * USES A - 1, 2, 3.
  2700. * B - 2, 4.
  2701. * X - 1, 2, 3.
  2702. *
  2703. * CALLS GFI.
  2704.  
  2705.  
  2706. PURGMAC GFILE
  2707.  
  2708. GFILE MACRO UA,FA,FB,PB,VB,NV
  2709. MACREF GFILE
  2710. R= A1,UA
  2711. R= A2,FA
  2712. R= A3,A2+B1
  2713. R= B6,FB
  2714. R= B7,PB
  2715. R= B2,VB
  2716. SETREG B4,NV,0
  2717. RJ GFI GET FILE CATALOG VIA FILE IDENTIFIER
  2718. ENDM
  2719. GFILEV SPACE 4,30
  2720. ** GFILEV - GET FILE CATALOG VIA VSN.
  2721. *
  2722. * GFILEV UADD,VADD,SQNO,FBUF,PBUF,VBUF,NV
  2723. *
  2724. * ENTRY UADD = ADDRESS OF USER NAME.
  2725. * VADD = ADDRESS OF VSN.
  2726. * SQNO = SEQUENCE NUMBER. (USES X3.)
  2727. * FBUF = ADDRESS OF FILE CATALOG BUFFER. (USES B6.)
  2728. * PBUF = ADDRESS OF PREVIOUS FILE BUFFER. (USES B7.)
  2729. * VBUF = ADDRESS OF VSN BUFFER. (USES B2.)
  2730. * NV = 0 IF VERIFY FILE STATUS.
  2731. * .NE. 0 IF ASSUME FILE NOT FOUND.
  2732. * DEFAULT IS 0. (USES B4.)
  2733. *
  2734. * EXIT (X4) = 0 IF FILE FOUND.
  2735. * = 1 IF FILE NOT FOUND AND DEFAULT SET IN BUFFERS.
  2736. * = -1 IF INCORRECT SEQUENCE NUMBER.
  2737. * = -2 IF VSN NOT AVAILABLE.
  2738. * (X6) = FILE CATALOG RANDOM ADDRESS.
  2739. * (X7) = PREVIOUS FILE RANDOM ADDRESS.
  2740. * (B6) = FILE COUNT.
  2741. * (B7) = VSN COUNT.
  2742. *
  2743. * USES A - 1, 2.
  2744. * B - 2, 4.
  2745. * X - 1, 2, 3.
  2746. *
  2747. * CALLS GFV.
  2748.  
  2749.  
  2750. PURGMAC GFILEV
  2751.  
  2752. GFILEV MACRO UA,VA,QN,FB,PB,VB,NV
  2753. MACREF GFILEV
  2754. R= A1,UA
  2755. R= A2,VA
  2756. R= X3,QN
  2757. R= B6,FB
  2758. R= B7,PB
  2759. R= B2,VB
  2760. SETREG B4,NV,0
  2761. RJ GFV GET FILE CATALOG VIA VSN
  2762. ENDM
  2763. GRENTRY SPACE 4,15
  2764. ** GRENTRY - GET RECORD ENTRY.
  2765. *
  2766. * GRENTRY FET,BUF
  2767. *
  2768. * ENTRY FET = ADDRESS OF FET TO USE. (USES X2.)
  2769. * BUF = ADDRESS OF WORKING BUFFER. (USES X1.)
  2770. *
  2771. * EXIT (X6) = 0 IF NO MORE ENTRIES.
  2772. * CURRENT ENTRY SET INTO BUFFER.
  2773. *
  2774. * USES X - 1, 2.
  2775. *
  2776. * CALLS GRE.
  2777.  
  2778.  
  2779. PURGMAC GRENTRY
  2780.  
  2781. GRENTRY MACRO FT,BF
  2782. MACREF GRENTRY
  2783. R= X2,FT
  2784. R= X1,BF
  2785. RJ //GRE GET RECORD ENTRY
  2786. ENDM
  2787. ISSMSG SPACE 4,15
  2788. ** ISSMSG - ISSUE MESSAGE TO OUTPUT.
  2789. *
  2790. * ISSMSG MADD,TYPE
  2791. *
  2792. * ENTRY MADD = ADDRESS OF MESSAGE. (USES B5.)
  2793. * TYPE = *I* IF INFORMATIVE.
  2794. * = *E* IF ERROR.
  2795. * (USES B2.)
  2796. *
  2797. * EXIT MESSAGE ISSUED TO OUTPUT/K-DISPLAY.
  2798. *
  2799. * USES B - 2, 5.
  2800. *
  2801. * CALLS MTO.
  2802.  
  2803.  
  2804. PURGMAC ISSMSG
  2805.  
  2806. ISSMSG MACRO MA,TY
  2807. MACREF ISSMSG
  2808. R= B5,MA
  2809. IFC EQ,$TY$I$ IF INFORMATIVE
  2810. R= B2,0
  2811. ELSE IF ERROR
  2812. R= B2,1
  2813. ENDIF
  2814. RJ //MTO ISSUE MESSAGE TO OUTPUT
  2815. ENDM
  2816. LISTAB SPACE 4,25
  2817. ** LISTAB - LIST ENTRIES FROM TABLE.
  2818. *
  2819. * LISTAB TADD,LADD,TLEN,RADD,ELEN,BC
  2820. *
  2821. * ENTRY TADD = TABLE ADDRESS. (USES X6.)
  2822. * LADD = LIST ADDRESS. (USES X7.)
  2823. * TLEN = TABLE LENGTH.
  2824. * .LT. 0 IF ZERO WORD TERMINATED.
  2825. * DEFAULT IS -1. (USES B2.)
  2826. * RADD = RELATIVE ADDRESS IN ENTRY.
  2827. * DEFAULT IS 0. (USES B3.)
  2828. * ELEN = ENTRY LENGTH. DEFAULT IS 1. (USES B4.)
  2829. * BC = BIT COUNT. MAXIMUM IS 120.
  2830. * DEFAULT IS 60. (USES B5.)
  2831. *
  2832. * EXIT (X1) = LWA+1 OF TABLE.
  2833. *
  2834. * USES B - 2, 3, 4, 5.
  2835. * X - 6, 7.
  2836. *
  2837. * CALLS TSL.
  2838.  
  2839.  
  2840. PURGMAC LISTAB
  2841.  
  2842. LISTAB MACRO TA,LA,TL,RA,EL,BC
  2843. MACREF LISTAB
  2844. R= X6,TA
  2845. R= X7,LA
  2846. SETREG B2,TL,(-1)
  2847. SETREG B3,RA,0
  2848. SETREG B4,EL,1
  2849. SETREG B5,BC,60
  2850. RJ TSL PROCESS TABLE ENTRY TO SINGLE ENTRY LIST
  2851. ENDM
  2852. LISTVSN SPACE 4,20
  2853. ** LISTVSN - LIST VSN ENTRY.
  2854. *
  2855. * LISTVSN VADD,VBUF,ILOCK
  2856. *
  2857. * ENTRY VADD = ADDRESS OF VSN. (USES A1, X1.)
  2858. * VBUF = ADDRESS OF VSN BUFFER. (USES A2, X2.)
  2859. * ILOCK = 0 IF NO INTERLOCK SET ON VSN.
  2860. * = 1 IF SET INTERLOCK ON VSN.
  2861. * DEFAULT IS 0. (USES B2.)
  2862. *
  2863. * EXIT (X4) = 0 IF VSN FOUND.
  2864. * VSN ENTRY IMAGE SET IN BUFFER.
  2865. * DEFAULT ENTRY IMAGE SET IN BUFFER IF VSN NOT FOUND.
  2866. *
  2867. * USES A - 1.
  2868. * B - 2, 6.
  2869. * X - 1.
  2870. *
  2871. * CALLS LVS.
  2872.  
  2873.  
  2874. PURGMAC LISTVSN
  2875.  
  2876. LISTVSN MACRO VA,VB,IL
  2877. MACREF LISTVSN
  2878. R= A1,VA
  2879. R= B6,VB
  2880. SETREG B2,IL,0
  2881. RJ //LVS LIST VSN ENTRY
  2882. ENDM
  2883. LJUST SPACE 4,20
  2884. ** LJUST - LEFT JUSTIFY AND MASK FIELD IN X-REGISTER.
  2885. *
  2886. * LJUST XA,XB,BC,UB
  2887. *
  2888. * ENTRY XA = X-REGISTER WITH FIELD.
  2889. * XB = X-REGISTER TO RECEIVE MASKED FIELD.
  2890. * BC = BIT COUNT OF FIELD.
  2891. * MUST BE 1 .LE. *BC* .LE. 60.
  2892. * UB = UPPER BIT POSITION OF FIELD.
  2893. * MUST BE 0 .LE. *UB* .LE. 59.
  2894. *
  2895. * EXIT (XA) = FIELD LEFT JUSTIFIED.
  2896. * (XB) = FIELD LEFT JUSTIFIED AND MASKED.
  2897. * (X0) = MASK OF LEFT JUSTIFIED FIELD.
  2898. *
  2899. * USES B - 2 IF *BC* AND/OR *UB* INCLUDE REGISTERS.
  2900.  
  2901.  
  2902. PURGMAC LJUST
  2903.  
  2904. LJUST MACRO XA,XB,BC,UB
  2905. LOCAL A
  2906. MACREF LJUST
  2907. IF REG,BC IF BIT COUNT IN REGISTER
  2908. MX0 1
  2909. SB2 BC-1
  2910. AX0 B2
  2911. ELSE IF CONSTANT BIT COUNT
  2912. MX0 BC
  2913. ENDIF
  2914. .1 IF REG,UB IF UPPER BIT IN REGISTER
  2915. SB2 UB-59
  2916. L_XA -B2
  2917. .1 ELSE IF CONSTANT UPPER BIT
  2918. .2 IFNE UB,59 IF NON-ZERO SHIFT COUNT
  2919. A SET UB
  2920. L_XA 59-A
  2921. ENDIF
  2922. B_XB X0*XA
  2923. ENDM
  2924. MOVEBIT SPACE 4,30
  2925. ** MOVEBIT - MOVE BIT STRING.
  2926. *
  2927. * MOVEBIT SADD,DADD,COUNT,SUPPER,DUPPER
  2928. *
  2929. * ENTRY SADD = SOURCE ADDRESS OF BIT STRING. IF *SADD=A1*,
  2930. * X1 IS ASSUMED TO HOLD ((A1)). (USES A1, X1.)
  2931. * DADD = DESTINATION ADDRESS OF BIT STRING. IF
  2932. * *DADD=A2*, X2 IS ASSUMED TO HOLD ((A2)).
  2933. * (USES A2, X2.)
  2934. * COUNT = BIT COUNT. DEFAULT IS 60. (USES B4.)
  2935. * SUPPER = UPPER BIT POSITION OF SOURCE STRING.
  2936. * DEFAULT IS 59. (USES B3.)
  2937. * DUPPER = UPPER BIT POSITION OF DESTINATION STRING.
  2938. * DEFAULT IS 59. (USES B2.)
  2939. *
  2940. * EXIT STRING FROM *SADD* MOVED INTO *DADD*.
  2941. * (A1) = ADDRESS OF REMAINDER OF SOURCE STRING.
  2942. * (A2) = ADDRESS OF REMAINDER OF DESTINATION STRING.
  2943. * (B2) = UPPER BIT POSITION OF REMAINDER OF DESTINATION
  2944. * STRING.
  2945. * (B3) = UPPER BIT POSITION OF REMAINDER OF SOURCE
  2946. * STRING.
  2947. *
  2948. * USES A - 1, 2.
  2949. * B - 2, 3, 4.
  2950. * X - 1, 2.
  2951. *
  2952. * CALLS MBS.
  2953.  
  2954. PURGMAC MOVEBIT
  2955.  
  2956. MOVEBIT MACRO SA,DA,C,SU,DU
  2957. MACREF MOVEBIT
  2958. R= A1,SA
  2959. R= A2,DA
  2960. SETREG B4,C,60
  2961. SETREG B3,SU,59
  2962. SETREG B2,DU,59
  2963. RJ //MBS MOVE BIT STRING
  2964. ENDM
  2965. NEWPAGE SPACE 4,20
  2966. ** NEWPAGE - GENERATE NEW PAGE HEADER FOR OUTPUT.
  2967. *
  2968. * NEWPAGE BUF,WC,NP
  2969. *
  2970. * ENTRY BUF = BUFFER ADDRESS OF NEW PAGE HEADER.
  2971. * DEFAULT IS (HD).
  2972. * WC = WORD COUNT OF NEW HEADER.
  2973. * DEFAULT IS (HL).
  2974. * NP = IF SPECIFIED HEADER WILL NOT BE PRINTED
  2975. * AT THIS TIME.
  2976. *
  2977. * EXIT NEW PAGE HEADER SET FOR OUTPUT FILE.
  2978. *
  2979. * USES A - 6.
  2980. * X - 6.
  2981. *
  2982. * CALLS NPG.
  2983.  
  2984.  
  2985. PURGMAC NEWPAGE
  2986.  
  2987. NEWPAGE MACRO BF,WC,NP
  2988. MACREF NEWPAGE
  2989. IFC NE,$BF$$ IF NOT DEFAULT HEADER
  2990. R= X6,BF
  2991. R= A6,HD
  2992. ENDIF
  2993. IFC NE,$WC$$ IF NOT DEFAULT WORD COUNT
  2994. R= X6,WC
  2995. R= A6,HL
  2996. ENDIF
  2997. IFC EQ,$NP$$ IF PRINT NEXT PAGE
  2998. RJ //NPG PRINT NEW PAGE HEADER
  2999. ELSE IF NO PRINT
  3000. SX6 MXLP+1
  3001. SA6 LC
  3002. ENDIF
  3003. ENDM
  3004. RCREC SPACE 4,20
  3005. ** RCREC - READ CATALOG RECORD.
  3006. *
  3007. * RCREC FET,REC,BUF,IL
  3008. *
  3009. * ENTRY FET = ADDRESS OF FET TO USE. (USES X2.)
  3010. * REC = RECORD RANDOM ADDRESS. (USES X1.)
  3011. * BUF = WORKING BUFFER TO RECEIVE RECORD. (USES X3.)
  3012. * IL .NE. 0 IF UTILITY INTERLOCK TO BE SET BEFORE READ.
  3013. * DEFAULT IS 0. (USES B2.)
  3014. *
  3015. * EXIT RECORD READ INTO BUFFER.
  3016. *
  3017. * USES B - 2.
  3018. * X - 1, 2, 3.
  3019. *
  3020. * CALLS RCR.
  3021.  
  3022.  
  3023. PURGMAC RCREC
  3024.  
  3025. RCREC MACRO FT,RC,BF,IL
  3026. MACREF RCREC
  3027. R= X2,FT
  3028. R= X1,RC
  3029. SETREG X3,BF,0
  3030. SETREG B2,IL,0
  3031. RJ //RCR READ CATALOG RECORD
  3032. ENDM
  3033. READFET SPACE 4,15
  3034. ** READFET - READ WORDS FROM FET INTO WORKING BUFFER.
  3035. *
  3036. * READFET FET,BUF,N
  3037. *
  3038. * ENTRY FET = FET ADDRESS. (USES X2.)
  3039. * BUF = WORKING BUFFER ADDRESS. (USES B6.)
  3040. * N = NUMBER OF WORDS TO TRANSFER. (USES B7.)
  3041. *
  3042. * EXIT (X1) = 0 IF TRANSFER COMPLETE.
  3043. * = (B6) IF (B7).NE.0.
  3044. * (X2) = FET ADDRESS.
  3045. * (B6) = LWA+1 OF WORKING BUFFER.
  3046. * (B7) = NUMBER OF WORDS NOT TRANSFERRED.
  3047. *
  3048. * CALLS RDF.
  3049.  
  3050.  
  3051. PURGMAC READFET
  3052.  
  3053. READFET MACRO FT,BF,NW
  3054. MACREF READFET
  3055. R= B6,BF
  3056. R= B7,NW
  3057. R= X2,FT
  3058. RJ //RDF READ WORDS FROM FET INTO WORKING BUFFER
  3059. ENDM
  3060. RELVSN SPACE 4,15
  3061. ** RELVSN - RELEASE FILE VIA VSN.
  3062. *
  3063. * RELVSN UADD,VADD,QNADD
  3064. *
  3065. * ENTRY UADD = ADDRESS OF USER NAME.
  3066. * VADD = ADDRESS OF VSN.
  3067. * QNADD = SEQUENCE NUMBER.
  3068. * QNADD = 1 IF NO SEQUENCE NUMBER SUPPLIED.
  3069. *
  3070. * EXIT (X4) = 0 IF RELEASE COMPLETE.
  3071. * .NE. 0 IF VSN NOT ASSIGNED TO USER.
  3072. *
  3073. * USES A - 1, 2.
  3074. * X - 1, 2, 3.
  3075. *
  3076. * CALLS RLV.
  3077.  
  3078.  
  3079. PURGMAC RELVSN
  3080.  
  3081. RELVSN MACRO UA,VA,QN
  3082. MACREF RELVSN
  3083. R= A1,UA
  3084. R= A2,VA
  3085. IFC EQ,$QN$$,2
  3086. R= X3,1
  3087. SKIP 1
  3088. R= X3,QN
  3089. RJ //RLV RELEASE FILE VIA VSN
  3090. ENDM
  3091. REPVSN SPACE 4,15
  3092. ** REPVSN - REPLACE/ADD VSNS.
  3093. *
  3094. * REPVSN VBUF,VLEN
  3095. *
  3096. * ENTRY VBUF = VSN BUFFER ADDRESS. (USES B6.)
  3097. * VLEN = VSN BUFFER LENGTH. (USES B7.)
  3098. *
  3099. * EXIT VSN ENTRIES REPLACED/ADDED.
  3100. *
  3101. * USES B - 6, 7.
  3102. *
  3103. * CALLS RVS.
  3104.  
  3105.  
  3106. PURGMAC REPVSN
  3107.  
  3108. REPVSN MACRO VB,VL
  3109. MACREF REPVSN
  3110. R= B6,VB
  3111. R= B7,VL
  3112. RJ //RVS REPLACE/ADD VSNS
  3113. ENDM
  3114. RESETP SPACE 4,15
  3115. ** RESETP - RESET *IN* AND *OUT* POINTERS OF FILE.
  3116. *
  3117. * RESETP FET
  3118. *
  3119. * ENTRY FET = ADDRESS OF FET. (USES X2.)
  3120. *
  3121. * EXIT *IN* AND *OUT* SET TO *FIRST*.
  3122. * (X2) = ADDRESS OF FET.
  3123. *
  3124. * USES A - 1, 6.
  3125. * X - 1, 6.
  3126. *
  3127. * MACROS RECALL.
  3128.  
  3129.  
  3130. PURGMAC RESETP
  3131.  
  3132. RESETP MACRO FT
  3133. MACREF RESETP
  3134. RECALL FT
  3135. SA1 X2+B1
  3136. SX6 X1
  3137. SA6 A1+B1
  3138. SA6 A6+B1
  3139. ENDM
  3140. RJM SPACE 4,15
  3141. ** RJM - RETURN JUMP TO ADDRESS IN REGISTERS.
  3142. *
  3143. * RJM ADDR
  3144. *
  3145. * ENTRY ADDR = ADDRESS TO RETURN JUMP TO.
  3146. *
  3147. * EXIT RETURN JUMP EXECUTED.
  3148. *
  3149. * USES A - 1, 6.
  3150. * B - 2.
  3151. * X - 1, 6.
  3152.  
  3153.  
  3154. PURGMAC RJM
  3155.  
  3156. RJM MACRO AD
  3157. LOCAL A
  3158. MACREF RJM
  3159. IF -REG,AD IF NORMAL RETURN JUMP
  3160. RJ AD
  3161. ELSE IF RETURN JUMP TO REGISTER VALUE
  3162. R= B2,AD
  3163. R= A1,A
  3164. BX6 X1
  3165. R= A6,B2
  3166. JP B2+1
  3167. A EQ *+1
  3168. ENDIF
  3169. ENDM
  3170. RJUST SPACE 4,20
  3171. ** RJUST - RIGHT JUSTIFY AND MASK FIELD IN X-REGISTER.
  3172. *
  3173. * RJUST XA,XB,BC,UB
  3174. *
  3175. * ENTRY XA = X-REGISTER WITH FIELD.
  3176. * XB = X-REGISTER TO RECEIVE MASKED FIELD.
  3177. * BC = BIT COUNT OF FIELD.
  3178. * MUST BE 1 .LE. *BC* .LE. 60.
  3179. * UB = UPPER BIT POSITION OF FIELD.
  3180. * MUST BE 0 .LE. *UB* .LE. 59.
  3181. *
  3182. * EXIT (XA) = FIELD RIGHT JUSTIFIED.
  3183. * (XB) = FIELD RIGHT JUSTIFIED AND MASKED.
  3184. * (X0) = (-1)*MASK OF RIGHT JUSTIFIED FIELD.
  3185. *
  3186. * USES B - 2 IF *BC* AND/OR *UB* INCLUDE REGISTERS.
  3187.  
  3188.  
  3189. PURGMAC RJUST
  3190.  
  3191. RJUST MACRO XA,XB,BC,UB
  3192. LOCAL A
  3193. MACREF RJUST
  3194. .1 IF REG,BC IF BIT COUNT IN REGISTER
  3195. MX0 1
  3196. SB2 BC-1
  3197. AX0 B2
  3198. L_XA B2
  3199. .2 IF REG,UB IF UPPER BIT IN REGISTER
  3200. SB2 UB-60
  3201. L_XA -B2
  3202. .2 ELSE IF CONSTANT UPPER BIT
  3203. .3 IFNE UB,60 IF NON-ZERO SHIFT COUNT
  3204. A SET UB
  3205. L_XA -A+60
  3206. .1 ELSE IF CONSTANT BIT COUNT
  3207. A SET BC
  3208. MX0 -A
  3209. .2 IF REG,UB IF UPPER BIT IN REGISTER
  3210. SB2 UB-60-BC+1
  3211. L_XA -B2
  3212. .2 ELSE IF CONSTANT UPPER BIT
  3213. .3 IFNE BC-1,UB IF NON-ZERO SHIFT COUNT
  3214. A SET UB
  3215. L_XA BC-1-A+60
  3216. ENDIF
  3217. B_XB -X0*XA
  3218. ENDM
  3219. SAFET SPACE 4,25
  3220. ** SAFET - SET AUDIT FET.
  3221. *
  3222. * SAFET UADD,VADD,FADD,TYPE,RADD
  3223. *
  3224. * ENTRY UADD = ADDRESS OF USER NAME. (USES A1, X1.)
  3225. * VADD = ADDRESS OF VSN. DEFAULT IS *=0*.
  3226. * (USES A2, X2.)
  3227. * FADD = ADDRESS OF FILE IDENTIFIER.
  3228. * DEFAULT IS *=0*. (USES A3, A4, X3, X4.)
  3229. * TYPE = AUDIT TYPE. DEFAULT IS *FCST*. (USES B2.)
  3230. * RADD = ADDRESS OF AUDIT RANDOM ADDRESS.
  3231. * DEFAULT IS *=0*. (USES A4, X4, X6.)
  3232. *
  3233. * EXIT (X4) = 0 IF NO ERROR IN AUDIT.
  3234. * (N3 - N3+15B) = AUDIT FET.
  3235. *
  3236. * USES A - 1, 2, 3, 4.
  3237. * B - 2.
  3238. * X - 1, 2, 3, 4, 6.
  3239. *
  3240. * CALLS SAF.
  3241.  
  3242.  
  3243. PURGMAC SAFET
  3244.  
  3245. SAFET MACRO UA,VA,FA,TY,RA
  3246. MACREF SAFET
  3247. R= A1,UA
  3248. SETREG A2,VA,(=0)
  3249. SETREG A4,RA,(=0)
  3250. BX6 X4
  3251. SETREG A3,FA,(=0)
  3252. IFC EQ,$FA$$ IF DEFAULT FILE IDENTIFIER
  3253. R= A4,=0
  3254. ELSE IF NOT DEFAULT FILE IDENTIFIER
  3255. R= A4,FA+1
  3256. ENDIF
  3257. SETREG B2,TY,FCST
  3258. RJ //SAF SET AUDIT FET
  3259. ENDM
  3260. SETSORC SPACE 4,20
  3261. ** SETSORC - SET SOURCE VALUES IN TABLE.
  3262. *
  3263. * SETSORC TYPE,LEVEL
  3264. *
  3265. * ENTRY TYPE = *A* IF AUDIT TABLE.
  3266. * = *K* IF K-DISPLAY TABLE.
  3267. * = *M* IF MACHINE READABLE TABLE.
  3268. * = *S* IF SOURCE LISTING TABLE.
  3269. * (USES B2.)
  3270. * LEVEL = DIRECTIVE LEVEL. (USES X1.)
  3271. *
  3272. * EXIT SOURCE VALUES SET IN TABLE.
  3273. *
  3274. * USES B - 2.
  3275. * X - 1.
  3276. *
  3277. * CALLS SST.
  3278.  
  3279.  
  3280. PURGMAC SETSORC
  3281.  
  3282. SETSORC MACRO TY,LV
  3283. MACREF SETSORC
  3284. .1 IFC EQ,$TY$A$ IF AUDIT
  3285. R= B2,1
  3286. .1 ELSE
  3287. .2 IFC EQ,$TY$K$ IF K-DISPLAY
  3288. R= B2,0
  3289. .2 ELSE
  3290. .3 IFC EQ,$TY$M$ IF MACHINE READABLE
  3291. R= B2,3
  3292. .3 ELSE IF SOURCE LISTING
  3293. R= B2,2
  3294. ENDIF
  3295. R= X1,LV
  3296. RJ //SST SET SOURCE VALUES IN TABLE
  3297. ENDM
  3298. SRCHTAB SPACE 4,35
  3299. ** SRCHTAB - SEARCH TABLE FOR ENTRY.
  3300. *
  3301. * SRCHTAB TADD,VADD,TLEN,ELEN,RADD.
  3302. *
  3303. * ENTRY TADD = ADDRESS OF TABLE. IF *TADD=A1*, X1 IS ASSUMED
  3304. * TO HOLD THE FIRST WORD OF THE TABLE.
  3305. * USES A1, X1.
  3306. * VADD = ADDRESS OF VALUE. IF *VADD=A2*, X2 IS ASSUMED
  3307. * TO HOLD THE VALUE. USES A2, X2.
  3308. * TLEN = LENGTH OF TABLE. IF .LT. 0, TABLE IS
  3309. * TERMINATED BY A ZERO WORD. DEFAULT IS -1.
  3310. * USES B2.
  3311. * ELEN = LENGTH OF TABLE ENTRY. DEFAULT IS 1. USES B3.
  3312. * RADD = RELATIVE ADDRESS OF VALUE IN ENTRY.
  3313. * DEFAULT IS 0. USES B4.
  3314. * (X0) = SEARCH MASK. BIT POSITIONS OF VALUE SHOULD BE
  3315. * SET.
  3316. *
  3317. * EXIT (A1) = ADDRESS OF ENTRY IF VALUE IS FOUND.
  3318. * (A2) = *VADD*.
  3319. * (A3) = ADDRESS OF VALUE WORD IF VALUE IS FOUND.
  3320. * (B2) = *TLEN*.
  3321. * (B3) = *ELEN*.
  3322. * (B4) = *RADD*.
  3323. * (B7) = RELATIVE ADDRESS OF VALUE WORD IN TABLE IF
  3324. * VALUE IS FOUND.
  3325. * (X1) = FIRST WORD OF ENTRY IF VALUE IS FOUND.
  3326. * (X2) = VALUE.
  3327. * (X3) = VALUE WORD OF ENTRY IF VALUE IS FOUND.
  3328. * (X4) = 0 IF VALUE IS FOUND.
  3329. *
  3330. * CALLS STB.
  3331.  
  3332.  
  3333. PURGMAC SRCHTAB
  3334.  
  3335. SRCHTAB MACRO TA,VA,TL,EL,RA
  3336. MACREF SRCHTAB
  3337. R= A1,TA
  3338. R= A2,VA
  3339. SETREG B2,TL,(-1)
  3340. SETREG B3,EL,1
  3341. SETREG B4,RA,0
  3342. RJ //STB SEARCH TABLE
  3343. ENDM
  3344. USERAUD SPACE 4,25
  3345. ** USERAUD - PROCESS USER AUDIT LIST.
  3346. *
  3347. * USERAUD TYPE,CN,VSN
  3348. *
  3349. * ENTRY (UN) = USER NAME.
  3350. * TYPE = *A* IF *AUDIT*.
  3351. * = *M* IF *MACHINE READABLE.*
  3352. * = *S* IF *SOURCE*.
  3353. * = *SNV* IF *SOURCE WITH NO VSNS.*
  3354. * (USES B2.)
  3355. * CN = ADDRESS OF CHARGE NUMBER.
  3356. * DEFAULT IS IGNORE CHARGE NUMBER. (USES A1, X1.)
  3357. * VSN = ADDRESS OF VSN.
  3358. * DEFAULT IS IGNORE VSN. (USES A2, X2.)
  3359. *
  3360. * EXIT ALL FILES MATCHING ENTRY CONDITIONS PROCESSED.
  3361. *
  3362. * USES A - 1, 2.
  3363. * B - 2.
  3364. * X - 1, 2.
  3365. *
  3366. * CALLS USA.
  3367.  
  3368.  
  3369. PURGMAC USERAUD
  3370.  
  3371. USERAUD MACRO TY,CN,VS
  3372. MACREF USERAUD
  3373. .1 IFC EQ,$TY$A$ IF AUDIT
  3374. R= B2,1
  3375. .1 ELSE
  3376. .2 IFC EQ,$TY$M$ IF MACHINE READABLE
  3377. R= B2,3
  3378. .2 ELSE
  3379. .3 IFC EQ,$TY$S$ IF SOURCE
  3380. R= B2,2
  3381. .3 ELSE IF SOURCE NO VSNS
  3382. R= B2,4
  3383. ENDIF
  3384. SETREG A1,CN,(=0)
  3385. SETREG A2,VS,(=0)
  3386. RJ //USA PROCESS USER AUDIT LIST
  3387. ENDM
  3388. WCREC SPACE 4,20
  3389. ** WCREC - WRITE CATALOG RECORD.
  3390. *
  3391. * WCREC FET,REC,BUF,IL
  3392. *
  3393. * ENTRY ADDRESS OF FET TO USE. (USES X2.)
  3394. * REC = RECORD RANDOM ADDRESS. (USES X1.)
  3395. * BUF = WORKING BUFFER ADDRESS. (USES X3.)
  3396. * IL .NE. 0 IF CLEAR UTILITY INTERLOCK AFTER WRITE.
  3397. * DEFAULT IS 0. (USES B2.)
  3398. *
  3399. * EXIT CATALOG RECORD REWRITTEN.
  3400. *
  3401. * USES B - 2.
  3402. * X - 1, 2, 3.
  3403. *
  3404. * CALLS WCR.
  3405.  
  3406.  
  3407. PURGMAC WCREC
  3408.  
  3409. WCREC MACRO FT,REC,BUF,IL
  3410. MACREF WCREC
  3411. R= X2,FT
  3412. R= X1,REC
  3413. R= X3,BUF
  3414. SETREG B2,IL,0
  3415. RJ //WCR WRITE CATALOG RECORD
  3416. ENDM
  3417. WLINES SPACE 4,15
  3418. ** WLINES - WRITE LINES TO OUTPUT FILE.
  3419. *
  3420. * WLINES BUF,LC
  3421. *
  3422. * ENTRY BUF = BUFFER ADDRESS. (USES A1, X1.)
  3423. * LC = LINE COUNT OF BUFFER. (USES B7.)
  3424. *
  3425. * EXIT LINES WRITTEN TO OUTPUT FILE.
  3426. *
  3427. * USES A - 1.
  3428. * B - 2, 7.
  3429. * X - 1.
  3430. *
  3431. * CALLS WTL.
  3432.  
  3433.  
  3434. PURGMAC WLINES
  3435.  
  3436. WLINES MACRO BF,LC
  3437. R= A1,BF
  3438. R= B2,1
  3439. R= B7,LC
  3440. RJ //WTL WRITE LINES TO OUTPUT
  3441. ENDM
  3442. WRITFET SPACE 4,15
  3443. ** WRITFET - WRITE WORDS FROM WORKING BUFFER INTO FET.
  3444. *
  3445. * WRITFET FET,BUF,N
  3446. *
  3447. * ENTRY FET = FET ADDRESS. (USES X2.)
  3448. * BUF = WORKING BUFFER ADDRESS. (USES B6.)
  3449. * N = NUMBER OF WORDS TO TRANSFER. (USES B7.)
  3450. *
  3451. * EXIT (X1) = 0 IF TRANSFER COMPLETE.
  3452. * = (B6) IF (B7).NE.0.
  3453. * (X2) = FET ADDRESS.
  3454. * (B6) = LWA+1 OF WORKING BUFFER.
  3455. * (B7) = NUMBER OF WORDS NOT TRANSFERRED.
  3456. *
  3457. * CALLS WTF.
  3458.  
  3459.  
  3460. PURGMAC WRITFET
  3461.  
  3462. WRITFET MACRO FT,BF,NW
  3463. MACREF WRITFET
  3464. R= B6,BF
  3465. R= B7,NW
  3466. R= X2,FT
  3467. RJ //WTF WRITE WORDS FROM WORKING BUFFER INTO FET
  3468. ENDM
  3469. WWORDS SPACE 4,15
  3470. ** WWORDS - WRITE WORDS TO OUTPUT FILE.
  3471. *
  3472. * WWORDS BUF,WC
  3473. *
  3474. * ENTRY BUF = BUFFER ADDRESS. (USES A1, X1.)
  3475. * WC = WORD COUNT OF BUFFER. (USES B6.)
  3476. *
  3477. * EXIT WORDS WRITTEN TO OUTPUT FILE.
  3478. *
  3479. * USES A - 1.
  3480. * B - 2, 6.
  3481. * X - 1.
  3482. *
  3483. * CALLS WTL.
  3484.  
  3485.  
  3486. PURGMAC WWORDS
  3487.  
  3488. WWORDS MACRO BF,WC
  3489. R= A1,BF
  3490. R= B2,0
  3491. R= B6,WC
  3492. RJ //WTL WRITE LINES TO OUTPUT FILE
  3493. ENDM
  3494. TITLE PROGRAM EQUIVALENCES.
  3495. QUAL SPACE 4,10
  3496. ** QUALIFIERS USED BY *TFSP*.
  3497.  
  3498.  
  3499. QUAL
  3500. QUAL ADD
  3501. QUAL ALS
  3502. QUAL ALSC
  3503. QUAL ALSU
  3504. QUAL BTC
  3505. QUAL CAT
  3506. QUAL CATBIT
  3507. QUAL DCTAB
  3508. QUAL DOTAB
  3509. QUAL DTAB
  3510. QUAL INDEX
  3511. QUAL KAUSLS
  3512. QUAL KAUSRS
  3513. QUAL KDIS
  3514. QUAL KFAMLS
  3515. QUAL KFAMRS
  3516. QUAL KFILLS1
  3517. QUAL KFILLS2
  3518. QUAL KFILLS3
  3519. QUAL KFILRS
  3520. QUAL KLEFT
  3521. QUAL KMESS
  3522. QUAL KRIGHT
  3523. QUAL KUSELS
  3524. QUAL KUSERS
  3525. QUAL KVSNLS
  3526. QUAL KVSNRS
  3527. QUAL LVAU
  3528. QUAL LVFA
  3529. QUAL LVFI
  3530. QUAL LVUS
  3531. QUAL LVVS
  3532. QUAL MLS
  3533. QUAL MLSC
  3534. QUAL MLSU
  3535. QUAL PAUA
  3536. QUAL PAUAC
  3537. QUAL PAUAU
  3538. QUAL PDIR
  3539. QUAL PDIRC
  3540. QUAL PDIRU
  3541. QUAL PDIS
  3542. QUAL PDISC
  3543. QUAL PDISU
  3544. QUAL PFIA
  3545. QUAL PFIAC
  3546. QUAL PFIAU
  3547. QUAL PHEL
  3548. QUAL PHELC
  3549. QUAL PHELU
  3550. QUAL PRESET
  3551. QUAL PVSA
  3552. QUAL PVSAC
  3553. QUAL PVSAU
  3554. QUAL SCS
  3555. QUAL SCSC
  3556. QUAL SCSU
  3557. QUAL SMA
  3558. QUAL SMAC
  3559. QUAL SMAU
  3560. QUAL SMB
  3561. QUAL SMBC
  3562. QUAL SMBU
  3563. QUAL SMC
  3564. QUAL SMCC
  3565. QUAL SMCU
  3566. QUAL SMD
  3567. QUAL SMDD
  3568. QUAL SMDU
  3569. QUAL SMF
  3570. QUAL SMFC
  3571. QUAL SMFU
  3572. QUAL UPB
  3573. QUAL
  3574. MICRO SPACE 4,10
  3575. ** SPECIAL CHARACTER BIT STRING MICROS.
  3576.  
  3577.  
  3578. AC BITMIC (+,-,*,/,L,R,$,=, ,(,),.,#,[,])
  3579. AC BITMIC (%,",U,!,&,',?,<,>,@,\,^,;,:) ALL CHARACTERS
  3580. AH BITMIC (*,-) ASTERISK AND HYPHEN
  3581. AS BITMIC (*) ASTERISK
  3582. BL BITMIC ( ) BLANK CHARACTER
  3583. CO BITMIC ((,)) COMMA
  3584. EC BITMIC (+,-,*,/,L,R,$,=, ,(,),.,#,[,])
  3585. EC BITMIC (%,",U,!,&,',?,<,>,@,\,^,;) ALL EXCEPT COLON
  3586. NC BITMIC () NO CHARACTERS
  3587. MICRO SPACE 4,10
  3588. ** GENERAL MICROS.
  3589.  
  3590.  
  3591. MXAA DECMIC 777777B MAXIMUM ALTERNATE USER ACCESS COUNT
  3592. MXAC DECMIC 77777777B MAXIMUM ACCESS COUNT
  3593. MXFC DECMIC 12000B MAXIMUM MAXIMUM BLOCK COUNT
  3594. SPACE 4,10
  3595. ** GENERAL EQUATES.
  3596.  
  3597.  
  3598. CAPL EQU 72 CHARACTERS ASSEMBLED PER LINE OF INPUT
  3599. CSPL EQU 80 CHARACTERS SCANNED PER LINE OF INPUT
  3600. MXLP EQU 60 MAXIMUM NUMBER OF LINES PER OUTPUT PAGE
  3601. USBBL EQU CSPL+10 STRING BUFFER LENGTH
  3602. BUFL SPACE 4,10
  3603. ** BUFFER LENGTHS.
  3604.  
  3605.  
  3606. CBUFL EQU 5 CHARACTER BUFFER LENGTH
  3607. EBUFL EQU 4 ERROR MESSAGE BUFFER LENGTH
  3608. FBUFL EQU 1001B FILE BUFFER LENGTH
  3609. KBUFL EQU 8 K-DISPLAY INPUT BUFFER LENGTH
  3610. RBUFL EQU 1B REWIND FILE BUFFER LENGTH
  3611. SBUFL EQU 101B SCRATCH FILE BUFFER LENGTH
  3612. TBUFL EQU 1001B TAPE CATALOG FILE BUFFER LENGTH
  3613. N1BUFL EQU 401B VSN BUFFER LENGTH
  3614. N2BUFL EQU 101B USER NAME BUFFER LENGTH
  3615. N3BUFL EQU 501B TAPE FILE BUFFER LENGTH
  3616. N4BUFL EQU 101B ALTERNATE USER NAME BUFFER LENGTH
  3617. TAVSL EQU TSVL*60+1 ASSIGNED VSNS BUFFER LENGTH
  3618. UBUFL EQU 101B ALTERNATE USER BUFFER LENGTH
  3619. VBUFL EQU 101B VSN ENTRY BUFFER LENGTH
  3620. WBUFL EQU TCEL+TSVL*60+1 WORKING BUFFER
  3621. SPACE 4,10
  3622. ** LEVEL DEFINITIONS.
  3623.  
  3624.  
  3625. LVFA EQU 0 FAMILY LEVEL
  3626. LVVS EQU 1 VSN LEVEL
  3627. LVUS EQU 2 USER LEVEL
  3628. LVFI EQU 3 FILE LEVEL
  3629. LVAU EQU 4 ALTERNATE USER LEVEL
  3630. OP SPACE 4,10
  3631. ** *OP* PARAMETER OPTIONS.
  3632.  
  3633.  
  3634. KOPT EQU 0 *K* K-DISPLAY OPTION
  3635. IOPT EQU 1 *I* INPUT FILE OPTION
  3636. ZOPT EQU 2 *Z* CONTROL CARD OPTION
  3637. SPACE 4,10
  3638. ** PROCESSOR INDICES.
  3639.  
  3640.  
  3641. PIZF EQU 0 ZERO FILL
  3642. PIBF EQU 1 BLANK FILL
  3643. PIOP EQU 2 OPTION SELECTION
  3644. PIBD EQU 3 NUMERIC BINARY DATA
  3645. PIPD EQU 4 PACKED DATE
  3646. PIPT EQU 5 PACKED TIME
  3647. PIJD EQU 6 JULIAN DATE
  3648. PIVQ EQU 7 VSN/SEQUENCE NUMBER
  3649. PIVS EQU 8 PADDED VSN
  3650. PIBS EQU 9 SPECIAL CHARACTER BIT STRING
  3651. ORG SPACE 4,10
  3652. ** PROGRAM ORIGIN.
  3653.  
  3654.  
  3655. ORIG EQU 110B
  3656. ORG ORIG
  3657. TITLE DATA AREA.
  3658. FETS SPACE 4,10
  3659. ** FILE ENVIRONMENT TABLES.
  3660.  
  3661.  
  3662. I BSS 0 INPUT FILE
  3663. INPUT FILEC IBUF,FBUFL,(FET=16)
  3664.  
  3665. L BSS 0 OUTPUT FILE
  3666. OUTPUT FILEC LBUF,FBUFL,(FET=16),EPR
  3667.  
  3668. N1 BSS 0 VSN TAPE CATALOG FILE
  3669. NEW1 FILEB N1BUF,N1BUFL,(FET=8),EPR
  3670. REWORD N1+5,(42/,18/EBUF) ERROR MESSAGE ADDRESS
  3671.  
  3672. N2 BSS 0 USER NAME TAPE CATALOG FILE
  3673. NEW2 FILEB N2BUF,N2BUFL,(FET=8),EPR
  3674. REWORD N2+5,(42/,18/EBUF) ERROR MESSAGE ADDRESS
  3675.  
  3676. N3 BSS 0 TAPE FILE TAPE CATALOG FILE
  3677. NEW3 FILEB N3BUF,N3BUFL,(FET=16),EPR
  3678. REWORD N3+5,(42/,18/EBUF) ERROR MESSAGE ADDRESS
  3679.  
  3680. N4 BSS 0 ALTERNATE USER NAME TAPE CATALOG FILE
  3681. NEW4 FILEB N4BUF,N4BUFL,(FET=8),EPR
  3682. REWORD N4+5,(42/,18/EBUF) ERROR MESSAGE ADDRESS
  3683.  
  3684. R BSS 0 REWIND FILE
  3685. R FILEB RBUF,RBUFL,(FET=8)
  3686.  
  3687. RD BSS 0 *READ* FILE
  3688. RD FILEC SBUF,SBUFL,(FET=8)
  3689.  
  3690. S BSS 0 SOURCE FILE
  3691. SOURCE FILEC SSBUF,FBUFL,(FET=16),EPR
  3692.  
  3693. SS BSS 0 MACHINE READABLE OUTPUT FILE
  3694. SS FILEC SSBUF,FBUFL,(FET=16),EPR
  3695.  
  3696. T BSS 0 TERMINAL INTERRUPT FILE
  3697. ZZZZINT FILEC TBUF,SBUFL,(FET=8),(DTY=2RTT)
  3698.  
  3699. UB BSS 0 ALTERNATE USER ENTRY BUFFER
  3700. UB FILEB UBUF,UBUFL,(FET=8)
  3701.  
  3702. VB BSS 0 VSN ENTRY BUFFER FET
  3703. VB FILEB VBUF,VBUFL,(FET=8)
  3704. WORKING SPACE 4,10
  3705. ** WORKING STORAGE.
  3706.  
  3707.  
  3708. AA CON 0 AUDIT RANDOM ADDRESS
  3709. AB CON 0 ABORT OPTION
  3710. AF CON 0 ADMIT FLAG
  3711. AI CON 0 ALTERNATE INPUT FILE NAME
  3712. AP CON 0 ALTERNATE PROCESSING FLAG
  3713. AU CON 0 ALTERNATE USER
  3714. BF CON 0 BRIEF/NOBRIEF FLAG
  3715. CF CON 0 CURRENT FAMILY NAME
  3716. CI CON 0 CLEAR INTERLOCK FLAG
  3717. CL CON "NC" SPECIAL CHARACTER FOR COLON
  3718. DD CON 0 DISPLAY DATE
  3719. DE CON 0 DENSITY / TAPE TYPE
  3720. DF CON 0 DIRECTIVE IMAGE
  3721. CON 0 PROCESSOR/CONTROL TABLE ADDRESS
  3722. CON 0 DIRECTIVE SEPARATOR
  3723. DM CON 0 DIRECTIVE MESSAGE FLAG
  3724. DP CON 0 DROP PROCESSOR COUNT
  3725. DT CON 0 DISPLAY TIME
  3726. ED CON 0 EQUIVALENCED DIRECTIVE FLAG
  3727. EF CON 0 ERROR FLAG
  3728. EL CON 0 END OF LINE FLAG
  3729. EM CON 0 DAYFILE ERROR MESSAGE ADDRESS
  3730. ER CON 0 ERROR ADDRESS
  3731. ET CON 0 EOF FOR INPUT FLAG
  3732. FA CON 0 FAST-ATTACH FLAG FOR *TFSPE*
  3733. FM CON 0 ALTERNATE FAMILY NAME
  3734. HD CON PDIR SECOND PART OF HEADER LENGTH
  3735. HL CON PDIRL PAGE HEADER LENGTH
  3736. IF CON I INPUT FILE FET ADDRESS
  3737. IS CON 0 INPUT FILE STATUS
  3738. JD CON 0 JULIAN DATE
  3739. LC CON MXLP+1 LINE COUNT OF OUTPUT PAGE
  3740. LF CON 0 LOCAL FILE OPTION
  3741. LV CON LVFA CURRENT LEVEL
  3742. ME CON 0 MAINTENANCE AND ERROR STATUS
  3743. MI CON 2RAA MACHINE ID
  3744. MX CON 0 CATALOG DEVICE MACHINE INDEX-1
  3745. NI BSS 2 NEW FILE IDENTIFIER
  3746. NL CON 0 NEXT LEVEL NUMBER
  3747. NV CON 0 NO VERIFY FLAG
  3748. OP DATA C*I* INPUT OPTION
  3749. OS CON 0 OUTPUT FILE STATUS
  3750. OT CON 0 ORIGIN TYPE
  3751. PD CON 0 PACKED DATE
  3752. PG CON 0 CURRENT PAGE NUMBER
  3753. QN CON 0 SEQUENCE NUMBER
  3754. RC CON 0 REEL COUNT
  3755. RF CON 0 RESERVE FLAG
  3756. RS CON 0 URDATE SPECIFIED FLAG
  3757. RT CON 0 RETRY FLAG
  3758. SB CON 0 ADDRESS OF STRING BUFFER
  3759. SE CON "CO" SEPARATOR CHARACTER
  3760. SF CON 0 SAVE SPECIAL STORAGE FLAG
  3761. SM CON 0 STRING BUFFER MAXIMUM ADDRESS
  3762. SP CON 0 STRING BUFFER POINTER
  3763. ST CON 0 VSN STATUS BITS
  3764. SV CON 0 SYMBOLIC ACCESS FLAG
  3765. SVF CON 0 SYSTEM VSN FLAG
  3766. TE CON 0 *TFSPE* FLAG
  3767. TG CON 0 TOGGLE PAGE
  3768. TI CON 0 TERMINAL INTERRUPT FLAG
  3769. VTT CON 0 VSN TAPE TYPE
  3770. WKSP SPACE 4,10
  3771. ** SPECIAL WORKING STORAGE.
  3772.  
  3773.  
  3774. WKSP BSS 0 FIRST WORD OF SPECIAL STORAGE
  3775. AV CON 0 NEW ASSIGNED VSN BUFFER ADDRESS
  3776. CA CON 0 CATALOG RANDOM ADDRESS
  3777. CN CON 0 CHARGE NUMBER
  3778. EV CON 0 EXTERNAL VSN
  3779. FI BSS 2 FILE IDENTIFIER
  3780. FV CON 0 FIRST VSN
  3781. PA CON 0 PREVIOUS FILE CATALOG RANDOM ADDRESS
  3782. UF CON 0 USER NAME FOUND FLAG
  3783. UN CON 0 USER NAME
  3784. VC CON 0 VSN COUNT
  3785. VF CON 0 VSN IN CATALOG FLAG
  3786. VI CON 0 SCRATCH VSN INTERLOCK FLAG
  3787. VS CON 0 VOLUME SERIAL NUMBER
  3788. WKSPL EQU *-WKSP SPECIAL WORKING STORAGE LENGTH
  3789. SSJ= SPACE 4,10
  3790. ** SSJ= BLOCK.
  3791.  
  3792.  
  3793. SSJ= VFD 12/0,24/-0,12/LSCS,12/IRSI
  3794. BSSZ SSJL-1
  3795. FCAT SPACE 4,10
  3796. ** FCAT - FILE CATALOG IMAGE.
  3797.  
  3798.  
  3799. CIGS BSS 0 FIRST WORD OF CATALOG IMAGES
  3800. FCAT CATBASE
  3801. FI CATBIT CELI,59,FIKL*6,10H,7H LOGICAL FILE IDENTIFIER
  3802. CATBIT CEST,17,6
  3803. AC CATBIT CEST,11,1,0 ALTERNATE AUDIT MODE
  3804. RECOVER CATBIT CEST,10,1,0 RECOVERED STATUS
  3805. CATBIT CEST,9,7
  3806. SV CATBIT CEST,2,1,0 SYMBOLIC ACCESS FLAG
  3807. CE CATBIT CEST,1,1,0 ERROR FLAG
  3808. FBIL CATBIT CEST,0,1,0 FILE BUSY INTERLOCK
  3809. EVSN CATBIT CEES,59,36 EXTERNAL VSN
  3810. CATBIT CEES,23,12
  3811. REELC CATBIT CEES,11,12,0 REEL COUNT
  3812. CATBIT CETD,59,1
  3813. LB CATBIT CETD,58,2,2 LABEL
  3814. TTYP CATBIT CETD,56,2,2 TAPE DEVICE TYPE
  3815. POS *P+2
  3816. D CATBIT CETD,56,6,44B TAPE DEVICE TYPE / DENSITY
  3817. CV CATBIT CETD,50,3,2 CONVERSION MODE
  3818. CATBIT CETD,47,12
  3819. F CATBIT CETD,35,6,0 FORMAT
  3820. NS CATBIT CETD,29,6,0 NOISE SIZE
  3821. FC CATBIT CETD,23,24,"MXFC" MAXIMUM BLOCK SIZE
  3822. IVSN CATBIT CEVS,59,36 INTERNAL VSN
  3823. FA CATBIT CEVS,23,6,0 ACCESSIBILITY CHARACTER
  3824. CATBIT CEVS,17,3
  3825. SN CATBIT CEVS,14,15,0001 SECTION NUMBER
  3826. PI CATBIT CEPI,59,FIKL*6,10H,7H PHYSICAL FILE IDENTIFIER
  3827. CATBIT CESQ,17,3
  3828. QN CATBIT CESQ,14,15,0001 SEQUENCE NUMBER
  3829. SI CATBIT CESI,59,VSKL*6 SET IDENTIFIER
  3830. E CATBIT CESI,23,9,00 GENERATION VERSION NUMBER
  3831. G CATBIT CESI,14,15,0001 GENERATION NUMBER
  3832. CR CATBIT CERC,59,30 CREATION DATE (YYDDD)
  3833. RT CATBIT CERC,29,30 RETENTION DATE (YYDDD)
  3834. PW CATBIT CEPW,59,PWKL*6,0 PASSWORD
  3835. CATBIT CEPW,17,6
  3836. CT CATBIT CEPW,11,6,FCPR FILE CATEGORY
  3837. M CATBIT CEPW,5,6,FMRE FILE MODE
  3838. NCAT CATBIT CECD,59,24 NEXT CATALOG RANDOM ADDRESS
  3839. CDATE CATBIT CECD,35,18 CREATION DATE (PACKED)
  3840. CTIME CATBIT CECD,17,18 CREATION TIME (PACKED)
  3841. AUCAT CATBIT CEMD,59,24 ADMIT CATALOG RANDOM ADDRESS
  3842. MDATE CATBIT CEMD,35,18 MODIFICATION DATE (PACKED)
  3843. MTIME CATBIT CEMD,17,18 MODIFICATION TIME (PACKED)
  3844. ACOUNT CATBIT CEAD,59,24,0 ACCESS COUNT
  3845. ADATE CATBIT CEAD,35,18 ACCESS DATE (PACKED)
  3846. ATIME CATBIT CEAD,17,18 ACCESS TIME (PACKED)
  3847. UC CATBIT CEUC,59,UCKL*6,0 USER CONTROL WORD
  3848. CN CATBIT CECN,59,60 CHARGE NUMBER
  3849. PN CATBIT CEPN,59,PNKL*6 PROJECT NUMBER
  3850. CATBIT CEPN+2,59,60
  3851. CATBIT CEPN+3,59,60
  3852. CATBIT CEPN+4,59,60
  3853. CATEND TCEL END OF TAPE FILE CATALOG
  3854. ACAT SPACE 4,10
  3855. ** ACAT - ALTERNATE USER CATALOG IMAGE.
  3856.  
  3857.  
  3858. ACAT CATBASE
  3859. AUSER CATBIT AEUN,59,UNKL*6 ALTERNATE USER NAME
  3860. CATBIT AEUN,17,18
  3861. AACOUNT CATBIT AEAC,59,18,0000 ACCESS COUNT
  3862. AMODE CATBIT AEAC,41,6,0 ADMIT MODE
  3863. AADATE CATBIT AEAC,35,18 ACCESS DATE
  3864. AATIME CATBIT AEAC,17,18 ACCESS TIME
  3865. CATEND TAEL END OF ALTERNATE USER CATALOG
  3866. VCAT SPACE 4,10
  3867. ** VCAT - VSN CATALOG IMAGE.
  3868.  
  3869.  
  3870. VCAT CATBASE
  3871. VSN CATBIT VEES,59,VSKL*6 VSN
  3872. VASC CATBIT VEES,23,6,0 ASSIGNED VSN CATALOG NUMBER
  3873. VASF CATBIT VEES,17,18,0 ASSIGNED FILE POINTER
  3874. PRN CATBIT VEVS,59,VSKL*6 INTERNAL VSN (PRN)
  3875. REELNO CATBIT VEVS,23,6,0 REEL NUMBER
  3876. CATBIT VEVS,17,1
  3877. MAINT CATBIT VEVS,16,1,0 MAINTENANCE FLAG
  3878. CATBIT VEVS,15,1,1 AVAILABLE SCRATCH STATUS
  3879. CATBIT VEVS,14,2
  3880. OWNER CATBIT VEVS,12,1,0 OWNERSHIP TYPE
  3881. CATBIT VEVS,11,4
  3882. SYSTEM CATBIT VEVS,7,1,0 SYSTEM VSN FLAG
  3883. VT CATBIT VEVS,6,2,0 VSN ENTRY TAPE TYPE (0=MT/NT,1=CT,3=AT)
  3884. NEWRDT CATBIT VEVS,4,1,0 NEW RELEASE DATE FORMAT
  3885. SITE CATBIT VEVS,3,1,0 SITE STATUS
  3886. CATBIT VEVS,2,1
  3887. ERRFLAG CATBIT VEVS,1,1,0 ERROR FLAG
  3888. VSBF CATBIT VEVS,0,1,0 VSN BUSY FLAG
  3889. FVSN CATBIT VEFV,59,36 FIRST VSN
  3890. CATBIT VEFV,23,24
  3891. NVSN CATBIT VENV,59,36 NEXT VSN
  3892. USAGE CATBIT VENV,23,6,0 USAGE COUNT
  3893. URDATE CATBIT VENV,17,18 RELEASE DATE
  3894. CATEND TSVL END OF VSN ENTRY CATALOG
  3895. DFIC SPACE 4,10
  3896. ** DFIC - DEFAULT FILE CATALOG.
  3897.  
  3898.  
  3899. DFIC CATBASE
  3900. CATBIT CELI,59,FIKL*6,10H,7H LOGICAL FILE IDENTIFIER
  3901. CATBIT CEST,17,6
  3902. CATBIT CEST,11,1,0 ALTERNATE AUDIT MODE
  3903. CATBIT CEST,10,1,0 RECOVERED STATUS
  3904. CATBIT CEST,9,7
  3905. CATBIT CEST,2,1,0 SYMBOLIC ACCESS FLAG
  3906. CATBIT CEST,1,1,0 ERROR FLAG
  3907. CATBIT CEST,0,1,0 FILE BUSY INTERLOCK
  3908. CATBIT CEES,59,36 EXTERNAL VSN
  3909. CATBIT CEES,23,12
  3910. CATBIT CEES,11,12,0 REEL COUNT
  3911. CATBIT CETD,59,1
  3912. CATBIT CETD,58,2,2 LABEL
  3913. CATBIT CETD,56,6,44B TAPE DEVICE TYPE / DENSITY
  3914. CATBIT CETD,50,3,2 CONVERSION MODE
  3915. CATBIT CETD,47,12
  3916. CATBIT CETD,35,6,0 FORMAT
  3917. CATBIT CETD,29,6,0 NOISE SIZE
  3918. CATBIT CETD,23,24,"MXFC" MAXIMUM BLOCK SIZE
  3919. CATBIT CEVS,59,36 INTERNAL VSN
  3920. CATBIT CEVS,23,6,0 ACCESSIBILITY CHARACTER
  3921. CATBIT CEVS,17,3
  3922. CATBIT CEVS,14,15,0001 SECTION NUMBER
  3923. CATBIT CEPI,59,FIKL*6 PHYSICAL FILE IDENTIFIER
  3924. CATBIT CESQ,17,3
  3925. CATBIT CESQ,14,15,0001 SEQUENCE NUMBER
  3926. CATBIT CESI,59,VSKL*6 SET IDENTIFIER
  3927. CATBIT CESI,23,9,00 GENERATION VERSION NUMBER
  3928. CATBIT CESI,14,15,0001 GENERATION NUMBER
  3929. CATBIT CERC,59,30 CREATION DATE (YYDDD)
  3930. CATBIT CERC,29,30 RETENTION DATE (YYDDD)
  3931. CATBIT CEPW,59,PWKL*6,0 PASSWORD
  3932. CATBIT CEPW,17,6
  3933. CATBIT CEPW,11,6,FCPR FILE CATEGORY
  3934. CATBIT CEPW,5,6,FMRE FILE MODE
  3935. CATBIT CECD,59,24 NEXT CATALOG RANDOM ADDRESS
  3936. CATBIT CECD,35,18 CREATION DATE (PACKED)
  3937. CATBIT CECD,17,18 CREATION TIME (PACKED)
  3938. CATBIT CEMD,59,24 ADMIT CATALOG RANDOM ADDRESS
  3939. CATBIT CEMD,35,18 MODIFICATION DATE (PACKED)
  3940. CATBIT CEMD,17,18 MODIFICATION TIME (PACKED)
  3941. CATBIT CEAD,59,24,0 ACCESS COUNT
  3942. CATBIT CEAD,35,18 ACCESS DATE (PACKED)
  3943. CATBIT CEAD,17,18 ACCESS TIME (PACKED)
  3944. CATBIT CEUC,59,UCKL*6,0 USER CONTROL WORD
  3945. CATBIT CECN,59,60 CHARGE NUMBER
  3946. CATBIT CEPN,59,PNKL*6 PROJECT NUMBER
  3947. CATBIT CEPN+2,59,60
  3948. CATBIT CEPN+3,59,60
  3949. CATBIT CEPN+4,59,60
  3950. CATEND TCEL END OF DEFAULT FILE CATALOG
  3951. DAUC SPACE 4,10
  3952. ** DAUC - DEFAULT ALTERNATE USER CATALOG.
  3953.  
  3954.  
  3955. DAUC CATBASE
  3956. CATBIT AEUN,59,UNKL*6 ALTERNATE USER NAME
  3957. CATBIT AEUN,17,18
  3958. CATBIT AEAC,59,18,0000 ACCESS COUNT
  3959. CATBIT AEAC,41,1,0 ADMIT TYPE
  3960. CATBIT AEAC,40,5,0 ADMIT MODE
  3961. CATBIT AEAC,35,18 ACCESS DATE
  3962. CATBIT AEAC,17,18 ACCESS TIME
  3963. CATEND TAEL END OF DEFAULT ALTERNATE USER CATALOG
  3964. DVSC SPACE 4,10
  3965. ** DVSC - DEFAULT VSN CATALOG.
  3966.  
  3967.  
  3968. DVSC CATBASE
  3969. CATBIT VEES,59,VSKL*6 VSN
  3970. CATBIT VEES,23,6,0 ASSIGNED FILE CATALOG NUMBER
  3971. CATBIT VEES,17,18,0 ASSIGNED FILE POINTER
  3972. CATBIT VEVS,59,VSKL*6 INTERNAL VSN (PRN)
  3973. CATBIT VEVS,23,6,0 REEL NUMBER
  3974. CATBIT VEVS,17,1
  3975. CATBIT VEVS,16,1,0 MAINTENANCE FLAG
  3976. CATBIT VEVS,15,1,1 AVAILABLE SCRATCH STATUS
  3977. CATBIT VEVS,14,2
  3978. CATBIT VEVS,12,1,0 OWNERSHIP TYPE
  3979. CATBIT VEVS,11,4
  3980. CATBIT VEVS,7,1,0 SYSTEM VSN FLAG
  3981. CATBIT VEVS,6,2,0 VSN ENTRY TAPE DEVICE TYPE
  3982. CATBIT VEVS,4,1,0 NEW RELEASE DATE FORMAT
  3983. CATBIT VEVS,3,1,0 SITE STATUS
  3984. CATBIT VEVS,2,1
  3985. CATBIT VEVS,1,1,0 ERROR FLAG
  3986. CATBIT VEVS,0,1,0 VSN BUSY FLAG
  3987. CATBIT VEFV,59,36 FIRST VSN
  3988. CATBIT VEFV,23,24
  3989. CATBIT VENV,59,36 NEXT VSN
  3990. CATBIT VENV,23,6,0 USAGE COUNT
  3991. CATBIT VENV,17,18 RELEASE DATE
  3992. CATEND TSVL END OF VSN ENTRY CATALOG
  3993. CIGSL EQU *-CIGS LENGTH OF CATALOG IMAGES
  3994. THBP SPACE 4,15
  3995. ** TABLE FOR HOLD BUFFER PROCESSING.
  3996. *
  3997. * THIS TABLE CONTAINS 2 WORD ENTRIES FOR EACH MEMORY PARTITION
  3998. * THAT NEEDS TO BE SAVED WHEN PROCESSING HIGHER LEVEL
  3999. * DIRECTIVES FROM A LOWER LEVEL. THE TABLE IS TERMINATED WITH
  4000. * A ZERO WORD.
  4001. *
  4002. *T, 60/ADDRESS
  4003. *T, 60/WORD COUNT
  4004.  
  4005.  
  4006. THBP CON WKSP,WKSPL SPECIAL WORKING STORAGE
  4007. CON CIGS,CIGSL CATALOG IMAGES
  4008. CON TAVS,TAVSL TABLE OF ASSIGNED VSNS
  4009. CON 0
  4010.  
  4011. * HBUFL SHOULD BE THE SUM OF LENGTHS OF THE MEMORY PARTITIONS
  4012. * SAVED IN HBUF.
  4013.  
  4014. HBUFL EQU WKSPL+CIGSL+TAVSL
  4015. DTAB SPACE 4,15
  4016. ** DIRECTIVE TABLES.
  4017. *
  4018. * ENTRY ONE WORD PER DIRECTIVE.
  4019. * 42/IDENT,18/ADDR
  4020. *
  4021. * IDENT = DIRECTIVE IDENTIFIER, LEFT JUSTIFIED.
  4022. * ADDR = ADDRESS OF DIRECTIVE CONTROL TABLE IF
  4023. * EQUIVALENCED DIRECTIVE.
  4024. * = (-1) * PROCESSOR ADDRESS IF NOT EQUIVALENCED
  4025. * DIRECTIVE.
  4026. *
  4027. * EACH DIRECTIVE TABLE IS TERMINATED BY A ZERO WORD.
  4028. TFAD SPACE 4,10
  4029. ** TFAD - TABLE OF FAMILY LEVEL DIRECTIVES.
  4030.  
  4031.  
  4032. TFAD BSS 0
  4033. DTAB ALTFAM
  4034. DTAB AUDITCH
  4035. DTAB AUDITUN
  4036. DTAB AUDITVS
  4037. DTAB BRIEF,-/LVFA/BRF
  4038. DTAB CALTFAM
  4039. DTAB CATERR
  4040. DTAB COLON
  4041. DTAB DISPLAY,-DIS
  4042. DTAB DROP,-/LVFA/DRO
  4043. DTAB STOP,-STO
  4044. DTAB FAMNAME
  4045. DTAB FOREIGN
  4046. DTAB GLOBAL
  4047. DTAB GO,-/LVFA/PGO
  4048. DTAB HELP,-HEL
  4049. DTAB INVALID
  4050. DTAB ISV,-/LVFA/ISV
  4051. DTAB LINKFAM
  4052. DTAB MID
  4053. DTAB MREADCH
  4054. DTAB MREADUN
  4055. DTAB MREADVS
  4056. DTAB NOBRIEF,-/LVFA/NBF
  4057. DTAB PURGALL
  4058. DTAB PURGE
  4059. DTAB READ
  4060. DTAB RELEASE
  4061. DTAB REMOVE
  4062. DTAB REWIND
  4063. DTAB SEPARAT
  4064. DTAB SOURCCH
  4065. DTAB SOURCE,-/LVFA/SOU
  4066. DTAB SOURCUN
  4067. DTAB SOURCVS
  4068. DTAB USER
  4069. DTAB VALIDAT
  4070. DTAB VSN
  4071. CON 0 END OF TABLE
  4072. TVSD SPACE 4,10
  4073. ** TVSD - TABLE OF VSN LEVEL DIRECTIVES.
  4074.  
  4075.  
  4076. TVSD BSS 0
  4077. DTAB ADD,-/LVVS/ADD
  4078. DTAB BRIEF,-/LVFA/BRF
  4079. DTAB COLON
  4080. DTAB DISPLAY,-DIS
  4081. DTAB DROP,-/LVVS/DRO
  4082. DTAB STOP,-STO
  4083. DTAB ERRFLAG
  4084. DTAB GO,-/LVVS/PGO
  4085. DTAB HELP,-HEL
  4086. DTAB MAINT
  4087. DTAB NOBRIEF,-/LVFA/NBF
  4088. DTAB OWNER
  4089. PRN DTAB PRN
  4090. DTAB READ
  4091. DTAB REVISE,-/LVVS/REV
  4092. DTAB REWIND
  4093. DTAB SEPARAT
  4094. DTAB SITE
  4095. DTAB STATUS
  4096. DTAB SYSTEM
  4097. DTAB USAGE
  4098. DTAB VT
  4099. CON 0 END OF TABLE
  4100. TUSD SPACE 4,10
  4101. ** TUSD - TABLE OF USER LEVEL DIRECTIVES.
  4102.  
  4103.  
  4104. TUSD BSS 0
  4105. DTAB AUDITCN
  4106. DTAB AUDITFI
  4107. DTAB AUDITFV
  4108. DTAB BRIEF,-/LVFA/BRF
  4109. DTAB COLON
  4110. DTAB DISPLAY,-DIS
  4111. DTAB DROP,-/LVUS/DRO
  4112. DTAB STOP,-STO
  4113. FILE DTAB FILE
  4114. DTAB FILEV
  4115. DTAB GO,-/LVUS/DRO
  4116. DTAB HELP,-HEL
  4117. DTAB MREADCN
  4118. DTAB MREADFI
  4119. DTAB MREADFV
  4120. DTAB NOBRIEF,-/LVFA/NBF
  4121. DTAB READ
  4122. DTAB RELEASF
  4123. DTAB RELEASV
  4124. DTAB REWIND
  4125. DTAB SEPARAT
  4126. DTAB SOURCCN
  4127. DTAB SOURCFI
  4128. DTAB SOURCFV
  4129. CON 0 END OF TABLE
  4130. TFLD SPACE 4,10
  4131. ** TFLD - TABLE OF FILE LEVEL DIRECTIVES.
  4132.  
  4133.  
  4134. TFLD BSS 0
  4135. DTAB AC
  4136. DTAB ACOUNT
  4137. DTAB ADATE
  4138. DTAB AMEND,-/LVFI/ALT
  4139. DTAB ATIME
  4140. DTAB AUDITAU
  4141. DTAB AUSER
  4142. DTAB AVSN
  4143. DTAB BRIEF,-/LVFA/BRF
  4144. DTAB CDATE
  4145. DTAB CE
  4146. DTAB CN
  4147. DTAB COLON
  4148. DTAB CR
  4149. DTAB CT
  4150. DTAB CTIME
  4151. DTAB CV
  4152. DTAB D
  4153. DTAB DISPLAY,-DIS
  4154. DTAB DROP,-/LVFI/DRO
  4155. DTAB E
  4156. DTAB STOP,-STO
  4157. DTAB F
  4158. DTAB FA
  4159. DTAB FC
  4160. FI DTAB FI
  4161. DTAB G
  4162. DTAB GO,-/LVFI/PGO
  4163. DTAB HELP,-HEL
  4164. DTAB LB
  4165. DTAB M
  4166. DTAB MDATE
  4167. DTAB MTIME
  4168. DTAB NOBRIEF,-/LVFA/NBF
  4169. DTAB NS
  4170. PI DTAB PI
  4171. DTAB PN
  4172. PW DTAB PW
  4173. DTAB RDATE
  4174. DTAB READ
  4175. DTAB RECOVER
  4176. DTAB RESERVE,-/LVFI/RES
  4177. DTAB REWIND
  4178. DTAB RT
  4179. DTAB SEPARAT
  4180. SI DTAB SI
  4181. DTAB SN
  4182. DTAB SV
  4183. DTAB TOWNER
  4184. DTAB TSITE
  4185. UC DTAB UC
  4186. DTAB URDATE
  4187. CON 0 END OF TABLE
  4188. TAUD SPACE 4,10
  4189. ** TAUD - TABLE OF ALTERNATE USER LEVEL DIRECTIVES.
  4190.  
  4191.  
  4192. TAUD BSS 0
  4193. DTAB AACOUNT
  4194. DTAB AADATE
  4195. DTAB AATIME
  4196. DTAB ADMIT,-/LVAU/ADM
  4197. DTAB AMODE
  4198. DTAB BRIEF,-/LVFA/BRF
  4199. DTAB COLON
  4200. DTAB DISPLAY,-DIS
  4201. DTAB DROP,-/LVAU/DRO
  4202. DTAB STOP,-STO
  4203. DTAB GO,-/LVAU/ADM
  4204. DTAB HELP,-HEL
  4205. DTAB NOBRIEF,-/LVFA/NBF
  4206. DTAB READ
  4207. DTAB REWIND
  4208. DTAB SEPARAT
  4209. CON 0 END OF TABLE
  4210. TDTA SPACE 4,10
  4211. ** TDTA - TABLE OF DIRECTIVE TABLE ADDRESSES.
  4212.  
  4213.  
  4214. TDTA INDTAB 1
  4215. INDEX LVFA,CON,TFAD FAMILY LEVEL
  4216. INDEX LVVS,CON,TVSD VSN LEVEL
  4217. INDEX LVUS,CON,TUSD USER LEVEL
  4218. INDEX LVFI,CON,TFLD FILE LEVEL
  4219. INDEX LVAU,CON,TAUD ALTERNATE USER LEVEL
  4220. DCTAB SPACE 4,50
  4221. ** DIRECTIVE CONTROL TABLES.
  4222. *
  4223. * ENTRY AT LEAST THREE WORDS PER DIRECTIVE.
  4224. * 12/INDEX,6/MINC,6/MAXC,18/ALLOW,18/SUPP
  4225. * 12/UBIT,12/BITC,18/PROC,18/ENTRY
  4226. * 1/OB,1/PVL,1/DVL,3/ ,18/MINV,18/MAXV,18/DEFAULT
  4227. *
  4228. * INDEX = *DIP* PROCESSOR INDEX.
  4229. * PIZF - ZERO FILL.
  4230. * PIOP - OPTION SELECTION.
  4231. * PIBD - NUMERIC BINARY DATA.
  4232. * PIPD - PACKED DATE.
  4233. * PIPT - PACKED TIME.
  4234. * PIJD - JULIAN DATE.
  4235. * PIVQ - VSN/SEQUENCE NUMBER.
  4236. * PIVS - PADDED VSN.
  4237. * MINC = MINIMUM NUMBER OF CHARACTERS.
  4238. * MAXC = MAXIMUM NUMBER OF CHARACTERS.
  4239. * ALLOW = ADDRESS OF ALLOWED CHARACTERS BIT STRING.
  4240. * SUPP = ADDRESS OF SUPPRESSED CHARACTERS BIT STRING.
  4241. * UBIT = UPPER BIT POSITION OF CATALOG ENTRY.
  4242. * BITC = BIT COUNT OF CATALOG ENTRY.
  4243. * = 0 IF NO CATALOG ENTRY.
  4244. * PROC = POST PROCESSOR ADDRESS.
  4245. * = 0 IF NO POST PROCESSOR.
  4246. * ENTRY = ADDRESS OF CATALOG ENTRY.
  4247. * PVL = FLAG FOR IMPLIED DROP REQUIREMENT.
  4248. * = 0 IF DIRECTIVE REQUIRES NO IMPLIED DROP.
  4249. * = 1 IF DIRECTIVE REQUIRES AN IMPLIED DROP.
  4250. * DVL = FLAG FOR LOWER LEVEL VALIDITY.
  4251. * = 0 IF VALID FROM LOWER LEVEL.
  4252. * = 1 IF NOT VALID FROM DIFFERENT LEVEL.
  4253. * MINV = ADDRESS OF MINIMUM VALUE FOR *PIBD* TYPE.
  4254. * MAXV = ADDRESS OF MAXIMUM VALUE FOR *PIBD* TYPE.
  4255. * = ADDRESS OF OPTION TABLE FOR *PIOP* TYPE.
  4256. * DEFAULT = ADDRESS OF DEFAULT VALUE.
  4257. * OB = OUTPUT BLOCK FLAG. IF SET, AN EXTRA TWO WORD
  4258. * BLOCK FOLLOWS.
  4259. * 6/KCH,6/KUB,18/KADD,6/ACH,6/AUB,18/AADD
  4260. * 6/SCH,6/SUB,18/SADD,6/MCH,6/MUB,18/MADD
  4261. *
  4262. * KCH = NUMBER OF CHARACTERS IN K-DISPLAY.
  4263. * KUB = UPPER BIT POSITION IN K-DISPLAY.
  4264. * KADD = ADDRESS IN K-DISPLAY.
  4265. * ACH = NUMBER OF CHARACTERS IN AUDIT LISTING.
  4266. * AUB = UPPER BIT POSITION IN AUDIT LISTING.
  4267. * AADD = ADDRESS IN AUDIT LISTING.
  4268. * SCH = NUMBER OF CHARACTERS IN SOURCE LISTING.
  4269. * SUB = UPPER BIT POSITION IN SOURCE LISTING.
  4270. * SADD = ADDRESS IN SOURCE LISTING.
  4271. * MCH = NUMBER OF CHARACTERS IN MACHINE READABLE LIST.
  4272. * MUB = UPPER BIT POSITION IN MACHINE READABLE LISTING.
  4273. * MADD = ADDRESS IN MACHINE READABLE LISTING.
  4274.  
  4275.  
  4276. * UNIVERSAL DIRECTIVE CONTROL TABLES.
  4277.  
  4278. COLON DCTAB PIBS,0,1,="EC",,59,UCKL*6,,CL,,,=0
  4279. COLON DCTABL 0,0
  4280. COLON DCTABO ,,,0,0,0,0,0,0,0,0,0
  4281. READ DCTAB PIZF,1,7,,,59,42,REA,AI
  4282. READ DCTABL 0,0
  4283. READ DCTABO ,,,0,0,0,0,0,0,0,0,0
  4284. REWIND DCTAB PIZF,1,7,,,59,42,REW,R
  4285. REWIND DCTABL 0,0
  4286. SEPARAT DCTAB PIBS,0,1,="EC",,59,UCKL*6,,SE,,,(=C*,*)
  4287. SEPARAT DCTABL 0,0
  4288. SEPARAT DCTABO ,,,0,0,0,0,0,0,0,0,0
  4289.  
  4290. * FAMILY LEVEL DIRECTIVE CONTROL TABLES.
  4291.  
  4292. ALTFAM DCTAB PIZF,0,7,,,59,FNKL*6,/LVFA/AFM,/LVFA/AFMA,,,=0
  4293. ALTFAM DCTABL 0,0
  4294. AUDITCH DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVFA/ACH,CN
  4295. AUDITCH DCTABL 0,0
  4296. AUDITUN DCTAB PIZF,0,7,="AS",,59,UNKL*6,/LVFA/AUN,UN,,,=0
  4297. AUDITUN DCTABL 0,0
  4298. AUDITVS DCTAB PIVS,0,6,,,59,VSKL*6,/LVFA/AVS,VS,,,=0
  4299. AUDITVS DCTABL 0,0
  4300. CALTFAM DCTAB PIZF,0,7,,,59,FNKL*6,/LVFA/CAF,/LVFA/CAFA,,,=0
  4301. CALTFAM DCTABL 0,0
  4302. CATERR DCTAB PIOP,0,10,,,0,1,/LVFA/CAT,/LVFA/CATA
  4303. CATERR DCTABL 0,0
  4304. FAMNAME DCTAB PIZF,0,7,,,59,7*6,/LVFA/FAM,/LVFA/FAMA,,,FM
  4305. FAMNAME DCTABL 0,0
  4306. FOREIGN DCTAB PIOP,0,10,,,0,1,/LVFA/FOR,/LVFA/FORA
  4307. FOREIGN DCTABL 0,0
  4308. GLOBAL DCTAB PIOP,0,10,,,0,1,/LVFA/GLO,/LVFA/GLOA
  4309. GLOBAL DCTABL 0,0
  4310. INVALID DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFA/INV,UN
  4311. INVALID DCTABL 0,0
  4312. LINKFAM DCTAB PIZF,0,7,,,59,FNKL*6,/LVFA/LKF,/LVFA/LKFA,,,=0
  4313. LINKFAM DCTABL 0,0
  4314. MID DCTAB PIZF,0,2,,,11,2*6,/LVFA/MID,/LVFA/MIDA,,,MI
  4315. MID DCTABL 0,0
  4316. MREADCH DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVFA/MCH,CN
  4317. MREADCH DCTABL 0,0
  4318. MREADUN DCTAB PIZF,0,7,="AS",,59,UNKL*6,/LVFA/MUN,UN,,,=0
  4319. MREADUN DCTABL 0,0
  4320. MREADVS DCTAB PIVS,0,6,,,59,VSKL*6,/LVFA/MVS,VS,,,=0
  4321. MREADVS DCTABL 0,0
  4322. PURGALL DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFA/PGA,UN
  4323. PURGALL DCTABL 1,1
  4324. PURGE DCTAB PIVS,1,6,,,59,VSKL*6,/LVFA/PTF,VS
  4325. PURGE DCTABL 1,1
  4326. RELEASE DCTAB PIVS,1,6,,,59,VSKL*6,/LVFA/REL,VS
  4327. RELEASE DCTABL 1,1
  4328. REMOVE DCTAB PIVS,1,6,,,59,VSKL*6,/LVFA/REM,VS
  4329. REMOVE DCTABL 1,1
  4330. SOURCCH DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVFA/SCH,CN
  4331. SOURCCH DCTABL 0,0
  4332. SOURCUN DCTAB PIZF,0,7,="AS",,59,UNKL*6,/LVFA/SUN,UN,,,=0
  4333. SOURCUN DCTABL 0,0
  4334. SOURCVS DCTAB PIVS,0,6,,,59,VSKL*6,/LVFA/SVS,VS,,,=0
  4335. SOURCVS DCTABL 0,0
  4336. USER DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFA/USE,UN
  4337. USER DCTABL 1,0
  4338. VALIDAT DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFA/VAL,UN
  4339. VALIDAT DCTABL 0,0
  4340. VSN DCTAB PIVS,1,6,,,59,VSKL*6,/LVFA/VSN,VS
  4341. VSN DCTABL 1,0
  4342.  
  4343. * VSN LEVEL DIRECTIVE CONTROL TABLES.
  4344.  
  4345. ERRFLAG DCTAB PIOP,0,10
  4346. ERRFLAG DCTABL 0,1
  4347. ERRFLAG DCTABO 0,0,0,0,0,0
  4348. MAINT DCTAB PIOP,0,10
  4349. MAINT DCTABL 0,1
  4350. MAINT DCTABO 0,0,0,0,0,0
  4351. OWNER DCTAB PIOP,0,10,,,,,/LVVS/OWN
  4352. OWNER DCTABL 0,1
  4353. OWNER DCTABO
  4354. PRN DCTAB PIBF,0,6,="AC",="NC",,,,,,,VS
  4355. PRN DCTABL 0,1
  4356. PRN DCTABO ,,,,,,0,0,0
  4357. SITE DCTAB PIOP,0,10
  4358. SITE DCTABL 0,1
  4359. SITE DCTABO
  4360. STATUS DCTAB PIOP,0,10,,,1,2,/LVVS/STA,ME
  4361. STATUS DCTABL 0,1
  4362. STATUS DCTABO 0,0,0,0,0,0,0,0,0,0,0,0
  4363. SYSTEM DCTAB PIOP,2,3,,,,,/LVVS/SYS
  4364. SYSTEM DCTABL 0,1
  4365. SYSTEM DCTABO
  4366. USAGE DCTAB PIBD,0,10,,,,,,,=0,=77B,=C*0*
  4367. USAGE DCTABL 0,1
  4368. USAGE DCTABO -2
  4369. VT DCTAB PIOP,2,4,,,,,/LVVS/VTY
  4370. VT DCTABL 0,1
  4371. VT DCTABO
  4372.  
  4373. * USER LEVEL DIRECTIVE CONTROL TABLES.
  4374.  
  4375. AUDITCN DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVUS/ACN,CN
  4376. AUDITCN DCTABL 0,0
  4377. AUDITFI DCTAB PIBF,1,17,="AC",="NC",59,FIKL*6,/LVUS/AFI,FI
  4378. AUDITFI DCTABL 0,0
  4379. AUDITFV DCTAB PIVS,1,6,,,59,VSKL*6,/LVUS/AFV,VS
  4380. AUDITFV DCTABL 0,0
  4381. FILE DCTAB PIBF,1,17,="AC",="NC",59,FIKL*6,/LVUS/FIL,FI
  4382. FILE DCTABL 1,0
  4383. FILEV DCTAB PIVQ,1,6,,,59,60,/LVUS/FIV,FV
  4384. FILEV DCTABL 1,0
  4385. MREADCN DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVUS/MCN,CN
  4386. MREADCN DCTABL 0,0
  4387. MREADFI DCTAB PIBF,1,17,="AC",="NC",59,FIKL*6,/LVUS/MFI,FI
  4388. MREADFI DCTABL 0,0
  4389. MREADFV DCTAB PIVS,1,6,,,59,VSKL*6,/LVUS/MFV,VS
  4390. MREADFV DCTABL 0,0
  4391. RELEASF DCTAB PIBF,1,17,,,59,FIKL*6,/LVUS/RLF,FI
  4392. RELEASF DCTABL 1,1
  4393. RELEASV DCTAB PIVQ,1,6,,,59,60,/LVUS/RLV,VS
  4394. RELEASV DCTABL 1,1
  4395. SOURCCN DCTAB PIZF,1,10,="AS",,59,CNKL*6,/LVUS/SCN,CN
  4396. SOURCCN DCTABL 0,0
  4397. SOURCFI DCTAB PIBF,1,17,="AC",="NC",59,FIKL*6,/LVUS/SFI,FI
  4398. SOURCFI DCTABL 0,0
  4399. SOURCFV DCTAB PIVS,1,6,,,59,VSKL*6,/LVUS/SFV,VS
  4400. SOURCFV DCTABL 0,0
  4401.  
  4402. * FILE LEVEL DIRECTIVE CONTROL TABLES.
  4403.  
  4404. AC DCTAB PIOP,0,10
  4405. AC DCTABL 1,0
  4406. AC DCTABO ,,,,,,,,,0,0,0
  4407. ACOUNT DCTAB PIBD,0,10,,,,,,,=0,="MXAC",=C*0000*
  4408. ACOUNT DCTABL 1,0
  4409. ACOUNT DCTABO -8
  4410. ADATE DCTAB PIPD,0,6,,,,,,,,,DD
  4411. ADATE DCTABL 1,0
  4412. ADATE DCTABO
  4413. ATIME DCTAB PIPT,0,6,,,,,,,,,DT
  4414. ATIME DCTABL 1,0
  4415. ATIME DCTABO
  4416. AUDITAU DCTAB PIZF,0,7,="AS",,59,UNKL*6,/LVFI/AAU,AU,,,=0
  4417. AUDITAU DCTABL 0,0
  4418. AUSER DCTAB PIZF,1,7,="AS",,59,UNKL*6,/LVFI/AUS,AU
  4419. AUSER DCTABL 1,0
  4420. AVSN DCTAB PIVS,1,6,,,59,VSKL*6,/LVFI/AVS,VS
  4421. AVSN DCTABL 1,0
  4422. CDATE DCTAB PIPD,0,6,,,,,,,,,DD
  4423. CDATE DCTABL 1,0
  4424. CDATE DCTABO
  4425. CE DCTAB PIOP,0,10
  4426. CE DCTABL 1,0
  4427. CE DCTABO
  4428. CN DCTAB PIZF,0,10,="AS",,,,,,,=0
  4429. CN DCTABL 1,0
  4430. CN DCTABO
  4431. CR DCTAB PIJD,0,5,,,,,,,,,JD
  4432. CR DCTABL 1,0
  4433. CR DCTABO ,,,,,,,,,0,0,0
  4434. CT DCTAB PIOP,0,10
  4435. CT DCTABL 1,0
  4436. CT DCTABO
  4437. CTIME DCTAB PIPT,0,6,,,,,,,,,DT
  4438. CTIME DCTABL 1,0
  4439. CTIME DCTABO
  4440. CV DCTAB PIOP,0,10
  4441. CV DCTABL 1,0
  4442. CV DCTABO
  4443. D DCTAB PIOP,2,2,,,,,/LVFI/DEN
  4444. D DCTABL 1,0
  4445. D DCTABO
  4446. E DCTAB PIBD,0,10,,,,,,,=0,=99,=C*00*
  4447. E DCTABL 1,0
  4448. E DCTABO -2,,,,,,,,,0,0,0
  4449. F DCTAB PIOP,0,10
  4450. F DCTABL 1,0
  4451. F DCTABO
  4452. FA DCTAB PIZF,0,1,,,,,,,,,=0
  4453. FA DCTABL 1,0
  4454. FA DCTABO ,,,,,,,,,0,0,0
  4455. FC DCTAB PIBD,0,10,,,,,,,=0,="MXFC",=C*"MXFC"*
  4456. FC DCTABL 1,0
  4457. FC DCTABO -4,,,,,,,,,0,0,0
  4458. FI DCTAB PIBF,0,17,="AC",="NC",,,/LVFI/PFI,,,,FI
  4459. FI DCTABL 1,0
  4460. FI DCTABO 20,,,,,,0,0,0
  4461. G DCTAB PIBD,0,10,,,,,,,=1,=9999,=C*0001*
  4462. G DCTABL 1,0
  4463. G DCTABO -4,,,,,,,,,0,0,0
  4464. LB DCTAB PIOP,0,10
  4465. LB DCTABL 1,0
  4466. LB DCTABO
  4467. M DCTAB PIOP,0,10
  4468. M DCTABL 1,0
  4469. M DCTABO
  4470. MDATE DCTAB PIPD,0,6,,,,,,,,,DD
  4471. MDATE DCTABL 1,0
  4472. MDATE DCTABO
  4473. MTIME DCTAB PIPT,0,6,,,,,,,,,DT
  4474. MTIME DCTABL 1,0
  4475. MTIME DCTABO
  4476. NS DCTAB PIBD,0,10,,,,,,,=0,=31,=C*0*
  4477. NS DCTABL 1,0
  4478. NS DCTABO -2,,,,,,,,,0,0,0
  4479. PI DCTAB PIBF,0,17,="AC",="NC",,,,,,,FI
  4480. PI DCTABL 1,0
  4481. PI DCTABO 20,,,,,,0,0,0
  4482. PN DCTAB PIZF,0,20,="AH",,,,,,,=0
  4483. PN DCTABL 1,0
  4484. PN DCTABO 20
  4485. PW DCTAB PIZF,0,7,="EC",,,,,,,,=0
  4486. PW DCTABL 1,0
  4487. PW DCTABO ,,,,,,0,0,0
  4488. RDATE DCTAB PIPD,0,6,,,17,18,/LVFI/RDA,/LVFI/RDAA,,,(=1L)
  4489. RDATE DCTABL 1,0
  4490. RDATE DCTABO 0,0,0,0,0,0,0,0,0,0,0,0
  4491. RECOVER DCTAB PIOP,0,10
  4492. RECOVER DCTABL 1,0
  4493. RECOVER DCTABO ,,,0,0,0,,,,0,0,0
  4494. RT DCTAB PIJD,0,5,,,,,,,,,JD
  4495. RT DCTABL 1,0
  4496. RT DCTABO ,,,,,,,,,0,0,0
  4497. SI DCTAB PIBF,0,6,="AC",="NC",,,,,,,=0
  4498. SI DCTABL 1,0
  4499. SI DCTABO ,,,,,,0,0,0,0,0,0
  4500. SN DCTAB PIBD,0,10,,,,,,,=1,=9999,=C*0001*
  4501. SN DCTABL 1,0
  4502. SN DCTABO -4,,,,,,,,,0,0,0
  4503. SV DCTAB PIOP,0,10,,,,,/LVFI/PSV
  4504. SV DCTABL 1,0
  4505. SV DCTABO ,,,,,,,,,0,0,0
  4506. TOWNER DCTAB PIOP,0,10,,,/UPB/OWNER,/BTC/OWNER,,ST
  4507. TOWNER DCTABL 1,0
  4508. TOWNER DCTABO ,,,0,0,0,0,0,0,0,0,0
  4509. TSITE DCTAB PIOP,0,10,,,/UPB/SITE,/BTC/SITE,,ST
  4510. TSITE DCTABL 1,0
  4511. TSITE DCTABO ,,,0,0,0,0,0,0,0,0,0
  4512. UC DCTAB PIBF,0,10,="AC",="NC",,,,,,,=0
  4513. UC DCTABL 1,0
  4514. UC DCTABO ,,,,,,0,0,0
  4515. URDATE DCTAB PIPD,0,6,,,,,/LVFI/URD,TAVS+/CAT/URDATE,,,(=1L)
  4516. URDATE DCTABL 1,0
  4517. URDATE DCTABO
  4518.  
  4519. * ALTERNATE USER LEVEL DIRECTIVE CONTROL TABLES.
  4520.  
  4521. AACOUNT DCTAB PIBD,0,10,,,,,,,=0,="MXAA",=C*0000*
  4522. AACOUNT DCTABL 1,0
  4523. AACOUNT DCTABO -6,,,,,,,,,0,0,0
  4524. AADATE DCTAB PIPD,0,6,,,,,,,,,DD
  4525. AADATE DCTABL 1,0
  4526. AADATE DCTABO ,,,,,,,,,0,0,0
  4527. AATIME DCTAB PIPT,0,6,,,,,,,,,DT
  4528. AATIME DCTABL 1,0
  4529. AATIME DCTABO ,,,,,,,,,0,0,0
  4530. AMODE DCTAB PIOP,0,10
  4531. AMODE DCTABL 1,0
  4532. AMODE DCTABO ,,,,,,,,,0,0,0
  4533. DOTAB SPACE 4,10
  4534. ** DIRECTIVE OPTION TABLES.
  4535. *
  4536. * ENTRY TWO WORDS PER OPTION.
  4537. * 60/ IDENT
  4538. * 60/ VALUE
  4539. *
  4540. * IDENT = OPTION IDENTIFIER, LEFT JUSTIFIED.
  4541. * VALUE = VALUE ASSIGNED TO CATALOG ENTRY.
  4542. *
  4543. * EACH OPTION TABLE IS TERMINATED BY A ZERO WORD.
  4544.  
  4545.  
  4546. * FAMILY LEVEL OPTION TABLES.
  4547.  
  4548. CATERR DOTAB ((CLEAR,0),(SET,1))
  4549. FOREIGN DOTAB ((NO,0),(YES,1))
  4550. GLOBAL DOTAB ((NO,0),(YES,1))
  4551.  
  4552. * VSN LEVEL DIRECTIVE OPTION TABLES.
  4553.  
  4554. ERRFLAG DOTAB ((CLEAR,0),(SET,1))
  4555. MAINT DOTAB ((AVAILABLE,0),(HOLD,1))
  4556. STATUS DOTAB ((AVAILABLE,0),(CLEANED,1),(HOLD,2),(ERROR,3))
  4557. OWNER DOTAB ((CENTER,0),(USER,1))
  4558. SITE DOTAB ((ON,0),(OFF,1))
  4559. SYSTEM DOTAB ((NO,0),(YES,1))
  4560. VT DOTAB ((MTNT,0),(CT,1),(AT,3))
  4561.  
  4562. * FILE LEVEL DIRECTIVE OPTION TABLES.
  4563.  
  4564. AC DOTAB ((NO,0),(YES,1))
  4565. CE DOTAB ((CLEAR,0),(SET,1))
  4566. CT DOTAB ((PRIVATE,FCPR),(SPRIV,FCSP),(PUBLIC,FCPU))
  4567. CV DOTAB ((AS,2),(EB,3))
  4568. D DOTAB ((PE,44B),(GE,45B),(HI,2),(LO,1),(HY,3),(HD,43B),(CE,26
  4569. ,B),(AE,66B))
  4570. F DOTAB ((I,0),(SI,1),(F,2),(S,3),(L,4),(LI,5))
  4571. LB DOTAB ((KL,2),(KU,0),(NS,1))
  4572. M DOTAB ((READ,FMRE),(WRITE,FMWR),(NULL,FMNA))
  4573. RECOVER DOTAB ((NO,0),(YES,1))
  4574. SV DOTAB ((NO,0),(SET,1))
  4575. TOWNER DOTAB ((CENTER,0),(USER,1))
  4576. TSITE DOTAB ((ON,0),(OFF,1))
  4577.  
  4578. * ALTERNATE USER LEVEL DIRECTIVE OPTION TABLES.
  4579.  
  4580. AMODE DOTAB ((IMPLICIT,0),(WRITE,FMWR),(READ,FMRE),(NULL,FMNA),(SPE
  4581. ,CIAL,FMPF))
  4582. DMESS SPACE 4,10
  4583. ** DAYFILE MESSAGES.
  4584.  
  4585.  
  4586. MABT DATA C* TFSP ABORTED.*
  4587. MABU DATA C* TFSP ABORTED BY USER.*
  4588. MANT DATA C* ABNORMAL TERMINATION, ERROR CODE = $$$$$$$.*
  4589. MCOM DATA C* TFSP COMPLETE.*
  4590. MDER DATA C* DIRECTIVE ERRORS.*
  4591. MFNA DATA C* FAMILY NOT ACTIVE.*
  4592. MINA DATA C* INCORRECT ACCESS.*
  4593. MTCI DATA C* TAPE CATALOG FILE INTERLOCKED.*
  4594. MUTE DATA C* UNEXPECTED TAPE CATALOG ERROR.*
  4595. EMESS SPACE 4,10
  4596. ** DIRECTIVE ERROR MESSAGES.
  4597.  
  4598.  
  4599. EAFM KLINE ( ALTERNATE FAMILIES AT MAXIMUM.),E,50
  4600. EAVM KLINE ( ASSIGNED VSNS AT MAXIMUM.),E,50
  4601. ECSV KLINE ( CANNOT CHANGE SYSTEM VSN FLAG.),E,50
  4602. ECTD KLINE ( CANNOT CHANGE TAPE TYPE / DENSITY.),E,50
  4603. EDFE KLINE ( DATA FIELD ERROR.),E,50
  4604. EDLE KLINE ( DIRECTIVE INCORRECT FROM CURRENT LEVEL.),E,50
  4605. ENVF KLINE ( DIRECTIVE NOT VALID ON FAST ATTACH CATALOG.),E,50
  4606. EFAR KLINE ( FILE ALREADY RESERVED.),E,50
  4607. EFIB KLINE ( FILE BUSY.),E,50
  4608. EFIC KLINE ( FILE IDENTIFIER CONFLICT.),E,50
  4609. EFNC KLINE ( FILE NAME CONFLICT.),E,50
  4610. EFNI KLINE ( FILE NOT IN CATALOG.),E,50
  4611. EFNR KLINE ( FILE NOT RESERVED.),E,50
  4612. EILD KLINE ( INCORRECT DIRECTIVE.),E,50
  4613. EIFI KLINE ( INCORRECT FILE IDENTIFIER.),E,50
  4614. EIQN KLINE ( INCORRECT SEQUENCE NUMBER.),E,50
  4615. EWSA KLINE ( NO SCRATCH AVAILABLE.),E,50
  4616. ENMS KLINE ( NON-MATCHING STATUSES.),E,50
  4617. ENMT KLINE ( NON-MATCHING TAPE TYPE.),E,50
  4618. ERDI KLINE ( READ DIRECTIVE INCORRECT.),E,50
  4619. ERDM KLINE ( REQUIRED DATA MISSING.),E,50
  4620. ESVC KLINE ( SYSTEM VSN CANNOT BE USER-OWNED.),E,50
  4621. ESVM KLINE ( SYSTEM VSN MUST BE FIRST VSN.),E,50
  4622. EVUM KLINE ( VALIDATED USERS AT MAXIMUM.),E,50
  4623. EVAA KLINE ( VSN ALREADY ASSIGNED.),E,50
  4624. EVAI KLINE ( VSN ALREADY IN CATALOG.),E,50
  4625. EVSB KLINE ( VSN BUSY.),E,50
  4626. EVNA KLINE ( VSN NOT ADDED TO CATALOG.),E,50
  4627. EVNF KLINE ( VSN NOT ASSIGNED TO FILE.),E,50
  4628. EVNV KLINE ( VSN NOT AVAILABLE.),E,50
  4629. EVNC KLINE ( VSN NOT IN CATALOG.),E,50
  4630. IMESS SPACE 4,10
  4631. ** INFORMATIVE MESSAGES.
  4632.  
  4633.  
  4634. IAIA KLINE ( ALTERNATE USER CURRENTLY IS ADMITTED.),E,50
  4635. IANA KLINE ( ALTERNATE USER NOT CURRENTLY ADMITTED.),E,50
  4636. IANP KLINE ( ALTERNATE USER NOT PROCESSED.),E,50
  4637. IAUA KLINE ( ALTERNATE USER ADMITTED.),E,50
  4638. IAUU KLINE ( ALTERNATE USER ADMIT UPDATED.),E,50
  4639. IEOF KLINE ( PREMATURE END OF FILE, XXXXXXX.),E,50
  4640. IFAL KLINE ( FILE AMENDED.),E,50
  4641. IFIR KLINE ( FILE CURRENTLY IS RESERVED.),E,50
  4642. IFNP KLINE ( FILE NOT PROCESSED.),E,50
  4643. IFNR KLINE ( FILE NOT CURRENTLY RESERVED.),E,50
  4644. IFRC KLINE ( FILE RELEASED FROM CATALOG.),E,50
  4645. IFRE KLINE ( FILE RESERVED.),E,50
  4646. IIPI KLINE ( I PARAMETER IGNORED.),E,50
  4647. IPNI KLINE ( P AND N PARAMETERS IGNORED.),E,50
  4648. IULC KLINE ( USER LEVEL COMPLETE.),E,50
  4649. IVAC KLINE ( VSN ADDED TO CATALOG.),E,50
  4650. IVIC KLINE ( VSN CURRENTLY IN CATALOG.),E,50
  4651. IVNC KLINE ( VSN NOT CURRENTLY IN CATALOG.),E,50
  4652. IVNP KLINE ( VSN NOT PROCESSED.),E,50
  4653. IVRB KLINE ( VSN RESERVED BY #######.),E,50
  4654. IVRC KLINE ( VSN REMOVED FROM CATALOG.),E,50
  4655. IVSI KLINE ( VSN INTERLOCKED. JSN IS ????.),E,50
  4656. IVSR KLINE ( VSN REVISED.),E,50
  4657. PHEAD SPACE 4,10
  4658. ** PAGE HEADER MESSAGES.
  4659.  
  4660.  
  4661. PAUA BSS 0 ALTERNATE USER AUDIT LISTING
  4662. LISTER PAUA,17,( AUDIT LISTING.),E
  4663. LISTER ,10,( USER = )
  4664. USER LISTER ,7 USER NAME
  4665. LISTER ,10,( FILE = )
  4666. FILE LISTER ,17 FILE IDENTIFIER
  4667. LISTER ,1,,E
  4668. LISTER ,10,( FVSN = )
  4669. FVSN LISTER ,6 FIRST VSN
  4670. LISTER ,11,( QN = )
  4671. QN LISTER ,4,0001,E SEQUENCE NUMBER
  4672. LISTER ,1,( ),E
  4673. LISTER ,30,( USER NAME MODE )
  4674. LISTER ,31,( ACCESSES DATE TIME),E
  4675. LISTER ,1,( ),E
  4676. PAUAL EQU *-PAUA LENGTH OF HEADER
  4677.  
  4678. PDIR BSS 0 DIRECTIVE LISTING
  4679. LISTER PDIR,21,( DIRECTIVE LISTING.),E
  4680. LISTER ,1,( ),E
  4681. PDIRL EQU *-PDIR LENGTH OF HEADER
  4682.  
  4683. PDIS BSS 0 DISPLAY LISTING
  4684. LISTER PDIS,19,( DISPLAY LISTING.),E
  4685. PDISL EQU *-PDIS LENGTH OF HEADER
  4686.  
  4687. PFIA BSS 0 FILE AUDIT LISTING
  4688. LISTER PFIA,17,( AUDIT LISTING.),E
  4689. LISTER ,1,( ),E
  4690. LISTER ,40,( USER FILE-IDENTIFIER SV FVSN )
  4691. LISTER ,38,(QN CE CHARGE PROJECT-NUMBER )
  4692. EOL1 LISTER ,2 END OF LINE FOR MASS STORAGE OUTPUT
  4693. LISTER ,42,( PASSWORD PHYSICAL-FILE-ID MD CT AC UCW),E
  4694. LISTER ,40,( CR CV D E F FA FC G )
  4695. LISTER ,38,( LB NS RT SN SI )
  4696. EOL2 LISTER ,2 END OF LINE FOR MASS STORAGE OUTPUT
  4697. LISTER ,40,( ACCESSES CDATE CTIME ADATE ATIME MD)
  4698. LISTER ,10,(ATE MTIME),E
  4699. LISTER ,1,( ),E
  4700. PFIAL EQU *-PFIA LENGTH OF HEADER
  4701.  
  4702. PHEL BSS 0 HELP DISPLAY
  4703. LISTER PHEL,16,( HELP LISTING.),E
  4704. PHELL EQU *-PHEL LENGTH OF HEADER
  4705.  
  4706. PVSA BSS 0 VSN AUDIT LISTING
  4707. LISTER PVSA,17,( AUDIT LISTING.),E
  4708. LISTER ,1,( ),E
  4709. LISTER ,48,( VSN PRN VT STATUS UC OWNER SITE SYSTEM)
  4710. LISTER ,39,( USER CHARGE URDATE FVSN NVSN),E
  4711. LISTER ,1,( ),E
  4712. PVSAL EQU *-PVSA LENGTH OF HEADER
  4713. TITLE MAIN PROGRAM.
  4714. TFS SPACE 4,10
  4715. ** TFS - MAIN ROUTINE FOR *TFSP* AND *TFSPE*.
  4716.  
  4717.  
  4718. TFS BSS 0
  4719. SX6 B1 FLAG CLEAR INTERLOCK ON ABORT
  4720. SA6 CI
  4721. RCREC N1,1,REC1 READ FIRST RECORD
  4722. SX3 REC1+TBHL SET SYSTEM TABLE ADDRESS
  4723. SX4 TSST SET SYSTEM TABLE IMAGE ADDRESS
  4724. RJ MSV SAVE SYSTEM TABLE VALUES
  4725. RJ KFM SET FAMILY LEVEL K-DISPLAY
  4726. SA1 TE
  4727. NZ X1,TFS2 IF *TFSPE*
  4728. SA1 LF
  4729. NZ X1,TFS1 IF LOCAL FILE MODE
  4730. ISSMSG IPNI,I ISSUE INFORMATIVE MESSAGE
  4731. TFS1 SA1 OP CHECK OPTION
  4732. SX1 X1-IOPT
  4733. ZR X1,TFS2 IF *OP=I*
  4734. ISSMSG IIPI,I ISSUE INFORMATIVE MESSAGE
  4735. TFS2 SA1 LV GET LEVEL
  4736. SETSORC K,X1 SET SOURCE VALUES IN K-DISPLAY
  4737. SA1 /KFILLS1/FILE PREVENT EXTRA END OF LINES
  4738. SB3 59
  4739. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  4740. SA1 /KFILLS2/FILE
  4741. SB3 59
  4742. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  4743. SA1 /KFILLS3/FILE
  4744. SB3 59
  4745. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  4746. SA1 /KAUSLS/FILE
  4747. SB3 59
  4748. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  4749. SA1 /KDIS/FI
  4750. SB3 5
  4751. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  4752. SA1 /KDIS/PI
  4753. SB3 5
  4754. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  4755. SA1 DM CHECK DIRECTIVE MESSAGE FLAG
  4756. SX6 B0 CLEAR FLAG
  4757. SA6 A1
  4758. NZ X1,TFS3 IF KEEP CURRENT MESSAGE
  4759. MOVE 4,(=40H),/KMESS/DIRECT CLEAR CURRENT MESSAGE
  4760. TFS3 RJ DIP PROCESS DIRECTIVE INPUT
  4761. SA1 EF
  4762. ZR X1,TFS4 IF NO ERROR
  4763. ABTMSG MDER,NA SET ERROR MESSAGE ADDRESS
  4764. SA1 AB
  4765. NZ X1,TFS6 IF ABORT OPTION
  4766. TFS4 SA1 ET
  4767. PL X1,TFS2 IF NOT EOF
  4768. SA1 IF CHECK INPUT FET ADDRESS
  4769. SX1 X1-I
  4770. NZ X1,TFS7 IF NOT END OF INPUT FILE
  4771. SA1 IS CHECK INPUT FILE STATUS
  4772. SX1 X1
  4773. ZR X1,TFS6 IF NO INPUT FILE
  4774. PL X1,TFS5 IF NOT BATCH JOB
  4775. MX0 42
  4776. SA1 I GET INPUT FILE NAME
  4777. BX1 X0*X1
  4778. SB2 1RX
  4779. SB3 TFSD
  4780. SB5 -IEOF
  4781. RJ SNM SET NAME IN MESSAGE
  4782. ISSMSG TFSD,I ISSUE INFORMATIVE MESSAGE
  4783. EQ TFS6 TERMINATE TFSP
  4784.  
  4785. TFS5 ISSMSG EILD,E ISSUE ERROR MESSAGE
  4786. SX6 B0
  4787. SA6 ET CLEAR EOF FLAG
  4788. SA6 EF CLEAR ERROR FLAG
  4789. SA1 I CLEAR *EOF* ON FET
  4790. MX0 57
  4791. LX0 3
  4792. BX6 X0*X1
  4793. SA6 A1
  4794. EQ TFS2 READ NEXT LINE OF INPUT FILE
  4795.  
  4796. TFS6 MOVE TFSAL,TFSA,USBB SET TERMINATION DIRECTIVES
  4797. SX6 USBB-1
  4798. SA6 SP
  4799. SX6 X6+B1
  4800. SA6 SB
  4801. SX6 USBB+TFSAL
  4802. SA6 SM
  4803. EQ TFS8 SET FET ADDRESS
  4804.  
  4805. TFS7 SA1 TFSB+0 RESET INPUT STRING BUFFER POINTERS
  4806. SX6 X1
  4807. SA6 SB
  4808. SA1 A1+B1
  4809. SX6 X1
  4810. SA6 SM
  4811. SA1 A1+B1
  4812. SX6 X1
  4813. SA6 SP
  4814. MOVE USBBL,TFSC,USBB RESET INPUT STRING BUFFER
  4815. TFS8 SX6 I SET INPUT FET ADDRESS
  4816. SA6 IF
  4817. SX6 B0 CLEAR EOF FLAG
  4818. SA6 ET
  4819. SA6 AI CLEAR ALTERNATE INPUT FILE NAME
  4820. EQ TFS2 READ NEXT LINE OF INPUT FILE
  4821.  
  4822. TFSA DATA 1RD,1RR,1RO,1RP TERMINATION DIRECTIVES
  4823. DATA 1R,,1RD,1RR,1RO,1RP
  4824. DATA 1R,,1RD,1RR,1RO,1RP
  4825. DATA 1R,,1RD,1RR,1RO,1RP
  4826. TFSAL EQU *-TFSA LENGTH OF TERMINATION DIRECTIVE
  4827.  
  4828. TFSB BSS 0 STRING POINTER IMAGES
  4829. LOC 0
  4830. BSS 1 IMAGE OF (SB)
  4831. BSS 1 IMAGE OF (SM)
  4832. BSS 1 IMAGE OF (SP)
  4833. LOC *O
  4834.  
  4835. TFSC BSS USBBL IMAGE OF INPUT STRING BUFFER
  4836. TFSD DATA C* PREMATURE END OF FILE, XXXXXXX.*
  4837. ABT SPACE 4,10
  4838. ** ABT - ABORT *TFSP*.
  4839. *
  4840. * ENTRY (CI) = 0 IF NO CLEAR OF UTILITY INTERLOCK.
  4841. * (EM) = DAYFILE ERROR MESSAGE ADDRESS.
  4842. * = 0 IF NO ERROR MESSAGE.
  4843. *
  4844. * EXIT *TFSP* ABORTED.
  4845.  
  4846.  
  4847. ABT BSS 0 ENTRY
  4848. SA1 CI
  4849. ZR X1,ABT1 IF NO CLEAR OF INTERLOCK
  4850. SX6 B0 FLAG NO INTERLOCKS CLEARED
  4851. SA6 A1
  4852. SA6 RT CLEAR RETRY FLAG
  4853. RJ RVE REPLACE VSN ENTRIES
  4854. SX1 B0 SET NO USER NAME
  4855. RJ IUN INTERLOCK USER NAME
  4856. ABT1 SA2 FM CHECK FAMILY NAME
  4857. SA1 CF
  4858. BX2 X1-X2
  4859. ZR X2,ABT2 IF NO FAMILY NAME CHANGE NEEDED
  4860. RJ CFM CHANGE FAMILY
  4861. ABT2 SA1 OS
  4862. ZR X1,ABT3 IF NO OUTPUT FILE
  4863. WRITER L,R FLUSH OUTPUT BUFFER
  4864. ABT3 SA1 TE
  4865. ZR X1,ABT5 IF NOT *TFSPE*
  4866. ABT4 RETURN N1,R RETURN FILE
  4867. ABT5 MESSAGE MABT,0,R ISSUE *TFSP ABORTED* MESSAGE
  4868. SA5 EM
  4869. ZR X5,ABT6 IF NO ERROR MESSAGE
  4870. MESSAGE X5,3,R ISSUE ERROR MESSAGE
  4871. ABT6 RETURN T,R RETURN INTERRUPT FILE
  4872. ABORT ABORT PROGRAM
  4873. END SPACE 4,10
  4874. ** END - TERMINATE *TFSP*.
  4875. *
  4876. * EXIT TO ABT IF DIRECTIVE ERRORS AND ABORT MODE.
  4877. * *TFSP* TERMINATED.
  4878. *
  4879. * USES A - 1, 2.
  4880. * X - 1, 2.
  4881. *
  4882. * CALLS ABT, CFM, IUN, RVE.
  4883. *
  4884. * MACROS ENDRUN, ENFA, MESSAGE, RETURN, WRITER.
  4885. *
  4886. * ENTERED AT END7 FROM TFR.
  4887.  
  4888.  
  4889. END BSS 0 ENTRY
  4890. SA1 EF
  4891. ZR X1,END1 IF NO DIRECTIVE ERRORS
  4892. SA1 AB
  4893. NZ X1,ABT IF ABORT MODE
  4894. END1 RJ RVE REPLACE VSN ENTRIES IN CATALOG FILE
  4895. SX1 B0 SET NO USER NAME
  4896. RJ IUN INTERLOCK USER NAME
  4897. END2 SA1 OS
  4898. ZR X1,END3 IF NO OUTPUT FILE
  4899. WRITER L,R FLUSH OUTPUT BUFFER
  4900. END3 SA1 EF
  4901. ZR X1,END4 IF NO DIRECTIVE ERRORS
  4902. MESSAGE MDER,3,R ISSUE DIRECTIVE ERROR MESSAGE
  4903. END4 SA1 TE
  4904. ZR X1,END6 IF NOT *TFSPE*
  4905. END5 RETURN N1,R RETURN FILE
  4906. END6 RETURN T,R RETURN INTERRUPT FILE
  4907.  
  4908. * ENTRY FROM TFR.
  4909.  
  4910. END7 SA2 FM CHECK FAMILY NAME
  4911. SA1 CF
  4912. BX2 X1-X2
  4913. ZR X2,END8 IF FAMILY NOT CHANGED
  4914. RJ CFM CHANGE FAMILY
  4915. END8 MESSAGE MCOM,0,R ISSUE COMPLETION MESSAGE
  4916. ENDRUN TERMINATE PROGRAM
  4917. RPV SPACE 4,10
  4918. ** RPV - REPRIEVE HANDLER.
  4919. *
  4920. * EXIT PROGRAM RESUMED IF TERMINAL INTERRUPT.
  4921. * PROGRAM ABORTED IF SYSTEM ERROR.
  4922.  
  4923.  
  4924. RPV BSS 0 ENTRY
  4925. SA1 RPVA+7 CHECK ERROR FLAG
  4926. RJUST X1,X1,12,11
  4927. SX6 X1-TIET
  4928. ZR X6,RPV1 IF TERMINAL INTERRUPT
  4929. SX6 X1-TAET
  4930. ZR X6,RPV1 IF TERMINAL INTERRUPT
  4931. EQ RPV7 ISSUE ERROR MESSAGE
  4932. RPV1 SX6 B0 CLEAR INTERRUPT RESPONSE
  4933. SA6 RPVC
  4934. QUAL RPV
  4935. RESETP T DISPLAY INTERRUPT INFORMATION
  4936. WRITEW X2,RPVD,RPVDL
  4937. WRITER X2,R
  4938. READ X2,R GET USER RESPONSE
  4939. READC X2,RPVC,1
  4940. QUAL *
  4941. SA1 RPVA+4
  4942. NZ X1,RPV6 IF INTERRUPTS PENDING
  4943. MX0 42 CHECK USER RESPONSE
  4944. SA1 RPVC
  4945. SA2 RPVE
  4946. RPV2 ZR X2,RPV1 IF INCORRECT RESPONSE
  4947. BX6 X0*X2
  4948. BX6 X6-X1
  4949. ZR X6,RPV3 IF RESPONSE FOUND
  4950. SA2 A2+B1
  4951. EQ RPV2 CHECK NEXT TABLE ENTRY
  4952.  
  4953. RPV3 SB2 X2
  4954. JP B2 PROCESS RESPONSE
  4955.  
  4956. RPV4 SX6 B1 SET TERMINAL INTERRUPT FLAG
  4957. SA6 TI
  4958. RPV5 REPRIEVE RPVA,RESUME,237B RESUME PROGRAM
  4959.  
  4960. RPV6 ABTMSG MABU ABORT *TFSP*
  4961.  
  4962. RPV7 SX6 X1-RPVBL
  4963. PL X6,RPV8 IF UNKNOWN ERROR
  4964. SA2 X1+RPVB
  4965. ZR X2,RPV8 IF UNKNOWN ERROR
  4966. ABTMSG X2 ABORT *TFSP*
  4967.  
  4968. RPV8 RJ COD CONVERT TO OCTAL DISPLAY
  4969. BX1 X4 SET DISPLAY ERROR CODE
  4970. SB2 1R$ SET CHARACTER TO REPLACE
  4971. SB3 MANT SET DAYFILE MESSAGE ADDRESS
  4972. SB5 B3
  4973. RJ SNM SET NAME IN MESSAGE
  4974. ABTMSG MANT ABORT *TFSP*
  4975.  
  4976. RPVA BSS 0 REPRIEVE BLOCK
  4977. LOC 0
  4978. VFD 36/0
  4979. VFD 12/RPVAL BLOCK LENGTH
  4980. VFD 2/0
  4981. VFD 9/ FUNCTION
  4982. VFD 1/0 COMPLETION BIT
  4983. VFD 30/0 CHECKSUM LWA
  4984. VFD 30/RPV TRANSFER ADDRESS
  4985. VFD 60/ CHECKSUM VALUE
  4986. VFD 24/237B MASK
  4987. VFD 24/ ERROR CLASS
  4988. VFD 12/ ERROR CODE
  4989. VFD 60/ PENDING INTERRUPTS
  4990. VFD 60/ PENDING RA+1 REQUEST
  4991. VFD 60/ INTERRUPTED TERMINAL I/O
  4992. VFD 48/
  4993. VFD 12/ ERROR FLAG
  4994. VFD 60/
  4995. BSS 20B EXCHANGE PACKAGE
  4996. RPVAL EQU *
  4997. LOC *O
  4998.  
  4999. RPVB INDTAB 1 TABLE OF ERROR CODE MESSAGES
  5000. INDEX 0,CON,0 INCORRECT - NORMAL TERMINATION
  5001. INDEX ARET,CON,(=C* ARITHMETIC ERROR.*)
  5002. INDEX ITET,CON,(=C* SCP INVALID TRANSFER ADDRESS.*)
  5003. INDEX PSET,CON,(=C* PROGRAM STOP ERROR.*)
  5004. INDEX PPET,CON,(=C* PPU ABORT.*)
  5005. INDEX CPET,CON,0 INCORRECT - CPU ABORT
  5006. INDEX PCET,CON,(=C* PPU CALL ERROR.*)
  5007. INDEX MLET,CON,(=C* MESSAGE LIMIT.*)
  5008. INDEX TLET,CON,(=C* TIME LIMIT ERROR.*)
  5009. INDEX FLET,CON,(=C* FILE LIMIT ERROR.*)
  5010. INDEX TKET,CON,(=C* TRACK LIMIT ERROR.*)
  5011. INDEX SRET,CON,(=C* SRU LIMIT ERROR.*)
  5012. INDEX FSET,CON,(=C* FORCED ERROR.*)
  5013. INDEX RCET,CON,(=C* JOB HUNG IN AUTORECALL.*)
  5014. INDEX ODET,CON,(=C* OPERATOR DROP.*)
  5015. INDEX IDET,CON,(=C* IDLEDOWN.*)
  5016. INDEX RRET,CON,(=C* OPERATOR RERUN.*)
  5017. INDEX DRET,CON,(=C* DEADSTART RERUN.*)
  5018. INDEX STET,CON,(=C* SUSPENSION TIMEOUT.*)
  5019. INDEX OKET,CON,(=C* OPERATOR KILL.*)
  5020. INDEX SVET,CON,(=C* SECURITY VIOLATION.*)
  5021. INDEX SSET,CON,(=C* SUBSYSTEM ABORTED.*)
  5022. INDEX ECET,CON,(=C* ECS PARITY ERROR.*)
  5023. INDEX PEET,CON,(=C* CPU PARITY ERROR.*)
  5024. INDEX SYET,CON,(=C* SYSTEM ABORT.*)
  5025. INDEX RAET,CON,(=C* RECOVERY ABORT.*)
  5026. INDEX RSET,CON,(=C* RECOVERED SUBSYSTEM.*)
  5027. INDEX ORET,CON,(=C* OVERRIDE ERROR CONDITION.*)
  5028. RPVBL EQU *-RPVB NUMBER OF RECOGNIZED ERROR CODES
  5029.  
  5030. RPVC CON 0 INTERRUPT USER RESPONSE
  5031.  
  5032. RPVD BSS 0 INTERRUPT INSTRUCTIONS
  5033. DATA C* USER BREAK PROCESSING.*
  5034. DATA C* *
  5035. DATA C* PLEASE ENTER ONE OF THE FOLLOWING NUMBERS -*
  5036. DATA C* *
  5037. DATA C* 1 ABORT TFSP.*
  5038. DATA C* 2 RESUME PROCESSING (SOME TERMINAL OUTPUT LOST).*
  5039. DATA C* 3 TERMINATE CURRENT AUDIT OR SOURCE DIRECTIVE.*
  5040. RPVDL EQU *-RPVD LENGTH OF INSTRUCTIONS
  5041.  
  5042. RPVE BSS 0 TABLE OF USER INTERRUPT RESPONSES
  5043. VFD 42/0L1,18/RPV6 TERMINATE TFSP
  5044. VFD 42/0L2,18/RPV5 RESUME PROCESSING
  5045. VFD 42/0L3,18/RPV4 TERMINATE AUDIT OR SOURCE DIRECTIVE
  5046. CON 0 END OF TABLE
  5047. COMMON SPACE 4,10
  5048. ** COMMON DECKS FOR REPRIEVE HANDLER.
  5049.  
  5050.  
  5051. QUAL RPV
  5052. QUAL$ EQU 1 FORCE UNQUALIFIED COMMON DECKS
  5053. *CALL COMCCIO
  5054. *CALL COMCRDC
  5055. *CALL COMCSYS
  5056. *CALL COMCWTW
  5057. QUAL *
  5058. TITLE SUBROUTINES FOR MACROS.
  5059. CFR SPACE 4,10
  5060. ** CFR - CHECK IF FILE IS READY.
  5061. *
  5062. * ENTRY (X2) = FET ADDRESS.
  5063. *
  5064. * EXIT (X1) = 0 IF NO FILE NAME.
  5065. * (X2) = FET ADDRESS.
  5066. *
  5067. * USES A - 1.
  5068. *
  5069. * MACROS RECALL.
  5070.  
  5071.  
  5072. CFR SUBR ENTRY/EXIT
  5073. SA1 X2
  5074. AX1 18
  5075. ZR X1,CFRX IF NO FILE NAME
  5076. RECALL X2 WAIT UNTIL FILE IS READY
  5077. SX1 B1
  5078. EQ CFRX RETURN
  5079. CTF SPACE 4,15
  5080. ** CTF - CALL *TFM*.
  5081. *
  5082. * ENTRY (X2) = FET ADDRESS.
  5083. * (X6) = FUNCTION IF NO INTERLOCK TO SET.
  5084. * = (-1)*FUNCTION IF INTERLOCK TO SET.
  5085. *
  5086. * EXIT (X2) = FET ADDRESS.
  5087. * (X4) = ERROR CODE.
  5088. * TO *ABT* IF UNEXPECTED ERROR CODE.
  5089. *
  5090. * USES A - 1, 2, 4, 6, 7.
  5091. * X - 0, 1, 6, 7.
  5092. *
  5093. * MACROS ABTMSG, MESSAGE, RECALL, RJUST, SYSTEM.
  5094.  
  5095.  
  5096. CTF SUBR ENTRY/EXIT
  5097. LX6 3
  5098. PL X6,CTF1 IF NO INTERLOCK TO SET
  5099. BX6 -X6 RESET FUNCTION CODE
  5100. SA1 LF
  5101. NZ X1,CTF1 IF LOCAL FILE MODE
  5102. SX6 X6+4 SET INTERLOCK BIT
  5103. CTF1 SA6 CTFA SAVE FUNCTION CODE
  5104. CTF2 RECALL X2 INSURE FET NOT BUSY
  5105. MX0 42 SET FUNCTION CODE IN FET
  5106. SA1 X2
  5107. BX6 X0*X1
  5108. SA1 CTFA
  5109. BX6 X6+X1
  5110. SA6 X2
  5111. SX7 X2 SAVE FET ADDRESS
  5112. SA7 CTFB
  5113. SYSTEM TFM,R,X7,SSJF*100B CALL *TFM*
  5114. SA2 CTFB GET ERROR CODE
  5115. SA4 X2
  5116. RJUST X4,X4,8,16
  5117. SX1 X4-/EMSG/MXEC
  5118. PL X1,CTF3 IF BEYOND KNOWN ERROR CODES
  5119. SA1 X4+CTFC GET PROCESSOR ADDRESS
  5120. SB2 X1
  5121. ZR B2,CTF3 IF NO PROCESSOR ADDRESS
  5122. JP B2 JUMP TO PROCESSOR
  5123.  
  5124. * PROCESS UNEXPECTED ERROR CODES.
  5125.  
  5126. CTF3 MESSAGE EBUF,0,R ISSUE *TFM* ERROR MESSAGE
  5127. ABTMSG MUTE ABORT *TFSP*
  5128.  
  5129. CTFA BSS 1 FUNCTION CODE
  5130. CTFB BSS 1 FET ADDRESS
  5131. CTFC INDTAB 1 TABLE OF ERROR CODE PROCESSORS
  5132. INDEX 0,CON,CTFX NO ERROR
  5133. INDEX /EMSG/VBS,CON,CTFX VSN BUSY
  5134. INDEX /EMSG/LNF,CON,CTFX FILE NOT FOUND
  5135. INDEX /EMSG/FNF,CON,CTFX FILE NOT FOUND
  5136. INDEX /EMSG/VNF,CON,CTFX VSN NOT FOUND
  5137. INDEX /EMSG/UNF,CON,CTFX USER NOT FOUND
  5138. INDEX /EMSG/NMT,CON,CTFX FILE NOT ON TAPE
  5139. INDEX /EMSG/VSR,CON,CTFX VSN RESERVED
  5140. INDEX /EMSG/VSD,CON,CTFX VSN DUPLICATE
  5141. INDEX /EMSG/FAR,CON,CTFX FILE ALREADY RESERVED
  5142. INDEX /EMSG/VAR,CON,CTFX VSN ALREADY RESERVED
  5143. INDEX /EMSG/DLK,CON,CTF3 DEADLOCK
  5144. INDEX /EMSG/ILR,CON,CTF3 *TFM* INCORRECT REQUEST
  5145. INDEX /EMSG/TMD,CON,CTF3 *TMS* DISABLED
  5146. INDEX /EMSG/MNA,CON,CTF3 *MAGNET* NOT ACTIVE
  5147. INDEX /EMSG/EBP,CON,CTF3 ERRONEOUS BUFFER POINTER
  5148. INDEX /EMSG/TUA,CON,CTF3 *TFM* UTILITY ACTIVE
  5149. INDEX /EMSG/BAE,CON,CTF3 BUFFER ARGUMENT ERROR
  5150. INDEX /EMSG/EID,CON,CTF3 ERROR IN INDEX DATA
  5151. INDEX /EMSG/ECD,CON,CTF3 ERROR IN CATALOG DATA
  5152. INDEX /EMSG/EAD,CON,CTF3 ERROR IN CATALOG DATA
  5153. INDEX /EMSG/RAE,CON,CTF3 RANDOM ADDRESS ERROR
  5154. INDEX /EMSG/TKL,CON,CTF3 TRACK LIMIT
  5155. INDEX /EMSG/MSE,CON,CTF3 MASS STORAGE ERROR
  5156. INDEX /EMSG/CNF,CON,CTFX CATALOG NOT FOUND
  5157. INDEX /EMSG/ECF,CON,CTFX EMPTY CATALOG
  5158. INDEX /EMSG/CLE,CON,CTF3 CATALOG LINKAGE ERROR
  5159. INDEX /EMSG/IOS,CON,CTF3 I/O SEQUENCE ERROR ON CATALOG
  5160. INDEX /EMSG/EOI,CON,CTF3 EOI NOT ON TRACK CHAIN
  5161. INDEX /EMSG/NAE,CON,CTFX NO ADMITS
  5162. INDEX /EMSG/TPI,CON,CTF3 TMS PROCESSING INHIBITED
  5163. INDEX /EMSG/SFA,CON,CTF3 FAMILY ACTIVITY SUSPENDED
  5164. INDEX /EMSG/FCE,CON,CTF3 FAMILY CATALOG ERROR
  5165. INDEX /EMSG/WSA,CON,CTFX WAIT SCRATCH ASSIGNMENT
  5166. INDEX /EMSG/NEU,CON,CTF3 NO EXTEND ON USER OWNED FILE
  5167. INDEX /EMSG/WRF,CON,CTF3 WRITE REQUEST ON READ ONLY FILE
  5168. INDEX /EMSG/MPE,CON,CTF3 MULTI-FILE PROCESSING ERROR
  5169. INDEX /EMSG/FCI,CON,CTF3 FILE CREATION INCORRECT
  5170. INDEX /EMSG/EFD,CON,CTFX ERROR IN FILE DATA
  5171. INDEX /EMSG/CNA,CON,CTFX LINKED CATALOG NOT ACCESSIBLE
  5172.  
  5173. ERRNZ *-CTFC-/EMSG/MXEC INCORRECT NUMBER OF ERROR CODES
  5174. CWL SPACE 4,15
  5175. ** CWL - COUNT WORDS/LINES IN BUFFER.
  5176. *
  5177. * ENTRY (A1) = BUFFER ADDRESS.
  5178. * (B2) = 0 IF COUNT NUMBER OF LINES.
  5179. * = 1 IF COUNT NUMBER OF WORDS.
  5180. * (B6) = WORD COUNT IF (B2) = 0.
  5181. * (B7) = LINE COUNT IF (B2) = 1.
  5182. * (X1) = FIRST WORD OF BUFFER.
  5183. *
  5184. * EXIT (A1) = LWA+1 OF BUFFER.
  5185. * (B6) = WORD COUNT OF BUFFER.
  5186. * (B7) = LINE COUNT OF BUFFER.
  5187. *
  5188. * USES B - 3, 4.
  5189. * X - 0, 1.
  5190.  
  5191.  
  5192. CWL SUBR ENTRY/EXIT
  5193. SB3 B6 SET WORD COUNT FOR COUNTING LINES
  5194. SB4 377777B
  5195. ZR B2,CWL1 IF COUNTING LINES
  5196. SB3 B4 SET LINE COUNT FOR COUNTING WORDS
  5197. SB4 B7
  5198. CWL1 MX0 -12 SET END OF LINE MASK
  5199. SB6 B0 PRESET WORD COUNT
  5200. SB7 B0 PRESET LINE COUNT
  5201. CWL2 GE B6,B3,CWLX IF NO MORE WORDS IN BUFFER
  5202. GE B7,B4,CWLX IF NO MORE LINES IN BUFFER
  5203. SB6 B6+B1 INCREMENT WORD COUNT
  5204. BX6 -X0*X1 CHECK END OF LINE BYTE
  5205. SA1 A1+B1
  5206. NZ X6,CWL2 IF NOT END OF LINE
  5207. SB7 B7+B1 INCREMENT LINE COUNT
  5208. EQ CWL2 CHECK WORD/LINE COUNTS
  5209. DVS SPACE 4,15
  5210. ** DVS - DELETE VSN ENTRY.
  5211. *
  5212. * ENTRY (B6) = ADDRESS OF VSN BUFFER.
  5213. * (B7) = LENGTH OF VSN BUFFER.
  5214. *
  5215. * EXIT (X4) = 0 IF DELETE COMPLETE.
  5216. * .NE. 0 IF A VSN IS ASSIGNED TO A FILE.
  5217. *
  5218. * USES A - 1, 3, 6.
  5219. * B - 6, 7.
  5220. * X - 1, 3, 6.
  5221. *
  5222. * CALLS SMD.
  5223. *
  5224. * MACROS CALLTFM, RESETP, WRITFET.
  5225.  
  5226.  
  5227. DVS SUBR ENTRY/EXIT
  5228. SX6 B6 SAVE BUFFER ADDRESS
  5229. SA6 DVSA
  5230. SX6 B7 SAVE BUFFER LENGTH
  5231. SA6 DVSB
  5232. RESETP N1 SET VSN ENTRIES INTO FET BUFFER
  5233. SA1 DVSA
  5234. SA3 DVSB
  5235. WRITFET X2,X1,X3
  5236. CALLTFM X2,DVES DELETE VSN ENTRIES
  5237. NZ X4,DVSX IF ERROR
  5238. SA1 DVSA SET BUFFER ADDRESS
  5239. SB6 X1
  5240. SA1 DVSB SET BUFFER LENGTH
  5241. SB7 X1
  5242. RJ SMD ISSUE *SDRM* ACCOUNT FILE MESSAGE
  5243. SX4 B0 FLAG NO ERROR
  5244. EQ DVSX RETURN
  5245.  
  5246. DVSA BSS 1 VSN BUFFER ADDRESS
  5247. DVSB BSS 1 VSN BUFFER LENGTH
  5248. GFI SPACE 4,25
  5249. ** GFI - GET FILE CATALOG VIA FILE IDENTIFIER.
  5250. *
  5251. * ENTRY (X1) = USER NAME.
  5252. * (X2) = FIRST 10 CHARACTERS OF FILE ID.
  5253. * (X3) = LAST 7 CHARACTERS OF FILE ID.
  5254. * (B2) = VSN BUFFER ADDRESS.
  5255. * (B4) = 0 IF VERIFY FILE STATUS.
  5256. * .NE. 0 IF ASSUME FILE NOT FOUND.
  5257. * (B6) = FILE CATALOG BUFFER ADDRESS.
  5258. * (B7) = PREVIOUS FILE BUFFER ADDRESS.
  5259. *
  5260. * EXIT (X4) = 0 IF FILE FOUND.
  5261. * .NE. IF FILE NOT FOUND. DEFAULT SET IN BUFFER.
  5262. * (X6) = FILE CATALOG RANDOM ADDRESS.
  5263. * (X7) = PREVIOUS FILE RANDOM ADDRESS.
  5264. * (B6) = FILE COUNT.
  5265. * (B7) = VSN COUNT.
  5266. *
  5267. * USES A - 1, 2, 3, 6.
  5268. * B - 2.
  5269. * X - 1, 2, 3.
  5270. *
  5271. * CALLS UFA.
  5272. *
  5273. * MACROS GFILEV, MOVE, MOVEBIT, RJUST, SAFET.
  5274.  
  5275.  
  5276. GFI3 SA3 GFIC SET DEFAULT CATALOG IMAGE IN BUFFER
  5277. MOVE TCEL,DFIC,X3
  5278. SA2 GFIC SET DEFAULT FILE IDENTIFIER
  5279. MOVEBIT GFIB,X2+/CAT/FI,/BTC/FI,,/UPB/FI
  5280. SA2 GFIC SET DEFAULT PHYSICAL IDENTIFIER
  5281. MOVEBIT GFIB,X2+/CAT/PI,/BTC/PI,,/UPB/PI
  5282. SA2 GFIC SET SYMBOLIC ACCESS FLAG
  5283. MOVEBIT (=1),X2+/CAT/SV,/BTC/SV,/BTC/SV-1,/UPB/SV
  5284. SB7 B0 SET VSN COUNT
  5285. SB6 B1 SET FILE COUNT
  5286. SX7 B0 SET PREVIOUS FILE RANDOM ADDRESS
  5287. SX6 B0 SET FILE CATALOG RANDOM ADDRESS
  5288. SX4 B1 FLAG FILE NOT FOUND
  5289.  
  5290. GFI SUBR ENTY/EXIT
  5291. BX6 X1 SAVE USER NAME
  5292. SA6 GFIA
  5293. BX6 X2 SAVE FILE IDENTIFIER
  5294. SA6 GFIB
  5295. BX6 X3
  5296. SA6 A6+B1
  5297. SX6 B6 SAVE FILE CATALOG BUFFER ADDRESS
  5298. SA6 GFIC
  5299. SX6 B7 SAVE PREVIOUS FILE BUFFER ADDRESS
  5300. SA6 GFID
  5301. SX6 B2 SAVE VSN BUFFER ADDRESS
  5302. SA6 GFIE
  5303. NZ B4,GFI3 IF NO VERIFY
  5304. SAFET GFIA,,GFIB,SCST SET AUDIT FET
  5305. NZ X4,GFI3 IF FILE NOT FOUND
  5306. SA1 GFIC SET BUFFER ADDRESSES
  5307. SB6 X1
  5308. SA1 GFIE
  5309. SB2 X1
  5310. RJ UFA UNPACK FILE AUDIT
  5311. SA6 GFIF SAVE CATALOG RANDOM ADDRESS
  5312. SA1 GFIC GET SEQUENCE NUMBER
  5313. SA3 X1+/CAT/QN
  5314. RJUST X3,X3,/BTC/QN,/UPB/QN
  5315. SX3 X3-1
  5316. NZ X3,GFI2 IF MULTI-FILE
  5317. SA1 X1+/CAT/NCAT CHECK NEXT CATALOG RANDOM ADDRESS
  5318. RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
  5319. NZ X1,GFI2 IF MULTI-FILE
  5320. SA1 A1+/CAT/REELC-/CAT/NCAT SET VSN COUNT
  5321. RJUST X1,X1,/BTC/REELC,/UPB/REELC
  5322. SB7 X1
  5323. SB6 B1 SET FILE COUNT
  5324. SX7 B0 SET PREVIOUS FILE RANDOM ADDRESS
  5325. SA1 GFIF SET FILE CATALOG RANDOM ADDRESS
  5326. BX6 X1
  5327. EQ GFIX RETURN
  5328.  
  5329. GFI2 SA2 GFIE SET ADDRESS OF FIRST VSN
  5330. SA4 GFIC SET FILE CATALOG BUFFER ADDRESS
  5331. SB6 X4
  5332. SA4 GFID SET PREVIOUS FILE BUFFER ADDRESS
  5333. SB2 X2 SET VSN BUFFER ADDRESS
  5334. GFILEV GFIA,X2,X3+B1,B6,X4,B2 GET FILE CATALOG VIA VSN
  5335. EQ GFIX RETURN
  5336.  
  5337. GFIA BSS 1 USER NAME
  5338. GFIB BSS 2 FILE IDENTIFIER
  5339. GFIC BSS 1 FILE CATALOG BUFFER ADDRESS
  5340. GFID BSS 1 PREVIOUS FILE BUFFER ADDRESS
  5341. GFIE BSS 1 VSN BUFFER ADDRESS
  5342. GFIF BSS 1 FILE CATALOG RANDOM ADDRESS
  5343. GFV SPACE 4,30
  5344. ** GFV - GET FILE CATALOG VIA VSN.
  5345. *
  5346. * ENTRY (X1) = USER NAME.
  5347. * (X2) = VSN.
  5348. * (X3) = SEQUENCE NUMBER.
  5349. * (B2) = VSN BUFFER ADDRESS.
  5350. * (B4) = 0 IF VERIFY FILE STATUS.
  5351. * .NE. 0 IF ASSUME FILE NOT FOUND.
  5352. * (B6) = FILE BUFFER ADDRESS.
  5353. * (B7) = PREVIOUS FILE BUFFER ADDRESS.
  5354. *
  5355. * EXIT (X4) = 0 IF FILE FOUND.
  5356. * = 1 IF FILE NOT FOUND. DEFAULT USED.
  5357. * = -1 IF INCORRECT SEQUENCE NUMBER.
  5358. * = -2 IF VSN UNAVAILABLE.
  5359. * (X6) = FILE CATALOG RANDOM ADDRESS.
  5360. * (X7) = PREVIOUS FILE CATALOG RANDOM ADDRESS.
  5361. * (B6) = FILE COUNT.
  5362. * (B7) = VSN COUNT.
  5363. *
  5364. * USES A - 1, 2, 3, 4, 6, 7.
  5365. * B - 2, 6, 7.
  5366. * X - 0, 1, 2, 3, 4, 6, 7.
  5367. *
  5368. * CALLS UFA.
  5369. *
  5370. * MACROS LISTVSN, MOVE, MOVEBIT, REPVSN, RJUST, SAFET.
  5371.  
  5372.  
  5373. GFV11 SA1 GFVH GET FILE COUNT
  5374. SB6 X1
  5375. SA1 GFVI GET VSN COUNT
  5376. SB7 X1
  5377. SA1 GFVJ GET FILE RANDOM ADDRESS
  5378. BX6 X1
  5379. SA1 GFVK GET PREVIOUS FILE RANDOM ADDRESS
  5380. BX7 X1
  5381.  
  5382. GFV SUBR ENTRY/EXIT
  5383. BX6 X1 SAVE USER NAME
  5384. SA6 GFVA
  5385. BX6 X2 SAVE VSN
  5386. SA6 GFVB
  5387. SX6 X3 SAVE SEQUENCE NUMBER
  5388. SA6 GFVC
  5389. SX6 B6 SAVE FILE BUFFER ADDRESS
  5390. SA6 GFVD
  5391. SX6 B7 SAVE PREVIOUS FILE BUFFER ADDRESS
  5392. SA6 GFVE
  5393. SX6 B2 SAVE VSN BUFFER ADDRESS
  5394. SA6 GFVF
  5395. SX6 B4 SAVE NO VERIFY FLAG
  5396. SA6 GFVG
  5397. SX6 B0 CLEAR FILE COUNT
  5398. SA6 GFVH
  5399. SA6 GFVI CLEAR VSN COUNT
  5400. SA6 GFVJ CLEAR CATALOG RANDOM ADDRESS
  5401. SA6 GFVK CLEAR PREVIOUS CATALOG RANDOM ADDRESS
  5402. SA6 GFVL CLEAR LAST VSN
  5403. ZR B4,GFV1 IF VERIFY STATUS
  5404. SX3 X3-1
  5405. ZR X3,GFV7 IF FIRST FILE
  5406. GFV1 SAFET GFVA,GFVB,,SCST SET AUDIT FET
  5407. NZ X4,GFV7 IF NO FILE FOR USER
  5408. GFV2 SB6 WBUF SET FILE BUFFER
  5409. SB2 WBUF+TCEL SET VSN BUFFER
  5410. RJ UFA UNPACK FILE AUDIT
  5411. NZ X4,GFV6 IF END OF AUDIT
  5412. SA1 GFVH INCREMENT FILE COUNT
  5413. SX7 X1+B1
  5414. SA7 A1
  5415. SA1 GFVC COMPARE TO SEQUENCE NUMBER
  5416. IX7 X1-X7
  5417. NG X7,GFV4 IF FILE ALREADY FOUND
  5418. SA3 GFVE GET PREVIOUS FILE BUFFER ADDRESS
  5419. SB2 GFVK GET PREVIOUS RANDOM ADDRESS ADDRESS
  5420. NZ X7,GFV3 IF FILE NOT YET FOUND
  5421. SA3 GFVD GET FILE BUFFER ADDRESS
  5422. SB2 GFVJ GET RANDOM ADDRESS ADDRESS
  5423. GFV3 SA6 B2 SET RANDOM ADDRESS
  5424. MOVE TCEL,WBUF,X3 SET CATALOG IMAGE IN BUFFER
  5425. GFV4 SA3 GFVI INCREMENT VSN COUNT
  5426. SA2 WBUF+/CAT/REELC
  5427. RJUST X2,X1,/BTC/REELC,/UPB/REELC
  5428. IX6 X1+X3
  5429. LX1 2 SET SIZE OF VSN BUFFERS
  5430. LX3 2
  5431. SB2 B0
  5432. MX0 VSKL*6 COMPARE LAST VSN TO EXTERNAL VSN
  5433. SA2 GFVL
  5434. SA4 WBUF+TCEL
  5435. BX2 X2-X4
  5436. BX2 X0*X2
  5437. NZ X2,GFV5 IF VSNS NOT THE SAME
  5438. SB2 -4 FLAG MATCHING VSNS
  5439. SX6 X6-1 DECREMENT VSN COUNT
  5440. GFV5 SA6 A3 RESET VSN COUNT
  5441. SA2 X1+WBUF+TCEL-4 RESET LAST VSN
  5442. BX6 X2
  5443. SA6 GFVL
  5444. SA4 GFVF GET VSN BUFFER ADDRESS
  5445. IX3 X4+X3
  5446. MOVE X1,WBUF+TCEL,X3+B2 SET VSNS IN BUFFER
  5447. EQ GFV2 CHECK NEXT FILE
  5448.  
  5449. GFV6 SA1 GFVH
  5450. ZR X1,GFV7 IF NO FILES
  5451. SA2 GFVC CHECK IF FILE FOUND
  5452. IX6 X1-X2
  5453. SX4 B0
  5454. PL X6,GFV11 IF FILE FOUND
  5455. SX6 X6+B1 CHECK IF VALID SEQUENCE NUMBER
  5456. SX4 -B1
  5457. NZ X6,GFV11 IF INCORRECT SEQUENCE NUMBER
  5458. SA3 GFVD SET DEFAULT FILE CATALOG
  5459. MOVE TCEL,DFIC,X3
  5460. SA2 GFVD SET SEQUENCE NUMBER IN CATALOG
  5461. MOVEBIT GFVC,X2+/CAT/QN,/BTC/QN,/BTC/QN-1,/UPB/QN
  5462. SX4 B1
  5463. EQ GFV11 SET FILE COUNT
  5464.  
  5465. GFV7 SA1 GFVC CHECK IF VALID SEQUENCE NUMBER
  5466. SX1 X1-1
  5467. SX4 -B1
  5468. NZ X1,GFV11 IF INCORRECT SEQUENCE NUMBER
  5469. LISTVSN GFVB,GFVM,1 LIST VSN ENTRY
  5470. ZR X4,GFV8 IF VSN FOUND
  5471. SX4 -2
  5472. EQ GFV11 SET FILE COUNT
  5473.  
  5474. GFV8 SA1 GFVG
  5475. NZ X1,GFV9 IF NO VERIFY
  5476. SA1 GFVM+/CAT/VSBF CHECK IF VSN IS BUSY
  5477. RJUST X1,X1,/BTC/VSBF,/UPB/VSBF
  5478. SX4 -2
  5479. NZ X1,GFV11 IF VSN IS BUSY
  5480. SA1 GFVM+/CAT/VASF CHECK IF VSN IS ASSIGNED
  5481. RJUST X1,X1,/BTC/VASF,/UPB/VASF
  5482. NZ X1,GFV10 IF VSN IS ASSIGNED TO ANOTHER USER
  5483. SA1 LF
  5484. NZ X1,GFV9 IF LOCAL FILE MODE
  5485. SA1 GFVM+/CAT/NVSN CHECK IF IN SCRATCH POOL
  5486. LJUST X1,X1,/BTC/NVSN,/UPB/NVSN
  5487. NZ X1,GFV10 IF IN SCRATCH POOL
  5488. GFV9 SA3 GFVD SET DEFAULT FILE CATALOG
  5489. MOVE TCEL,DFIC,X3
  5490. SA3 GFVF SET ASSIGNED VSN
  5491. MOVE TSVL,GFVM,X3
  5492. SA2 GFVD SET EXTERNAL VSN
  5493. MOVEBIT GFVM+/CAT/VSN,X2+/CAT/EVSN,/BTC/EVSN,,/UPB/EVSN
  5494. SA2 GFVD SET INTERNAL VSN
  5495. MOVEBIT GFVM+/CAT/PRN,X2+/CAT/IVSN,/BTC/IVSN,,/UPB/IVSN
  5496. SA2 GFVD SET REEL COUNT
  5497. SA2 X2+/CAT/REELC
  5498. MOVEBIT (=1),A2,/BTC/REELC,/BTC/REELC-1,/UPB/REELC
  5499. SX6 B1 SET FILE COUNT
  5500. SA6 GFVH
  5501. SA6 GFVI SET VSN COUNT
  5502. SX4 B1
  5503. EQ GFV11 SET FILE COUNT
  5504.  
  5505. GFV10 MOVEBIT (=0),GFVM+/CAT/VSBF,/BTC/VSBF,,/UPB/VSBF
  5506. REPVSN GFVM,4 REPLACE VSN ENTRY
  5507. SX4 -2
  5508. EQ GFV11 SET FILE COUNT
  5509.  
  5510. GFVA BSS 1 USER NAME
  5511. GFVB BSS 1 VSN
  5512. GFVC BSS 1 SEQUENCE NUMBER
  5513. GFVD BSS 1 FILE BUFFER ADDRESS
  5514. GFVE BSS 1 PREVIOUS FILE BUFFER ADDRESS
  5515. GFVF BSS 1 VSN BUFFER ADDRESS
  5516. GFVG BSS 1 NO VERIFY FLAG
  5517. GFVH BSS 1 FILE COUNT
  5518. GFVI BSS 1 VSN COUNT
  5519. GFVJ BSS 1 FILE RANDOM ADDRESS
  5520. GFVK BSS 1 PREVIOUS FILE RANDOM ADDRESS
  5521. GFVL BSS 1 LAST VSN
  5522. GFVM BSS TSVL VSN ENTRY BUFFER
  5523. GRE SPACE 4,15
  5524. ** GRE - GET RECORD ENTRY.
  5525. *
  5526. * ENTRY (X1) = ENTRY BUFFER ADDRESS.
  5527. * (X2) = TAPE CATALOG FET ADDRESS.
  5528. * FET BUFFER CONTAINS IMAGE OF ONE RECORD
  5529. * OF TAPE CATALOG FILE.
  5530. *
  5531. * EXIT (X6) = 0 IF NO MORE ENTRIES.
  5532. * CURRENT ENTRY IMAGE IN ENTRY BUFFER.
  5533. *
  5534. * USES A - 1, 3.
  5535. * X - 0, 1, 3, 4.
  5536. *
  5537. * MACROS RCREC, READFET, RJUST.
  5538.  
  5539.  
  5540. GRE SUBR ENTRY/EXIT
  5541. SX6 X1 SAVE ENTRY BUFFER ADDRESS
  5542. SA6 GREA
  5543. GRE1 SA1 X2+B1 CHECK IF FIRST READ OF RECORD
  5544. SX1 X1
  5545. SA3 X2+3
  5546. IX3 X3-X1
  5547. NZ X3,GRE2 IF NOT FIRST READ
  5548. READFET X2,GREB,TBHL POSITION PAST BUFFER CONTROL WORD
  5549. GRE2 SA1 X2+B1 GET ENTRY COUNT
  5550. SA3 X1
  5551. RJUST X3,X6,12,23
  5552. RJUST X3,X3,12,23 GET ENTRY LENGTH
  5553. IX6 X6*X3
  5554. SX4 X1+4 CHECK IF ANY ENTRIES LEFT
  5555. IX4 X4+X6
  5556. SA1 X2+3
  5557. IX4 X1-X4
  5558. PL X4,GRE3 IF NO MORE ENTRIES
  5559. SA1 GREA GET NEXT ENTRY
  5560. READFET X2,X1,X3
  5561. SX6 B1 FLAG ENTRY FOUND
  5562. EQ GREX RETURN
  5563.  
  5564. GRE3 MX0 -24 CHECK NEXT RANDOM ADDRESS
  5565. SA1 X2+TFRR
  5566. BX6 -X0*X1
  5567. ZR X6,GREX IF NO MORE RECORDS
  5568. RCREC X2,X6 READ NEXT RECORD
  5569. EQ GRE1 PROCESS NEXT ENTRY
  5570.  
  5571. GREA BSS 1 ENTRY BUFFER ADDRESS
  5572. GREB BSS TBHL BUFFER CONTROL WORD BUFFER
  5573. LVS SPACE 4,15
  5574. ** LVS - LIST VSN ENTRY.
  5575. *
  5576. * ENTRY (X1) = VSN.
  5577. * (B2) = 0 IF NO INTERLOCK OF VSN.
  5578. * = 1 IF INTERLOCK VSN.
  5579. * (B6) = VSN BUFFER ADDRESS.
  5580. *
  5581. * EXIT (X4) = 0 IF VSN FOUND.
  5582. * VSN ENTRY IMAGE SET IN BUFFER.
  5583. * DEFAULT SET IN BUFFER IF NOT FOUND.
  5584. *
  5585. * USES A - 1, 2, 3, 4, 6.
  5586. * X - 1, 2, 3.
  5587. *
  5588. * MACROS CALLTFM, MOVE, MOVEBIT, RESETP, WRITFET.
  5589.  
  5590.  
  5591. LVS SUBR ENTRY/EXIT
  5592. BX6 X1 SAVE VSN
  5593. SA6 LVSA
  5594. SX6 B6 SAVE VSN BUFFER ADDRESS
  5595. SA6 LVSB
  5596. SX6 B2 SAVE INTERLOCK STATUS
  5597. SA6 LVSC
  5598. MOVE TSVL,DVSC,B6 SET DEFAULT VSN IMAGE
  5599. SA2 LVSB
  5600. MOVEBIT LVSA,X2+/CAT/VSN,/BTC/VSN,,/UPB/VSN
  5601. SA2 LVSB
  5602. MOVEBIT LVSA,X2+/CAT/PRN,/BTC/PRN,,/UPB/PRN
  5603. RESETP N1 SET VSN ENTRY IMAGE IN FET
  5604. SA1 LVSB
  5605. WRITFET X2,X1,4
  5606. SA1 LVSC CHECK INTERLOCK STATUS
  5607. SX6 LVES SET FUNCTION CODE
  5608. ZR X1,LVS1 IF NO INTERLOCK
  5609. SX6 -LVES SET FUNCTION CODE WITH INTERLOCK
  5610. LVS1 CALLTFM X2,X6 LIST VSN ENTRY
  5611. SX6 X4 SAVE ERROR CODE
  5612. SA6 LVSD
  5613. SA3 LVSB SET VSN ENTRY IMAGE IN BUFFER
  5614. MOVE TSVL,N1BUF,X3
  5615. SA1 LF
  5616. ZR X1,LVS2 IF NOT LOCAL FILE MODE
  5617. SA2 LVSB CLEAR VSN BUSY FLAG
  5618. MOVEBIT (=0),X2+/CAT/VSBF,/BTC/VSBF,,/UPB/VSBF
  5619. LVS2 SA4 LVSD
  5620. EQ LVSX RETURN
  5621.  
  5622. LVSA BSS 1 VSN
  5623. LVSB BSS 1 VSN ENTRY BUFFER ADDRESS
  5624. LVSC BSS 1 INTERLOCK STATUS
  5625. LVSD BSS 1 ERROR CODE
  5626. MBS SPACE 4,20
  5627. ** MBS - MOVE BIT STRING.
  5628. *
  5629. * ENTRY (A1) = ADDRESS OF SOURCE STRING.
  5630. * (A2) = ADDRESS OF DESTINATION STRING.
  5631. * (B2) = UPPER BIT POSITION OF DESTINATION STRING.
  5632. * (B3) = UPPER BIT POSITION OF SOURCE STRING.
  5633. * (B4) = BIT COUNT.
  5634. * (X1) = FIRST WORD OF SOURCE STRING.
  5635. * (X2) = FIRST WORD OF DESTINATION STRING.
  5636. *
  5637. * EXIT (A1) = ADDRESS OF REMAINDER OF SOURCE STRING.
  5638. * (A2) = ADDRESS OF REMAINDER OF DESTINATION STRING.
  5639. * (B2) = UPPER BIT POSITION OF REMAINDER OF DESTINATION
  5640. * STRING.
  5641. * (B3) = UPPER BIT POSITION OF REMAINDER OF SOURCE
  5642. * STRING.
  5643. *
  5644. * USES B - 4.
  5645. * X - 1, 2.
  5646. *
  5647. * CALLS SBS.
  5648.  
  5649.  
  5650. MBS SUBR ENTRY/EXIT
  5651. MBS1 LE B4,MBSX IF NO MORE BITS TO TRANSFER
  5652. RJ SBS SET BIT STRING
  5653. SA6 A2 SET NEW STRING
  5654. BX2 X6
  5655. PL B2,MBS2 IF MORE BITS IN DESTINATION WORD
  5656. SB2 59 RESET UPPER BIT POSITION
  5657. SA2 A2+B1 RESET DESTINATION ADDRESS
  5658. MBS2 PL B3,MBS1 IF MORE BITS IN SOURCE WORD
  5659. SB3 59 RESET UPPER BIT POSITION
  5660. SA1 A1+B1 RESET SOURCE ADDRESS
  5661. EQ MBS1 CHECK BIT COUNT
  5662. MTO SPACE 4,15
  5663. ** MTO - ISSUE MESSAGE TO OUTPUT.
  5664. *
  5665. * ENTRY (B2) = 0 IF INFORMATIVE MESSAGE.
  5666. * = 1 IF ERROR MESSAGE.
  5667. * (B5) = MESSAGE ADDRESS.
  5668. *
  5669. * EXIT MESSAGE ISSUED TO OUTPUT FILE/K-DISPLAY.
  5670. *
  5671. * USES A - 1, 2, 6.
  5672. * B - 2, 7.
  5673. * X - 1, 2, 6.
  5674. *
  5675. * CALLS IRL.
  5676. *
  5677. * MACROS CWORDS, MOVE, WLINES.
  5678.  
  5679.  
  5680. MTO SUBR ENTRY/EXIT
  5681. SX6 B5 SAVE MESSAGE ADDRESS
  5682. SA6 MTOA
  5683. SA2 =10H *INFORM*
  5684. ZR B2,MTO1 IF INFORMATIVE MESSAGE
  5685. SX6 B1 SET ERROR FLAG
  5686. SA6 EF
  5687. SA6 DM SET DIRECTIVE MESSAGE FLAG
  5688. SA2 =10H *ERROR*
  5689. MTO1 BX6 X2 SET START OF MESSAGE IN K-DISPLAY
  5690. SA6 /KMESS/MESSAGE+0
  5691. CWORDS B5,1 COUNT WORDS IN LINE
  5692. SX6 B0 FLAG END OF K-DISPLAY
  5693. SA6 B6+/KMESS/MESSAGE+1
  5694. SA2 MTOA SET MESSAGE IN K-DISPLAY
  5695. MOVE B6,X2,/KMESS/MESSAGE+1
  5696. SA1 BF CHECK IF *BRIEF* MODE
  5697. ZR X1,MTO2 IF NOT *BRIEF* MODE
  5698. SA1 DM CHECK MESSAGE TYPE
  5699. ZR X1,MTOX IF INFORMATIVE MESSAGE AND *BRIEF*
  5700. WLINES /KMESS/DIRECT,1 WRITE DIRECTIVE TO OUTPUT
  5701. MTO2 WLINES /KMESS/MESSAGE,1 WRITE MESSAGE TO OUTPUT
  5702. SA1 DM CHECK MESSAGE TYPE
  5703. ZR X1,MTOX IF INFORMATIVE MESSAGE
  5704. RJ IRL IGNORE REST OF INPUT LINE
  5705. EQ MTOX RETURN
  5706.  
  5707. MTOA BSS 1 MESSAGE ADDRESS
  5708. NPG SPACE 4,15
  5709. ** NPG - NEW PAGE HEADER GENERATOR.
  5710. *
  5711. * ENTRY (HD) = ADDRESS OF HEADER BUFFER.
  5712. * (HL) = LENGTH OF HEADER.
  5713. * (PG) = PAGE NUMBER.
  5714. *
  5715. * EXIT PAGE HEADER WRITTEN TO OUTPUT FILE.
  5716. *
  5717. * USES A - 1, 2, 6.
  5718. * B - 7.
  5719. * X - 0, 1, 2, 6.
  5720. *
  5721. * CALLS CDD.
  5722. *
  5723. * MACROS CLINES, WRITEW.
  5724.  
  5725.  
  5726. NPG SUBR ENTRY/EXIT
  5727. SA1 OS
  5728. ZR X1,NPGX IF NO OUTPUT FILE
  5729. PL X1,NPG1 IF TERMINAL OUTPUT
  5730. SA1 PG RESET PAGE NUMBER
  5731. SX1 X1+B1
  5732. SX6 X1
  5733. SA6 A1
  5734. RJ CDD CONVERT CONSTANT TO DECIMAL DISPLAY
  5735. MX0 24 RESET PAGE NUMBER IN HEADER
  5736. BX6 -X0*X6
  5737. SA1 =C*PAGE*
  5738. BX6 X1+X6
  5739. SA6 NPGE
  5740. CLINES NPGA,NPGAL COUNT LINES IN FIRST PART OF HEADER
  5741. SX6 B7 SET LINE COUNT
  5742. SA6 LC
  5743. SB7 B6 WRITE FIRST PART OF HEADER TO OUTPUT FILE
  5744. WRITEW L,A1-B6,B7
  5745. NPG1 SA1 HD COUNT LINES IN SECOND PART OF HEADER
  5746. SA2 HL
  5747. CLINES X1,X2
  5748. SA2 LC RESET LINE COUNT
  5749. SX6 X2+B7
  5750. SA6 A2
  5751. SB7 B6 WRITE SECOND PART OF HEADER TO OUTPUT FILE
  5752. WRITEW L,A1-B6,B7
  5753. EQ NPGX RETURN
  5754.  
  5755. NPGA BSS 0 FIRST LINE OF PAGE HEADER
  5756. DATA H*1 TAPE FILE SUPERVISOR. *
  5757. NPGB DATA H$*TFSP* FAMILY = $
  5758. NPGC DATA H* *
  5759. NPGD DATA H*YY/MM/DD. HH.MM.SS. *
  5760. NPGE DATA C*PAGE 1*
  5761. NPGF BSS 0 SECOND LINE OF PAGE HEADER
  5762. DUP 9
  5763. DATA 10H
  5764. ENDD
  5765. NPGG BSS 0 DIRECTIVE IMAGE
  5766. DATA 30H
  5767. CON 0
  5768. NPGAL EQU *-NPGA LENGTH OF FIRST PART OF HEADER
  5769. RCR SPACE 4,15
  5770. ** RCR - READ CATALOG RECORD.
  5771. *
  5772. * ENTRY (X1) = RECORD RANDOM ADDRESS.
  5773. * (X2) = FET ADDRESS.
  5774. * (X3) = WORKING BUFFER ADDRESS.
  5775. * = 0 IF NO WORKING BUFFER.
  5776. * (B2) .NE. 0 IF SET UTILITY INTERLOCK BEFORE READ.
  5777. *
  5778. * EXIT RECORD READ INTO BUFFER.
  5779. *
  5780. * USES A - 3, 6.
  5781. * X - 3, 6.
  5782. *
  5783. * CALLS SUI.
  5784. *
  5785. * MACROS CALLTFM, READFET, RESETP.
  5786.  
  5787.  
  5788. RCR SUBR ENTRY/EXIT
  5789. BX6 X1 SET RANDOM ADDRESS
  5790. SA6 X2+TFRR
  5791. SX6 X3 SAVE WORKING BUFFER ADDRESS
  5792. SA6 RCRA
  5793. ZR B2,RCR1 IF NO INTERLOCK TO SET
  5794. RJ SUI SET UTILITY INTERLOCK
  5795. RCR1 RESETP X2 READ CATALOG RECORD
  5796. CALLTFM X2,RDRS
  5797. SA3 RCRA CHECK BUFFER ADDRESS
  5798. ZR X3,RCRX IF NO WORKING BUFFER
  5799. READFET X2,X3,100B MOVE TO WORKING BUFFER
  5800. EQ RCRX RETURN
  5801.  
  5802. RCRA BSS 1 WORKING BUFFER ADDRESS
  5803. RDF SPACE 4,20
  5804. ** RDF - READ WORDS FROM FET INTO WORKING BUFFER.
  5805. *
  5806. * ENTRY (X2) = FET ADDRESS.
  5807. * (B6) = WORKING BUFFER ADDRESS.
  5808. * (B7) = NUMBER OF WORDS TO TRANSFER.
  5809. *
  5810. * EXIT (X1) = 0 IF TRANSFER COMPLETE.
  5811. * = (B6) IF (B7).NE.0.
  5812. * (X2) = FET ADDRESS.
  5813. * (B6) = LWA+1 OF WORKING BUFFER.
  5814. * (B7) = NUMBER OF WORDS NOT TRANSFERRED.
  5815. *
  5816. * USES A - 1, 3, 7.
  5817. * X - 3, 6, 7.
  5818. *
  5819. * MACROS READW.
  5820.  
  5821.  
  5822. RDF SUBR ENTRY/EXIT
  5823. SA1 X2+2 COMPARE *IN* TO *OUT*
  5824. SA3 A1+B1
  5825. IX6 X1-X3
  5826. PL X6,RDF1 IF *IN* .GE. *OUT*
  5827. SA1 X2+B1 GET *FIRST*
  5828. SX1 X1
  5829. SA3 A3+B1 GET *LIMIT*
  5830. SX3 X3
  5831. IX1 X3-X1 GET NUMBER OF WORDS AVAILABLE IN BUFFER
  5832. IX6 X6+X1
  5833. RDF1 SX1 B7 CHECK IF ENOUGH WORDS IN BUFFER
  5834. IX1 X6-X1
  5835. SX7 B0
  5836. PL X1,RDF2 IF ENOUGH WORDS IN BUFFER
  5837. SB7 X6 RESET WORD COUNT
  5838. BX7 -X1
  5839. RDF2 SA7 RDFA SAVE NUMBER OF WORDS NOT TRANSFERRED
  5840. READW X2,B6,B7 TRANSFER FROM FET BUFFER
  5841. SA1 RDFA
  5842. ZR X1,RDFX IF TRANSFER COMPLETE
  5843. SB7 X1 SET NUMBER OF WORDS NOT TRANSFERRED
  5844. SX1 B6 SET LWA+1 OF BUFFER
  5845. EQ RDFX RETURN
  5846.  
  5847. RDFA BSS 1 NUMBER OF WORDS NOT TRANSFERRED
  5848. RLV SPACE 4,15
  5849. ** RLV - RELEASE BY VSN.
  5850. *
  5851. * ENTRY (X1) = USER NAME.
  5852. * (X2) = VSN.
  5853. * (X3) = SEQUENCE NUMBER.
  5854. *
  5855. * EXIT (X4) = 0 IF RELEASE COMPLETE.
  5856. * .NE. 0 IF VSN NOT ASSIGNED TO USER.
  5857. *
  5858. * USES A - 1, 2, 6.
  5859. * X - 1, 2, 6.
  5860. *
  5861. * CALLS SMB.
  5862. *
  5863. * MACROS CALLTFM, MOVEBIT, RESETP.
  5864.  
  5865.  
  5866. RLV SUBR ENTRY/EXIT
  5867. BX6 X1 SAVE USER NAME
  5868. SA6 RLVA
  5869. BX6 X2 SAVE VSN
  5870. SA6 RLVB
  5871. BX6 X3
  5872. SA6 RLVC
  5873. RESETP N3 SET FET FOR RELEASE
  5874. MOVEBIT RLVA,N3+TFUN,UNKL*6
  5875. MOVEBIT RLVB,N3+TFES,VSKL*6
  5876. SX6 B0
  5877. SA6 N3+TFID
  5878. MOVEBIT (=0),N3+TFID+1,FIKL*6-60
  5879. MOVEBIT RLVC,N3+TFID+1,15,14,14
  5880. CALLTFM N3,RTCS RELEASE TAPE CATALOG FILE
  5881. EQ RLVX RETURN
  5882.  
  5883. RLVA BSS 1 USER NAME
  5884. RLVB BSS 1 VSN
  5885. RLVC BSS 1 SEQUENCE NUMBER
  5886. RVS SPACE 4,15
  5887. ** RVS - REPLACE/ADD VSNS.
  5888. *
  5889. * ENTRY (B6) = VSN BUFFER ADDRESS.
  5890. * (B7) = VSN BUFFER LENGTH.
  5891. *
  5892. * EXIT VSN ENTRIES REPLACED/ADDED.
  5893. *
  5894. * USES A - 1, 3, 6.
  5895. * X - 1, 3, 6.
  5896. *
  5897. * MACROS CALLTFM, RESETP, WRITFET.
  5898.  
  5899.  
  5900. RVS SUBR ENTRY/EXIT
  5901. ZR B7,RVSX IF NO VSNS TO REPLACE
  5902. SX6 B6 SAVE BUFFER ADDRESS
  5903. SA6 RVSA
  5904. SX6 B7 SAVE BUFFER LENGTH
  5905. SA6 RVSB
  5906. RESETP N1 SET VSN BUFFER INTO FET BUFFER
  5907. SA1 RVSA
  5908. SA3 RVSB
  5909. WRITFET X2,X1,X3
  5910. CALLTFM X2,RVES REPLACE/ADD VSN ENTRIES
  5911. EQ RVSX RETURN
  5912.  
  5913. RVSA BSS 1 VSN BUFFER ADDRESS
  5914. RVSB BSS 1 VSN BUFFER LENGTH
  5915. SAF SPACE 4,20
  5916. ** SAF - SET AUDIT FET.
  5917. *
  5918. * ENTRY (X1) = USER NAME.
  5919. * (X2) = VSN.
  5920. * (X3) = FIRST TEN CHARACTERS OF FILE IDENTIFIER.
  5921. * (X4) = LAST SEVEN CHARACTERS OF FILE IDENTIFIER.
  5922. * (X6) = AUDIT RANDOM ADDRESS.
  5923. * (B2) = AUDIT TYPE.
  5924. *
  5925. * EXIT (X4) = 0 IF NO ERROR IN AUDIT.
  5926. * (N3 - N3+15B) = AUDIT FET.
  5927. *
  5928. * USES A - 1, 6.
  5929. * X - 1, 6.
  5930. *
  5931. * MACROS CALLTFM, MOVEBIT, RESETP.
  5932.  
  5933.  
  5934. SAF SUBR ENTRY/EXIT
  5935. SA6 SAFA SAVE RANDOM ADDRESS
  5936. BX6 X1 SAVE USER NAME
  5937. SA6 SAFB
  5938. BX6 X2 SAVE VSN
  5939. SA6 SAFC
  5940. BX6 X3 SAVE FILE IDENTIFIER
  5941. SA6 SAFD
  5942. BX6 X4
  5943. SA6 A6+B1
  5944. SX6 B2 SAVE AUDIT TYPE
  5945. SA6 SAFE
  5946. RESETP N3 RESET FET POINTERS
  5947. SA1 SAFA SET AUDIT RANDOM ADDRESS
  5948. BX6 X1
  5949. SA6 N3+TFRR
  5950. MOVEBIT SAFB,N3+TFUN,UNKL*6 SET USER NAME IN FET
  5951. MOVEBIT SAFC,N3+TFES,VSKL*6 SET VSN IN FET
  5952. MOVEBIT SAFD,N3+TFID,FIKL*6 SET FILE ID IN FET
  5953. MOVEBIT SAFE,N3+TFPW,3,2,2 SET AUDIT TYPE IN FET
  5954. CALLTFM N3,AUCS ISSUE AUDIT REQUEST
  5955. EQ SAFX RETURN
  5956.  
  5957. SAFA BSS 1 AUDIT RANDOM ADDRESS
  5958. SAFB BSS 1 USER NAME
  5959. SAFC BSS 1 VSN
  5960. SAFD BSS 2 FILE IDENTIFIER
  5961. SAFE BSS 1 AUDIT TYPE
  5962. SBS SPACE 4,20
  5963. ** SBS - SET BIT STRING.
  5964. *
  5965. * ENTRY (X1) = SOURCE STRING.
  5966. * (X2) = DESTINATION STRING.
  5967. * (B2) = UPPER BIT POSITION OF DESTINATION STRING.
  5968. * (B3) = UPPER BIT POSITION OF SOURCE STRING.
  5969. * (B4) = MAXIMUM BIT COUNT.
  5970. *
  5971. * EXIT (X6) = NEW STRING.
  5972. * (B2) = LOWER BIT POSITION - 1 OF DESTINATION STRING.
  5973. * .LT. 0 IF STRING AT END OF WORD.
  5974. * (B3) = LOWER BIT POSITION - 1 OF SOURCE STRING.
  5975. * .LT. 0 IF STRING AT END OF WORD.
  5976. * (B4) = REMAINING BIT COUNT.
  5977. * (B6) = NUMBER OF BITS TRANSFERRED.
  5978. *
  5979. * USES B - 7.
  5980. * X - 0, 7.
  5981.  
  5982.  
  5983. SBS SUBR ENTRY/EXIT
  5984. SB6 B4-B1
  5985. LE B6,B3,SBS1 IF UPPER BIT OF SOURCE .GT. BIT COUNT
  5986. SB6 B3
  5987. SBS1 LE B6,B2,SBS2 IF UPPER BIT OF DESTINATION .GT. COUNT
  5988. SB6 B2
  5989. SBS2 BX6 X2 PRESET DESTINATION IMAGE
  5990. NG B6,SBS4 IF NO BIT COUNT
  5991. MX0 1 CREATE MASK
  5992. AX0 B6
  5993. SB7 B3+B1 GET SOURCE STRING
  5994. LX0 B7
  5995. BX6 X0*X1
  5996. SB7 B2-B3 GET DESTINATION IMAGE
  5997. PL B7,SBS3 IF VALID SHIFT COUNT
  5998. SB7 B7+60
  5999. SBS3 LX0 B7
  6000. BX0 -X0*X2
  6001. LX6 B7 SET NEW IMAGE
  6002. BX6 X0+X6
  6003. SBS4 SB6 B6+B1 SET NUMBER OF BITS SET
  6004. SB2 B2-B6 RESET UPPER BIT POSITIONS
  6005. SB3 B3-B6
  6006. SB4 B4-B6 RESET BIT COUNT
  6007. EQ SBSX RETURN
  6008. SST SPACE 4,20
  6009. ** SST - SET SOURCE VALUES IN TABLE.
  6010. *
  6011. * ENTRY (B2) = 0 IF K-DISPLAY TABLE.
  6012. * 1 IF AUDIT TABLE.
  6013. * 2 IF SOURCE FILE TABLE.
  6014. * (X1) = DIRECTIVE LEVEL.
  6015. *
  6016. * EXIT SOURCE VALUES SET IN TABLE.
  6017. *
  6018. * USES A - 1, 2, 6.
  6019. * B - 2, 3, 4.
  6020. * X - 0, 1, 2, 6.
  6021. *
  6022. * CALLS CXS.
  6023. *
  6024. * MACROS MOVEBIT.
  6025.  
  6026.  
  6027. SST SUBR ENTRY/EXIT
  6028. SX2 B2 SET LOWER BIT POSITION OF TABLE ADDRESS
  6029. LX2 59-0
  6030. SX6 B0
  6031. NG X2,SST1 IF LOWER BIT 0
  6032. SX6 30
  6033. SST1 SA6 SSTA
  6034. SX6 B2 SET ADDRESS OF TABLE ADDRESS
  6035. AX6 1
  6036. SX6 CXSA+3+X6
  6037. SA6 SSTB
  6038. SA1 TDTA+X1 GET DIRECTIVE TABLE ADDRESSES
  6039. SX6 X1+B1 SAVE NEXT ADDRESS
  6040. SA6 SSTC
  6041. SST2 SA1 X1
  6042. ZR X1,SSTX IF END OF DIRECTIVE TABLES
  6043. RJ CXS CONVERT CATALOG ENTRY TO SOURCE
  6044. NG B3,SST4 IF NO DIRECTIVE CONTROL TABLE
  6045. SA1 CXSA+2
  6046. PL X1,SST4 IF NO OUTPUT CONTROL BLOCK
  6047. SA1 SSTB GET TABLE ADDRESS
  6048. SA1 X1
  6049. SA2 SSTA
  6050. SB2 X2
  6051. AX1 B2
  6052. SX2 X1
  6053. ZR X2,SST4 IF NO TABLE ADDRESS
  6054. MX0 -6 GET UPPER BIT POSITION
  6055. AX1 18
  6056. BX6 -X0*X1
  6057. SB2 X6
  6058. LX1 48 GET CHARACTER COUNT
  6059. AX1 6+48
  6060. SB3 59 PRESET DATA FIELD BIT POSITION
  6061. SX6 6
  6062. IX1 X1*X6
  6063. SB4 X1 PRESET BIT COUNT
  6064. PL X1,SST3 IF CHARACTERS COUNTED FROM LEFT
  6065. SB4 -B4 RESET BIT COUNT
  6066. SB3 B4-B1 RESET BIT POSITION
  6067. SST3 MOVEBIT CBUF+1,X2,B4,B3,B2 MOVE DATA FIELD TO SOURCE FIELD
  6068. SST4 SA1 SSTC GET DIRECTIVE TABLE ADDRESS
  6069. SX6 X1+B1 SAVE NEXT ADDRESS
  6070. SA6 A1
  6071. EQ SST2 GET DIRECTIVE TABLE IMAGE
  6072.  
  6073. SSTA CON 30 LOWER BIT POSITION OF TABLE ADDRESS
  6074. SSTB CON CXSA+3 ADDRESS OF TABLE ADDRESS
  6075. SSTC BSS 1 DIRECTIVE TABLE ADDRESS
  6076. STB SPACE 4,20
  6077. ** STB - SEARCH TABLE.
  6078. *
  6079. * ENTRY (A1) = TABLE ADDRESS.
  6080. * (B2) = TABLE LENGTH.
  6081. * .LT. 0 IF TERMINATED BY A ZERO WORD.
  6082. * (B3) = ENTRY LENGTH.
  6083. * (B4) = RELATIVE ADDRESS IN ENTRY.
  6084. * (X0) = MASK.
  6085. * (X2) = VALUE TO COMPARE AGAINST.
  6086. *
  6087. * EXIT (A1) = ADDRESS OF ENTRY IF FOUND.
  6088. * (A3) = (A1) + (B4).
  6089. * (B7) = RELATIVE ADDRESS IN TABLE IF FOUND.
  6090. * (X1) = FIRST WORD OF ENTRY IF FOUND.
  6091. * (X3) = ENTRY WORD WITH VALUE.
  6092. * (X4) .NE. 0 IF ENTRY NOT FOUND.
  6093. *
  6094. * USES B - 6.
  6095.  
  6096.  
  6097. STB1 ZR X1,STBX IF END OF TABLE
  6098. STB2 BX4 X3-X2 COMPARE ENTRIES
  6099. BX4 X0*X4
  6100. ZR X4,STBX IF ENTRY FOUND
  6101. SB7 B7+B3 GET NEXT ENTRY IN TABLE
  6102. SA1 A1+B3
  6103. SA3 A3+B3
  6104. NG B2,STB1 IF TABLE TERMINATED BY A ZERO WORD
  6105. SB6 B7-B2
  6106. NG B6,STB2 IF NOT END OF TABLE
  6107.  
  6108. STB SUBR ENTRY/EXIT
  6109. SA3 A1+B4 POSITION FIRST ENTRY
  6110. SB7 B4
  6111. SX4 B1 PRESET ENTRY NOT FOUND
  6112. ZR B2,STBX IF NO TABLE
  6113. PL B2,STB2 IF TABLE LENGTH SPECIFIED
  6114. EQ STB1 CHECK FOR END OF TABLE
  6115. TLD SPACE 4,25
  6116. ** TLD - TABLE LIST TO DISPLAY PROCESSOR.
  6117. *
  6118. * ENTRY (A1) = ADDRESS OF TABLE.
  6119. * (A2) = ADDRESS OF DISPLAY.
  6120. * (B3) = TABLE LENGTH.
  6121. * (B4) = BIT COUNT OF ENTRY.
  6122. * (B6) = BIT COUNT OF IMAGE BETWEEN ENTRIES.
  6123. * (X6) = IMAGE BETWEEN ENTRIES, RIGHT JUSTIFIED.
  6124. * (X7) = NUMBER OF ENTRIES PER DISPLAY LINE.
  6125. *
  6126. * EXIT (A1) = LWA+1 OF TABLE.
  6127. * (A2) = LWA+1 OF DISPLAY.
  6128. * (X3) = LAST BIT POSITION + 1 OF DISPLAY.
  6129. *
  6130. * USES A - 3, 4, 5, 6, 7.
  6131. * B - 2, 4.
  6132. * X - 1, 2, 4, 5, 6, 7.
  6133. *
  6134. * CALLS FEL, ZTB.
  6135. *
  6136. * MACROS MOVEBIT.
  6137.  
  6138.  
  6139. TLD8 SA3 TLDI SET LAST BIT POSITION + 1 OF DISPLAY
  6140.  
  6141. TLD SUBR ENTRY/EXIT
  6142. SA6 TLDA SET *BETWEEN* IMAGE
  6143. SX6 B6-B1 SET UPPER BIT POSITION OF IMAGE
  6144. SA6 TLDB
  6145. SX6 B6+B4 SET BIT COUNT OF IMAGE
  6146. SA6 TLDC
  6147. SX6 B3
  6148. NG B3,TLD1 IF ZERO-WORD TERMINATED TABLE
  6149. SX6 A1+B3
  6150. TLD1 SA6 TLDD SET LWA+1 OF TABLE
  6151. SA7 TLDE SET ENTRIES PER DISPLAY LINE
  6152. SX6 B0 SET ENTRY COUNT
  6153. SA6 TLDF
  6154. SX6 B0 PRESET ONE WORD PER ENTRY FLAG
  6155. SB4 B4-60
  6156. NG B4,TLD2 IF ONE WORD PER ENTRY
  6157. SX6 B1 SET TWO WORDS PER ENTRY FLAG
  6158. TLD2 SA6 TLDG
  6159. SX6 A1 SET TABLE ADDRESS
  6160. SA6 TLDH
  6161. SX6 59 SET UPPER BIT POSITION OF DISPLAY
  6162. SA6 TLDI
  6163. TLD3 SA1 TLDH GET ADDRESS OF TABLE
  6164. SA3 TLDD GET LWA+1 OF TABLE
  6165. IX6 X1-X3
  6166. SA1 X1
  6167. NG X3,TLD4 IF ZERO-WORD TERMINATED
  6168. PL X6,TLD8 IF END OF TABLE
  6169. EQ TLD5 SPACE FILL NAME
  6170.  
  6171. TLD4 ZR X1,TLD8 IF END OF TABLE
  6172. TLD5 RJ ZTB CONVERT ZEROES TO BLANKS
  6173. SA6 TLDA+1 SET ENTRY IN IMAGE
  6174. SA3 TLDG
  6175. ZR X3,TLD6 IF ONE WORD PER ENTRY
  6176. SA1 A1+B1 GET REST OF ENTRY
  6177. RJ ZTB CONVERT ZEROES TO BLANKS
  6178. SA6 A6+B1 SET REST OF ENTRY IN IMAGE
  6179. TLD6 SX6 A1+B1 RESET TABLE ADDRESS
  6180. SA6 TLDH
  6181. SA3 TLDC GET BIT COUNT OF IMAGE
  6182. SA4 TLDB GET UPPER BIT POSITION OF IMAGE
  6183. SA5 TLDI GET UPPER BIT POSITION OF DISPLAY
  6184. MOVEBIT TLDA,A2,X3,X4,X5 MOVE IMAGE TO DISPLAY
  6185. SA1 TLDF RESET ENTRY COUNT
  6186. SX6 X1+B1
  6187. SA6 A1
  6188. SA1 TLDE COMPARE TO ENTRIES PER LINE
  6189. IX6 X6-X1
  6190. SA2 A2 PRESET DISPLAY ADDRESS
  6191. NZ X6,TLD7 IF NOT LAST ENTRY ON LINE
  6192. SA6 A6
  6193. SX3 B2
  6194. RJ FEL FORCE END OF LINE
  6195. SB2 59 RESET UPPER BIT POSITION
  6196. TLD7 SX6 B2
  6197. SA6 TLDI
  6198. EQ TLD3 CHECK FOR END OF TABLE
  6199.  
  6200. TLDA BSS 3 IMAGE OF ENTRY
  6201. TLDB BSS 1 UPPER BIT POSITION OF IMAGE
  6202. TLDC BSS 1 LENGTH OF IMAGE
  6203. TLDD BSS 1 LWA+1 OF TABLE
  6204. TLDE BSS 1 ENTRIES PER LINE
  6205. TLDF BSS 1 ENTRY COUNT
  6206. TLDG BSS 1 TWO WORD ENTRY FLAG
  6207. TLDH BSS 1 ADDRESS OF TABLE
  6208. TLDI BSS 1 UPPER BIT POSITION OF DISPLAY
  6209. TSL SPACE 4,20
  6210. ** TSL - TABLE ENTRIES TO SINGLE ENTRY LIST PROCESSOR.
  6211. *
  6212. * ENTRY (X6) = TABLE ADDRESS.
  6213. * (X7) = LIST ADDRESS.
  6214. * (B2) = TABLE LENGTH.
  6215. * .LT. 0 IF ZERO WORD TERMINATED.
  6216. * (B3) = RELATIVE ADDRESS IN ENTRY.
  6217. * (B4) = ENTRY LENGTH.
  6218. * (B5) = BIT COUNT. MUST BE .LE. 120.
  6219. *
  6220. * EXIT (X1) = LWA+1 OF TABLE.
  6221. *
  6222. * USES A - 1, 2, 3, 4, 6, 7.
  6223. * X - 2, 3, 4, 6, 7.
  6224. *
  6225. * MACROS MOVEBIT.
  6226.  
  6227.  
  6228. TSL6 SA1 TSLA RETURN LWA+1 OF TABLE
  6229.  
  6230. TSL SUBR ENTRY/EXIT
  6231. SA6 TSLA SAVE TABLE ADDRESS
  6232. SA7 TSLF SAVE LIST ADDRESS
  6233. SX6 X6+B2
  6234. PL B2,TSL1 IF NOT ZERO WORD TERMINATED
  6235. SX6 B2
  6236. TSL1 SA6 TSLB SAVE LWA+1 OF TABLE
  6237. SX6 B3 SAVE RELATIVE ADDRESS IN ENTRY
  6238. SA6 TSLC
  6239. SX6 B4 SAVE ENTRY LENGTH
  6240. SA6 TSLD
  6241. SX6 B5 SAVE BIT COUNT
  6242. SA6 TSLE
  6243. TSL2 SA1 TSLA GET TABLE ADDRESS
  6244. SA2 TSLB GET LWA+1 OF TABLE
  6245. SA3 TSLC GET RELATIVE ADDRESS IN TABLE
  6246. SA4 TSLD GET ENTRY LENGTH
  6247. IX6 X1+X3 SET ADDRESS OF ENTRY
  6248. IX7 X1+X4 SET ADDRESS OF NEXT ENTRY
  6249. SA1 X1
  6250. PL X2,TSL3 IF NOT ZERO WORD TERMINATED
  6251. ZR X1,TSL6 IF END OF TABLE
  6252. EQ TSL4 MOVE TABLE ENTRY TO LIST
  6253.  
  6254. TSL3 IX2 X6-X2
  6255. PL X2,TSL6 IF END OF TABLE
  6256. TSL4 SA3 TSLE GET BIT COUNT
  6257. SA2 TSLF GET LIST ADDRESS
  6258. SA7 TSLA RESET TABLE ADDRESS
  6259. SX7 X2+B1 RESET LIST ADDRESS
  6260. SX4 X3-61
  6261. NG X4,TSL5 IF LESS THAN 60 BITS
  6262. SX7 X7+B1
  6263. TSL5 SA7 A2 RESET LIST ADDRESS
  6264. MOVEBIT X6,X2,X3 MOVE ENTRY FROM TABLE TO LIST
  6265. EQ TSL2 CHECK NEXT ENTRY
  6266.  
  6267. TSLA BSS 1 TABLE ADDRESS
  6268. TSLB BSS 1 LWA+1 OF TABLE
  6269. TSLC BSS 1 RELATIVE ADDRESS IN ENTRY
  6270. TSLD BSS 1 ENTRY LENGTH
  6271. TSLE BSS 1 BIT COUNT
  6272. TSLF BSS 1 LIST ADDRESS
  6273. USA SPACE 4,20
  6274. ** USA - USER AUDIT LIST PROCESSOR.
  6275. *
  6276. * ENTRY (X1) = 0 IF IGNORE CHARGE NUMBER.
  6277. * = CHARGE NUMBER.
  6278. * (X2) = VSN.
  6279. * = 0 IF AUDIT ALL FILES.
  6280. * (B2) = 1 IF *AUDIT*.
  6281. * = 2 IF *SOURCE*.
  6282. * = 3 IF *MACHINE READABLE.*
  6283. * = 4 IF *SOURCE* WITHOUT VSNS.
  6284. *
  6285. * EXIT FILES PROCESSED FOR USER NAME.
  6286. *
  6287. * USES A - 1, 2, 6.
  6288. * B - 2, 6.
  6289. * X - 1, 2, 6.
  6290. *
  6291. * CALLS FIA, FIS, PMF, PSF, UFA.
  6292. *
  6293. * MACROS CLEAR, LJUST, MOVEBIT, RJUST, SAFET.
  6294.  
  6295.  
  6296. USA8 SX4 B0 PRESET NO ERRORS
  6297. SA1 UASB
  6298. NZ X1,USAX IF FILES FOUND
  6299. SX4 B1 FLAG ERRORS
  6300.  
  6301. USA SUBR ENTRY/EXIT
  6302. SX6 B2 SAVE TYPE
  6303. SA6 USAC
  6304. BX6 X1 SAVE CHARGE NUMBER
  6305. SA6 USAA
  6306. BX6 X2 SAVE VSN
  6307. SA6 USAD
  6308. SX6 B0 SET RANDOM ADDRESS TO ZERO
  6309. SA6 UASB FLAG NO FILES FOUND
  6310. SB2 FCST
  6311. ZR X2,USA1 IF NO VSN
  6312. SB2 SCST
  6313. USA1 SAFET UN,USAD,,B2 SET FET FOR AUDIT
  6314. NZ X4,USAX IF NO FILES FOUND
  6315. USA2 CLEAR TAVS,TAVSL CLEAR VSN BUFFER
  6316. SB6 FCAT SET BUFFER ADDRESSES
  6317. SB2 TAVS
  6318. RJ UFA UNPACK FILE AUDIT
  6319. NZ X4,USA8 IF AUDIT COMPLETE
  6320. SA1 TI
  6321. NZ X1,USA8 IF TERMINAL INTERRUPT
  6322. SA1 USAA
  6323. ZR X1,USA3 IF NO CHARGE NUMBER
  6324. SA2 /ADD/CN COMPARE CHARGE NUMBERS
  6325. BX1 X1-X2
  6326. NZ X1,USA2 IF CHARGE NUMBERS DO NOT MATCH
  6327. USA3 SX6 B1 FLAG FILE FOUND
  6328. SA6 UASB
  6329. SA1 USAC CHECK TYPE
  6330. SX1 X1-1
  6331. NZ X1,USA4 IF NOT AUDIT
  6332. RJ FIA PROCESS FILE AUDIT
  6333. EQ USA2 CHECK NEXT FILE
  6334.  
  6335. USA4 SX1 X1-1
  6336. NZ X1,USA6 IF NOT SOURCE
  6337. SA1 /ADD/QN CHECK SEQUENCE NUMBER
  6338. RJUST X1,X1,/BTC/QN,/UPB/QN
  6339. SX6 X1-1
  6340. ZR X6,USA5 IF FIRST FILE
  6341. SA1 /ADD/EVSN COMPARE LAST VSN TO EXTERNAL VSN
  6342. LJUST X1,X1,/BTC/EVSN,/UPB/EVSN
  6343. SA2 USAE
  6344. SX6 B0
  6345. BX1 X1-X2
  6346. NZ X1,USA5 IF NOT THE SAME VSN
  6347. SX6 B1 FLAG SKIP FIRST VSN
  6348. USA5 RJ PSF PROCESS FILE SOURCE
  6349. SA1 /ADD/REELC SET LAST VSN
  6350. RJUST X1,X1,/BTC/REELC,/UPB/REELC
  6351. LX1 2
  6352. MOVEBIT X1+TAVS+/CAT/VSN-4,USAE,/BTC/VSN,/UPB/VSN
  6353. EQ USA2 CHECK NEXT FILE
  6354.  
  6355. USA6 SX1 X1-1
  6356. NZ X1,USA7 IF NOT MACHINE READABLE
  6357. RJ PMF PROCESS FILE MACHINE READABLE
  6358. EQ USA2 CHECK NEXT FILE
  6359.  
  6360. USA7 RJ FIS PROCESS FILE SOURCE LISTING
  6361. EQ USA2 CHECK NEXT FILE
  6362.  
  6363. USAA BSS 1 CHARGE NUMBER
  6364. UASB BSS 1 FILE FOUND FLAG
  6365. USAC BSS 1 TYPE CODE
  6366. USAD BSS 1 VSN
  6367. USAE BSS 1 LAST VSN
  6368. WCR SPACE 4,15
  6369. ** WCR - WRITE CATALOG RECORD.
  6370. *
  6371. * ENTRY (X1) = RECORD RANDOM ADDRESS.
  6372. * (X3) = WORKING BUFFER ADDRESS.
  6373. * (B2) .NE. 0 IF CLEAR UTILITY INTERLOCK AFTER WRITE.
  6374. *
  6375. * EXIT RECORD REWRITTEN FROM BUFFER.
  6376. *
  6377. * USES A - 1, 6.
  6378. * X - 1, 6.
  6379. *
  6380. * CALLS CUI.
  6381. *
  6382. * MACROS CALLTFM, RESETP, WRITFET.
  6383.  
  6384.  
  6385. WCR SUBR ENTRY/EXIT
  6386. SX6 B2 SAVE INTERLOCK STATUS
  6387. SA6 WCRA
  6388. SX6 X3 SAVE BUFFER ADDRESS
  6389. SA6 WCRB
  6390. BX6 X1 SET RANDOM ADDRESS
  6391. SA6 X2+TFRR
  6392. RESETP X2 RESET FET POINTERS
  6393. SA1 WCRB GET BUFFER ADDRESS
  6394. WRITFET X2,X1,100B WRITE CATALOG RECORD
  6395. CALLTFM X2,WRRS
  6396. SA1 WCRA
  6397. ZR X1,WCRX IF NOT CLEAR INTERLOCK
  6398. RJ CUI CLEAR UTILITY INTERLOCK
  6399. EQ WCRX RETURN
  6400.  
  6401. WCRA BSS 1 INTERLOCK STATUS
  6402. WCRB BSS 1 BUFFER ADDRESS
  6403. WTF SPACE 4,20
  6404. ** WTF - WRITE WORDS FROM WORKING BUFFER IN FET.
  6405. *
  6406. * ENTRY (X2) = FET ADDRESS.
  6407. * (B6) = WORKING BUFFER ADDRESS.
  6408. * (B7) = NUMBER OF WORDS TO TRANSFER.
  6409. *
  6410. * EXIT (X1) = 0 IF TRANSFER COMPLETE.
  6411. * = (B6) IF (B7).NE.0.
  6412. * (X2) = FET ADDRESS.
  6413. * (B6) = LWA+1 OF WORKING BUFFER.
  6414. * (B7) = NUMBER OF WORDS NOT TRANSFERRED.
  6415. *
  6416. * USES A - 1, 3, 7.
  6417. * X - 3, 6, 7.
  6418. *
  6419. * MACROS WRITEW.
  6420.  
  6421.  
  6422. WTF SUBR ENTRY/EXIT
  6423. SA1 X2+2 COMPARE *IN* TO *OUT*
  6424. SA3 A1+B1
  6425. IX6 X3-X1
  6426. SX6 X6-1
  6427. PL X6,WTF1 IF *OUT* .GT. *IN*
  6428. SA1 X2+B1 GET *FIRST*
  6429. SX1 X1
  6430. SA3 A3+B1 GET *LIMIT*
  6431. SX3 X3
  6432. IX1 X3-X1 GET NUMBER OF WORDS AVAILABLE IN BUFFER
  6433. IX6 X6+X1
  6434. WTF1 SX1 B7 CHECK IF ENOUGH WORDS IN BUFFER
  6435. IX1 X6-X1
  6436. SX7 B0
  6437. PL X1,WTF2 IF ENOUGH WORDS IN BUFFER
  6438. SB7 X6 RESET WORD COUNT
  6439. BX7 -X1
  6440. WTF2 SA7 WTFA SAVE NUMBER OF WORDS NOT TRANSFERRED
  6441. WRITEW X2,B6,B7 TRANSFER TO FET BUFFER
  6442. SA1 WTFA
  6443. ZR X1,WTFX IF TRANSFER COMPLETE
  6444. SB7 X1 SET NUMBER OF WORDS NOT TRANSFERRED
  6445. SX1 B6 SET LWA+1 OF BUFFER
  6446. EQ WTFX RETURN
  6447.  
  6448. WTFA BSS 1 NUMBER OF WORDS NOT TRANSFERRED
  6449. WTL SPACE 4,15
  6450. ** WTL - WRITE LINES TO OUTPUT.
  6451. *
  6452. * ENTRY (A1) = BUFFER ADDRESS.
  6453. * (B2) = 0 IF COUNT BY WORDS.
  6454. * = 1 IF COUNT BY LINES.
  6455. * (B6) = WORD COUNT IF (B2) = 0.
  6456. * (B7) = LINE COUNT IF (B2) = 1.
  6457. * (X1) = FIRST WORD OF BUFFER.
  6458. *
  6459. * EXIT LINES WRITTEN TO OUTPUT FILE.
  6460. *
  6461. * USES A - 1, 2, 6.
  6462. * B - 2, 6.
  6463. * X - 1, 2, 6.
  6464. *
  6465. * MACROS CLINES, CWORDS, NEWPAGE, WRITEW.
  6466.  
  6467.  
  6468. WTL SUBR ENTRY/EXIT
  6469. ZR B2,WTL1 IF COUNT BY WORDS
  6470. CWORDS A1,B7 COUNT NUMBER OF WORDS IN BUFFER
  6471. EQ WTL2 SAVE BUFFER ADDRESS
  6472.  
  6473. WTL1 CLINES A1,B6 COUNT NUMBER OF LINES IN BUFFER
  6474. WTL2 SB2 A1-B6 SAVE BUFFER ADDRESS
  6475. SX6 B2
  6476. SA6 WTLA
  6477. SX6 B6 SAVE WORD COUNT
  6478. SA6 WTLB
  6479. SX6 B7 SAVE LINE COUNT
  6480. SA6 WTLC
  6481. SA1 OS
  6482. ZR X1,WTLX IF NO OUTPUT FILE
  6483. PL X1,WTL3 IF TERMINAL OUTPUT
  6484. SA1 LC CHECK LINE COUNT
  6485. SX1 X1+B7
  6486. SX1 X1-MXLP
  6487. NG X1,WTL3 IF NOT TOO MANY LINES ON PAGE
  6488. NEWPAGE GENERATE NEW PAGE HEADER
  6489. WTL3 SA1 WTLC RESET LINE COUNT
  6490. SA2 LC
  6491. IX6 X1+X2
  6492. SA6 A2
  6493. SA1 WTLA GET BUFFER ADDRESS
  6494. SB6 X1
  6495. SA1 WTLB GET WORD COUNT
  6496. WRITEW L,B6,X1 WRITE TO OUTPUT FILE
  6497. EQ WTLX RETURN
  6498.  
  6499. WTLA BSS 1 BUFFER ADDRESS
  6500. WTLB BSS 1 WORD COUNT
  6501. WTLC BSS 1 LINE COUNT
  6502. TITLE MISCELLANEOUS SUBROUTINES.
  6503. ACI SPACE 4,25
  6504. ** ACI - ASSEMBLE CHARACTERS INTERFACE.
  6505. *
  6506. * ENTRY (X1) = BIT STRING OF CHARACTERS TO PERMIT.
  6507. * (X4) = MAXIMUM NUMBER OF CHARACTERS PERMITTED.
  6508. * (X6) = BIT STRING OF CHARACTER TO SUPPRESS.
  6509. *
  6510. * EXIT (CBUF - CBUF+CBUFL) = LEFT JUSTIFIED
  6511. * ASSEMBLED CHARACTERS.
  6512. * (X4) = NUMBER OF CHARACTERS.
  6513. * (B5) = SEPARATOR ( 0 IF END-OF-LINE).
  6514. * (B6) = 0 IF EOF.
  6515. * .NE. 0 IF ASSEMBLY COMPLETE.
  6516. * (ET) = -1 IF EOF.
  6517. *
  6518. * USES A - 1, 2, 4, 6, 7.
  6519. * B - 2, 4.
  6520. * X - 1, 2, 6, 7.
  6521. *
  6522. * CALLS ASC.
  6523. *
  6524. * MACROS CLEAR.
  6525. *
  6526. * NOTES BASED ON SUBROUTINE *ACI* IN *MODVAL*.
  6527.  
  6528.  
  6529. ACI SUBR ENTRY/EXIT
  6530. SA6 ACIC SAVE BIT STRING TO SUPPRESS
  6531. SX6 X4 SAVE MAXIMUM CHARACTER COUNT
  6532. SA6 ACIE
  6533. BX7 X1 SAVE BIT STRING TO PERMIT
  6534. SX6 B0 CLEAR CHARACTER COUNT
  6535. SA7 ACIB
  6536. SA6 ACIA
  6537. SA6 ACID CLEAR CHARACTER BUFFER INDEX
  6538. CLEAR CBUF,CBUFL CLEAR CHARACTER BUFFER
  6539. ACI1 SA2 ACIC CHARACTERS TO BE SUPPRESSED
  6540. SA1 ACIB CHARACTERS TO BE ALLOWED
  6541. BX6 X2
  6542. RJ ASC ASSEMBLE CHARACTERS
  6543. SA2 ACID
  6544. SA6 CBUF+X2 STORE ASSEMBLED CHARACTERS
  6545. SA1 ACIA
  6546. SB4 X4-10
  6547. IX4 X1+X4 INCREMENT CHARACTER COUNT
  6548. NG B4,ACIX IF SEPARATOR ENCOUNTERED
  6549. BX7 X4
  6550. SA7 A1
  6551. SA4 ACIE RESET MAXIMUM CHARACTER COUNT
  6552. IX4 X4-X7
  6553. BX7 X4
  6554. SA7 A4
  6555. SX7 X2-CBUFL-1
  6556. PL X7,ACI1 IF BUFFER FULL
  6557. SX7 X2+B1 INCREMENT CHARACTER BUFFER INDEX
  6558. SA7 A2
  6559. EQ ACI1 ASSEMBLE MORE CHARACTERS
  6560.  
  6561.  
  6562. ACIA BSS 1 CHARACTER COUNT
  6563. ACIB BSS 1 BIT STRING OF CHARACTERS TO PERMIT
  6564. ACIC BSS 1 BIT STRING OF CHARACTERS TO SUPPRESS
  6565. ACID BSS 1 CHARACTER BUFFER INDEX
  6566. ACIE BSS 1 MAXIMUM CHARACTER COUNT
  6567. ARV SPACE 4,20
  6568. ** ARV - ADD/REVISE VSN ENTRY.
  6569. *
  6570. * ENTRY (VCAT) = VSN ENTRY IMAGE.
  6571. * (VI) = 1, IF VSN BUSY AND ASSIGNED.
  6572. * 0, IF VSN NOT BUSY OR ASSIGNED.
  6573. *
  6574. * EXIT VSN ENTRY ADDED REVISED IN *VBUF*.
  6575. * (ER) = 0, IF NO ERROR FOUND.
  6576. * = ERROR MESSAGE ADDRESS, IF ERROR OCCURRED.
  6577. * (VI) = IF VSN INTERLOCKED, THIS WILL BE CLEARED.
  6578. *
  6579. * USES A - 1, 2, 6.
  6580. * X - 0, 1, 2, 6.
  6581. *
  6582. * CALLS RVB, RVE.
  6583. *
  6584. * MACROS CALLTFM, MOVE, RESETP, WRITFET.
  6585.  
  6586.  
  6587. ARV SUBR ENTRY/EXIT
  6588. SX6 B0
  6589. SA6 ER CLEAR ERROR FLAG
  6590. SA1 VI CHECK FOR VSN INTERLOCKED
  6591. ZR X1,ARV4 IF VSN NOT INTERLOCKED
  6592. MX0 36 SET UP MASK
  6593. SX1 HMVS+UOVS+TVVS+ERVS
  6594. BX0 X0+X1
  6595. SA1 VCAT+VEVS GET CURRENT STATUS
  6596. SA2 VBUF+VEVS GET BEGINNING STATUS
  6597. BX1 X0*X1
  6598. BX2 X0*X2
  6599. BX1 X1-X2
  6600. ZR X1,ARV4 IF STATUS NOT CHANGED
  6601. WRITFET N1,VCAT,TSVL
  6602. RESETP N1 RESET BUFFER POINTERS
  6603. CALLTFM X2,-GNSS
  6604. ZR X4,ARV3 IF NO ERRORS OCCURRED
  6605. SX1 /EMSG/WSA CHECK FOR *WAIT SCRATCH ASSIGNMENT*
  6606. IX2 X1-X4
  6607. NZ X2,ARV1 IF NOT THIS ERROR
  6608. SX6 EWSA *NO SCRATCH AVAILABLE*
  6609. BX6 -X6
  6610. SA6 ER
  6611. EQ ARVX RETURN
  6612.  
  6613. ARV1 SX1 /EMSG/VBS CHECK FOR ERROR
  6614. IX2 X1-X4
  6615. NZ X2,ARV2 IF NOT THIS ERROR
  6616. SX6 EVAA *VSN ALREADY ASSIGNED*
  6617. BX6 -X6
  6618. SA6 ER
  6619. EQ ARVX RETURN
  6620.  
  6621. ARV2 SX6 IVNP *VSN NOT PROCESSED*
  6622. SA6 ER
  6623. EQ ARVX RETURN
  6624.  
  6625. ARV3 MOVE TSVL,N1BUF,VCAT
  6626. SX6 B0
  6627. SA6 VI CLEAR VSN INTERLOCK
  6628. ARV4 RJ RVB REPLACE VSN IN BUFFER
  6629. SA1 LF
  6630. NZ X1,ARVX IF LOCAL FILE MODE
  6631. RJ RVE REPLACE VSN ENTRIES
  6632. EQ ARVX RETURN
  6633. ASC SPACE 4,30
  6634. ** ASC - ASSEMBLE CHARACTERS.
  6635. *
  6636. * ENTRY (SP) = STRING BUFFER ADDRESS OF PREVIOUS CHAR.
  6637. * (SM) = STRING BUFFER LIMIT.
  6638. * (IF) = INPUT FET ADDRESS.
  6639. * (X1) = BIT STRING OF CHARACTERS TO PERMIT.
  6640. * (X4) = MAXIMUM CHARACTER COUNT.
  6641. * (X6) = BIT STRING OF CHARACTERS TO SUPPRESS.
  6642. * IF BIT POSITION EQUALING (SPECIAL CHARACTER DISPLAY
  6643. * CODE - 45B) IS SET, THAT CHARACTER IS SUPPRESSED OR
  6644. * PERMITTED AS DATA (NOT TREATED AS SEPARATOR).
  6645. *
  6646. * EXIT (SP) = UPDATED STRING BUFFER ADDRESS.
  6647. * (X6) = LEFT -JUSTIFIED ASSEMBLED CHARACTERS.
  6648. * (X5) = RIGHT-JUSTIFIED ASSEMBLED CHARACTERS.
  6649. * (X4) = NUMBER OF CHARACTERS
  6650. * (B5) = SEPARATOR (0 IF END OF LINE).
  6651. * (B6) = 0 IF EOF.
  6652. * (ET) = -1 IF EOF.
  6653. *
  6654. * USES A - 1, 2, 4, 6, 7.
  6655. * B - 2, 3, 4, 7.
  6656. * X - 1, 2, 7.
  6657. *
  6658. * CALLS ISB.
  6659. *
  6660. * NOTES BASED ON SUBROUTINE *ASC* IN *SFS*.
  6661.  
  6662.  
  6663. ASC8 SX4 -B4 SET CHARACTER COUNT
  6664. SX4 X4+10D
  6665. SX6 B5 SAVE SEPARATOR
  6666. SA6 EL
  6667. SX6 B2 RESET STRING POINTER
  6668. SA6 SP
  6669. SX6 B0
  6670. SB3 B4+B4
  6671. ZR X4,ASCX IF NO CHARACTERS
  6672. SB4 B3+B3 LEFT JUSTIFY CHARACTER STRING
  6673. SB4 B4+B3
  6674. LX6 X5,B4
  6675.  
  6676. ASC SUBR ENTRY/EXIT
  6677. SX4 X4-10 SAVE (10 - MAXIMUM NUMBER OF CHARACTERS)
  6678. BX7 -X4
  6679. SA7 ASCC
  6680. SX5 B0 PRESET CHARACTER STRING
  6681. SB4 10 PRESET MAXIMUM CHARACTER COUNT
  6682. BX7 X1
  6683. SB6 B1 PRESET NOT EOF
  6684. ASC1 SA1 SP SET STRING POINTER
  6685. SB2 X1
  6686. SA1 SM SET MAXIMUM SCAN CHARACTERS
  6687. SB7 USBB+CAPL CHARACTER ASSEMBLY LIMIT
  6688. SB3 X1
  6689. LE B3,B7,ASC2 IF LINE LENGTH .LE. CHARACTER LIMIT
  6690. SB3 B7
  6691. ASC2 GE B2,B3,ASC7 IF BUFFER EMPTY
  6692. ASC3 SA4 ASCC CHECK CHARACTER COUNT
  6693. SB5 X4
  6694. GT B4,B5,ASC4 IF LESS THAN MAXIMUM
  6695. SX6 -B1 FLAG MAXIMUM COUNT
  6696. SA6 A4
  6697. SA4 ="BL" RESET TO SUPPRESS BLANKS
  6698. BX6 X4
  6699. SA6 ASCA
  6700. SA4 ="NC" RESET TO ALLOW NO SPECIAL CHARACTERS
  6701. BX7 X4
  6702. SA7 A6+B1
  6703. ASC4 SB2 B2+B1 CHECK IF END OF BUFFER
  6704. SB5 B0
  6705. GE B2,B3,ASC8 IF END OF STRING BUFFER
  6706. SA1 B2 GET CHARACTER
  6707. SB5 X1
  6708. SB7 X1-1R+
  6709. LT B7,ASC6 IF NOT SPECIAL CHARACTER
  6710. AX4 X6,B7 CHECK IF SUPPRESSED CHARACTER
  6711. LX4 59
  6712. NG X4,ASC3 IF CHARACTER TO BE SUPPRESSED
  6713. SA4 CL CHECK FOR COLON CHARACTER
  6714. AX4 B7
  6715. LX4 59
  6716. PL X4,ASC5 IF NOT COLON CHARACTER
  6717. SX1 1R: SET COLON AS CHARACTER
  6718. SB7 100B-1R+
  6719. ASC5 AX4 X7,B7 CHECK IF PERMITTED CHARACTER
  6720. LX4 59
  6721. PL X4,ASC8 IF CHARACTER NOT TO BE PERMITTED
  6722. ASC6 LX5 6 ADD TO CHARACTER STRING
  6723. SB4 B4-1
  6724. BX5 X5+X1
  6725. NZ B4,ASC3 IF MORE CHARACTERS TO ASSEMBLE
  6726. SB6 B1
  6727. EQ ASC8 SET CHARACTER COUNT
  6728.  
  6729. ASC7 SA6 ASCA SAVE BIT STRINGS
  6730. SA7 A6+B1
  6731. SX6 B4 SAVE CHARACTER COUNT
  6732. SA6 ASCB
  6733. RJ ISB INPUT STRING BUFFER
  6734. SA2 ASCB RESTORE CHARACTER COUNT
  6735. SA1 ASCA RESTORE BIT STRINGS
  6736. SB4 X2
  6737. BX6 X1
  6738. SA1 A1+B1
  6739. SX7 X1
  6740. NZ B6,ASC1 IF NOT END OF FILE
  6741. SA1 SP RESET STRING POINTER
  6742. SB2 X1
  6743. SB5 B0 RESET END OF LINE INDICATOR
  6744. EQ ASC8 SET CHARACTER COUNT
  6745.  
  6746. ASCA BSS 1 SUPPRESSED CHARACTERS BIT STRING
  6747. BSS 1 ALLOWED CHARACTERS BIT STRING
  6748. ASCB BSS 1 HOLD AREA FOR CHARACTER COUNT
  6749. ASCC BSS 1 10 - MAXIMUM NUMBER OF CHARACTERS
  6750. AUA SPACE 4,15
  6751. ** AUA - ALTERNATE USER AUDIT LIST PROCESSOR.
  6752. *
  6753. * ENTRY (ACAT) = IMAGE OF ALTERNATE USER ENTRY.
  6754. *
  6755. * EXIT ALTERNATE USER INFORMATION WRITTEN TO OUTPUT FILE.
  6756. *
  6757. * USES A - 1.
  6758. * X - 1.
  6759. *
  6760. * CALLS SFN.
  6761. *
  6762. * MACROS MOVEBIT, SETSORC, WLINES.
  6763.  
  6764.  
  6765. AUA SUBR ENTRY/EXIT
  6766. SA1 /ADD/AUSER SET ALTERNATE USER NAME IN LISTING
  6767. LJUST X1,X1,/BTC/AUSER,/UPB/AUSER
  6768. RJ SFN SPACE FILL NAME
  6769. BX1 X6
  6770. MOVEBIT A1,/ALS/AUSER,UNKL*6,,/ALSU/AUSER
  6771. SETSORC A,LVAU SET SOURCE VALUES IN AUDIT LIST
  6772. WLINES AUAA,1 WRITE TO OUTPUT FILE
  6773. EQ AUAX RETURN
  6774.  
  6775. AUAA BSS 0 AUDIT LISTING
  6776. LISTER ALS,4
  6777. AUSER LISTER ,7 ALTERNATE USER NAME
  6778. LISTER ,7
  6779. AMODE LISTER ,5,WRITE ADMIT MODE
  6780. LISTER ,8
  6781. AACOUNT LISTER ,6,000000 ACCESS COUNT
  6782. LISTER ,8
  6783. AADATE LISTER ,6,YYMMDD ACCESS DATE
  6784. LISTER ,6
  6785. AATIME LISTER ,6,HHMMSS,E ACCESS TIME
  6786. AUL SPACE 4,10
  6787. ** AUL - ALTERNATE USER LEVEL PROCESSOR.
  6788. *
  6789. * EXIT PROGRAM SET FOR ALTERNATE USER DIRECTIVES.
  6790. *
  6791. * USES A - 1, 2, 6.
  6792. * X - 1, 2, 6.
  6793. *
  6794. * MACROS MOVE, MOVEBIT.
  6795.  
  6796.  
  6797. AUL SUBR ENTRY/EXIT
  6798. SX6 LVAU SET ALTERNATE USER LEVEL
  6799. SA6 LV
  6800. SA1 UN SET USER NAME IN K-DISPLAY
  6801. BX6 X1
  6802. SA6 /KAUSLS/USER
  6803. MOVEBIT FI,/KAUSLS/FILE,FIKL*6 SET FILE ID IN K-DISPLAY
  6804. SA1 AU SET ALTERNATE USER IN K-DISPLAY
  6805. BX6 X1
  6806. SA6 /KAUSLS/AUSER
  6807. SA1 AF CHECK ADMIT FLAG
  6808. SA2 AULA PRESET MESSAGE ADDRESS
  6809. ZR X1,AUL1 IF USER NOT ADMITTED
  6810. SA2 AULB RESET MESSAGE ADDRESS
  6811. AUL1 MOVE 3,A2,/KAUSLS/MESS SET ADMIT MESSAGE
  6812. SA1 AULC RESET LEFT SCREEN POINTER
  6813. BX6 X1
  6814. SA6 /KLEFT/NEXT
  6815. SA1 AULD RESET RIGHT SCREEN POINTER
  6816. BX6 X1
  6817. SA6 /KRIGHT/NEXT
  6818. SA1 =H* ALT USER * SET LEVEL IN HELP DISPLAY
  6819. BX6 X1
  6820. SA6 /KRIGHT/LV
  6821. EQ AULX RETURN
  6822.  
  6823. AULA DATA 30HUSER NOT CURRENTLY ADMITTED.
  6824. AULB DATA 30HUSER CURRENTLY IS ADMITTED.
  6825. AULC KNEXT KAUSLS,NOLAB
  6826. AULD KNEXT KAUSRS,NOLAB
  6827. AUS SPACE 4,15
  6828. ** AUS - ALTERNATE USER SOURCE LIST PROCESSOR.
  6829. *
  6830. * ENTRY (ACAT) = IMAGE OF ALTERNATE USER ENTRY.
  6831. *
  6832. * EXIT ALTERNATE USER INFORMATION WRITTEN TO SOURCE FILE.
  6833. *
  6834. * USES A - 1.
  6835. * X - 1.
  6836. *
  6837. * CALLS SFN.
  6838. *
  6839. * MACROS MOVEBIT, SETSORC, WRITEW.
  6840.  
  6841.  
  6842. AUS SUBR ENTRY/EXIT
  6843. SA1 /ADD/AUSER SET ALTERNATE USER NAME IN LIST
  6844. RJ SFN SPACE FILL NAME
  6845. BX1 X6
  6846. MOVEBIT A1,/SLS/AUSER,UNKL*6,,/SLSU/AUSER
  6847. SETSORC S,LVAU SET SOURCE VALUES IN SOURCE LISTING
  6848. WRITEW S,AUSA,AUSAL WRITE TO SOURCE FILE
  6849. EQ AUSX RETURN
  6850.  
  6851. AUSA BSS 0 SOURCE LISTING
  6852. LISTER SLS,6,AUSER=
  6853. AUSER LISTER ,7 ALTERNATE USER
  6854. LISTER ,7,(,AMODE=)
  6855. AMODE LISTER ,5,WRITE,E,CAPL ADMIT MODE
  6856. LISTER ,8,AACOUNT=
  6857. AACOUNT LISTER ,6,000000 ACCESS COUNT
  6858. LISTER ,8,(,AADATE=)
  6859. AADATE LISTER ,6,YYMMDD ACCESS DATE
  6860. LISTER ,8,(,AATIME=)
  6861. AATIME LISTER ,6,HHMMSS ACCESS TIME
  6862. LISTER ,3,(,GO),E,CAPL
  6863. AUSAL EQU *-AUSA LENGTH OF SOURCE LISTING
  6864. CAB SPACE 4,15
  6865. ** CAB - CHECK IF ALTERNATE USER ENTRY IN BUFFER.
  6866. *
  6867. * ENTRY (AU) = ALTERNATE USER NAME.
  6868. *
  6869. * EXIT (X4) = 0 IF ENTRY FOUND.
  6870. * (A1) = ADDRESS OF ENTRY IN *UBUF*.
  6871. *
  6872. * USES B - 2, 3.
  6873. * X - 0, 1.
  6874. *
  6875. * MACROS SRCHTAB.
  6876.  
  6877.  
  6878. CAB SUBR ENTRY/EXIT
  6879. SA1 UB+1 GET BUFFER LENGTH
  6880. SB2 X1
  6881. SA1 A1+B1
  6882. SB3 X1
  6883. SB2 B3-B2
  6884. MX0 42 SEARCH BUFFER FOR ALTERNATE USER ENTRY
  6885. SRCHTAB UBUF,AU,B2,2
  6886. EQ CABX RETURN
  6887. CFC SPACE 4,10
  6888. ** CFC - CHECK FOR FILE NAME CONFLICT.
  6889. *
  6890. * ENTRY (X2) = ADDRESS OF FET TO CHECK AGAINST.
  6891. *
  6892. * EXIT (X4) = 0 IF NO CONFLICT.
  6893. * = ADDRESS OF CONFLICTING FET.
  6894. *
  6895. * USES A - 1, 3, 4.
  6896. * X - 0, 1, 3.
  6897.  
  6898.  
  6899. CFC SUBR ENTRY/EXIT
  6900. MX0 42 CHECK FILE NAME
  6901. SA1 X2
  6902. BX4 X0*X1
  6903. ZR X4,CFCX IF NO FILE NAME
  6904. SA4 CFCA SET TABLE ADDRESS
  6905. CFC1 ZR X4,CFCX IF END OF TABLE
  6906. IX3 X2-X4
  6907. ZR X3,CFC2 IF SAME FET
  6908. SA3 X4 CHECK IF CONFLICT
  6909. BX3 X3-X1
  6910. BX3 X0*X3
  6911. ZR X3,CFCX IF FILE NAME CONFLICT
  6912. CFC2 SA4 A4+B1
  6913. EQ CFC1 CHECK NEXT FET
  6914.  
  6915. CFCA BSS 0 TABLE OF FET ADDRESSES
  6916. CON I INPUT FILE FET
  6917. CON L OUTPUT FILE FET
  6918. CON N1 TAPE CATALOG FILE FET
  6919. CON S SOURCE FILE FET
  6920. CON SS MACHINE READABLE FILE FET
  6921. CON 0 END OF TABLE
  6922. CFI SPACE 4,15
  6923. ** CFI - CHECK FILE IDENTIFIER IN OUTPUT.
  6924. *
  6925. * ENTRY (A1) = ADDRESS OF FILE ID IN OUTPUT.
  6926. * (B3) = UPPER BIT POSITION OF FILE ID IN OUTPUT.
  6927. * (X1) = FIRST WORD OF FILE ID IN OUTPUT.
  6928. *
  6929. * EXIT END OF LINE ELIMINATED FROM FILE ID IN OUTPUT.
  6930. *
  6931. * USES A - 1, 2, 3, 6, 7.
  6932. * B - 6.
  6933. * X - 0, 1, 2, 3, 6, 7.
  6934. *
  6935. * MACROS MOVEBIT.
  6936.  
  6937.  
  6938. CFI2 MX0 -12 CHECK FOR END OF LINE
  6939. SA1 CFIA
  6940. SA2 CFIC
  6941. IX2 X1+X2
  6942. SA2 X2
  6943. BX1 -X0*X2
  6944. NZ X1,CFI3 IF NOT END OF LINE
  6945. MOVEBIT (=10H),A2,6,5,5 FORCE NO END OF LINE
  6946. CFI3 MX0 -12 CHECK FOR END OF LINE
  6947. SA1 CFIA
  6948. SA2 CFID
  6949. IX2 X1+X2
  6950. SA2 X2
  6951. BX1 -X0*X2
  6952. NZ X1,CFIX IF NOT END OF LINE
  6953. MOVEBIT (=10H),A2,6,5,5 FORCE NO END OF LINE
  6954.  
  6955. CFI SUBR ENTRY/EXIT
  6956. SX6 A1 SAVE ADDRESS OF FILE ID IN OUTPUT
  6957. SA6 CFIA
  6958. SX6 B3 SAVE UPPER BIT POSITION OF FILE ID
  6959. SA6 CFIB
  6960. SX6 B1 CHECK FOR POSSIBLE END OF LINES
  6961. SX7 B1
  6962. SB6 B3-6
  6963. NG B6,CFI1 IF NO END OF LINE IN FIRST WORD
  6964. SX6 B0
  6965. SB6 B3-42
  6966. NG B6,CFI1 IF POSSIBLE END OF LINE IN TWO WORDS
  6967. SX7 B0
  6968. CFI1 SA6 CFIC SET POSSIBLE END OF LINE POSITIONS
  6969. SA7 CFID
  6970. MOVEBIT A1,CFIE,FIKL*6,B3 GET FILE ID
  6971. SA1 CFIE CHECK IF NO FILE ID
  6972. SA2 A1+B1
  6973. BX1 X1+X2
  6974. NZ X1,CFI2 IF FILE ID IS PRESENT
  6975. SA2 CFIA SPACE FILE FILE ID FIELD
  6976. SA3 CFIB
  6977. MOVEBIT (=17H),X2,FIKL*6,,X3
  6978. EQ CFIX RETURN
  6979.  
  6980. CFIA BSS 1 ADDRESS OF FILE ID IN OUTPUT
  6981. CFIB BSS 1 UPPER BIT OF FILE ID IN OUTPUT
  6982. CFIC BSS 1 POSITION OF END OF LINE IN OUTPUT
  6983. CFID BSS 1 POSITION OF END OF LINE IN OUTPUT
  6984. CFIE BSS 2 IMAGE OF FILE ID
  6985. CFM SPACE 4,10
  6986. ** CFM - CHANGE FAMILY.
  6987. *
  6988. * ENTRY (X1) = NEW FAMILY NAME.
  6989. *
  6990. * EXIT TO *ABT1* IF CHANGE NOT ALLOWED.
  6991. *
  6992. * USES A - 1, 6.
  6993. * X - 1, 5, 6.
  6994. *
  6995. * MACROS ABTMSG, ENFAM.
  6996.  
  6997.  
  6998. CFM SUBR ENTRY/EXIT
  6999. BX6 X1
  7000. SA6 CFMA
  7001. ENFAM CFMA CHANGE FAMILY
  7002. SA1 CFMA
  7003. LX1 59-11
  7004. PL X1,CFMX IF CHANGE SUCCESSFUL
  7005. SA1 CF FORCE NO FAMILY CHANGE
  7006. BX6 X1
  7007. SA6 FM
  7008. ABTMSG MFNA ABORT *TFSP*
  7009.  
  7010. CFMA BSS 1 NEW FAMILY NAME
  7011. CJD SPACE 4,10
  7012. ** CJD - CHECK JULIAN DATE.
  7013. *
  7014. * ENTRY (X1) = JULIAN DATE LEFT JUSTIFIED.
  7015. *
  7016. * EXIT (X4) = 0 IF IN CORRECT FORMAT.
  7017. *
  7018. * USES A - 1, 5, 6, 7.
  7019. * X - 0, 1, 5, 6, 7.
  7020. *
  7021. * CALLS DXB.
  7022.  
  7023.  
  7024. CJD SUBR ENTRY/EXIT
  7025. MX0 12 GET YEAR
  7026. BX5 X0*X1
  7027. MX0 24 SAVE DAY
  7028. LX1 12
  7029. SX2 1RD
  7030. LX2 36
  7031. BX6 X1+X2
  7032. BX6 X0*X6
  7033. SA6 CJDA
  7034. LX2 6 FLAG DECIMAL
  7035. BX5 X5+X2
  7036. RJ DXB CONVERT DISPLAY TO BINARY
  7037. NZ X4,CJDX IF ERROR
  7038. MX0 -2 CHECK FOR LEAP YEAR
  7039. BX0 -X0*X6
  7040. SX7 365
  7041. NZ X0,CJD1 IF NOT LEAP YEAR
  7042. SX7 X7+B1
  7043. CJD1 SA5 CJDA GET DAY
  7044. SA7 A5 SAVE NUMBER OF DAYS IN YEAR
  7045. RJ DXB CONVERT DISPLAY TO BINARY
  7046. NZ X4,CJDX IF ERROR
  7047. SA1 CJDA CHECK NUMBER OF DAYS
  7048. IX1 X1-X6
  7049. PL X1,CJDX IF LEGAL NUMBER OF DAYS
  7050. SX4 B1 FLAG ERROR
  7051. EQ CJDX RETURN
  7052.  
  7053. CJDA BSS 1 DAY COUNT
  7054. CRD SPACE 4,20
  7055. ** CRD - CHECK RELEASE DATE.
  7056. *
  7057. * IF THE RELEASE DATE WAS SPECIFIED, ISSUE THE CONDITIONAL
  7058. * RELEASE (*SDCR*) MESSAGE, AND CLEAR THE SYMBOLIC ACCESS FLAGS
  7059. * FROM ALL CATALOG ENTRIES.
  7060. *
  7061. * ENTRY (RS) = 1 IF URDATE SPECIFIED.
  7062. *
  7063. * EXIT (RS) = 0.
  7064. *
  7065. * USES A - 1, 2, 3, 6.
  7066. * X - 1, 2, 3, 6.
  7067. *
  7068. * CALLS SMB.
  7069. *
  7070. * MACROS CALLTFM, GFILEV, ISSMSG, MOVEBIT, RESETP, RJUST,
  7071. * WRITFET.
  7072.  
  7073.  
  7074. CRD SUBR ENTRY/EXIT
  7075. SA1 RS
  7076. NZ X1,CRD1 IF URDATE SPECIFIED
  7077. SA1 TAVS+/CAT/URDATE
  7078. RJUST X1,X1,/BTC/URDATE,/UPB/URDATE
  7079. ZR X1,CRDX IF NO URDATE SET
  7080. SX6 B1
  7081. EQ CRD2 VERIFY NO CATALOG ENTRIES ARE SYMBOLIC
  7082.  
  7083. CRD1 SX6 B0 CLEAR URDATE SPECIFIED
  7084. SA6 A1
  7085. SA1 UN
  7086. SA2 FV
  7087. SA3 TAVS+/CAT/URDATE
  7088. RJUST X3,X3,/BTC/URDATE,/UPB/URDATE
  7089. RJ SMB ISSUE *SDCR* MESSAGE
  7090. SA1 TAVS+/CAT/URDATE
  7091. RJUST X1,X1,/BTC/URDATE,/UPB/URDATE
  7092. ZR X1,CRDX IF URDATE CLEARED
  7093. SX6 B1
  7094. CRD2 SA6 CRDA SAVE SEQUENCE NUMBER
  7095. GFILEV UN,FV,X6,FCAT,PCAT,TAVS
  7096. SA1 /ADD/SV
  7097. RJUST X1,X1,/BTC/SV,/UPB/SV
  7098. ZR X1,CRD3 IF NOT SYMBOLIC ACCESS
  7099. SA6 N3+TFRR SET RANDOM ADDRESS
  7100. MOVEBIT (=0),/ADD/SV,/BTC/SV,,/UPB/SV CLEAR SYMBOLIC ACCESS
  7101. RESETP N3
  7102. WRITFET X2,FCAT,TCEL
  7103. SX6 RCES REPLACE CATALOG ENTRY
  7104. CALLTFM X2,X6
  7105. CRD3 SA1 /ADD/NCAT
  7106. RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
  7107. ZR X1,CRDX IF NO MORE CATALOG ENTRIES
  7108. SA1 CRDA
  7109. SX6 X1+B1
  7110. EQ CRD2 CLEAR SYMBOLIC ACCESS IN NEXT CATALOG
  7111.  
  7112. CRDA CON 0 SEQUENCE NUMBER
  7113. CUI SPACE 4,10
  7114. ** CUI - CLEAR UTILITY INTERLOCK.
  7115. *
  7116. * EXIT UTILITY INTERLOCK CLEARED ON TAPE CATALOG FILE.
  7117. *
  7118. * USES A - 1.
  7119. * X - 1.
  7120. *
  7121. * MACROS CALLTFM, RESETP.
  7122.  
  7123.  
  7124. CUI SUBR ENTRY/EXIT
  7125. SA1 LF
  7126. NZ X1,CUIX IF LOCAL FILE MODE
  7127. RESETP N1 CLEAR UTILITY INTERLOCK
  7128. CALLTFM X2,CUAS
  7129. EQ CUIX RETURN
  7130. CVB SPACE 4,15
  7131. ** CVB - CHECK IF VSN ENTRY IN BUFFER.
  7132. *
  7133. * ENTRY (VS) = VSN.
  7134. *
  7135. * EXIT (X4) = 0 IF VSN FOUND.
  7136. * (A1) = ADDRESS OF ENTRY IN *VBUF*.
  7137. *
  7138. * USES B - 2, 3.
  7139. * X - 0, 1.
  7140. *
  7141. * MACROS SRCHTAB.
  7142.  
  7143.  
  7144. CVB SUBR ENTRY/EXIT
  7145. SA1 VB+1 GET BUFFER LENGTH
  7146. SB2 X1
  7147. SA1 A1+B1
  7148. SB3 X1
  7149. SB2 B3-B2
  7150. MX0 36 SEARCH BUFFER FOR VSN ENTRY
  7151. SRCHTAB VBUF,VS,B2,4
  7152. EQ CVBX RETURN
  7153. CXS SPACE 4,10
  7154. ** CXS - CONVERT CATALOG IMAGE TO SOURCE.
  7155. *
  7156. * ENTRY (X1) = IMAGE OF DIRECTIVE TABLE ENTRY.
  7157. *
  7158. * EXIT (B2) .LT. 0 IF NO DIRECTIVE CONTROL TABLE.
  7159. * (CBUF) = IMAGE OF DIRECTIVE WITH EQUAL SIGN.
  7160. * (CBUF+1 - CBUF+2) = IMAGE OF DATA FIELD.
  7161. * (CXSA - CXSA+3) = IMAGE OF CONTROL TABLE.
  7162. *
  7163. * USES A - 1, 2, 4, 6.
  7164. * B - 3.
  7165. * X - 0, 1, 2, 4, 6.
  7166. *
  7167. * CALLS CDD, SFN, UDT, ZTB.
  7168. *
  7169. * MACROS MOVE, MOVEBIT, SRCHTAB.
  7170.  
  7171.  
  7172. CXS8 SA1 CXSA+0 GET SUPPRESSED CHARACTERS
  7173. SA2 X1
  7174. AX1 18 GET ALLOWED CHARACTERS
  7175. SA1 X1
  7176. LX1 59-100B+1R+
  7177. NG X1,CXS9 IF COLONS ALLOWED
  7178. LX2 59-1R +1R+
  7179. PL X2,CXS9 IF BLANKS NOT SUPPRESSED
  7180. SA1 CXSB SET FIRST WORD OF DATA FIELD IMAGE
  7181. RJ ZTB CONVERT ZEROES TO BLANKS
  7182. SA6 CBUF+1
  7183. SA1 CXSB+1 SET SECOND WORD OF DATA FIELD IMAGE
  7184. RJ ZTB CONVERT ZEROES TO BLANKS
  7185. SA6 CBUF+2
  7186. SB3 B0 FLAG CONTROL TABLE FOUND
  7187. EQ CXSX RETURN
  7188.  
  7189. CXS9 SA1 =H* * PRESET DATA FIELD BUFFER
  7190. BX6 X1
  7191. SA6 CBUF+1
  7192. SA6 A6+B1
  7193. SA4 CXSA+0 GET BIT COUNT OF DATA FIELD
  7194. LX4 18
  7195. AX4 36+18
  7196. SX0 6
  7197. IX4 X0*X4
  7198. MOVEBIT CXSB,CBUF+1,X4 MOVE DATA FIELD TO BUFFER
  7199. SB3 B0 FLAG CONTROL TABLE FOUND
  7200.  
  7201. CXS SUBR ENTRY/EXIT
  7202. SB3 X1
  7203. NG B3,CXSX IF NO DIRECTIVE TABLE
  7204. MX0 42 GET DIRECTIVE IMAGE
  7205. BX1 X0*X1
  7206. RJ SFN SPACE FILL NAME
  7207. LX6 -6+60 POSITION DIRECTIVE IMAGE
  7208. SX2 1R=&1R
  7209. BX6 X6-X2
  7210. SA6 CBUF+0 SET DIRECTIVE IMAGE IN BUFFER
  7211. MOVE 5,B3,CXSA GET DIRECTIVE CONTROL TABLE
  7212. SX6 B0 CLEAR DATA FIELD BUFFER
  7213. SA6 CXSB
  7214. SA6 A6+B1
  7215. SA2 CXSA+1 SET CATALOG TABLE ADDRESS
  7216. SA1 X2
  7217. MX0 -12 SET BIT COUNT
  7218. AX2 36
  7219. BX3 -X0*X2
  7220. SB4 X3
  7221. AX2 12 SET UPPER BITS
  7222. SB3 X2
  7223. MOVEBIT A1,CXSB,B4,B3 MOVE ENTRY TO BUFFER
  7224. SA1 CXSA+0 SET PROCESSOR ADDRESS
  7225. AX1 48
  7226. SA2 CXSC+X1
  7227. SB2 X2
  7228. SA2 A1+B1 GET BIT COUNT
  7229. LX2 12
  7230. AX2 36+12
  7231. SB3 X2
  7232. SA1 CXSB RIGHT JUSTIFY VALUE
  7233. LX1 B3
  7234. JP B2 JUMP TO PROCESSOR
  7235.  
  7236. * PROCESS OPTION SELECTION (PIOP).
  7237.  
  7238. CXS1 BX2 X1 SET VALUE TO COMPARE
  7239. SA1 CXSA+2 SET ADDRESS OF TABLE
  7240. AX1 18
  7241. MX0 60 SET MASK
  7242. SRCHTAB X1,A2,,2,1 SEARCH FOR OPTION
  7243. BX6 X1
  7244. EQ CXS7 SAVE SOURCE ENTRY
  7245.  
  7246. * PROCESS BINARY DATA (PIBD).
  7247.  
  7248. CXS2 RJ CDD CONVERT CONSTANT TO DISPLAY CODE
  7249. NZ B2,CXS3 IF VALUE NON-ZERO
  7250. SX6 1R0 SET DATA FIELD OF ZERO
  7251. SB2 6
  7252. CXS3 MX0 1 BUILD DATA FIELD MASK
  7253. SB3 B2-B1
  7254. AX0 B3
  7255. LX0 B2
  7256. SA1 =H*0000000000* INSERT LEADING ZEROES
  7257. BX1 -X0*X1
  7258. BX6 X0*X6
  7259. BX6 X1+X6
  7260. EQ CXS7 TRIM EXCESS BLANKS
  7261.  
  7262. * PROCESS PACKED DATE (PIPD).
  7263.  
  7264. CXS4 SB3 70 FLAG DATE
  7265. RJ UDT UNPACK DATE
  7266. EQ CXS7 SAVE SOURCE ENTRY
  7267.  
  7268. * PROCESS PACKED TIME (PIPT).
  7269.  
  7270. CXS5 SB3 100 FLAG TIME
  7271. RJ UDT UNPACK TIME
  7272. EQ CXS7 SAVE SOURCE ENTRY
  7273.  
  7274. * PROCESS SPECIAL CHARACTER BIT STRING (PIBS).
  7275.  
  7276. CXS6 SX6 B0 PRESET NO CHARACTER
  7277. ZR X1,CXS7 IF NO CHARACTER
  7278. NX1,B2 GET CHARACTER CODE
  7279. SB2 B2-47
  7280. SB3 1R+
  7281. SX6 B3-B2
  7282. LX6 54
  7283. CXS7 SA6 CXSB
  7284. EQ CXS8 SAVE SOURCE ENTRY
  7285.  
  7286. CXSA BSS 5 CONTROL TABLE IMAGE
  7287. CXSB BSS 2 DATA FIELD BUFFER
  7288. CXSC INDTAB 1 TABLE OF PROCESSOR ADDRESSES
  7289. INDEX PIZF,CON,CXS8 ZERO FILL
  7290. INDEX PIBF,CON,CXS8 BLANK FILL
  7291. INDEX PIOP,CON,CXS1 OPTION SELECTION
  7292. INDEX PIBD,CON,CXS2 BINARY DATA
  7293. INDEX PIPD,CON,CXS4 PACKED DATE
  7294. INDEX PIPT,CON,CXS5 PACKED TIME
  7295. INDEX PIJD,CON,CXS8 JULIAN DATE
  7296. INDEX PIVQ,CON,CXS8 VSN/SEQUENCE NUMBER
  7297. INDEX PIVS,CON,CXS8 PADDED VSN
  7298. INDEX PIBS,CON,CXS6 SPECIAL CHARACTER BIT STRING
  7299. DDC SPACE 4,15
  7300. ** DDC - DECIMAL DIGIT CONVERSION.
  7301. *
  7302. * ENTRY (X1) = DISPLAY CODE OF TWO DECIMAL DIGITS IN UPPER 12
  7303. * BITS.
  7304. * (X2) = MINIMUM BINARY VALUE.
  7305. * (X3) = MAXIMUM BINARY VALUE.
  7306. *
  7307. * EXIT (X4) = 0 IF NO CONVERSION ERROR.
  7308. * (X6) = BINARY VALUE OF DECIMAL DIGITS.
  7309. *
  7310. * USES A - 2, 3, 6.
  7311. * X - 0, 1, 2, 3, 5.
  7312. *
  7313. * CALLS DXB.
  7314.  
  7315.  
  7316. DDC SUBR ENTRY/EXIT
  7317. BX6 X2 SAVE MINIMUM VALUE
  7318. SA6 DDCA
  7319. BX6 X3 SAVE MAXIMUM VALUE
  7320. SA6 DDCB
  7321. MX0 12 GET FIRST TWO DIGITS
  7322. BX1 X0*X1
  7323. SX2 1RD FORCE DECIMAL CONVERSION
  7324. LX2 42
  7325. BX5 X1+X2
  7326. RJ DXB CONVERT DISPLAY TO BINARY
  7327. NZ X4,DDCX IF CONVERSION ERROR
  7328. SA2 DDCA COMPARE TO MINIMUM VALUE
  7329. IX4 X6-X2
  7330. NG X4,DDCX IF LESS THAN MINIMUM
  7331. SA3 DDCB COMPARE TO MAXIMUM VALUE
  7332. IX4 X3-X6
  7333. NG X4,DDCX IF GREATER THAN MAXIMUM
  7334. SX4 B0 FLAG NO ERROR
  7335. EQ DDCX RETURN
  7336.  
  7337. DDCA BSS 1 MINIMUM VALUE
  7338. DDCB BSS 1 MAXIMUM VALUE
  7339. DIP SPACE 4,15
  7340. ** DIP - DIRECTIVE INPUT PROCESSOR.
  7341. *
  7342. * ENTRY (IF) = INPUT FILE FET ADDRESS.
  7343. *
  7344. * EXIT (EF) .NE. 0 IF DIRECTIVE ERROR.
  7345. * (ET) .LT. 0 IF END OF INPUT FILE.
  7346. *
  7347. * USES A - 1, 2, 3, 4, 5, 6, 7.
  7348. * B - 2, 3, 4, 5, 6, 7.
  7349. * X - 0, 1, 2, 3, 4, 5, 6, 7.
  7350. *
  7351. * CALLS ACI, CJD, DTO, DXB, DXD, DXT, PVS, SCI.
  7352. *
  7353. * MACROS ISSMSG, LJUST, MOVE, MOVEBIT, RJM, SRCHTAB.
  7354.  
  7355.  
  7356. DIP28 SA1 DIPD SET ADDRESS OF DATA FIELD
  7357. SB6 X1
  7358. RJ DTO ISSUE DIRECTIVE TO OUTPUT FILE
  7359. SA1 DIPA+1 CHECK PROCESSOR ADDRESS
  7360. AX1 18
  7361. SB2 X1
  7362. ZR B2,DIPX IF NO PROCESSOR
  7363. RJM B2 JUMP TO PROCESSOR
  7364. SA1 SF CHECK IF RESET NEEDED
  7365. ZR X1,DIPX IF NO RESET NEEDED
  7366. RJ RNS RESET NEEDED STORAGE
  7367.  
  7368. DIP SUBR ENTRY/EXIT
  7369. SX6 B0 CLEAR BUFFER SAVE FLAG
  7370. SA6 SF
  7371. SA6 AP CLEAR ALTERNATE PROCESSING FLAG
  7372. SA1 LV GET TABLE OF DIRECTIVES FOR THIS LEVEL
  7373. BX6 X1 STORE LEVEL NUMBER
  7374. SA6 NL
  7375. SA1 TDTA+X1 GET PROCESSOR ADDRESS
  7376. BX6 X1
  7377. RJ SCI SCAN FOR CODE IDENTIFIER
  7378. SX6 B0 CLEAR TERMINAL INTERRUPT FLAG
  7379. SA6 TI
  7380. ZR B6,DIPX IF END OF FILE
  7381. ZR X1,DIP22 IF DIRECTIVE NOT FOUND
  7382. SA1 AP CHECK IF ALTERNATE PROCESSING
  7383. ZR X1,DIP3 IF DIRECTIVE AT CURRENT LEVEL
  7384. NG B7,DIP23 IF NOT VALID AT CURRENT LEVEL
  7385. SA1 B7+2 CHECK IF DIRECTIVE VALID AT CURRENT LEVEL
  7386. LX1 59-57
  7387. NG X1,DIP23 IF NOT VALID AT CURRENT LEVEL
  7388. LX1 59-58-59+57 CHECK IF DROP REQUIRED
  7389. NG X1,DIP1 IF IMPLIED DROP REQUIRED
  7390. SX6 B1 SET STORAGE COPY FLAG
  7391. SA6 SF
  7392. RJ SNS SAVE NEEDED STORAGE
  7393. EQ DIP3 PROCESS DIRECTIVE AT CURRENT LEVEL
  7394.  
  7395. DIP1 SX6 B7 SAVE EQUIVALENCED DIRECTIVE FLAG
  7396. SA6 ED
  7397. SA2 LV GET CURRENT LEVEL
  7398. SA3 NL GET DESTINATION LEVEL
  7399. IX6 X2-X3 COMPUTE NUMBER OF LEVELS TO DROP
  7400. NG X6,DIP23 IF INCORRECT DROP
  7401. ZR X6,DIP23 IF INCORRECT DROP
  7402. SA6 DP NUMBER OF DROPS TO PROCESS
  7403. DIP2 SA1 DIPE+X2 GET DROP PROCESSOR ADDRESS
  7404. ZR X1,DIP3 IF NO DROP FOR THIS LEVEL
  7405. RJM X1 EXECUTE DROP FOR THIS LEVEL
  7406. SA2 LV GET CURRENT LEVEL NUMBER
  7407. SA3 DP GET DROP COUNTER
  7408. SX6 X3-1 DECREMENT DROP COUNTER
  7409. SA4 ED RESET B7 FOR EQUIVALENCED DIRECTIVE
  7410. SB7 X4
  7411. SA6 A3 STORE DROP COUNTER
  7412. NZ X6,DIP2 IF MORE IMPLIED DROPS
  7413. DIP3 PL B7,DIP4 IF EQUIVALENCED DIRECTIVE
  7414. SB6 B0 FLAG NO DATA FIELD
  7415. RJ DTO ISSUE DIRECTIVE TO OUTPUT FILE
  7416. SA1 DF+1 SET PROCESSOR ADDRESS
  7417. BX1 -X1
  7418. RJM X1 JUMP TO PROCESSOR
  7419. SA1 SF CHECK IF RESET NEEDED
  7420. ZR X1,DIPX IF NO RESET
  7421. RJ RNS RESET NEEDED STORAGE
  7422. EQ DIPX RETURN
  7423.  
  7424. DIP4 SA1 DF+2 CHECK SEPARATOR
  7425. SB4 X1-1R=
  7426. NZ B4,DIP25 IF SEPARATOR NOT *=*
  7427. MOVE 3,B7,DIPA GET DIRECTIVE CONTROL BLOCK
  7428. SA2 DIPA SET CHARACTERS TO SUPPRESS
  7429. SA1 X2
  7430. BX6 X1
  7431. AX2 18 SET CHARACTERS TO ALLOW
  7432. SA1 X2
  7433. SA3 SE DO NOT ALLOW SEPARATOR CHARACTER
  7434. BX1 -X3*X1
  7435. MX0 -6 GET MAXIMUM CHARACTER COUNT
  7436. AX2 18
  7437. BX4 -X0*X2
  7438. RJ ACI ASSEMBLE CHARACTERS
  7439. SX6 B5 SAVE SEPARATOR
  7440. SA6 DF+2
  7441. SX6 -CBUF PRESET DATA FIELD ADDRESS
  7442. SA6 DIPD
  7443. MX0 -6 CHECK NUMBER OF CHARACTERS
  7444. SA1 DIPA
  7445. AX1 36 SET MAXIMUM NUMBER OF CHARACTERS
  7446. BX2 -X0*X1
  7447. AX1 6 SET MINIMUM NUMBER OF CHARACTERS
  7448. BX1 -X0*X1
  7449. IX1 X4-X1
  7450. NG X1,DIP24 IF TOO FEW CHARACTERS
  7451. IX1 X2-X4
  7452. NG X1,DIP24 IF TOO MANY CHARACTERS
  7453. SB3 X2 SET CHARACTER COUNT FOR *PIBF*, *PIOP*
  7454. NZ X4,DIP6 IF NOT DEFAULT
  7455. SB2 B1+B1 SET NUMBER OF WORDS OF DEFAULT DATA FIELD
  7456. SX1 X2-11
  7457. PL X1,DIP5 IF TWO WORDS
  7458. SB2 B1 SET ONE WORD
  7459. SX6 B0 CLEAR SECOND WORD OF BUFFER
  7460. SA6 CBUF+1
  7461. DIP5 SA1 DIPA+2 SET DEFAULT VALUE
  7462. SX2 X1
  7463. MOVE B2,X2,CBUF
  7464. SX4 B3 SET CHARACTER COUNT FOR *PIBF*, *PIOP*
  7465. DIP6 SA1 DIPA CHECK DATA FIELD TYPE
  7466. AX1 48
  7467. SA1 DIPC+X1 GET INDEX ADDRESS
  7468. SB2 X1
  7469. JP B2 JUMP TO ADDRESS
  7470.  
  7471. * ZERO FILL (PIZF).
  7472.  
  7473. DIP7 MOVE 2,CBUF,DIPB DO NOT CHANGE DATA
  7474. SB6 -2 FLAG LEFT JUSTIFIED
  7475. EQ DIP20 SET VALUE IN TABLE
  7476.  
  7477. * BLANK FILL (PIBF).
  7478.  
  7479. DIP8 SX1 6 SET (X0) = CHARACTER MASK
  7480. IX4 X4*X1
  7481. LJUST X1,X1,X4,59
  7482. SA1 =C* * PRESET BLANK FILL
  7483. BX6 X1
  7484. SA6 DIPB
  7485. SA6 A6+B1
  7486. MOVEBIT CBUF,DIPB,X4 MOVE DATA
  7487. SX6 DIPB RESET DATA FIELD ADDRESS
  7488. SA6 DIPD
  7489. SB6 -2 FLAG LEFT JUSTIFIED
  7490. EQ DIP20 SET VALUE IN TABLE
  7491.  
  7492. * OPTION SELECTION (PIOP).
  7493.  
  7494. DIP9 SX1 6 SET (X0) = CHARACTER MASK
  7495. IX4 X4*X1
  7496. LJUST X1,X1,X4,59
  7497. SA1 DIPA+2 SET OPTION TABLE ADDRESS
  7498. AX1 18
  7499. SRCHTAB X1,CBUF,,2 SEARCH FOR OPTION
  7500. NZ X4,DIP24 IF ENTRY NOT FOUND
  7501. SA4 A1+B1 SAVE VALUE
  7502. BX6 X4
  7503. BX7 X3 SAVE DATA FIELD
  7504. BX4 X3-X2
  7505. ZR X4,DIP10 IF EXACT MATCH
  7506. SRCHTAB A1+B3,A2,B2,B3,B4 SEARCH REST OF TABLE
  7507. NZ X4,DIP10 IF NO CONFLICT
  7508. BX4 X3-X2
  7509. NZ X4,DIP24 IF NOT EXACT MATCH
  7510. SA4 A1+B1 SAVE VALUE
  7511. BX6 X4
  7512. BX7 X3 SAVE DATA FIELD
  7513. DIP10 SA6 DIPB
  7514. SA7 CBUF
  7515. SB6 B1 FLAG RIGHT JUSTIFIED
  7516. EQ DIP20 SET VALUE IN TABLE
  7517.  
  7518. * NUMERIC BINARY DATA (PIBD).
  7519.  
  7520. DIP11 SA5 CBUF
  7521. SB7 B1
  7522. RJ DXB CONVERT DISPLAY CODE TO BINARY
  7523. NZ X4,DIP24 IF ERROR IN DATA
  7524. SA1 DIPA+2 GET MAXIMUM VALUE
  7525. AX1 18
  7526. SA2 X1
  7527. AX1 18 GET MINIMUM VALUE
  7528. SA1 X1
  7529. IX2 X2-X6
  7530. NG X2,DIP24 IF VALUE TOO LARGE
  7531. IX1 X6-X1
  7532. NG X1,DIP24 IF VALUE TOO SMALL
  7533. SA6 DIPB
  7534. SB6 B1 FLAG RIGHT JUSTIFIED
  7535. EQ DIP20 SET VALUE IN TABLE
  7536.  
  7537. * PACKED DATE (PIPD).
  7538.  
  7539. DIP12 SA1 CBUF
  7540. RJ DXD CONVERT DISPLAY CODE TO PACKED DATE
  7541. NZ X4,DIP24 IF ERROR IN DATA
  7542. SA6 DIPB
  7543. SB6 B1 FLAG RIGHT JUSTIFIED
  7544. EQ DIP20 SET VALUE IN TABLE
  7545.  
  7546. * PACKED TIME (PIPT).
  7547.  
  7548. DIP13 SA1 CBUF
  7549. RJ DXT CONVERT DISPLAY CODE TO PACKED TIME
  7550. NZ X4,DIP24 IF ERROR IN DATA
  7551. SA6 DIPB
  7552. SB6 B1 FLAG RIGHT JUSTIFIED
  7553. EQ DIP20 SET VALUE IN TABLE
  7554.  
  7555. * JULIAN DATE (PIJD).
  7556.  
  7557. DIP14 SA1 CBUF
  7558. BX6 X1
  7559. SA6 DIPB
  7560. RJ CJD CHECK FOR JULIAN DATE
  7561. NZ X4,DIP24 IF NOT JULIAN DATE
  7562. SB6 -2 FLAG LEFT JUSTIFIED
  7563. EQ DIP20 SET VALUE IN TABLE
  7564.  
  7565. * VSN/SEQUENCE NUMBER (PIVQ).
  7566.  
  7567. DIP15 RJ PVS PAD VSN
  7568. SA6 DIPB SAVE VSN
  7569. SA1 =C*1* SET SEQUENCE NUMBER DEFAULT
  7570. BX6 X1
  7571. SA6 CBUF
  7572. SA1 DF+2 CHECK SEPARATOR
  7573. SX1 X1-1R/
  7574. NZ X1,DIP16 IF SEQUENCE NOT SPECIFIED
  7575. SA1 ="BL" SET SUPPRESSED CHARACTERS
  7576. BX6 X1
  7577. SA1 ="NC" SET ALLOWED CHARACTERS
  7578. SX4 10 SET MAXIMUM CHARACTERS
  7579. RJ ACI ASSEMBLE CHARACTERS
  7580. DIP16 SA1 CBUF SAVE SEQUENCE IMAGE
  7581. BX6 X1
  7582. SA6 DIPB+1
  7583. MOVEBIT DIPB,CBUF,VSKL*6 SET DATA FIELD IMAGE
  7584. MOVEBIT (=C*/*),CBUF,6,,59-VSKL*6
  7585. MOVEBIT DIPB+1,CBUF,60,,59-VSKL*6-6
  7586. SA5 DIPB+1 GET DISPLAY SEQUENCE NUMBER
  7587. SB7 B1
  7588. RJ DXB CONVERT DISPLAY TO BINARY
  7589. NZ X4,DIP24 IF CONVERSION ERROR
  7590. ZR X6,DIP24 IF VALUE .EQ. 0
  7591. SX1 X6-10000
  7592. PL X1,DIP24 IF VALUE .GT. 9999
  7593. SA1 DIPB MERGE VSN AND SEQUENCE NUMBER
  7594. BX6 X1+X6
  7595. SA6 A1
  7596. SB6 -2 FLAG LEFT JUSTIFIED
  7597. EQ DIP20 SET VALUE IN TABLE
  7598.  
  7599. * PADDED VSN (PIVS).
  7600.  
  7601. DIP17 RJ PVS PAD VSN
  7602. SA6 DIPB
  7603. SA6 CBUF
  7604. SB6 -2 FLAG LEFT JUSTIFIED
  7605. EQ DIP20 SET VALUE IN TABLE
  7606.  
  7607. * SPECIAL CHARACTER BIT STRING (PIBS).
  7608.  
  7609. DIP18 SA1 CBUF CHECK IF SPECIFIED
  7610. BX6 X1
  7611. ZR X1,DIP19 IF NO CHARACTER
  7612. LX1 -54+60 GET BIT POSITION
  7613. SB2 X1-1R+
  7614. NG B2,DIP24 IF NOT SPECIAL CHARACTER
  7615. SX6 B1 POSITION BIT STRING
  7616. LX6 B2
  7617. DIP19 SA6 DIPB
  7618. SB2 -2 FLAG LEFT JUSTIFIED
  7619. * EQ DIP20 SET VALUE IN TABLE
  7620.  
  7621. * SET VALUE IN CATALOG TABLE.
  7622.  
  7623. DIP20 SA3 DIPA+1 SET CATALOG TABLE ADDRESS
  7624. SA2 X3
  7625. MX0 -12 SET BIT COUNT
  7626. AX3 36
  7627. BX1 -X0*X3
  7628. SB4 X1
  7629. AX3 12 SET UPPER BIT OF FIELD
  7630. SB2 X3
  7631. SB3 59
  7632. NG B6,DIP21 IF LEFT JUSTIFIED
  7633. SB3 B4-B1 SET UPPER BIT POSITION OF VALUE
  7634. DIP21 MOVEBIT DIPB,A2,B4,B3,B2 SET VALUE IN TABLE
  7635. EQ DIP28 ISSUE DIRECTIVE TO OUTPUT FILE
  7636.  
  7637. DIP22 SB6 B0 FLAG NO DATA FIELD
  7638. RJ DTO ISSUE DIRECTIVE TO OUTPUT FILE
  7639. SB5 EILD SET ERROR MESSAGE ADDRESS
  7640. EQ DIP27 ISSUE MESSAGE
  7641.  
  7642. DIP23 SB6 B0 FLAG NO DATA FIELD
  7643. RJ DTO ISSUE DIRECTIVE TO OUTPUT
  7644. SB5 EDLE SET ERROR MESSAGE ADDRESS
  7645. EQ DIP27 ISSUE ERROR MESSAGE
  7646.  
  7647. DIP24 SA1 DIPD SET DATA FIELD ADDRESS
  7648. SB6 X1
  7649. EQ DIP26 ISSUE ERROR MESSAGE
  7650.  
  7651. DIP25 SB6 B0 FLAG NO DATA FIELD
  7652. DIP26 RJ DTO ISSUE DIRECTIVE TO OUTPUT FILE
  7653. SB5 EDFE SET ERROR MESSAGE ADDRESS
  7654. DIP27 ISSMSG B5,E ISSUE ERROR MESSAGE
  7655. EQ DIPX RETURN
  7656.  
  7657. DIPA BSS 3 IMAGE OF DIRECTIVE CONTROL BLOCK
  7658. DIPB BSS 2 IMAGE OF DATA FIELD VALUE
  7659. DIPC INDTAB 1 *DIP* PROCESSOR TABLE
  7660. INDEX PIZF,CON,DIP7 ZERO FILL
  7661. INDEX PIBF,CON,DIP8 BLANK FILL
  7662. INDEX PIOP,CON,DIP9 OPTION SELECTION
  7663. INDEX PIBD,CON,DIP11 NUMERIC BINARY DATA
  7664. INDEX PIPD,CON,DIP12 PACKED DATE
  7665. INDEX PIPT,CON,DIP13 PACKED TIME
  7666. INDEX PIJD,CON,DIP14 JULIAN DATE
  7667. INDEX PIVQ,CON,DIP15 VSN/SEQUENCE NUMBER
  7668. INDEX PIVS,CON,DIP17 PADDED VSN
  7669. INDEX PIBS,CON,DIP18 SPECIAL CHARACTER BIT STRING
  7670. DIPD BSS 1 DATA FIELD ADDRESS
  7671.  
  7672. DIPE BSS 0 DROP PROCESSOR TABLE
  7673. LOC 0
  7674. CON 0 FAMILY LEVEL DROP
  7675. CON /LVVS/DRO VSN LEVEL DROP
  7676. CON /LVUS/DRO USER LEVEL DROP
  7677. CON /LVFI/DRO FILE LEVEL DROP
  7678. CON /LVAU/DRO ALTERNATE USER LEVEL DROP
  7679. LOC *O
  7680. CON 0 END OF PROCESSOR ADDRESS
  7681. DTO SPACE 4,20
  7682. ** DTO - ISSUE DIRECTIVE TO OUTPUT FILE.
  7683. *
  7684. * ENTRY (DF) = DIRECTIVE LEFT JUSTIFIED.
  7685. * (B6) = 0 IF NO DATA FIELD.
  7686. * = ADDRESS OF SPACE FILLED DATA FIELD.
  7687. * (BF) = BRIEF/NOBRIEF FLAG.
  7688. *
  7689. * EXIT DIRECTIVE ISSUED TO OUTPUT FILE.
  7690. * ((B6) - (B6)+1) SPACE FILLED.
  7691. *
  7692. * USES A - 1, 6.
  7693. * B - 6.
  7694. * X - 1, 6.
  7695. *
  7696. * CALLS SFN.
  7697. *
  7698. * MACROS MOVE, MOVEBIT, WLINES.
  7699.  
  7700.  
  7701. DTO SUBR ENTRY/EXIT
  7702. SA1 =10H BLANK FILL DATA FIELD
  7703. BX6 X1
  7704. SA6 /KMESS/DIRECT+2
  7705. SA6 A6+B1
  7706. SA1 DF GET DIRECTIVE
  7707. RJ SFN SPACE FILL NAME
  7708. LX6 -6+60 SET DIRECTIVE IN MESSAGE
  7709. SA6 /KMESS/DIRECT+1
  7710. ZR B6,DTO2 IF NO DATA FIELD
  7711. SX2 2R= &2R SET EQUAL SIGN IN MESSAGE
  7712. BX6 X6-X2
  7713. SA6 A6
  7714. PL B6,DTO1 IF ALREADY SPACE FILLED
  7715. SB6 -B6 GET DATA FIELD ADDRESS
  7716. SA1 B6
  7717. RJ SFN SPACE FILL NAME
  7718. SA6 B6
  7719. SA1 B6+B1 GET SECOND WORD OF DATA FIELD
  7720. RJ SFN SPACE FILL NAME
  7721. SA6 B6+B1
  7722. DTO1 MOVEBIT B6,/KMESS/DIRECT+1,PNKL*6,,5 MOVE FIELD TO MESSAGE
  7723. DTO2 SX6 B0 CLEAR MESSAGE BUFFER
  7724. SA6 /KMESS/MESSAGE
  7725. SA6 A6+B1
  7726. SA1 =10H ********* SET START OF DIRECTIVE MESSAGE
  7727. BX6 X1
  7728. SA6 /KMESS/DIRECT
  7729. MOVE 3,/KMESS/DIRECT+1,NPGG MOVE DIRECTIVE TO PAGE HEADER
  7730. SA1 BF CHECK *BRIEF* FLAG
  7731. NZ X1,DTOX IF *BRIEF* MODE SET
  7732. WLINES /KMESS/DIRECT,1 WRITE DIRECTIVE TO OUTPUT FILE
  7733. EQ DTOX RETURN
  7734. DXD SPACE 4,15
  7735. ** DXD - DISPLAY TO PACKED DATE CONVERSION.
  7736. *
  7737. * ENTRY (X1) = DISPLAY DATE LEFT JUSTIFIED IN YYMMDD FORMAT.
  7738. *
  7739. * EXIT (X4) = 0 IF NO CONVERSION ERROR.
  7740. * (X6) = PACKED DATE.
  7741. *
  7742. * USES A - 1, 3, 6, 7.
  7743. * X - 0, 1, 2, 3, 7.
  7744. *
  7745. * CALLS DDC.
  7746.  
  7747.  
  7748. DXD SUBR ENTRY/EXIT
  7749. SX4 B0 CHECK BLANK RELEASE DATE
  7750. SA3 =C* *
  7751. BX6 X1-X3
  7752. ZR X6,DXDX IF NO RELEASE DATE
  7753. BX6 X1 SAVE MONTH AND DAY
  7754. SA6 DXDA
  7755. SX2 B0 SET MINIMUM VALUE
  7756. SX3 99 SET MAXIMUM VALUE
  7757. RJ DDC CONVERT DECIMAL DIGITS
  7758. NZ X4,DXDX IF CONVERSION ERROR
  7759. MX0 -2 CHECK FOR LEAP YEAR
  7760. BX1 -X0*X6
  7761. SX7 28
  7762. NZ X1,DXD1 IF NOT LEAP YEAR
  7763. SX7 X7+B1
  7764. DXD1 SA7 DXDC+2-1 SET NUMBER OF DAYS IN FEBRUARY
  7765. SX6 X6-70
  7766. PL X6,DXD2 IF BETWEEN 1970 AND 1999
  7767. SX6 X6+100
  7768. DXD2 SX4 B1 CHECK IF YEAR TOO LARGE
  7769. SX1 X6-100B
  7770. PL X1,DXDX IF AFTER 2033
  7771. LX6 12 SET PACKED YEAR
  7772. SA6 DXDB
  7773. SA1 DXDA GET MONTH
  7774. LX1 12
  7775. SX2 B1 SET MINIMUM NUMBER OF MONTHS/DAYS
  7776. SX3 12 SET MAXIMUM NUMBER OF MONTHS
  7777. RJ DDC CONVERT DECIMAL DIGITS
  7778. NZ X4,DXDX IF CONVERSION ERROR
  7779. SA3 DXDC+X6-1 GET NUMBER OF DAYS IN MONTH
  7780. SA1 DXDB SET PACKED MONTH
  7781. LX6 6
  7782. BX6 X1+X6
  7783. SA6 A1
  7784. SA1 DXDA GET DAY
  7785. LX1 24
  7786. RJ DDC CONVERT DECIMAL DIGITS
  7787. NZ X4,DXDX IF CONVERSION ERROR
  7788. SA1 DXDB SET PACKED DAY
  7789. BX6 X1+X6
  7790. EQ DXDX RETURN
  7791.  
  7792. DXDA BSS 1 DISPLAY DATE
  7793. DXDB BSS 1 PACKED DATE
  7794. DXDC BSS 0 DAYS PER MONTH TABLE
  7795. LOC 1
  7796. CON 31 JANUARY
  7797. CON 28 FEBRUARY
  7798. * CON 29 (FEBRUARY - LEAP YEAR)
  7799. CON 31 MARCH
  7800. CON 30 APRIL
  7801. CON 31 MAY
  7802. CON 30 JUNE
  7803. CON 31 JULY
  7804. CON 31 AUGUST
  7805. CON 30 SEPTEMBER
  7806. CON 31 OCTOBER
  7807. CON 30 NOVEMBER
  7808. CON 31 DECEMBER
  7809. LOC *O
  7810. DXT SPACE 4,15
  7811. ** DXT - DISPLAY TO PACKED TIME CONVERSION.
  7812. *
  7813. * ENTRY (X1) = DISPLAY TIME LEFT JUSTIFIED IN HHMMSS FORMAT.
  7814. *
  7815. * EXIT (X4) = 0 IF NO CONVERSION ERROR
  7816. * (X6) = PACKED TIME.
  7817. *
  7818. * USES A - 1, 6.
  7819. * X - 1, 2, 3.
  7820. *
  7821. * CALLS DDC.
  7822.  
  7823.  
  7824. DXT SUBR ENTRY/EXIT
  7825. BX6 X1 SAVE MINUTES AND SECONDS
  7826. SA6 DXTA
  7827. SX2 B0 SET MINIMUM VALUE
  7828. SX3 23 SET MAXIMUM NUMBER OF HOURS
  7829. RJ DDC CONVERT DISPLAY DIGITS
  7830. NZ X4,DXTX IF CONVERSION ERROR
  7831. LX6 12 SET PACKED HOURS
  7832. SA6 DXTB
  7833. SA1 DXTA GET MINUTES
  7834. LX1 12
  7835. SX3 59 SET MAXIMUM NUMBER OF MINUTES/SECONDS
  7836. RJ DDC CONVERT DISPLAY DIGITS
  7837. NZ X4,DXTX IF CONVERSION ERROR
  7838. SA1 DXTB SET PACKED MINUTES
  7839. LX6 6
  7840. BX6 X1+X6
  7841. SA6 A1
  7842. SA1 DXTA GET SECONDS
  7843. LX1 24
  7844. RJ DDC CONVERT DISPLAY DIGITS
  7845. NZ X4,DXTX IF CONVERSION ERROR
  7846. SA1 DXTB SET PACKED SECONDS
  7847. BX6 X1+X6
  7848. EQ DXTX RETURN
  7849.  
  7850. DXTA BSS 1 DISPLAY TIME
  7851. DXTB BSS 1 PACKED TIME
  7852. FAL SPACE 4,10
  7853. ** FAL - FAMILY LEVEL PROCESSOR.
  7854. *
  7855. * EXIT PROGRAM SET FOR FAMILY LEVEL DIRECTIVES.
  7856. *
  7857. * USES A - 1, 6.
  7858. * X - 1, 6.
  7859.  
  7860.  
  7861. FAL SUBR ENTRY/EXIT
  7862. SX6 LVFA SET FAMILY LEVEL
  7863. SA6 LV
  7864. SA1 FALA RESET LEFT SCREEN POINTER
  7865. BX6 X1
  7866. SA6 /KLEFT/NEXT
  7867. SA1 FALB RESET RIGHT SCREEN POINTER
  7868. BX6 X1
  7869. SA6 /KRIGHT/NEXT
  7870. SA1 =H* FAMILY * SET LEVEL IN HELP DISPLAY
  7871. BX6 X1
  7872. SA6 /KRIGHT/LV
  7873. EQ FALX RETURN
  7874.  
  7875. FALA KNEXT KFAMLS,NOLAB
  7876. FALB KNEXT KFAMRS,NOLAB
  7877. FEL SPACE 4,15
  7878. ** FEL - FORCE END OF LINE.
  7879. *
  7880. * ENTRY (A2) = ADDRESS TO START END OF LINE.
  7881. * (X3) = BIT POSITION TO START END OF LINE.
  7882. *
  7883. * EXIT (A2) = ADDRESS OF END OF END OF LINE.
  7884. *
  7885. * USES A - 1.
  7886. * B - 4.
  7887. * X - 0, 1, 2, 6.
  7888. *
  7889. * MACROS MOVEBIT.
  7890.  
  7891.  
  7892. FEL SUBR ENTRY/EXIT
  7893. MX0 -12 CHECK BIT POSITION
  7894. SX1 X3-59
  7895. NZ X1,FEL1 IF NOT AT START OF WORD
  7896. SA1 A2-1 CHECK PREVIOUS WORD
  7897. BX1 -X0*X1
  7898. ZR X1,FELX IF ALREADY AT END OF LINE
  7899. FEL1 SA2 A2
  7900. SB4 X3+B1 PRESET BIT COUNT
  7901. SX6 X3-6
  7902. PL X6,FEL2 IF END OF LINE ON ONLY ONE WORD
  7903. SB4 B4+60 RESET BIT COUNT
  7904. FEL2 MOVEBIT FELA,A2,B4,,X3 SET END OF LINE
  7905. EQ FELX RETURN
  7906.  
  7907. FELA BSS 2 END OF LINE IMAGE
  7908. FEV SPACE 4,15
  7909. ** FEV - FIND EXTERNAL VSN.
  7910. *
  7911. * ENTRY (FCAT) = FILE CATALOG IMAGE.
  7912. * (TAVS) = ASSIGNED VSN ENTRIES.
  7913. *
  7914. * EXIT (X4) = 0 IF VSN FOUND.
  7915. * (A1) = ADDRESS OF EXTERNAL VSN ENTRY IN *TAVS*.
  7916. * (X6) = VSN BUFFER SIZE.
  7917. *
  7918. * USES A - 2.
  7919. * X - 0, 2.
  7920. *
  7921. * MACROS RJUST, SRCHTAB.
  7922.  
  7923.  
  7924. FEV SUBR ENTRY/EXIT
  7925. MX0 VSKL*6 FIND EXTERNAL VSN
  7926. SA2 /ADD/EVSN
  7927. SRCHTAB TAVS,A2,TAVSL,4
  7928. SA2 /ADD/REELC
  7929. RJUST X2,X6,/BTC/REELC,/UPB/REELC
  7930. LX6 2
  7931. EQ FEVX RETURN
  7932. FIA SPACE 4,15
  7933. ** FIA - FILE AUDIT LIST PROCESSOR.
  7934. *
  7935. * ENTRY (FCAT) = IMAGE OF FILE CATALOG.
  7936. * (TAVS) = IMAGE OF ASSIGNED VSNS.
  7937. *
  7938. * EXIT FILE INFORMATION WRITTEN TO OUTPUT FILE.
  7939. *
  7940. * USES A - 1, 6.
  7941. * B - 2, 3, 7.
  7942. * X - 1, 6, 7.
  7943. *
  7944. * CALLS CDD, FEL, FEV, SFN.
  7945. *
  7946. * MACROS CLEAR, DISLIS, LISTAB, MOVEBIT, RJUST, SETSORC,
  7947. * WWORDS.
  7948.  
  7949.  
  7950. FIA SUBR ENTRY/EXIT
  7951. SA1 UN SET USER NAME IN LISTING
  7952. RJ SFN SPACE FILL NAME
  7953. BX1 X6 SET USER NAME IN LISTING
  7954. MOVEBIT A1,/ALS/FUN,UNKL*6,59,/ALSU/FUN
  7955. SA1 TAVS+/CAT/FVSN SET FIRST VSN IN LISTING
  7956. MOVEBIT A1,/ALS/VSNF,VSKL*6,,/ALSU/VSNF
  7957. SA1 /ADD/QN SET SEQUENCE NUMBER IN LISTING
  7958. RJUST X1,X1,/BTC/QN,/UPB/QN
  7959. SX1 X1+10000
  7960. RJ CDD CONVERT TO DECIMAL DISPLAY
  7961. BX1 X6
  7962. MOVEBIT A1,/ALS/QN,24,23,/ALSU/QN
  7963. SETSORC A,LVFI SET SOURCE VALUES IN AUDIT LISTING
  7964. SA1 /ALS/FI CHECK FOR EXTRA END OF LINES
  7965. SB3 /ALSU/FI
  7966. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  7967. SA1 /ALS/PI
  7968. SB3 /ALSU/PI
  7969. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  7970. MOVE 4,FIAF,FIAD CLEAR RELEASE MESSAGE
  7971. MX0 -18
  7972. SA1 TAVS+/CAT/URDATE SET UNCONDITIONAL RELEASE DATE
  7973. BX1 -X0*X1
  7974. ZR X1,FIA1 IF NO CONDITIONAL RELEASE DATE
  7975. SA1 TAVS+/CAT/NEWRDT CHECK RELEASE DATE FORMAT
  7976. LJUST X1,X1,/BTC/NEWRDT,/UPB/NEWRDT
  7977. NG X1,FIA0.1 IF NEW FORMAT
  7978. MOVEBIT /ALS/URDATE,/ALS/RDATE,6*6,/ALSU/URDATE,/ALSU/RDATE
  7979. MOVE 4,FIAE,FIAD SET CONDITIONALLY RELEASE MESSAGE
  7980. EQ FIA1 CLEAR LIST OF VSNS
  7981.  
  7982. FIA0.1 MOVE 4,FIAG,FIAD SET UNCONDITIONAL RELEASE MESSAGE
  7983. FIA1 CLEAR FIAC,60 CLEAR LIST OF VSNS
  7984. RJ FEV FIND EXTERNAL VSN
  7985. SB2 X6 GET LIST OF VSNS
  7986. LISTAB A1,FIAC,B2,,4,VSKL*6
  7987. SA1 =4R SET IMAGE BETWEEN VSNS
  7988. BX6 X1
  7989. SX7 12 PRESET NUMBER OF VSN ENTRIES PER LINE
  7990. SA1 OS
  7991. NG X1,FIA2 IF MASS STORAGE OUTPUT
  7992. SX7 6 RESET NUMBER OF VSN ENTRIES PER LINE
  7993. FIA2 DISLIS FIAC,FIAB,,VSKL*6,24,X7
  7994. RJ FEL FORCE END OF LINE
  7995. SA1 =C* * INSERT BLANK LINE
  7996. BX6 X1
  7997. SA6 A2
  7998. SB7 A2-FIAA+1 SET ASSIGNED VSNS LIST LENGTH
  7999. WWORDS FIAA,B7 WRITE ASSIGNED VSNS LIST
  8000. EQ FIAX RETURN
  8001.  
  8002. FIAA BSS 0 AUDIT LISTING
  8003. LISTER ALS,1
  8004. FUN LISTER ,7 USER NAME
  8005. LISTER ,2
  8006. FI LISTER ,17 FILE IDENTIFIER
  8007. LISTER ,2
  8008. SV LISTER ,1 SYMBOLIC ACCESS FLAG
  8009. LISTER ,2
  8010. VSNF LISTER ,6 FIRST VSN
  8011. LISTER ,2
  8012. QN LISTER ,4 SEQUENCE NUMBER
  8013. LISTER ,1
  8014. CE LISTER ,1 ERROR FLAG
  8015. LISTER ,1
  8016. CN LISTER ,10 CHARGE NUMBER
  8017. LISTER ,1
  8018. PN LISTER ,20 PROJECT NUMBER
  8019. EOL1 LISTER ,2 END OF TERMINAL OUTPUT LINE
  8020. LISTER ,1
  8021. PW LISTER ,7 PASSWORD
  8022. LISTER ,2
  8023. PI LISTER ,17 PHYSICAL IDENTIFIER
  8024. LISTER ,2
  8025. M LISTER ,1 MODE
  8026. LISTER ,2
  8027. CT LISTER ,2 CATEGORY
  8028. LISTER ,2
  8029. AC LISTER ,1 ALTERNATE AUDIT FLAG
  8030. LISTER ,2
  8031. UC LISTER ,10 USER CONTROL WORD
  8032. LISTER ,1,,E
  8033. LISTER ,1
  8034. CR LISTER ,5 CREATION DATE
  8035. LISTER ,3
  8036. CV LISTER ,2 CONVERSION MODE
  8037. LISTER ,2
  8038. D LISTER ,2 DENSITY
  8039. LISTER ,3
  8040. E LISTER ,2 GENERATION VERSION NUMBER
  8041. LISTER ,3
  8042. F LISTER ,2 FORMAT
  8043. LISTER ,2
  8044. FA LISTER ,1 ACCESSIBILITY CHARACTER
  8045. LISTER ,3
  8046. FC LISTER ,4 MAXIMUM FRAME COUNT
  8047. LISTER ,3
  8048. G LISTER ,4 GENERATION NUMBER
  8049. LISTER ,2
  8050. LB LISTER ,2 LABEL TYPE
  8051. LISTER ,2
  8052. NS LISTER ,2 NOISE SIZE
  8053. LISTER ,3
  8054. RT LISTER ,5 RETENTION DATE
  8055. LISTER ,3
  8056. SN LISTER ,4 SECTION NUMBER
  8057. LISTER ,4
  8058. SI LISTER ,6 SET IDENTIFIER
  8059. LISTER ,3
  8060. EOL2 LISTER ,2 END OF TERMINAL OUTPUT LINE
  8061. LISTER ,1
  8062. ACOUNT LISTER ,8 ACCESS COUNT
  8063. LISTER ,1
  8064. CDATE LISTER ,6 CREATION DATE
  8065. LISTER ,1
  8066. CTIME LISTER ,6 CREATION TIME
  8067. LISTER ,1
  8068. ADATE LISTER ,6 ACCESS DATE
  8069. LISTER ,1
  8070. ATIME LISTER ,6 ACCESS TIME
  8071. LISTER ,1
  8072. MDATE LISTER ,6 MODIFICATION DATE
  8073. LISTER ,1
  8074. MTIME LISTER ,6,,E MODIFICATION TIME
  8075. FIAD DATA 36L
  8076. FIAB BSS 0 LISTING OF ASSIGNED VSNS
  8077. DUP 10
  8078. DATA 30H
  8079. DATA 26L
  8080. ENDD
  8081. DATA C* *
  8082. FIAC BSS 60 LIST OF ASSIGNED VSNS
  8083. FIAE BSS 0
  8084. LISTER ,27,( ** CONDITIONALLY RELEASED )
  8085. RDATE LISTER ,6,YYMMDD
  8086. LISTER ,3,( **),E
  8087. FIAF DATA 36L
  8088. FIAG BSS 0
  8089. LISTER ,19,( ** TO BE RELEASED )
  8090. URDATE LISTER ,6,YYMMDD UNCONDITIONAL RELEASE DATE
  8091. LISTER ,11,( ** ),E
  8092. FIL SPACE 4,10
  8093. ** FIL - FILE LEVEL PROCESSOR.
  8094. *
  8095. * EXIT PROGRAM SET FOR FILE LEVEL DIRECTIVES.
  8096. *
  8097. * USES A - 1, 2, 6.
  8098. * X - 1, 2, 6.
  8099. *
  8100. * CALLS RDA.
  8101. *
  8102. * MACROS LJUST, MOVE, MOVEBIT, RJUST.
  8103.  
  8104.  
  8105. FIL SUBR ENTRY/EXIT
  8106. SX6 B0 CLEAR ALTERNATE USER
  8107. SA6 AU
  8108. SX6 LVFI SET FILE LEVEL
  8109. SA6 LV
  8110. SA1 UN SET USER NAME IN K-DISPLAY
  8111. BX6 X1
  8112. SA6 /KFILLS1/USER
  8113. SA6 /KFILLS2/USER
  8114. SA6 /KFILLS3/USER
  8115. MOVEBIT FI,/KFILLS1/FILE,FIKL*6 SET FILE ID IN K-DISPLAY
  8116. MOVEBIT FI,/KFILLS2/FILE,FIKL*6
  8117. MOVEBIT FI,/KFILLS3/FILE,FIKL*6
  8118. SA1 RF CHECK RESERVED FLAG
  8119. SA2 FILA PRESET MESSAGE ADDRESS
  8120. ZR X1,FIL1 IF FILE NOT RESERVED
  8121. SA2 FILB RESET MESSAGE ADDRESS
  8122. FIL1 MOVE 3,A2,/KFILLS1/MESS SET RESERVE MESSAGE IN K-DISPLAY
  8123. MOVE 3,/KFILLS1/MESS,/KFILLS2/MESS
  8124. MOVE 3,/KFILLS2/MESS,/KFILLS3/MESS
  8125. SA1 /ADD/D GET FILE DENSITY
  8126. RJUST X1,X2,/BTC/D,/UPB/D
  8127. MX0 60 GET DENSITY MNEMONIC
  8128. SRCHTAB /DOTAB/D,A2,,2,1
  8129. MOVEBIT A1,/KDIS/D,2*6,,5 SET MNEMONIC IN K-DISPLAY
  8130. SA1 FILC RESET LEFT SCREEN POINTER
  8131. BX6 X1
  8132. SA6 /KLEFT/NEXT
  8133. SA1 FILD RESET RIGHT SCREEN POINTER
  8134. BX6 X1
  8135. SA6 /KRIGHT/NEXT
  8136. SA1 =H* FILE * SET LEVEL IN HELP DISPLAY
  8137. BX6 X1
  8138. SA6 /KRIGHT/LV
  8139. SX6 B1 SET FILE LEVEL TOGGLE PAGE
  8140. SA6 TG
  8141. SA1 TAVS+/CAT/URDATE CHECK RELEASE DATE
  8142. RJUST X1,X6,/BTC/URDATE,/UPB/URDATE
  8143. ZR X6,FILX IF NO RELEASE DATE
  8144. SA1 TAVS+/CAT/NEWRDT CHECK RELEASE DATE FORMAT
  8145. LJUST X1,X1,/BTC/NEWRDT,/UPB/NEWRDT
  8146. NG X1,FILX IF NEW FORMAT
  8147. SA6 /LVFI/RDAA
  8148. RJ /LVFI/RDA CONVERT RDATE TO URDATE
  8149. EQ FILX RETURN
  8150.  
  8151. FILA DATA 30HFILE NOT CURRENTLY RESERVED.
  8152. FILB DATA 30HFILE CURRENTLY IS RESERVED.
  8153. FILC KNEXT KFILLS1,NOLAB
  8154. FILD KNEXT KFILRS,NOLAB
  8155. FIS SPACE 4,15
  8156. ** FIS - FILE SOURCE LISTING PROCESSOR.
  8157. *
  8158. * ENTRY (FCAT) = IMAGE OF FILE CATALOG.
  8159. * (TAVS) = IMAGE OF ASSIGNED VSNS.
  8160. *
  8161. * EXIT FILE INFORMATION WRITTEN TO SOURCE FILE.
  8162. *
  8163. * USES A - 1, 2, 3, 6.
  8164. * B - 2.
  8165. * X - 1, 2, 3, 6.
  8166. *
  8167. * CALLS AUS, CDD, FEL, FEV, SCS.
  8168. *
  8169. * MACROS CLEAR, DISLIS, GRENTRY, LISTAB, MOVEBIT, RCREC, RJUST,
  8170. * SETSORC, WRITEC, WRITEW.
  8171.  
  8172.  
  8173. FIS7 WRITEC S,(=C*DROP*) WRITE LAST LINE OF ENTRY
  8174.  
  8175. FIS SUBR ENTRY/EXIT
  8176. SX6 B0 PRESET ADD ALL VSNS
  8177. SA6 FISD
  8178. SA1 /ADD/QN CHECK SEQUENCE NUMBER
  8179. RJUST X1,X1,/BTC/QN,/UPB/QN
  8180. SB2 X1-1
  8181. NZ B2,FIS2 IF NOT *QN=1*
  8182. SA2 /ADD/SV CHECK SYMBOLIC ACCESS
  8183. RJUST X2,X2,/BTC/SV,/UPB/SV
  8184. ZR X2,FIS1 IF NOT SYMBOLIC ACCESS
  8185. MOVEBIT FI,FISE,FIKL*6 SAVE VALUE OF (FI)
  8186. MOVEBIT /ADD/FI,FI,FIKL*6 ADD *FILE* TO SOURCE ENTRY
  8187. SA1 /DTAB/FILE
  8188. RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
  8189. MOVEBIT FISE,FI,FIKL*6 RESTORE VALUE OF (FI)
  8190. SX6 FISG FLAG *FILE* DIRECTIVE
  8191. SA6 FISH
  8192. MOVE CSPL/10,SCSB,X6 SAVE IMAGE OF DIRECTIVE
  8193. EQ FIS3 GET SOURCE VALUES
  8194.  
  8195. FIS1 SX6 B1 RESET TO IGNORE FIRST VSN
  8196. SA6 FISD
  8197. FIS2 RJ CDD CONVERT TO DECIMAL DISPLAY
  8198. BX1 X4 SET SEQUENCE NUMBER IN IDENTIFIER
  8199. MOVEBIT A1,/SLS/QN,4*6,,/SLSU/QN
  8200. SA1 TAVS+/CAT/FVSN
  8201. MOVEBIT A1,/SLS/IDENT,VSKL*6,,/SLSU/IDENT
  8202. WRITEC S,FISF WRITE FIRST LINE OF SOURCE ENTRY
  8203. SX6 FISF FLAG *FILEV* DIRECTIVE
  8204. SA6 FISH
  8205. FIS3 SA1 TAVS+/CAT/NEWRDT CHECK RELEASE DATE FORMAT
  8206. LJUST X1,X6,/BTC/NEWRDT,/UPB/NEWRDT
  8207. SX1 1RU
  8208. NG X6,FIS3.1 IF NEW FORMAT
  8209. SX1 1R
  8210. FIS3.1 MOVEBIT A1,/SLS/NEWRDT,1*6,5,/SLSU/NEWRDT
  8211. SETSORC S,LVFI SET SOURCE VALUES IN SOURCE LISTING
  8212. SA1 /DTAB/FI ADD *FI* TO SOURCE ENTRY
  8213. RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
  8214. WRITEW S,FISA,FISAL WRITE FIRST PART OF SOURCE LISTING
  8215. SA1 /DTAB/PI ADD *PI* TO SOURCE ENTRY
  8216. RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
  8217. SA1 /DTAB/PW ADD *PW* TO SOURCE ENTRY
  8218. RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
  8219. SA1 /DTAB/UC ADD *UC* TO SOURCE ENTRY
  8220. RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
  8221. SA1 /DTAB/SI ADD *SI* TO SOURCE ENTRY
  8222. RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
  8223. CLEAR FISC,60 CLEAR LIST OF VSNS
  8224. RJ FEV FIND EXTERNAL VSN
  8225. SA2 FISD
  8226. ZR X2,FIS4 IF SYMBOLIC ACCESS
  8227. SA1 A1+TSVL SKIP FIRST VSN
  8228. SX6 X6-4
  8229. FIS4 ZR X6,FIS5 IF NO ASSIGNED VSNS
  8230. SB2 X6 GET LIST OF VSNS
  8231. LISTAB A1,FISC,B2,,4,VSKL*6
  8232. SA3 =6R,AVSN= SET IMAGE BETWEEN ENTRIES
  8233. BX6 X3
  8234. DISLIS FISC,FISB,,VSKL*6,36,6 SET VSNS IN SOURCE LISTING
  8235. RJ FEL FORCE END OF LINE
  8236. SX2 A2-FISB SET LENGTH OF SOURCE LISTING
  8237. WRITEW S,FISB,X2 WRITE ASSIGNED VSNS TO SOURCE
  8238. FIS5 WRITEC S,(=C*GO*) WRITE LAST LINE OF SOURCE ENTRY
  8239. SA1 /ADD/AUCAT CHECK FOR ALTERNATE USERS
  8240. RJUST X1,X1,/BTC/AUCAT,/UPB/AUCAT
  8241. ZR X1,FISX IF NO ALTERNATE USERS
  8242. SA1 FISH WRITE FIRST DIRECTIVE
  8243. WRITEC S,X1
  8244. SA1 /ADD/AUCAT GET ALTERNATE USERS RANDOM ADDRESS
  8245. RJUST X1,X1,/BTC/AUCAT,/UPB/AUCAT
  8246. RCREC N4,X1
  8247. FIS6 GRENTRY N4,ACAT GET RECORD ENTRY
  8248. ZR X6,FIS7 IF END OF ENTRIES
  8249. RJ AUS PROCESS ALTERNATE USER SOURCE LISTING
  8250. EQ FIS6 GET NEXT ENTRY
  8251.  
  8252. FISA BSS 0 SOURCE LISTING
  8253. LISTER SLS,3,(SV=)
  8254. SV LISTER ,3,NO SYMBOLIC ACCESS STATUS
  8255. LISTER ,9,(,RECOVER=)
  8256. RECOVER LISTER ,3,NO RECOVERY STATUS
  8257. LISTER ,4,(,PN=)
  8258. PN LISTER ,20,,E,CAPL PROJECT NUMBER
  8259. LISTER ,3,CN=
  8260. CN LISTER ,10 CHARGE NUMBER
  8261. LISTER ,4,(,CT=)
  8262. CT LISTER ,7,PRIVATE FILE CATEGORY
  8263. LISTER ,3,(,M=)
  8264. M LISTER ,5,WRITE FILE MODE
  8265. LISTER ,4,(,AC=)
  8266. AC LISTER ,3,NO ALTERNATE AUDIT FLAG
  8267. LISTER ,4,(,CE=)
  8268. CE LISTER ,5,CLEAR,E,CAPL ERROR FLAG
  8269. LISTER ,3,CR=
  8270. CR LISTER ,5,YYDDD CREATION DATE
  8271. LISTER ,4,(,CV=)
  8272. CV LISTER ,2,AS CONVERSION MODE
  8273. LISTER ,3,(,D=)
  8274. D LISTER ,2,PE DENSITY
  8275. LISTER ,3,(,E=)
  8276. E LISTER ,2,00 GENERATION VERSION NUMBER
  8277. LISTER ,3,(,F=)
  8278. F LISTER ,2,I FORMAT
  8279. LISTER ,4,(,FA=)
  8280. FA LISTER ,1 ACCESSIBILITY CHARACTER
  8281. LISTER ,4,(,FC=)
  8282. FC LISTER ,4,"MXFC" MAXIMUM BLOCK COUNT
  8283. LISTER ,3,(,G=)
  8284. G LISTER ,4,0001 GENERATION NUMBER
  8285. LISTER ,4,(,LB=)
  8286. LB LISTER ,2,KL LABEL TYPE
  8287. LISTER ,4,(,NS=)
  8288. NS LISTER ,2,00,E,CAPL NOISE SIZE
  8289. LISTER ,3,RT=
  8290. RT LISTER ,5,YYDDD RETENTION DATE
  8291. LISTER ,4,(,SN=)
  8292. SN LISTER ,4,0001 SECTION NUMBER
  8293. LISTER ,8,(,ACOUNT=)
  8294. ACOUNT LISTER ,8,00000000 ACCESS COUNT
  8295. LISTER ,7,(,CDATE=)
  8296. CDATE LISTER ,6,YYMMDD CREATION DATE
  8297. LISTER ,7,(,CTIME=)
  8298. CTIME LISTER ,6,HHMMSS,E,CAPL CREATION TIME
  8299. LISTER ,6,ADATE=
  8300. ADATE LISTER ,6,YYMMDD LAST ACCESS DATE
  8301. LISTER ,7,(,ATIME=)
  8302. ATIME LISTER ,6,HHMMSS LAST ACCESS TIME
  8303. LISTER ,7,(,MDATE=)
  8304. MDATE LISTER ,6,YYMMDD LAST MODIFICATION DATE
  8305. LISTER ,7,(,MTIME=)
  8306. MTIME LISTER ,6,HHMMSS,E,CAPL LAST MODIFICATION TIME
  8307. NEWRDT LISTER ,1,(U) URDATE/RDATE FLAG
  8308. LISTER ,6,(RDATE=)
  8309. URDATE LISTER ,6,YYMMDD,E,CAPL RELEASE DATE
  8310. FISAL EQU *-FISA LENGTH OF SOURCE LISTING
  8311.  
  8312. FISB BSS 0 ASSIGNED VSNS SOURCE LISTINGS
  8313. DUP 10
  8314. DATA 24H,AVSN= ,AVSN=
  8315. DATA 24H,AVSN= ,AVSN=
  8316. DATA 24L,AVSN= ,AVSN=
  8317. ENDD
  8318. FISC BSS 60 ASSIGNED VSNS
  8319. FISD BSS 1 PROCESS FIRST VSN FLAG
  8320. FISE BSS 2 VALUE OF (FI)
  8321.  
  8322. FISF BSS 0 FIRST LINE OF *FILEV* ENTRY
  8323. LISTER SLS,6,FILEV=
  8324. IDENT LISTER ,6 VSN IDENTIFIER
  8325. LISTER ,1,/
  8326. QN LISTER ,4,,E,CAPL SEQUENCE NUMBER
  8327.  
  8328. FISG BSS CSPL/10 FIRST LINE OF *FILE* ENTRY
  8329. CON 0
  8330.  
  8331. FISH CON FISF ADDRESS OF FIRST DIRECTIVE
  8332. FOB SPACE 4,10
  8333. ** FOB - FLUSH OUTPUT BUFFER.
  8334. *
  8335. * ENTRY (OS) .GT. 0 IF TERMINAL OUTPUT.
  8336. *
  8337. * EXIT OUTPUT WRITTEN TO TERMINAL FILE.
  8338. *
  8339. * USES A - 1.
  8340. * X - 1.
  8341. *
  8342. * MACROS WRITER.
  8343.  
  8344.  
  8345. FOB SUBR ENTRY/EXIT
  8346. SA1 OS
  8347. ZR X1,FOBX IF NO OUTPUT FILE
  8348. NG X1,FOBX IF MASS STORAGE OUTPUT FILE
  8349. WRITER L,R FLUSH OUTPUT BUFFER
  8350. EQ FOBX RETURN
  8351. GAE SPACE 4,15
  8352. ** GAE - GET ALTERNATE USER ENTRY.
  8353. *
  8354. * ENTRY (AU) = ALTERNATE USER NAME.
  8355. * (CA) = RANDOM ADDRESS OF FILE CATALOG.
  8356. *
  8357. * EXIT (X4) .NE. 0 IF ALTERNATE USER NOT IN CATALOG.
  8358. * (ACAT - ACAT+1) = ALTERNATE USER ENTRY.
  8359. *
  8360. * USES A - 1, 6.
  8361. * X - 1, 2, 6.
  8362. *
  8363. * CALLS CAB.
  8364. *
  8365. * MACROS CALLTFM, MOVE, MOVEBIT, RESETP, WRITFET.
  8366.  
  8367.  
  8368. GAE SUBR ENTRY/EXIT
  8369. RJ CAB CHECK IF ALTERNATE USER IN BUFFER
  8370. ZR X4,GAE1 IF ALTERNATE USER IN BUFFER
  8371. MOVEBIT AU,DAUC+/CAT/AUSER,UNKL*6,,/UPB/AUSER
  8372. MOVE TAEL,DAUC,ACAT SET DEFAULT ALTERNATE USER CATALOG
  8373. SA1 CA CHECK CATALOG ADDRESS
  8374. SX4 B1 PRESET ERROR FLAG
  8375. ZR X1,GAEX IF NO CATALOG ADDRESS
  8376. BX6 X1
  8377. SA6 N4+TFRR
  8378. RESETP N4 LIST ALTERNATE USER ENTRY
  8379. WRITFET X2,ACAT,TAEL
  8380. CALLTFM X2,LAES
  8381. NZ X4,GAEX IF ALTERNATE USER NOT FOUND
  8382. SA1 N4BUF
  8383. GAE1 SX2 A1 GET ALTERNATE USER ENTRY
  8384. MOVE TAEL,X2,ACAT
  8385. SX4 B0
  8386. EQ GAEX RETURN
  8387. GUV SPACE 4,15
  8388. ** GUV - GET USER INFORMATION FOR VSN.
  8389. *
  8390. * ENTRY (VCAT) = VSN ENTRY IMAGE.
  8391. *
  8392. * EXIT (X1) = USER NAME.
  8393. * = 0 IF NOT ASSIGNED.
  8394. * (FI) = FILE IDENTIFIER.
  8395. * (UN) = USER NAME.
  8396. *
  8397. * USES A - 1, 6.
  8398. * X - 1, 2, 6.
  8399. *
  8400. * MACROS MOVE, MOVEBIT, RCREC, RJUST.
  8401.  
  8402.  
  8403. GUV2 SA1 UN GET USER NAME
  8404.  
  8405. GUV SUBR ENTRY/EXIT
  8406. SA1 /ADD/VASF GET ASSIGNED FILE POINTER
  8407. RJUST X1,X6,/BTC/VASF,/UPB/VASF
  8408. ZR X6,GUV1 IF NOT ASSIGNED
  8409. RCREC N3,X6 GET ASSIGNED FILE CATALOG
  8410. SA2 /ADD/VASC GET CATALOG NUMBER
  8411. RJUST X2,X2,/BTC/VASC,/UPB/VASC
  8412. SX2 X2-1 GET ADDRESS OF FILE CATALOG IN BUFFER
  8413. SX1 TCEL
  8414. IX2 X2*X1
  8415. SX2 N3BUF+4+X2
  8416. MOVE X1,X2,FCAT SET FILE CATALOG IMAGE
  8417. MOVEBIT N3BUF+3,UN,UNKL*6 SET USER NAME
  8418. MOVEBIT /ADD/FI,FI,FIKL*6 SET FILE ID
  8419. EQ GUV2 RETURN WITH USER NAME
  8420.  
  8421. GUV1 SA6 UN CLEAR USER NAME
  8422. SA1 =17H CLEAR FILE IDENTIFIER
  8423. MOVEBIT A1,FI,FIKL*6
  8424. EQ GUV2 RETURN WITH USER NAME
  8425. GVE SPACE 4,15
  8426. ** GVE - GET VSN ENTRY.
  8427. *
  8428. * ENTRY (VS) = VSN NAME.
  8429. * (X6) = 0 IF NO INTERLOCK.
  8430. * = 1 IF INTERLOCK.
  8431. *
  8432. * EXIT (X4) = 0 IF VSN IN CATALOG.
  8433. * (VCAT - VCAT+3) = VSN ENTRY.
  8434. *
  8435. * USES A - 1, 6.
  8436. * B - 2.
  8437. * X - 1, 6.
  8438. *
  8439. * CALLS CVB.
  8440. *
  8441. * MACROS LISTVSN, MOVE.
  8442.  
  8443.  
  8444. GVE1 SX2 A1 GET VSN ENTRY
  8445. MOVE TSVL,X2,VCAT
  8446. SX4 B0
  8447.  
  8448. GVE SUBR ENTRY/EXIT
  8449. SA6 GVEA SAVE INTERLOCK STATUS
  8450. RJ CVB CHECK IF VSN IN BUFFER
  8451. ZR X4,GVE1 IF VSN IN BUFFER
  8452. SA1 GVEA LIST VSN
  8453. SB2 X1
  8454. LISTVSN VS,VCAT,B2
  8455. EQ GVEX RETURN
  8456.  
  8457. GVEA CON 4 INTERLOCK STATUS
  8458. IFP SPACE 4,15
  8459. ** IFP - INPUT FILE PROCESSOR.
  8460. *
  8461. * ENTRY (IF) = INPUT FILE FET ADDRESS.
  8462. *
  8463. * EXIT (KBUF - KBUF+KBUFL) = CODED LINE FROM INPUT FILE.
  8464. * (X1) = 0 IF NOT EOR/EOF.
  8465. * (X7) = 0 IF END OF LINE FOUND.
  8466. *
  8467. * USES A - 2, 3.
  8468. * X - 0, 2, 3.
  8469. *
  8470. * MACROS READC.
  8471.  
  8472.  
  8473. IFP SUBR ENTRY/EXIT
  8474. SA2 IF
  8475. SA3 OP CHECK INPUT OPTION
  8476. SX3 X3-ZOPT
  8477. ZR X3,IFP1 IF *Z* OPTION
  8478. SA3 X2 CHECK IF NO FILE NAME
  8479. SX1 -B1
  8480. AX3 18
  8481. ZR X3,IFPX IF NO FILE NAME
  8482. IFP1 READC X2,KBUF,KBUFL
  8483. MX0 -12 CHECK IF END OF LINE FOUND
  8484. BX7 -X0*X4
  8485. EQ IFPX RETURN
  8486. IRL SPACE 4,10
  8487. ** IRL - IGNORE REST OF INPUT LINE.
  8488. *
  8489. * EXIT CURRENT INPUT LINE SKIPPED.
  8490. *
  8491. * USES A - 1.
  8492. * X - 1, 4, 6.
  8493. *
  8494. * CALLS ACI.
  8495.  
  8496.  
  8497. IRL SUBR ENTRY/EXIT
  8498. SA1 EL CHECK FOR END OF LINE
  8499. ZR X1,IRLX IF END OF INPUT LINE
  8500. MX1 60 ALLOW ALL CHARACTERS
  8501. SX6 B0 SUPPRESS NO CHARACTERS
  8502. SX4 CSPL SET MAXIMUM NUMBER OF CHARACTERS
  8503. RJ ACI ASSEMBLE CHARACTERS
  8504. EQ IRLX RETURN
  8505. ISB SPACE 4,20
  8506. ** ISB - INPUT STRING BUFFER.
  8507. *
  8508. * ENTRY (IF) = INPUT FET ADDRESS.
  8509. *
  8510. * EXIT (SB) = STRING BUFFER ADDRESS.
  8511. * (SP) = STRING BUFFER CHARACTER POINTER.
  8512. * (SM) = STRING BUFFER LIMIT.
  8513. * (B6) = 0 IF EOR OR EOF.
  8514. * (ET) = -1 IF EOR OR EOF.
  8515. *
  8516. * USES A - 1, 2, 6, 7.
  8517. * B - 2, 6.
  8518. * X - 1, 2, 6, 7.
  8519. *
  8520. * CALLS FOB, IFP, KFI, KIP, TOG, USB.
  8521. *
  8522. * MACROS READS, RJM.
  8523. *
  8524. * NOTES BASED ON SUBROUTINE *ISB* IN *SFS*.
  8525.  
  8526.  
  8527. ISB4 SX6 -B1 SET END OF FILE FLAG
  8528. SA6 ET
  8529. SB6 B0
  8530.  
  8531. ISB SUBR ENTRY/EXIT
  8532. SA1 OP CHECK OPTION
  8533. SX1 X1-KOPT
  8534. NZ X1,ISB1 IF NOT K-DISPLAY
  8535. SA1 IF CHECK INPUT FET ADDRESS
  8536. SX1 X1-I
  8537. NZ X1,ISB1 IF ALTERNATE INPUT FILE
  8538. RJ KIP PROCESS K-DISPLAY INPUT
  8539. SX7 B0
  8540. EQ ISB2 SET STRING BUFFER POINTERS
  8541.  
  8542. ISB1 RJ FOB FLUSH OUTPUT BUFFER
  8543. RJ IFP PROCESS INPUT FILE
  8544. NZ X1,ISB4 IF EOR OR EOF
  8545. ISB2 SA7 ISBA SET END OF LINE FOUND FLAG
  8546. MX0 12 INSURE END OF LINE AFTER 72 CHARACTERS
  8547. SA1 KBUF+7
  8548. BX7 X0*X1
  8549. SA7 A1
  8550. SB2 KBUF
  8551. RJ USB UNPACK STRING BUFFER
  8552. SX6 X6+B1 RESET STRING BUFFER LIMIT
  8553. SA6 SM
  8554. SX7 USBB-1 SET STRING BUFFER CHARACTER POINTER
  8555. SA7 SP
  8556. SX7 X7+B1 SET STRING BUFFER ADDRESS
  8557. SA7 SB
  8558. SA1 X7 CHECK FIRST CHARACTER
  8559. SX1 X1-1R+
  8560. NZ X1,ISB3 IF NOT TOGGLE CHARACTER
  8561. SA1 LV CHECK DIRECTIVE LEVEL
  8562. SA1 X1+ISBB
  8563. ZR X1,ISB3 IF NO TOGGLE PROCESSOR
  8564. RJM X1 JUMP TO PROCESSOR
  8565. ISB3 SB6 B1 FLAG NO EOR/EOF
  8566. SA1 ISBA
  8567. ZR X1,ISBX IF END OF LINE FOUND
  8568. RJ IFP PROCESS INPUT FILE
  8569. SA7 ISBA
  8570. EQ ISB3 FIND END OF LINE
  8571.  
  8572. ISBA BSS 1 END OF LINE FLAG
  8573. ISBB INDTAB 1 TABLE OF TOGGLE PROCESSORS
  8574. INDEX LVFA,CON,0 FAMILY LEVEL
  8575. INDEX LVVS,CON,0 VSN LEVEL
  8576. INDEX LVUS,CON,KFI USER LEVEL
  8577. INDEX LVFI,CON,TOG FILE LEVEL
  8578. INDEX LVAU,CON,0 ALTERNATE USER LEVEL
  8579. IUN SPACE 4,10
  8580. ** IUN - INTERLOCK USER NAME.
  8581. *
  8582. * ENTRY (X1) = USER NAME TO INTERLOCK.
  8583. * (X1) = 0 TO CLEAR INTERLOCK.
  8584. *
  8585. * EXIT USER NAME INTERLOCK SET.
  8586. *
  8587. * USES A - 1, 2, 6.
  8588. * X - 1, 2, 6.
  8589. *
  8590. * MACROS RCREC, WCREC.
  8591.  
  8592.  
  8593. IUN SUBR ENTRY/EXIT
  8594. SA2 LF
  8595. NZ X2,IUNX IF LOCAL FILE MODE
  8596. BX6 X1 SAVE USER NAME
  8597. SA6 IUNA
  8598. RCREC N1,1,REC1,1 CHANGE INTERLOCKED USER NAME
  8599. SA1 IUNA
  8600. SA2 REC1+BWUN
  8601. MX6 -18
  8602. BX6 -X6*X2
  8603. BX6 X6+X1 MERGE USER NAME
  8604. SA6 A2 WRITE INTERLOCK WORD
  8605. WCREC N1,1,REC1,1
  8606. EQ IUNX RETURN
  8607.  
  8608. IUNA BSS 1 INTERLOCKED USER NAME
  8609. KAV SPACE 4,15
  8610. ** KAV - SET ASSIGNED VSNS IN K-DISPLAY.
  8611. *
  8612. * ENTRY (FCAT) = FILE CATALOG IMAGE.
  8613. * (TAVS) = ASSIGNED VSNS IMAGE.
  8614. *
  8615. * EXIT VSNS SET IN K-DISPLAY.
  8616. *
  8617. * USES A - 1, 6.
  8618. * B - 2.
  8619. * X - 1, 6.
  8620. *
  8621. * CALLS FEV.
  8622. *
  8623. * MACROS CLEAR, DISLIS, LISTAB.
  8624.  
  8625.  
  8626. KAV SUBR ENTRY/EXIT
  8627. CLEAR KAVA,60 CLEAR LIST OF VSNS
  8628. RJ FEV FIND EXTERNAL VSN
  8629. SB2 X6 GET LIST OF VSNS
  8630. LISTAB A1,KAVA,B2,,4,36
  8631. SX6 3R DISPLAY LIST OF VSNS
  8632. DISLIS KAVA,/KFILLS1/AVSN,TAVSL/4,36,18,6
  8633. SA1 RC SET LENGTH OF DISPLAY
  8634. SX6 6
  8635. SX1 X1+5
  8636. IX1 X1/X6
  8637. SX6 6
  8638. IX1 X1*X6
  8639. SX6 X1+/KFILLS1/AVSN-/KFILLS1/START
  8640. SA6 KFILLS1 LENGTH OF DISPLAY
  8641. EQ KAVX RETURN
  8642.  
  8643. KAVA BSS TAVSL/4 LIST OF ASSIGNED VSNS
  8644. KFI SPACE 4,15
  8645. ** KFI - SET FILE IDENTIFIERS IN K-DISPLAY.
  8646. *
  8647. * ENTRY (AA) = AUDIT RANDOM ADDRESS.
  8648. *
  8649. * (AA) = NEW AUDIT RANDOM ADDRESS.
  8650. *
  8651. * USES A - 1, 2, 6.
  8652. * B - 2, 3.
  8653. * X - 1, 2, 6.
  8654. *
  8655. * CALLS CDD, SFN.
  8656. *
  8657. * MACROS DISLIS, CLEAR, MOVEBIT, READFET, RJUST, SAFET.
  8658.  
  8659.  
  8660. KFI SUBR ENTRY/EXIT
  8661. CLEAR KFIE,KFIEL CLEAR LIST OF FILE IDENTIFIERS
  8662. SX6 KFIE SET LIST ADDRESS
  8663. SA6 KFIA
  8664. KFI1 SAFET UN,,,FCST,AA SET UP FET FOR AUDIT
  8665. SX6 B0 PRESET NEW AUDIT RANDOM ADDRESS
  8666. ZR X4,KFI2 IF FILES FOUND
  8667. SA6 AA CLEAR RANDOM ADDRESS
  8668. EQ KFI7 LIST FILES
  8669.  
  8670. KFI2 SA1 N3 CHECK IF AUDIT COMPLETE
  8671. RJUST X1,X1,1,1
  8672. NZ X1,KFI3 IF END OF AUDIT
  8673. SA1 N3+TFRR RESET RANDOM ADDRESS
  8674. BX6 X1
  8675. KFI3 SA6 AA
  8676. KFI4 READFET N3,FCAT,TCEL SET CATALOG IMAGE
  8677. NZ X1,KFI6 IF END OF BUFFER
  8678. SA1 /ADD/REELC SET VSN ENTRIES
  8679. RJUST X1,X1,/BTC/REELC,/UPB/REELC
  8680. LX1 2
  8681. READFET X2,TAVS,X1
  8682. READFET X2,KFIC,1 SET CATALOG RANDOM ADDRESS
  8683. SA1 /ADD/SV CHECK IF SYMBOLIC ACCESS
  8684. RJUST X1,X1,/BTC/SV,/UPB/SV
  8685. ZR X1,KFI5 IF NOT SYMBOLIC ACCESS
  8686. SA2 KFIA INCREMENT LIST ADDRESS
  8687. SX6 X2+2
  8688. SA6 A2
  8689. MOVEBIT /ADD/FI,X2,FIKL*6,/UPB/FI SET FILE ID IN LIST
  8690. EQ KFI4 CHECK FOR NEXT FILE
  8691.  
  8692. KFI5 SA2 KFIA SET FIRST VSN IN LIST
  8693. MOVEBIT TAVS+/CAT/FVSN,X2,VSKL*6,/UPB/FVSN
  8694. MOVEBIT (=C*/*),A2,1*6,,B2 SET SLASH IN LIST
  8695. SA1 /ADD/QN GET SEQUENCE NUMBER
  8696. RJUST X1,X1,/BTC/QN,/UPB/QN
  8697. RJ CDD CONVERT TO DECIMAL DISPLAY
  8698. BX1 X4
  8699. RJ SFN SPACE FILL NAME
  8700. SA6 KFID
  8701. SA2 KFIA INCREMENT LIST ADDRESS
  8702. SX6 X2+2
  8703. SA6 A2
  8704. MOVEBIT KFID,X2,10*6,,17 SET *QN* IN LIST
  8705. EQ KFI4 CHECK FOR NEXT FILE
  8706.  
  8707. KFI6 SA1 AA
  8708. ZR X1,KFI7 IF NO MORE FILES
  8709. SA2 KFIA CHECK IF BUFFER FULL
  8710. SX2 X2-KFIE-13*2
  8711. NG X2,KFI1 IF BUFFER NOT FULL
  8712. SA2 KFIA SET DUMMY FILE IDENTIFIERS
  8713. MOVEBIT (=17H),X2,FIKL*6
  8714. MOVEBIT (=17H MORE FILES),A2+B1,FIKL*6
  8715. KFI7 SX6 2R SET IMAGE BETWEEN ENTRIES
  8716. DISLIS KFIE,/KUSELS/FILE,KFIEL,FIKL*6,12,3
  8717. SA1 KFIA SET LENGTH OF DISPLAY
  8718. SX1 X1-KFIE+4
  8719. SX6 6
  8720. IX1 X1/X6
  8721. SX6 6
  8722. IX1 X1*X6
  8723. SX6 X1+/KUSELS/FILE-/KUSELS/START+6
  8724. SA6 KUSELS
  8725. EQ KFIX GET *TFM* ERROR CODE
  8726.  
  8727. KFIA BSS 1 LIST ADDRESS
  8728. KFIC BSS 1 CATALOG RANDOM ADDRESS
  8729. KFID BSS 1 SEQUENCE NUMBER
  8730. KFIE BSS 24*2+6 FILE ID LIST BUFFER
  8731. KFIEL EQU *-KFIE LIST BUFFER LENGTH
  8732. KFM SPACE 4,10
  8733. ** KFM - SET FAMILY LEVEL K-DISPLAY.
  8734. *
  8735. * EXIT FAMILY LEVEL K-DISPLAY SET.
  8736. *
  8737. * USES A - 1, 2, 6.
  8738. * X - 1, 2, 6.
  8739. *
  8740. * CALLS CDD, SFN.
  8741. *
  8742. * MACROS DISLIS, LJUST, MOVEBIT, RJUST.
  8743.  
  8744.  
  8745. KFM SUBR ENTRY/EXIT
  8746. SA1 TFMN GET FAMILY NAME
  8747. LJUST X1,X1,42,59
  8748. RJ SFN SPACE FILL NAME
  8749. SA6 KFMA
  8750. MOVEBIT KFMA,/KFAMLS/FAMNAME,42,,5 SET FAMILY NAME
  8751. MOVEBIT KFMA,NPGC,42 SET NAME IN PAGE HEADER
  8752. MOVEBIT KFMA,/MLS/FAMILY,/MLSC/FAMILY*6,,/MLSU/FAMILY
  8753. SA1 TLFM GET LINKED FAMILY NAME
  8754. LJUST X1,X1,42,59
  8755. RJ SFN SPACE FILL NAME
  8756. SA6 KFMA
  8757. MOVEBIT KFMA,/KFAMLS/LINKFAM,42,,5 SET FAMILY NAME
  8758. MOVEBIT TIDM,/KFAMLS/MID,2*6,,5 SET MACHINE ID
  8759. SA1 TSTT SET ERROR STATUS
  8760. RJUST X1,X6,1,2
  8761. SA1 =6HSET
  8762. NZ X6,KFM1 IF ERROR STATUS SET
  8763. SA1 =6HCLEAR
  8764. KFM1 MOVEBIT A1,/KFAMLS/CATERR,6*6,,5
  8765. SA1 TSTT SET FOREIGN STATUS
  8766. RJUST X1,X6,1,13
  8767. SA1 =3HYES
  8768. NZ X6,KFM2 IF FOREIGN STATUS ON
  8769. SA1 =3HNO
  8770. KFM2 MOVEBIT A1,/KFAMLS/FOREIGN,3*6,,5
  8771. SA1 TSTT SET GLOBAL STATUS
  8772. RJUST X1,X6,1,12
  8773. SA1 =3HYES
  8774. NZ X6,KFM3 IF GLOBAL STATUS ON
  8775. SA1 =3HNO
  8776. KFM3 MOVEBIT A1,/KFAMLS/GLOBAL,3*6,,5
  8777. SA1 TCMB SET MESSAGE BUFFER
  8778. RJ SFN SPACE FILL NAME
  8779. SA6 KFMB
  8780. SA1 TCMB+1 GET SECOND WORD
  8781. RJ SFN SPACE FILL NAME
  8782. SA6 KFMB+1
  8783. SA1 TCMB+2 GET THIRD WORD
  8784. RJ SFN SPACE FILL NAME
  8785. SA6 KFMB+2
  8786. SA1 TCMB+3 GET FOURTH WORD
  8787. RJ SFN SPACE FILL NAME
  8788. SA6 KFMB+3
  8789. MOVEBIT KFMB,/KFAMLS/MB,240,,53 MOVE TO K-DISPLAY
  8790. SA1 TTCS GET CATALOG SIZE
  8791. RJUST X1,X1,24,35
  8792. SA2 =100000000
  8793. IX1 X2+X1
  8794. RJ CDD CONVERT TO DECIMAL DISPLAY
  8795. LJUST X6,X1,48,47 SET CATALOG SIZE IN K-DISPLAY
  8796. MOVEBIT A1,/KFAMLS/SIZE+1,8*6,,23
  8797. SA1 TSMC GET *MT/NT* SCRATCH COUNT
  8798. RJUST X1,X1,24,23
  8799. SA2 =100000000
  8800. IX1 X1+X2
  8801. RJ CDD CONVERT TO DECIMAL DISPLAY
  8802. LJUST X6,X1,48,47 SET *MT/NT* SCRATCH COUNT IN K-DISPLAY
  8803. MOVEBIT A1,/KFAMLS/SCM+2,8*6
  8804. SA1 TSCC GET *CT* SCRATCH COUNT
  8805. RJUST X1,X1,24,23
  8806. SA2 =100000000
  8807. IX1 X1+X2
  8808. RJ CDD CONVERT TO DECIMAL DISPLAY
  8809. LJUST X6,X1,48,47 SET *CT* SCRATCH COUNT IN K-DISPLAY
  8810. MOVEBIT A1,/KFAMLS/SCC+2,8*6
  8811. SA1 TSAC GET *AT* SCRATCH COUNT
  8812. RJUST X1,X1,24,23
  8813. SA2 =100000000
  8814. IX1 X1+X2
  8815. RJ CDD CONVERT TO DECIMAL DISPLAY
  8816. LJUST X6,X1,48,47 SET *AT* SCRATCH COUNT IN K-DISPLAY
  8817. MOVEBIT A1,/KFAMLS/SCA+2,8*6
  8818. SX6 1R DISPLAY LIST OF VALIDATED USER NAMES
  8819. DISLIS TVUN,/KFAMLS/VALIDAT,UNCL,42,,4
  8820. SX6 1R DISPLAY LIST PERMITTED ALTERNATE FAMILIES
  8821. DISLIS TAFM,/KFAMLS/ALTFAM,PAFL,42,,4
  8822. EQ KFMX RETURN
  8823.  
  8824.  
  8825. KFMA BSS 1 SPACE FILLED FAMILY NAME
  8826. KFMB BSS MBML SPACE FILLED MESSAGE BUFFER
  8827. KIP SPACE 4,10
  8828. ** KIP - KEYBOARD INPUT PROCESSOR.
  8829. *
  8830. * ENTRY (KCW) = K-DISPLAY CONTROL WORD.
  8831. *
  8832. * EXIT DATA IN *KBUF*.
  8833. *
  8834. * USES A - 1, 6.
  8835. * X - 1, 6.
  8836. *
  8837. * MACROS CONSOLE, MOVE, RECALL.
  8838. *
  8839. * NOTES BASED ON SUBROUTINE *KIP* IN *SFS*.
  8840.  
  8841.  
  8842. KIP SUBR ENTRY/EXIT
  8843. SX6 B0 CLEAR K-DISPLAY INPUT BUFFER
  8844. SA6 KBUF
  8845. MOVE 3,KIPA,/KMESS/STATUS MOVE MESSAGE TO K-DISPLAY
  8846. CONSOLE KCW
  8847. KIP1 SA1 KBUF CHECK K-DISPLAY INPUT
  8848. NZ X1,KIP2 IF INPUT PRESENT
  8849. RECALL
  8850. EQ KIP1
  8851.  
  8852. KIP2 MOVE 3,KIPB,/KMESS/STATUS MOVE MESSAGE TO K-DISPLAY
  8853. EQ KIPX RETURN
  8854.  
  8855. KIPA DATA 28L WAITING FOR INPUT.
  8856. KIPB DATA 28L PROCESSING DIRECTIVES.
  8857. KST SPACE 4,10
  8858. ** KST - SET VSN STATUS IN K-DISPLAY.
  8859. *
  8860. * ENTRY (VCAT) = VSN CATALOG.
  8861. *
  8862. * EXIT VSN STATUS SET INTO K-DISPLAY.
  8863. *
  8864. * USES A - 1.
  8865. * X - 1.
  8866. *
  8867. * MACROS RJUST.
  8868.  
  8869.  
  8870. KST3 MOVEBIT A1,/KDIS/STATUS,10*6,59,5
  8871.  
  8872. KST SUBR ENTRY/EXIT
  8873. SA1 /ADD/ERRFLAG CHECK ERROR FLAG
  8874. RJUST X1,X1,/BTC/ERRFLAG,/UPB/ERRFLAG
  8875. ZR X1,KST1 IF ERROR FLAG NOT SET
  8876. SA1 =10HERROR
  8877. EQ KST3 SET VSN STATUS IN K-DISPLAY
  8878.  
  8879. KST1 SA1 /ADD/MAINT CHECK MAINTENANCE FLAG
  8880. RJUST X1,X1,/BTC/MAINT,/UPB/MAINT
  8881. ZR X1,KST2 IF MAINTENANCE FLAG NOT SET
  8882. SA1 =10HHOLD
  8883. EQ KST3 SET VSN STATUS IN K-DISPLAY
  8884.  
  8885. KST2 SA1 =10HAVAILABLE
  8886. EQ KST3 SET VSN STATUS IN K-DISPLAY
  8887. KVQ SPACE 4,15
  8888. ** KVQ - SET FIRST VSN AND SEQUENCE NUMBER IN K-DISPLAY.
  8889. *
  8890. * ENTRY (FV) = FIRST VSN.
  8891. * (QN) = SEQUENCE NUMBER.
  8892. *
  8893. * EXIT FIRST VSN AND SEQUENCE SET INTO K-DISPLAY.
  8894. *
  8895. * USES A - 1, 6.
  8896. * X - 0, 1, 6.
  8897. *
  8898. * CALLS CDD, SFN.
  8899.  
  8900.  
  8901. KVQ SUBR ENTRY/EXIT
  8902. SA1 FV GET FIRST VSN
  8903. RJ SFN SPACE FILL NAME
  8904. MX0 36 SET SPACE FILLED FIRST VSN
  8905. BX6 X0*X6
  8906. SA6 /KFILLS1/FVSN
  8907. SA6 /KFILLS2/FVSN
  8908. SA6 /KFILLS3/FVSN
  8909. SA1 QN GET SEQUENCE NUMBER
  8910. SX1 X1+10000
  8911. RJ CDD CONVERT TO DECIMAL DISPLAY
  8912. MX0 -24
  8913. BX6 -X0*X6 SET DISPLAY VALUE
  8914. LX6 36
  8915. SA6 /KFILLS1/QN
  8916. SA6 /KFILLS2/QN
  8917. SA6 /KFILLS3/QN
  8918. EQ KVQX RETURN
  8919. MSV SPACE 4,10
  8920. ** MSV - MOVE SYSTEM TABLE VALUES TO/FROM WORKING BUFFER.
  8921. *
  8922. * ENTRY (X3) = ADDRESS FROM WHICH TO MOVE VALUES.
  8923. * (X4) = ADDRESS TO WHICH TO MOVE VALUES.
  8924. *
  8925. * EXIT TABLE VALUES MOVED.
  8926. *
  8927. * MACROS MOVEBIT.
  8928.  
  8929.  
  8930. MSV SUBR ENTRY/EXIT
  8931. MOVEBIT X3+TMFM,X4+TMFM,7*6 MOVE FAMILY NAME
  8932. MOVEBIT X3+TMFM,X4+TMFM,18,17,17 STATUS FLAGS
  8933. MOVEBIT X3+TMID,X4+TMID,2*6 MACHINE ID
  8934. MOVEBIT X3+TMMB,X4+TMMB,MBML*60 MESSAGE BUFFER
  8935. MOVEBIT X3+TMUN,X4+TMUN,UNCL*60 VALID USERNAME
  8936. MOVEBIT X3+TMLF,X4+TMLF,7*6 LINKED FAMILY NAME
  8937. MOVEBIT X3+TMPA,X4+TMPA,PAFL*60 PERMITTED FAMILIES
  8938. EQ MSVX RETURN
  8939. PFC SPACE 4,15
  8940. ** PFC - PACK DIRECT CELLS INTO FILE CATALOG.
  8941. *
  8942. * ENTRY (CA) = CATALOG RANDOM ADDRESS.
  8943. * (EV) = EXTERNAL VSN.
  8944. * (QN) = SEQUENCE NUMBER.
  8945. * (RC) = REEL COUNT.
  8946. * (RF) = 0 IF FILE NOT RESERVED.
  8947. * (VC) = VSN COUNT.
  8948. *
  8949. * EXIT VALUES SET INTO FILE CATALOG.
  8950. *
  8951. * USES A - 1, 3.
  8952. * X - 0, 1, 3.
  8953. *
  8954. * MACROS MOVEBIT, SRCHTAB.
  8955.  
  8956.  
  8957. PFC SUBR ENTRY/EXIT
  8958. MOVEBIT CA,PCAT+/CAT/NCAT,/BTC/NCAT,/BTC/NCAT-1,/UPB/NCAT
  8959. MOVEBIT QN,/ADD/QN,/BTC/QN,/BTC/QN-1,/UPB/QN
  8960. MOVEBIT RC,/ADD/REELC,/BTC/REELC,/BTC/REELC-1,/UPB/REELC
  8961. MOVEBIT EV,/ADD/EVSN,/BTC/EVSN,,/UPB/EVSN
  8962. MX0 VSKL*6 FIND INTERNAL VSN
  8963. SA3 VC
  8964. LX3 2
  8965. SRCHTAB TAVS,EV,VSKL*6,4
  8966. MOVEBIT A1+/CAT/PRN,/ADD/IVSN,/BTC/IVSN,,/UPB/IVSN
  8967. EQ PFCX RETURN
  8968. PMF SPACE 4,15
  8969. ** PMF - PROCESS MACHINE READABLE LIST FOR FILE.
  8970. *
  8971. * ENTRY (FCAT) = FILE CATALOG IMAGE.
  8972. * (TAVS) = ASSIGNED VSNS IMAGE.
  8973. *
  8974. * EXIT FILE INFORMATION WRITTEN TO MACHINE READABLE FILE.
  8975. *
  8976. * USES A - 1, 2, 6.
  8977. * X - 1, 2, 6.
  8978. *
  8979. * CALLS FEV, VSM.
  8980. *
  8981. * MACROS MOVE, RJUST.
  8982.  
  8983.  
  8984. PMF SUBR ENTRY/EXIT
  8985. SX6 B0 CLEAR VSN COUNT
  8986. SA6 PMFA
  8987. RJ FEV FIND EXTERNAL VSN
  8988. SX6 A1 SAVE RELATIVE ADDRESS IN *TAVS*
  8989. SA6 PMFB
  8990. PMF1 SA2 PMFA CHECK VSN COUNT
  8991. SA1 /ADD/REELC
  8992. RJUST X1,X1,/BTC/REELC,/UPB/REELC
  8993. IX1 X2-X1
  8994. PL X1,PMFX IF END OF VSNS
  8995. SX6 X2+B1 RESET VSN COUNT
  8996. SA6 A2
  8997. LX2 2 SET VSN ENTRY
  8998. SA1 PMFB
  8999. IX2 X1+X2
  9000. MOVE TSVL,X2,VCAT
  9001. RJ VSM PROCESS VSN MACHINE READABLE LIST
  9002. EQ PMF1 CHECK NEXT VSN
  9003.  
  9004. PMFA BSS 1 VSN COUNT
  9005. PMFB BSS 1 RELATIVE ADDRESS IN *TAVS*
  9006. PSF SPACE 4,10
  9007. ** PSF - PROCESS SOURCE LISTING FOR FILE.
  9008. *
  9009. * ENTRY (FCAT) = FILE CATALOG IMAGE.
  9010. * (TAVS) = ASSIGNED VSNS IMAGE.
  9011. * (X6) = 0 IF INCLUDE EXTERNAL VSN.
  9012. * = 1 IF EXCLUDE EXTERNAL VSN.
  9013. *
  9014. * EXIT FILE LEVEL DIRECTIVES WRITTEN TO SOURCE FILE.
  9015. *
  9016. * USES A - 1, 2, 6.
  9017. * X - 1, 2, 6.
  9018. *
  9019. * CALLS FEV, FIS, VSS.
  9020. *
  9021. * MACROS MOVE, RJUST, WRITEC.
  9022.  
  9023.  
  9024. PSF SUBR ENTRY/EXIT
  9025. SA6 PSFA SET INITIAL VSN COUNT
  9026. RJ FEV FIND EXTERNAL VSN
  9027. SX6 A1 SAVE RELATIVE ADDRESS IN *TAVS*
  9028. SA6 PSFB
  9029. PSF1 SA2 PSFA CHECK VSN COUNT
  9030. SA1 /ADD/REELC
  9031. RJUST X1,X1,/BTC/REELC,/UPB/REELC
  9032. IX1 X2-X1
  9033. PL X1,PSF2 IF END OF VSNS
  9034. SX6 X2+B1 RESET VSN COUNT
  9035. SA6 A2
  9036. LX2 2 SET VSN ENTRY
  9037. SA1 PSFB
  9038. IX2 X1+X2
  9039. MOVE TSVL,X2,VCAT
  9040. RJ VSS PROCESS VSN SOURCE LISTING
  9041. EQ PSF1 CHECK FOR NEXT VSN
  9042.  
  9043. PSF2 SA1 UN SET USER NAME IN SOURCE LISTING
  9044. BX6 X1
  9045. SA6 PSFD
  9046. WRITEC S,PSFC WRITE *USER* DIRECTIVE
  9047. RJ FIS PROCESS FILE SOURCE LISTING
  9048. WRITEC S,(=C*DROP*) WRITE LAST DIRECTIVE
  9049. EQ PSFX RETURN
  9050.  
  9051. PSFA BSS 1 VSN COUNT
  9052. PSFB BSS 1 RELATIVE ADDRESS IN *TAVS*
  9053. PSFC DATA 10HUSER = INITIAL DIRECTIVE
  9054. PSFD DATA C* *
  9055. PVS SPACE 4,15
  9056. ** PVS - PAD VSN WITH CHARACTER *0*.
  9057. *
  9058. * ENTRY (X4) = NUMBER OF CHARACTERS IN UNPADDED VSN.
  9059. * (CBUF) = LEFT JUSTIFIED UNPADDED VSN.
  9060. *
  9061. * EXIT (X6) = PADDED VSN. CHARACTER *0* INSERTED BEFORE
  9062. * FIRST NUMERIC CHARACTER UNTIL VSN IS SIX
  9063. * CHARACTERS LONG.
  9064. *
  9065. * USES A - 1, 2.
  9066. * B - 2, 3.
  9067. * X - 0, 1, 2, 3, 4, 7.
  9068.  
  9069.  
  9070. PVS SUBR ENTRY/EXIT
  9071. SX1 6 GET CORRECT NUMBER OF ZEROS
  9072. IX4 X1*X4
  9073. SB2 X4
  9074. SA1 =36R000000
  9075. AX1 B2
  9076. SA2 CBUF GET UNPADDED VSN
  9077. SB3 60
  9078. MX0 -6
  9079. SX6 B0
  9080. PVS1 BX7 X2 SAVE END OF VSN
  9081. LX2 6 CHECK CHARACTER
  9082. BX3 -X0*X2
  9083. ZR X3,PVS2 IF END OF CHARACTERS
  9084. SX4 X3-1R0
  9085. PL X4,PVS2 IF NUMERIC CHARACTER
  9086. LX6 6 BUILD FIRST PART OF VSN
  9087. BX6 X6+X3
  9088. BX2 X0*X2
  9089. SB3 B3-6
  9090. EQ PVS1 CHECK NEXT CHARACTER
  9091.  
  9092. PVS2 SB2 B2-36 ADD ZEROES TO VSN
  9093. AX6 B2
  9094. BX6 X6+X1
  9095. BX6 X6+X7 ADD END OF VSN
  9096. SB3 B3+B2
  9097. LX6 B3
  9098. EQ PVSX RETURN
  9099. RAB SPACE 4,15
  9100. ** RAB - REPLACE ALTERNATE USER ENTRY IN BUFFER.
  9101. *
  9102. * ENTRY (ACAT) = ALTERNATE USER ENTRY IMAGE.
  9103. *
  9104. * EXIT IMAGE SET INTO *UBUF*.
  9105. *
  9106. * USES X - 3.
  9107. *
  9108. * CALLS CAB, RAE.
  9109. *
  9110. * MACROS MOVE, WRITFET.
  9111.  
  9112.  
  9113. RAB2 SX3 A1 REPLACE ALTERNATE USER ENTRY IN BUFFER
  9114. MOVE TAEL,ACAT,X3
  9115.  
  9116. RAB SUBR ENTRY/EXIT
  9117. RJ CAB CHECK FOR ALTERNATE USER ENTRY IN BUFFER
  9118. ZR X4,RAB2 IF ALTERNATE USER ENTRY IN BUFFER
  9119. WRITFET UB,ACAT,TAEL SET ENTRY INTO BUFFER
  9120. ZR X1,RABX IF TRANSFER COMPLETE
  9121. RJ RAE REPLACE ALTERNATE USER ENTRIES
  9122. WRITFET UB,ACAT,TAEL SET ENTRY INTO BUFFER
  9123. EQ RABX RETURN
  9124. RAE SPACE 4,10
  9125. ** RAE - REPLACE ALTERNATE USER ENTRY IN CATALOG FILE.
  9126. *
  9127. * ENTRY (UBUF) = ALTERNATE USER ENTRIES.
  9128. *
  9129. * EXIT ALTERNATE USER ENTRIES REPLACED IN CATALOG.
  9130. *
  9131. * USES A - 1, 2.
  9132. * X - 1, 2.
  9133. *
  9134. * MACROS CALLTFM, RESETP, WRITFET.
  9135.  
  9136.  
  9137. RAE SUBR ENTRY/EXIT
  9138. RESETP N4 RESET FET POINTERS
  9139. SA1 UB+1 GET WORD COUNT OF BUFFER
  9140. SX1 X1
  9141. SA2 A1+B1
  9142. IX1 X2-X1
  9143. ZR X1,RAEX IF NO ENTRIES IN BUFFER
  9144. SA2 CA SET CATALOG RANDOM ADDRESS
  9145. BX6 X2
  9146. SA6 N4+TFRR
  9147. WRITFET N4,UBUF,X1 REPLACE/ADD ADMIT ENTRIES
  9148. CALLTFM X2,RAES
  9149. RESETP UB
  9150. EQ RAEX RETURN
  9151. RAF SPACE 4,15
  9152. ** RAF - RESERVE/AMEND FILE CATALOG ENTRY.
  9153. *
  9154. * ENTRY DIRECT CELLS SET.
  9155. * (FCAT) = FILE CATALOG BUFFER.
  9156. * (PCAT) = PREVIOUS FILE BUFFER.
  9157. * (TAVS) = ASSIGNED VSNS.
  9158. *
  9159. * EXIT FILE CATALOG ENTRY REPLACED IN CATALOG.
  9160. *
  9161. * USES A - 1, 2, 3, 5, 6, 7.
  9162. * X - 0, 1, 2, 3, 4, 5, 6, 7.
  9163. *
  9164. * CALL CRD, PFC, SMA.
  9165. *
  9166. * MACROS CALLTFM, REPVSN, RESETP, RJUST, WRITFET.
  9167.  
  9168.  
  9169. RAF9 SA1 VC REPLACE VSN ENTRIES
  9170. LX1 2
  9171. REPVSN TAVS,X1
  9172. RJ SMA ISSUE *SDAU* ACCOUNT FILE MESSAGE
  9173. SA1 RF
  9174. NZ X1,RAF10 IF PREVIOUSLY RESERVED
  9175. SA1 PA
  9176. ZR X1,RAF10 IF NO PREVIOUS FILE
  9177. RJ PFC PACK DIRECT CELLS INTO FILE CATALOG
  9178. RESETP N3 SET UP FET
  9179. SA1 PA SET PREVIOUS FILE RANDOM ADDRESS
  9180. BX6 X1
  9181. SA6 X2+TFRR
  9182. WRITFET X2,PCAT,TCEL SET PREVIOUS FILE INTO FET BUFFER
  9183. CALLTFM X2,RCES REPLACE PREVIOUS FILE
  9184. RAF10 RJ CRD CHECK RELEASE DATE
  9185.  
  9186. RAF SUBR ENTRY/EXIT
  9187. RJ PFC PACK DIRECT CELLS INTO FILE CATALOG
  9188. SA1 /ADD/TTYP CHECK TAPE DEVICE TYPE
  9189. RJUST X1,X6,/BTC/TTYP,/UPB/TTYP
  9190. ZR X6,RAF1 IF SEVEN TRACK
  9191. SA1 /ADD/CV
  9192. RJUST X1,X6,/BTC/CV,/UPB/CV
  9193. SX6 X6-2
  9194. PL X6,RAF2 IF CONVERSION MODE EQUAL AS OR EB
  9195. SX6 B1
  9196. RAF1 SX6 X6+B1
  9197. SA6 RAFA
  9198. MOVEBIT A6,/ADD/CV,/BTC/CV,/BTC/CV-1,/UPB/CV
  9199. RAF2 SA1 /ADD/LB CHECK LABEL TYPE
  9200. RJUST X1,X6,/BTC/LB,/UPB/LB
  9201. ZR X6,RAF3 IF UNLABELED
  9202. SA2 /ADD/PI
  9203. NZ X2,RAF4 IF PHYSICAL FILE ID EXISTS
  9204. MOVEBIT /ADD/FI,A2,FIKL*6 SET PHYSICAL FILE ID
  9205. EQ RAF4 SET UP FET
  9206.  
  9207. RAF3 SA6 /ADD/PI CLEAR PHYSICAL FILE ID
  9208. MOVEBIT (=0),A6+B1,FIKL*6-10*6
  9209. RAF4 RESETP N3 SET UP FET
  9210. SA1 CA SET FILE CATALOG RANDOM ADDRESS
  9211. BX6 X1
  9212. SA6 X2+TFRR
  9213. SA1 UN SET USER NAME
  9214. BX6 X1
  9215. SA6 X2+TFUN
  9216. WRITFET X2,FCAT,TCEL SET FILE CATALOG INTO FET BUFFER
  9217. SA1 RF CHECK IF FILE IS RESERVED
  9218. SX6 ICES
  9219. ZR X1,RAF5 IF FILE NOT RESERVED
  9220. SX6 RCES
  9221. RAF5 CALLTFM X2,X6 RESERVE/AMEND FILE CATALOG
  9222. SA2 CA
  9223. NZ X2,RAF6 IF FILE PREVIOUSLY RESERVED
  9224. SA1 N3+TFRR SET FILE CATALOG RANDOM ADDRESS
  9225. RJUST X1,X2,24,59
  9226. BX6 X2
  9227. SA6 A2
  9228. RAF6 SA1 TAVS+/CAT/VASF CHECK FIRST FILE RANDOM ADDRESS
  9229. RJUST X1,X1,24,23
  9230. ZR X1,RAF7 IF NO FIRST FILE
  9231. BX2 X1 SET RANDOM ADDRESS FOR VSN ENTRIES
  9232. RAF7 SA3 ST GET VSN STATUS BITS
  9233. SX6 UOVS+TVVS
  9234. BX3 X6*X3
  9235. SX6 B1
  9236. LX6 17-0
  9237. ERRNZ 400000B-RTVS INCORRECT BIT POSITION
  9238. BX3 X6+X3
  9239. SA1 FV GET FIRST VSN
  9240. BX7 X1
  9241. SX4 B0 PRESET VSN NUMBER
  9242. MX0 VSKL*6 GET VSN MASK
  9243. SA1 TAVS GET FIRST ENTRY IN TABLE
  9244. RAF8 ZR X1,RAF9 IF END OF VSNS
  9245. BX6 X0*X1 SET RANDOM INDEX
  9246. BX6 X6+X2
  9247. SA6 A1
  9248. SA1 A1+B1 SET STATUS BITS
  9249. SX6 ASVS+UOVS+TVVS+VIVS
  9250. BX6 -X6*X1
  9251. BX6 X6+X3
  9252. SX4 X4+B1 SET REEL NUMBER
  9253. LX4 18
  9254. BX6 X6+X4
  9255. AX4 18
  9256. SA6 A1
  9257. SA7 A1+B1 SET FIRST VSN
  9258. SA1 A1+3 SET NEXT VSN
  9259. BX6 X0*X1
  9260. SA5 A7+B1
  9261. BX5 -X0*X5
  9262. BX6 X6+X5
  9263. SA6 A7+B1
  9264. EQ RAF8 CHECK NEXT VSN
  9265.  
  9266. RAFA BSS 1 CONVERSION MODE
  9267. RNS SPACE 4,10
  9268. ** RNS - RESET NEEDED STORAGE.
  9269. *
  9270. * ENTRY NONE.
  9271. *
  9272. * EXIT CATALOG BUFFERS, SPECIAL WORKING STORAGE, AND TABLE
  9273. * OF ASSIGNED VSNS RESTORED FROM HOLD BUFFER *HBUF*.
  9274. *
  9275. * USES A - 1, 2, 6.
  9276. * B - 2, 3.
  9277. * X - 1, 2, 6.
  9278.  
  9279.  
  9280. RNS SUBR ENTRY/EXIT
  9281. SA1 HBUF-1 FWA OF HOLD BUFFER-1
  9282. SA2 THBP-1 FWA OF TABLE OF MEMORY PARTITIONS-1
  9283.  
  9284. RNS1 SA2 A2+B1 MEMORY PARTITION TO RESET FROM TABLE
  9285. ZR X2,RNSX IF RESET COMPLETE
  9286. SB2 X2
  9287. SA2 A2+B1 GET WORD COUNT FROM TABLE
  9288. SB3 X2
  9289.  
  9290. RNS2 SA1 A1+B1 HOLD BUFFER WORD TO MOVE
  9291. BX6 X1
  9292. SA6 B2 WORD RESET IN MEMORY
  9293. SB2 B2+B1 INCREMENT MEMORY ADDRESS TO RESET
  9294. SB3 B3-B1 DECREMENT WORD COUNT
  9295. NZ B3,RNS2 IF MORE WORDS TO MOVE
  9296. EQ RNS1 CONTINUE
  9297. RCW SPACE 4,10
  9298. ** RCW - READ CMR WORD.
  9299. *
  9300. * ENTRY (X2) = ADDRESS OF CMR WORD TO READ.
  9301. *
  9302. * EXIT (X1) = CMR WORD.
  9303. *
  9304. * USES A - 1.
  9305. * X - 1, 2, 6.
  9306. *
  9307. * MACROS SYSTEM.
  9308.  
  9309.  
  9310. RCW SUBR ENTRY/EXIT
  9311. MX6 1 SET ABSOLUTE READ
  9312. SA6 RCWB
  9313. LX2 18 SET READ ADDRESS
  9314. SX1 A6 SET BUFFER ADDRESS
  9315. LX6 36-59 SET WORD COUNT
  9316. BX6 X6+X2
  9317. BX6 X6+X1
  9318. SA6 RCWA WRITE STATUS WORD
  9319. SYSTEM RSB,R,RCWA READ CMR WORD
  9320. SA1 RCWB
  9321. EQ RCWX RETURN
  9322.  
  9323. RCWA CON 0 *RSB* STATUS WORD
  9324. RCWB CON 0 *RSB* BUFFER
  9325. RVB SPACE 4,15
  9326. ** RVB - REPLACE VSN ENTRY IN BUFFER.
  9327. *
  9328. * ENTRY (VCAT) = VSN ENTRY IMAGE.
  9329. *
  9330. * EXIT IMAGE SET INTO *VBUF*.
  9331. *
  9332. * USES X - 3.
  9333. *
  9334. * CALLS CVB, RVE.
  9335. *
  9336. * MACROS MOVE, WRITFET.
  9337.  
  9338.  
  9339. RVB2 SX3 A1 REPLACE VSN ENTRY IN BUFFER
  9340. MOVE TSVL,VCAT,X3
  9341.  
  9342. RVB SUBR ENTRY/EXIT
  9343. RJ CVB CHECK FOR VSN ENTRY IN BUFFER
  9344. ZR X4,RVB2 IF VSN ENTRY IN BUFFER
  9345. WRITFET VB,VCAT,4 SET ENTRY INTO BUFFER
  9346. ZR X1,RVBX IF TRANSFER COMPLETE
  9347. RJ RVE REPLACE VSN ENTRIES
  9348. WRITFET VB,VCAT,4 SET ENTRY INTO BUFFER
  9349. EQ RVBX RETURN
  9350. RVE SPACE 4,10
  9351. ** RVE - REPLACE VSN ENTRY IN CATALOG FILE.
  9352. *
  9353. * ENTRY (VBUF) = VSN ENTRIES.
  9354. *
  9355. * EXIT VSN ENTRIES REPLACED IN CATALOG.
  9356. *
  9357. * USES A - 1, 2.
  9358. * X - 1, 2.
  9359. *
  9360. * MACROS REPVSN, RESETP.
  9361.  
  9362.  
  9363. RVE SUBR ENTRY/EXIT
  9364. SA1 VB+1 GET WORD COUNT OF BUFFER
  9365. SX1 X1
  9366. SA2 A1+B1
  9367. IX1 X2-X1
  9368. ZR X1,RVEX IF NO ENTRIES IN BUFFER
  9369. REPVSN VBUF,X1 REPLACE/ADD VSN ENTRIES
  9370. RESETP VB
  9371. EQ RVEX RETURN
  9372. SCI SPACE 4,25
  9373. ** SCI - SCAN FOR CODE IDENTIFIER.
  9374. *
  9375. * ENTRY (SP) = ADDRESS OF LAST CHARACTER PROCESSED.
  9376. * (SM) = STRING BUFFER LIMIT.
  9377. * (X6) = TABLE ADDRESS OF TABLE INFORMATION.
  9378. * (NL) = CURRENT PROCESSING LEVEL.
  9379. *
  9380. * EXIT (X1) = 0 IF ERROR.
  9381. * (B6) = 0 IF END OF FILE.
  9382. * (B7) = CONTROL BLOCK OR PROCESSOR ADDRESS.
  9383. * (AP) = 1 IF DIRECTIVE FOUND AT A HIGHER LEVEL.
  9384. * (NL) = LEVEL ON WHICH DIRECTIVE WAS FOUND.
  9385. * (DF) = DIRECTIVE IMAGE.
  9386. * (DF+1) = PROCESSOR/CONTROL TABLE ADDRESS.
  9387. * (DF+2) = DIRECTIVE SEPARATOR.
  9388. * (EL) = 0 IF END OF LINE.
  9389. * (ET) = -1 IF EOF.
  9390. *
  9391. * USES A - 1, 2, 6, 7.
  9392. * B - 4.
  9393. * X - 0, 2, 4, 6, 7.
  9394. *
  9395. * CALLS ASC.
  9396. *
  9397. * MACROS LJUST, SRCHTAB.
  9398. *
  9399. * NOTES BASED ON SUBROUTINE *SCI* IN *SFS*.
  9400.  
  9401.  
  9402. SCI5 SX1 B0 FLAG ERROR
  9403.  
  9404. SCI SUBR ENTRY/EXIT
  9405. SA6 SCIA SAVE DIRECTIVE TABLE ADDRESS
  9406. SCI1 SA2 ="BL" SET CHARACTERS TO SUPPRESS
  9407. BX6 X2
  9408. SA1 ="NC" SET CHARACTERS TO ALLOW
  9409. RJ ASC ASSEMBLE CHARACTERS
  9410. SX7 B5 GET SEPARATOR
  9411. SA7 DF+2
  9412. SA6 DF SAVE DIRECTIVE IMAGE
  9413. SB4 B5-1R= SET SEPARATOR
  9414. SX1 B1 FLAG NO ERROR
  9415. ZR B6,SCIX IF EOF
  9416. SX2 X4-8
  9417. PL X2,SCI5 IF TOO MANY CHARACTERS
  9418. ZR X4,SCI1 IF NO CHARACTERS
  9419. SX1 6 SET (X0) = CHARACTER MASK
  9420. IX4 X4*X1
  9421. LJUST X1,X1,X4,59
  9422. MX4 18 FORCE AT LEAST THREE CHARACTERS IN MASK
  9423. BX0 X0+X4
  9424. SA1 SCIA GET DIRECTIVE TABLE ADDRESS
  9425. BX2 X6 SET DIRECTIVE TO SEARCH FOR
  9426. SCI2 SRCHTAB X1,A2,-1 SEARCH FOR DIRECTIVE
  9427. ZR X4,SCI3 IF DIRECTIVE FOUND
  9428. SA1 NL CHECK NEXT LEVEL
  9429. SX6 X1-1
  9430. NG X6,SCI5 IF INCORRECT DIRECTIVE
  9431. SA6 NL STORE LEVEL BEING PROCESSED
  9432. SX7 B1
  9433. SA7 AP SET ALTERNATE PROCESSING FLAG
  9434. SA1 TDTA+X6 GET FWA OF DIRECTIVE TABLE
  9435. EQ SCI2 PROCESS NEXT LEVEL
  9436.  
  9437. SCI3 BX6 X1 SAVE DIRECTIVE TABLE IMAGE
  9438. SA6 SCIC
  9439. BX6 X1-X2
  9440. AX6 18
  9441. ZR X6,SCI4 IF EXACT MATCH
  9442. SRCHTAB A1+B3,A2,B2,B3,B4 CHECK FOR DIRECTIVE CONFLICT
  9443. ZR X4,SCI5 IF DIRECTIVE CONFLICT
  9444. SCI4 MX0 42 SAVE DIRECTIVE IMAGE
  9445. SA1 SCIC
  9446. BX6 X0*X1
  9447. SA6 DF
  9448. BX6 -X0*X1 SAVE PROCESSOR/CONTROL TABLE ADDRESS
  9449. SA6 A6+B1
  9450. SB7 X6
  9451. SB6 B1 FLAG NOT END OF FILE
  9452. EQ SCIX RETURN
  9453.  
  9454. SCIA BSS 1 ADDRESS OF DIRECTIVE TABLE
  9455. SCIB BSS 1 ALLOWED CHARACTERS BIT STRING
  9456. SCIC BSS 1 DIRECTIVE TABLE IMAGE
  9457. SCS SPACE 4,15
  9458. ** SCS - SPECIAL CHARACTER SOURCE ENTRY PROCESSOR.
  9459. *
  9460. * ENTRY (X1) = FIRST WORD OF DIRECTIVE TABLE.
  9461. *
  9462. * EXIT DIRECTIVE WRITTEN TO SOURCE FILE.
  9463. * (SCSB) = IMAGE OF LINE WRITTEN TO SOURCE FILE.
  9464. *
  9465. * USES A - 1, 6.
  9466. * B - 2, 3, 5.
  9467. * X - 0, 1, 2, 3, 6.
  9468. *
  9469. * CALLS CXS.
  9470. *
  9471. * MACROS MOVEBIT, WRITEC.
  9472.  
  9473.  
  9474. SCS SUBR ENTRY/EXIT
  9475. RJ CXS CONVERT CATALOG ENTRY TO SOURCE
  9476. SB2 B0 UNPACK DATA FIELD
  9477. SB3 B0
  9478. MX0 -6
  9479. SCS1 SA1 B2+CBUF+1 GET WORD OF CHARACTERS
  9480. SB5 9
  9481. SCS2 LX1 6 GET CHARACTER
  9482. BX6 -X0*X1
  9483. SA6 B3+SCSC
  9484. SB3 B3+B1
  9485. SB5 B5-B1
  9486. PL B5,SCS2 IF MORE CHARACTERS IN WORD
  9487. SB2 B2+B1
  9488. LE B2,B1,SCS1 IF MORE WORDS
  9489. SX3 B1 FIND SPECIAL CHARACTERS IN STRING BUFFER
  9490. LX3 1R -45B ASSUME SPACE
  9491. SB2 19
  9492. SCS3 NG B2,SCS4 IF ALL CHARACTERS CHECKED
  9493. SA1 B2+SCSC
  9494. SB2 B2-B1
  9495. SB3 X1-45B
  9496. NG B3,SCS3 IF NOT SPECIAL CHARACTER
  9497. SX6 B1 FLAG SPECIAL CHARACTER
  9498. LX6 B3
  9499. BX3 X3+X6
  9500. EQ SCS3 CHECK NEXT CHARACTER
  9501.  
  9502. SCS4 SX6 100B FIND TWO CHARACTERS NOT IN STRING
  9503. LX3 59-77B+45B-1
  9504. SB2 B0
  9505. SCS5 GT B2,B1,SCS7 IF TWO CHARACTERS FOUND
  9506. SCS6 LX3 1 CHECK CHARACTER
  9507. SX6 X6-1
  9508. NG X3,SCS6 IF CHARACTER IN STRING
  9509. SA6 B2+SCSA SAVE UNUSED CHARACTER
  9510. SB2 B2+B1
  9511. EQ SCS5 CHECK NUMBER OF CHARACTERS
  9512.  
  9513. SCS7 SB5 B0 CHANGE COLON CHARACTERS IN STRING
  9514. SA2 /SCS/FIELD
  9515. SB2 /SCSU/FIELD
  9516. SCS8 SX1 B5-20
  9517. PL X1,SCS10 IF ALL CHARACTERS CHECKED
  9518. SA1 B5+SCSC
  9519. NZ X1,SCS9 IF NOT COLON
  9520. SA1 SCSA+1 GET COLON CHARACTER
  9521. SCS9 MOVEBIT A1,A2,6,5,B2
  9522. SB5 B5+B1
  9523. EQ SCS8 CHECK NEXT CHARACTER
  9524.  
  9525. SCS10 MOVEBIT CBUF,/SCS/DIRECT,,,/SCSU/DIRECT SET DIRECTIVE
  9526. MOVEBIT SCSA+1,/SCS/COLON,6,5,/SCSU/COLON SET COLON
  9527. MOVEBIT SCSA+0,/SCS/SEP1,6,5,/SCSU/SEP1 SET SEPARATOR
  9528. MOVEBIT SCSA+0,/SCS/SEP2,6,5,/SCSU/SEP2
  9529. MOVEBIT SCSA+0,/SCS/SEP3,6,5,/SCSU/SEP3
  9530. WRITEC S,SCSB WRITE SOURCE ENTRY
  9531. EQ SCSX RETURN
  9532.  
  9533. SCSA BSS 1 SEPARATOR CHARACTER
  9534. BSS 1 COLON CHARACTER
  9535.  
  9536. SCSB BSS 0 SOURCE FILE ENTRY
  9537. LISTER SCS,6,COLON=
  9538. COLON LISTER ,1
  9539. LISTER ,9,(,SEPARAT=)
  9540. SEP1 LISTER ,1
  9541. LISTER ,1,(,)
  9542. DIRECT LISTER ,10,( =)
  9543. FIELD LISTER ,20
  9544. SEP2 LISTER ,1
  9545. LISTER ,8,(SEPARAT=)
  9546. SEP3 LISTER ,1
  9547. LISTER ,6,COLON=,E,CAPL
  9548.  
  9549. SCSC BSS 20 UNPACKED DATA FIELD
  9550. SMA SPACE 4,15
  9551. ** SMA - ISSUE *SDAU* ACCOUNT FILE MESSAGE.
  9552. *
  9553. * ENTRY (AV) = NEW ASSIGNED VSN TABLE ADDRESS.
  9554. * = 0 IF NO NEW VSNS.
  9555. * TABLE TERMINATED BY A ZERO WORD.
  9556. *
  9557. * EXIT MESSAGE ISSUED TO ACCOUNT FILE.
  9558. *
  9559. * USES A - 1, 6.
  9560. * X - 1, 6.
  9561. *
  9562. * CALLS COD, SFN.
  9563. *
  9564. * MACROS MOVEBIT, MESSAGE.
  9565.  
  9566.  
  9567. SMA SUBR ENTRY/EXIT
  9568. SA1 LF
  9569. NZ X1,SMAX IF LOCAL FILE MODE
  9570. SA1 AV
  9571. ZR X1,SMAX IF NO NEW VSNS
  9572. SX6 X1 SAVE TABLE ADDRESS
  9573. SA6 SMAA
  9574. SA1 FM GET FAMILY NAME
  9575. RJ SFN SPACE FILL NAME
  9576. SA6 SMAB SET FAMILY NAME
  9577. MOVEBIT SMAB,/SMA/FAMILY,42,,/SMAU/FAMILY
  9578. SA1 UN GET USER NAME
  9579. RJ SFN SPACE FILL NAME
  9580. SA6 SMAB SET USER NAME
  9581. MOVEBIT SMAB,/SMA/USER,UNKL*6,,/SMAU/USER
  9582. SA1 SMAA SET FIRST VSN
  9583. MOVEBIT X1+/CAT/FVSN,/SMA/FVSN,VSKL*6,/UPB/FVSN,/SMAU/FVSN
  9584. SA1 QN GET SEQUENCE NUMBER
  9585. SX6 100000B
  9586. IX1 X6+X1
  9587. RJ COD CONVERT TO OCTAL DISPLAY
  9588. SA6 SMAD SET SEQUENCE NUMBER IN MESSAGE
  9589. MOVEBIT A6,/SMA/SEQNO,5*6,29,/SMAU/SEQNO
  9590. SMA1 SA1 SMAA INCREMENT TABLE ADDRESS
  9591. SX6 X1+4
  9592. SA6 A1
  9593. SA1 X1+/CAT/VSN
  9594. ZR X1,SMAX IF END OF TABLE
  9595. MOVEBIT A1,/SMA/VSN,VSKL*6,/UPB/VSN,/SMAU/VSN SET VSN
  9596. IFNE TMSG,0,1
  9597. MESSAGE SMAC,TMSG/1S12,R ISSUE DAYFILE MESSAGE
  9598. EQ SMA1 CHECK NEXT VSN
  9599.  
  9600. SMAA BSS 1 NEW ASSIGNED VSN TABLE ADDRESS
  9601. SMAB BSS 1 SPACE FILLED NAME
  9602. SMAC BSS 0 ACCOUNT FILE MESSAGE
  9603. LISTER SMA,6,(SDAU, )
  9604. FAMILY LISTER ,7 FAMILY NAME
  9605. LISTER ,1,(/)
  9606. USER LISTER ,7 USER NAME
  9607. LISTER ,1,(/)
  9608. SEQNO LISTER ,5 SEQUENCE NUMBER
  9609. LISTER ,1,(/)
  9610. FVSN LISTER ,6 FIRST VSN
  9611. LISTER ,2,(, )
  9612. VSN LISTER ,6 VSN
  9613. LISTER ,1,(.),E
  9614. SMAD BSS 1 SEQUENCE NUMBER
  9615. SMB SPACE 4,15
  9616. ** SMB - ISSUE *SDCR* CONDITIONAL RELEASE ACCOUNT FILE MESSAGE.
  9617. *
  9618. * ENTRY (X1) = USER NAME OF FILE RELEASED.
  9619. * (X2) = FIRST VSN OF FILE RELEASED.
  9620. * (X3) = UNCONDITIONAL RELEASE DATE.
  9621. *
  9622. * EXIT MESSAGE ISSUED TO ACCOUNT FILE.
  9623. *
  9624. * USES A - 1, 6.
  9625. * X - 1, 6.
  9626. *
  9627. * CALLS SFN.
  9628. *
  9629. * MACROS EDATE, MESSAGE, MOVEBIT.
  9630.  
  9631. SMB SUBR ENTRY/EXIT
  9632. BX6 X1 SAVE USERNAME
  9633. SA6 SMBA
  9634. BX6 X2 SAVE VSN
  9635. SA6 SMBB
  9636. BX6 X3 SAVE RELEASE DATE
  9637. SA6 SMBC
  9638. SA1 LF
  9639. NZ X1,SMBX IF LOCAL FILE MODE
  9640. SA1 FM SET FAMILY
  9641. RJ SFN SPACE FILL NAME
  9642. SA6 SMBD
  9643. MOVEBIT SMBD,/SMB/FAMILY,42,,/SMBU/FAMILY
  9644. SA1 SMBA SET USERNAME
  9645. RJ SFN SPACE FILL NAME
  9646. SA6 SMBD
  9647. MOVEBIT SMBD,/SMB/USER,42,,/SMBU/USER
  9648. MOVEBIT SMBB,/SMB/FVSN,36,,/SMBU/FVSN
  9649. SA1 SMBC SET RELEASE DATE
  9650. NZ X1,SMB1 IF RELEASE DATE SET
  9651. SA1 =10H.
  9652. BX6 X1
  9653. EQ SMB2 ISSUE MESSAGE
  9654.  
  9655. SMB1 EDATE X1
  9656. SMB2 MX0 18 REMOVE SLASHES FROM DATE
  9657. BX1 X0*X6
  9658. LX6 6
  9659. BX6 -X0*X6
  9660. BX1 X1+X6
  9661. MX0 30
  9662. BX1 X0*X1
  9663. LX6 6
  9664. BX6 -X0*X6
  9665. BX1 X1+X6
  9666. RJ SFN SPACE FILL NAME
  9667. SA6 SMBD
  9668. MOVEBIT SMBD,/SMB/URDATE,60,,/SMBU/URDATE
  9669. IFNE TMSG,0,1
  9670. MESSAGE SMBE,TMSG/1S12,R ISSUE DAYFILE MESSAGE
  9671. EQ SMBX RETURN
  9672.  
  9673. SMBA BSS 1 USERNAME
  9674. SMBB BSS 1 FIRST VSN
  9675. SMBC BSS 1 PACKED RELEASE DATE
  9676. SMBD BSS 1 SPACED FILLED NAME
  9677. SMBE BSS 0 ACCOUNT FILE MESSAGE
  9678. LISTER SMB,6,(SDCR, )
  9679. FAMILY LISTER ,7
  9680. LISTER ,1,(/)
  9681. USER LISTER ,7
  9682. LISTER ,1,(/)
  9683. LISTER ,5,(00001)
  9684. LISTER ,1,(/)
  9685. FVSN LISTER ,6
  9686. LISTER ,2,(, )
  9687. URDATE LISTER ,10,,E
  9688. SMC SPACE 4,15
  9689. ** SMC - ISSUE *SDAD* OR *SDRV* ACCOUNT FILE MESSAGE.
  9690. *
  9691. * ENTRY (B2) = 0 IF *SDAD*.
  9692. * .NE. 0 IF *SDRV*.
  9693. * (VCAT) = REVISED/ADDED VSN ENTRY.
  9694. *
  9695. * EXIT MESSAGE ISSUED TO ACCOUNT FILE.
  9696. *
  9697. * USES A - 1, 6.
  9698. * X - 1, 6.
  9699. *
  9700. * CALLS COD, SFN.
  9701. *
  9702. * MACROS MESSAGE, MOVEBIT, RJUST.
  9703.  
  9704.  
  9705. SMC SUBR ENTRY/EXIT
  9706. SA1 LF
  9707. NZ X1,SMCX IF LOCAL FILE MODE
  9708. SA1 =4HSDAD SET MESSAGE TYPE
  9709. ZR B2,SMC1 IF *SDAD*
  9710. SA1 =4HSDRV
  9711. SMC1 MOVEBIT A1,/SMC/TYPE,/SMCC/TYPE*6,,/SMCU/TYPE
  9712. SA1 FM GET FAMILY NAME
  9713. RJ SFN SPACE FILE NAME
  9714. SA6 SMCA SET FAMILY NAME
  9715. MOVEBIT SMCA,/SMC/FAMILY,42,,/SMCU/FAMILY
  9716. MOVEBIT /ADD/VSN,/SMC/VSN,VSKL*6,,/SMCU/VSN SET VSN
  9717. MOVEBIT /ADD/PRN,/SMC/PRN,VSKL*6,,/SMCU/PRN SET PRN
  9718. SA1 VCAT+1 GET STATUS BITS
  9719. RJUST X1,X1,18,17
  9720. SX6 B1
  9721. LX6 18-0
  9722. BX1 X6+X1
  9723. RJ COD CONVERT TO OCTAL DISPLAY CODE
  9724. SA6 SMCA SET STATUS BITS
  9725. MOVEBIT SMCA,/SMC/STATUS,36,35,/SMCU/STATUS
  9726. IFNE TMSG,0,1
  9727. MESSAGE SMCB,TMSG/1S12,R ISSUE DAYFILE MESSAGE
  9728. EQ SMCX RETURN
  9729.  
  9730. SMCA BSS 1 SPACE FILLED NAME
  9731. SMCB BSS 0 ACCOUNT FILE MESSAGE
  9732. TYPE LISTER SMC,4,SDAD MESSAGE TYPE
  9733. LISTER ,2,(, )
  9734. FAMILY LISTER ,7 FAMILY NAME
  9735. LISTER ,2,(, )
  9736. VSN LISTER ,6 VSN
  9737. LISTER ,2,(, )
  9738. PRN LISTER ,6 PRN
  9739. LISTER ,2,(, )
  9740. STATUS LISTER ,6,000000 STATUS BITS
  9741. LISTER ,1,(.),E
  9742. SMD SPACE 4,15
  9743. ** SMD - ISSUE *SDRM* ACCOUNT FILE MESSAGE.
  9744. *
  9745. * ENTRY (B6) = ADDRESS OF VSN ENTRY BUFFER.
  9746. * (B7) = BUFFER LENGTH.
  9747. *
  9748. * EXIT MESSAGE ISSUED TO ACCOUNT FILE.
  9749. *
  9750. * USES A - 1, 2, 6.
  9751. * X - 1, 2, 6.
  9752. *
  9753. * CALLS SFN.
  9754. *
  9755. * MACROS MESSAGE, MOVEBIT.
  9756.  
  9757.  
  9758. SMD SUBR ENTRY/EXIT
  9759. SA1 LF
  9760. NZ X1,SMDX IF LOCAL FILE MODE
  9761. SX6 B6 SAVE BUFFER ADDRESS
  9762. SA6 SMDA
  9763. SX6 B7 SAVE BUFFER LENGTH
  9764. SA6 SMDB
  9765. SX6 B0 PRESET RELATIVE ADDRESS IN BUFFER
  9766. SA6 SMDC
  9767. SA1 FM GET FAMILY NAME
  9768. RJ SFN SPACE FILL NAME
  9769. SA6 SMDD SET FAMILY NAME
  9770. MOVEBIT SMDD,/SMD/FAMILY,42,,/SMDU/FAMILY
  9771. SMD1 SA1 SMDB CHECK IF END OF TABLE
  9772. SA2 SMDC
  9773. IX1 X2-X1
  9774. PL X1,SMDX IF END OF TABLE
  9775. SX6 X2+B1 INCREMENT RELATIVE ADDRESS
  9776. SA6 A2
  9777. SA1 SMDA GET ADDRESS OF VSN
  9778. IX1 X1+X2
  9779. MOVEBIT X1,/SMD/VSN,VSKL*6,/UPB/VSN,/SMDU/VSN
  9780. IFNE TMSG,0,1
  9781. MESSAGE SMDE,TMSG/1S12,R ISSUE DAYFILE MESSAGE
  9782. EQ SMD1 CHECK NEXT VSN
  9783.  
  9784. SMDA BSS 1 VSN BUFFER ADDRESS
  9785. SMDB BSS 1 VSN BUFFER LENGTH
  9786. SMDC BSS 1 RELATIVE ADDRESS IN VSN BUFFER
  9787. SMDD BSS 1 SPACE FILLED NAME
  9788. SMDE BSS 0 ACCOUNT FILE MESSAGE
  9789. LISTER SMD,6,(SDRM, )
  9790. FAMILY LISTER ,7 FAMILY NAME
  9791. LISTER ,2,(, )
  9792. VSN LISTER ,6 VSN
  9793. LISTER ,1,(.),E
  9794. SMF SPACE 4,15
  9795. ** SMF - ISSUE *SDAM* ACCOUNT FILE MESSAGE.
  9796. *
  9797. * ENTRY (FV) = FIRST VSN OF FILE AMENDED.
  9798. * (ST) = VSN STATUS BITS OF FILE AMENDED.
  9799. * (UN) = USER NAME OF FILE AMENDED.
  9800. *
  9801. * EXIT ACCOUNT FILE MESSAGE ISSUED.
  9802. *
  9803. * USES A - 1, 6.
  9804. * X - 1, 6.
  9805. *
  9806. * CALLS COD, SFN.
  9807. *
  9808. * MACROS MOVEBIT, MESSAGE.
  9809.  
  9810.  
  9811. SMF SUBR ENTRY/EXIT
  9812. SA1 LF
  9813. NZ X1,SMFX IF LOCAL FILE MODE
  9814. SA1 FM GET FAMILY NAME
  9815. RJ SFN SPACE FILL NAME
  9816. SA6 SMFA SET FAMILY NAME
  9817. MOVEBIT SMFA,/SMF/FAMILY,42,,/SMFU/FAMILY
  9818. SA1 UN GET USER NAME
  9819. RJ SFN SPACE FILL NAME
  9820. SA6 SMFA SET USER NAME
  9821. MOVEBIT SMFA,/SMF/USER,UNKL*6,,/SMFU/USER
  9822. MOVEBIT FV,/SMF/FVSN,VSKL*6,,/SMFU/FVSN SET FIRST VSN
  9823. SA1 ST GET STATUS BITS
  9824. SX6 B1
  9825. LX6 18-0
  9826. BX1 X1+X6
  9827. RJ COD CONVERT TO OCTAL DISPLAY
  9828. SA6 SMFA SET STATUS BITS
  9829. MOVEBIT SMFA,/SMF/STATUS,36,35,/SMFU/STATUS
  9830. IFNE TMSG,0,1
  9831. MESSAGE SMFB,TMSG/1S12,R ISSUE DAYFILE MESSAGE
  9832. EQ SMFX RETURN
  9833.  
  9834. SMFA BSS 1 SPACE FILLED NAME
  9835. SMFB BSS 0 ACCOUNT FILE MESSAGE
  9836. LISTER SMF,6,(SDAM, )
  9837. FAMILY LISTER ,7 FAMILY NAME
  9838. LISTER ,2,(, )
  9839. USER LISTER ,7 USER NAME
  9840. LISTER ,2,(, )
  9841. FVSN LISTER ,6 FIRST VSN
  9842. LISTER ,2,(, )
  9843. STATUS LISTER ,6,000000 VSN STATUS BITS
  9844. LISTER ,1,(.),E
  9845. SNS SPACE 4,10
  9846. ** SNS - SAVE NEEDED STORAGE.
  9847. *
  9848. * ENTRY NONE.
  9849. *
  9850. * EXIT CATALOG BUFFERS, SPECIAL WORKING STORAGE, AND TABLE
  9851. * OF ASSIGNED VSNS SAVED IN HOLD BUFFER *HBUF*.
  9852. *
  9853. * USES A - 1, 2, 6.
  9854. * B - 2, 3.
  9855. * X - 1, 2, 6.
  9856.  
  9857.  
  9858. SNS SUBR ENTRY/EXIT
  9859. SB2 HBUF FWA OF STORAGE BUFFER
  9860. SA2 THBP-1 FWA OF TABLE OF MEMORY PARTITIONS-1
  9861.  
  9862. SNS1 SA2 A2+B1 MEMORY PARTITION TO SAVE FROM TABLE
  9863. ZR X2,SNSX IF ALL MEMORY SAVED
  9864. SA1 X2-1
  9865. SA2 A2+B1 WORD COUNT FROM TABLE
  9866. SB3 X2
  9867.  
  9868. SNS2 SA1 A1+B1 GET WORD TO SAVE
  9869. BX6 X1
  9870. SA6 B2 WORD SAVED IN BUFFER
  9871. SB2 B2+B1 INCREMENT BUFFER ADDRESS
  9872. SB3 B3-B1 DECREMENT WORD COUNT
  9873. NZ B3,SNS2 IF MORE WORDS TO SAVE
  9874. EQ SNS1 CONTINUE
  9875. SUI SPACE 4,10
  9876. ** SUI - SET UTILITY INTERLOCK.
  9877. *
  9878. * EXIT UTILITY INTERLOCK SET IN TAPE CATALOG.
  9879. *
  9880. * USES A - 1.
  9881. * X - 1.
  9882. *
  9883. * MACROS CALLTFM, RESETP.
  9884. *
  9885. * EXIT UTILITY INTERLOCK SET ON TAPE CATALOG FILE.
  9886. *
  9887. * USES A - 1.
  9888. * X - 1.
  9889. *
  9890. * MACROS CALLTFM, RESETP.
  9891.  
  9892.  
  9893. SUI SUBR ENTRY/EXIT
  9894. SA1 LF
  9895. NZ X1,SUIX IF LOCAL FILE MODE
  9896. RESETP N1 SET UTILITY INTERLOCK
  9897. CALLTFM X2,SUAS
  9898. EQ SUIX RETURN
  9899. TOG SPACE 4,10
  9900. ** TOG - TOGGLE FILE LEVEL LEFT SCREEN DISPLAY.
  9901. *
  9902. * ENTRY (TG) = 0 IF *HELP* DISPLAY ON LEFT SCREEN.
  9903. * = PAGE NUMBER IF FILE LEVEL DISPLAY.
  9904. *
  9905. * EXIT (TG) TOGGLED IF FILE LEVEL.
  9906. * LEFT SCREEN TOGGLED IF FILE LEVEL.
  9907. *
  9908. * USES A - 1, 6.
  9909. * X - 1, 2, 6.
  9910.  
  9911.  
  9912. TOG SUBR ENTRY/EXIT
  9913. SA1 TG
  9914. ZR X1,TOGX IF *HELP* DISPLAY
  9915. SX6 X1+B1 SET NEXT PAGE
  9916. SX2 X6-TOGAL
  9917. NG X2,TOG1 IF NOT BEYOND LAST PAGE
  9918. SX1 B0 SET FIRST PAGE
  9919. SX6 B1
  9920. TOG1 SA6 TG RESET PAGE
  9921. SA1 TOGA+X1 RESET DISPLAY ADDRESS
  9922. BX6 X1
  9923. SA6 /KLEFT/NEXT
  9924. EQ TOGX RETURN
  9925.  
  9926. TOGA BSS 0
  9927. LOC 1
  9928. KNEXT KFILLS1,NOLAB
  9929. KNEXT KFILLS2,NOLAB
  9930. KNEXT KFILLS3,NOLAB
  9931. TOGAL EQU *
  9932. LOC *O
  9933. UDT SPACE 4,15
  9934. ** UDT - UNPACK DATE/TIME.
  9935. *
  9936. * ENTRY (X1) = PACKED DATE/TIME.
  9937. * (B3) = 70 IF UNPACKING DATE
  9938. * = 100 IF UNPACKING TIME
  9939. *
  9940. * EXIT (X6) = DATE/TIME LEFT JUSTIFIED IN YYMMDD OR HHMMSS
  9941. * FORMAT.
  9942. *
  9943. * USES A - 1, 6.
  9944. * B - 3, 6.
  9945. * X - 0, 1, 3.
  9946. *
  9947. * CALLS CDD.
  9948.  
  9949.  
  9950. UDT3 SA1 =6L SET NO DATE
  9951. BX6 X1
  9952.  
  9953. UDT SUBR ENTRY/EXIT
  9954. NZ X1,UDT1 IF NON-ZERO DATE/TIME
  9955. SB6 B3-70
  9956. ZR B6,UDT3 IF DATE
  9957. UDT1 SX6 B0 CLEAR UNPACKED BUFFER
  9958. SA6 UDTB
  9959. LX1 -12+60 POSITION PACKED DATE/TIME
  9960. SB6 B1+B1 SET FOR THREE TIMES THROUGH LOOP
  9961. UDT2 MX0 12 SAVE REMAINDER OF PACKED DATE/TIME
  9962. BX6 X0*X1
  9963. SA6 UDTA
  9964. SX1 X1+B3 INSURE TWO DISPLAY DIGITS
  9965. RJ CDD CONVERT CONSTANT TO DECIMAL DISPLAY
  9966. MX0 -12 UPDATE UNPACKED DATE/TIME
  9967. SA1 UDTB
  9968. LX1 12
  9969. BX6 -X0*X6
  9970. BX6 X1+X6
  9971. SA6 A1
  9972. SA1 UDTA GET REMAINDER OF PACKED DATE/TIME
  9973. LX1 6
  9974. SB3 100 INSURE TWO DISPLAY DIGITS
  9975. SB6 B6-B1
  9976. PL B6,UDT2 IF MORE TO CONVERT
  9977. LX6 24
  9978. EQ UDTX RETURN
  9979.  
  9980. UDTA BSS 1 PACKED DATE/TIME
  9981. UDTB BSS 1 UNPACKED DATE/TIME
  9982. UFA SPACE 4,15
  9983. ** UFA - UNPACK FILE AUDIT.
  9984. *
  9985. * ENTRY (N3 - N3+15B) = AUDIT FET.
  9986. * (B2) = ASSIGNED VSN BUFFER ADDRESS.
  9987. * (B6) = FILE CATALOG BUFFER ADDRESS.
  9988. *
  9989. * EXIT (X4) = 0 IF FILE AUDIT UNPACKED.
  9990. * .NE. 0 IF END OF AUDIT.
  9991. * (X6) = RANDOM ADDRESS OF FILE CATALOG.
  9992. * FILE CATALOG IMAGE SET IN BUFFER.
  9993. * ASSIGNED VSN ENTRIES SET IN BUFFER.
  9994. *
  9995. * USES A - 1, 6.
  9996. * B - 6.
  9997. * X - 1.
  9998. *
  9999. * MACROS CALLTFM, MOVEBIT, READFET, RJUST.
  10000.  
  10001.  
  10002. UFA SUBR ENTRY/EXIT
  10003. SX6 B2 SAVE VSN BUFFER ADDRESS
  10004. SA6 UFAA
  10005. SX6 B6 SAVE FILE BUFFER ADDRESS
  10006. SA6 UFAB
  10007. UFA1 READFET N3,B6,TCEL SET FILE CATALOG IN BUFFER
  10008. ZR X1,UFA2 IF CATALOG FOUND
  10009. SA1 X2 CHECK IF AUDIT COMPLETE
  10010. RJUST X1,X4,1,1
  10011. NZ X4,UFAX IF AUDIT COMPLETE
  10012. CALLTFM X2,AUCS REISSUE AUDIT REQUEST
  10013. NZ X4,UFAX IF END OF AUDIT
  10014. SA1 UFAB RESET FILE BUFFER ADDRESS
  10015. SB6 X1
  10016. EQ UFA1 SET FILE CATALOG IN BUFFER
  10017.  
  10018. UFA2 SA1 B6-TCEL+/CAT/REELC GET REEL COUNT
  10019. RJUST X1,X6,/BTC/REELC,/UPB/REELC
  10020. LX6 2
  10021. SA1 UFAA GET VSN BUFFER ADDRESS
  10022. READFET X2,X1,X6 SET ASSIGNED VSN ENTRIES IN BUFFER
  10023. READFET X2,UFAC,1 GET CATALOG RANDOM ADDRESS
  10024. SA1 LF
  10025. ZR X1,UFA3 IF NOT LOCAL FILE MODE
  10026. SA2 UFAB CLEAR FILE BUSY INTERLOCK
  10027. MOVEBIT (=0),X2+/CAT/FBIL,/BTC/FBIL,,/UPB/FBIL
  10028. UFA3 SA1 UFAC
  10029. RJUST X1,X6,24,23
  10030. SX4 B0 FLAG UNPACK COMPLETE
  10031. EQ UFAX RETURN
  10032.  
  10033. UFAA BSS 1 VSN BUFFER ADDRESS
  10034. UFAB BSS 1 FILE CATALOG BUFFER ADDRESS
  10035. UFAC BSS 1 CATALOG RANDOM ADDRESS
  10036. UFC SPACE 4,20
  10037. ** UFC - UNPACK FILE CATALOG INTO DIRECT CELLS.
  10038. *
  10039. * ENTRY (X6) = CATALOG RANDOM ADDRESS.
  10040. * (X7) = PREVIOUS FILE RANDOM ADDRESS.
  10041. * (B7) = VSN COUNT.
  10042. *
  10043. * EXIT (CA) = FILE CATALOG ADDRESS.
  10044. * (EV) = EXTERNAL VSN.
  10045. * (FI) = FILE IDENTIFIER.
  10046. * (FV) = FIRST VSN.
  10047. * (NI) = FILE IDENTIFIER.
  10048. * (PA) = PREVIOUS FILE RANDOM ADDRESS.
  10049. * (QN) = SEQUENCE NUMBER.
  10050. * (RC) = REEL COUNT.
  10051. * (ST) = VSN STATUS BITS.
  10052. * (SV) = SYMBOLIC ACCESS FLAG.
  10053. * (VC) = VSN COUNT.
  10054. *
  10055. * USES A - 1, 6, 7.
  10056. * X - 0, 1, 6.
  10057. *
  10058. * MACROS MOVEBIT.
  10059.  
  10060.  
  10061. UFC SUBR ENTRY/EXIT
  10062. SA6 CA SET FILE CATALOG RANDOM ADDRESS
  10063. SA7 PA SET PREVIOUS FILE CATALOG RANDOM ADDRESS
  10064. SX6 B7 SET VSN COUNT
  10065. SA6 VC
  10066. NZ B7,UFC1 IF VSNS ASSIGNED
  10067. SA6 FV CLEAR FIRST VSN
  10068. SA6 ST CLEAR VSN STATUS
  10069. EQ UFC2 SET FILE IDENTIFIER
  10070.  
  10071. UFC1 MOVEBIT TAVS+/CAT/VSN,FV,/BTC/VSN,/UPB/VSN SET FIRST VSN
  10072. SX0 277777B SET VSN STATUS BITS
  10073. SA1 TAVS+1
  10074. BX1 X0*X1
  10075. MOVEBIT A1,ST,18,17,17
  10076. UFC2 MOVEBIT /ADD/FI,FI,/BTC/FI,/UPB/FI SET FILE ID
  10077. MOVEBIT /ADD/FI,NI,/BTC/FI,/UPB/FI
  10078. MOVEBIT /ADD/EVSN,EV,/BTC/EVSN,/UPB/EVSN
  10079. MOVEBIT /ADD/QN,QN,/BTC/QN,/UPB/QN,/BTC/QN-1
  10080. MOVEBIT /ADD/SV,SV,/BTC/SV,/UPB/SV,/BTC/SV-1
  10081. MOVEBIT /ADD/REELC,RC,/BTC/REELC,/UPB/REELC,/BTC/REELC-1
  10082. MOVEBIT /ADD/D,DE,/BTC/D,/UPB/D,/BTC/D-1
  10083. EQ UFCX RETURN
  10084. USL SPACE 4,10
  10085. ** USL - USER LEVEL PROCESSOR.
  10086. *
  10087. * EXIT PROGRAM SET FOR USER LEVEL DIRECTIVES.
  10088. *
  10089. * USES A - 1, 6.
  10090. * X - 1, 6.
  10091. *
  10092. * CALLS KFI, RAE.
  10093.  
  10094.  
  10095. USL SUBR ENTRY/EXIT
  10096. RJ RAE REPLACE ALTERNATE USER ENTRIES
  10097. SX6 B0 FLAG INITIAL AUDIT
  10098. SA6 AA
  10099. SA1 NV
  10100. NZ X1,USL1 IF NO VERIFY MODE
  10101. RJ KFI SET FILE-IDS IN K-DISPLAY
  10102. USL1 SX6 LVUS SET USER LEVEL
  10103. SA6 LV
  10104. SA1 UN SET USER NAME IN K-DISPLAY
  10105. BX6 X1
  10106. SA6 /KUSELS/USER
  10107. SA1 USLA RESET LEFT SCREEN POINTER
  10108. BX6 X1
  10109. SA6 /KLEFT/NEXT
  10110. SA1 USLB RESET RIGHT SCREEN POINTER
  10111. BX6 X1
  10112. SA6 /KRIGHT/NEXT
  10113. SA1 =H* USER * SET LEVEL IN HELP DISPLAY
  10114. BX6 X1
  10115. SA6 /KRIGHT/LV
  10116. EQ USLX RETURN
  10117.  
  10118. USLA KNEXT KUSELS,NOLAB
  10119. USLB KNEXT KUSERS,NOLAB
  10120. VSA SPACE 4,15
  10121. ** VSA - VSN AUDIT LIST PROCESSOR.
  10122. *
  10123. * ENTRY (VCAT) = VSN ENTRY IMAGE.
  10124. *
  10125. * EXIT VSN INFORMATION COPIED TO OUTPUT FILE.
  10126. *
  10127. * USES A - 1.
  10128. * B - 3.
  10129. * X - 0, 1.
  10130. *
  10131. * CALLS SFN.
  10132. *
  10133. * MACROS MOVEBIT, SETSORC, WLINES.
  10134.  
  10135.  
  10136. VSA SUBR ENTRY/EXIT
  10137. MX0 -18
  10138. SA1 /ADD/URDATE GET RELEASE DATE
  10139. BX1 -X0*X1
  10140. SB3 70
  10141. RJ UDT UNPACK DATE/TIME
  10142. SA6 VSAB SET RELEASE DATE
  10143. MOVEBIT VSAB,/ALS/RELDATE,6*6,59,/ALSU/RELDATE
  10144. SA1 /ADD/URDATE CHECK RELEASE DATE
  10145. MX0 -18
  10146. BX6 -X0*X1
  10147. SX1 1R
  10148. ZR X6,VSA0.1 IF NO RELEASE DATE
  10149. SA1 /ADD/NEWRDT CHECK RELEASE DATE FORMAT
  10150. LJUST X1,X6,/BTC/NEWRDT,/UPB/NEWRDT
  10151. SX1 1R*
  10152. PL X6,VSA0.1 IF OLD FORMAT
  10153. SX1 1R
  10154. VSA0.1 MOVEBIT A1,/ALS/NEWRDT,1*6,5,/ALSU/NEWRDT
  10155. SA1 =18H PRESET USER AND CHARGE AS BLANK
  10156. MOVEBIT A1,/ALS/VUSER,18*6,,/ALSU/VUSER
  10157. SA1 UN GET USER NAME
  10158. RJ SFN SPACE FILL NAME
  10159. BX1 X6 SET USER NAME IN LISTING
  10160. MOVEBIT A1,/ALS/VUSER,UNKL*6,,/ALSU/VUSER
  10161. SA1 /ADD/CN GET CHARGE NUMBER
  10162. RJ SFN SPACE FILL NAME
  10163. BX1 X6
  10164. MOVEBIT A1,/ALS/VCHG,CNKL*6,,/ALSU/VCHG
  10165. SA1 /ADD/FVSN GET FIRST VSN
  10166. RJ SFN SPACE FILL NAME
  10167. BX1 X6 SET FIRST VSN IN LISTING
  10168. MOVEBIT A1,/ALS/FVSN,VSKL*6,,/ALSU/FVSN
  10169. MX0 VSKL*6 CHECK IF LAST SCRATCH VSN
  10170. SA1 /ADD/NVSN
  10171. BX1 X0-X1
  10172. BX1 X0*X1
  10173. ZR X1,VSA1 IF LAST SCRATCH VSN
  10174. SA1 A1
  10175. VSA1 RJ SFN SPACE FILL NAME
  10176. BX1 X6 SET NEXT VSN IN LISTING
  10177. MOVEBIT A1,/ALS/NVSN,VSKL*6,,/ALSU/NVSN
  10178. SA1 UN
  10179. NZ X1,VSA2 IF VSN ASSIGNED
  10180. SA1 =18H *NOT ASSIGNED* SET MESSAGE IN LISTING
  10181. MOVEBIT A1,/ALS/VUSER,18*6,,/ALSU/VUSER
  10182. VSA2 MOVEBIT /ADD/VSN,/ALS/VSN,/ALSC/VSN*6,/UPB/VSN,/ALSU/VSN
  10183. SA1 /ADD/ERRFLAG CHECK ERROR FLAG
  10184. RJUST X1,X1,/BTC/ERRFLAG,/UPB/ERRFLAG
  10185. ZR X1,VSA3 IF ERROR FLAG NOT SET
  10186. SA1 =5HERROR
  10187. EQ VSA5 SET VSN STATUS IN LISTING
  10188.  
  10189. VSA3 SA1 /ADD/MAINT CHECK MAINTENANCE FLAG
  10190. RJUST X1,X1,/BTC/MAINT,/UPB/MAINT
  10191. ZR X1,VSA4 IF MAINTENANCE FLAG NOT SET
  10192. SA1 =5HHOLD
  10193. EQ VSA5 SET VSN STATUS IN LISTING
  10194.  
  10195. VSA4 SA1 =5HAVAIL
  10196. VSA5 MOVEBIT A1,/ALS/STATUS,5*6,,/ALSU/STATUS
  10197. SETSORC A,LVVS SET SOURCE VALUES IN AUDIT LISTING
  10198. WLINES VSAA,1 WRITE TO OUTPUT FILE
  10199. EQ VSAX RETURN
  10200.  
  10201. VSAA BSS 0 AUDIT LISTING
  10202. LISTER ALS,2
  10203. VSN LISTER ,6 VSN
  10204. LISTER ,1
  10205. PRN LISTER ,6 INTERNAL VSN (PRN)
  10206. LISTER ,1
  10207. VT LISTER ,4 VSN TAPE TYPE
  10208. LISTER ,1
  10209. STATUS LISTER ,6,AVAIL STATUS
  10210. LISTER ,1
  10211. USAGE LISTER ,2,00 USAGE COUNT
  10212. LISTER ,1
  10213. OWNER LISTER ,6,CENTER OWNERSHIP TYPE
  10214. LISTER ,1
  10215. SITE LISTER ,3,ON SITE STATUS
  10216. LISTER ,1
  10217. SYSTEM LISTER ,6,NO SYSTEM VSN FLAG
  10218. LISTER ,1
  10219. VUSER LISTER ,7 USER NAME
  10220. LISTER ,1
  10221. VCHG LISTER ,10 CHARGE NUMBER
  10222. LISTER ,1
  10223. NEWRDT LISTER ,1 NEW RELEASE DATE FORMAT
  10224. RELDATE LISTER ,6 RELEASE DATE
  10225. LISTER ,1
  10226. FVSN LISTER ,6 FIRST VSN
  10227. LISTER ,1
  10228. NVSN LISTER ,6,,E NEXT VSN
  10229.  
  10230. VSAB CON 0 RELEASE DATE IMAGE
  10231. VSL SPACE 4,10
  10232. ** VSL - VSN LEVEL PROCESSOR.
  10233. *
  10234. * EXIT PROGRAM SET FOR VSN LEVEL DIRECTIVES.
  10235. *
  10236. * USES A - 1, 2, 6.
  10237. * X - 1, 2, 6.
  10238. *
  10239. * MACROS MOVE.
  10240.  
  10241.  
  10242. VSL SUBR ENTRY/EXIT
  10243. SX6 LVVS SET VSN LEVEL
  10244. SA6 LV
  10245. SA1 VS SET VSN IN K-DISPLAY
  10246. BX6 X1
  10247. SA6 /KVSNLS/VSN
  10248. SA1 VF CHECK VSN IN CATALOG FLAG
  10249. SA2 VSLA PRESET MESSAGE ADDRESS
  10250. ZR X1,VSL1 IF VSN NOT IN CATALOG
  10251. SA2 VSLB RESET MESSAGE ADDRESS
  10252. VSL1 MOVE 3,A2,/KVSNLS/MESS
  10253. MOVEBIT /ADD/VT,VTT,/BTC/VT,/UPB/VT,/BTC/VT-1
  10254. MOVEBIT /ADD/SYSTEM,SVF,/BTC/SYSTEM,/UPB/SYSTEM,/BTC/SYSTEM-1
  10255. RJ KST SET VSN STATUS IN K-DISPLAY
  10256. SA1 VSLC RESET LEFT SCREEN POINTER
  10257. BX6 X1
  10258. SA6 /KLEFT/NEXT
  10259. SA1 VSLD RESET RIGHT SCREEN POINTER
  10260. BX6 X1
  10261. SA6 /KRIGHT/NEXT
  10262. SA1 =H* VSN * SET LEVEL IN HELP DISPLAY
  10263. BX6 X1
  10264. SA6 /KRIGHT/LV
  10265. EQ VSLX RETURN
  10266.  
  10267. VSLA DATA 30HVSN NOT CURRENTLY IN CATALOG.
  10268. VSLB DATA 30HVSN CURRENTLY IS IN CATALOG.
  10269. VSLC KNEXT KVSNLS,NOLAB
  10270. VSLD KNEXT KVSNRS,NOLAB
  10271. VSM SPACE 4,15
  10272. ** VSM - VSN MACHINE READABLE LIST PROCESSOR.
  10273. *
  10274. * ENTRY (VCAT) = VSN ENTRY IMAGE.
  10275. *
  10276. * EXIT VSN INFORMATION COPIED TO MACHINE READABLE OUTPUT
  10277. * FILE.
  10278. *
  10279. * USES A - 1, 2.
  10280. * B - 3.
  10281. * X - 0, 1, 2.
  10282. *
  10283. * CALLS SFN, UDT.
  10284. *
  10285. * MACROS MOVEBIT, RJUST, SETSORC, WRITEC.
  10286.  
  10287.  
  10288. VSM SUBR ENTRY/EXIT
  10289. SA1 /ADD/VASF CHECK VSN ASSIGNED FLAG
  10290. RJUST X1,X1,/BTC/VASF,/UPB/VASF
  10291. ZR X1,VSM4 IF VSN NOT ASSIGNED TO A FILE
  10292. SA2 /ADD/RECOVER CHECK FOR RECOVERED STATUS
  10293. LX2 59-/UPB/RECOVER
  10294. SA1 =C*N*
  10295. PL X2,VSM1 IF NOT RECOVERED
  10296. SA1 =C*S*
  10297. VSM1 MOVEBIT A1,/MLS/RECOVER,1*6,59,/MLSU/RECOVER
  10298. SA2 VCAT+VEVS CHECK IF FILE RESERVED
  10299. LX2 59-17
  10300. ERRNZ 400000B-RTVS INCORRECT BIT POSITION
  10301. SA1 =C*R*
  10302. NG X2,VSM2 IF FILE RESERVED
  10303. SA1 =C*N*
  10304. VSM2 MOVEBIT A1,/MLS/RESF,1*6,59,/MLSU/RESF SET RESERVED STATUS
  10305. SA1 UN SET USER NAME IN LISTING
  10306. RJ SFN SPACE FILL NAME
  10307. BX1 X6
  10308. MOVEBIT A1,/MLS/USER,/MLSC/USER*6,,/MLSU/USER
  10309. SETSORC M,LVFI SET SOURCE VALUES IN MACHINE READ LIST
  10310. SA1 /MLS/FI CHECK FOR EXTRA END OF LINES
  10311. SB3 /MLSU/FI
  10312. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  10313. SA1 /MLS/PI
  10314. SB3 /MLSU/PI
  10315. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  10316. SA1 /ADD/TTYP CHECK TAPE DEVICE TYPE
  10317. RJUST X1,X6,/BTC/TTYP,/UPB/TTYP
  10318. SA1 VSMB+X6 GET MNEMONIC
  10319. MOVEBIT A1,/MLS/TTYP,/MLSC/TTYP*6,,/MLSU/TTYP
  10320. EQ VSM5 ADD VSN INFORMATION
  10321.  
  10322. VSM4 MOVEBIT (=50H),/MLS/USER,50*6,,/MLSU/USER SET BLANKS
  10323. MOVEBIT (=50H),A2,50*6,,B2
  10324. MOVEBIT (=47H),A2,47*6,,B2
  10325. MOVEBIT (=19H),/MLS/LB,19*6,,/MLSU/LB
  10326. MOVEBIT (=1HN),/MLS/RESF,1*6,59,/MLSU/RESF
  10327. MOVEBIT (=1HN),/MLS/RECOVER,1*6,59,/MLSU/RECOVER
  10328. VSM5 MOVEBIT /ADD/VSN,/MLS/VSN,/MLSC/VSN*6,/UPB/VSN,/MLSU/VSN
  10329. SA1 /ADD/FVSN GET FIRST VSN
  10330. RJ SFN SPACE FILL NAME
  10331. BX1 X6 SET FIRST VSN IN LISTING
  10332. MOVEBIT A1,/MLS/FVSN,VSKL*6,,/MLSU/FVSN
  10333. MX0 VSKL*6 CHECK IF LAST SCRATCH VSN
  10334. SA1 /ADD/NVSN
  10335. BX1 X0*X1
  10336. BX1 X0-X1
  10337. ZR X1,VSM6 IF LAST SCRATCH VSN
  10338. SA1 A1
  10339. BX1 X0*X1
  10340. VSM6 RJ SFN SPACE FILL NAME
  10341. BX1 X6 SET NEXT VSN IN LISTING
  10342. MOVEBIT A1,/MLS/NVSN,VSKL*6,,/MLSU/NVSN
  10343. SA1 /ADD/REELNO GET REEL NUMBER
  10344. RJUST X1,X1,/BTC/REELNO,/UPB/REELNO
  10345. SX1 X1+100
  10346. RJ CDD CONVERT TO DECIMAL DISPLAY
  10347. LJUST X6,X1,12,11 SET REEL NUMBER IN LISTING
  10348. MOVEBIT A1,/MLS/REELNO,/MLSC/REELNO*6,,/MLSU/REELNO
  10349. SA1 /ADD/URDATE GET RELEASE DATE
  10350. MX0 -18
  10351. BX1 -X0*X1
  10352. SB3 70 SET DATE FLAG FOR UDT
  10353. RJ UDT UNPACK DATE
  10354. BX1 X6 SET RELEASE DATE IN LISTING
  10355. MOVEBIT A1,/MLS/URDATE,6*6,,/MLSU/URDATE
  10356. SA1 /ADD/URDATE CHECK RELEASE DATE
  10357. MX0 -18
  10358. BX6 -X0*X1
  10359. SX1 1R
  10360. ZR X6,VSM7 IF NO RELEASE DATE
  10361. SA1 /ADD/NEWRDT CHECK IF NEW RELEASE DATE FORMAT
  10362. LJUST X1,X6,/BTC/NEWRDT,/UPB/NEWRDT
  10363. SX1 1R*
  10364. PL X6,VSM7 IF OLD FORMAT
  10365. SX1 1R
  10366. VSM7 MOVEBIT A1,/MLS/NEWRDT,1*6,5,/MLSU/NEWRDT
  10367. SETSORC M,LVVS SET SOURCE VALUES IN MACHINE READ LIST
  10368. WRITEC SS,VSMA WRITE ENTRY TO MACHINE READABLE FILE
  10369. EQ VSMX RETURN
  10370.  
  10371.  
  10372. VSMA BSS 0 MATCHING READABLE LISTING
  10373. LISTER MLS,1,2 RECORD TYPE
  10374. FAMILY LISTER ,7 FAMILY NAME
  10375. USER LISTER ,7 USER NAME
  10376. CN LISTER ,7 CHARGE NUMBER
  10377. PN LISTER ,20 PROJECT NUMBER
  10378. FI LISTER ,17 FILE IDENTIFIER
  10379. CT LISTER ,7,PRIVATE FILE CATEGORY
  10380. CDATE LISTER ,6,YYMMDD CREATION DATE
  10381. CTIME LISTER ,6,HHMMSS CREATION TIME
  10382. ADATE LISTER ,6,YYMMDD LAST ACCESS DATE
  10383. ATIME LISTER ,6,HHMMSS LAST ACCESS TIME
  10384. MDATE LISTER ,6,YYMMDD LAST MODIFICATION DATE
  10385. MTIME LISTER ,6,HHMMSS LAST MODIFICATION TIME
  10386. M LISTER ,6,READ PERMISSION MODE
  10387. ACOUNT LISTER ,10,0000000000 ACCESS COUNT
  10388. F LISTER ,2,I FORMAT
  10389. CV LISTER ,2,AS CONVERSION MODE
  10390. TTYP LISTER ,2,NT TAPE DEVICE TYPE
  10391. D LISTER ,2,PE DENSITY
  10392. LISTER ,3 BLANKS
  10393. UC LISTER ,10 USER CONTROL WORD
  10394. LISTER ,4 BLANKS
  10395. CE LISTER ,1,C ERROR FLAG
  10396. LISTER ,1 BLANKS
  10397. PW LISTER ,7 PASSWORD
  10398. LISTER ,3 BLANKS
  10399. VSN LISTER ,6 VSN
  10400. PRN LISTER ,6 PRN
  10401. FVSN LISTER ,6 FIRST VSN
  10402. NVSN LISTER ,6 NEXT VSN
  10403. MAINT LISTER ,5,AVAIL MAINTENANCE FLAG
  10404. SITE LISTER ,3,ON SITE STATUS
  10405. OWNER LISTER ,6,CENTER OWNERSHIP TYPE
  10406. ERRFLAG LISTER ,1,C ERROR FLAG
  10407. REELNO LISTER ,2,00 REEL NUMBER
  10408. LB LISTER ,2,KL LABEL TYPE
  10409. PI LISTER ,17 PHYSICAL FILE IDENTIFIER
  10410. USAGE LISTER ,2,00 USAGE COUNT
  10411. URDATE LISTER ,6 RELEASE DATE
  10412. RESF LISTER ,1,N RESERVED FLAG
  10413. RECOVER LISTER ,1,N RECOVER FLAG
  10414. NEWRDT LISTER ,1 NEW RELEASE DATE FORMAT
  10415. SYSTEM LISTER ,3,NO SYSTEM VSN FLAG
  10416. VT LISTER ,4,MTNT,E VSN TAPE TYPE
  10417.  
  10418. VSMB BSS 0 TABLE OF TAPE DEVICE TYPES
  10419. CON 0LMT 7-TRACK TAPE
  10420. CON 0LCT CARTRIDGE TAPE
  10421. CON 0LNT 9-TRACK TAPE
  10422. CON 0LAT ACS CARTRIDGE TAPE
  10423. VSS SPACE 4,15
  10424. ** VSS - VSN SOURCE LISTING PROCESSOR.
  10425. *
  10426. * ENTRY (VCAT) = VSN ENTRY IMAGE.
  10427. *
  10428. * EXIT VSN INFORMATION COPIED TO SOURCE FILE.
  10429. *
  10430. * USES A - 1.
  10431. * X - 1.
  10432. *
  10433. * CALLS SCS.
  10434. *
  10435. * MACROS MOVEBIT, SETSORC, WRITEC.
  10436.  
  10437.  
  10438. VSS SUBR ENTRY/EXIT
  10439. MOVEBIT /ADD/VSN,/SLS/VSN,VSKL*6,,/SLSU/VSN
  10440. SETSORC S,LVVS SET SOURCE VALUES IN SOURCE LISTING
  10441. WRITEC S,VSSA WRITE FIRST LINE OF SOURCE ENTRY
  10442. SA1 /DTAB/PRN ADD PRN TO SOURCE ENTRY
  10443. RJ SCS PROCESS SPECIAL CHARACTER SOURCE ENTRY
  10444. WRITEC S,VSSB WRITE LAST LINE OF SOURCE ENTRY
  10445. EQ VSSX RETURN
  10446.  
  10447. VSSA BSS 0 FIRST LINE OF VSN SOURCE ENTRY
  10448. LISTER SLS,4,VSN=
  10449. VSN LISTER ,6 VSN
  10450. LISTER ,4,(,VT=)
  10451. VT LISTER ,4,MTNT VSN ENTRY TAPE TYPE
  10452. LISTER ,7,(,USAGE=)
  10453. USAGE LISTER ,2,00 USAGE COUNT
  10454. LISTER ,9,(,ERRFLAG=)
  10455. ERRFLAG LISTER ,5,CLEAR ERROR FLAG
  10456. LISTER ,7,(,MAINT=)
  10457. MAINT LISTER ,9,AVAILABLE MAINTENANCE FLAG
  10458. LISTER ,6,(,SITE=)
  10459. SITE LISTER ,3,ON,E,CAPL SITE STATUS
  10460.  
  10461. VSSB BSS 0 LAST LINE OF VSN SOURCE ENTRY
  10462. LISTER ,6,OWNER=
  10463. OWNER LISTER ,6,CENTER OWNERSHIP TYPE
  10464. LISTER ,8,(,SYSTEM=)
  10465. SYSTEM LISTER ,3,NO SYSTEM VSN FLAG
  10466. LISTER ,3,(,GO),E,CAPL
  10467. COMMON SPACE 4,10
  10468. ** COMMON DECKS.
  10469.  
  10470.  
  10471. *CALL COMCCDD
  10472. *CALL COMCCOD
  10473. *CALL COMCCPM
  10474. *CALL COMCCIO
  10475. *CALL COMCDXB
  10476. *CALL COMCEDT
  10477. *CALL COMCMVE
  10478. *CALL COMCRDC
  10479. *CALL COMCRDW
  10480. *CALL COMCSFM
  10481. *CALL COMCSFN
  10482. *CALL COMCSNM
  10483. *CALL COMCSYS
  10484. USBB BSS CSPL+10 STRING BUFFER
  10485. *CALL COMCUSB
  10486. *CALL COMCWTC
  10487. *CALL COMCWTW
  10488. *CALL COMCZTB
  10489. TITLE UNIVERSAL DIRECTIVE PROCESSORS.
  10490. UNIDIR SPACE 4,10
  10491. ** UNIVERSAL DIRECTIVE PROCESSORS.
  10492. *
  10493. * ENTRY FROM *DIP*.
  10494. * (AI) = ALTERNATE INPUT FILE NAME.
  10495. * (IF) = INPUT FILE FET ADDRESS.
  10496. * (TG) = FILE LEVEL K-DISPLAY PAGE NUMBER.
  10497. * (BF) = BRIEF/NOBRIEF FLAG FOR HEADER DISPLAY.
  10498. *
  10499. * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
  10500. DIS SPACE 4,10
  10501. ** DIS - PROCESS *DISPLAY* DIRECTIVE.
  10502.  
  10503.  
  10504. DIS2 SX6 B1 SET FILE LEVEL TOGGLE
  10505. SA6 TG
  10506. SA1 DISA SET NORMAL LEFT SCREEN CONTROL WORD
  10507. BX6 X1
  10508. SA6 KCW
  10509.  
  10510. DIS SUBR ENTRY/EXIT
  10511. SA1 OP CHECK OPTION
  10512. SX1 X1-KOPT
  10513. ZR X1,DIS2 IF *OP=K*
  10514. SA1 BF CHECK *BRIEF* FLAG
  10515. NZ X1,DIS1 IF *BRIEF* MODE SET
  10516. NEWPAGE PDIS,PDISL FORCE NEW PAGE
  10517. WWORDS /KLEFT/START,/KLEFT/LENGTH
  10518. DIS1 SA1 /KLEFT/NEXT GET ADDRESS OF REMAINDER OF DISPLAY
  10519. SX2 X1
  10520. SA1 X1-1 GET LENGTH OF REMAINDER OF DISPLAY
  10521. SB6 X1
  10522. WWORDS X2,B6 WRITE REMAINDER OF LEFT SCREEN DISPLAY
  10523. NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE ON NEXT DIRECTIVE
  10524. EQ DISX RETURN
  10525.  
  10526. DISA VFD 24/KBUF,18/KRIGHT,18/KLEFT CONTROL WORD IMAGE
  10527. STO SPACE 4,10
  10528. ** STO - PROCESS *STOP* DIRECTIVE.
  10529. *
  10530. * SET TERMINATION DIRECTIVES (DROP) IN THE STRING BUFFER.
  10531. *
  10532. * EXIT (USBB) = SERIES OF *DROP* DIRECTIVES.
  10533. * (SP) = BUFFER POINTER.
  10534. * (SB) = BUFFER ADDRESS.
  10535. * (SM) = BUFFER MAXIMUM ADDRESS.
  10536. *
  10537. * USES A - 6.
  10538. * X - 6.
  10539. *
  10540. * MACROS MOVE.
  10541.  
  10542.  
  10543. STO SUBR ENTRY/EXIT
  10544. MOVE TFSAL,TFSA,USBB SET TERMINATION DIRECTIVES
  10545. SX6 USBB-1 SET BUFFER POINTER
  10546. SA6 SP
  10547. SX6 X6+B1 SET BUFFER ADDRESS
  10548. SA6 SB
  10549. SX6 USBB+TFSAL SET BUFFER MAXIMUM ADDRESS
  10550. SA6 SM
  10551. EQ STOX RETURN
  10552. HEL SPACE 4,10
  10553. ** HEL - PROCESS *HELP* DIRECTIVE.
  10554.  
  10555.  
  10556. HEL1 SX6 B0 FLAG *HELP* DISPLAY
  10557. SA6 TG
  10558. SA1 HELA SET *HELP* CONTROL WORD
  10559. BX6 X1
  10560. SA6 KCW
  10561.  
  10562. HEL SUBR ENTRY/EXIT
  10563. SA1 OP CHECK OPTION
  10564. SX1 X1-KOPT
  10565. ZR X1,HEL1 IF *OP=K*
  10566. NEWPAGE PHEL,PHELL FORCE NEW PAGE
  10567. WWORDS /KRIGHT/START,/KRIGHT/LENGTH WRITE HEADER
  10568. SA1 /KRIGHT/NEXT GET ADDRESS OF REMAINDER OF DISPLAY
  10569. SX2 X1
  10570. SA1 X1-1 GET LENGTH OF REMAINDER OF DISPLAY
  10571. SB6 X1
  10572. WWORDS X2,B6 WRITE REMAINDER OF RIGHT SCREEN DISPLAY
  10573. NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE ON NEXT DIRECTIVE
  10574. EQ HELX RETURN
  10575.  
  10576. HELA VFD 24/KBUF,18/KRIGHT,18/KRIGHT CONTROL WORD IMAGE
  10577. REA SPACE 4,10
  10578. ** REA - PROCESS *READ* DIRECTIVE.
  10579.  
  10580.  
  10581. REA1 SX6 B0 CLEAR ALTERNATE INPUT FILE NAME
  10582. SA6 AI
  10583. REA2 ISSMSG B5,E ISSUE ERROR MESSAGE
  10584.  
  10585. REA SUBR ENTRY/EXIT
  10586. SA1 IF CHECK INPUT FET ADDRESS
  10587. SX1 X1-I
  10588. SB5 ERDI SET ERROR MESSAGE ADDRESS
  10589. NZ X1,REA2 IF ALTERNATE INPUT FILE
  10590. SA1 DIPB SET FILE NAME IN FET
  10591. SX6 B1
  10592. BX6 X1+X6
  10593. SA6 RD
  10594. SX2 A6
  10595. RJ CFC CHECK FOR FILE NAME CONFLICT
  10596. SB5 EFNC SET ERROR MESSAGE ADDRESS
  10597. NZ X4,REA1 IF CONFLICT
  10598. SX6 X2 SET INPUT FILE FET
  10599. SA6 IF
  10600. SA1 SB SAVE INPUT STRING BUFFER POINTERS
  10601. SX6 X1
  10602. SA6 TFSB+0
  10603. SA1 SM
  10604. SX6 X1
  10605. SA6 A6+B1
  10606. SA1 SP
  10607. SX6 X1
  10608. SA6 A6+B1
  10609. MOVE USBBL,USBB,TFSC SAVE INPUT STRING BUFFER
  10610. SX6 B0 PRESET INPUT STRING BUFFER POINTERS
  10611. SA6 SB
  10612. SA6 SM
  10613. SA6 SP
  10614. EQ REAX RETURN
  10615. REW SPACE 4,10
  10616. ** REW - PROCESS *REWIND* DIRECTIVE.
  10617.  
  10618.  
  10619. REW SUBR ENTRY/EXIT
  10620. SX2 R
  10621. RJ CFC CHECK FOR FILE NAME CONFLICT
  10622. ZR X4,REW1 IF NO CONFLICT
  10623. RECALL X4 REWIND FILE
  10624. REWIND X2,R
  10625. EQ REWX RETURN
  10626.  
  10627. REW1 REWIND R,R REWIND FILE
  10628. EQ REWX RETURN
  10629. TITLE FAMILY LEVEL DIRECTIVE PROCESSORS.
  10630. SPACE 4
  10631. QUAL LVFA
  10632. FAMDIR SPACE 4,10
  10633. ** FAMILY LEVEL DIRECTIVE PROCESSORS.
  10634. *
  10635. * ENTRY FROM *DIP*.
  10636. * (REC1) = IMAGE OF FIRST TAPE CATALOG FILE RECORD.
  10637. *
  10638. * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
  10639. ACH SPACE 4,10
  10640. ** ACH - PROCESS *AUDITCH* DIRECTIVE.
  10641.  
  10642.  
  10643. ACH SUBR ENTRY/EXIT
  10644. NEWPAGE PFIA,PFIAL SET NEW PAGE HEADER
  10645. ACH1 RCREC N2,5
  10646. GRENTRY N2,ACHA GET RECORD ENTRY FROM CATALOG
  10647. ZR X6,ACH3 IF NO USERNAMES
  10648. ACH2 GRENTRY N2,ACHA GET RECORD ENTRY FROM CATALOG
  10649. ZR X6,ACH3 IF END OF USERNAMES
  10650. SA1 TI
  10651. NZ X1,ACH3 IF TERMINAL INTERRUPT
  10652. MX0 42 GET USERNAME
  10653. SA1 ACHA
  10654. BX6 X0*X1
  10655. SA6 UN STORE USERNAME TO AUDIT
  10656. USERAUD A,CN PROCESS CHARGE AUDIT
  10657. EQ ACH2 CHECK NEXT USERNAME
  10658.  
  10659. ACH3 NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE
  10660. EQ ACHX RETURN
  10661.  
  10662. ACHA BSS 1 SECONDARY USERNAME POINTER
  10663. AFM SPACE 4,10
  10664. ** AFM - PROCESS *ALTFAM* DIRECTIVE.
  10665.  
  10666. AFM2 ISSMSG ENVF,E ISSUE ERROR MESSAGE
  10667.  
  10668. AFM SUBR ENTRY/EXIT
  10669. SA1 LF
  10670. ZR X1,AFM2 IF NOT LOCAL FILE MODE
  10671. MX0 42
  10672. SRCHTAB TAFM,AFMA,PAFL SEARCH FOR FAMILY NAME
  10673. ZR X4,AFMX IF ALREADY IN TABLE
  10674. SRCHTAB TAFM,=0,B2,B3,B4 SEARCH FOR EMPTY ENTRY
  10675. ZR X4,AFM1 IF EMPTY ENTRY FOUND
  10676. ISSMSG EAFM,E ISSUE ERROR MESSAGE
  10677. EQ AFMX RETURN
  10678.  
  10679. AFM1 SA2 AFMA SET FAMILY NAME IN TABLE
  10680. BX6 X2
  10681. SA6 A1
  10682. RJ KFM SET FAMILY LEVEL K-DISPLAY
  10683. EQ AFMX RETURN
  10684.  
  10685. AFMA BSS 1 ALTERNATE FAMILY NAME
  10686. AUN SPACE 4,10
  10687. ** AUN - PROCESS *AUDITUN* DIRECTIVE.
  10688.  
  10689.  
  10690. AUN3 NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
  10691.  
  10692. AUN SUBR ENTRY/EXIT
  10693. NEWPAGE PFIA,PFIAL SET NEW PAGE HEADER
  10694. SA1 UN
  10695. ZR X1,AUN1 IF MULTIPLE VSNS
  10696. USERAUD A PROCESS USER AUDIT LIST
  10697. EQ AUN3 FORCE NEW PAGE
  10698.  
  10699. AUN1 RCREC N2,5
  10700. GRENTRY N2,AUNA GET RECORD ENTRY
  10701. ZR X6,AUN3 IF END OF USER NAMES
  10702. AUN2 GRENTRY N2,AUNA GET RECORD ENTRY
  10703. ZR X6,AUN3 IF END OF USER NAMES
  10704. SA1 TI
  10705. NZ X1,AUN3 IF TERMINAL INTERRUPT
  10706. MX0 42 GET USER NAME
  10707. SA1 AUNA
  10708. BX6 X0*X1
  10709. SA6 UN
  10710. USERAUD A PROCESS USER AUDIT LIST
  10711. EQ AUN2 CHECK NEXT USER NAME
  10712.  
  10713. AUNA BSS 1 SECONDARY USER NAME POINTER IMAGE
  10714. AVS SPACE 4,10
  10715. * AVS - PROCESS *AUDITVS* DIRECTIVE.
  10716.  
  10717.  
  10718. AVS4 NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
  10719.  
  10720. AVS SUBR ENTRY/EXIT
  10721. NEWPAGE PVSA,PVSAL FORCE NEW PAGE
  10722. SA1 VS
  10723. ZR X1,AVS1 IF MULTIPLE VSNS
  10724. SX6 B0
  10725. RJ GVE GET VSN ENTRY
  10726. NZ X4,AVSX IF NOT FOUND
  10727. RJ GUV GET USER INFORMATION ON VSN
  10728. RJ VSA PROCESS VSN OUTPUT LIST
  10729. EQ AVS4 FORCE NEW PAGE
  10730.  
  10731. AVS1 SA1 LF
  10732. ZR X1,AVS2 IF NOT LOCAL FILE MODE
  10733. RJ RVE REPLACE VSN ENTRIES
  10734. AVS2 RCREC N1,4 GET RECORD ENTRY OF DUMMY VSN
  10735. GRENTRY N1,VCAT
  10736. ZR X6,AVS4 IF NO MORE ENTRIES
  10737. AVS3 GRENTRY N1,VCAT
  10738. ZR X6,AVS4 IF NO MORE ENTRIES
  10739. SA1 TI
  10740. NZ X1,AVS4 IF TERMINAL INTERRUPT
  10741. RJ GUV GET USER INFORMATION ON VSN
  10742. RJ VSA PROCESS VSN OUTPUT LIST
  10743. EQ AVS3 GET NEXT ENTRY
  10744. BRF SPACE 4,10
  10745. ** BRF - PROCESS *BRIEF* DIRECTIVE.
  10746.  
  10747.  
  10748. BRF SUBR ENTRY/EXIT
  10749. SA1 BF CHECK BRIEF FLAG
  10750. SX6 B1
  10751. SA6 A1 SET FLAG FOR BRIEF
  10752. EQ BRFX RETURN
  10753. CAF SPACE 4,10
  10754. ** CAF - PROCESS *CALTFAM* DIRECTIVE.
  10755.  
  10756.  
  10757. CAF1 ISSMSG ENVF,E ISSUE ERROR MESSAGE
  10758.  
  10759. CAF SUBR ENTRY/EXIT
  10760. SA1 LF
  10761. ZR X1,CAF1 IF NOT LOCAL FILE MODE
  10762. MX0 42
  10763. SRCHTAB TAFM,CAFA,PAFL SEARCH FOR FAMILY NAME
  10764. NZ X4,CAFX IF NOT IN TABLE
  10765. SB7 B7+B3 MOVE END OF TABLE OVER DELETED FAMILY
  10766. SB2 B2-B7
  10767. MOVE B2,A1+B3,A1
  10768. SX6 B0 CLEAR LAST ENTRY IN TABLE
  10769. SA6 TAFM+PAFL-1
  10770. RJ KFM SET FAMILY LEVEL K-DISPLAY
  10771. EQ CAFX RETURN
  10772.  
  10773. CAFA BSS 1 ALTERNATE FAMILY NAME
  10774. CAT SPACE 4,10
  10775. ** CAT - PROCESS *CATERR* DIRECTIVE.
  10776.  
  10777.  
  10778. CAT1 MOVEBIT CATB,TCMB,40*6 SET NEW ERROR MESSAGE
  10779. CAT2 RJ KFM SET FAMILY LEVEL K-DISPLAY
  10780.  
  10781. CAT SUBR ENTRY/EXIT
  10782. MOVEBIT CATA,TSTT,1,0,2 SET/CLEAR ERROR STATUS
  10783. SA1 CATA
  10784. NZ X1,CAT1 IF SET ERROR STATUS
  10785. CLEAR TCMB,MBML CLEAR MESSAGE BUFFER
  10786. EQ CAT2 REWRITE FIRST RECORD
  10787.  
  10788. CATA BSS 1 CATALOG ERROR STATUS
  10789. CATB DATA 38LERROR SET BY TFSP.
  10790. DRO SPACE 4,10
  10791. ** DRO - PROCESS *DROP* DIRECTIVE.
  10792.  
  10793.  
  10794. DRO SUBR ENTRY/EXIT
  10795. EQ END END *TFSP*
  10796. FAM SPACE 4,10
  10797. ** FAM - PROCESS *FAMNAME* DIRECTIVE.
  10798.  
  10799.  
  10800. FAM SUBR ENTRY/EXIT
  10801. MOVEBIT FAMA,TFMN,7*6 SET FAMILY NAME
  10802. RJ KFM SET FAMILY LEVEL K-DISPLAY
  10803. EQ FAMX RETURN
  10804.  
  10805. FAMA BSS 1 NEW FAMILY NAME
  10806. FOR SPACE 4,10
  10807. ** FOR - PROCESS *FOREIGN* DIRECTIVE.
  10808.  
  10809.  
  10810. FOR SUBR ENTRY/EXIT
  10811. MOVEBIT FORA,TSTT,1,0,13 SET FOREIGN STATUS
  10812. RJ KFM SET FAMILY LEVEL K-DISPLAY
  10813. EQ FORX RETURN
  10814.  
  10815. FORA BSS 1 FOREIGN STATUS
  10816. GLO SPACE 4,10
  10817. ** GLO - PROCESS *GLOBAL* DIRECTIVE.
  10818.  
  10819.  
  10820. GLO SUBR ENTRY/EXIT
  10821. MOVEBIT GLOA,TSTT,1,0,12 SET GLOBAL STATUS
  10822. RJ KFM SET FAMILY LEVEL K-DISPLAY
  10823. EQ GLOX RETURN
  10824.  
  10825. GLOA BSS 1 GLOBAL STATUS
  10826. INV SPACE 4,10
  10827. ** INV - PROCESS *INCORRECT* DIRECTIVE.
  10828.  
  10829.  
  10830. INV SUBR ENTRY/EXIT
  10831. MX0 42
  10832. SRCHTAB TVUN,UN,UNCL SEARCH FOR USER NAME
  10833. NZ X4,INVX IF NOT IN TABLE
  10834. SB7 B7+B3 MOVE END OF TABLE OVER DELETED USER
  10835. SB2 B2-B7
  10836. MOVE B2,A1+B3,A1
  10837. SX6 B0 CLEAR LAST ENTRY IN TABLE
  10838. SA6 TVUN+UNCL-1
  10839. RJ KFM SET FAMILY LEVEL K-DISPLAY
  10840. EQ INVX RETURN
  10841. ISV SPACE 4,10
  10842. ** ISV - PROCESS *ISV* DIRECTIVE.
  10843. *
  10844. * EXIT SCRATCH VSN-S INITIALIZED.
  10845. *
  10846. * CALLS KFM.
  10847. *
  10848. * MACROS CALLTFM, RCREC.
  10849.  
  10850.  
  10851. ISV SUBR ENTRY\EXIT
  10852. CALLTFM N1,ISFS INITIALIZE SCRATCH VSNS
  10853. RCREC N1,1,REC1 REREAD FIRST RECORD
  10854. RJ KFM UPDATE K-DISPLAY BUFFER
  10855. EQ ISVX RETURN
  10856. LKF SPACE 4,10
  10857. ** LKF - PROCESS *LINKFAM* DIRECTIVE.
  10858.  
  10859.  
  10860. LKF1 ISSMSG ENVF,E * DIRECTIVE NOT VALID ON FAST ATTACH *
  10861.  
  10862. LKF SUBR ENTRY/EXIT
  10863. SA1 LF
  10864. ZR X1,LKF1 IF NOT LOCAL FILE MODE
  10865. MOVEBIT LKFA,TLFM,7*6 SET LINKED FAMILY NAME
  10866. RJ KFM UPDATE FAMILY K-DISPLAY
  10867. EQ LKFX EXIT
  10868.  
  10869. LKFA BSS 1 LINKED FAMILY NAME
  10870. MCH SPACE 4,10
  10871. ** MCH - PROCESS *MREADCH* DIRECTIVE.
  10872.  
  10873.  
  10874. MCH SUBR ENTRY/EXIT
  10875. CHKFIL SS CHECK FOR MACHINE READABLE FILE
  10876. ZR X1,MCHX IF NO FILE WAS SPECIFIED
  10877. MCH1 RCREC N2,5
  10878. GRENTRY N2,MCHA GET USERNAMES TO AUDIT
  10879. ZR X6,MCH3 IF NO USERNAMES
  10880. MCH2 GRENTRY N2,MCHA GET USERNAMES TO AUDIT
  10881. ZR X6,MCH3 IF END OF USERNAMES TO AUDIT
  10882. SA1 TI
  10883. NZ X1,MCH3 IF TERMINAL INTERRUPT
  10884. SA1 MCHA GET USERNAME
  10885. MX0 42
  10886. BX6 X0*X1 MASK USERNAME TO AUDIT
  10887. SA6 UN
  10888. USERAUD M,CN PROCESS NEXT USERNAME TO MACHINE FILE
  10889. EQ MCH2 CHECK NEXT USERNAME TO AUDIT
  10890.  
  10891. MCH3 WRITER SS WRITE END OF RECORD ON FILE
  10892. EQ MCHX RETURN
  10893.  
  10894. MCHA BSS 1 SECONDARY USERNAME POINTER
  10895. MID SPACE 4,10
  10896. ** MID - PROCESS *MID* DIRECTIVE.
  10897.  
  10898.  
  10899. MID1 ISSMSG EDFE,E ISSUE ERROR MESSAGE
  10900.  
  10901. MID SUBR ENTRY/EXIT
  10902. SA1 MIDA CHECK FOR TWO CHARACTERS
  10903. RJUST X1,X1,6,11
  10904. ZR X1,MID1 IF ONLY ONE CHARACTER
  10905. MOVEBIT MIDA,TIDM,2*6,11 SET MACHINE ID
  10906. RJ KFM SET FAMILY LEVEL K-DISPLAY
  10907. EQ MIDX RETURN
  10908.  
  10909. MIDA BSS 1 NEW MACHINE ID
  10910. MUN SPACE 4,10
  10911. ** MUN - PROCESS *MREADUN* DIRECTIVE.
  10912.  
  10913.  
  10914. MUN3 WRITER SS WRITE END OF RECORD
  10915.  
  10916. MUN SUBR ENTRY/EXIT
  10917. CHKFIL SS CHECK MACHINE READABLE FILE
  10918. ZR X1,MUNX IF NO FILE
  10919. SA1 UN
  10920. ZR X1,MUN1 IF MULTIPLE VSNS
  10921. USERAUD M PROCESS USER MACHINE READABLE LIST
  10922. EQ MUN3 WRITE END OF RECORD
  10923.  
  10924. MUN1 RCREC N2,5
  10925. GRENTRY N2,MUNA GET RECORD ENTRY OF DUMMY USER
  10926. ZR X6,MUN3 IF END OF USER NAMES
  10927. MUN2 GRENTRY N2,MUNA GET RECORD ENTRY
  10928. ZR X6,MUN3 IF END OF USER NAMES
  10929. SA1 TI
  10930. NZ X1,MUN3 IF TERMINAL INTERRUPT
  10931. MX0 42 GET USER NAME
  10932. SA1 MUNA
  10933. BX6 X0*X1
  10934. SA6 UN
  10935. USERAUD M PROCESS USER MACHINE READABLE LIST
  10936. EQ MUN2 CHECK NEXT USER NAME
  10937.  
  10938. MUNA BSS 1 SECONDARY USER NAME POINTER IMAGE
  10939. MVS SPACE 4,10
  10940. * MVS - PROCESS *MREADVS* DIRECTIVE.
  10941.  
  10942.  
  10943. MVS4 WRITER SS SET END OF RECORD
  10944.  
  10945. MVS SUBR ENTRY/EXIT
  10946. CHKFIL SS
  10947. ZR X1,MVSX IF NO MACHINE READABLE FILE
  10948. SA1 VS
  10949. ZR X1,MVS1 IF MULTIPLE VSNS
  10950. SX6 B0
  10951. RJ GVE GET VSN ENTRY
  10952. NZ X4,MVSX IF NOT FOUND
  10953. RJ GUV GET USER INFORMATION ON VSN
  10954. RJ VSM PROCESS VSN MACHINE READABLE LIST
  10955. EQ MVS4 SET END OF RECORD
  10956.  
  10957. MVS1 SA1 LF
  10958. ZR X1,MVS2 IF NOT LOCAL FILE MODE
  10959. RJ RVE REPLACE VSN ENTRIES
  10960. MVS2 RCREC N1,4 GET RECORD ENTRY OF DUMMY VSN
  10961. GRENTRY N1,VCAT
  10962. ZR X6,MVS4 IF NO MORE ENTRIES
  10963. MVS3 GRENTRY N1,VCAT
  10964. ZR X6,MVS4 IF NO MORE ENTRIES
  10965. SA1 TI
  10966. NZ X1,MVS4 IF TERMINAL INTERRUPT
  10967. RJ GUV GET USER INFORMATION ON VSN
  10968. RJ VSM PROCESS VSN MACHINE READABLE LIST
  10969. EQ MVS3 GET NEXT ENTRY
  10970. NBF SPACE 4,10
  10971. ** NBF - PROCESS *NOBRIEF* DIRECTIVE.
  10972.  
  10973.  
  10974. NBF SUBR ENTRY/EXIT
  10975. SA1 BF CLEAR BRIEF FLAG
  10976. SX6 B0
  10977. SA6 A1 SET BRIEF FLAG
  10978. EQ NBFX RETURN
  10979. PGA SPACE 4,10
  10980. ** PGA - PROCESS *PURGALL* DIRECTIVE.
  10981.  
  10982.  
  10983. PGA4 MX1 42 SET GENERAL INTERLOCK
  10984. RJ IUN INTERLOCK USER NAME
  10985.  
  10986. PGA SUBR ENTRY/EXIT
  10987. SA1 UN
  10988. RJ IUN INTERLOCK USER NAME
  10989. PGA1 SAFET UN,,,FCST SET AUDIT FET
  10990. NZ X4,PGA4 IF NO MORE FILES
  10991. SB6 FCAT SET BUFFER ADDRESSES
  10992. SB2 TAVS
  10993. RJ UFA UNPACK FILE AUDIT
  10994. SA1 /ADD/NCAT CHECK IF MULTI-FILE
  10995. RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
  10996. NZ X1,PGA2 IF MULTI-FILE
  10997. RJ SUI SET UTILITY INTERLOCK
  10998. RELVSN UN,TAVS RELEASE FILE VIA VSN
  10999. SA1 /ADD/REELC SET VSN BUFFER LENGTH
  11000. RJUST X1,X1,/BTC/REELC,/UPB/REELC
  11001. EQ PGA3 DELETE VSN ENTRIES
  11002.  
  11003. PGA2 GFILEV UN,TAVS,1,FCAT,FCAT,TAVS GET MULTI-FILE
  11004. SX6 B7 SAVE VSN COUNT
  11005. SA6 PGAA
  11006. RJ SUI SET UTILITY INTERLOCK
  11007. RELVSN UN,TAVS RELEASE FILE VIA VSN
  11008. SA1 PGAA SET VSN BUFFER LENGTH
  11009. PGA3 LX1 2 LIST VSN ENTRIES
  11010. LISTAB TAVS,PGAB,X1,,TSVL,VSKL*6
  11011. SX1 X1-TAVS
  11012. AX1 2
  11013. DELVSN PGAB,X1 DELETE VSN ENTRIES
  11014. RJ ISV INTIALIZE SCRATCH VSNS
  11015. RJ CUI CLEAR UTILITY INTERLOCK
  11016. EQ PGA1 CHECK FOR MORE FILES
  11017.  
  11018. PGAA BSS 1 VSN COUNT
  11019. PGAB BSS 60 ASSIGNED VSNS
  11020. PGO SPACE 4,10
  11021. ** PGO - PROCESS GO DIRECTIVE.
  11022. *
  11023. * EXIT FIRST PRU OF CATALOG READ, MODIFIED AND REWRITTEN.
  11024. * EXIT TO *END*.
  11025. *
  11026. * CALLS END.
  11027. *
  11028. * USES X3, X4.
  11029. *
  11030. * CALLS MSV.
  11031. *
  11032. * MACROS RCREC, WCREC.
  11033.  
  11034.  
  11035. PGO SUBR ENTRY/EXIT
  11036. RCREC N1,1,REC1,1 READ FIRST RECORD
  11037. SX3 TSST SET MODIFIED VALUE TABLE ADDRESS
  11038. SX4 REC1+TBHL SET SYSTEM TABLE ADDRESS
  11039. RJ MSV MOVE SYSTEM TABLE VALUES
  11040. WCREC N1,1,REC1,1 REWRITE FIRST RECORD
  11041. EQ END END *TFSP*
  11042. PTF SPACE 4,10
  11043. ** PTF - PROCESS *PURGE* DIRECTIVE.
  11044.  
  11045. PTF5 ISSMSG B5,E ISSUE ERROR MESSAGE
  11046. RJ CUI CLEAR UTILITY INTERLOCK
  11047.  
  11048. PTF SUBR ENTRY/EXIT
  11049. RJ RVE REPLACE VSN ENTRIES
  11050. SX6 B0
  11051. RJ GVE GET VSN ENTRY
  11052. SB5 EVNC
  11053. NZ X4,PTF5 IF VSN IS NOT IN CATALOG
  11054. RJ GUV GET USER INFORMATION FOR THIS VSN
  11055. SB5 EVNF
  11056. ZR X1,PTF3 IF VSN NOT ASSIGNED TO TAPE FILE
  11057. MOVEBIT /ADD/FVSN,VS,VSKL*6,/UPB/FVSN SET FIRST VSN
  11058. SAFET UN,VS,,SCST GENERATE FET AUDIT
  11059. SB5 EVNC
  11060. NZ X4,PTF5 IF ERROR IN CATALOG FOR THIS FILE
  11061. SB6 FCAT SET BUFFER ADDRESSES FOR FILE AUDIT
  11062. SB2 TAVS
  11063. RJ UFA UNPACK FILE AUDIT
  11064. SA1 /ADD/NCAT CHECK IF MULTI-FILE
  11065. RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
  11066. NZ X1,PTF1 IF MULTI-FILE SET
  11067. RJ SUI SET UTILITY INTERLOCK
  11068. RELVSN UN,TAVS RELEASE FILE VIA VSN
  11069. SA1 /ADD/REELC SET VSN BUFFER LENGTH
  11070. RJUST X1,X1,/BTC/REELC,/UPB/REELC
  11071. EQ PTF2 DELETE VSN ENTRIES
  11072.  
  11073. PTF1 GFILEV UN,TAVS,1,FCAT,FCAT,TAVS GET MULTI FILE
  11074. SX6 B7 SAVE THE VSN COUNT
  11075. SA6 PTFA
  11076. RJ SUI SET UTILITY INTERLOCK
  11077. RELVSN UN,TAVS RELEASE FILE VIA-VSN
  11078. SA1 PTFA VSN BUFFER LENGTH
  11079. PTF2 LX1 2 LIST OF VSN ENTRIES
  11080. LISTAB TAVS,PTFB,X1,,TSVL,VSKL*6
  11081. DELVSN PTFB,X1-PTFB DELETE ENTRIES
  11082. EQ PTF4 INITIALIZE SCRATCH VSNS
  11083.  
  11084. PTF3 RJ SUI SET UTILITY INTERLOCK
  11085. DELVSN VS,1
  11086. ZR X4,PTF4 IF NO ERRORS
  11087. SB5 EVNC PRESET ERROR ADDRESS
  11088. SX4 X4-/EMSG/VNF
  11089. ZR X4,PTF5 IF NOT IN CATALOG
  11090. SB5 EVAA RESET ERROR MESSAGE ADDRESS
  11091. EQ PTF5 ISSUE ERROR MESSAGE
  11092.  
  11093. PTF4 RJ ISV INITIALIZE SCRATCH VSNS
  11094. RJ CUI CLEAR UTILITY INTERLOCK
  11095. ISSMSG IVRC,I ISSUE INFORMATIVE MESSAGE
  11096. EQ PTFX RETURN
  11097.  
  11098. PTFA BSS 1 VSN COUNT
  11099. PTFB BSS 60 ASSIGNED VSNS
  11100. REL SPACE 4,10
  11101. ** REL - PROCESS *RELEASE* DIRECTIVE.
  11102.  
  11103.  
  11104. REL1 ISSMSG B5,E ISSUE ERROR MESSAGE
  11105. RJ CUI CLEAR UTILITY INTERLOCK
  11106.  
  11107. REL SUBR ENTRY/EXIT
  11108. RJ SUI SET UTILITY INTERLOCK
  11109. SX6 B0
  11110. RJ GVE GET VSN ENTRY
  11111. SB5 EVNC
  11112. NZ X4,REL1 IF VSN NOT IN CATALOG
  11113. RJ GUV GET USER INFORMATION FOR VSN
  11114. SB5 EVNF
  11115. ZR X1,REL1 IF VSN NOT ASSIGNED
  11116. MOVEBIT /ADD/FVSN,VS,VSKL*6,/UPB/FVSN SET FIRST VSN
  11117. RELVSN UN,VS RELEASE FILE VIA VSN
  11118. RJ CUI CLEAR UTILITY INTERLOCK
  11119. ISSMSG IFRC,I ISSUE INFORMATIVE MESSAGE
  11120. EQ RELX RETURN
  11121. REM SPACE 4,10
  11122. ** REM - PROCESS *REMOVE* DIRECTIVE.
  11123.  
  11124.  
  11125. REM2 ISSMSG B5,E ISSUE ERROR MESSAGE
  11126. RJ CUI CLEAR UTILITY INTERLOCK
  11127.  
  11128. REM SUBR ENTRY/EXIT
  11129. RJ RVE REPLACE VSN ENTRIES
  11130. RJ SUI SET UTILITY INTERLOCK
  11131. DELVSN VS,1 DELETE VSN
  11132. ZR X4,REM1 IF NO ERRORS
  11133. SB5 EVNC PRESET ERROR MESSAGE ADDRESS
  11134. SX4 X4-/EMSG/VNF
  11135. ZR X4,REM2 IF VSN NOT IN CATALOG
  11136. SB5 EVAA RESET ERROR MESSAGE ADDRESS
  11137. EQ REM2 ISSUE ERROR MESSAGE
  11138.  
  11139. REM1 RJ ISV INITIALIZE SCRATCH VSNS
  11140. RJ CUI CLEAR UTILITY INTERLOCK
  11141. ISSMSG IVRC,I ISSUE INFORMATIVE MESSAGE
  11142. EQ REMX RETURN
  11143. SCH SPACE 4,10
  11144. ** SCH - PROCESS *SOURCCH* DIRECTIVE.
  11145.  
  11146.  
  11147. SCH SUBR ENTRY/EXIT
  11148. CHKFIL S CHECK IF FILE SPECIFIED
  11149. ZR X1,SCHX IF FILE NOT SPECIFIED
  11150. SCH1 RCREC N2,5
  11151. GRENTRY N2,SCHA GET DUMMY USER RECORD
  11152. ZR X6,SCH3 IF NO USERNAMES
  11153. SCH2 GRENTRY N2,SCHA GET USERNAMES
  11154. ZR X6,SCH3 IF END OF USERNAMES
  11155. SA1 TI
  11156. NZ X1,SCH3 IF TERMINAL INTERRUPT
  11157. MX0 42
  11158. SA1 SCHA
  11159. BX6 X0*X1 MASK USERNAME TO PROCESS
  11160. SA6 UN
  11161. USERAUD S,CN PROCESS USER SOURCE LISTING
  11162. EQ SCH2 CHECK IF MORE USERS TO PROCESS
  11163.  
  11164. SCH3 WRITER S WRITE END OF RECORD
  11165. EQ SCHX RETURN
  11166.  
  11167. SCHA BSS 1 SECONDARY USERNAME POINTER
  11168. SOU SPACE 4,10
  11169. ** SOU - PROCESS *SOURCE* DIRECTIVE.
  11170.  
  11171.  
  11172. SOU4 WRITER S WRITE END OF RECORD
  11173.  
  11174. SOU SUBR ENTRY/EXIT
  11175. CHKFIL S CHECK SOURCE FILE
  11176. ZR X1,SOUX IF NO FILE
  11177. RCREC N1,4
  11178. GRENTRY N1,VCAT GET RECORD ENTRY FOR DUMMY VSN
  11179. ZR X6,SOU2 IF END OF VSNS
  11180. SOU1 GRENTRY N1,VCAT GET RECORD ENTRY
  11181. ZR X6,SOU2 IF END OF VSNS
  11182. RJ VSS PROCESS SOURCE VSN ENTRY
  11183. SA1 TI
  11184. NZ X1,SOU4 IF TERMINAL INTERRUPT
  11185. EQ SOU1 GET NEXT VSN
  11186.  
  11187. SOU2 RCREC N2,5
  11188. GRENTRY N2,SOUA GET RECORD ENTRY OF DUMMY USER NAME
  11189. ZR X6,SOU4 IF END OF USER NAMES
  11190. SOU3 GRENTRY N2,SOUA GET RECORD ENTRY
  11191. ZR X6,SOU4 IF END OF USER NAMES
  11192. SA1 TI
  11193. NZ X1,SOU4 IF TERMINAL INTERRUPT
  11194. MX0 42 GET USER NAME
  11195. SA1 SOUA
  11196. BX6 X0*X1
  11197. SA6 UN
  11198. SA6 SOUC
  11199. WRITEC S,SOUB WRITE USER DIRECTIVE
  11200. USERAUD SNV PROCESS USER SOURCE LIST WITH NO VSNS
  11201. WRITEC S,(=C*DROP*) WRITE *DROP* DIRECTIVE
  11202. EQ SOU3 CHECK NEXT USER NAME
  11203.  
  11204. SOUA BSS 1 SECONDARY USER NAME POINTER IMAGE
  11205. SOUB DATA H*USER =* INITIAL DIRECTIVE
  11206. SOUC DATA C* *
  11207. SUN SPACE 4,10
  11208. ** SUN - PROCESS *SOURCUN* DIRECTIVE.
  11209.  
  11210.  
  11211. SUN3 WRITER S WRITE END OF RECORD
  11212.  
  11213. SUN SUBR ENTRY/EXIT
  11214. CHKFIL S CHECK SOURCE FILE
  11215. ZR X1,SUNX IF NO FILE
  11216. SA1 UN
  11217. ZR X1,SUN1 IF MULTIPLE VSNS
  11218. USERAUD S PROCESS USER SOURCE LIST
  11219. EQ SUN3 WRITE END OF RECORD
  11220.  
  11221. SUN1 RCREC N2,5
  11222. GRENTRY N2,SUNA GET RECORD ENTRY OF DUMMY USER
  11223. ZR X6,SUN3 IF END OF USER NAMES
  11224. SUN2 GRENTRY N2,SUNA GET RECORD ENTRY
  11225. ZR X6,SUN3 IF END OF USER NAMES
  11226. SA1 TI
  11227. NZ X1,SUN3 IF TERMINAL INTERRUPT
  11228. MX0 42 GET USER NAME
  11229. SA1 SUNA
  11230. BX6 X0*X1
  11231. SA6 UN
  11232. USERAUD S PROCESS USER SOURCE LIST
  11233. EQ SUN2 CHECK NEXT USER NAME
  11234.  
  11235. SUNA BSS 1 SECONDARY USER NAME POINTER IMAGE
  11236. SVS SPACE 4,10
  11237. * SVS - PROCESS *SOURCVS* DIRECTIVE.
  11238.  
  11239.  
  11240. SVS4 WRITER S SET END OF RECORD
  11241.  
  11242. SVS SUBR ENTRY/EXIT
  11243. CHKFIL S
  11244. ZR X1,SVSX IF NO SOURCE FILE
  11245. SA1 VS
  11246. ZR X1,SVS1 IF MULTIPLE VSNS
  11247. SX6 B0
  11248. RJ GVE GET VSN ENTRY
  11249. NZ X4,SVSX IF NOT FOUND
  11250. RJ GUV GET USER INFORMATION ON VSN
  11251. RJ VSS PROCESS VSN SOURCE LIST
  11252. EQ SVS4 SET END OF RECORD
  11253.  
  11254. SVS1 SA1 LF
  11255. ZR X1,SVS2 IF NOT LOCAL FILE MODE
  11256. RJ RVE REPLACE VSN ENTRIES
  11257. SVS2 RCREC N1,4 GET RECORD ENTRY OF DUMMY VSN
  11258. GRENTRY N1,VCAT
  11259. ZR X6,SVS4 IF NO MORE ENTRIES
  11260. SVS3 GRENTRY N1,VCAT
  11261. ZR X6,SVS4 IF NO MORE ENTRIES
  11262. SA1 TI
  11263. NZ X1,SVS4 IF TERMINAL INTERRUPT
  11264. RJ GUV GET USER INFORMATION ON VSN
  11265. RJ VSS PROCESS VSN SOURCE LIST
  11266. EQ SVS3 GET NEXT ENTRY
  11267. USE SPACE 4,10
  11268. ** USE - PROCESS *USER* DIRECTIVE.
  11269.  
  11270.  
  11271. USE SUBR ENTRY/EXIT
  11272. RJ RVE REPLACE VSN ENTRIES
  11273. SA1 UN GET USER NAME
  11274. RJ IUN INTERLOCK USER NAME
  11275. SX6 B1 SET USER NAME NOT FOUND
  11276. SA6 UF
  11277. RJ USL PROCESS USER LEVEL
  11278. EQ USEX RETURN
  11279. VAL SPACE 4,10
  11280. ** VAL - PROCESS *VALIDAT* DIRECTIVE.
  11281.  
  11282.  
  11283. VAL2 RJ KFM SET FAMILY LEVEL K-DISPLAY
  11284.  
  11285. VAL SUBR ENTRY/EXIT
  11286. MX0 42
  11287. SRCHTAB TVUN,UN,UNCL SEARCH FOR USER NAME
  11288. ZR X4,VAL2 IF ALREADY IN TABLE
  11289. SRCHTAB TVUN,=0,B2,B3,B4 SEARCH FOR EMPTY ENTRY
  11290. NZ X4,VAL1 IF NO ROOM LEFT IN TABLE
  11291. SA2 UN SET USER NAME IN TABLE
  11292. BX6 X2
  11293. SA6 A1
  11294. EQ VAL2 REWRITE FIRST RECORD
  11295.  
  11296. VAL1 ISSMSG EVUM,E ISSUE ERROR MESSAGE
  11297. EQ VAL2 REWRITE FIRST RECORD
  11298. VSN SPACE 4,10
  11299. ** VSN - PROCESS *VSN* DIRECTIVE.
  11300.  
  11301.  
  11302. VSN6 RJ GUV GET USER INFORMATION FOR VSN
  11303. RJ SUI SET UTILITY INTERLOCK
  11304. GFILEV UN,VS,1,FCAT,PCAT,TAVS GET TAPE FILE ENTRY
  11305. SA1 /ADD/FBIL
  11306. LJUST X1,X1,/BTC/FBIL,/UPB/FBIL
  11307. NZ X1,VSN7 IF FILE BUSY
  11308. SA1 /ADD/REELNO CHECK REEL NUMBER OF VSN
  11309. RJUST X1,X1,/BTC/REELNO,/UPB/REELNO
  11310. SX1 X1-1
  11311. ZR X1,VSN6.1 IF FIRST REEL EQUALS CURRENT REEL
  11312. SA1 TAVS+/CAT/VSBF CHECK IF FIRST VSN BUSY
  11313. RJUST X1,X1,/BTC/VSBF,/UPB/VSBF
  11314. NZ X1,VSN7 IF FIRST VSN BUSY
  11315. VSN6.1 SX6 B7 SAVE VSN COUNT
  11316. SA6 VC
  11317. SA1 UN
  11318. RJ IUN INTERLOCK USER NAME
  11319. RJ CUI CLEAR UTILITY INTERLOCK
  11320. SB2 1R# REPLACE USER NAME IN ERROR MESSAGE
  11321. SB3 VSNA
  11322. SB5 -IVRB
  11323. SA1 UN
  11324. RJ SNM SET NAME IN MESSAGE
  11325. RJ RVE REPLACE VSN ENTRIES
  11326. ISSMSG VSNA,I ISSUE INFORMATIVE MESSAGE
  11327. SX6 B1
  11328. EQ VSN4 SET VSN IN CATALOG FLAG
  11329.  
  11330. VSN7 RJ CUI CLEAR UTILITY INTERLOCK
  11331. RJ RVE REPLACE VSN ENTRIES
  11332. VSN8 SX6 B0 CLEAR VSN INTERLOCK FLAG
  11333. SA6 VI
  11334. SB5 EVSB *VSN BUSY*
  11335. ISSMSG B5,E ISSUE ERROR MESSAGE
  11336.  
  11337. VSN SUBR ENTRY/EXIT
  11338. SX6 B0
  11339. SA6 VI CLEAR VSN INTERLOCK
  11340. SA6 VC CLEAR VSN COUNT
  11341. SA1 NV
  11342. NZ X1,VSN1 IF NO VERIFY MODE
  11343. SX6 B1 FLAG VSN INTERLOCK
  11344. RJ GVE GET VSN ENTRY
  11345. ZR X4,VSN2 IF VSN IN CATALOG
  11346. VSN1 MOVE TSVL,DVSC,VCAT SET DEFAULT VSN ENTRY
  11347. MOVEBIT VS,/ADD/VSN,/BTC/VSN,,/UPB/VSN
  11348. MOVEBIT VS,/ADD/PRN,/BTC/PRN,,/UPB/PRN
  11349. ISSMSG IVNC,I ISSUE INFORMATIVE MESSAGE
  11350. SX6 B0
  11351. EQ VSN4 CLEAR VSN IN CATALOG FLAG
  11352.  
  11353. VSN2 SA1 /ADD/VSBF CHECK IF VSN IS BUSY
  11354. RJUST X1,X1,/BTC/VSBF,/UPB/VSBF
  11355. SX6 B1
  11356. ZR X1,VSN3 IF VSN NOT BUSY
  11357. SA6 VI SET VSN BUSY FLAG
  11358. VSN3 RJ RVB REPLACE VSN IN BUFFER
  11359. SA1 /ADD/VASF CHECK IF VSN IS ASSIGNED
  11360. RJUST X1,X1,/BTC/VASF,/UPB/VASF
  11361. NZ X1,VSN5 IF VSN ASSIGNED
  11362. SA1 VI
  11363. NZ X1,VSN8 IF VSN IS BUSY AND NOT ASSIGNED
  11364. ISSMSG IVIC,I ISSUE INFORMATIVE MESSAGE
  11365. SX6 B1
  11366. VSN4 SA6 VF SET/CLEAR VSN IN CATALOG FLAG
  11367. RJ VSL PROCESS VSN LEVEL
  11368. EQ VSNX RETURN
  11369.  
  11370. * PROCESS VSN WITH FILE CATALOG ASSIGNED.
  11371.  
  11372. VSN5 SA1 VI
  11373. ZR X1,VSN6 IF VSN NOT BUSY, BUT ASSIGNED
  11374. SA1 LF
  11375. NZ X1,VSN8 IF LOCAL FILE MODE
  11376. SX1 ASVS CHECK FOR SCRATCH VSN
  11377. SA2 VCAT+VEVS
  11378. BX1 X1*X2
  11379. ZR X1,VSN6 IF *VSN* NOT SCRATCH
  11380. SA1 VCAT+VEFV
  11381. SA2 MX
  11382. MX3 -9
  11383. MX7 -4
  11384. BX3 -X3*X1 EXTRACT EJT ORDINAL
  11385. LX1 -12
  11386. BX7 -X7*X1 EXTRACT MACHINE INDEX-1
  11387. BX7 X7-X2
  11388. NZ X7,VSN8 IF NOT ASSIGNED ON THIS MACHINE
  11389. RJ IJM ISSUE JSN MESSAGE
  11390. SX6 B1 SET VSN IN CATALOG
  11391. EQ VSN4 SET VSN IN CATALOG FLAG
  11392.  
  11393. VSNA DATA C* VSN RESERVED BY #######.*
  11394. IJM SPACE 4,10
  11395. ** IJM - ISSUE JSN MESSAGE.
  11396. *
  11397. * ENTRY (X3) = EJT ORDINAL.
  11398. *
  11399. * EXIT VSN INTERLOCKED MESSAGE ISSUED.
  11400. *
  11401. * USES B - 2, 3, 5.
  11402. * X - 0, 1, 2.
  11403. *
  11404. * CALLS RCW, SNM.
  11405. *
  11406. * MACROS ISSMSG.
  11407.  
  11408.  
  11409. IJM SUBR ENTRY/EXIT
  11410. SX2 EJTP READ EJT POINTERS
  11411. RJ RCW
  11412. SX2 EJTE SET EJT ENTRY LENGTH
  11413. LX1 24
  11414. IX2 X3*X2
  11415. SX1 X1
  11416. IX2 X1+X2
  11417. ERRNZ JSNE-0
  11418. RJ RCW READ EJT *JSNE* WORD
  11419. MX0 24 SET JSN
  11420. BX1 X0*X1
  11421. SB2 1R?
  11422. SB3 IJMA SET MESSAGE ADDRESS
  11423. SB5 -IVSI SET TEMPLATE ADDRESS
  11424. RJ SNM SET NAME IN MESSAGE
  11425. ISSMSG IJMA,I
  11426. EQ IJMX RETURN
  11427.  
  11428. IJMA DATA C* VSN INTERLOCKED. JSN IS ????.*
  11429.  
  11430. QUAL *
  11431. TITLE VSN LEVEL DIRECTIVE PROCESSORS.
  11432. SPACE 4
  11433. QUAL LVVS
  11434. VSNDIR SPACE 4,10
  11435. ** VSN LEVEL DIRECTIVE PROCESSORS.
  11436. *
  11437. * ENTRY FROM *DIP*.
  11438. * (VF) = 0 IF VSN NOT IN CATALOG.
  11439. * (VS) = VSN NAME.
  11440. * (VCAT) = VSN ENTRY IMAGE.
  11441. *
  11442. * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
  11443. ADD SPACE 4,10
  11444. ** ADD - PROCESS *ADD* DIRECTIVE.
  11445.  
  11446.  
  11447. ADD1 ISSMSG B5,E ISSUE ERROR MESSAGE
  11448.  
  11449. ADD SUBR ENTRY/EXIT
  11450. SA1 VF CHECK VSN FLAG
  11451. SB5 EVAI SET ERROR MESSAGE ADDRESS
  11452. NZ X1,ADD1 IF VSN ALREADY IN CATALOG
  11453. RJ ARV ADD/REVISE VSN ENTRY
  11454. SB2 B0
  11455. RJ SMC ISSUE *SDAD* ACCOUNT FILE MESSAGE
  11456. ISSMSG IVAC,I ISSUE INFORMATIVE MESSAGE
  11457. RJ FAL PROCESS FAMILY LEVEL
  11458. EQ ADDX RETURN
  11459. DRO SPACE 4,10
  11460. ** DRO - PROCESS *DROP* DIRECTIVE.
  11461.  
  11462.  
  11463. DRO SUBR ENTRY/EXIT
  11464. SA1 VF
  11465. ZR X1,DRO1 IF VSN NOT IN CATALOG
  11466. SA1 LF
  11467. NZ X1,DRO1 IF LOCAL FILE MODE
  11468. RJ RVE REPLACE VSN ENTRIES
  11469. SA1 VC
  11470. ZR X1,DRO1 IF NOT ASSIGNED VSN
  11471. MX1 UNKL*6
  11472. RJ IUN INTERLOCK USER NAME
  11473. DRO1 ISSMSG IVNP,I ISSUE INFORMATIVE MESSAGE
  11474. RJ FAL PROCESS FAMILY LEVEL
  11475. EQ DROX RETURN
  11476. OWN SPACE 4,10
  11477. ** OWN - PROCESS *OWNER* DIRECTIVE.
  11478.  
  11479.  
  11480. OWN SUBR ENTRY/EXIT
  11481. SA1 /ADD/OWNER GET NEW OWNERSHIP
  11482. RJUST X1,X1,/BTC/OWNER,/UPB/OWNER
  11483. ZR X1,OWNX IF CENTER-OWNED VSN
  11484. SA1 /ADD/SYSTEM GET SYSTEM VSN FLAG
  11485. RJUST X1,X1,/BTC/SYSTEM,/UPB/SYSTEM
  11486. ZR X1,OWNX IF SYSTEM VSN FLAG NOT SET
  11487. SX1 B0+ RESET OWNERSHIP TO CENTER-OWNED
  11488. MOVEBIT A1,/ADD/OWNER,/BTC/OWNER,/BTC/OWNER-1,/UPB/OWNER
  11489. ISSMSG ESVC,E * SYSTEM VSN CANNOT BE USER-OWNED.*
  11490. EQ OWNX RETURN
  11491. PGO SPACE 4,10
  11492. ** PGO - PROCESS *GO* DIRECTIVE.
  11493. *
  11494. * ENTRY (VF) = 0, IF VSN NOT IN CATALOG.
  11495. *
  11496. * EXIT VSN ADDED OR REVISED.
  11497. *
  11498. * USES A - 1.
  11499. * X - 1.
  11500. *
  11501. * CALLS ADD, REV.
  11502.  
  11503.  
  11504. PGO1 RJ ADD ADD VSN ENTRY
  11505.  
  11506. PGO SUBR ENTRY/EXIT
  11507. SA1 VF
  11508. ZR X1,PGO1 IF VSN NOT IN CATALOG
  11509. RJ REV REVISE VSN
  11510. EQ PGOX RETURN
  11511. REV SPACE 4,10
  11512. ** REV - PROCESS *REVISE* DIRECTIVE.
  11513.  
  11514.  
  11515. REV7 ISSMSG B5,E ISSUE ERROR MESSAGE
  11516.  
  11517. REV SUBR ENTRY/EXIT
  11518. SA1 VF CHECK VSN FLAG
  11519. SB5 EVNA SET ERROR MESSAGE ADDRESS
  11520. ZR X1,REV7 IF VSN NOT IN CATALOG
  11521. SA1 VC
  11522. NZ X1,REV4 IF ASSIGNED VSN
  11523. RJ ARV ADD/REPLACE VSN ENTRY
  11524. REV1 SB2 B1
  11525. RJ SMC ISSUE *SDRV* ACCOUNT FILE MESSAGE
  11526. SA4 ER
  11527. PL X4,REV2 IF NO *ERROR* MESSAGE SET
  11528. BX4 -X4
  11529. SB5 X4
  11530. EQ REV7 ISSUE *ERROR* MESSAGE
  11531.  
  11532. REV2 SB5 X4
  11533. NZ B5,REV3 IF *INFORM* MESSAGE ALREADY SET
  11534. SB5 IVSR SET *INFORM* MESSAGE
  11535. REV3 ISSMSG B5,I ISSUE *INFORM* MESSAGE
  11536. RJ FAL PROCESS FAMILY LEVEL
  11537. EQ REVX RETURN
  11538.  
  11539. REV4 MX0 VSKL*6 FIND ENTRY IN VSN TABLE
  11540. SA3 VC
  11541. ERRNZ TSVL-4 VSN ENTRY LENGTH NOT 2**2
  11542. LX3 2
  11543. SRCHTAB TAVS,VS,X3,TSVL
  11544. MOVE TSVL,VCAT,A1 REPLACE VSN ENTRY IN TABLE
  11545. SX0 UOVS+TVVS RESET OWNERSHIP AND SITE STATUSES
  11546. SA1 VCAT+VEVS
  11547. BX1 X0*X1
  11548. SA2 VC
  11549. LX2 2
  11550. REV5 SX2 X2-TSVL
  11551. NG X2,REV6 IF END OF VSN TABLE
  11552. SA3 X2+TAVS+VEVS RESET STATUS BITS
  11553. BX6 -X0*X3
  11554. BX6 X6+X1
  11555. SA6 A3
  11556. EQ REV5 CHECK NEXT VSN
  11557.  
  11558. REV6 SA1 VC REPLACE VSNS ASSIGNED TO TAPE FILE
  11559. LX1 2
  11560. REPVSN TAVS,X1
  11561. MX1 UNKL*6
  11562. RJ IUN INTERLOCK USER NAME
  11563. EQ REV1 ISSUE *SDRV* MESSAGE
  11564. STA SPACE 4,10
  11565. ** STA - PROCESS *STATUS* DIRECTIVE
  11566.  
  11567.  
  11568. STA4 RJ KST SET VSN STATUS IN K-DISPLAY
  11569.  
  11570. STA SUBR ENTRY/EXIT
  11571. SA1 ME
  11572. ZR X1,STA2 IF AVAILABLE
  11573. SX1 X1-1
  11574. ZR X1,STA1 IF CLEANED
  11575. SX1 X1-1
  11576. ZR X1,STA3 IF HOLD
  11577. MOVEBIT (=1),/ADD/ERRFLAG,/BTC/ERRFLAG,0,/UPB/ERRFLAG
  11578. MOVEBIT (=1),/ADD/MAINT,/BTC/MAINT,0,/UPB/MAINT
  11579. EQ STA4 SET STATUS IN K-DISPLAY
  11580.  
  11581. STA1 MOVEBIT (=0),/ADD/USAGE,/BTC/USAGE,59,/UPB/USAGE
  11582. STA2 MOVEBIT (=0),/ADD/ERRFLAG,/BTC/ERRFLAG,0,/UPB/ERRFLAG
  11583. MOVEBIT (=0),/ADD/MAINT,/BTC/MAINT,0,/UPB/MAINT
  11584. EQ STA4 SET STATUS IN K-DISPLAY
  11585.  
  11586. STA3 MOVEBIT (=0),/ADD/ERRFLAG,/BTC/ERRFLAG,0,/UPB/ERRFLAG
  11587. MOVEBIT (=1),/ADD/MAINT,/BTC/MAINT,0,/UPB/MAINT
  11588. EQ STA4 SET STATUS IN K-DISPLAY
  11589. SYS SPACE 4,10
  11590. ** SYS - PROCESS *SYSTEM* DIRECTIVE.
  11591.  
  11592.  
  11593. SYS SUBR ENTRY/EXIT
  11594. SA1 /ADD/SYSTEM GET NEW SYSTEM VSN FLAG
  11595. RJUST X1,X1,/BTC/SYSTEM,/UPB/SYSTEM
  11596. SA3 VF CHECK IF VSN ALREADY IN CATALOG
  11597. ZR X3,SYS2 IF VSN NOT IN CATALOG
  11598. SA2 SVF
  11599. BX6 X1-X2
  11600. ZR X6,SYSX IF SYSTEM VSN FLAG DID NOT CHANGE
  11601. SB5 ECSV * CANNOT CHANGE SYSTEM VSN FLAG.*
  11602. SYS1 SA1 SVF RESET OLD *SYSTEM* VALUE INTO VSN ENTRY
  11603. MOVEBIT A1,/ADD/SYSTEM,/BTC/SYSTEM,/BTC/SYSTEM-1,/UPB/SYSTEM
  11604. ISSMSG B5,E ISSUE ERROR MESSAGE
  11605. EQ SYSX RETURN
  11606.  
  11607. SYS2 ZR X1,SYSX IF SYSTEM VSN FLAG NOT SET
  11608. SA1 /ADD/OWNER CHECK VSN OWNERSHIP
  11609. RJUST X1,X1,/BTC/OWNER,/UPB/OWNER
  11610. ZR X1,SYSX IF CENTER-OWNED VSN
  11611. SB5 ESVC * SYSTEM VSN CANNOT BE USER-OWNED.*
  11612. EQ SYS1 RESET OLD VALUE AND ISSUE ERROR MESSAGE
  11613. VTY SPACE 4,10
  11614. ** VTY - PROCESS *VT* DIRECTIVE.
  11615.  
  11616.  
  11617. VTY SUBR ENTRY/EXIT
  11618. SA1 VF CHECK IF VSN ALREADY IN CATALOG
  11619. ZR X1,VTYX IF VSN NOT IN CATALOG
  11620. SA1 /ADD/VT GET NEW VSN TAPE TYPE
  11621. RJUST X1,X1,/BTC/VT,/UPB/VT
  11622. SA2 VTT
  11623. BX6 X1-X2
  11624. ZR X6,VTYX IF VSN TAPE TYPE DID NOT CHANGE
  11625. SA1 VTT RESET OLD *VT* VALUE INTO VSN ENTRY
  11626. MOVEBIT A1,/ADD/VT,/BTC/VT,1,/UPB/VT
  11627. ISSMSG ECTD,E * CANNOT CHANGE TAPE TYPE / DENSITY.*
  11628. EQ VTYX RETURN
  11629. SPACE 4,10
  11630. QUAL *
  11631. TITLE USER LEVEL DIRECTIVE PROCESSORS.
  11632. SPACE 4
  11633. QUAL LVUS
  11634. USEDIR SPACE 4,10
  11635. ** USER LEVEL DIRECTIVE PROCESSORS.
  11636. *
  11637. * ENTRY FROM *DIP*.
  11638. * (AA) = AUDIT RANDOM ADDRESS FOR K-DISPLAY.
  11639. * (UF) = 0 IF FILES ASSIGNED TO USER.
  11640. * (UN) = USER NAME.
  11641. *
  11642. * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
  11643. ACN SPACE 4,10
  11644. ** ACN - PROCESS *AUDITCN* DIRECTIVE.
  11645.  
  11646.  
  11647. ACN SUBR ENTRY/EXIT
  11648. NEWPAGE PFIA,PFIAL SET PAGE HEADER
  11649. USERAUD A,CN PROCESS USER AUDIT LIST
  11650. NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
  11651. EQ ACNX FORCE NEW PAGE
  11652. AFI SPACE 4,10
  11653. ** AFI - PROCESS *AUDITFI* DIRECTIVE.
  11654.  
  11655.  
  11656. AFI SUBR ENTRY/EXIT
  11657. NEWPAGE PFIA,PFIAL FORCE NEW PAGE
  11658. GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
  11659. NZ X4,AFIX IF FILE NOT FOUND
  11660. RJ FIA PROCESS FILE AUDIT
  11661. NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
  11662. EQ AFIX RETURN
  11663. AFV SPACE 4,10
  11664. ** AFV - PROCESS *AUDITFV* DIRECTIVE.
  11665.  
  11666.  
  11667. AFV SUBR ENTRY/EXIT
  11668. NEWPAGE PFIA,PFIAL FORCE NEW PAGE
  11669. USERAUD A,,VS PROCESS USER AUDIT LIST
  11670. NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
  11671. EQ AFVX RETURN
  11672. DRO SPACE 4,10
  11673. ** DRO - PROCESS *DROP* DIRECTIVE.
  11674.  
  11675.  
  11676. DRO SUBR ENTRY/EXIT
  11677. MX1 42 SET GENERAL USER NAME INTERLOCK
  11678. RJ IUN INTERLOCK USER NAME
  11679. ISSMSG IULC,I ISSUE INFORMATIVE MESSAGE
  11680. RJ FAL PROCESS FAMILY LEVEL
  11681. EQ DROX RETURN
  11682. FIL SPACE 4,10
  11683. ** FIL - PROCESS *FILE* DIRECTIVE.
  11684.  
  11685.  
  11686. FIL3 ISSMSG B5,E ISSUE ERROR MESSAGE
  11687.  
  11688. FIL SUBR ENTRY/EXIT
  11689. SA4 NV GET FILE VIA FILE ID
  11690. GFILE UN,FI,FCAT,PCAT,TAVS,X4
  11691. ZR X4,FIL1 IF FILE FOUND
  11692. SX6 B0 PRESET URDATE FIELD
  11693. SA6 TAVS+/CAT/URDATE
  11694. SA6 TAVS+/CAT/NEWRDT
  11695. RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
  11696. ISSMSG IFNR,I ISSUE INFORMATIVE MESSAGE
  11697. SX6 B0
  11698. EQ FIL2 CLEAR RESERVE FLAG
  11699.  
  11700. FIL1 RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
  11701. SA1 /ADD/FBIL CHECK IF FILE IS BUSY
  11702. RJUST X1,X1,/BTC/FBIL,/UPB/FBIL
  11703. SB5 EFIB
  11704. NZ X1,FIL3 IF FILE IS BUSY
  11705. ISSMSG IFIR,I ISSUE INFORMATIVE MESSAGE
  11706. SX6 B1 SET RESERVE FLAG
  11707. FIL2 SA6 RF
  11708. SA1 VC CLEAR NEXT VSN ENTRY IN TABLE
  11709. LX1 2
  11710. SX6 B0
  11711. SA6 X1+TAVS
  11712. SA6 AV CLEAR NEW VSN TABLE ADDRESS
  11713. RJ KVQ SET FIRST VSN AND SEQUENCE IN K-DISPLAY
  11714. RJ KAV SET ASSIGNED VSNS IN K-DISPLAY
  11715. RJ //FIL PROCESS FILE LEVEL
  11716. EQ FILX RETURN
  11717. FIV SPACE 4,10
  11718. ** FIV - PROCESS *FILEV* DIRECTIVE.
  11719.  
  11720.  
  11721. FIV4 ISSMSG B5,E ISSUE ERROR MESSAGE
  11722.  
  11723. FIV SUBR ENTRY/EXIT
  11724. MX0 VSKL*6 SET FIRST VSN
  11725. SA1 FV
  11726. BX6 X0*X1
  11727. SA6 A1
  11728. SA6 VS
  11729. BX3 -X0*X1 SET SEQUENCE NUMBER
  11730. SA4 NV GET FILE VIA VSN
  11731. GFILEV UN,FV,X3,FCAT,PCAT,TAVS,X4
  11732. ZR X4,FIV2 IF FILE FOUND
  11733. PL X4,FIV1 IF DEFAULT IS SET
  11734. SX4 X4+B1 CHECK IF INCORRECT SEQUENCE NUMBER
  11735. SB5 EIQN
  11736. ZR X4,FIV4 IF INCORRECT SEQUENCE NUMBER
  11737. SB5 EVNV
  11738. EQ FIV4 ISSUE ERROR MESSAGE
  11739.  
  11740. FIV1 RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
  11741. RJ SDD SET DEFAULT DENSITY
  11742. ISSMSG IFNR,I ISSUE INFORMATIVE MESSAGE
  11743. SX6 B0 CLEAR NEW VSN TABLE ADDRESS
  11744. SA6 AV
  11745. SA1 QN
  11746. SX1 X1-1
  11747. NZ X1,FIV3 IF NOT FIRST FILE
  11748. SX6 TAVS SET NEW VSN TABLE ADDRESS
  11749. SA6 AV
  11750. SX6 B0
  11751. EQ FIV3 CLEAR RESERVE FLAG
  11752.  
  11753. FIV2 RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
  11754. SA1 /ADD/FBIL CHECK IF FILE IS BUSY
  11755. RJUST X1,X1,/BTC/FBIL,/UPB/FBIL
  11756. SB5 EFIB
  11757. NZ X1,FIV4 IF FILE IS BUSY
  11758. ISSMSG IFIR,I ISSUE INFORMATIVE MESSAGE
  11759. SX6 B0 CLEAR NEW VSN TABLE ADDRESS
  11760. SA6 AV
  11761. SX6 B1 SET RESERVE FLAG
  11762. FIV3 SA6 RF
  11763. SA1 VC CLEAR NEXT VSN ENTRY IN TABLE
  11764. LX1 2
  11765. SX6 B0
  11766. SA6 X1+TAVS
  11767. RJ KVQ SET FIRST VSN AND SEQUENCE IN K-DISPLAY
  11768. RJ KAV SET ASSIGNED VSNS IN K-DISPLAY
  11769. RJ //FIL PROCESS FILE LEVEL
  11770. EQ FIVX RETURN
  11771. MCN SPACE 4,10
  11772. ** MCN - PROCESS *MREADCN* DIRECTIVE.
  11773.  
  11774.  
  11775. MCN SUBR ENTRY/EXIT
  11776. CHKFIL SS CHECK MACHINE READABLE FILE
  11777. ZR X1,MCNX IF NO FILE
  11778. USERAUD M,CN PROCESS MACHINE READABLE LIST
  11779. WRITER SS WRITE END OF RECORD
  11780. EQ MCNX RETURN
  11781. MFI SPACE 4,10
  11782. ** MFI - PROCESS *MREADFI* DIRECTIVE.
  11783.  
  11784.  
  11785. MFI SUBR ENTRY/EXIT
  11786. CHKFIL SS
  11787. ZR X1,MFIX IF NO MACHINE READABLE FILE
  11788. GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
  11789. NZ X4,MFIX IF FILE NOT FOUND
  11790. RJ PMF PROCESS FILE MACHINE READABLE
  11791. WRITER SS SET END OF RECORD
  11792. EQ MFIX RETURN
  11793. MFV SPACE 4,10
  11794. ** MFV - PROCESS *MREADFV* DIRECTIVE.
  11795.  
  11796.  
  11797. MFV SUBR ENTRY/EXIT
  11798. CHKFIL SS
  11799. ZR X1,MFVX IF NO MACHINE READABLE FILE
  11800. USERAUD M,,VS PROCESS MACHINE READABLE LIST
  11801. WRITER SS SET END OF RECORD
  11802. EQ MFVX RETURN
  11803. RLF SPACE 4,10
  11804. ** RLF - PROCESS *RELEASF* DIRECTIVE.
  11805.  
  11806.  
  11807. RLF1 ISSMSG EFNI,E ISSUE ERROR MESSAGE
  11808.  
  11809. RLF SUBR ENTRY/EXIT
  11810. GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
  11811. NZ X4,RLF1 IF FILE NOT FOUND
  11812. MOVEBIT TAVS+/CAT/VSN,VS,/BTC/VSN,/UPB/VSN SET VSN
  11813. RELVSN UN,VS RELEASE FILE VIA VSN
  11814. ISSMSG IFRC,I ISSUE INFORMATIVE MESSAGE
  11815. SAFET UN,,,FCST CHECK IF FILES ASSIGNED
  11816. SX6 X4 SET/CLEAR USER NAME FOUND FLAG
  11817. SA6 UF
  11818. RJ USL PROCESS USER LEVEL
  11819. EQ RLFX RETURN
  11820. RLV SPACE 4,10
  11821. ** RLV - PROCESS *RELEASV* DIRECTIVE.
  11822.  
  11823.  
  11824. RLV3 ISSMSG EFNI,E ISSUE ERROR MESSAGE
  11825.  
  11826. RLV SUBR ENTRY/EXIT
  11827. SX6 B0
  11828. RJ GVE GET VSN ENTRY
  11829. NZ X4,RLV3 IF VSN NOT IN CATALOG
  11830. SA1 /ADD/FVSN CHECK FIRST VSN
  11831. LJUST X1,X6,/BTC/FVSN,/UPB/FVSN
  11832. SA1 LF
  11833. ZR X1,RLV1 IF NOT LOCAL FILE MODE
  11834. MX0 VSKL*6
  11835. SA1 VS SAVE VSN
  11836. BX6 X0*X1
  11837. SA6 A1
  11838. BX3 -X0*X1
  11839. EQ RLV2 RELEASE VSN
  11840.  
  11841. RLV1 SA6 VS SET VSN TO FIRST VSN
  11842. SX3 B1+
  11843. RLV2 RELVSN UN,VS,X3 RELEASE VSN
  11844. NZ X4,RLV3 IF FILE NOT FOUND
  11845. ISSMSG IFRC,I ISSUE INFORMATIVE MESSAGE
  11846. SAFET UN,,,FCST CHECK IF FILES ASSIGNED
  11847. SX6 X4 SET/CLEAR USER NAME FOUND FLAG
  11848. SA6 UF
  11849. RJ USL PROCESS USER LEVEL
  11850. EQ RLVX RETURN
  11851. SCN SPACE 4,10
  11852. ** SCN - PROCESS *SOURCCN* DIRECTIVE.
  11853.  
  11854.  
  11855. SCN SUBR ENTRY/EXIT
  11856. CHKFIL S CHECK SOURCE FILE
  11857. ZR X1,SCNX IF NO FILE
  11858. USERAUD S,CN PROCESS USER SOURCE LIST
  11859. WRITER S WRITE END OF RECORD
  11860. EQ SCNX RETURN
  11861. SFI SPACE 4,10
  11862. ** SFI - PROCESS *SOURCFI* DIRECTIVE.
  11863.  
  11864.  
  11865. SFI SUBR ENTRY/EXIT
  11866. CHKFIL S
  11867. ZR X1,SFIX IF NO SOURCE FILE
  11868. GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
  11869. NZ X4,SFIX IF FILE NOT FOUND
  11870. SX6 B0 FLAG DO NOT SKIP FIRST VSN
  11871. RJ PSF PROCESS FILE SOURCE
  11872. WRITER S SET END OF RECORD
  11873. EQ SFIX RETURN
  11874. SFV SPACE 4,10
  11875. ** SFV - PROCESS *SOURCFV* DIRECTIVE.
  11876.  
  11877.  
  11878. SFV SUBR ENTRY/EXIT
  11879. CHKFIL S
  11880. ZR X1,SFVX IF NO SOURCE FILE
  11881. USERAUD S,,VS PROCESS USER SOURCE LIST
  11882. WRITER S SET END OF RECORD
  11883. EQ SFVX RETURN
  11884. SDD SPACE 4,15
  11885. ** SDD - SET DEFAULT DENSITY IN FILE CATALOG.
  11886. *
  11887. * ENTRY (VS) = VSN.
  11888. * FILE CATALOG ENTRY IN *FCAT* BUFFER.
  11889. *
  11890. * EXIT (DE) = DEFAULT FILE DENSITY FOR VSN TAPE TYPE.
  11891. * NEW FILE DENSITY SET IN FILE CATALOG ENTRY.
  11892. * VSN ENTRY IN *VCAT* BUFFER.
  11893. *
  11894. * USES X - 1, 6.
  11895. * A - 1, 6.
  11896. *
  11897. * CALLS GVE.
  11898. *
  11899. * MACROS MOVEBIT, RJUST.
  11900.  
  11901.  
  11902. SDD SUBR ENTRY/EXIT
  11903. RJ GVE GET VSN ENTRY
  11904. SA1 /ADD/VT GET VSN TAPE TYPE
  11905. RJUST X1,X1,/BTC/VT,/UPB/VT
  11906. SA1 X1+SDDA SET DEFAULT DENSITY FOR TAPE TYPE
  11907. BX6 X1
  11908. SA6 DE
  11909. MOVEBIT A1,/ADD/D,/BTC/D,5,/UPB/D
  11910. EQ SDDX RETURN
  11911.  
  11912.  
  11913. SDDA BSS 0 DEFAULT DENSITIES (INDEXED BY TAPE TYPE)
  11914. CON 44B PE DENSITY (MT/NT TAPE TYPE)
  11915. CON 26B CE DENSITY (CT TAPE TYPE)
  11916. CON 0
  11917. CON 66B AE DENSITY (AT TAPE TYPE)
  11918.  
  11919. QUAL *
  11920. TITLE FILE LEVEL DIRECTIVE PROCESSORS.
  11921. SPACE 4
  11922. QUAL LVFI
  11923. FIL SPACE 4,30
  11924. ** FILE LEVEL DIRECTIVE PROCESSORS.
  11925. *
  11926. * ENTRY (AV) = ADDRESS OF NEW VSNS WITHIN *TAVS*.
  11927. * (CA) = RANDOM ADDRESS OF FILE CATALOG.
  11928. * (CN) = CHARGE NUMBER.
  11929. * (EV) = EXTERNAL VSN.
  11930. * (FC) = MAXIMUM FRAME COUNT.
  11931. * (FI) = ORIGINAL FILE IDENTIFIER.
  11932. * (FV) = FIRST VSN.
  11933. * (NI) = NEW FILE IDENTIFIER.
  11934. * (NS) = NOISE SIZE.
  11935. * (PA) = PREVIOUS FILE RANDOM ADDRESS.
  11936. * (QN) = SEQUENCE NUMBER.
  11937. * (RC) = REEL COUNT.
  11938. * (RF) = 0 IF FILE NOT RESERVED.
  11939. * (ST) = ASSIGNED VSNS STATUS BITS.
  11940. * (SV) = 0 IF NOT SYMBOLIC ACCESS.
  11941. * (UF) = 0 IF FILES ASSIGNED TO USER.
  11942. * (UN) = USER NAME.
  11943. * (VC) = VSN COUNT.
  11944. * (FCAT) = FILE CATALOG IMAGE.
  11945. * (TAVS) = ASSIGNED VSNS IMAGE.
  11946. *
  11947. * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
  11948. AAU SPACE 4,10
  11949. ** AAU - PROCESS *AUDITAU* DIRECTIVE.
  11950.  
  11951.  
  11952. AAU3 NEWPAGE PDIR,PDIRL,NP FORCE NEW PAGE FOR NEXT DIRECTIVE
  11953.  
  11954. AAU SUBR ENTRY/EXIT
  11955. SA1 UN GET USER NAME
  11956. RJ SFN SPACE FILL NAME
  11957. BX1 X6 SET USER NAME IN HEADER
  11958. MOVEBIT A1,/PAUA/USER,UNKL*6,,/PAUAU/USER
  11959. MOVEBIT FI,/PAUA/FILE,FIKL*6,,/PAUAU/FILE SET FILE ID
  11960. SA1 /PAUA/FILE CHECK FOR EXTRA END OF LINES
  11961. SB3 /PAUAU/FILE
  11962. RJ CFI CHECK FILE IDENTIFIER IN OUTPUT
  11963. SA1 FV GET FIRST VSN
  11964. RJ SFN SPACE FILL NAME
  11965. BX1 X6 SET FIRST VSN IN HEADER
  11966. MOVEBIT A1,/PAUA/FVSN,VSKL*6,,/PAUAU/FVSN
  11967. SA1 QN GET SEQUENCE NUMBER
  11968. SX1 X1+10000
  11969. RJ CDD CONVERT TO DECIMAL DISPLAY
  11970. MX0 -24 SET SEQUENCE NUMBER IN HEADER
  11971. BX1 -X0*X6
  11972. MOVEBIT A1,/PAUA/QN,4*6,23,/PAUAU/QN
  11973. NEWPAGE PAUA,PAUAL FORCE NEW PAGE
  11974. SA1 AU
  11975. ZR X1,AAU1 IF MULTIPLE USER AUDIT
  11976. RJ GAE GET ALTERNATE USER ENTRY
  11977. SA1 RF
  11978. ZR X1,AAU3 IF FILE NOT RESERVED
  11979. NZ X4,AAU3 IF ALTERNATE USER NOT FOUND
  11980. RJ AUA PROCESS ALTERNATE USER AUDIT
  11981. EQ AAU3 RETURN
  11982.  
  11983. AAU1 RJ RAE REPLACE ALTERNATE USER ENTRIES
  11984. SA1 /ADD/AUCAT GET ADMIT CATALOG RANDOM ADDRESS
  11985. RJUST X1,X1,/BTC/AUCAT,/UPB/AUCAT
  11986. ZR X1,AAU3 IF NO ADMIT CATALOG
  11987. RCREC N4,X1
  11988. AAU2 GRENTRY N4,ACAT GET RECORD ENTRY
  11989. ZR X6,AAU3 IF NO MORE ENTRIES
  11990. SA1 TI
  11991. NZ X1,AAU3 IF TERMINAL INTERRUPT
  11992. RJ AUA PROCESS ALTERNATE USER AUDIT
  11993. EQ AAU2 GET NEXT ENTRY
  11994. AUS SPACE 4,10
  11995. ** AUS - PROCESS *AUSER* DIRECTIVE.
  11996.  
  11997.  
  11998. AUS7 ISSMSG B5,E ISSUE ERROR MESSAGE
  11999.  
  12000. AUS SUBR ENTRY/EXIT
  12001. SA1 NV
  12002. NZ X1,AUS1 IF NO VERIFY MODE
  12003. SA1 RF CHECK RESERVE FLAG
  12004. SB5 EFNR SET ERROR MESSAGE ADDRESS
  12005. ZR X1,AUS7 IF FILE NOT RESERVED
  12006. RJ GAE GET ALTERNATE USER ENTRY
  12007. ZR X4,AUS5 IF ENTRY FOUND
  12008. ISSMSG IANA,I ISSUE INFORMATIVE MESSAGE
  12009. SX6 B0
  12010. EQ AUS6 CLEAR ALTERNATE USER FLAG
  12011.  
  12012. AUS1 SA1 RF
  12013. NZ X1,AUS4 IF FILE RESERVED
  12014. SA1 SV
  12015. NZ X1,AUS2 IF SYMBOLIC ACCESS
  12016. SA3 QN GET FILE VIA VSN
  12017. GFILEV UN,FV,X3,FCAT,PCAT,TAVS
  12018. SB5 EFNR
  12019. NZ X4,AUS7 IF FILE NOT RESERVED
  12020. EQ AUS3 UNPACK FILE CATALOG
  12021.  
  12022. AUS2 GFILE UN,FI,FCAT,PCAT,TAVS GET FILE VIA FILE ID
  12023. SB5 EFNR
  12024. NZ X4,AUS7 IF FILE NOT RESERVED
  12025. AUS3 RJ UFC UNPACK FILE CATALOG INTO DIRECT CELLS
  12026. SX6 B1 SET RESERVED FLAG
  12027. SA6 RF
  12028. SA1 VC CLEAR NEXT VSN ENTRY IN TABLE
  12029. LX1 2
  12030. SX6 B0
  12031. SA6 X1+TAVS
  12032. SA6 AV CLEAR NEW VSN TABLE ADDRESS
  12033. RJ KVQ SET FIRST VSN AND SEQUENCE IN K-DISPLAY
  12034. RJ KAV SET ASSIGNED VSNS IN K-DISPLAY
  12035. AUS4 MOVE TAEL,DAUC,ACAT SET DEFAULT ALTERNATE USER
  12036. MOVEBIT AU,/ADD/AUSER,/BTC/AUSER,,/UPB/AUSER
  12037. SX6 B0
  12038. EQ AUS6 CLEAR ALTERNATE USER FLAG
  12039.  
  12040. AUS5 ISSMSG IAIA,I ISSUE INFORMATIVE MESSAGE
  12041. SX6 B1 SET ALTERNATE USER FLAG
  12042. AUS6 SA6 AF
  12043. RJ AUL PROCESS ALTERNATE USER
  12044. EQ AUSX RETURN
  12045. ALT SPACE 4,10
  12046. ** ALT - PROCESS *AMEND* DIRECTIVE.
  12047.  
  12048.  
  12049. ALT1 ISSMSG B5,E ISSUE ERROR MESSAGE
  12050.  
  12051. ALT SUBR ENTRY/EXIT
  12052. SA1 RF CHECK RESERVE FLAG
  12053. SB5 EFNR SET ERROR MESSAGE ADDRESS
  12054. ZR X1,ALT1 IF FILE NOT RESERVED
  12055. RJ RAF RESERVE/AMEND FILE CATALOG ENTRY
  12056. ISSMSG IFAL,I ISSUE INFORMATIVE MESSAGE
  12057. RJ SMF ISSUE *SDAM* ACCOUNT FILE MESSAGE
  12058. RJ USL PROCESS USER LEVEL
  12059. EQ ALTX RETURN
  12060. AVS SPACE 4,10
  12061. ** AVS - PROCESS *AVSN* DIRECTIVE.
  12062.  
  12063.  
  12064. AVS8 ISSMSG B5,E ISSUE ERROR MESSAGE
  12065. REPVSN VCAT,TSVL REPLACE VSN ENTRY
  12066. EQ AVSX RETURN
  12067.  
  12068. AVS9 ISSMSG B5,E ISSUE ERROR MESSAGE
  12069.  
  12070. AVS SUBR ENTRY/EXIT
  12071. SA1 /ADD/NCAT CHECK IF LAST FILE
  12072. RJUST X1,X1,/BTC/NCAT,/UPB/NCAT
  12073. SB5 EAVM
  12074. NZ X1,AVS9 IF NOT LAST FILE
  12075. SA3 VC CHECK VSN BUFFER LENGTH
  12076. LX3 2
  12077. ZR X3,AVS2 IF NO VSNS ASSIGNED
  12078. SA1 RC
  12079. NZ X1,AVS1 IF REELS ASSIGNED TO THIS FILE
  12080. SA2 X3+TAVS-4 COMPARE TO LAST VSN
  12081. SA4 VS
  12082. BX4 X4-X2
  12083. LJUST X4,X4,VSKL*6,59
  12084. NZ X4,AVS1 IF NOT LAST VSN
  12085. SX6 X1+B1 INCREMENT REEL COUNT
  12086. SA6 A1
  12087. SA1 VS SET EXTERNAL VSN
  12088. BX6 X1
  12089. SA6 EV
  12090. SX6 A2 SET NEW VSN TABLE ADDRESS
  12091. SA6 AV
  12092. EQ AVS7 CLEAR NEXT ENTRY
  12093.  
  12094. AVS1 MX0 VSKL*6 CHECK IF VSN IS ALREADY ASSIGNED
  12095. SRCHTAB TAVS,VS,X3,4
  12096. SB5 EVAA
  12097. ZR X4,AVS9 IF ALREADY ASSIGNED
  12098. MOVE TSVL,DVSC,VCAT SET DEFAULT VSN ENTRY
  12099. AVS2 LISTVSN VS,VCAT,1 GET VSN ENTRY
  12100. SB5 EVNC
  12101. NZ X4,AVS9 IF VSN NOT FOUND
  12102. SA1 /ADD/VSBF CHECK IF VSN IS BUSY
  12103. RJUST X1,X1,/BTC/VSBF,/UPB/VSBF
  12104. SB5 EVSB
  12105. NZ X1,AVS9 IF VSN IS BUSY
  12106. SA1 /ADD/VT GET TAPE TYPE BITS FOR VSN ENTRY
  12107. RJUST X1,X1,/BTC/VT,/UPB/VT
  12108. SA2 /ADD/TTYP GET TAPE TYPE FIELD FROM TAPE FILE CATALOG
  12109. RJUST X2,X2,/BTC/TTYP,/UPB/TTYP
  12110. SX6 X2-2
  12111. NZ X6,AVS2.1 IF NOT *NT*
  12112. SX2 B0+ SET TAPE TYPE TO *MT/NT*
  12113. AVS2.1 BX1 X1-X2 COMPARE TAPE TYPES
  12114. SB5 ENMT
  12115. NZ X1,AVS8 IF TAPE TYPES DO NOT MATCH
  12116. SA1 LF
  12117. NZ X1,AVS3 IF LOCAL FILE MODE
  12118. SA1 /ADD/NVSN CHECK IF LAST VSN
  12119. LJUST X1,X1,/BTC/NVSN,/UPB/NVSN
  12120. SB5 EVAA
  12121. NZ X1,AVS8 IF NOT LAST VSN
  12122. AVS3 SA1 VC
  12123. ZR X1,AVS5 IF NO VSNS ASSIGNED
  12124. SA1 /ADD/VASF CHECK IF VSN IS ASSIGNED
  12125. RJUST X1,X1,/BTC/VASF,/UPB/VASF
  12126. SB5 EVAA
  12127. NZ X1,AVS8 IF VSN ALREADY ASSIGNED
  12128. SA1 VCAT+VEVS
  12129. SX0 SVVS
  12130. SB5 ESVM
  12131. BX2 X0*X1
  12132. NZ X2,AVS8 IF SYSTEM VSN
  12133. SX0 UOVS+TVVS CHECK IF STATUSES MATCH
  12134. SA2 ST
  12135. BX1 X1-X2
  12136. BX2 X0*X1
  12137. SB5 ENMS
  12138. NZ X2,AVS8 IF STATUSES DO NOT MATCH
  12139. SX0 CTVS+ACVS CHECK IF TAPE TYPES MATCH
  12140. SB5 ENMT
  12141. BX2 X0*X1
  12142. NZ X2,AVS8 IF TAPE TYPES DO NOT MATCH
  12143. SA3 VC INCREMENT VSN COUNT
  12144. SX6 X3+B1
  12145. SA6 A3
  12146. LX3 2
  12147. SA1 AV
  12148. NZ X1,AVS4 IF NOT FIRST ADDED VSN
  12149. SX6 X3+TAVS SET NEW VSN TABLE ADDRESS
  12150. SA6 A1
  12151. AVS4 MOVE TSVL,VCAT,X3+TAVS SET NEW VSN IN TABLE
  12152. SA1 RC INCREMENT REEL COUNT
  12153. SX6 X1+B1
  12154. SA6 A1
  12155. NZ X1,AVS7 IF NOT FIRST REEL
  12156. SA1 VS SET EXTERNAL VSN
  12157. BX6 X1
  12158. SA6 EV
  12159. EQ AVS7 CLEAR NEXT ENTRY
  12160.  
  12161. AVS5 SA1 /ADD/VASF
  12162. RJUST X1,X1,/BTC/VASF,/UPB/VASF
  12163. NZ X1,AVS6 IF VSN ASSIGNED
  12164. SA1 TAVS+/CAT/URDATE RESTORE RELEASE DATE
  12165. MOVEBIT A1,/ADD/URDATE,/BTC/URDATE,/UPB/URDATE,/UPB/URDATE
  12166. SA1 TAVS+/CAT/NEWRDT RESTORE NEW RELEASE DATE FLAG
  12167. MOVEBIT A1,/ADD/NEWRDT,/BTC/NEWRDT,/UPB/NEWRDT,/UPB/NEWRDT
  12168. SX6 TAVS SET NEW VSN TABLE ADDRESS
  12169. SA6 AV
  12170. MOVE TSVL,VCAT,TAVS SET NEW VSN IN TABLE
  12171. SX6 B1 SET VSN COUNT
  12172. SA6 VC
  12173. SA6 RC SET REEL COUNT
  12174. SA1 VS SET EXTERNAL VSN
  12175. BX6 X1
  12176. SA6 EV
  12177. EQ AVS7 CLEAR NEXT ENTRY
  12178.  
  12179. AVS6 SA1 /ADD/NVSN CHECK IF LAST VSN
  12180. LJUST X1,X1,/BTC/NVSN,/UPB/NVSN
  12181. SB5 EVAA
  12182. NZ X1,AVS8 IF NOT LAST VSN
  12183. GFILEV UN,VS,10000,PCAT,PCAT,TAVS GET LAST FILE
  12184. SX4 X4+B1
  12185. SB5 EVAA
  12186. NG X4,AVS8 IF VSN NOT AVAILABLE
  12187. SA7 PA SET PREVIOUS FILE RANDOM ADDRESS
  12188. SX6 B6+B1 SET SEQUENCE NUMBER
  12189. SA6 QN
  12190. SX6 B7 SET VSN COUNT
  12191. SA6 VC
  12192. LX6 2 SET NEW VSN TABLE ADDRESS
  12193. SX6 X6+TAVS-4
  12194. SA6 AV
  12195. SX6 B1 SET REEL COUNT
  12196. SA6 RC
  12197. SA1 VS SET EXTERNAL VSN
  12198. BX6 X1
  12199. SA6 EV
  12200. AVS7 SA1 VC CLEAR NEXT VSN ENTRY
  12201. LX1 2
  12202. SX6 B0
  12203. SA6 X1+TAVS
  12204. SX0 UOVS+TVVS+CTVS+ACVS SET STATUS BITS
  12205. SA1 VCAT+1
  12206. BX1 X0*X1
  12207. MOVEBIT A1,ST,18,17,17
  12208. MOVEBIT TAVS+/CAT/VSN,FV,/BTC/VSN SET FIRST VSN
  12209. RJ //PFC PACK FILE CATALOG
  12210. RJ KVQ SET FIRST VSN AND SEQUENCE IN K-DISPLAY
  12211. RJ KAV SET ASSIGNED VSNS IN K-DISPLAY
  12212. EQ AVSX RETURN
  12213. DEN SPACE 4,10
  12214. ** DEN - PROCESS *D* DIRECTIVE.
  12215.  
  12216.  
  12217. DEN SUBR ENTRY/EXIT
  12218. SA1 /ADD/EVSN
  12219. MX0 36
  12220. BX1 X0*X1
  12221. ZR X1,DENX IF NO VSN-S ASSIGNED
  12222. SA1 /ADD/TTYP GET NEW TAPE TYPE
  12223. RJUST X1,X1,/BTC/TTYP,/UPB/TTYP
  12224. SA2 DE
  12225. AX2 4
  12226. BX6 X1-X2
  12227. ZR X6,DENX IF NEW DENSITY DOES NOT CHANGE TAPE TYPE
  12228. SA1 DE RESET OLD VALUE INTO TAPE CATALOG ENTRY
  12229. MOVEBIT A1,/ADD/D,/BTC/D,5,/UPB/D
  12230. ISSMSG ECTD,E * CANNOT CHANGE TAPE TYPE / DENSITY.*
  12231. EQ DENX RETURN
  12232. DRO SPACE 4,10
  12233. ** DRO - PROCESS *DROP* DIRECTIVE.
  12234.  
  12235.  
  12236. DRO SUBR ENTRY/EXIT
  12237. SA1 VC REPLACE ORIGINAL VSNS
  12238. LX1 2
  12239. REPVSN TAVS,X1
  12240. ISSMSG IFNP,I ISSUE INFORMATIVE MESSAGE
  12241. RJ USL PROCESS USER LEVEL
  12242. EQ DROX RETURN
  12243. PGO SPACE 4,10
  12244. ** PGO - PROCESS *GO* DIRECTIVE.
  12245. *
  12246. * ENTRY (RF) = 0, IF FILE NOT RESERVED.
  12247. *
  12248. * EXIT VSN AMENDED OR RESERVED.
  12249. *
  12250. * USES A - 1.
  12251. * X - 1.
  12252. *
  12253. * CALLS ALT, RES.
  12254.  
  12255.  
  12256. PGO1 RJ RES RESERVE FILE
  12257.  
  12258. PGO SUBR ENTRY/EXIT
  12259. SA1 RF
  12260. ZR X1,PGO1 IF FILE NOT RESERVED
  12261. RJ ALT AMEND FILE
  12262. EQ PGOX RETURN
  12263. PFI SPACE 4,10
  12264. ** PFI - PROCESS *FI* DIRECTIVE.
  12265.  
  12266.  
  12267. PFI4 MOVEBIT NI,/ADD/FI,/BTC/FI,,/UPB/FI RESET NEW FILE ID
  12268. ISSMSG EFIC,E ISSUE ERROR MESSAGE
  12269.  
  12270. PFI SUBR ENTRY/EXIT
  12271. SA1 SV
  12272. ZR X1,PFI3 IF NOT SYMBOLIC ACCESS
  12273. MOVEBIT /ADD/FI,PFIA,/BTC/FI,/UPB/FI GET NEW FILE ID
  12274. SA1 PFIA COMPARE FILE IDS
  12275. SA2 A1+B1
  12276. SA3 FI
  12277. BX3 X3-X1
  12278. NZ X3,PFI1 IF NOT THE SAME AS ORIGINAL FILE ID
  12279. SA3 A1+B1
  12280. BX3 X3-X2
  12281. ZR X3,PFI3 IF THE SAME AS ORIGINAL FILE ID
  12282. PFI1 SA3 NI
  12283. BX3 X3-X1
  12284. NZ X3,PFI2 IF NOT THE SAME AS NEW FILE ID
  12285. SA3 A3+B1
  12286. BX3 X3-X2
  12287. NZ X3,PFI3 IF THE SAME AS NEW FILE ID
  12288. PFI2 SA1 NV
  12289. NZ X1,PFI3 IF NO VERIFY MODE
  12290. SAFET UN,,PFIA,SCST CHECK IF FILE EXISTS
  12291. ZR X4,PFI4 IF ANOTHER FILE HAS THAT NAME
  12292. PFI3 MOVEBIT /ADD/FI,NI,/BTC/FI,/UPB/FI SET NEW FILE ID
  12293. EQ PFIX RETURN
  12294.  
  12295. PFIA BSS 2 NEW FILE IDENTIFIER
  12296. PSV SPACE 4,10
  12297. ** PSV - PROCESS *SV* DIRECTIVE.
  12298.  
  12299.  
  12300. PSV3 MOVEBIT SV,/ADD/SV,/BTC/SV,/BTC/SV-1,/UPB/SV
  12301. ISSMSG EFIC,E ISSUE ERROR MESSAGE
  12302.  
  12303. PSV SUBR ENTRY/EXIT
  12304. SA1 /ADD/SV CHECK IF SYMBOLIC ACCESS
  12305. RJUST X1,X1,/BTC/SV,/UPB/SV
  12306. ZR X1,PSV2 IF CHANGE TO NOT SYMBOLIC ACCESS
  12307. SA1 SV CHECK IF ALREADY SYMBOLIC ACCESS
  12308. NZ X1,PSVX IF ALREADY SYMBOLIC ACCESS
  12309. SA1 NI CHECK NEW FILE IDENTIFIER
  12310. SA2 A1+B1
  12311. SA3 =10H
  12312. BX3 X3-X1
  12313. ZR X3,PSV3 IF INCORRECT FILE ID
  12314. SA3 FI
  12315. BX3 X3-X1
  12316. NZ X3,PSV1 IF NOT THE SAME AS ORIGINAL FILE ID
  12317. SA3 A3+B1
  12318. BX3 X3-X2
  12319. ZR X3,PSV2 IF THE SAME AS ORIGINAL FILE ID
  12320. PSV1 SA1 NV
  12321. NZ X1,PSV2 IF NO VERIFY MODE
  12322. SAFET UN,,NI,SCST CHECK FILE EXISTS
  12323. ZR X4,PSV3 IF FILE ALREADY EXISTS
  12324. PSV2 MOVEBIT /ADD/SV,SV,/BTC/SV,/UPB/SV,/BTC/SV-1
  12325. EQ PSVX RETURN
  12326. RDA SPACE 4,10
  12327. ** RDA - CONVERT RDATE TO URDATE.
  12328. *
  12329. * USES X - ALL.
  12330. * A - 2, 4.
  12331. * B - 3, 4, 5, 6.
  12332. *
  12333. * CALLS URD.
  12334. *
  12335. * MACROS MOVEBIT.
  12336.  
  12337.  
  12338. RDA SUBR ENTRY/EXIT
  12339. SA2 RDAA GET CONDITIONAL RELEASE DATE
  12340. SX6 B0
  12341. ZR X2,RDA7 IF NO RELEASE DATE
  12342. SX5 CRDP GET TERM
  12343. MX0 -12
  12344. BX1 -X0*X5
  12345. MX0 -6 UNPACK DATE
  12346. BX3 -X0*X2
  12347. SB3 X3 DAY
  12348. AX2 6
  12349. BX3 -X0*X2
  12350. SB4 X3 MONTH
  12351. AX2 6
  12352. BX2 -X0*X2
  12353. SB5 X2 YEAR
  12354. MX0 -2 MASK FOR LEAP YEAR
  12355.  
  12356. * ADVANCE YEAR.
  12357.  
  12358. RDA1 SX4 X1-366D (TERM REMAINING) - (DAYS IN LEAP YEAR)
  12359. NG X4,RDA4 IF LESS THAN 1 YEAR REMAINING
  12360. SB5 B5+B1 ADD 1 YEAR TO EXPIRATION DATE
  12361. SX3 B5+B1
  12362. SB6 B1+B1
  12363. BX2 -X0*X3
  12364. ZR X2,RDA2 IF CURRENT YEAR IS A LEAP YEAR
  12365. SX2 X3+B1 YEAR + 1 + LEAP YEAR OFFSET
  12366. BX2 -X0*X2
  12367. NZ X2,RDA3 IF NEXT YEAR IS NOT A LEAP YEAR
  12368. LE B4,B6,RDA3 IF BEFORE LEAP DAY
  12369. SX1 X1-1 SUBTRACT 1 DAY TO OFFSET LEAP DAY
  12370. EQ RDA3 SUBTRACT 1 YEAR FROM TERM
  12371.  
  12372. RDA2 GT B4,B6,RDA3 IF AFTER LEAP DAY
  12373. SX1 X1-1 SUBTRACT 1 DAY TO OFFSET LEAP DAY
  12374. RDA3 SX1 X1-365D SUBTRACT 1 YEAR FROM TERM
  12375. EQ RDA1 CONTINUE PROCESSING
  12376.  
  12377. * ADVANCE MONTH.
  12378.  
  12379. RDA4 SA4 RDAB-1+B4 GET DAYS IN CURRENT MONTH
  12380. SX7 B4-2
  12381. NZ X7,RDA5 IF CURRENT MONTH NOT FEBRUARY
  12382. SX2 B5+2
  12383. BX7 -X0*X2
  12384. NZ X7,RDA5 IF NOT LEAP YEAR
  12385. SX4 X4+B1 ADD LEAP DAY
  12386. RDA5 SX2 B3+
  12387. IX2 X4-X2 DAYS TO END OF CURRENT MONTH
  12388. IX3 X1-X2 SUBTRACT FROM TERM REMAINING
  12389. NG X3,RDA6 IF NOT ENOUGH TERM REMAINING TO FILL MONTH
  12390. ZR X3,RDA6 IF TERM EXACTLY FILLS CURRENT MONTH
  12391. SB3 B0+
  12392. SB4 B4+B1 INCREMENT MONTH
  12393. BX1 X3 SET NEW TERM
  12394. SX7 B4-13
  12395. NZ X7,RDA4 IF NOT END OF YEAR
  12396. SB5 B5+B1 INCREMENT YEAR
  12397. SB4 B1 SET MONTH TO JANUARY
  12398. EQ RDA4 CONTINUE
  12399.  
  12400. * RETURN NEW PACKED DATE.
  12401.  
  12402. RDA6 SB3 X1+B3 SET DAYS
  12403. SX6 B5 ADD IN YEAR
  12404. LX6 6
  12405. SX6 X6+B4 ADD IN MONTH
  12406. LX6 6
  12407. SX6 X6+B3 ADD IN DAY
  12408. RDA7 SA6 RDAA
  12409. MOVEBIT A6,TAVS+/CAT/URDATE,/BTC/URDATE,17,/UPB/URDATE
  12410. RJ URD PROCESS UNCONDITIONAL RELEASE DATE
  12411. EQ RDAX RETURN
  12412.  
  12413. RDAA CON 0 PACKED CONDITIONAL/UNCONDITIONAL DATE
  12414.  
  12415. RDAB BSS 0 TABLE OF DAYS IN MONTH
  12416. LOC 1
  12417. CON 31 JANUARY
  12418. CON 28 FEBRUARY
  12419. CON 31 MARCH
  12420. CON 30 APRIL
  12421. CON 31 MAY
  12422. CON 30 JUNE
  12423. CON 31 JULY
  12424. CON 31 AUGUST
  12425. CON 30 SEPTEMBER
  12426. CON 31 OCTOBER
  12427. CON 30 NOVEMBER
  12428. CON 31 DECEMBER
  12429. LOC *O
  12430. RES SPACE 4,10
  12431. ** RES - PROCESS *RESERVE* DIRECTIVE.
  12432.  
  12433.  
  12434. RES2 ISSMSG B5,E ISSUE ERROR MESSAGE
  12435.  
  12436. RES SUBR ENTRY/EXIT
  12437. SA1 RF CHECK RESERVE FLAG
  12438. SB5 EFAR SET ERROR MESSAGE ADDRESS
  12439. NZ X1,RES2 IF FILE ALREADY RESERVED
  12440. SA1 RC
  12441. SB5 ERDM *REQUIRED DATA MISSING.*
  12442. ZR X1,RES2 IF NO VSNS ASSIGNED
  12443. SA1 UF
  12444. ZR X1,RES1 IF USER NAME ALREADY IN FILE
  12445. RESETP N2 INSERT USER NAME
  12446. WRITFET X2,UN,1
  12447. CALLTFM X2,IUES
  12448. RES1 RJ RAF RESERVE/AMEND FILE CATALOG ENTRY
  12449. ISSMSG IFRE,I ISSUE INFORMATIVE MESSAGE
  12450. SX6 B0 FLAG USER NAME FOUND
  12451. SA6 UF
  12452. RJ USL PROCESS USER LEVEL
  12453. EQ RESX RETURN
  12454. URD SPACE 4,10
  12455. ** URD - SET URDATE FLAG.
  12456. *
  12457. * EXIT (RS) = 1.
  12458. *
  12459. * USES X - 6.
  12460. * A - 6.
  12461. *
  12462. * MACROS MOVEBIT.
  12463.  
  12464.  
  12465. URD SUBR ENTRY/EXIT
  12466. SX6 B1 FLAG *URDATE* ISSUED
  12467. SA6 RS
  12468. SA1 TAVS+/CAT/URDATE CHECK RELEASE DATE
  12469. RJUST X1,X6,/BTC/URDATE,/UPB/URDATE
  12470. SA1 =1
  12471. NZ X6,URD1 IF DATE SET
  12472. SA1 =0
  12473. URD1 MOVEBIT A1,TAVS+/CAT/NEWRDT,/BTC/NEWRDT,0,/UPB/NEWRDT
  12474. EQ URDX RETURN
  12475.  
  12476. QUAL *
  12477. TITLE ALTERNATE USER LEVEL PROCESSORS.
  12478. SPACE 4
  12479. QUAL LVAU
  12480. AUS SPACE 4,15
  12481. ** ALTERNATE USER LEVEL DIRECTIVE PROCESSORS.
  12482. *
  12483. * ENTRY FROM *DIP*.
  12484. * (AF) = 0 IF ALTERNATE USER NOT ADMITTED.
  12485. * (AU) = ALTERNATE USER NAME.
  12486. * (FV) = FIRST VSN.
  12487. * (QN) = SEQUENCE NUMBER.
  12488. * (UN) = USER NAME.
  12489. * (ACAT) = ALTERNATE USER CATALOG IMAGE.
  12490. * (FCAT) = FILE CATALOG IMAGE.
  12491. *
  12492. * EXIT (EF) = 0 IF NO DIRECTIVE ERROR.
  12493. ADM SPACE 4,10
  12494. ** ADM - PROCESS *ADMIT* DIRECTIVE.
  12495.  
  12496.  
  12497. ADM SUBR ENTRY/EXIT
  12498. RJ RAB REPLACE ALTERNATE USER IN BUFFER
  12499. SA1 AF CHECK ADMIT FLAG
  12500. SB5 IAUU PRESET INFORMATIVE MESSAGE ADDRESS
  12501. NZ X1,ADM2 IF OLD ADMIT ENTRY
  12502. SA1 /ADD/AUCAT CHECK ADMIT RANDOM ADDRESS
  12503. RJUST X1,X1,/BTC/AUCAT,/UPB/AUCAT
  12504. NZ X1,ADM1 IF NOT FIRST ALTERNATE USER
  12505. RJ RAE REPLACE ALTERNATE USER ENTRIES
  12506. SA3 QN RESET ADMIT RANDOM ADDRESS
  12507. GFILEV UN,FV,X3,ADMA,PCAT,TAVS
  12508. MOVEBIT ADMA+/CAT/AUCAT,/ADD/AUCAT,24
  12509. ADM1 SB5 IAUA
  12510. ADM2 ISSMSG B5,I ISSUE INFORMATIVE MESSAGE
  12511. RJ FIL PROCESS FILE LEVEL
  12512. EQ ADMX RETURN
  12513.  
  12514. ADMA BSS TCEL FILE CATALOG IMAGE
  12515. DRO SPACE 4,10
  12516. ** DRO - PROCESS *DROP* DIRECTIVE.
  12517.  
  12518.  
  12519. DRO SUBR ENTRY/EXIT
  12520. ISSMSG IANP,I ISSUE INFORMATIVE MESSAGE
  12521. RJ FIL PROCESS FILE LEVEL
  12522. EQ DROX RETURN
  12523.  
  12524. QUAL *
  12525. TITLE K-DISPLAY AREA.
  12526. KCW SPACE 4,10
  12527. ** K-DISPLAY CONTROL WORD.
  12528.  
  12529.  
  12530. KCW VFD 24/KBUF,18/KRIGHT,18/KLEFT CONTROL WORD
  12531. KLEFT SPACE 4,10
  12532. ** KLEFT - LEFT SCREEN K-DISPLAY HEADER.
  12533.  
  12534.  
  12535. KLEFT KSTART CW
  12536. KLINE ( ),E
  12537. PROGRAM KLINE ( *TFSP* - TAPE FILE SUPERVISOR.),E
  12538. KLINE ( ),E
  12539. SEPARAT KLINE ( SEPARAT=, )
  12540. KLINE (SEPARATOR CHARACTER. (0-1 CHARACTERS.)),E
  12541. COLON KLINE ( COLON = )
  12542. KLINE (COLON CHARACTER. (0-1 CHARACTERS.)),E
  12543. READ KLINE ( READ = )
  12544. KLINE (ALTERNATE INPUT FILE.),E
  12545. KNEXT KFAMLS
  12546. KRIGHT SPACE 4,10
  12547. ** KRIGHT - RIGHT SCREEN K-DISPLAY HEADER.
  12548.  
  12549.  
  12550. KRIGHT KSTART CW
  12551. KLINE ( ),E
  12552. PROGRAM KLINE ( *TFSP*)
  12553. LV KLINE ( FAMILY LEVEL *HELP* DISPLAY.),E
  12554. KLINE ( ),E
  12555. KLINE ( HELP )
  12556. KLINE (DISPLAY LEGAL DIRECTIVES.),E
  12557. KLINE ( DISPLAY )
  12558. KLINE (TOGGLE OUT OF *HELP* DISPLAY.),E
  12559. KLINE ( SEPARAT = CHAR )
  12560. KLINE (SET SEPARATOR CHARACTER.),E
  12561. KLINE ( )
  12562. KLINE (DEFAULT IS COMMA.),E
  12563. KLINE ( COLON = CHAR )
  12564. KLINE (SET COLON CHARACTER. DEFAULT IS NONE.),E
  12565. KLINE ( READ = FILENAM )
  12566. KLINE (READ DIRECTIVES OFF OF LOCAL FILE.),E
  12567. KLINE ( REWIND = FILENAM )
  12568. KLINE (REWIND LOCAL FILE.),E
  12569. KLINE ( BRIEF/NOBRIEF )
  12570. KLINE (ENABLE/DISABLE INFORMATIVE OUTPUT.),E
  12571. KLINE ( STOP )
  12572. KLINE (TERMINATE TFSP.),E
  12573. KNEXT KFAMRS
  12574. KFAMLS SPACE 4,10
  12575. ** KFAMLS - LEFT SCREEN FAMILY LEVEL K-DISPLAY.
  12576.  
  12577.  
  12578. KFAMLS KSTART
  12579. KLINE ( ),E
  12580. FAMNAME KLINE ( FAMNAME= )
  12581. KLINE (FAMILY NAME. (1-7 CHARACTERS)),E
  12582. LINKFAM KLINE ( LINKFAM= )
  12583. KLINE (LINKED CATALOG FAMILY. (1-7 CHARACTERS)),E
  12584. MID KLINE ( MID =AA )
  12585. KLINE (MACHINE ID. (2 CHARACTERS)),E
  12586. CATERR KLINE ( CATERR =CLEAR )
  12587. KLINE (ERROR STATUS. (CLEAR, SET)),E
  12588. FOREIGN KLINE ( FOREIGN=NO )
  12589. KLINE (FOREIGN STATUS. (NO, YES)),E
  12590. GLOBAL KLINE ( GLOBAL =NO )
  12591. KLINE (GLOBAL STATUS. (NO, YES)),E
  12592. KLINE ( ),E
  12593. TFSPE KLINE ( TAPE CATALOG ERROR DISCOVERED AT - )
  12594. TDATE KLINE (YY/MM/DD, HH.MM.SS.),E
  12595. TFSPEL EQU *-TFSPE LENGTH OF *TFSPE* MESSAGE
  12596. KLINE ( ),E
  12597. KLINE ( CURRENT MESSAGE BUFFER -),E
  12598. KLINE ( ),E
  12599. MB KLINE ( ),E
  12600. KLINE ( ),E
  12601. SIZE KLINE ( CATALOG SIZE = 00000000. MT)
  12602. SCM KLINE (/NT SCRATCH COUNT = 00000000.),E
  12603. SCC KLINE ( CT SCRATCH COUNT = 00000000.)
  12604. SCA KLINE ( AT SCRATCH COUNT = 00000000.),E
  12605. KLINE ( ),E
  12606. KLINE ( USER NAMES VALIDATED TO ACCESS),E
  12607. KLINE ( TAPE CATALOG FILE VIA *TFSP* -),E
  12608. KLINE ( ),E
  12609. VALIDAT BSS 0
  12610. DUP 2
  12611. KLINE ( ),E
  12612. ENDD
  12613. KLINE ( ),E
  12614. KLINE ( FAMILIES PERMITTED TO ACCESS CATALOG -),E
  12615. KLINE ( ),E
  12616. ALTFAM KLINE ( ),E
  12617. KNEXT KMESS
  12618. KFAMRS SPACE 4,10
  12619. ** KFAMRS - RIGHT SCREEN FAMILY LEVEL K-DISPLAY.
  12620.  
  12621.  
  12622. KFAMRS KSTART
  12623. KLINE ( AUDITCH = CHARGNO )
  12624. KLINE (AUDIT BY CHARGE NUMBER.),E
  12625. KLINE ( AUDITUN = USERNAM )
  12626. KLINE (AUDIT USER. DEFAULT IS ALL USERS.),E
  12627. KLINE ( AUDITVS = VSN )
  12628. KLINE (AUDIT VSN. DEFAULT IS ALL VSNS.),E
  12629. KLINE ( MREADCH = CHARGNO )
  12630. KLINE (MACHINE READABLE *AUDITCH*.),E
  12631. KLINE ( MREADUN = USERNAM )
  12632. KLINE (MACHINE READABLE *AUDITUN*.),E
  12633. KLINE ( MREADVS = VSN )
  12634. KLINE (MACHINE READABLE *AUDITVS*.),E
  12635. KLINE ( SOURCCH = CHARGNO )
  12636. KLINE (SOURCE OF CHARGE NUMBER.),E
  12637. KLINE ( SOURCUN = USERNAM )
  12638. KLINE (SOURCE OF USER. DEFAULT IS ALL USERS.),E
  12639. KLINE ( SOURCVS = VSN )
  12640. KLINE (SOURCE OF VSN.),E
  12641. KLINE ( SOURCE )
  12642. KLINE (SOURCE OF ALL OF TAPE CATALOG FILE.),E
  12643. KLINE ( RELEASE = VSN )
  12644. KLINE (RELEASE VSN AND ITS TAPE FILE.),E
  12645. KLINE ( REMOVE = VSN )
  12646. KLINE (REMOVE VSN FROM TAPE CATALOG FILE.),E
  12647. KLINE ( PURGALL = USERNAM )
  12648. KLINE (RELEASE ALL TAPE FILES OF USER.),E
  12649. KLINE ( PURGE = VSN )
  12650. KLINE (PURGE TAPE FILES CONTAINING VSN.),E
  12651. KLINE ( VALIDAT = USERNAM )
  12652. KLINE (VALIDATE USER TO USE *TFSP*.),E
  12653. KLINE ( INVALID = USERNAM )
  12654. KLINE (INVALIDATE USER TO USE *TFSP*.),E
  12655. KLINE ( ALTFAM = FAMILY )
  12656. KLINE (ALLOW ALTERNATE FAMILY ACCESS.),E
  12657. KLINE ( CALTFAM = FAMILY )
  12658. KLINE (DISALLOW ALTERNATE FAMILY ACCESS.),E
  12659. KLINE ( ISV )
  12660. KLINE (INITIALIZE SCRATCH VSNS.),E
  12661. KLINE ( VSN = VSN )
  12662. KLINE (BEGIN VSN LEVEL DIRECTIVES.),E
  12663. KLINE ( USER = USERNAM )
  12664. KLINE (BEGIN USER LEVEL DIRECTIVES.),E
  12665. KLINE ( DROP )
  12666. KLINE (TERMINATE *TFSP*.),E
  12667. KLINE ( GO )
  12668. KLINE (MAKE UPDATES AND TERMINATE *TFSP*.),E
  12669. KEND
  12670. KVSNLS SPACE 4,10
  12671. ** KVSNLS - LEFT SCREEN VSN LEVEL K-DISPLAY.
  12672.  
  12673.  
  12674. KVSNLS KSTART
  12675. KLINE ( VSN = )
  12676. VSN KLINE ( ),E
  12677. KLINE ( ),E
  12678. KLINE ( )
  12679. MESS KLINE (VSN NOT CURRENTLY IN CATALOG.),E
  12680. KLINE ( ),E
  12681. VT KLINE ( VT =MTNT )
  12682. KLINE (TAPE TYPE. (MTNT, CT OR AT)),E
  12683. PRN KLINE ( PRN = )
  12684. KLINE (PHYSICAL VSN (PRN). (1-6 CHARACTERS)),E
  12685. STATUS KLINE ( STATUS =AVAILABLE )
  12686. KLINE (STATUS. (AVAILABLE,CLEANED,HOLD,ERROR)),E
  12687. SITE KLINE ( SITE =ON )
  12688. KLINE (SITE STATUS. (ON, OFF)),E
  12689. OWNER KLINE ( OWNER =CENTER )
  12690. KLINE (OWNERSHIP TYPE. (CENTER, USER)),E
  12691. SYSTEM KLINE ( SYSTEM =NO )
  12692. KLINE (SYSTEM VSN FLAG. (NO, YES)),E
  12693. USAGE KLINE ( USAGE =0 )
  12694. KLINE (USAGE COUNTER. (0 - 63)),E
  12695. KNEXT KMESS
  12696. KVSNRS SPACE 4,10
  12697. ** KVSNRS - RIGHT SCREEN VSN LEVEL K-DISPLAY.
  12698.  
  12699.  
  12700. KVSNRS KSTART
  12701. KLINE ( ADD )
  12702. KLINE (PROCESS ADDING VSN TO CATALOG.),E
  12703. KLINE ( REVISE )
  12704. KLINE (PROCESS REVISING VSN IN CATALOG.),E
  12705. KLINE ( DROP )
  12706. KLINE (IGNORE ADD/REVISE OF VSN.),E
  12707. KLINE ( GO )
  12708. KLINE (ADD OR REVISE VSN.),E
  12709. KEND
  12710. KUSELS SPACE 4,10
  12711. ** KUSELS - LEFT SCREEN USER LEVEL K-DISPLAY.
  12712. *
  12713. * ENTRY (KUSELS) = LENGTH OF DISPLAY FOR TERMINAL OUTPUT.
  12714.  
  12715.  
  12716. KUSELS KSTART
  12717. KLINE ( USER = )
  12718. USER KLINE ( ),E
  12719. KLINE ( ),E
  12720. KLINE ( TAPE FILES -),E
  12721. KLINE ( ),E
  12722. FILE BSS 0
  12723. DUP 9
  12724. KLINE ( )
  12725. KLINE ( ),E
  12726. ENDD
  12727. KNEXT KMESS
  12728. KUSERS SPACE 4,10
  12729. ** KUSERS - RIGHT SCREEN USER LEVEL K-DISPLAY.
  12730.  
  12731.  
  12732. KUSERS KSTART
  12733. KLINE ( AUDITCN = CHARGNO )
  12734. KLINE (AUDIT TAPE FILES WITH CHARGE NUMBER.),E
  12735. KLINE ( AUDITFI = FILEID )
  12736. KLINE (AUDIT TAPE FILE.),E
  12737. KLINE ( AUDITFV = VSN )
  12738. KLINE (AUDIT TAPE FILES WITH VSN.),E
  12739. KLINE ( MREADCN = CHARGNO )
  12740. KLINE (MACHINE READABLE *AUDITCN*.),E
  12741. KLINE ( MREADFI = FILEID )
  12742. KLINE (MACHINE READABLE *AUDITFI*.),E
  12743. KLINE ( MREADFV = VSN )
  12744. KLINE (MACHINE READABLE *AUDITFV*.),E
  12745. KLINE ( SOURCCN = CHARGNO )
  12746. KLINE (SOURCE OF TAPE FILES WITH CHARGE NUMBER.),E
  12747. KLINE ( SOURCFI = FILEID )
  12748. KLINE (SOURCE OF TAPE FILE.),E
  12749. KLINE ( SOURCFV = VSN )
  12750. KLINE (SOURCE OF TAPE FILES WITH VSN.),E
  12751. KLINE ( RELEASF = FILEID )
  12752. KLINE (RELEASE BY TAPE FILE.),E
  12753. KLINE ( RELEASV = VSN )
  12754. KLINE (RELEASE BY VSN.),E
  12755. KLINE ( FILE = FILEID )
  12756. KLINE (BEGIN FILE LEVEL DIRECTIVES.),E
  12757. KLINE ( FILEV = VSN/QN )
  12758. KLINE (BEGIN FILE LEVEL DIRECTIVES.),E
  12759. KLINE ( DROP )
  12760. KLINE (END USER LEVEL DIRECTIVES.),E
  12761. KEND
  12762. KFILLS1 SPACE 4,10
  12763. ** KFILLS1 - LEFT SCREEN FILE LEVEL K-DISPLAY, PAGE 1.
  12764.  
  12765.  
  12766. KFILLS1 KSTART
  12767. KLINE ( USER = )
  12768. USER KLINE ( ),E
  12769. KLINE ( FVSN = )
  12770. FVSN KLINE ( ),E
  12771. KLINE ( QN = )
  12772. QN KLINE ( ),E
  12773. KLINE ( FILE = )
  12774. FILE KLINE ( PAGE 1 OF 3),E
  12775. KLINE ( ),E
  12776. KLINE ( )
  12777. MESS KLINE (FILE NOT CURRENTLY RESERVED. ),E
  12778. KLINE ( ),E
  12779. SV KLINE ( SV = )
  12780. KLINE (SYMBOLIC ACCESS. (NO, SET)),E
  12781. RECOVER KLINE ( RECOVER= )
  12782. KLINE (RECOVERED STATUS. (NO, YES)),E
  12783. CN KLINE ( CN = )
  12784. KLINE (CHARGE NUMBER. (0-10 CHARACTERS)),E
  12785. PN KLINE ( PN = )
  12786. KLINE (PROJECT NUMBER.(0-20 CHARS)),E
  12787. CE KLINE ( CE =CLEAR )
  12788. KLINE (ERROR FLAG. (CLEAR, SET)),E
  12789. UC KLINE ( UC = )
  12790. KLINE (USER CONTROL WORD. (0-10 CHARACTERS)),E
  12791. TSITE KLINE ( TSITE =ON )
  12792. KLINE (SITE STATUS. (ON, OFF)),E
  12793. URDATE KLINE ( URDATE = )
  12794. KLINE (RELEASE DATE. (YYMMDD)),E
  12795. TOWNER KLINE ( TOWNER =CENTER )
  12796. KLINE (OWNERSHIP TYPE. (CENTER, USER)),E
  12797. KLINE ( ASSIGNED VSNS - ),E
  12798. AVSN BSS 0
  12799. DUP 10
  12800. KLINE ( )
  12801. KLINE ( ),E
  12802. ENDD
  12803. KNEXT KMESS
  12804. KFILLS2 SPACE 4,10
  12805. ** KFILLS2 - LEFT SCREEN FILE LEVEL K-DISPLAY, PAGE 2.
  12806.  
  12807.  
  12808. KFILLS2 KSTART
  12809. KLINE ( USER = )
  12810. USER KLINE ( ),E
  12811. KLINE ( FVSN = )
  12812. FVSN KLINE ( ),E
  12813. KLINE ( QN = )
  12814. QN KLINE ( ),E
  12815. KLINE ( FILE = )
  12816. FILE KLINE ( PAGE 2 OF 3),E
  12817. KLINE ( ),E
  12818. KLINE ( )
  12819. MESS KLINE (FILE NOT CURRENTLY RESERVED. ),E
  12820. KLINE ( ),E
  12821. FI KLINE ( FI = )
  12822. KLINE (LOGICAL FILE IDENTIFIER.),E
  12823. KLINE ( (1-17 CHARACTERS)),E
  12824. PW KLINE ( PW = )
  12825. KLINE (PASSWORD. (0-7 CHARACTERS)),E
  12826. CT KLINE ( CT =PRIVATE )
  12827. KLINE (ACCESS CATEGORY.),E
  12828. KLINE ( )
  12829. KLINE ((PRIVATE, SPRIV, PUBLIC)),E
  12830. M KLINE ( M =READ )
  12831. KLINE (ACCESS MODE. (READ, WRITE, NULL)),E
  12832. AC KLINE ( AC =NO )
  12833. KLINE (ALTERNATE CATLIST. (NO, YES)),E
  12834. ACOUNT KLINE ( ACOUNT =0000 )
  12835. KLINE (ACCESS COUNT. (0-"MXAC")),E
  12836. CDATE KLINE ( CDATE = )
  12837. KLINE (CREATION DATE. (YYMMDD)),E
  12838. CTIME KLINE ( CTIME = )
  12839. KLINE (CREATION TIME. (HHMMSS)),E
  12840. ADATE KLINE ( ADATE = )
  12841. KLINE (LAST ACCESS DATE. (YYMMDD)),E
  12842. ATIME KLINE ( ATIME = )
  12843. KLINE (LAST ACCESS TIME. (HHMMSS)),E
  12844. MDATE KLINE ( MDATE = )
  12845. KLINE (LAST MODIFICATION DATE. (YYMMDD)),E
  12846. MTIME KLINE ( MTIME = )
  12847. KLINE (LAST MODIFICATION TIME. (HHMMSS)),E
  12848. KNEXT KMESS
  12849. KFILLS3 SPACE 4,10
  12850. ** KFILLS3 - LEFT SCREEN FILE LEVEL K-DISPLAY, PAGE 3.
  12851. *
  12852. * ENTRY (KFILLS3) = LENGTH OF DISPLAY FOR TERMINAL OUTPUT.
  12853.  
  12854.  
  12855. KFILLS3 KSTART
  12856. KLINE ( USER = )
  12857. USER KLINE ( ),E
  12858. KLINE ( FVSN = )
  12859. FVSN KLINE ( ),E
  12860. KLINE ( QN = )
  12861. QN KLINE ( ),E
  12862. KLINE ( FILE = )
  12863. FILE KLINE ( PAGE 3 OF 3),E
  12864. KLINE ( ),E
  12865. KLINE ( )
  12866. MESS KLINE (FILE NOT CURRENTLY RESERVED. ),E
  12867. KLINE ( ),E
  12868. PI KLINE ( PI = )
  12869. KLINE (PHYSICAL FILE IDENTIFIER.),E
  12870. KLINE ( (1-17 CHARACTERS)),E
  12871. CR KLINE ( CR = )
  12872. KLINE (CREATION DATE. (YYDDD)),E
  12873. CV KLINE ( CV =AS )
  12874. KLINE (CONVERSION MODE. (AS, EB)),E
  12875. D KLINE ( D =PE )
  12876. KLINE (DENSITY. (PE, GE, HI, HY, HD, CE, AE)),E
  12877. E KLINE ( E =00 )
  12878. KLINE (GENERATION VERSION NUMBER. (0-99)),E
  12879. F KLINE ( F =I )
  12880. KLINE (FORMAT. (I, LI, S, L, SI, F)),E
  12881. FA KLINE ( FA = )
  12882. KLINE (ACCESSIBILITY. (0-1 CHARACTERS)),E
  12883. FC KLINE ( FC ="MXFC" )
  12884. KLINE (F-FORMAT MAX BLOCK SIZE. (1-"MXFC")),E
  12885. G KLINE ( G =0001 )
  12886. KLINE (GENERATION NUMBER. (1-9999)),E
  12887. LB KLINE ( LB =KL )
  12888. KLINE (LABEL TYPE. (KL, KU, NS)),E
  12889. NS KLINE ( NS =0 )
  12890. KLINE (NOISE SIZE. (0-31)),E
  12891. RT KLINE ( RT = )
  12892. KLINE (RETENTION DATE. (YYDDD)),E
  12893. SI KLINE ( SI = )
  12894. KLINE (SET IDENTIFIER. (0-6 CHARACTERS)),E
  12895. SN KLINE ( SN =0001 )
  12896. KLINE (SECTION NUMBER. (1-9999)),E
  12897. KNEXT KMESS
  12898. KFILRS SPACE 4,10
  12899. ** KFILRS - RIGHT SCREEN FILE LEVEL K-DISPLAY.
  12900.  
  12901.  
  12902. KFILRS KSTART
  12903. KLINE ( AUDITAU = USERNAM )
  12904. KLINE (AUDIT ALTERNATE USER.),E
  12905. KLINE ( AVSN = VSN )
  12906. KLINE (ASSIGN VSN TO TAPE FILE.),E
  12907. KLINE ( AUSER = USERNAM )
  12908. KLINE (BEGIN ALTERNATE USER LEVEL DIRECTIVES.),E
  12909. KLINE ( RESERVE )
  12910. KLINE (PROCESS RESERVE OF TAPE FILE.),E
  12911. KLINE ( AMEND )
  12912. KLINE (PROCESS AMEND OF TAPE FILE.),E
  12913. KLINE ( DROP )
  12914. KLINE (IGNORE RESERVE/AMEND OF TAPE FILE.),E
  12915. KLINE ( GO )
  12916. KLINE (RESERVE OR AMEND TAPE FILE.),E
  12917. KEND
  12918. KAUSLS SPACE 4,10
  12919. ** KAUSLS - LEFT SCREEN ALTERNATE USER LEVEL K-DISPLAY.
  12920.  
  12921.  
  12922. KAUSLS KSTART
  12923. KLINE ( USER = )
  12924. USER KLINE ( ),E
  12925. KLINE ( FILE = )
  12926. FILE KLINE ( ),E
  12927. KLINE ( AUSER = )
  12928. AUSER KLINE ( ),E
  12929. KLINE ( ),E
  12930. KLINE ( )
  12931. MESS KLINE (USER NOT CURRENTLY ADMITTED. ),E
  12932. KLINE ( ),E
  12933. AMODE KLINE ( AMODE =WRITE )
  12934. KLINE (PERMISSION MODE.),E
  12935. KLINE ( )
  12936. KLINE ((IMPLICIT, WRITE, READ, NULL, SPECIAL)),E
  12937. AACOUNT KLINE ( AACOUNT=0000 )
  12938. KLINE (ACCESS COUNT. (0-"MXAA")),E
  12939. AADATE KLINE ( AADATE = )
  12940. KLINE (LAST ACCESS DATE. (YYMMDD)),E
  12941. AATIME KLINE ( AATIME = )
  12942. KLINE (LAST ACCESS TIME. (HHMMSS)),E
  12943. KNEXT KMESS
  12944. KAUSRS SPACE 4,10
  12945. ** KAUSRS - RIGHT SCREEN ALTERNATE USER LEVEL K-DISPLAY.
  12946.  
  12947.  
  12948. KAUSRS KSTART
  12949. KLINE ( ADMIT )
  12950. KLINE (PROCESS ALTERNATE USER ADMIT.),E
  12951. KLINE ( DROP )
  12952. KLINE (IGNORE ALTERNATE USER ADMIT.),E
  12953. KLINE ( GO )
  12954. KLINE (PROCESS ALTERNATE USER ADMIT.),E
  12955. KEND
  12956. KMESS SPACE 4,10
  12957. ** K-DISPLAY STATUS MESSAGES.
  12958.  
  12959.  
  12960. KMESS KSTART
  12961. KLINE ( ),E
  12962. STATUS KLINE ( PROCESSING DIRECTIVES.),E
  12963. DIRECT KLINE ( *********)
  12964. KLINE ( ),E
  12965. MESSAGE KLINE ( )
  12966. KLINE ( ),E
  12967. KEND END OF K-DISPLAY
  12968.  
  12969. * INSURE DISPLAYS LESS THAN 40 LINES.
  12970.  
  12971. ERRNG 37-/KLEFT/LINES-/KFAMLS/LINES-/KMESS/LINES
  12972. ERRNG 37-/KLEFT/LINES-/KVSNLS/LINES-/KMESS/LINES
  12973. ERRNG 37-/KLEFT/LINES-/KUSELS/LINES-/KMESS/LINES
  12974. ERRNG 37-/KLEFT/LINES-/KFILLS1/LINES-/KMESS/LINES
  12975. ERRNG 37-/KLEFT/LINES-/KFILLS2/LINES-/KMESS/LINES
  12976. ERRNG 37-/KLEFT/LINES-/KFILLS3/LINES-/KMESS/LINES
  12977. ERRNG 37-/KLEFT/LINES-/KAUSLS/LINES-/KMESS/LINES
  12978. ERRNG 37-/KRIGHT/LINES-/KFAMRS/LINES
  12979. ERRNG 37-/KRIGHT/LINES-/KUSERS/LINES
  12980. ERRNG 37-/KRIGHT/LINES-/KFILRS/LINES
  12981. ERRNG 37-/KRIGHT/LINES-/KAUSRS/LINES
  12982. KDIS SPACE 4,10
  12983. ** K-DISPLAY DIRECTIVE POINTERS.
  12984.  
  12985.  
  12986. QUAL KDIS
  12987.  
  12988. AACOUNT EQU /KAUSLS/AACOUNT
  12989. AADATE EQU /KAUSLS/AADATE
  12990. AATIME EQU /KAUSLS/AATIME
  12991. AC EQU /KFILLS2/AC
  12992. ACOUNT EQU /KFILLS2/ACOUNT
  12993. ADATE EQU /KFILLS2/ADATE
  12994. AMODE EQU /KAUSLS/AMODE
  12995. ATIME EQU /KFILLS2/ATIME
  12996. CDATE EQU /KFILLS2/CDATE
  12997. CE EQU /KFILLS1/CE
  12998. CN EQU /KFILLS1/CN
  12999. COLON EQU /KLEFT/COLON
  13000. CR EQU /KFILLS3/CR
  13001. CT EQU /KFILLS2/CT
  13002. CTIME EQU /KFILLS2/CTIME
  13003. CV EQU /KFILLS3/CV
  13004. D EQU /KFILLS3/D
  13005. E EQU /KFILLS3/E
  13006. F EQU /KFILLS3/F
  13007. FA EQU /KFILLS3/FA
  13008. FC EQU /KFILLS3/FC
  13009. FI EQU /KFILLS2/FI
  13010. G EQU /KFILLS3/G
  13011. LB EQU /KFILLS3/LB
  13012. M EQU /KFILLS2/M
  13013. MDATE EQU /KFILLS2/MDATE
  13014. MTIME EQU /KFILLS2/MTIME
  13015. NS EQU /KFILLS3/NS
  13016. OWNER EQU /KVSNLS/OWNER
  13017. PI EQU /KFILLS3/PI
  13018. PN EQU /KFILLS1/PN
  13019. PRN EQU /KVSNLS/PRN
  13020. PW EQU /KFILLS2/PW
  13021. READ EQU /KLEFT/READ
  13022. RECOVER EQU /KFILLS1/RECOVER
  13023. RT EQU /KFILLS3/RT
  13024. SEPARAT EQU /KLEFT/SEPARAT
  13025. SI EQU /KFILLS3/SI
  13026. SITE EQU /KVSNLS/SITE
  13027. SN EQU /KFILLS3/SN
  13028. STATUS EQU /KVSNLS/STATUS
  13029. SV EQU /KFILLS1/SV
  13030. SYSTEM EQU /KVSNLS/SYSTEM
  13031. TOWNER EQU /KFILLS1/TOWNER
  13032. TSITE EQU /KFILLS1/TSITE
  13033. UC EQU /KFILLS1/UC
  13034. URDATE EQU /KFILLS1/URDATE
  13035. USAGE EQU /KVSNLS/USAGE
  13036. VT EQU /KVSNLS/VT
  13037.  
  13038. QUAL *
  13039. TITLE BUFFER AREA.
  13040. BUFFER SPACE 4,10
  13041. ** BUFFER ASSIGNMENTS.
  13042.  
  13043.  
  13044. USE BUFFERS
  13045.  
  13046. BUF1 BSS 0 MAIN PROGRAM BUFFERS
  13047. CBUF BSS CBUFL CHARACTER BUFFER
  13048. EBUF BSS EBUFL ERROR MESSAGE BUFFER
  13049. KBUF BSS KBUFL K-DISPLAY INPUT BUFFER
  13050. LBUF BSS FBUFL OUTPUT FILE BUFFER
  13051. PCAT BSS TCEL PREVIOUS FILE CATALOG IMAGE
  13052. N1BUF BSS N1BUFL VSN TAPE CATALOG BUFFER
  13053. N2BUF BSS N2BUFL USER NAME TAPE CATALOG BUFFER
  13054. N3BUF BSS N3BUFL TAPE FILE TAPE CATALOG BUFFER
  13055. N4BUF BSS N4BUFL ALTERNATE USER NAME TAPE CATALOG BUFFER
  13056. RBUF BSS RBUFL REWIND FILE BUFFER
  13057. REC1 BSS 100B IMAGE OF FIRST TAPE CATALOG FILE RECORD
  13058. TAVS BSS TAVSL TABLE OF ASSIGNED VSNS
  13059. TBUF BSS SBUFL TERMINAL INTERRUPT FILE BUFFER
  13060. TSMC EQU REC1+TBHL+TMSM *MT/NT* SCRATCH COUNT
  13061. TSCC EQU REC1+TBHL+TMSC *CT* SCRATCH COUNT
  13062. TSAC EQU REC1+TBHL+TMSA *AT* SCRATCH COUNT
  13063. TTCS EQU REC1+TBHL+TMCT TAPE CATALOG SIZE
  13064. TSST BSS TSTL IMAGE OF SYSTEM TABLE
  13065. TFMN EQU TSST+TMFM FAMILY NAME
  13066. TSTT EQU TFMN STATUS WORD
  13067. TIDM EQU TSST+TMID MACHINE ID
  13068. TCMB EQU TSST+TMMB MESSAGE BUFFER
  13069. TVUN EQU TSST+TMUN VALIDATED USERS
  13070. TLFM EQU TSST+TMLF LINKED FAMILY NAME
  13071. TAFM EQU TSST+TMPA PERMITTED ALTERNATE FAMILIES
  13072. SBUF BSS SBUFL SCRATCH FILE BUFFER
  13073. SSBUF BSS FBUFL MACHINE READABLE/SOURCE FILE BUFFER
  13074. UBUF BSS UBUFL ALTERNATE USER ENTRY BUFFER
  13075. VBUF BSS VBUFL VSN ENTRY BUFFER
  13076. WBUF BSS WBUFL WORKING BUFFER
  13077. HBUF BSS HBUFL HOLD BUFFER
  13078. BUF1E BSS 0 END OF MAIN PROGRAM BUFFERS
  13079. TITLE PRESET AREA.
  13080. SPACE 4
  13081. ORG BUF1 OVERWRITTEN BY ALL BUFFERS EXCEPT *IBUF*
  13082. COMMON SPACE 4,10
  13083. ** COMMON DECKS.
  13084.  
  13085.  
  13086. *CALL COMCWTS
  13087. *CALL COMCZAP
  13088. SPACE 4
  13089. QUAL PRESET
  13090. COMMON SPACE 4,10
  13091. ** COMMON DECKS.
  13092.  
  13093.  
  13094. *CALL COMSPFM
  13095. PRS SPACE 4,10
  13096. ** PRS - PRESET *TFSP* AND *TFSPE*.
  13097. *
  13098. * EXIT TO *TFS*.
  13099.  
  13100.  
  13101. PRS28 RJ ZAP ENTER *Z* DIRECTIVES INTO INPUT BUFFER
  13102. EQ TFS ENTER MAIN PROGRAM
  13103.  
  13104. BUF2 BSS 0 CAN BE OVERWRITTEN BY *IBUF*
  13105.  
  13106. * ENTRY TO *TFSP*.
  13107.  
  13108. TFSP SB1 1 ENTRY
  13109. RJ ZFN ZERO OUT FILE NAMES IN FETS
  13110. MOVE PRSAL,PRSA,/KFAMLS/TFSPE CLEAR *TFSPE* MESSAGE
  13111. RJ GOT GET ORIGIN TYPE
  13112. SX1 X6-SYOT
  13113. ZR X1,PRS1 IF SYSTEM ORIGIN
  13114. SX6 B0 DISABLE *FM* PARAMETER
  13115. SA6 TPARSY
  13116. SA6 TOPOK DISABLE *OP=K*
  13117. PRS1 SB5 TPAR SET PARAMETER TABLE ADDRESS
  13118. SA1 ACTR SET NUMBER OF ARGUMENTS
  13119. SB4 X1
  13120. SA4 ARGR SET START OF ARGUMENTS
  13121. RJ ARG PROCESS ARGUMENTS
  13122. SB5 MPER SET ERROR MESSAGE ADDRESS
  13123. NZ X1,ABT IF ARGUMENT ERROR
  13124. SA1 LF
  13125. ZR X1,PRS2 IF NOT LOCAL FILE MODE
  13126. SA1 FM
  13127. SA4 =C*FM* SET PARAMETER NAME
  13128. NZ X1,ABT IF *FM* SPECIFIED
  13129. PRS2 MX0 42 SEARCH FOR OPTION
  13130. SRCHTAB TOPO,OP
  13131. ZR X4,PRS3 IF OPTION FOUND
  13132. SB5 MILO SET ERROR MESSAGE ADDRESS
  13133. BX4 X2 SET OPTION NAME
  13134. EQ ABT ABORT WITH ERROR MESSAGE
  13135.  
  13136. PRS3 BX6 -X0*X3 SET *OP* OPTION
  13137. SA6 OP
  13138. SX1 X6-IOPT
  13139. ZR X1,PRS5 IF *OP=I*
  13140. SETFET I,(LFN=B0) SET *I=0*
  13141. EQ PRS5 CHECK FILE NAMES
  13142.  
  13143. * ENTRY TO *TFSPE*.
  13144.  
  13145. TFSPE SB1 1 ENTRY
  13146. RJ GOT GET ORIGIN TYPE
  13147. SX1 X6-SYOT
  13148. ZR X1,PRS4 IF SYSTEM ORIGIN
  13149. ABTMSG MILA ABORT *TFSP*
  13150.  
  13151. PRS4 RJ ZFN ZERO OUT FILE NAMES IN FETS
  13152. SA1 =10H *TFSPE* SET NAME OF PROGRAM IN K-DISPLAY
  13153. BX6 X1
  13154. SA6 /KLEFT/PROGRAM
  13155. SA6 /KRIGHT/PROGRAM
  13156. SA6 NPGB SET NAME OF PROGRAM IN PAGE HEADER
  13157. SX6 KOPT SET *OP=K*
  13158. SA6 OP
  13159. SETFET I,(LFN=B0) SET *I=0*
  13160. SX6 B1 SET *TFSPE* FLAG
  13161. SA6 TE
  13162. SB5 TPAE SET PARAMETER TABLE ADDRESS
  13163. SA1 ACTR SET NUMBER OF ARGUMENTS
  13164. SB4 X1
  13165. SA4 ARGR SET START OF ARGUMENTS ADDRESS
  13166. RJ ARG PROCESS ARGUMENTS
  13167. SB5 MPER SET ERROR MESSAGE ADDRESS
  13168. NZ X1,ABT IF ARGUMENT ERRORS
  13169.  
  13170. * PROCESS FILE NAMES.
  13171.  
  13172. PRS5 RJ GSF GET SCRATCH FILE NAME
  13173. SX1 B1 SET TERMINAL INTERRUPT FILE NAME
  13174. BX6 X6+X1
  13175. SA6 T
  13176. SA1 OT CHECK ORIGIN TYPE
  13177. SX1 X1-TXOT
  13178. NZ X1,PRS6 IF NOT INTERACTIVE ORIGIN
  13179. REQUEST A6,TT,NOMSG ASSIGN TO TERMINAL
  13180. EQ PRS7 REDUCE QUEUE PRIORITY
  13181.  
  13182. PRS6 SA1 LF
  13183. ZR X1,PRS8 IF NOT LOCAL FILE MODE
  13184. PRS7 SETRNR OPROLL REDUCE QUEUE PRIORITY
  13185. PRS8 SA1 LF
  13186. ZR X1,PRS10 IF NOT LOCAL FILE MODE
  13187. SA1 TE
  13188. NZ X1,PRS10 IF *TFSPE*
  13189. MX0 42 CHECK TAPE CATALOG FILE NAMES
  13190. SA1 N
  13191. BX1 X0*X1
  13192. NZ X1,PRS11 IF NEW FILE NAME SPECIFIED
  13193. SA1 P
  13194. BX1 X0*X1
  13195. NZ X1,PRS9 IF OLD FILE NAME SPECIFIED
  13196. SETFET N,(LFN==C*NEW*) SET NEW TAPE CATALOG FILE NAME
  13197. EQ PRS11 SET REMAINING FETS
  13198.  
  13199. PRS9 SETFET N,(LFN=P) SET NEW TAPE CATALOG FILE NAME
  13200. EQ PRS11 SET REMAINING FETS
  13201.  
  13202. PRS10 SETFET P,(LFN=B0) SET OLD TAPE CATALOG FILE NAME
  13203. SETFET N,(LFN==C*"TMFC"*) SET NEW TAPE CATALOG FILE NAME
  13204. PRS11 SA1 LF
  13205. NZ X1,PRS12 IF LOCAL FILE MODE
  13206. SA1 TE
  13207. NZ X1,PRS12 IF *TFSPE*
  13208. SETFET N1,(LFN=B0) SET FILE NAME FOR FETS
  13209. SETFET N2,(LFN=B0)
  13210. SETFET N3,(LFN=B0)
  13211. SETFET N4,(LFN=B0)
  13212. EQ PRS13 SET TAPE CATALOG IMAGES
  13213.  
  13214. PRS12 SETFET N1,(LFN=N) SET FILE NAMES FOR FETS
  13215. SETFET N2,(LFN=N)
  13216. SETFET N3,(LFN=N)
  13217. SETFET N4,(LFN=N)
  13218. PRS13 SB5 MFNC PRESET ERROR MESSAGE ADDRESS
  13219. MX0 42 COMPARE TAPE CATALOG FILE NAMES
  13220. SA3 P
  13221. SA4 N
  13222. BX3 X3-X4
  13223. BX3 X0*X3
  13224. SA2 PRSB PRESET TABLE ADDRESS
  13225. NZ X3,PRS14 IF TAPE CATALOG NAMES DO NOT MATCH
  13226. SA2 A2+B1 RESET TABLE ADDRESS
  13227. PRS14 ZR X2,PRS17 IF END OF TABLE
  13228. SA4 X2 CHECK FILE NAME
  13229. BX4 X0*X4
  13230. ZR X4,PRS16 IF NO FILE NAME
  13231. SA1 A2+B1
  13232. PRS15 ZR X1,PRS16 IF END OF TABLE
  13233. SA3 X1 COMPARE FILE NAMES
  13234. BX3 X3-X4
  13235. BX3 X0*X3
  13236. ZR X3,ABT IF FILE NAME CONFLICT
  13237. SA1 A1+B1
  13238. EQ PRS15 CHECK NEXT FET
  13239.  
  13240. PRS16 SA2 A2+B1
  13241. EQ PRS14 CHECK NEXT FILE NAME
  13242.  
  13243. * PRESET TABLES IN MAIN PROGRAM.
  13244.  
  13245. PRS17 SB3 7 SPACE FILL COMMAND IMAGE
  13246. PRS18 SA1 CCDR+B3
  13247. RJ SFN SPACE FILL NAME
  13248. SA6 A1
  13249. SB3 B3-B1
  13250. PL B3,PRS18
  13251. MOVEBIT CCDR,NPGF,480,,41 MOVE IMAGE TO PAGE HEADER
  13252. MACHID MI SET MACHINE ID
  13253. PDATE PD SET PACKED DATE AND TIME
  13254. MOVEBIT PD,DFIC+/CAT/CDATE,36,35,35 SET DEFAULT DATES
  13255. MOVEBIT PD,DFIC+/CAT/MDATE,36,35,35
  13256. MOVEBIT PD,DFIC+/CAT/ADATE,36,35,35
  13257. MOVEBIT PD,DAUC+/CAT/AADATE,36,35,35
  13258. SA1 PD GET PACKED TIME
  13259. SX1 X1
  13260. SB3 100
  13261. RJ UDT UNPACK TIME
  13262. SA6 DT SAVE DISPLAY TIME
  13263. SA1 PD GET PACKED DATE
  13264. AX1 18
  13265. SB3 70
  13266. RJ UDT UNPACK DATE
  13267. SA6 DD SAVE DISPLAY DATE
  13268. DATE NPGD MOVE DATE INTO PAGE HEADER
  13269. CLOCK NPGD+1 MOVE TIME INTO PAGE HEADER
  13270. SA1 TE
  13271. ZR X1,PRS19 IF NOT *TFSPE*
  13272. MOVE 2,NPGD,/KFAMLS/TDATE MOVE DATE/TIME TO MESSAGE
  13273. PRS19 JDATE JD SET JULIAN DATE
  13274. SA1 JD
  13275. BX6 X1
  13276. LX6 30
  13277. SA6 A1
  13278. MOVEBIT JD,DFIC+/CAT/RT,30 SET DEFAULT DATES
  13279. MOVEBIT JD,DFIC+/CAT/CR,30,,29
  13280. SA2 L
  13281. RJ CFS CHECK FILE STATUS OF OUTPUT
  13282. SA6 OS
  13283. NG X6,PRS20 IF MASS STORAGE OUTPUT
  13284. SA1 =0 SET TERMINAL OUTPUT FOR AUDIT LISTING
  13285. MOVEBIT A1,/ALS/EOL1,12,,11
  13286. SA1 =0
  13287. MOVEBIT A1,/ALS/EOL2,12,,11
  13288. MOVEBIT (=0),/PFIA/EOL1,/PFIAC/EOL1*6,,/PFIAU/EOL1
  13289. MOVEBIT (=0),/PFIA/EOL2,/PFIAC/EOL2*6,,/PFIAU/EOL2
  13290.  
  13291. * PROCESS FAMILY NAME.
  13292.  
  13293. PRS20 RJ SFL SET FAMILY NAME
  13294. RJ SFN SPACE FILL NAME
  13295. SA6 NPGC SET FAMILY NAME IN PAGE HEADER
  13296. BX1 X6 SET FAMILY NAME IN MACHINE READABLE ENTRY
  13297. MOVEBIT A1,/MLS/FAMILY,/MLSC/FAMILY*6,,/MLSU/FAMILY
  13298. SA1 TE
  13299. NZ X1,PRS24 IF *TFSPE*
  13300. SA1 LF
  13301. ZR X1,PRS23 IF NOT LOCAL FILE MODE
  13302.  
  13303. * PROCESS *TFSP* - LOCAL FILE MODE.
  13304.  
  13305. MX0 42 CHECK OLD TAPE CATALOG NAME
  13306. SA1 P
  13307. BX1 X0*X1
  13308. NZ X1,PRS21 IF FILE NAME SPECIFIED
  13309. RJ CDN COPY DEFAULT NEW TAPE CATALOG FILE
  13310. REPRIEVE RPVA,SET,237B SET EXTENDED REPRIEVE
  13311. EQ PRS26 INITIALIZE FILES
  13312.  
  13313. PRS21 RJ CPN COPY OLD TAPE CATALOG TO NEW
  13314. ZR X4,PRS22 IF NOT EMPTY TAPE CATALOG
  13315. ABTMSG METC ABORT *TFSP*
  13316.  
  13317. PRS22 RJ RFP READ FIRST PRU
  13318. RJ CIL CLEAR INTERLOCKS ON FILE
  13319. REPRIEVE RPVA,SET,237B SET EXTENDED REPRIEVE
  13320. EQ PRS26 INITIALIZE FILES
  13321.  
  13322. * PROCESS *TFSP* - NOT LOCAL FILE MODE.
  13323.  
  13324. PRS23 REPRIEVE RPVA,SET,237B SET EXTENDED REPRIEVE
  13325. RJ SIL SET INTERLOCK ON FILE
  13326. ZR X4,PRS26 IF INTERLOCK SET
  13327. ABTMSG X6 ABORT *TFSP*
  13328.  
  13329. * PROCESS *TFSPE*.
  13330.  
  13331. PRS24 REPRIEVE RPVA,SET,237B SET EXTENDED REPRIEVE
  13332. SB3 PTWR SELECT WRITE MODE REGULAR ATTACH
  13333. RJ ATT ATTACH TAPE CATALOG FILE
  13334. ZR X4,PRS25 IF FILE ATTACHED
  13335. ABTMSG MFNA ABORT *TFSP*
  13336.  
  13337. PRS25 RJ CIL CLEAR INTERLOCKS ON FILE
  13338. SX6 B1 SET LOCAL FILE MODE FLAG
  13339. SA6 LF
  13340. RJ CCF CHECK COPY FILE
  13341. PRS26 RJ INF INITIALIZE FILES
  13342. SX6 B0 CHECK IF NO VERIFY MODE IS VALID
  13343. SA1 LF
  13344. ZR X1,PRS27 IF NOT LOCAL FILE MODE
  13345. SA1 P
  13346. LJUST X1,X1,42,59
  13347. NZ X1,PRS27 IF NOT *P=0*
  13348. SA1 NV KEEP NO VERIFY STATUS
  13349. SX6 X1
  13350. PRS27 SA6 NV SET/CLEAR NO VERIFY STATUS
  13351. SA1 OP CHECK OPTION
  13352. SX1 X1-ZOPT
  13353. NZ X1,TFS IF NOT *OP=Z*
  13354. SX2 I SET INPUT FET ADDRESS
  13355. EQ PRS28 GET *Z* DIRECTIVES
  13356.  
  13357. PRSA BSS 0 CLEAR *TFSPE* MESSAGE IMAGE
  13358. DUP /KFAMLS/TFSPEL-1
  13359. KLINE ( )
  13360. ENDD
  13361. KLINE (),E
  13362. PRSAL EQU *-PRSA
  13363.  
  13364. PRSB BSS 0 TABLE OF FET ADDRESSES
  13365. CON P OLD TAPE CATALOG FILE FET
  13366. CON N NEW TAPE CATALOG FILE FET
  13367. CON I INPUT FILE FET
  13368. CON L OUTPUT FILE FET
  13369. CON S SOURCE FILE FET
  13370. CON SS MACHINE READABLE FILE FET
  13371. CON COPF COPY FILE FOR *TFSPE*
  13372. CON 0 END OF TABLE
  13373. TFR SPACE 4,10
  13374. ** TFR - PROCESS *TFSPR* COMMAND.
  13375. *
  13376. * EXIT TO END7 IF NO ERROR.
  13377. * TO ABT IF ERROR.
  13378. *
  13379. * USES A - 1, 4, 6, 7.
  13380. * X - 0, 1, 4, 6, 7.
  13381. * B - 4, 5.
  13382. *
  13383. * CALLS ABT, ARG, END, GOT, SFL.
  13384. *
  13385. * MACROS ABTMSG, MESSAGE, SYSTEM.
  13386.  
  13387.  
  13388. TFSPR BSS 0 ENTRY
  13389. SB1 1
  13390. RJ GOT GET ORIGIN TYPE
  13391. SX6 X6-SYOT
  13392. ZR X6,TFR1 IF SYSTEM ORIGIN
  13393. ABTMSG MILA * INCORRECT ACCESS.*
  13394.  
  13395. TFR1 RJ ZFN ZERO OUT FILE NAMES
  13396. SA1 ACTR READ ARGUMENT COUNT
  13397. SA4 ARGR SET ARGUMENT ADDRESS
  13398. SB4 X1 SET ARGUMENT COUNT
  13399. SB5 TPPR SET ARGUMENT TABLE ADDRESS
  13400. RJ ARG PROCESS ARGUMENTS
  13401. ZR X1,TFR2 IF NO ERROR IN ARGUMENTS
  13402. ABTMSG MPER * PARAMETER ERROR.*
  13403.  
  13404. TFR2 RJ SFL SET FAMILY NAME
  13405. SX6 ISFS*10B SET SUBFUNCTION CODE
  13406. SA6 N
  13407. SX6 30000B SET PROCESS DOWN MACHINES OPTION
  13408. SX7 TFRA SET ERROR MESSAGE ADDRESS
  13409. SA6 N+TFES
  13410. SA7 N+5
  13411. SYSTEM TFM,R,N,SSJF*100B CLEAN UP CATALOG
  13412. SA1 N CHECK ERROR CODE
  13413. MX0 -9
  13414. LX0 17-8
  13415. BX1 -X0*X1
  13416. ZR X1,END7 IF NO ERROR
  13417. MESSAGE TFRA ISSUE ERROR MESSAGE
  13418. EQ ABT ABORT
  13419.  
  13420. TFRA BSSZ 4 ERROR MESSAGE
  13421. ABT SPACE 4,10
  13422. ** ABT - *PRESET* ABORT PROCESSOR.
  13423. *
  13424. * ENTRY (B5) = ERROR MESSAGE ADDRESS.
  13425. * (X4) = IMAGE TO INSERT IN ERROR MESSAGE.
  13426. *
  13427. * EXIT *TFSP* ABORTED.
  13428.  
  13429.  
  13430. ABT BSS 0 ENTRY
  13431. MX0 42 GET LAST SEVEN CHARACTERS OF IMAGE
  13432. BX1 X0*X4
  13433. SB3 B5 SET ERROR MESSAGE ADDRESS
  13434. SB2 1R$
  13435. RJ SNM SET NAME IN MESSAGE
  13436. ABTMSG B5 ABORT *TFSP*
  13437. DMESS SPACE 4,10
  13438. ** DAYFILE ERROR MESSAGES.
  13439.  
  13440.  
  13441. MCRC DATA C$ *CF* PARAMETER REQUIRED WITH *CLEAR*.$
  13442. MERC DATA C$ CATALOG ERROR REQUIRED WITH *CLEAR*.$
  13443. METC DATA C* EMPTY TAPE CATALOG FILE.*
  13444. MFNC DATA C* FILE NAME CONFLICT - $$$$$$$.*
  13445. MILA DATA C* INCORRECT ACCESS.*
  13446. MILO DATA C* INCORRECT OPTION - $$$$$$$.*
  13447. MPER DATA C* PARAMETER ERROR - $$$$$$$.*
  13448. FETS SPACE 4,10
  13449. ** FILE ENVIRONMENT TABLES.
  13450.  
  13451.  
  13452. P BSS 0 OLD TAPE CATALOG FILE
  13453. OLD FILEB PBUF,TBUFL,(FET=8),EPR
  13454.  
  13455. N BSS 0 NEW TAPE CATALOG FILE
  13456. NEW FILEB NBUF,TBUFL,(FET=16),EPR
  13457. REWORD N+CFPW,(42/,18/PBUF)
  13458. WORKING SPACE 4,10
  13459. ** WORKING STORAGE FOR PRESET.
  13460.  
  13461.  
  13462. COPF CON 0 COPY FILE NAME FOR *TFSPE*
  13463. CLR CON 0 *CLEAR* OPTION FOR *TFSPE*
  13464. TOPO SPACE 4,10
  13465. ** TOPO - TABLE OF OPTIONS FOR *OP* PARAMETER.
  13466. *
  13467. * ENTRY ONE WORD PER OPTION.
  13468. * 42/OP,18/VALUE
  13469. *
  13470. * OP = OPTION LEFT JUSTIFIED.
  13471. * VALUE = NUMERIC VALUE OF OPTION.
  13472. *
  13473. * TABLE TERMINATED BY A ZERO WORD.
  13474.  
  13475.  
  13476. TOPO BSS 0
  13477. VFD 42/0LI,18/IOPT *I* OPTION
  13478. VFD 42/0LZ,18/ZOPT *Z* OPTION
  13479. TOPOK VFD 42/0LK,18/KOPT *K* OPTION
  13480. * CON 0 (NON-SYSTEM ORIGIN)
  13481. CON 0 END OF TABLE
  13482. TPAE SPACE 4,10
  13483. ** TPAE - TABLE OF COMMAND PARAMETERS FOR *TFSPE*.
  13484. *
  13485. * ENTRY ONE WORD PER PARAMETER FORMATTED FOR *COMCARG*.
  13486. *
  13487. * TABLE TERMINATED BY A ZERO WORD.
  13488.  
  13489.  
  13490. TPAE BSS 0 *TFSPE* PARAMETERS
  13491. L ARG L,L OUTPUT FILE
  13492. S ARG S,S SOURCE FILE
  13493. SS ARG SS,SS MACHINE READABLE FILE
  13494. FM ARG FM,FM,400B FAMILY
  13495. CF ARG (=0LZFCCOPY),COPF COPY FILE
  13496. CLEAR ARG (-=1),CLR CLEAR CATALOG OPTION
  13497. CON 0 END OF TABLE
  13498. TPAR SPACE 4,10
  13499. ** TPAR - TABLE OF COMMAND PARAMETERS FOR *TFSP*.
  13500. *
  13501. * ENTRY ONE WORD PER PARAMETER FORMATTED FOR *COMCARG*.
  13502. *
  13503. * TABLE TERMINATED BY A ZERO WORD.
  13504.  
  13505.  
  13506. TPAR BSS 0 *TFSP* PARAMETERS
  13507. I ARG I,I INPUT FILE
  13508. N ARG N,N,400B NEW TAPE CATALOG FILE
  13509. P ARG P,P OLD TAPE CATALOG FILE
  13510. OP ARG OP,OP,400B INPUT OPTION
  13511. A ARG (-=1),AB ABORT OPTION
  13512. NV ARG (-=1),NV NO VERIFY OPTION
  13513. RT ARG (-=1),RT RETRY ON UTILITY ACTIVE OPTION
  13514. LF ARG (=-1),LF LOCAL FILE OPTION
  13515. L ARG L,L OUTPUT FILE
  13516. S ARG S,S SOURCE FILE
  13517. SS ARG SS,SS MACHINE READABLE FILE
  13518. TPARSY BSS 0 SYSTEM ORIGIN PARAMETERS
  13519. FM ARG FM,FM,400B FAMILY
  13520. * CON 0 (NON-SYSTEM ORIGIN)
  13521. CON 0 END OF TABLE
  13522. TPPR SPACE 4,10
  13523. ** TPPR - TABLE OF COMMAND PARAMETERS FOR *TFSPR*.
  13524.  
  13525.  
  13526. TPPR BSS 0
  13527. FM ARG FM,FM,400B FAMILY.
  13528. ARG
  13529. ATT SPACE 4,10
  13530. ** ATT - ATTACH FILE.
  13531. *
  13532. * ENTRY (B3) = 0 FILE MODE.
  13533. * FAST ATTACH PERFORMED IF UPDATE OR READ/UPDATE MODE.
  13534. * REGULAR ATTACH PERFORMED IF WRITE MODE.
  13535. *
  13536. * EXIT (X4) = 0 IF FILE IS ATTACHED.
  13537. * (WBUF - WBUF+100B) = FIRST PRU OF FILE.
  13538. *
  13539. * USES X - 1, 4, 6.
  13540. * A - 4, 6.
  13541. *
  13542. * CALLS RFP.
  13543. *
  13544. * MACROS ATTACH, RJUST, ROLLOUT.
  13545.  
  13546.  
  13547. ATT4 RJ RFP READ FIRST PRU
  13548. SX4 B0 FLAG NO ERRORS
  13549.  
  13550. ATT SUBR ENTRY/EXIT
  13551. SX6 B3 SAVE MODE
  13552. SA6 ATTA
  13553. ATT1 SX1 B3-PTWR
  13554. ZR X1,ATT2 IF WRITE MODE
  13555. ATTACH N,,,,ATTA,,,IP,FA ATTACH FAST ATTACH FILE
  13556. EQ ATT3 CHECK IF FILE ATTACHED
  13557.  
  13558. ATT2 ATTACH N,,,,ATTA,,,IP ATTACH LOCAL FILE
  13559. ATT3 SA4 N CHECK IF FILE ATTACHED
  13560. RJUST X4,X4,8,17
  13561. ZR X4,ATT4 IF FILE ATTACHED
  13562. SX1 X4-/ERRMSG/FBS
  13563. NZ X1,ATTX IF NOT FILE BUSY
  13564. ROLLOUT =10
  13565. EQ ATT1 RETRY ATTACH
  13566.  
  13567. ATTA CON PTRU MODE OF ATTACH
  13568. CCF SPACE 4,20
  13569. ** CCF - CHECK COPY FILE.
  13570. *
  13571. * EXIT CURRENT TAPE CATALOG FILE COPIED TO COPY FILE IF *CF*
  13572. * SPECIFIED ON COMMAND.
  13573. * CURRENT TAPE CATALOG REWRITTEN AS EMPTY IF *CLEAR*
  13574. * SPECIFIED ON COMMAND.
  13575. *
  13576. * ERRORS ABORT WITH *MCRC* ERROR MESSAGE IF *CLEAR* SPECIFIED
  13577. * WITHOUT *CF*.
  13578. * ABORT WITH *MERC* ERROR MESSAGE IF *CLEAR* SPECIFIED
  13579. * WITHOUT CATALOG ERROR.
  13580. * ABORT IF UNABLE TO DEFINE COPY FILE.
  13581. *
  13582. * USES X - 0, 1, 5.
  13583. * A - 1.
  13584. *
  13585. * CALLS CDN.
  13586. *
  13587. * MACROS ABTMSG, DEFINE, MOVEBIT, READEI, READW, RETURN,
  13588. * REWIND, SETFET, WRITER, WRITEW.
  13589.  
  13590. CCF4 ABTMSG X5 ABORT PROGRAM
  13591.  
  13592. CCF SUBR ENTRY/EXIT
  13593. SA1 CLR
  13594. ZR X1,CCF1 IF *CLEAR* NOT SPECIFIED
  13595. SA1 COPF
  13596. SX5 MCRC **CF* PARAMETER REQUIRED WITH *CLEAR**
  13597. ZR X1,CCF4 IF NO COPY FILE
  13598. SX0 FETS CHECK FOR CATALOG ERROR
  13599. SA1 SYBL+TMFM
  13600. BX1 X0*X1
  13601. SX5 MERC *CATALOG ERROR REQUIRED WITH *CLEAR**
  13602. ZR X1,CCF4 IF NO CATALOG ERROR
  13603. CCF1 SA1 COPF
  13604. ZR X1,CCFX IF NO COPY FILE
  13605. MOVEBIT A1,P,42 CREATE COPY FILE
  13606. RETURN P,R
  13607. SETFET P,(ERA=CCFA),(DTY=B0)
  13608. DEFINE P,,,,,,,,,IP
  13609. MX0 -8 CHECK FOR ERROR
  13610. SA1 P
  13611. AX1 10
  13612. BX1 -X0*X1
  13613. SX5 CCFA *PFM* ERROR MESSAGE
  13614. NZ X1,CCF4 IF ERROR
  13615. REWIND P,R COPY TAPE CATALOG FILE
  13616. REWIND N,R
  13617. READEI N,R INITIATE READ
  13618. CCF2 READW N,CCFC,CCFCL
  13619. NG X1,CCF3 IF EOI
  13620. WRITEW P,CCFC,CCFCL
  13621. EQ CCF2 CONTINUE READ
  13622.  
  13623. CCF3 SB7 B6-CCFC COMPLETE RECORD
  13624. WRITEW P,CCFC,B7
  13625. WRITER P,R WRITE EOR
  13626. RETURN P
  13627. SA1 CLR
  13628. ZR X1,CCFX IF NOT *CLEAR* OPTION
  13629. MOVE 100B,CCFB,BCW1 RESET FIRST PRU
  13630. RJ CDN COPY DEFAULT TAPE CATALOG FILE
  13631. EQ CCFX RETURN
  13632.  
  13633. CCFA BSS 4 *PFM* ERROR MESSAGE BLOCK
  13634. CCFB BSS 0 DEFAULT SYSTEM BLOCK FOR *CLEAR*
  13635. LOC 0
  13636. BWRT VFD 6/RTSB,6/0,12/0,12/100B-TBHL,12/1,12/TBHL
  13637. BWDT VFD 24/0,36/
  13638. BWRI VFD 12/0,24/0,24/0
  13639. BWUN VFD 42/,18/0
  13640. LOC *O
  13641. LOC 0
  13642. TMFM VFD 42/,18/FFTS+FETS FOREIGN FAMILY, CATALOG ERROR
  13643. TMID VFD 12/,24/0,24/0
  13644. TMCT VFD 12/0,24/0,24/0
  13645. TMSV VFD 36/-0,24/0
  13646. TMMB DATA 38L CATALOG CLEARED BY *TFSPE*.
  13647. TMUN BSS UNCL
  13648. BSS 100B-TBHL-*
  13649. LOC *O
  13650.  
  13651. CCFC BSS 100B WORKING BUFFER FOR COPY FILE
  13652. CCFCL EQU *-CCFC WORKING BUFFER LENGTH
  13653. CDN SPACE 4,10
  13654. ** CDN - COPY DEFAULT TAPE CATALOG FILE.
  13655. *
  13656. * EXIT (WBUF) COPIED TO NEW TAPE CATALOG FILE.
  13657. *
  13658. * USES A - 1, 6.
  13659. * X - 1, 6.
  13660. *
  13661. * MACROS MOVEBIT, REWIND, WRITER, WRITEW.
  13662.  
  13663.  
  13664. CDN SUBR ENTRY/EXIT
  13665. REWIND N,R WRITE DEFAULT SYSTEM BLOCK
  13666. MOVEBIT MI,SYBL+TMID,12,11 SET MACHINE ID IN BLOCK
  13667. MOVEBIT CF,SYBL+TMFM,42 SET FAMILY NAME IN BLOCK
  13668. SA1 PD GET PACKED DATE/TIME
  13669. BX6 X1
  13670. SA6 BCW1+BWDT SET DATE IN BUFFER CONTROL WORDS
  13671. SA6 BCW2+BWDT
  13672. SA6 BCW3+BWDT
  13673. SA6 BCW4+BWDT
  13674. SA6 BCW5+BWDT
  13675. WRITEW N,WBUF,WBUFL
  13676. WRITER N,R WRITE EOR
  13677. EQ CDNX RETURN
  13678. CFS SPACE 4,10
  13679. ** CFS - CHECK FILE STATUS.
  13680. *
  13681. * ENTRY (A2) = FET ADDRESS.
  13682. * (X2) = FIRST WORD OF FET.
  13683. *
  13684. * EXIT (X6) = -1 IF MASS STORAGE FILE.
  13685. * = 0 IF NO FILE.
  13686. * = 1 IF TERMINAL FILE.
  13687. *
  13688. * USES X - 0, 2.
  13689. *
  13690. * CALLS STF.
  13691.  
  13692. CFS1 SX6 B1 SET TERMINAL FILE STATUS
  13693.  
  13694. CFS SUBR ENTRY/EXIT
  13695. MX0 42 CHECK FILE NAME
  13696. BX6 X0*X2
  13697. ZR X6,CFSX IF NO FILE NAME
  13698. SX2 A2
  13699. RJ STF SET TERMINAL FILE
  13700. ZR X6,CFS1 IF TERMINAL FILE
  13701. SX6 -B1 SET MASS STORAGE FILE STATUS
  13702. EQ CFSX RETURN
  13703. CIL SPACE 4,10
  13704. ** CIL - CLEAR INTERLOCKS ON FILE.
  13705. *
  13706. * ENTRY (WBUF - WBUF+100B) = FIRST PRU OF FILE.
  13707. *
  13708. * EXIT UTILITY INTERLOCKS CLEARED.
  13709. *
  13710. * CALLS WFP.
  13711. *
  13712. * MACROS MOVEBIT.
  13713.  
  13714.  
  13715. CIL SUBR ENTRY/EXIT
  13716. MOVEBIT (=0),SYBL+TMFM,1,,0 CLEAR INTERLOCKS
  13717. MOVEBIT (=0),SYBL+TMID,24,,47
  13718. MOVEBIT (=0),WBUF+BWUN,UNKL*6
  13719. RJ WFP REWRITE FIRST PRU
  13720. EQ CILX RETURN
  13721. CPN SPACE 4,10
  13722. ** CPN - COPY OLD TAPE CATALOG TO NEW FILE.
  13723. *
  13724. * EXIT (X4) = 0 IF OLD TAPE CATALOG FILE COPIED TO NEW.
  13725. *
  13726. * USES A - 1, 2.
  13727. * B - 7.
  13728. * X - 1, 2.
  13729. *
  13730. * CALLS GFL.
  13731. *
  13732. * MACROS READEI, READW, REWIND, WRITER, WRITEW.
  13733.  
  13734.  
  13735. CPN SUBR ENTRY/EXIT
  13736. SA2 P
  13737. RJ GFL GET FILE LENGTH
  13738. SX4 B1
  13739. ZR X1,CPNX IF ZERO-LENGTH FILE
  13740. MX0 42 COMPARE FILE NAMES
  13741. SA1 N
  13742. SA2 P
  13743. BX1 X1-X2
  13744. BX4 X0*X1
  13745. ZR X4,CPNX IF SAME FILE NAMES
  13746. REWIND N,R COPY OLD TAPE CATALOG FILE TO NEW
  13747. REWIND P,R
  13748. READEI P,R INITIATE READ
  13749. CPN1 READW P,WBUF,WBUFL
  13750. NG X1,CPN2 IF EOI
  13751. WRITEW N,WBUF,WBUFL WRITE DATA
  13752. EQ CPN1 CONTINUE READ
  13753.  
  13754. CPN2 SB7 B6-WBUF COMPLETE RECORD
  13755. WRITEW N,WBUF,B7
  13756. WRITER N,R WRITE EOR
  13757. SX4 B0
  13758. EQ CPNX RETURN
  13759. GFI SPACE 4,10
  13760. ** GFI - GET FILE INFORMATION.
  13761. *
  13762. * ENTRY (X2) = FIRST WORD OF FET.
  13763. *
  13764. * EXIT (X2) = ADDRESS OF *FILINFO* BLOCK.
  13765. *
  13766. * USES A - 6.
  13767. * X - 0, 2, 6.
  13768. *
  13769. * MACROS FILINFO.
  13770.  
  13771.  
  13772. GFI SUBR ENTRY/EXIT
  13773. MX0 42 SET FILE NAME IN *FILINFO* BLOCK
  13774. BX2 X0*X2
  13775. SX6 50001B
  13776. BX6 X2+X6
  13777. SA6 GFIA
  13778. FILINFO GFIA GET FILE INFORMATION
  13779. EQ GFIX RETURN
  13780.  
  13781. GFIA BSS 5 *FILINFO* BLOCK
  13782. GFL SPACE 4,10
  13783. ** GFL - GET FILE LENGTH.
  13784. *
  13785. * ENTRY (X2) = FIRST WORD OF FET.
  13786. *
  13787. * EXIT (X1) = NUMBER OF PRUS IN FILE.
  13788. *
  13789. * USES A - 1.
  13790. * X - 1.
  13791. *
  13792. * CALLS GFI.
  13793. *
  13794. * MACROS RJUST.
  13795.  
  13796.  
  13797. GFL SUBR ENTRY/EXIT
  13798. RJ GFI GET FILE INFORMATION
  13799. SA1 X2+3 GET FILE LENGTH
  13800. RJUST X1,X1,24,59
  13801. EQ GFLX RETURN
  13802. GOT SPACE 4,10
  13803. ** GOT - GET JOB ORIGIN.
  13804. *
  13805. * ENTRY NONE.
  13806. *
  13807. * EXIT (X6) = ORIGIN TYPE.
  13808. * (OT) = ORIGIN TYPE.
  13809. *
  13810. * USES A - 1, 6.
  13811. * X - 1, 2.
  13812.  
  13813.  
  13814. GOT SUBR ENTRY/EXIT
  13815. MX0 -12 GET ORIGIN TYPE
  13816. SA1 JOPR
  13817. AX1 24
  13818. BX6 -X0*X1
  13819. SA6 OT
  13820. EQ GOTX RETURN
  13821. GSF SPACE 4,10
  13822. *** GSF - GET SCRATCH FILE NAME.
  13823. *
  13824. * EXIT (X6) = UNASSIGNED SCRATCH FILE NAME.
  13825. *
  13826. * USES A - 1, 6.
  13827. * X - 1, 4, 6.
  13828. *
  13829. * MACROS PDATE, STATUS.
  13830.  
  13831.  
  13832. GSF4 SX1 B1 SET FILE NAME IN FET
  13833. BX6 X6+X1
  13834. SA6 Z
  13835. STATUS Z CHECK FILE STATUS
  13836. SX6 7776B
  13837. SA1 Z
  13838. BX6 X6*X1
  13839. NZ X6,GSF1 IF FILE EXISTS
  13840. MX6 42 GET FILE NAME
  13841. BX6 X6*X1
  13842.  
  13843. GSF SUBR ENTRY/EXIT
  13844. GSF1 SA1 GSFA
  13845. NZ X1,GSF2 IF BINARY NUMBER EXISTS
  13846. SA1 GSFC SET INITIAL BINARY
  13847. BX6 X1
  13848. SA6 GSFA
  13849. PDATE GSFB GET PACKED DATE AND TIME
  13850. MX6 -6 RANDOMIZE BINARY
  13851. SA1 GSFB
  13852. BX6 -X6*X1
  13853. LX6 15
  13854. SA1 GSFA
  13855. BX6 X1-X6
  13856. SA6 A1
  13857. BX1 X6
  13858. GSF2 SX6 B1 RESET BINARY
  13859. IX6 X1-X6
  13860. SA6 A1
  13861.  
  13862. * CONVERT BINARY TO FILE NAME.
  13863.  
  13864. SX6 B0
  13865. GSF3 ZR X1,GSF4 IF END OF BINARY
  13866. MX4 -5 CONVERT 5 BINARY BITS TO CHARACTER CODE
  13867. BX4 -X4*X1
  13868. SX4 X4+B1
  13869. BX6 X6+X4
  13870. LX6 -6+60
  13871. AX1 5
  13872. EQ GSF3 GET NEXT CHARACTER CODE
  13873.  
  13874. GSFA CON 0 BINARY NUMBER
  13875. GSFB CON 0 PACKED DATE AND TIME
  13876. GSFC CON 317777777777B
  13877.  
  13878. Z BSS 0 *STATUS* FET
  13879. Z555555 FILEB 0,0,(FET=5)
  13880. INF SPACE 4,10
  13881. ** INF - INITIALIZE FILES.
  13882. *
  13883. * EXIT INPUT, OUTPUT, SOURCE, MACHINE READABLE, AND
  13884. * NEW TAPE CATALOG FILES SET WITH ID=0.
  13885. *
  13886. * USES A - 1, 2, 6.
  13887. * X - 1, 2, 6.
  13888. *
  13889. * CALLS CFS, GFL.
  13890. *
  13891. * MACROS SETID.
  13892.  
  13893.  
  13894. INF SUBR ENTRY/EXIT
  13895. SA2 I GET INPUT FILE
  13896. RJ CFS CHECK FILE STATUS
  13897. SA6 IS SAVE FILE STATUS
  13898. SA1 OS SAVE FILE STATUS
  13899. PL X1,INF1 IF TERMINAL FILE OR NO FILE
  13900. SA2 L
  13901. RJ GFL GET FILE LENGTH
  13902. NZ X1,INF1 IF NOT ZERO-LENGTH FILE
  13903. SETFS L,0 FORCE ID OF ZERO
  13904. INF1 SA2 S GET SOURCE FILE
  13905. RJ CFS CHECK FILE STATUS
  13906. PL X6,INF2 IF TERMINAL FILE OR NO FILE
  13907. SA2 S
  13908. RJ GFL GET FILE LENGTH
  13909. NZ X1,INF2 IF NOT ZERO-LENGTH FILE
  13910. SETFS S,0 FORCE ID OF ZERO
  13911. INF2 SA2 SS GET MACHINE READABLE FILE
  13912. RJ CFS CHECK FILE STATUS
  13913. PL X6,INF3 IF TERMINAL FILE OR NO FILE
  13914. SA2 SS
  13915. RJ GFL GET FILE LENGTH
  13916. NZ X1,INF3 IF NOT ZERO-LENGTH FILE
  13917. SETFS SS,0
  13918. INF3 SA1 LF
  13919. ZR X1,INFX IF NOT LOCAL FILE MODE
  13920. SETFS N,0 FORCE ID FOR NEW TAPE CATALOG TO ZERO
  13921. EQ INFX RETURN
  13922. RFP SPACE 4,10
  13923. ** RFP - READ FIRST PRU OF FILE.
  13924. *
  13925. * EXIT (WBUF - WBUF+100B) = FIRST PRU OF FILE.
  13926. *
  13927. * USES A - 6.
  13928. * X - 6.
  13929. *
  13930. * MACROS READW, RECALL, RPHRLS.
  13931.  
  13932.  
  13933. RFP SUBR ENTRY/EXIT
  13934. RECALL N READ FIRST PRU OF FILE
  13935. SX6 RFPA
  13936. SA6 N+5
  13937. RPHRLS X2,R
  13938. READW X2,WBUF,100B
  13939. EQ RFPX RETURN
  13940.  
  13941. RFPA CON 1 TABLE OF PRUS TO READ
  13942. CON 0
  13943. SFL SPACE 4,10
  13944. ** SFL - SET FAMILY NAME.
  13945. *
  13946. * EXIT (X1) = FAMILY NAME.
  13947. * (CF) = CURRENT (ORIGINAL) FAMILY NAME.
  13948. * (FM) = SPECIFIED FAMILY NAME.
  13949. *
  13950. * USES A - 1, 2, 6.
  13951. * X - 1, 2, 6.
  13952. *
  13953. * CALLS CFM.
  13954. *
  13955. * MACROS GETPFP.
  13956.  
  13957.  
  13958. SFL1 BX6 X1 SET FAMILY NAME
  13959. SA6 FM
  13960.  
  13961. SFL SUBR ENTRY/EXIT
  13962. GETPFP SFLA GET PERMANENT FILE PARAMETERS
  13963. SA1 SFLA GET CURRENT FAMILY NAME
  13964. BX6 X1
  13965. SA6 CF
  13966. SA2 FM
  13967. ZR X2,SFL1 IF NO ALTERNATE FAMILY
  13968. BX1 X2
  13969. RJ CFM CHANGE FAMILY
  13970. SA1 FM
  13971. EQ SFLX RETURN
  13972.  
  13973. SFLA BSS 3 PARAMETER BLOCK
  13974. SIL SPACE 4,10
  13975. ** SIL - SET INTERLOCK ON FILE.
  13976. *
  13977. * EXIT (X4) = 0 IF INTERLOCK SET.
  13978. * (X6) = ERROR MESSAGE ADDRESS IF INTERLOCK NOT SET.
  13979. *
  13980. * USES A - 1, 2.
  13981. * X - 0, 1, 2, 3, 4, 6.
  13982. *
  13983. * CALLS ATT, GFI, RCW, WFP.
  13984. *
  13985. * MACROS MOVEBIT, RETURN, RJUST, ROLLOUT, SRCHTAB.
  13986.  
  13987.  
  13988. SIL SUBR ENTRY/EXIT
  13989. SIL1 SB3 PTRU SELECT READ/UPDATE FAST ATTACH
  13990. RJ ATT ATTACH FILE
  13991. SX6 MFNA
  13992. NZ X4,SILX IF FILE NOT FOUND
  13993. RETURN N,R RETURN FILE
  13994. SA1 SYBL+TMFM CHECK UTILITY INTERLOCK BIT
  13995. RJUST X1,X6,1,0
  13996. SA1 WBUF+BWUN CHECK USER NAME FIELD
  13997. MX0 42
  13998. BX1 X0*X1
  13999. BX1 X1+X6
  14000. ZR X1,SIL3 IF NOT INTERLOCKED
  14001. SIL2 SA1 RT
  14002. SX6 MTCI
  14003. SX4 B1 SET FLAG FOR INTERLOCK SET
  14004. ZR X1,SILX IF NO RETRY REQUESTED
  14005. ROLLOUT =10
  14006. EQ SIL1 RETRY REQUEST
  14007.  
  14008. SIL3 SA1 OT CHECK ORIGIN
  14009. SX1 X1-SYOT
  14010. ZR X1,SIL4 IF SYSTEM ORIGIN
  14011. MX0 42 CHECK IF USER IS VALIDATED
  14012. SRCHTAB SYBL+TMUN,SSJ=+UIDS,UNCL
  14013. SX6 MILA
  14014. NZ X4,SILX IF USER NOT VALIDATED
  14015. SIL4 SB3 PTUP SELECT UPDATE MODE FAST ATTACH
  14016. RJ ATT ATTACH FILE
  14017. SX6 MFNA
  14018. NZ X4,SILX IF FILE NOT FOUND
  14019. SA1 SYBL+TMFM CHECK UTILITY INTERLOCK BIT
  14020. RJUST X1,X6,1,0
  14021. SA1 WBUF+BWUN CHECK USER NAME FIELD
  14022. MX0 42
  14023. BX1 X0*X1
  14024. BX1 X1+X6
  14025. ZR X1,SIL5 IF NOT INTERLOCKED
  14026. RETURN N,R RETURN FILE
  14027. EQ SIL2 CHECK IF RETRY
  14028.  
  14029. SIL5 SX2 ESTP READ EST POINTER
  14030. RJ RCW
  14031. LX1 24 SET EST FWA
  14032. SX3 X1
  14033. SA2 N
  14034. RJ GFI GET FILE INFORMATION
  14035. SA2 X2+2 GET EST ORDINAL OF CATALOG
  14036. MX0 -9
  14037. SX4 ESTE
  14038. LX2 12
  14039. BX2 -X0*X2 EXTRACT EST ORDINAL
  14040. IX2 X2*X4
  14041. IX2 X2+X3 SET EST ADDRESS
  14042. RJ RCW READ EST ENTRY
  14043. MX0 -12
  14044. LX1 59-52
  14045. PL X1,SIL6 IF NOT SHARED DEVICE
  14046. LX1 52-59
  14047. BX1 -X0*X1
  14048. LX1 3
  14049. SX2 X1+DULL SET ADDRESS OF MST *DULL* WORD
  14050. RJ RCW READ MACHINE INDEX
  14051. MX0 -4 SET MACHINE INDEX-1
  14052. LX1 -24
  14053. BX6 -X0*X1
  14054. SA6 MX
  14055. MOVEBIT MX,WBUF+BWUN,4,3,15 SET MACHINE INDEX-1
  14056. SIL6 MOVEBIT (=-0),WBUF+BWUN,UNKL*6 SET USER NAME INTERLOCK
  14057. RJ WFP REWRITE FIRST PRU
  14058. RETURN N,R RETURN FILE
  14059. SX4 B0
  14060. EQ SILX RETURN
  14061. WFP SPACE 4,10
  14062. ** WFP - REWRITE FIRST PRU OF FILE.
  14063. *
  14064. * ENTRY (WBUF - WBUF+100B) = NEW FIRST PRU OF FILE.
  14065. *
  14066. * MACROS REWIND, REWRITE, WRITEW.
  14067.  
  14068.  
  14069. WFP SUBR ENTRY/EXIT
  14070. REWIND N,R REWRITE FIRST PRU
  14071. REWRITE X2,*
  14072. WRITEW X2,WBUF,100B
  14073. REWRITE X2,R
  14074. EQ WFPX RETURN
  14075. ZFN SPACE 4,10
  14076. ** ZFN - ZERO OUT FILE NAMES IN FETS.
  14077. *
  14078. * EXIT FILE NAMES IN FETS *N*, *SS*, *UB*, AND *VB* CLEARED.
  14079. *
  14080. * MACROS SETFET.
  14081.  
  14082.  
  14083. ZFN SUBR ENTRY/EXIT
  14084. SETFET N,(LFN=B0) CLEAR NEW TAPE CATALOG FILE NAME
  14085. SETFET SS,(LFN=B0) CLEAR MACHINE READABLE FILE NAME
  14086. SETFET VB,(LFN=B0) CLEAR VSN ENTRY BUFFER FET
  14087. SETFET UB,(LFN=B0) CLEAR ALTERNATE USER NAME BUFFER FET
  14088. EQ ZFNX RETURN
  14089. COMMON SPACE 4,10
  14090. ** COMMON DECKS.
  14091.  
  14092.  
  14093. *CALL COMCARG
  14094. *CALL COMCLFM
  14095. *CALL COMCPFM
  14096. *CALL COMCSTF
  14097. WBUF SPACE 4,10
  14098. ** WBUF - WORKING BUFFER FOR TAPE CATALOG FILES.
  14099. *
  14100. * PRESET WITH FIRST FOUR BLOCKS OF TAPE CATALOG FILE.
  14101.  
  14102.  
  14103. WBUF BSS 0
  14104.  
  14105. * FIRST PRU - SYSTEM BLOCK.
  14106.  
  14107. BCW1 BSS 0 BUFFER CONTROL WORD - BLOCK 1
  14108. LOC 0
  14109. BWRT VFD 6/RTSB,6/0,12/0,12/100B-TBHL,12/1,12/TBHL
  14110. BWDT VFD 24/0,36/
  14111. BWRI VFD 12/0,24/0,24/0
  14112. BWUN VFD 42/,18/0
  14113. LOC *O
  14114. SYBL BSS 0 SYSTEM BLOCK
  14115. LOC 0
  14116. TMFM VFD 42/,18/0
  14117. TMID VFD 12/,24/0,24/0
  14118. TMCT VFD 12/0,24/0,24/0
  14119. TMSM VFD 36/-0,24/0
  14120. TMMB BSSZ MBML
  14121. TMUN BSSZ UNCL
  14122. TMLF VFD 42/0,18/0
  14123. TMPA BSSZ PAFL
  14124. TMSC VFD 36/-0,24/0
  14125. TMSA VFD 36/-0,24/0
  14126. BSS 100B-TBHL-*
  14127. LOC *O
  14128.  
  14129. * SECOND PRU - PRIMARY VSN BLOCK.
  14130.  
  14131. BCW2 BSS 0 BUFFER CONTROL WORD - BLOCK 2
  14132. LOC 0
  14133. BWRT VFD 6/RTVB,6/1,12/100B-TBHL-TPIL,12/TPIL,12/1,12/TBHL
  14134. BWDT VFD 24/0,36/
  14135. BWRI VFD 12/0,24/0,24/0
  14136. BWUN VFD 42/,18/0
  14137. LOC *O
  14138. PVBL BSS 0 PRIMARY VSN BLOCK
  14139. LOC 0
  14140. VFD 12/1,24/0,6/0,18/4 DUMMY VSN ENTRY
  14141. BSS 100B-TBHL-*
  14142. LOC *O
  14143.  
  14144. * THIRD PRU - PRIMARY USER NAME BLOCK.
  14145.  
  14146. BCW3 BSS 0 BUFFER CONTROL WORD - BLOCK 3
  14147. LOC 0
  14148. BWRT VFD 6/RTUB,6/1,12/100B-TBHL-TPIL,12/TPIL,12/1,12/TBHL
  14149. BWDT VFD 24/0,36/
  14150. BWRI VFD 12/0,24/0,24/0
  14151. BWUN VFD 42/,18/0
  14152. LOC *O
  14153. PUBL BSS 0 PRIMARY USER NAME BLOCK
  14154. LOC 0
  14155. VFD 12/1,30/0,18/5 DUMMY USER NAME ENTRY
  14156. BSS 100B-TBHL-*
  14157. LOC *O
  14158.  
  14159. * FOURTH PRU - SECONDARY VSN BLOCK.
  14160.  
  14161. BCW4 BSS 0 BUFFER CONTROL WORD - BLOCK 4
  14162. LOC 0
  14163. BWRT VFD 6/RTVB,6/2,12/100B-TBHL-TSVL,12/TSVL,12/1,12/TBHL
  14164. BWDT VFD 24/0,36/
  14165. BWRI VFD 12/0,24/0,24/0
  14166. BWUN VFD 42/,18/0
  14167. LOC *O
  14168. SVBL BSS 0 SECONDARY VSN BLOCK
  14169. LOC 0
  14170. VFD 12/1,24/0,24/0 DUMMY VSN ENTRY
  14171. VFD 36/0,6/0,18/0
  14172. VFD 36/0,24/0
  14173. VFD 36/0,24/0
  14174. BSS 100B-TBHL-*
  14175. LOC *O
  14176.  
  14177. * FIFTH PRU - SECONDARY USER NAME INDEX.
  14178.  
  14179. BCW5 BSS 0 BUFFER CONTROL WORD BLOCK 5
  14180. LOC 0
  14181. BWRT VFD 6/RTUB,6/2,12/100B-TBHL-TSUL,12/TSUL,12/1,12/TBHL
  14182. BWDT VFD 24/0,36/
  14183. BWRI VFD 12/0,24/0,24/0
  14184. BWUN VFD 42/,18/0
  14185. LOC *O
  14186. SUBL BSS 0 SECONDARY VSN BLOCK
  14187. LOC 0
  14188. VFD 12/1,30/0,18/0 DUMMY USER NAME ENTRY
  14189. BSS 100B-TBHL-*
  14190. LOC *O
  14191. WBUFL EQU *-WBUF LENGTH OF WORKING BUFFER
  14192. BUFFERS SPACE 4,10
  14193. ** FILE BUFFERS.
  14194.  
  14195.  
  14196. PBUF BSS TBUFL
  14197. NBUF BSS TBUFL
  14198. SPACE 4
  14199. QUAL
  14200. ENTRY SPACE 4,10
  14201. ** ENTRY POINTS.
  14202.  
  14203.  
  14204. TFSP EQU /PRESET/TFSP
  14205. TFSPE EQU /PRESET/TFSPE
  14206. TFSPR EQU /PRESET/TFSPR
  14207. RFL= SPACE 4,10
  14208. ** FIELD LENGTH.
  14209.  
  14210.  
  14211. D1 MAX BUF1E,/PRESET/BUF2
  14212. IBUF EQU D1 INPUT FILE BUFFER
  14213. D1 MAX IBUF+FBUFL,*
  14214. RFL= EQU D1 REQUIRED FIELD LENGTH
  14215. SPACE 4
  14216. END
cdc/nos2.source/opl871/tfsp.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator