cdc:nos2.source:opl871:tfiles
Table of Contents
TFILES
Table Of Contents
- [00014] TFILES - TAPE FILE REQUEST PROCESSOR
- [00265] TAPE FILE REQUEST MACROS
- [00266] MACROS
- [00282] SETEA - SET ERROR ADDRESS.
- [00299] XFER - TRANSFER CHARACTER STRING.
- [01347] AUDIT ROUTINES.
- [01349] ADT - AUDIT MAIN CONTROL ROUTINE.
- [01452] FAD - FULL LIST OF ADMIT DATA
- [01558] FFL - FULL LISTING
- [01728] MRF - MACHINE READABLE FILE.
- [02214] SAD - SHORT ADMIT DATA
- [02260] SFL - SHORT FILE LIST
- [02311] SSL - SHORT SORTED LIST.
- [02471] SUBROUTINES.
- [02473] AEN - ADVANCE ENTRY NUMBER.
- [02500] ALN - ADVANCE LINE NUMBER
- [02600] PAR - PROCESS ARGUMENTS
- [02707] CBE - CLEAR BLANKS FROM WORD.
- [02734] CER - CHECK FOR RETURNED ERRORS
- [02784] CDT - CONVERT TIMES AND DATES TO DISPLAY FORMAT.
- [02814] CNV - CONVERT PARAMETER TO VALUE
- [02899] CSU - CHECK FOR SPECIAL USER.
- [02949] ERR - ERROR MESSAGES.
- [02989] ESP - ENTER SECURE PASSWORD.
- [03568] GAL - GENERATE ADMIT LIST.
- [03621] GSL - GENERATE SHORT LIST.
- [03698] HDR - GENERATES HEADERS.
- [03780] IDF - ISSUE DAYFILE MESSAGE.
- [03815] MCS - MOVE CHARACTER STRING.
- [03897] PCK - PACK FILE IDENTIFIER (17 CHARACTERS).
- [03968] PVS - PAD VSN WITH CHARACTER *0*.
- [04025] PVT - PROCESS *VSN* OR *TFN* LIST.
- [04057] PTP - PRINT TITLE PAGE.
- [04117] RQS - REQUEST STORAGE.
- [04154] SEC - SHORT LIST ERROR CHECK
- [04202] SST - SHELL SORT TABLE.
- [04473] ZFD - DISPLAY CODE ZERO FILL WORD. (EXTRACTED FROM PFTRACK)
Source Code
- TFILES.txt
- IDENT TFILES,FWA
- ABS
- SST
- ENTRY ADMIT
- ENTRY AMEND
- ENTRY AUDIT
- ENTRY RESERVE
- ENTRY RELEASE
- ENTRY TMSDEF
- ENTRY ARG=
- ENTRY RFL=
- ENTRY SDM=
- SYSCOM B1
- TITLE TFILES - TAPE FILE REQUEST PROCESSOR
- *COMMENT TAPE FILE REQUEST PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TFILES SPACE 4,10
- ***** TFILES - TAPE FILE REQUEST PROCESSOR
- *
- * L.A. GILBERTSON. 82/08/04.
- SPACE 4,10
- *** TFILES PROCESSES THE FOLLOWING TAPE FILE REQUESTS:
- * *ADMIT*, *AMEND*, *AUDIT*, *RELEASE* AND *RESERVE*.
- SPACE 4,10
- *** COMMAND CALL.
- *
- * THE *ADMIT* COMMAND GRANTS PERMISSION FOR USERS
- * OTHER THAN THE FILE ORIGINATOR (ALTERNATE USERS) TO ACCESS
- * AND EMPLOY A PRIVATE FILE. BESIDES SPECIFYING WHAT
- * ALTERNATE USER NAMES CAN EMPLOY A PRIVATE FILE, THE *ADMIT*
- * COMMAND CAN INDICATE THE WAY IN WHICH EACH ALTERNATE
- * USER IS ALLOWED TO EMPLOY THE FILE (A FILE MODE RESTRICTION
- * MUST BE PLACED ON EACH ALTERNATE USER).
- * IN ADDITION, THE *ADMIT* COMMAND CAN BE SUPPLIED TO
- * OVERRIDE THE FILE MODE THAT WAS ESTABLISHED WHEN A SEMI-
- * PRIVATE FILE WAS ORIGINALLY RESERVED. FOR EXAMPLE, ASSUME
- * THAT THE USER RESERVED A FILE IN THE SEMIPRIVATE FILE
- * CATEGORY UNDER WRITE MODE. IF THE FILE ORIGINATOR WANTS
- * TO GRANT READ PERMISSION (READ MODE) TO ONE SPECIFIC
- * USER (CD4567E), HE OR SHE CAN DO SO BY SUPPLYING THE
- * FOLLOWING *ADMIT* COMMAND
- *
- * ADMIT,TFN,CD4567E=R.
- *
- * ALL OTHER USERS CONTINUE TO BE CONTROLLED BY THE WRITE MODE
- * THAT WAS ESTABLISHED WHEN THE SEMIPRIVATE FILE WAS ORIGINALLY
- * SAVED.
- *
- * THE *AMEND* COMMAND ALLOWS THE ORIGINATOR OF A TAPE FILE
- * TO CHANGE SOME OF THE PARAMETERS ASSOCIATED WITH THAT FILE,
- * WITHOUT HAVING TO REWRITE THE FILE.
- *
- * THE *AUDIT* COMMAND ENABLES A USER TO OBTAIN INFORMATION
- * ABOUT THE FILES THAT RESIDE IN HIS OR HER TAPE FILE CATALOG.
- * IN ADDITION, ALTERNATE USERS CAN REQUEST *AUDIT* INFORMATION
- * ABOUT THE SPECIFIC FILES THEY ARE PERMITTED TO ACCESS
- * IN ALTERNATE USER CATALOGS.
- *
- * THE *RELEASE* COMMAND RELEASES ONE OR MORE SPECIFIED TAPE
- * FILES FROM THE USERS CATALOG. USERS CAN ONLY RELEASE
- * CENTER-OWNED RESERVED TAPES AND TAPES THAT ARE RETAINED
- * UNDER THE SAME USER NAME.
- *
- * THE *RESERVE* COMMAND ENABLES A USER TO RESERVE
- * A CENTER-OWNED SCRATCH TAPE UNDER THE NOS TAPE MANAGEMENT
- * SYSTEM (TMS). THE NOS FAMILY RETAINS THE TAPE UNDER THE
- * USERNAME OF THE USER WHO SUPPLIES THE *RESERVE* COMMAND.
- *
- * THE *TMSDEF* COMMAND ALLOWS THE USER TO DEFINE THE DEFAULT
- * VALUES FOR *TMS* PARAMETERS ON THE *LABEL* AND *REQUEST*
- * COMMANDS.
- *
- * TWO TYPES OF ACCESS ARE AVAILABLE FOR TAPE FILES.
- *
- * 1. TAPE LOGICAL FILE NAME. TAPE FILE NAMES CAN BE
- * 1 TO 17 CHARACTERS IN LENGTH AND MUST BE UNIQUE
- * WITHIN A USERS CATALOG. (ANALOGOUS TO PERMANENT
- * FILE NAMES.) A SPECIFIC TAPE FILE MAY BE FROM
- * 1 TO 60 REELS LONG.
- *
- * 2. VOLUME SERIAL NUMBER. THIS IS THE EXTERNAL
- * CENTER-DEFINED SERIAL NUMBER ASSIGNED TO EACH TAPE
- * IN THE TAPE POOL. (ONLY THE FIRST VOLUME SERIAL
- * NUMBER IN A MULTI-VOLUME SET IS VALID IF THIS TYPE
- * OF ACCESS IS CHOSEN.)
- *
- * COMMAND FORMATS -
- *
- * ADMIT,TFN,USERNAM1=M1,...,USERNAMN=MN/,S,NA.
- *
- * AMEND,NFN1=OFN1,...NFNN=OFNN/PW=PSWD,CT=CT,M=MD,UC=UCW,AC=AC,
- * CE,AN,S,NA.
- *
- * AUDIT,TFN,LO=OPT,UN=USERNAM,L=LFN1,SS=LFN2,S.
- * AUDIT,LO=OPT,UN=USERNUM,L=LFN1,SS=LFN2.
- *
- * RELEASE,TFN1,...TFNN/NA.
- *
- * RESERVE,LFN1,...,LFNN/SS=LFNX,PW=PSWD,CT=CT,M=MD,UC=UCW,NA.
- *
- * TMSDEF,TO=TOPT.
- *
- * WHERE:
- *
- * AC= INDICATES WHETHER OR NOT ALTERNATE USERS CAN
- * OBTAIN *AUDIT* INFORMATION ABOUT THE FILE.
- * VALID ENTRIES: Y - (YES)
- * N - (NO) DEFAULT.
- *
- * AN IF SPECIFIED, CHANGES THE SPECIFIED TAPES
- * CHARGE/PROJECT NUMBER TO THE CURRENT CHARGE/
- * PROJECT NUMBER THE USER IS RUNNING UNDER.
- *
- * CE CLEAR ERROR OPTION. IF TMS DETECTS AN ERROR
- * WHEN A USER TRIES TO ACCESS A FILE, A DIAGNOSTIC
- * IS ISSUED. IN ADDITION, *AUDIT* OUTPUT WILL PLACE
- * AN ASTERISK IN FRONT OF THE NAME OF EACH ERRON-
- * EOUS FILE. USERS SHOULD CONTACT *CYBERNET*
- * CUSTOMER SERVICE TO DETERMINE THE EXTENT OF
- * DAMAGE ON THE ERRONEOUS FILE. IF THE USER STILL
- * WANTS TO EMPLOY THE DAMAGED FILE, HE OR SHE
- * SHOULD SUPPLY AN *AMEND* COMMAND WITH THE *CE*
- * OPTION AND TMS WILL CLEAR THE ERROR BIT.
- * SUBSEQUENTLY, USERS WILL BE ALLOWED TO ACCESS THE
- * TAPE FILE.
- *
- * CT FILE ACCESS CATEGORY. IF CT=CT IS OMITTED WHEN THE FILE
- * IS CREATED, THE FILE IS PRIVATE. THE FILE CATEGORY
- * CAN BE CHANGED LATER.
- *
- * P OR PR PRIVATE FILES; AVAILABLE FOR ACCESS
- * ONLY BY THEIR CREATOR AND BY THOSE
- * GRANTED EXPLICIT ACCESS PERMISSION BY
- * THE FILE CREATOR(REFER TO THE *ADMIT*
- * COMMAND).
- *
- * S SEMIPRIVATE FILES; AVAILABLE FOR ACCESS
- * BY A USER WHO KNOWS THE FILE NAME, USER
- * NUMBER, AND FILE PASSWORD AND WHO HAS
- * NOT BEEN EXPLICITLY DENIED PERMISSION TO
- * THE FILE(I.E. M=N OPTION ON THE *ADMIT*
- * COMMAND).
- *
- * PU PUBLIC FILES; AVAILABLE FOR ACCESS BY AL
- * USERS WHO KNOW THE FILE NAME, USER NUMBE
- * AND PASSWORD. THE SYSTEM RECORDS THE
- * NUMBER OF TIMES THE FILE WAS ACCESSED AN
- * THE DATE AND TIME OF THE LAST ACCESS, BU
- * DOES NOT RECORD USER NUMBERS.
- *
- * LFN (*RESERVE* COMMAND) LOCAL FILE NAME.
- *
- * LFNX (*RESERVE* COMMAND) FILE NAME TO RECEIVE THE
- * MACHINE READABLE TAPE FILE STATUS INFORMATION.
- *
- * MD FILE ACCESS MODE PERMITTED TO OTHER USERS IF THE FILE
- * IS PUBLIC OR SEMIPRIVATE, AND IF EXPLICIT ACCESS
- * PERMISSION HAS NOT BEEN GRANTED TO THAT USER. IF
- * M=M IS OMITTED, M=WRITE IS ASSUMED, EXCEPT FOR *ADMIT*,
- * WHERE READ IS THE DEFAULT.
- *
- * R THIS FILE CAN BE READ.
- *
- * W THIS FILE CAN BE READ OR WRITTEN ON.
- *
- * N NO ACCESS IS ALLOWED.
- *
- * S IF SPECIFIED, THE SYMBOLIC TAPE FILE NAME WAS GIVEN.
- *
- * NA NO ABORT OPTION. BY DEFAULT, IF NOS ENCOUNTERS
- * AN ERROR WHILE PROCESSING A COMMAND,
- * IT INITIATES ERROR PROCESSING. HOWEVER, IF THE
- * NO-ABORT OPTION IS IN EFFECT AND THE SYSTEM FINDS
- * AN ERROR, THE SYSTEM SKIPS THE COMMAND AND
- * PROCESSES THE REMAINING COMMANDS IN THE JOB.
- *
- * OPT *AUDIT* LIST OPTION.
- * VALID ENTRIES: F - (FULL LIST)
- * M - (FULL MULTIFILE LIST)
- * 0 - (ZERO, SHORT LIST) DEFAULT.
- * FP- (FULL ADMIT LIST)
- * P - (SHORT ADMIT LIST)
- *
- * TFN TAPE FILE NAME OR VOLUME SERIAL NUMBER.
- *
- * TOPT THE DEFAULT VALUE FOR THE TAPE OPTION (*TO*) PARAMETER
- * ON THE *LABEL* OR *REQUEST* COMMAND.
- *
- * T SET DEFAULT TO *TO=T* (*TMS* PROCESSING).
- *
- * F SET DEFAULT TO *TO=F* (NON-*TMS* PROCESSING).
- *
- * C IF DEFAULT TO *TO=C* (CHECK FOR CATALOG ERROR.)
- *
- * E IF DEFAULT TO *TO=E* (IGNORE CATALOG ERROR.)
- *
- * UCW USER CONTROL WORD. (1 TO 10 CHARACTERS)
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- * *ERROR IN TFILES ARGUMENT.* = AN ARGUMENT TO TAPE FILE
- * REQUEST WAS INCORRECT.
- *
- * *ERROR IN VSN.* = THE SYNTAX OF A SPECIFIED VSN WAS
- * INCORRECT.
- *
- * *NO USERNAME SPECIFIED.* = NO USERNAME WAS SPECIFIED WHEN
- * ONE WAS REQUIRED.
- *
- * *EXCEEDED USERNAME LIMIT.* = TOO MANY USERNAMES ON AN
- * *ADMIT* REQUEST. (MAXIMUM OF SEVEN)
- *
- * *ERROR IN USERNAME.* = SYNTAX ERROR.
- *
- * *INCORRECT SEPARATOR.*
- *
- * *INCORRECT FILE MODE.*
- *
- * *ERROR IN FILENAME.* = SYNTAX ERROR.
- *
- * *EXCEEDED FILENAME LIMIT.* = EXCEEDED LIMIT OF SEVEN.
- *
- * *FILENAME MISSING.* = NO FILENAME SPECIFIED WHEN
- * ONE WAS REQUIRED.
- *
- * *INCORRECT FILE CATEGORY.*
- *
- * *INCORRECT AC PARAMETER.*
- *
- * *EXCEEDED VSN LIMIT.* = EXCEEDED LIMIT OF SEVEN.
- *
- * *INCORRECT PASSWORD.*
- *
- * *CANNOT AMEND VSN NAME.*
- *
- * *EMPTY CATALOG.*
- *
- * *REMARK= NOT SUPPORTED AT 1.4D, USE UC=.*
- *
- * *PFN= NOT SUPPORTED AT 1.4D, IS NOW A NO-OP.*
- SPACE 4,10
- *** COMMON DECKS.
- *CALL COMCCMD
- *CALL COMCMAC
- *CALL COMSSFM
- *CALL COMSTCM
- *CALL COMSTFM
- QUAL TFU
- *CALL COMSTFU
- QUAL *
- SPACE 4
- **** ASSEMBLY CONSTANTS.
- SDM= EQU 0 SUPPRESS DAYFILE MESSAGE
- ARG= EQU 0 SUPPRESS SYSTEM CRACKING
- OBFL EQU 1001 OUTPUT BUFFER SIZE
- IBFL EQU 101B INPUT BUFFER LENGTH
- SBFL EQU 300B INITIAL SORT BUFFER LENGTH
- FLIN EQU 1000B FL INCREMENT FOR SORT BUFFER
- MSBL EQU SBFL+5*FLIN MAXIMUM SORT BUFFER LENGTH
- TWBL EQU TSVL*60D+TCEL+2 AUDIT BUFFER SIZE
- NWRD EQU 8D FOR 80 CHARACTER OUTPUT
- CHDR EQU 3 NUMBER OF HEADER LINES
- TITLE TAPE FILE REQUEST MACROS
- TITLE MACROS
- MOVEIT SPACE 4,15
- ** MOVEIT.
- *
- * THE MOVEIT MACRO IS USED TO CONSTRUCT DIRECTIVES FOR THE MCS
- * SUBROUTINE. THE FORMAT AND THE PURPOSE OF THE DIRECTIVE IS
- * EXPLAINED IN THE MCS DOCUMENTATION.
- *
- PURGMAC MOVEIT
- MOVEIT MACRO N,L1,C1,L2,C2
- VFD 12/N,18/L1,6/C1,6/C2,18/L2
- ENDM
- SETEA SPACE 4,15
- ** SETEA - SET ERROR ADDRESS.
- *
- * AD = WORD EA OF FET.
- * VA = ERROR MESSAGE RETURN BUFFER ADDRESS.
- PURGMAC SETEA
- SETEA MACRO AD,VA
- LOCAL A,B
- A BSS 0
- B EQU *O
- ORG AD
- VFD VA
- ORG B
- ENDM
- XFER SPACE 4,10
- ** XFER - TRANSFER CHARACTER STRING.
- *
- * THE *XFER* MACRO ASSEMBLES THE MACRO PARAMETERS INTO
- * (X1) AND (X2) FOR THE CALL TO *XFR*. SEE *XFR* FOR
- * FOR MORE INFORMATION.
- PURGMAC XFER
- XFER MACRO SFWA,OFWA,BWP,BCP,SCC,OCC
- SX1 SFWA FWA OF SOURCE
- SX2 OFWA FWA OF OBJECT
- LX1 3
- LX2 3
- SX3 7B VALIDATE ALL CHARACTERS
- BX1 X1+X3
- BX2 X2+X3
- LX1 9
- LX2 9
- SX3 BWP BEGINNING WORD POSITION
- BX2 X2+X3
- LX1 9
- LX2 9
- SX3 BCP BEGINNING CHARACTER POSITION
- BX2 X2+X3
- LX1 9
- LX2 9
- SX3 SCC XFER CHARACTER COUNT
- BX1 X1+X3
- IFC NE,$OCC$$
- SX3 OCC
- ELSE
- ENDIF
- BX2 X2+X3
- RJ XFR TRANSFER CHARACTER STRING
- ENDM
- TFILES TITLE FUNCTION PROCESSORS.
- ** FETS.
- ORG 121B
- FWA BSS 0 DEFINE LOAD ADDRESS
- F BSS 0
- TFET FILEB TFWB,TWBL,(FET=20B),EPR
- TFMSG BSSZ 4 ERROR MESSAGE RETURN
- TFWB BSSZ TWBL BUFFER
- SETEA F+5,(42/0,18/TFMSG)
- I BSS 0
- INPUT FILEB IBUF,101B,FET=6
- O BSS 0
- OUTPUT FILEB OBUF,OBFL,EPR,FET=10B
- P BSS 0
- POUT FILEB PMSG,PMSGL+1,FET=6
- SPACE 4
- ** WORKING STORAGE.
- LIT CON 0 PROCESS LITERALS FLAG
- INDX BSSZ 1 TABLE POINTER
- NARG BSSZ 1 NUMBER OF ARGUMENTS
- SAVE BSSZ 1 POSITION IN COMMAND
- VSNC VFD 60/3CVSN NON-SYMBOLIC ACCESS FLAG
- VSNB CON 4R
- NABT CON 0 NO ABORT OPTION
- USER CON 0 SELECTED USER NUMBER
- PSWD CON 0 PASSWORD
- CATG CON 0 FILE CATEGORY
- ALAD CON 0 ALTERNATE AUDIT ATTRIBUTE
- MODE CON 0 FILE MODE
- USCW CON 0 USER CONTROL WORD
- CLER CON 0 CLEAR ERROR OPTION
- ANCP CON 0 CURRENT CHARGE/PROJECT NUMBER
- MCRD CON 0 MACHINE READABLE FILE OPTION
- TPFG CON 0 TITLE PAGE FLAG FOR TERMINAL
- ENTD CON 0 ENTRY NUMBER(DISPLAY)
- LOPT CON 0 LIST OPTION
- DTYP CON 0 DEVICE TYPE
- PAGE CON 0 PAGE NUMBER
- ENTN CON 0 ENTRY NUMBER
- SYMB CON 0 SYMBOLIC ACCESS
- LINE CON LINP LINE NUMBER
- BLNK CON 1L BLANK LINE
- CODE CON 0 AUDIT LIST CODE
- MULT CON 0 MULTIFILE LIST IDENTIFIER
- MXBS CON MSBL MAXIMUM SORT BUFFER SIZE
- CSBS CON SBFL CURRENT SORT BUFFER SIZE
- CRFL CON RFL= CURRENT FL
- PERM CON 0 PFN NO-OP FOR OLD *RESERVE*
- REMK CON 0 REMARK PARAMETER FROM OLD *RESERVE*
- SPACE 4
- ** TABLES.
- TADM BSS 0 TABLE OF ADMIT PARAMETERS
- S ARG -*,SYMB
- NA ARG -*,NABT
- ARG END OF TABLE
- TAMD BSS 0 TABLE OF AMEND PARAMETERS
- S ARG -*,SYMB
- NA ARG -*,NABT
- PW ARG =1,PSWD,400B
- CT ARG CATG,CATG
- AC ARG ALAD,ALAD
- M ARG MODE,MODE
- UC ARG USCW,USCW,400B,1
- CE ARG -*,CLER
- AN ARG -*,ANCP
- ARG END OF TABLE
- TAUD BSS 0 TABLE OF AUDIT PARAMETERS
- S ARG -*,SYMB
- LO ARG LOPT,LOPT
- UN ARG USER,USER,400B
- L ARG O,O,400B
- SS ARG MCRD,MCRD,400B
- ARG END OF TABLE
- TREL BSS 0 TABLE OF RELEASE PARAMETERS
- S ARG -*,SYMB
- NA ARG -*,NABT
- ARG END OF TABLE
- TRES BSS 0 TABLE OF RESERVE PARAMETERS
- PW ARG =1,PSWD,400B
- CT ARG CATG,CATG
- AC ARG ALAD,ALAD
- M ARG MODE,MODE
- UC ARG USCW,USCW,400B,1
- NA ARG -*,NABT
- SS ARG MCRD,MCRD,400B
- PF ARG PERM,PERM,400B
- RE ARG REMK,REMK,400B,1
- ARG END OF TABLE
- TFIN BSS 0 TABLE OF FILE IDENTIFIERS
- BSSZ 14D
- TFINL EQU *-TFIN
- TVSN BSS 0 TABLE OF VOLUME SERIAL NUMBERS
- BSSZ 7
- TVSNL EQU *-TVSN
- TARG BSS 0 ARGUMENT TABLE
- BSSZ 63B
- TARGL EQU *-TARG ARGUMENT TABLE LENGTH
- ** DEFINE REMOVE SECURE PARAMETERS.
- RSP1$ BSS 0 TABLE OF KEYWORD EQUIVALENCES
- RSP2$ BSS 0 TABLE OF SECURE KEYWORDS
- VFD 12/0LPW,48/ ALTERNATE USER PASSWORD
- VFD 60/0 END OF TABLE
- ADMIT SPACE 4,25
- *** ADMIT,TFN,USERNAM1=M1,...,USERNAMN=MN/S,NA.
- *
- * ADMIT GRANTS PERMISSION TO USERS OTHER THAN THE FILE
- * ORIGINATOR, TO ACCESS AND EMPLOY A PRIVATE TAPE FILE.
- *
- * TFN = TAPE FILE IDENTIFIER OR VOLUME SERIAL NUMBER.
- * USERNAM = USER THAT WILL BE ALLOWED ACCESS.
- * M = MODE IN WHICH THE ALTERNATE USER CAN ACCESS.
- * S = SYMBOLIC ACCESS.
- *
- * ENTRY ADMIT COMMAND HAS BEEN ISSUED.
- *
- * EXIT ADMIT(S) COMPLETED OR APPROPRIATE ERROR ISSUED.
- *
- * CALLS BAT, CER, PAR, USB.
- *
- * MACROS ADMIT, MESSAGE, ENDRUN.
- ADMIT BSS 0
- SB1 1
- RJ IDF ISSUE DAYFILE MESSAGE
- SB2 CCDR LOCATE COMMAND IMAGE
- RJ USB UNPACK DATA TO STRING BUFFER
- RJ POP PICK OUT *ADMIT* WORD
- NZ B5,ERR IF ERROR ENCOUNTERED
- ZR B6,ERR1 IF NO ARGUMENTS
- SX7 1
- SA7 LIT SET PROCESS LITERALS FLAG
- SX6 B6
- SA6 SAVE
- RJ POP PICK OUT NEXT WORD
- NG B5,ERR IF ERROR ENCOUNTERED
- SB3 X1-1R=
- ZR B3,ERR IF *=*, ERROR
- SB3 B0
- SA5 TFIN
- RJ PCK STORE FILE IDENTIFIER
- NG X2,ERR3 IF NO USERNAME SPECIFIED
- ADM1 RJ POP PICK UP USERNAME
- NZ B5,ERR5 IF ERROR ENCOUNTERED
- SA3 INDX
- SB3 X3
- SB7 ADMAL
- EQ B3,B7,ERR4 EXCEEDED USERNAME LIMIT
- MX0 42
- BX3 -X0*X6
- NZ X3,ERR5 IF USERNAME .GT. 7 CHARACTERS
- SA6 ADMA+B3
- SX6 FMRE DEFAULT MODE READ
- SB4 X1-1R,
- EQ B4,ADM3 IF DELIMITER IS COMMA
- SB4 X1-1R/
- EQ B4,ADM3 IF DELIMITER IS SLASH
- NG X2,ADM3 IF NO MORE ARGUMENTS
- SB4 X1-1R=
- NZ B4,ERR IF INCORRECT DELIMITER
- RJ POP PICK OUT FILE MODE
- NZ B5,ERR IF ERROR ENCOUNTERED
- ZR X6,ERR IF NO ARGUMENT
- SB3 3
- SB2 B0
- ADM2 SA4 CNVC+B2 CONVERT MODE
- MX0 12
- BX4 X4*X0
- SB2 B2+B1
- GT B2,B3,ERR7 IF INCORRECT MODE SPECIFIED
- BX4 X6-X4
- NZ X4,ADM2 IF MODE NOT FOUND
- SB2 B2-B1
- SA4 CNVC+B2
- MX0 -12
- BX6 -X0*X4
- ADM3 SA3 INDX
- SB3 X3
- SA6 ADMB+B3 SAVE FILE MODE
- SX6 B3+B1 INCREMENT INDX
- SA6 INDX
- SB3 X1-1R, CHECK DELIMITER
- ZR B3,ADM1 IF MORE USERNAMES SPECIFIED
- NG X2,ADM4 IF NO MORE ARGUMENTS
- SB3 X1-1R/
- NZ B3,ERR6 IF DELIMITER ERROR
- RJ BAT BUILD ARGUMENT TABLE
- SA2 BATA
- SB4 X2
- SA4 TARG
- SB5 TADM
- RJ PAR PROCESS REMAINING ARGUMENTS
- NZ X1,ERR IF ARGUMENT ERROR
- NZ B6,ERR IF MORE ARGUMENTS
- ADM4 SA1 SYMB
- NZ X1,ADM5 IF SYMBOLIC ACCESS
- SX6 B0
- SA6 VSNC SET VSN ACCESS FLAG
- MX0 36
- SA1 TFIN GET VSN NAME
- BX2 -X0*X1
- SA3 VSNB
- BX2 X2-X3
- NZ X2,ERR2 IF VSN .GT. 6 CHARACTERS
- BX6 X0*X1
- RJ PVS PAD *VSN* WITH *0*
- SA6 TVSN
- ADM5 SB7 B0
- SA3 INDX
- SB6 X3
- SA3 VSNC
- ZR X3,ADM7 IF VSN SPECIFIED
- ADM6 ADMIT F,TFIN,,ADMA+B7,ADMB+B7
- RJ CER CHECK FOR RETURNED ERRORS
- SB7 B7+B1
- LT B7,B6,ADM6 IF MORE FILE NAMES
- EQ ADM8 PROCESSING COMPLETED
- ADM7 ADMIT F,,TVSN,ADMA+B7,ADMB+B7
- RJ CER CHECK FOR RETURNED ERRORS
- SB7 B7+B1
- LT B7,B6,ADM7 IF MORE VSNS
- ADM8 ENDRUN
- ADMA BSS 0 STORAGE FOR USERNAMES
- BSSZ 7
- ADMAL EQU *-ADMA
- ADMB BSS 0 STORAGE FOR FILE MODES
- BSSZ 7
- AMEND SPACE 4,25
- *** AMEND,NFN1=OFN1,...,NFNN=OFNN/PW,CT,AC,M,UC,CE,AN,S,NA.
- *
- * THE AMEND COMMAND ALLOWS THE ORIGINATOR OF A TAPE
- * FILE TO AMEND SOME OF THE FILE-S PARAMETERS WITHOUT
- * HAVING TO REWRITE THE FILE.
- *
- * NFN = NEW TAPE FILE NAME.
- * OFN = OLD TAPE FILE NAME OR VOLUME SERIAL NUMBER.
- * PW = FILE PASSWORD.
- * CT = FILE CATEGORY.
- * AC = ALTERNATE USER AUDITABILITY.
- * M = FILE MODE.
- * UC = USER CONTROL WORD.
- * CE = CLEAR ERROR OPTION.
- * AN = CHANGE TO CURRENT CHARGE/PROJECT NO.
- * S = SYMBOLIC ACCESS.
- * NA = NO ABORT OPTION.
- *
- * ENTRY AMEND COMMAND HAS BEEN ISSUED.
- *
- * EXIT ALTER(S) COMPLETED OR APPROPRIATE ERROR ISSUED.
- *
- * CALLS BAT, CER, CNV, ESP, IDF, PAR, PCK, POP, PVT, USB.
- *
- * MACROS AMEND, ENDRUN, MESSAGE.
- AMEND BSS 0
- SB1 1
- RJ IDF ISSUE DAYFILE MESSAGE
- SB2 CCDR LOCATE COMMAND IMAGE
- RJ USB UNPACK DATA TO STRING BUFFER
- RJ POP PICK OUT *AMEND* WORD.
- NZ B5,ERR IF ERROR ENCOUNTERED
- ZR B6,ERR1 IF NO MORE ARGUMENTS
- SX7 1
- SA7 LIT SET PROCESS LITERALS FLAG
- SX6 B6
- SA6 SAVE
- RJ POP PICK OUT PARAMETER
- NG B5,ERR IF ERROR ENCOUNTERED
- ZR B6,ERR1 IF NO MORE ARGUMENTS
- SA3 SAVE
- SB6 X3
- SB3 X1-1R=
- ZR B3,AMD1 IF *=*
- RJ PVT PROCESS VSN/TFN LIST
- NG X2,ERR1 IF NO MORE ARGUMENTS
- EQ AMD2 PROCESS REMAINING ARGUMENTS
- AMD1 RJ POP PICK UP *NFN*
- NG B5,ERR8 IF ERROR ENCOUNTERED
- SB3 X1-1R=
- NZ B3,ERR6 IF DELIMITER NOT *=*
- SA3 INDX
- SB3 X3
- SB7 AMDBL
- EQ B3,B7,ERR9 EXCEEDED FILENAM LIMIT
- SA5 AMDB
- RJ PCK STORE FILENAM
- SX6 B6
- SA6 SAVE
- RJ POP PICK UP *OFN*
- NG B5,ERR8 IF ERROR ENCOUNTERED
- SA3 INDX
- SB3 X3
- SA5 TFIN
- RJ PCK STORE FILENAM
- SX6 B3+B1
- SA6 INDX
- ZR B6,ERR16 IF NO MORE ARGUMENTS
- SB3 X1-1R,
- ZR B3,AMD1 IF MORE FILENAMES SPECIFIED
- AMD2 SB3 X1-1R/
- NZ B3,ERR6 DELIMITER ERROR
- SB3 TAMD
- RJ BAT BUILD ARGUMENT TABLE
- SA2 BATA
- SB4 X2
- SA4 TARG
- SB5 TAMD
- RJ PAR PROCESS REMAINING ARGUMENTS
- NZ X1,ERR IF ARGUMENT ERROR
- SA1 SYMB
- NZ X1,AMD4 IF SYMBOLIC ACCESS
- SA1 AMDB
- NZ X1,ERR16 IF NEW VSN NAME SPECIFIED
- SX6 B0
- SA6 VSNC SET VSN ACCESS FLAG
- SA3 INDX GET NUMBER OF VSNS
- SB7 X3
- SB6 B0
- SB5 B0
- AMD3 SA3 TFIN+B5 GET VSN
- SA1 VSNB
- MX0 36
- BX2 -X0*X3
- BX2 X2-X1
- NZ X2,ERR2 IF VSN .GT. 6 CHARACTERS
- BX6 X0*X3
- RJ PVS PAD *VSN* WITH *0*
- SA6 TVSN+B6 STORE VSN NAME
- SB6 B6+B1
- SB5 B5+2
- LT B5,B7,AMD3 IF MORE VSNS TO STORE
- SX6 B6
- SA6 INDX
- AMD4 RJ CNV CONVERT PARAMETERS TO VALUES
- SA5 PSWD CHECK FOR SECURE PASSWORD
- SB2 X5
- SB2 B2-B1
- NZ B2,AMD6 IF *PW* NOT ENTERED
- MX0 42
- BX5 X0*X5
- NZ X5,AMD5 IF PASSWORD NOT ENTERED SECURELY
- RJ ESP ENTER SECURE PASSWORD
- SA6 PSWD SET PASSWORD
- BX5 X6
- AMD5 SA1 AMDA CHECK FOR *PW=0*
- BX3 X1-X5
- MX6 42
- NZ X3,AMD6 IF PW=0 WAS NOT SPECIFIED
- SA6 PSWD NO MORE FILE PASSWORD
- AMD6 SA2 USCW
- SA1 AMDA CHECK FOR *UC=0*
- BX3 X1-X2
- NZ X3,AMD7 IF UC=0 WAS NOT SPECIFIED
- MX6 60
- SA6 USCW
- AMD7 SA1 CLER
- ZR X1,AMD8 IF CE NOT SPECIFIED
- SX6 B1
- LX6 6-0
- SA6 F+TFCE
- AMD8 SA1 ANCP
- ZR X1,AMD9 IF AN NOT SPECIFIED
- SX6 B1
- SA2 F+TFCE
- MX0 -6
- BX2 X0*X2
- BX6 X6+X2
- SA6 A2
- AMD9 SB7 B0
- SA3 INDX
- SB6 X3
- SA3 VSNC
- ZR X3,AMD12 IF VSN SPECIFIED
- AMD10 AMEND F,AMDB+B7,TFIN+B7,,PSWD,CATG,MODE,USCW,ALAD
- RJ CER CHECK FOR RETURNED ERRORS
- ZR X7,AMD11 IF NO ROLLOUT
- SB7 B7-B1
- AMD11 SB7 B7+2 INCREMENT FILE NAME POINTER
- LT B7,B6,AMD10 IF MORE FILES TO AMEND
- EQ AMD13 PROCESSING COMPLETE
- AMD12 AMEND F,,,TVSN+B7,PSWD,CATG,MODE,USCW,ALAD
- RJ CER CHECK FOR RETURNED ERRORS
- SB7 B7+B1
- LT B7,B6,AMD12 IF MORE VSNS TO AMEND
- AMD13 ENDRUN
- AMDA CON 1L0 USED TO CHECK FOR PW=0 OPTION
- AMDB BSS 0 STORAGE FOR NEW FILENAMES
- BSSZ 14D
- AMDBL EQU *-AMDB
- AUDIT SPACE 4,25
- *** AUDIT,TFN,LO,UN,L,SS,S.
- * AUDIT,LO,UN,L,SS,S.
- *
- * THE AUDIT COMMAND ENABLES A USER TO OBTAIN
- * INFORMATION ABOUT THE FILES THAT RESIDE IN HIS OR
- * HER TAPE FILE CATALOG, OR ALTERNATE CATALOGS TO WHICH
- * THEY HAVE BEEN ADMITTED.
- *
- * TFN = TAPE FILE NAME OR VOLUME SERIAL NUMBER.
- * LO = LIST OPTION.
- * UN = USERNAME.
- * L = LOCAL FILE TO RECEIVE OUTPUT.
- * SS = MACHINE READABLE OUTPUT FILE.
- * S = SYMBOLIC ACCESS.
- *
- * ENTRY AUDIT COMMAND HAS BEEN ISSUED.
- *
- * EXIT TO MAIN LOOP(ADT)
- * FETS AND BUFFERS SET UP AND COMMAND
- * ARGUMENTS PROCESSED.
- * (CODE) = LIST OPTION
- * 0 = SHORT FILE LIST
- * 1 = FULL FILE LIST
- * 2 = SHORT ALTERNATE CATALOG LIST
- * 3 = FULL ALTERNATE CATALOG LIST
- * 4 = SHORT ADMIT DATA LIST
- * 5 = FULL ADMIT DATA LIST
- * B1 = 1.
- * DTYP = 0 IF OUTPUT TO TERMINAL FILE.
- * TITLE LINES PRESET
- * TFM CALL FET PRESET.
- * (ADTA) SET IF SELECTED ENTRY DESIRED.
- * (O)=0 IF L=0 IS SPECIFIED
- * (MCRD)=FILE NAME FOR MACHINE READABLE OUTPUT
- * (AUDC)=0 IF NO ADMIT DATA REQUESTED
- *
- * CALLS ADT, BAT, PAR, PCK, POP, SFN, STF, USB.
- *
- * MACROS GETPFP, MESSAGE, ABORT, CHARGE, PROJECT,
- * DATE, CLOCK, USERNUM.
- AUDIT BSS 0 ENTRY POINT
- SB1 1
- SX6 1
- SA6 NABT SET NO ABORT OPTION
- RJ IDF ISSUE DAYFILE MESSAGE
- GETPFP AUDG GET FAMILY NAME
- SB2 CCDR LOCATE COMMAND IMAGE
- RJ USB UNPACK DATA TO STRING BUFFER
- RJ POP PICK OUT *AUDIT* WORD
- NZ B5,ERR IF ERROR ENCOUNTERED
- ZR B6,AUD6 IF NO MORE ARGUMENTS
- SX7 1
- SA7 LIT SET PROCESS LITERALS FLAG
- SX6 B6
- SA6 SAVE
- RJ POP PICK OUT NEXT WORD
- NG B5,ERR IF ERROR ENCOUNTERED
- SB3 X1-1R=
- ZR B3,AUD1 IF *=*
- SB3 B0
- SA5 AUDE
- RJ PCK STORE TAPE FILE NAME
- ZR B6,AUD5 IF NO MORE ARGUMENTS
- EQ AUD2 PROCESS REMAINING ARGUMENTS
- AUD1 SA3 SAVE
- SB6 X3
- AUD2 RJ BAT BUILD ARGUMENT TABLE
- SA2 BATA
- SB4 X2
- SA4 TARG
- SB5 TAUD
- RJ PAR PROCESS REMAINING ARGUMENTS
- NZ X1,ERR IF ARGUMENT ERROR
- SA1 USER
- ZR X1,AUD3 IF NO USERNAME SPECIFIED
- MX0 42
- BX1 -X0*X1
- NZ X1,ERR5 IF USER NAME TOO LONG
- AUD3 SA1 MCRD
- ZR X1,AUD4 IF NO SS FILE SPECIFIED
- MX0 42
- BX1 -X0*X1
- NZ X1,ERR IF SS FILENAME TOO LONG
- AUD4 SA1 AUDE
- NZ X1,AUD5 IF FILE NAME SPECIFIED
- SA1 SYMB
- NZ X1,ERR14 IF *S* SPECIFIED, BUT NOT FILE NAME
- EQ AUD6 CONTINUE PROCESSING
- AUD5 SA1 SYMB
- NZ X1,AUD6 IF SYMBOLIC ACCESS
- SA1 AUDE
- MX0 36
- BX2 -X0*X1
- SA3 VSNB
- BX2 X2-X3
- NZ X2,ERR2 IF VSN .GT. 6 CHARACTERS
- BX6 X0*X1
- RJ PVS PAD *VSN* WITH *0*
- SA6 AUDE SET PADDED VSN
- SA6 F+TFES SET VSN IN FET
- AUD6 SA1 O
- SB2 B0
- LX1 6
- SX2 1R0
- BX6 X1-X2
- NZ X6,AUD7 IF NOT L=0
- SA6 A1 SET FLAG FOR NO LISTABLE OUTPUT DESIRED
- SA1 MCRD
- ZR X1,ADT7 IF NOT MACHINE READABLE
- EQ AUD8 SET JOB ORIGIN
- AUD7 SA1 O
- MX0 42
- BX2 -X0*X1
- MX0 -3
- BX2 X0*X2
- NZ X2,ERR IF LIST FILENAME TOO LONG
- SX6 B1
- BX2 X0*X1
- ZR X2,ERR14 IF NO FILE NAME
- IX6 X6+X2
- SA6 A1
- SX2 A1 CHECK FOR TERMINAL FILE
- RJ STF SET TERMINAL FILE
- SA6 DTYP SET DEVICE TYPE FLAG (0 FOR TYPE *TT*)
- AUD8 SA2 LOPT
- SX4 1RM
- LX4 54
- IX0 X4-X2
- NZ X0,AUD9 IF NOT MULTIFILE
- SX6 B1
- SA6 MULT
- SX6 1RF CHANGE TO FULL LIST FLAG
- LX6 54
- SA6 LOPT
- BX2 X6
- SX6 FCEV SET UP MULTIFILE HEADERS
- SA6 HDRD+2
- SX6 FCET
- SA6 HDRF+2
- AUD9 MX0 59
- SA1 AUDL
- SB2 B0
- SB3 AUDLL
- SX5 B0
- AUD10 BX4 -X0*X1 PICK SHORT LIST FLAG
- BX1 X0*X1
- IX6 X1-X2
- ZR X6,AUD11 IF OPTION FOUND
- SA1 A1+B1
- SB2 B2+B1
- LE B2,B3,AUD10 IF NOT END OF TABLE
- EQ ERR13 ISSUE ERROR MESSAGE
- AUD11 SA1 USER
- SA2 AUDE
- BX3 X2 SET SELECTED ENTRY FLAG
- SB3 AUDP SET PROPER MODE
- SX6 B0
- SX7 PTPK SET SUBTITLE FLAG
- LT B2,B3,AUD12 IF NOT ACCESS DATA REQUEST
- SX5 B1 SET ADMIT LIST FLAG
- SX7 PTPI SUBTITLE FLAG
- BX3 X1 SET SELECTED ENTRY FLAG
- NZ X2,AUD13 IF FILE NAME SPECIFIED
- EQ ERR14 ISSUE ERROR MESSAGE
- AUD12 ZR X1,AUD14 IF USER NUMBER NOT SPECIFIED
- SX6 B1+B1 ADVANCE MODE
- AUD13 SA7 PTPH SET SUBTITLE FLAG
- AUD14 SX6 X6+B2
- SA6 CODE
- ZR X4,AUD15 IF NOT SHORT FILE LIST
- BX6 X3 SET SELECTIVE ENTRY FLAG
- SA6 ADTA
- SA3 AUDE+B1
- BX6 X3
- SA6 ADTA+B1
- * SET *TFM* FET PARAMETERS.
- AUD15 ZR X2,AUD16 IF FILENAME NOT SPECIFIED
- MX0 42
- BX6 X2
- SA6 PTPJ
- SA6 F+TFID
- SA2 A2+B1
- BX6 X0*X2
- SA6 PTPJ+B1 SET FILE NAME IN SUBTITLE LINE
- SA6 F+TFSQ
- BX6 X5
- SA6 AUDC SET ADMIT FLAG
- AUD16 SA1 USER
- BX7 X0*X1 SET OPTIONAL USER NUMBER
- SA7 F+TFUN
- SA7 PTPL
- SA1 CODE SET TFM AUDIT CODE
- SB2 X1
- SB3 3
- GT B2,B3,AUD17 IF ADMIT REQUEST
- SA2 AUDE
- ZR X2,AUD19 IF NOT SELECTIVE REQUEST
- SX1 7
- EQ AUD19 SET CODE IN FET
- AUD17 SA2 USER
- ZR X2,AUD19 IF NO USERNAME SPECIFIED
- SA4 CODE
- SX4 X4-5
- ZR X4,AUD18 IF NOT SHORT ADMIT LIST
- BX1 X2
- RJ SFN SPACE FILL USER NAME
- SA6 ADTA
- BX6 X6-X6
- SA6 ADTA+B1 CLEAR SECOND WORD
- AUD18 SX1 8
- AUD19 SA2 X1+AUDD
- BX6 X2
- SA6 F+TFPW SET AUDIT TYPE CODE IN FET
- SA1 AUDG GET FAMILY NAME
- BX6 X1
- SX4 3RFM/
- LX6 42
- LX4 42
- BX1 X6+X4
- RJ SFN SPACE FILL NAME
- SA6 PTPD
- SA1 MCRD
- ZR X1,ADT IF NOT MACHINE READABLE
- DATE PTPE
- CLOCK PTPF
- USERNUM CUSR GET CURRENT USERNAME
- SA1 USER
- ZR X1,ADT IF NOT ALTERNATE USER
- BX6 X1
- SA6 CUSR SET ALTERNATE USERNAME
- JP ADT RETURN TO MAIN LOOP
- AUDC CON 0
- AUDD BSS 0 TFM AUDIT CODES
- LOC 0
- CON FCST
- CON FCST
- CON FCST
- CON FCST
- CON FAST
- CON FAST
- CON FCST
- CON SCST
- CON SAST
- LOC *O
- AUDE BSSZ 2 FILE IDENTIFIER
- AUDG BSS 3 *GETPFP* PARAMETER BLOCK
- ** LIST OPTIONS
- * BIT 0 SET IF SHORT LIST OPTION.
- AUDL BSS 0 LIST OPTIONS
- LOC 0
- VFD 59/0,1/1 NORMAL CATALOGS
- CON 1LF
- CON 0 ALTERNATE CATALOGS
- CON 0
- AUDP EQU * LIMIT OF CATALOG OPTIONS
- VFD 6/0LP,54/1 ADMIT DATA
- CON 2LFP
- AUDLL EQU *
- LOC *O
- RELEASE SPACE 4,25
- *** RELEASE,TFN1,TFN2,...,TFNN/S,NA.
- * RELEASE,VSN1,VSN2,...,VSNN/NA.
- *
- * RELEASE LOGICAL TAPE FILE OR VSN.
- *
- * TFN = LOGICAL TAPE FILE NAME.
- * VSN = FIRST-REEL VOLUME SERIAL NUMBER.
- * NA = NO ABORT OPTION IF ERROR ENCOUNTERED.
- * S = SYMBOLIC ACCESS.
- *
- *
- * CALLS BAT, CER, PAR, POP, PVT, USB.
- *
- * MACROS ENDRUN, MESSAGE, RELEASE.
- RELEASE BSS 0
- SB1 1
- RJ IDF ISSUE DAYFILE MESSAGE
- SB2 CCDR LOCATE COMMAND IMAGE
- RJ USB UNPACK DATA TO STRING BUFFER
- RJ POP PICK OUT *RELEASE* WORD
- NZ B5,ERR IF ERROR ENCOUNTERED
- ZR B6,ERR1 IF NO MORE ARGUMENTS
- SX7 1
- SA7 LIT SET PROCESS LITERALS FLAG
- SX6 B6
- SA6 SAVE
- RJ PVT PROCESS TFN/VSN LIST
- NG X2,REL1 IF NO MORE ARGUMENTS
- SB3 X1-1R/
- NZ B3,ERR6 ERROR IN DELIMITER
- RJ BAT BUILD ARGUMENT TABLE
- SA2 BATA
- SB4 X2
- SA4 TARG
- SB5 TREL
- RJ PAR PROCESS REMAINING ARGUMENTS
- NZ X1,ERR IF ARGUMENT ERROR
- NZ B6,ERR IF MORE ARGUMENTS
- REL1 SA1 SYMB
- NZ X1,REL3 IF SYMBOLIC ACCESS
- SA1 AMDB
- NZ X1,ERR16 IF NEW VSN NAME SPECIFIED
- SX6 B0
- SA6 VSNC SET VSN ACCESS FLAG
- SA3 INDX GET NUMBER OF VSNS
- SB7 X3
- SB6 B0
- SB5 B0
- REL2 SA3 TFIN+B5 GET VSN
- SA1 VSNB
- MX0 36
- BX2 -X0*X3
- BX2 X2-X1
- NZ X2,ERR2 IF VSN .GT. 6 CHARACTERS
- BX6 X0*X3
- RJ PVS PAD *VSN* WITH *0*
- SA6 TVSN+B6 STORE VSN NAME
- SB6 B6+B1
- SB5 B5+2
- LT B5,B7,REL2 IF MORE VSNS TO STORE
- SX6 B6
- SA6 INDX CHANGE INDX FOR VSNS
- REL3 SB7 B0
- SA3 INDX
- SB6 X3
- SA3 VSNC
- ZR X3,REL6 IF VSN SPECIFIED
- REL4 RELEASE F,TFIN+B7
- RJ CER CHECK FOR RETURNED ERRORS
- ZR X7,REL5 IF NO ROLLOUT
- SB7 B7-B1
- REL5 SB7 B7+2
- LT B7,B6,REL4 IF MORE TO RELEASE
- EQ REL7 PROCESSING COMPLETE
- REL6 RELEASE F,,TVSN+B7
- RJ CER CHECK FOR RETURNED ERRORS
- SB7 B7+B1
- LT B7,B6,REL6 IF MORE TO RELEASE
- REL7 ENDRUN
- RESERVE SPACE 4,25
- *** RESERVE,LFN1,LFN2,...,LFNN/SS,PW,CT,AC,M,UC,NA.
- *
- * RESERVE SCRATCH TAPE.
- *
- * LFN = LOCAL FILE NAME OF TAPE FILE.
- * PW = FILE PASSWORD.
- * SS = MACHINE READABLE OUTPUT FILE.
- * CT = FILE CATEGORY.
- * AC = AUDIT LISTABILITY BY ALTERNATE USERS.
- * M = FILE ACCESS MODE.
- * UC = USER CONTROL WORD.
- * NA = NO ABORT IF ERROR ENCOUNTERED.
- *
- * DEFAULT VALUES.
- * PW = 0. NO PASSWORD
- * CT = P. PRIVATE
- * AC = N. ALTERNATE USER CANNOT
- * OBTAIN AUDIT INFORMATION
- * M = R. READ ONLY ACCESS
- * UC = 0. NO USER CONTROL WORD.
- *
- * CALLS ARG, BAT, CER, CNV, ESP, POP, PRA, USB.
- *
- * MACROS RESERVE, MESSAGE, ENDRUN.
- RESERVE BSS 0
- SB1 1
- RJ IDF ISSUE DAYFILE MESSAGE
- SB2 CCDR LOCATE COMMAND IMAGE
- RJ USB UNPACK DATA TO STRING BUFFER
- RJ POP PICK OUT *RESERVE* WORD
- NG B5,ERR IF ERROR ENCOUNTERED
- ZR B6,ERR1 IF NO ARGUMENTS
- SX7 1
- SA7 LIT SET PROCESS LITERALS FLAG
- RES1 RJ POP PICK OUT LFN NAME
- NG B5,ERR8 IF ERROR ENCOUNTERED
- SA3 INDX
- SB3 X3
- SB7 TVSNL
- EQ B3,B7,ERR9 EXCEEDED LFN LIMIT
- MX0 42
- BX3 -X0*X6
- NZ X3,ERR8 IF LFN .GT. 7 CHARACTERS
- SA6 TVSN+B3 STORE LFN NAME
- SB3 B3+B1 INCREMENT LFN TABLE POINTER
- SX6 B3
- SA6 INDX
- NG X2,RES5 IF NO MORE ARGUMENTS
- SB3 X1-1R, CHECK FOR COMMA
- ZR B3,RES1 GET NEXT LFN NAME
- SB3 X1-1R/
- NZ B3,ERR6 IF DELIMITER ERROR
- RJ BAT BUILD ARGUMENT TABLE
- SA2 BATA
- SB4 X2
- SA4 TARG
- SB5 TRES
- RJ PAR PROCESS ARGUMENTS
- NZ X1,ERR IF ARGUMENT ERROR
- RJ CNV CONVERT PARAMETER TO VALUE
- SA5 REMK
- ZR X5,RES2 IF NO USER REMARK SPECIFIED
- MESSAGE (=C*REMARK= NOT SUPPORTED AT 1.4D, USE UC=.*),0
- SA4 USCW
- NZ X4,ERR IF REM= AND UC= SPECIFIED
- BX6 X5
- SA6 USCW
- RES2 SA5 PERM
- ZR X5,RES3 IF PFN= NOT SPECIFIED
- MESSAGE (=C*PFN= NOT SUPPORTED AT 1.4D, IS NOW A NO-OP.*),0
- RES3 SA5 PSWD CHECK FOR SECURE PASSWORD
- SB2 X5
- SB2 B2-B1
- NZ B2,RES4 IF *PW* NOT ENTERED
- MX0 42
- BX5 X0*X5
- NZ X5,RES4 IF PASSWORD NOT ENTERED SECURELY
- RJ ESP ENTER SECURE PASSWORD
- SA6 PSWD SET PASSWORD
- RES4 SA1 MCRD CHECK MACHINE READABLE FILE OPTION
- ZR X1,RES5 IF NOT SPECIFIED
- SA1 MCRD SET MACHINE READABLE FILE NAME
- SX2 3
- BX6 X1+X2
- SA6 O
- SA1 O+1 SET OUTPUT BUFFER EMPTY
- SX6 X1
- SA6 A1+B1
- SA6 A6+B1
- SX2 O SET DEVICE TYPE
- RJ STF SET TERMINAL FILE
- SA6 DTYP
- GETPFP AUDG GET FAMILY NAME
- USERNUM CUSR GET CURRENT USER
- RES5 SB7 B0
- SA3 INDX
- SB6 X3
- RES6 RESERVE F,TVSN+B7,PSWD,CATG,ALAD,MODE,USCW
- RJ CER CHECK FOR RETURNED ERRORS
- SB7 B7+B1
- NZ X7,RES6 IF ROLLABLE ERROR OCCURRED
- SA1 MCRD
- ZR X1,RES9 IF NO MACHINE READABLE FILE
- SX6 B7
- SA6 RESB SAVE LFN POINTER
- SA1 F RESET INPUT FET(1)
- MX0 51
- BX1 -X0*X1
- MX0 -3
- BX6 X0*X1
- SA6 A1
- MX0 -18
- SA1 A1+B1 GET *FIRST* POINTER
- BX6 -X0*X1
- SA6 A1+B1 SET IN = FIRST
- SA6 A6+B1 SET OUT = FIRST
- SX6 B0 INITIALIZE INPUT FET(6)
- SA6 F+TFRR
- SA6 F+TFPW
- SA6 F+TFUC
- SB7 B7-B1
- RES7 GETVSN F,TVSN+B7 GET TAPE CATALOG IMAGE
- RJ CER CHECK FOR RETURNED ERRORS
- SB7 B7+1
- NZ X7,RES7 IF ROLLABLE ERROR OCCURRED
- SA1 F+2
- SB3 X1 (B3) = IN
- SA1 F+3
- SB4 X1 (B4) = OUT
- EQ B3,B4,ERR17 IF OUT = IN, EMPTY CATALOG
- MOVE TWBL,TFWB,CBUF
- SA1 RESA
- SX6 B1
- SA6 A1 SET RESERVE SS FLAG
- JP MRF4 GENERATE MACHINE READABLE FILE
- RES8 SA1 RESB GET LFN POINTER
- SB7 X1
- SA1 INDX GET NUMBER OF LFN(S)
- SB6 X1
- RES9 LT B7,B6,RES6 IF MORE TO RESERVE
- SA1 MCRD
- ZR X1,RES10 IF NO MACHINE READABLE FILE
- WRITER O FLUSH BUFFER
- RES10 ENDRUN
- RESA CON 0 MACHINE READABLE FLAG
- RESB CON 0 LFN POINTER
- TMSDEF SPACE 4,20
- *** TMSDEF,TO=OPTION.
- *
- * DEFINE DEFAULT *TMS* PARAMETERS FOR *LABEL/REQUEST*.
- *
- * TO = DEFAULT TAPE OPTIONS. STRING CONTAINING ONE OR
- * MORE OF THE FOLLOWING CHARACTERS -
- * *T* IF DEFAULT TO *TO=T* (*TMS* PROCESSING).
- * *F* IF DEFAULT TO *TO=F* (NON-*TMS* PROCESSING).
- * *C* IF DEFAULT TO *TO=C* (CHECK FOR CATALOG
- * ERROR.)
- * *E* IF DEFAULT TO *TO=E* (IGNORE CATALOG ERROR.)
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 2, 3.
- *
- * CALLS ARM, IDF, POP, USB.
- *
- * MACROS ENDRUN, SYSTEM.
- TMSDEF SB1 1 ENTRY
- RJ IDF ISSUE COMMAND TO DAYFILE
- SB2 CCDR
- RJ USB UNPACK STRING BUFFER
- RJ POP PICK OFF PARAMETER
- NG B5,ERR IF ARGUMENT ERROR
- ZR B6,TMD5 IF NO ARGUMENTS
- SB3 TMDA
- RJ ARM PROCESS ARGUMENTS
- NZ X1,ERR IF ARGUMENT ERROR
- * PROCESS *TO* PARAMETER.
- SYSTEM SFM,R,TMDD,GTSF*100B GET TMS STATUS
- SB2 TMDB
- RJ USB UNPACK STRING BUFFER
- SX6 B0 FLAG LAST OPTION
- SA6 B7+B1
- SA1 B6 GET FIRST COMMAND OPTION
- MX0 -12
- SA3 TMDD GET DEFAULT OPTIONS
- SX7 3
- BX7 X7-X3
- TMD1 ZR X1,TMD4 IF NO MORE OPTIONS
- SA2 TMDC GET FIRST OPTION IN TABLE
- TMD2 ZR X2,ERR IF UNKNOWN OPTION
- BX6 -X0*X2
- BX6 X6-X1
- ZR X6,TMD3 IF OPTIONS MATCH
- SA2 A2+B1
- EQ TMD2 CHECK NEXT OPTION IN TABLE
- TMD3 LX2 18 GET SHIFT COUNT
- SB2 X2
- LX2 12 GET SET/CLEAR STATUS
- BX2 -X0*X2
- SX6 B1
- LX2 B2 SET/CLEAR DEFAULT OPTION
- LX6 B2
- BX7 -X6*X7
- BX7 X7+X2
- SA1 A1+B1
- EQ TMD1 CHECK NEXT OPTION ON COMMAND
- TMD4 SA7 A3 SET DEFAULT TAPE OPTION
- SYSTEM TFU,R,TMDD,/TFU/STOF*100B
- TMD5 ENDRUN TERMINATE PROGRAM
- TMDA BSS 0 *TMSDEF* ARGUMENT TABLE
- TO ARG TMDB,TMDB,400B TAPE OPTION
- CON 0 END OF TABLE
- TMDB CON 0 DEFAULT TAPE OPTIONS
- TMDC BSS 0 TABLE OF VALID TAPE OPTIONS
- VFD 18/0,12/0,30/1RF BIT POSITION 0, CLEAR BIT, *TO=F*
- VFD 18/0,12/1,30/1RT BIT POSITION 0, SET BIT, *TO=T*
- VFD 18/1,12/0,30/1RE BIT POSITION 1, CLEAR BIT, *TO=E*
- VFD 18/1,12/1,30/1RC BIT POSITION 1, SET BIT, *TO=C*
- CON 0 END OF TABLE
- TMDD CON 0 DEFAULT TAPE OPTIONS FOR *TFU* CALL
- TITLE AUDIT ROUTINES.
- ADT SPACE 4,25
- ** ADT - AUDIT MAIN CONTROL ROUTINE.
- *
- * ENTRY (CODE) = CODE FOR THE TYPE OF LIST.
- * (MCRD) = FILE NAME FOR MACHINE READABLE OUTPUT.
- * (ADTA) = SET IF SELECTED ENTRY DESIRED.
- *
- * EXIT TO APPROPRIATE LIST ROUTINE.
- *
- * USES ALL.
- *
- * CALLS CBE, CER, CSU, FCB, SFN.
- *
- * MACROS AUDIT, ENDRUN, MESSAGE, WRITEC, WRITER.
- ADT BSS 0 ENTRY
- SA1 O
- ZR X1,MRF IF LISTABLE OUTPUT NOT REQUESTED
- ADT0 AUDIT F
- RJ CER CHECK FOR RETURNED ERRORS
- NZ X7,ADT0 IF ROLLABLE ERROR OCCURRED
- SA1 F+2
- SB3 X1 (B3) = IN
- SA1 F+3
- SB4 X1 (B4) = OUT
- EQ B3,B4,ERR17 IF OUT = IN, PP ERROR
- SA1 ADTA
- NZ X1,ADT8 IF SELECTED FILE LIST
- RJ CSU CHECK FOR SPECIAL USER
- ADT1 SA2 CODE GET LIST CODE
- SA2 X2+ADTB
- SB2 X2
- JP B2 PROCESS LIST OPTION
- ADT2 RJ FCB FILL CATALOG BUFFER
- NG X6,ADT6 IF ERROR RETURN STATUS
- NZ X6,ADT1 IF MORE CATALOGS
- ADT3 SA1 MCRD
- NZ X1,ADT12 IF MACHINE READABLE OPTION
- ADT4 SA1 DTYP
- ZR X1,ADT5 IF TERMINAL FILE
- EQ ADT6
- ADT5 MESSAGE (=C**),1
- ADT6 WRITER O FLUSH OUTPUT
- ADT7 ENDRUN
- ADT8 BX6 X1
- RJ CBE CLEAR BLANKS FROM WORD
- SA6 ADTA
- SA1 ADTA+B1
- BX6 X1
- RJ CBE CLEAR BLANKS FROM WORD
- SA6 ADTA+B1
- RJ SVM SET VARIABLE MESSAGE
- SA1 MCRD
- NZ X1,ADT9 IF MACHINE READABLE FILE
- SA1 DTYP
- ZR X1,ADT11 IF TERMINAL FILE
- MESSAGE ADTA,3 *(ENTRY) FOUND.*
- EQ ADT7
- ADT9 SA1 DTYP
- ZR X1,ADT10 IF TERMINAL FILE
- MESSAGE ADTA,3 *(ENTRY) FOUND.*
- EQ MRF GENERATE THE MACHINE READABLE FILE
- ADT10 WRITEC O,ADTA
- MESSAGE (=C**),1 CLEAR MESSAGE BUFFER
- EQ ADT12 FLUSH OUTPUT BUFFER
- ADT11 WRITEC O,ADTA
- EQ ADT5
- ADT12 WRITER O FLUSH OUTPUT
- EQ MRF MACHINE READABLE FILE
- ADTA BSSZ 4 SELECTED ENTRY
- ADTB BSS 0 TABLE OF LIST OPTIONS
- LOC 0
- CON SSL SHORT SORTED FILE LIST
- CON FFL FULL FILE LIST
- CON SSL SHORT SORTED ALTERNATE FILE LIST
- CON FFL FULL ALTERNATE FILE LIST
- CON SAD SHORT ADMIT DATA LIST
- CON FAD FULL LIST OF ADMIT DATA
- CON MRF MACHINE READABLE FILE
- LOC *O
- ADTC BSS 0 TABLE OF OVERFLOW PROCESSORS
- LOC 0
- CON SFL SHORT FILE LIST
- CON FFL FULL FILE LIST
- CON SFL SHORT ALTERNATE FILE LIST
- CON FFL FULL ALTERNATE FILE LIST
- CON SAD SHORT ADMIT DATA LIST
- CON FAD FULL LIST OF ADMIT DATA
- LOC *O
- FAD SPACE 4,25
- ** FAD - FULL LIST OF ADMIT DATA
- *
- * THIS ROUTINE PROCESSES THE *LO=FP* AUDIT LIST OPTION.
- * FAD GENERATES OUTPUT INFORMATION ABOUT THE ALTERNATE
- * USERS WHO HAVE ACCESSED A SPECIFIC FILE. THE LIST
- * INDICATES HOW MANY TIMES A SPECIFIC ALTERNATE USER
- * HAS ACCESSED THE FILE, WHEN THE LAST ACCESS WAS
- * PERFORMED, AND THE MODE IN WHICH IT CAN BE ACCESSED
- * BY THAT USER. THIS ROUTINE IS CALLED BY *ADT*.
- *
- * ENTRY THE AUDIT COMMAND HAS BEEN CRACKED
- * AND PARAMETERS ARE STORED.
- *
- * EXIT OUTPUT LIST IS COMPLETED.
- * RETURN TO MAIN LOOP (ADT).
- *
- * USES ALL.
- *
- * CALLS AEN, ALN, CDD, CDT, FBA, SFN.
- *
- * MACROS WRITEC, WRITEH.
- FAD BSS 0 ENTRY
- RJ FBA FILL BUFFER FOR ADMIT LIST
- ZR X6,FAD1 IF END OF BUFFER
- RJ AEN ADVANCE ENTRY NUMBER
- SB2 B1 ADVANCE LINE NUMBER BY 1
- RJ ALN ADVANCE LINE NUMBER
- MX0 42 PICK USER NUMBER
- SA5 CBUF+AEUN
- BX1 X0*X5
- RJ SFN SPACE FILL NAME
- SA1 ENTD SET USER NUMBER COUNT
- MX0 30
- LX1 30
- BX1 X0*X1 PICK FIRST PART OF USER NUMBER
- LX6 24
- BX7 -X0*X6
- BX7 X7+X1
- SA7 LBUF
- SA5 CBUF+AEAC SET USER PERMISSION
- MX0 4
- LX0 40
- BX1 X0*X5
- LX1 24
- SB2 X1
- SB3 3
- GT B2,B3,FAD2 IF SPECIAL PERMISSION
- SA1 FADB+X1
- LX1 35-59
- MX0 18
- BX6 X0*X6 PICK LAST 3 CHAR OF USER NUMBER
- BX1 -X0*X1 MERGE WITH PERMISSION
- BX6 X6+X1
- SA6 LBUF+1
- MX0 18 CONVERT ACCESS COUNT
- BX1 X0*X5
- LX1 18
- RJ CDD CONVERT TO DECIMAL
- SA6 LBUF+2 SET ACCESS COUNT/ADMIT TYPE
- BX3 X5
- RJ CDT CONVERT TIME AND DATE
- SA6 LBUF+3
- BX7 X5
- SA7 LBUF+4
- WRITEC O,LBUF
- EQ FAD
- FAD1 SA1 ENTN NUMBER OF ENTRIES
- RJ CDD CONVERT TO DISPLAY CODE
- MX0 -18
- BX6 -X0*X6
- LX6 36D
- MX0 -18
- LX0 36D
- SA2 FADA SET COMPLETION MESSAGE
- BX2 X0*X2
- BX6 X6+X2
- SA6 FADA
- SB2 3
- RJ ALN ADVANCE LINE NUMBER
- WRITEC O,BLNK
- WRITEH O,FADA,FADAL
- WRITEC O,BLNK
- EQ ADT2 RETURN TO MAIN LOOP
- FAD2 SA1 ENTN GET ENTRY NUMBER
- SX6 X1-1
- SA6 A1 RESET ENTRY NUMBER
- SA1 LINE
- SX6 X1-1
- SA6 A1 RESET LINE NUMBER
- EQ FAD PICK UP NEXT ADMIT ENTRY
- FADA DATA C* XXX USER(S).*
- FADAL EQU *-FADA
- FADB BSS 0 DISPLAY CODE OF PERMISSION TYPES
- LOC 0
- CON 10H IMP
- CON 10H READ
- CON 10H WRITE
- CON 10H NULL
- LOC *O
- FFL SPACE 4,20
- ** FFL - FULL LISTING
- *
- * THIS ROUTINE PROCESSES THE *LO=F* AUDIT LIST OPTION.
- * *FFL* GENERATES PERTINENT INFORMATION ABOUT EACH FILE IN
- * THE CATALOG BEING INTERROGATED. THIS ROUTINE IS
- * CALLED BY *ADT*.
- *
- * ENTRY AUDIT COMMAND HAS BEEN CRACKED AND PARAMETERS
- * HAVE BEEN STORED.
- *
- * EXIT LIST IS GENERATED, THEN BACK TO *ADT*.
- *
- * USES ALL.
- *
- * CALLS AEN, ALN, FCB, SCB, SFN.
- *
- * MACROS EDCAT, WRITEH, WRITEC.
- FFL BSS 0 ENTRY
- SB2 B1 SET LIST FLAG
- RJ FCB FILL BUFFER FOR FULL LIST
- ZR X6,FFL14 IF END OF INFORMATION
- RJ AEN ADVANCE ENTRY NUMBER
- SB2 CHDR
- SA5 MULT MULTIFILE LIST INDICATOR
- ZR X5,FFL1 IF NOT MULTIFILE
- SB2 B2+1
- FFL1 RJ ALN ADVANCE LINE NUMBER
- SA1 ENTN
- EDCAT CBUF,LBUF,X1,B1
- WRITEH O,LBUF,NWRD FIRST LINE
- WRITEH O,LBUF+NWRD,NWRD SECOND LINE
- SA5 MULT MULTIFILE LIST INDICATOR
- ZR X5,FFL2 IF NOT MULTIFILE
- WRITEH O,LBUF+NWRD*2,NWRD OPTIONAL LINE
- FFL2 SA1 CBUF+TCEL+1
- MX0 -18
- BX1 -X0*X1
- SX0 TVVS CHECK SITE STATUS
- BX0 X0*X1
- ZR X0,FFL3 IF SITE NOT SET SKIP
- SB2 1
- RJ ALN ADVANCE LINE NUMBER
- WRITEH O,FFLD,FFLDL OPTIONAL LINE
- FFL3 SA1 CBUF+TCEL+1
- MX0 -18
- BX1 -X0*X1 GET VSN STATUS FLAG
- SX0 RTVS CHECK RESERVE STATUS
- BX0 X0*X1
- NZ X0,FFL4 IF RESERVED SKIP
- SB2 1
- RJ ALN
- WRITEH O,FFLE,FFLEL OPTIONAL LINE
- FFL4 SA1 CBUF+CEST
- LX1 59-10
- PL X1,FFL5 IF RECOVER NOT SET
- SB2 1
- RJ ALN
- WRITEH O,FFLF,FFLFL OPTIONAL LINE
- FFL5 SA1 CBUF+CEST
- LX1 59-1
- PL X1,FFL6 IF ERROR NOT SET
- SB2 1
- RJ ALN
- WRITEH O,FFLG,FFLGL OPTIONAL LINE
- * GENERATE VSN OUTPUT LINES
- FFL6 SA2 FCBA
- SB3 B0
- SA1 CBUF+TCEL
- FFL7 MX0 36
- BX1 X1*X0
- BX3 X1-X2
- ZR X3,FFL8 IF EOF
- RJ SFN SPACE FILL VSN
- SA6 FFLT+B3 STORE VSN
- SA1 A1+TSVL
- SB3 B3+B1
- EQ FFL7 GET NEXT VSN
- FFL8 ZR B3,FFL13 IF NO VSN ENTRIES
- SX6 B3
- SA6 FFLN SAVE NO. OF VSNS TO BE WRITTEN
- SX6 B0
- SA6 FFLC
- FFL9 SB2 B1
- RJ ALN ADVANCE LINE NUMBER
- SA2 FFLC
- SA3 X2
- SB2 8
- SB6 B0
- SB7 LBUF
- SA2 FCEB
- BX6 X2
- FFL10 SA6 LBUF+B2 BLANK FILL THE BUFFER
- SB2 B2-B1
- PL B2,FFL10
- FFL11 SA1 FFLT+A3
- BX6 X1
- SB3 VSN0+B6
- RJ SCB SET CHARACTERS IN BUFFER
- SB6 B6+B1
- SA3 A3+B1
- SB4 A3
- SA1 FFLN
- SB2 X1
- EQ B4,B2,FFL12 IF END OF VSN LIST
- SB3 8
- NE B6,B3,FFL11 IF LINE BUFFER IS NOT FULL
- SX6 A3
- SA6 FFLC SAVE FFLT POINTER
- WRITEH O,LBUF,7
- EQ FFL9 GENERATE NEXT OUTPUT LINE
- FFL12 WRITEH O,LBUF,7
- WRITEC O,BLNK
- EQ FFL LOOP FOR NEXT CATALOG ENTRY
- FFL13 SB2 2
- RJ ALN ADVANCE LINE NUMBER
- WRITEH O,FFLB,FFLBL
- WRITEC O,BLNK
- EQ FFL LOOP FOR NEXT CATALOG ENTRY
- FFL14 SA1 ENTN NUMBER OF TAPE FILES
- RJ CDD CONVERT TO DISPLAY CODE
- MX0 -24 SAVE 4 DIGITS
- BX6 -X0*X6
- LX6 30
- LX0 30
- SA2 FFLA GENERATE TERMINATION MESSAGE
- BX2 X0*X2
- BX6 X6+X2
- SA6 FFLA
- SB2 2
- RJ ALN ADVANCE LINE NUMBER
- WRITEH O,FFLA,FFLAL
- WRITEC O,BLNK
- EQ ADT3 RETURN TO MAIN LOOP
- FFLA DATA C* XXXX TAPE FILE(S).*
- FFLAL EQU *-FFLA
- FFLB DATA C* NO VSN ENTRIES.*
- FFLBL EQU *-FFLB
- FFLC CON 0 FFLT POINTER
- FFLD DATA C/ *** TAPE FILE IS OFF-SITE ***/
- FFLDL EQU *-FFLD
- FFLE DATA C/ *** TAPE FILE NOT YET RESERVED ***/
- FFLEL EQU *-FFLE
- FFLF DATA C/ *** TAPE FILE CATALOG RECOVERED ***/
- FFLFL EQU *-FFLF
- FFLG DATA C/ *** TAPE FILE CATALOG ERROR SET ***/
- FFLGL EQU *-FFLG
- FFLN CON 0 NUMBER OF VSNS
- FFLT BSSZ 63D MAX. NUMBER OF VSNS
- * VSN LINE DEFINITION TABLE
- VSNS EQU 0
- VSN0 CFORM VSNS+14,6
- CFORM VSNS+21,6
- CFORM VSNS+28,6
- CFORM VSNS+35,6
- CFORM VSNS+42,6
- CFORM VSNS+49,6
- CFORM VSNS+56,6
- CFORM VSNS+63,6
- MRF SPACE 4,25
- ** MRF - MACHINE READABLE FILE.
- *
- * *MRF* GENERATES THE MACHINE READABLE FILE SPECIFIED BY THE
- * *SS=* OPTION ON THE AUDIT COMMAND. THIS ROUTINE IS
- * CALLED BY *ADT*.
- *
- * ENTRY AUDIT COMMAND IS CRACKED AND PARAMETERS STORED.
- * (AUDC) = 0 IF NO ADMIT DATA REQUESTED.
- * (MCRD) = FILE NAME FOR MACHINE READABLE OUTPUT.
- *
- * EXIT MACHINE READABLE FILE GENERATED.
- *
- * USES ALL.
- *
- * CALLS CBE, CDD, EDT, FBA, FCB, MCS, SFN, STF, ZFD.
- *
- * MACROS RECALL, WRITEC.
- MRF BSS 0
- SA1 F RESET FET(1)
- MX0 51
- BX1 -X0*X1
- MX0 -3
- BX6 X0*X1
- SA6 A1
- MX0 -18
- SA1 A1+B1 GET *FIRST* POINTER
- BX6 -X0*X1
- SA6 A1+B1 SET IN = FIRST
- SA6 A6+B1 SET OUT = FIRST
- SX6 B0 INITIALIZE INPUT FET(6)
- SA6 F+TFRR
- SA1 AUDC INSURE ADMIT FLAG OFF
- ZR X1,MRF1 ADMIT DATA NOT REQUESTED
- BX6 X6-X6
- SA6 F+TFUN
- SX6 SCST
- SA6 F+TFPW
- MRF1 SA1 O
- ZR X1,MRF2 IF NO NEED TO WAIT
- RECALL O WAIT FOR I/O COMPLETION
- MRF2 SA1 MCRD SET MACHINE READABLE FILE NAME
- SX2 3
- BX6 X1+X2
- SA6 O
- SA1 O+1 SET OUTPUT BUFFER EMPTY
- SX6 X1
- SA6 A1+B1
- SA6 A6+B1
- SX2 O SET DEVICE TYPE
- RJ STF SET TERMINAL FILE
- SA6 DTYP
- MRF3 SA1 RESA CHECK FOR RESERVE SS FILE REQUEST
- NZ X1,RES8 IF RESERVE REQUEST, RETURN
- SB2 B1 SET LIST FLAG
- RJ FCB FILL BUFFER FOR FULL LIST
- ZR X6,ADT4 EXIT
- MRF4 SA1 AUDG GET FAMILY NAME
- RJ SFN SPACE FILL NAME
- SA6 AUDG
- SA1 CUSR GET USER NAME
- RJ SFN SPACE FILL NAME
- SA6 CUSR
- SA2 CBUF+CEST CHECK FOR SYMBOLIC NAME
- LX2 59-2
- PL X2,MRF5 IF NOT SYMBOLIC ACCESS
- SA1 CBUF+CELI GET PERMANENT FILE NAME
- RJ SFN SPACE FILL NAME
- SA6 TPFN SET TAPE FILE NAME
- SA1 CBUF+CEST
- MX0 42
- BX1 X0*X1
- RJ SFN SPACE FILL NAME
- SA6 TPFN+B1
- EQ MRF6
- MRF5 SA1 CBUF+CEES GET VSN NAME
- MX0 36
- BX1 X0*X1
- RJ SFN SPACE FILL NAME
- SA6 TPFN SET VSN NAME
- SA1 FCEQ
- BX6 X1
- SA6 TPFN+B1 STORE *NON-SYM*
- MRF6 SA1 CBUF+CEPI GET PHYSICAL FILE NAME
- RJ SFN SPACE FILL NAME
- SA6 PHID
- SA1 CBUF+CESQ
- MX2 42
- BX1 X2*X1
- RJ SFN SPACE FILL NAME
- SA6 PHID+B1 SET PHYSICAL FILE NAME
- SA1 CBUF+CECN GET CHARGE NUMBER
- RJ SFN SPACE FILL
- SA6 CHRG SET CHARGE NUMBER
- SA1 CBUF+CEPN GET PROJECT NUMBER
- RJ SFN SPACE FILL
- SA6 PROJ SET PROJECT NUMBER
- SA1 A1+B1
- RJ SFN SPACE FILL
- SA6 PROJ+1 SET PROJECT NUMBER
- MX0 54
- SA2 CBUF+CEPW GET FILE CATEGORY
- AX2 6
- BX0 -X0*X2
- SX0 X0-1
- SA2 MRFB+X0
- BX6 X2
- SA6 FTYP SET FILE CATEGORY
- SA1 CBUF+CECD GET CREATION DATE
- AX1 18
- SX1 X1
- SA2 =70S12 ADD 1970
- IX1 X1+X2
- SX2 1R/
- RJ EDT EDIT DATE/TIME
- SA6 CDAT SET CREATION DATE
- SA1 CBUF+CECD GET CREATION TIME
- SX1 X1
- SX3 120000B PAD TO ELIMINATE LEAD BLANK
- IX1 X1+X3 TO INSURE LEAD ZERO
- SX2 1R.
- RJ EDT EDIT DATE/TIME
- SA1 =1S48 REMOVE PADDING
- IX6 X6-X1
- SA6 CTIM
- SA1 CBUF+CEMD GET LAST MODIFICATION DATE
- AX1 18
- SX1 X1
- SA2 =70S12 ADD 1970
- IX1 X1+X2
- SX2 1R/
- RJ EDT EDIT DATE/TIME
- SA6 MDAT SET LAST MODIFICATION DATE
- SA1 CBUF+CEMD GET LAST MODIFICATION TIME
- SX1 X1
- SX3 120000B PAD TO ELIMINATE LEAD BLANK
- IX1 X1+X3 TO INSURE LEAD ZERO
- SX2 1R.
- RJ EDT EDIT DATE/TIME
- SA1 =1S48 REMOVE PADDING
- IX6 X6-X1
- SA6 MTIM SET LAST MODIFICATION TIME
- SA1 CBUF+CEAD GET LAST ACCESS DATE
- AX1 18
- SX1 X1
- SA2 =70S12 ADD 1970
- IX1 X1+X2
- SX2 1R/
- RJ EDT EDIT DATE/TIME
- SA6 ADAT SET LAST ACCESS DATE
- SA1 CBUF+CEAD GET LAST ACCESS TIME
- SX1 X1
- SX3 120000B PAD TO ELIMINATE LEAD BLANK
- IX1 X1+X3 TO INSURE LEAD ZERO
- SX2 1R.
- RJ EDT EDIT DATE/TIME
- SA1 =1S48 REMOVE PADDING
- IX6 X6-X1
- SA6 ATIM SET LAST ACCESS TIME
- MX0 54
- SA2 CBUF+CEPW GET PERMISSION MODE
- BX0 -X0*X2
- SX0 X0-1
- SA2 MRFA+X0
- BX6 X2
- SA6 PMOD SET PERMISSION MODE
- SA1 CBUF+CEAD GET ACCESS COUNT
- MX3 24
- BX1 X3*X1
- LX1 24
- RJ CDD CONVERT TO DECIMAL
- RJ CBE CLEAR BLANKS
- RJ ZFD SET DISPLAY CODE ZEROES
- SA6 ACNT SET ACCESS COUNT
- SA1 CBUF+CETD LABEL STATUS
- LX1 1
- MX0 2
- BX1 X0*X1
- LX1 2
- SA2 X1+FCEP
- BX6 X2
- SA6 LBST SET LABEL STATUS
- SA1 CBUF+CETD GET DATA FORMAT
- MX0 54
- AX1 30
- BX0 -X0*X1
- SA1 X0+FCEL
- BX6 X1
- SA6 FRMT SET DATA FRMT
- SA1 CBUF+CETD GET CONVERSION MODE
- MX0 57
- AX1 48
- BX0 -X0*X1
- SA2 X0+FCEN
- BX6 X2
- SA6 CVMD SET CONVERSION MODE
- SA1 CBUF+CETD GET TAPE TYPE
- MX0 -2
- AX1 55
- BX0 -X0*X1
- BX6 X0
- SA6 FCEF SAVE TAPE TYPE FOR DENSITY GENERATION
- SA2 X0+FCEK
- BX6 X2
- SA6 TTYP SET TAPE TYPE MNEMONIC
- SA1 CBUF+CETD GET DENSITY
- MX0 57
- AX1 51
- BX0 -X0*X1
- SA1 FCEF CHECK TAPE TYPE
- ZR X1,MRF7 IF *MT*
- SX0 X0+1 ADJUST FOR DUAL 800-BPI TABLE ENTRIES
- MRF7 SX2 X1-3
- NZ X2,MRF7.1 IF NOT *AT*
- SX0 X0+1 ADJUST FOR DUAL 38000-CPI TABLE ENTRIES
- MRF7.1 SA2 X0+FCEM
- BX6 X2
- SA6 TDEN SAVE DENSITY
- SA1 CBUF+CEPW GET FILE PASSWORD
- MX0 42
- BX1 X0*X1
- RJ SFN BLANK FILL IT
- SA6 PWRD
- SA1 CBUF+CEST CHECK ERROR INDICATOR
- SX3 2
- BX2 X1*X3
- AX2 1
- SA3 MRFE+X2
- BX6 X3
- SA6 ERRI
- SX3 2000B CHECK CATALOG ERROR STATUS
- BX2 X1*X3
- AX2 12B
- SA3 MRFC+X2
- BX6 X3
- SA6 CERR STORE CATALOG ERROR STATUS
- SA1 CBUF+CEUC GET USER CONTROL WORD
- RJ SFN SPACE FILL NAME
- SA6 UWRD
- SA1 DIR1 MOVE DATA TO BASIC FILE BLOCK
- RJ MCS MOVE CHARACTER STRING
- SA1 DIR2
- RJ MCS MOVE CHARACTER STRING
- SA1 CBUF+TCEL GET VSN INFORMATION
- MRF8 SA2 FCBA EOF INDICATOR OF VSN LIST
- MX0 36
- BX1 X0*X1
- BX3 X2-X1
- ZR X3,MRF3 IF END OF VSNS
- RJ SFN SPACE FILL NAME
- SA6 MVSN SAVE VSN
- SA1 A1+B1 GET PHYSICAL REEL NUMBER
- MX2 -18
- BX6 -X2*X1
- SA6 MRFV SAVE STATUS INFORMATION
- MX2 6
- LX2 24D
- BX6 X2*X1 SAVE REEL NUMBER
- AX6 18D
- SA6 MRFK
- BX1 X0*X1
- RJ SFN SPACE FILL NAME
- SA6 MPRN SAVE PHYSICAL REEL NUMBER
- SA1 A1+B1 GET FIRST VSN
- BX1 X0*X1
- RJ SFN SPACE FILL NAME
- SA6 FVSN SAVE FIRST VSN
- SA1 A1+B1
- BX1 X0*X1
- RJ SFN SPACE FILL NAME
- SA6 NVSN SAVE NEXT VSN
- SA1 A1
- MX2 6
- LX2 24D
- BX6 X2*X1 SAVE USAGE COUNT
- AX6 18D
- SA6 MRFL
- SA3 MRFV
- BX1 X3
- SX0 ERVS CHECK ERROR STATUS
- BX2 X0*X1
- AX2 1
- SA3 MRFE+X2
- BX6 X3
- SA6 VERR
- SX0 TVVS CHECK SITE STATUS
- BX2 X0*X1
- AX2 3
- SA3 MRFF+X2
- BX6 X3
- SA6 STAT STORE SITE STATUS
- SX0 RTVS CHECK RESERVE STATUS
- BX2 X0*X1
- AX2 17
- SA3 MRFD+X2
- BX6 X3
- SA6 RESV STORE RESERVE STATUS
- SX0 UOVS CHECK OWNERSHIP STATUS
- BX2 X0*X1
- AX2 12
- SA3 MRFH+X2
- BX6 X3
- SA6 OWNS STORE OWNERSHIP STATUS
- SX0 HMVS CHECK MAINTENANCE FLAG
- BX2 X0*X1
- AX2 16
- SA3 MRFG+X2
- BX6 X3
- SA6 MAIN STORE MAINTENANCE FLAG
- SX6 A1 SAVE VSN POINTER
- SA6 MRFS
- SA1 MRFK CONVERT REEL COUNT
- RJ CDD CONVERT TO DECIMAL
- RJ CBE CLEAR BLANKS
- RJ ZFD SET DISPLAY CODE ZEROS
- SA6 RCNT STORE REEL COUNT
- SA1 MRFL CONVERT USAGE COUNT
- RJ CDD CONVERT TO DECIMAL
- RJ CBE CLEAR BLANKS
- RJ ZFD SET DISPLAY CODE ZEROS
- SA6 USGC STORE USAGE COUNT
- SA1 DIR3
- RJ MCS MOVE CHARACTER STRING
- WRITEC O,BLOCK,23D WRITE DATA BLOCK
- SA1 MRFS
- SA1 X1+B1
- EQ MRF8 GET NEXT VSN
- SPACE 5
- * MACHINE READABLE FILE DATA STORAGE ITEMS
- MRFA CON 6LREAD
- CON 6LWRITE
- CON 6LNULL
- MRFB CON 7LPUBLIC
- CON 7LPRIVATE
- CON 7LSEMI-PR
- CON 7L
- MRFC CON 1LN RECOVERED STATUS
- CON 1LS
- MRFD CON 1LN RESERVED STATUS
- CON 1LR
- MRFE CON 1LC VSN ERROR STATUS
- CON 1LS
- MRFF CON 3LON
- CON 3LOFF
- MRFG CON 5LAVAIL
- CON 5LHOLD
- MRFH CON 6LCENTER
- CON 6LUSER
- MRFK CON 0 REEL COUNT
- MRFL CON 0 USAGE COUNT
- MRFS CON 0 VSN POINTER
- MRFV CON 0 STATUS INFORMATION
- SPACE 4
- * THE FOLLOWING MACRO *MOVEIT* CALLS ARE USED TO SET UP
- * THE OUTPUT BLOCK FOR THE *SS* FILE.
- * DIRECTIVE SET TO FORM COLUMNS 1-60.
- DIR1 MOVEIT 1,VERS,10,BLOCK,1
- MOVEIT 7,AUDG,1,BLOCK,2
- MOVEIT 7,CUSR,1,BLOCK,9
- MOVEIT 7,CHRG,1,BLOCK,16
- MOVEIT 23,PROJ,1,BLOCK,23
- MOVEIT 17,TPFN,1,BLOCK,43
- VFD 60/0
- * DIRECTIVE SET FOR COLUMNS 60-155.
- DIR2 MOVEIT 7,FTYP,1,BLOCK,60
- MOVEIT 2,CDAT,2,BLOCK+6,7
- MOVEIT 2,CDAT,5,BLOCK+6,9
- MOVEIT 2,CDAT,8,BLOCK+6,11
- MOVEIT 2,CTIM,2,BLOCK+6,13
- MOVEIT 2,CTIM,5,BLOCK+6,15
- MOVEIT 2,CTIM,8,BLOCK+6,17
- MOVEIT 2,ADAT,2,BLOCK+6,19
- MOVEIT 2,ADAT,5,BLOCK+6,21
- MOVEIT 2,ADAT,8,BLOCK+6,23
- MOVEIT 2,ATIM,2,BLOCK+6,25
- MOVEIT 2,ATIM,5,BLOCK+6,27
- MOVEIT 2,ATIM,8,BLOCK+6,29
- MOVEIT 2,MDAT,2,BLOCK+6,31
- MOVEIT 2,MDAT,5,BLOCK+6,33
- MOVEIT 2,MDAT,8,BLOCK+6,35
- MOVEIT 2,MTIM,2,BLOCK+6,37
- MOVEIT 2,MTIM,5,BLOCK+6,39
- MOVEIT 2,MTIM,8,BLOCK+6,41
- MOVEIT 6,PMOD,1,BLOCK+6,43
- MOVEIT 10,ACNT,1,BLOCK+6,49
- MOVEIT 2,FRMT,1,BLOCK+6,59
- MOVEIT 2,CVMD,1,BLOCK+12,1
- MOVEIT 2,TTYP,1,BLOCK+12,3
- MOVEIT 2,TDEN,1,BLOCK+12,5
- MOVEIT 3,BLANKS,1,BLOCK+12,7
- MOVEIT 10,UWRD,1,BLOCK+12,10
- MOVEIT 4,BLANKS,1,BLOCK+12,20
- MOVEIT 1,ERRI,1,BLOCK+12,24
- MOVEIT 1,BLANKS,1,BLOCK+12,25
- MOVEIT 7,PWRD,1,BLOCK+12,26
- MOVEIT 3,BLANKS,1,BLOCK+12,33
- VFD 60/0
- * DIRECTIVE SET FOR COLUMNS 159 - 225
- DIR3 MOVEIT 6,MVSN,1,BLOCK+12,36
- MOVEIT 6,MPRN,1,BLOCK+12,42
- MOVEIT 6,FVSN,1,BLOCK+12,48
- MOVEIT 6,NVSN,1,BLOCK+12,54
- MOVEIT 5,MAIN,1,BLOCK+12,60
- MOVEIT 3,STAT,1,BLOCK+18,5
- MOVEIT 6,OWNS,1,BLOCK+18,8
- MOVEIT 1,VERR,1,BLOCK+18,14
- MOVEIT 2,RCNT,9,BLOCK+18,15
- MOVEIT 2,LBST,1,BLOCK+18,17
- MOVEIT 17,PHID,1,BLOCK+18,19
- MOVEIT 2,USGC,9,BLOCK+20,16
- MOVEIT 6,BLANKS,1,BLOCK+20,18
- MOVEIT 1,RESV,1,BLOCK+20,24
- MOVEIT 1,CERR,1,BLOCK+20,25
- MOVEIT 1,BLANKS,1,BLOCK+20,26
- VFD 60/0
- * FOLLOWING ARE THE STORAGE CELLS WHICH ARE FILLED BY *MRF*
- * AND FORMATTED FOR OUTPUT BY THE PREVIOUS *MOVEIT* CALLS.
- VERS VFD 54/0,6/1R2 VERSION
- CHRG BSS 1 CHARGE NUMBER
- PROJ BSS 2 PROJECT NUMBER
- CUSR BSS 1 USER NAME
- TPFN BSS 2 TAPE FILE NAME
- FTYP BSS 1 FILE CATEGORY
- CDAT BSS 1 CREATION DATE
- CTIM BSS 1 CREATION TIME
- ADAT BSS 1 LAST ACCESS DATE
- ATIM BSS 1 LAST ACCESS TIME
- MDAT BSS 1 LAST MODIFY DATE
- MTIM BSS 1 LAST MODIFY TIME
- PMOD BSS 1 FILE PERMISSION MODE
- ACNT BSS 1 ACCESS COUNT
- FRMT BSS 1 FILE FORMAT
- PWRD BSS 1 FILE PASSWORD
- CVMD BSS 1 CONVERSION MODE
- ERRI BSS 1 TAPE FILE ERROR INDICATOR
- TTYP BSS 1 PHYSICAL TAPE TYPE
- TDEN BSS 1 TAPE DENSITY
- UWRD BSS 1 USER CONTROL WORD
- MVSN BSS 1 VOLUME SERIAL NUMBER
- MPRN BSS 1 PHYSICAL REEL NUMBER
- FVSN BSS 1 FIRST VSN
- NVSN BSS 1 NEXT VSN
- MAIN BSS 1 MAINTENANCE FLAG
- STAT BSS 1 SITE STATUS
- OWNS BSS 1 OWNERSHIP TYPE
- VERR BSS 1 VSN ERROR INDICATOR
- RCNT BSS 1 REEL COUNT
- LBST BSS 1 LABEL STATUS
- PHID BSS 2 PHYSICAL ID
- RESV BSS 1 TAPE RESERVED INDICATOR
- CERR BSS 1 CATALOG ERROR INDICATOR
- USGC BSS 1 USAGE COUNT
- BLOCK BSS 23
- VFD 30/0,30/5L
- CON 10H
- CON 10H
- VFD 36/6L ,12/2L ,12/0
- BLANKS CON 10H
- CON 10H
- SAD SPACE 4,15
- ** SAD - SHORT ADMIT DATA
- *
- * THIS ROUTINE PROCESS THE *LO=P* AUDIT LIST OPTION.
- * *SAD* GENERATES A LIST OF ONLY THE USERNAMES OF ALTERNATE
- * USERS WHO HAVE ACCESSED A SPECIFIC FILE. THIS ROUTINE IS
- * CALLED BY *ADT*.
- *
- * ENTRY AUDIT COMMAND HAS BEEN CRACKED AND PARAMETERS STORED.
- *
- * EXIT SHORT ADMIT LIST GENERATED.
- * EXIT TO MAIN LOOP (ADT).
- *
- * USES ALL.
- *
- * CALLS ALN, CDD, FBA, GAL.
- *
- * MACROS WRITEC, WRITEH.
- SAD BSS 0 ENTRY
- RJ FBA FILL BUFFER FOR ADMIT LIST
- ZR X6,SAD1 IF EOI
- RJ GAL GENERATE ADMIT LIST
- EQ SAD
- SAD1 WRITEC O,LBUF
- SA1 ENTN SET NUMBER OF USERS
- RJ CDD CONVERT TO DECIMAL
- MX0 -18
- BX6 -X0*X6
- LX6 36D
- LX0 36D
- SA2 SADA
- BX2 X0*X2
- BX6 X6+X2
- SA6 SADA
- SB2 3
- RJ ALN ADVANCE LINE NUMBER
- WRITEC O,BLNK
- WRITEH O,SADA,SADAL
- WRITEC O,BLNK
- EQ ADT3 RETURN BACK TO MAIN LOOP
- SADA DATA C* XXX USER(S).*
- SADAL EQU *-SADA
- SFL SPACE 4,15
- ** SFL - SHORT FILE LIST
- *
- * *SFL* IS THE OVERFLOW PROCESSOR FOR THE SHORT SORTED FILE
- * LIST (SSL). THIS ROUTINE IS CALLED BY *SSL* THE *LO=0*
- * AUDIT LIST PROCESSOR.
- *
- * ENTRY *SSL* HAS DETERMINED THERE ARE TOO MANY FILE NAMES
- * FOR THE SORT BUFFER.
- *
- * EXIT UNSORTED SHORT LIST HAS BEEN GENERATED.
- * EXIT TO MAIN LOOP (ADT).
- *
- * USES A - 2, 6.
- * B - 2.
- * X - 0, 1, 2, 3, 5, 6.
- *
- * CALLS FCB, GSL, SEC.
- *
- * MACRO WRITEC.
- SFL BSS 0 ENTRY
- SB2 B1 SET LIST FLAG
- RJ FCB FILL BUFFER FOR SHORT LIST
- ZR X6,SFL3 IF EOI ENCOUNTERED
- RJ SEC SHORT LIST ERROR CHECK
- LX2 59-2
- PL X2,SFL1 IF NOT SYMBOLIC ACCESS
- LX2 3 STORE FILE IDENTIFIER
- MX0 42
- BX1 X0*X2
- RJ SFN SPACE FILL NAME
- BX6 X5*X6 SET POSSIBLE RECOVER FLAG
- SA6 A2
- EQ SFL2
- SFL1 SA2 CBUF+CEES EXTRACT VSN
- MX0 36
- BX1 X0*X2
- SA2 FCEQ
- RJ SFN SPACE FILL VSN
- SA6 CBUF
- BX6 X5*X2 SET POSSIBLE RECOVER FLAG
- SA6 A6+B1
- SFL2 RJ GSL GENERATE SHORT LIST
- EQ SFL GET THE NEXT FILE NAME
- SFL3 WRITEC O,LBUF
- WRITEC O,BLNK
- EQ ADT3 RETURN TO MAIN LOOP
- SSL SPACE 4,15
- ** SSL - SHORT SORTED LIST.
- *
- * THIS ROUTINE PROCESSES THE *LO=0* AUDIT LIST OPTION.
- * *SSL* GENERATES A LIST OF THE TAPE FILENAMES IN THE
- * CATALOG BEING INTERROGATED (NO OTHER INFORMATION IS LISTED).
- * IF THE USER IS REQUESTING FILE NAMES IN AN ALTERNATE USER
- * CATALOG, THE USER IS GIVEN ONLY THE NAMES OF FILES THAT
- * HE OR SHE IS ALLOWED ACCESS. THIS ROUTINE IS CALLED BY
- * *ADT*.
- *
- * ENTRY AUDIT COMMAND HAS BEEN CRACKED AND PARAMETERS STORED.
- *
- * EXIT TO OVERFLOW PROCESSOR IF BUFFER IS NOT LARGE
- * ENOUGH TO HOLD ALL ENTRIES. OTHERWISE BACK
- * TO THE MAIN LOOP (ADT).
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 0, 1, 2, 3, 6, 7.
- * B - 2, 3, 7.
- *
- * CALLS AFS, CSM, FCB, GNI, GSL, HDR, NIP, PAS, RQS, SEC, SST.
- *
- * MACROS READW, WRITEC, WRITEH.
- SSL BSS 0 ENTRY
- SA0 B0 INITIALIZE BUFFER POINTER
- SSL1 SB2 B1 SET LIST FLAG
- RJ FCB FILL BUFFER FOR SHORT LIST
- ZR X6,SSL6 PROCESS SORT OF BUFFER
- RJ SEC SHORT LIST ERROR CHECK
- LX2 59-2
- PL X2,SSL2 IF NOT SYMBOLIC ACCESS
- SA1 CBUF+CELI STORE FILE IDENTIFIER
- BX6 X1
- SA6 A0+SBUF
- SA0 A0+B1
- SA1 CBUF+CEST
- MX0 42D
- BX1 X0*X1
- RJ SFN SPACE FILE NAME
- BX6 X5*X6 SET POSSIBLE RECOVER FLAG
- SA6 A0+SBUF
- EQ SSL3
- SSL2 SA2 CBUF+CEES STORE VSN IN SBUF
- MX0 36D
- BX1 X0*X2
- RJ SFN SPACE FILE NAME
- SA6 A0+SBUF
- SA2 FCEQ
- SA0 A0+B1
- BX6 X5*X2 SET POSSIBLE RECOVER FLAG
- SA6 A0+SBUF
- SSL3 SA1 CSBS GET CURRENT BUFFER MAXIMUM
- SA0 A0+B1
- SX3 A0+B1
- IX2 X1-X3
- PL X2,SSL1 IF BUFFER NOT FULL
- RJ RQS REQUEST MORE BUFFER SPACE
- PL X1,SSL1 IF MORE AVAILABLE
- * SORT BUFFER OVERFLOW.
- SX6 A0+
- AX6 1
- SA6 SSLA STORE COUNT
- SB2 B1+
- RJ ALN ADVANCE LINE NUMBER
- WRITEC O,SSLD OUTPUT WARNING MESSAGE
- WRITEC O,BLNK
- RJ HDR PRINT HEADER
- SB7 B0+
- SA1 SSLA PRESET TERMINATION MESSAGE
- RJ CDD CONVERT TO DISPLAY
- MX0 -24 SAVE 4 DIGITS
- BX6 -X0*X6
- LX6 30
- LX0 30
- SA2 SSLE
- BX2 X0*X2
- BX6 X6+X2
- SA6 SSLE
- SSL4 SA3 SSLA
- SX6 X3-1
- SA6 A3
- NG X6,SSL5 IF END OF ENTRIES
- SA1 SBUF+B7
- BX6 X1
- SA6 CBUF
- SA1 A1+B1
- BX6 X1
- SA6 CBUF+B1
- SX6 B7+ SAVE SORT BUFFER INDEX
- SA6 SSLF
- RJ GSL GENERATE SHORT LIST
- SA2 SSLF RESET SORT BUFFER INDEX
- SB7 X2+2
- EQ SSL4 GET NEXT ENTRY
- SSL5 SA2 CODE
- SA2 X2+ADTC
- SB2 X2
- JP B2 GO TO OVERFLOW PROCESSOR
- * SORT TAPE FILES ALPHABETICALLY.
- SSL6 SX1 A0 NUMBER OF ENTRIES*2
- AX1 1
- BX6 X1
- SA6 SSLA NUMBER OF TAPE FILE ENTRIES
- SB2 B1
- RJ ALN ADVANCE LINE NUMBER
- SX1 A0
- SB7 SBUF ADDRESS OF BUFFER
- RJ SST SORT ENTRIES
- SA1 SSLA PRESET TERMINATION MESSAGE
- RJ CDD CONVERT TO DISPLAY
- MX0 -24 SAVE 4 DIGITS
- BX6 -X0*X6
- LX6 30
- LX0 30
- SA2 SSLE
- BX2 X0*X2
- BX6 X6+X2
- SA6 SSLE
- SB7 B0
- * LIST TAPE FILES
- SSL7 SA3 SSLA
- SX6 X3-1
- SA6 A3+
- NG X6,SSL8 IF END OF ENTRIES
- SA1 B7+SBUF GET ACTUAL ENTRY
- BX6 X1
- SA6 CBUF
- SA1 A1+B1
- BX6 X1
- SA6 CBUF+B1
- SX6 B7+ SAVE SORT BUFFER INDEX
- SA6 SSLF
- RJ GSL GENERATE SHORT LIST
- SA2 SSLF
- SB7 X2+2
- EQ SSL7 GET NEXT FILENAME
- SSL8 WRITEC O,LBUF LAST LINE OF TAPE FILES
- WRITEC O,BLNK
- SB2 2
- RJ ALN ADVANCE LINE NUMBER
- WRITEH O,SSLE,SSLEL
- WRITEC O,BLNK
- EQ ADT3 CONTINUE PROCESSING
- SSLA CON 0 NUMBER OF TAPE FILES
- SSLD DATA C* ALL FILES LISTED BUT NOT SORTED.*
- SSLE DATA C* XXXX TAPE FILE(S).*
- SSLEL EQU *-SSLE
- SSLF CON 0
- TITLE SUBROUTINES.
- AEN SPACE 4,25
- ** AEN - ADVANCE ENTRY NUMBER.
- *
- * ENTRY (ENTN) = NUMBER OF FILES.
- *
- * EXIT (ENTN) = ADVANCED.
- * (ENTD) = ADVANCED FILE NUMBER IN DISPLAY CODE
- *
- * USES X 0, 1, 6.
- * A 1, 6.
- *
- * CALLS CDD.
- AEN SUBR ENTRY/EXIT
- SA1 ENTN ADVANCE FILE NUMBER
- SX1 X1+B1
- BX6 X1
- SA6 A1
- RJ CDD CONVERT TO DISPLAY
- SX1 1R. SET PERIOD
- MX0 54
- LX6 6
- BX6 X0*X6
- BX6 X1+X6
- SA6 ENTD
- EQ AENX RETURN
- ALN SPACE 4,25
- ** ALN - ADVANCE LINE NUMBER
- *
- * ENTRY (LINE) = CURRENT PAGE LINE NUMBER
- * (B2) = NUMBER OF LINES TO ADVANCE
- *
- * EXIT FILE NUMBER UPDATED IN OUTPUT LINE
- * LINE BUFFER CLEARED
- *
- * USES X 1, 6.
- * B 2.
- * A 1, 6.
- *
- * CALLS HDR, PTP.
- ALN SUBR ENTRY/EXIT
- SA1 LINE ADVANCE LINE NUMBER
- SX6 X1+B2
- SA6 A1
- SX1 X6-LINP
- NG X1,ALN2 IF NOT END OF PAGE
- SA1 DTYP CHECK DEVICE TYPE
- NZ X1,ALN1 IF FILE NOT ASSIGNED TO A TERMINAL
- SA1 TPFG CHECK IF TITLE PAGE ALREADY PRINTED
- NZ X1,ALN2 IF TITLE ALREADY PRINTED
- ALN1 RJ PTP PRINT TITLE PAGE
- SX6 B1 SET TITLE PAGE FLAG FOR TERMINAL
- SA6 TPFG
- SA1 CODE
- ZR X1,ALN2 IF SHORT FILE LIST
- RJ HDR PRINT HEADER
- ALN2 SB2 7 CLEAR LINE BUFFER
- SX6 B0
- ALN3 ZR B2,ALNX IF END OF LINE BUFFER
- SA6 LBUF+B2
- SB2 B2-B1
- EQ ALN3 CONTINUE CLEARING LINE BUFFER
- BAT SPACE 4,15
- *** BAT - BUILD ARGUMENT TABLE.
- *
- * BAT BUILDS THE ARGUMENT TABLE WHICH *ARG* USES TO
- * EXTRACT KEYWORDS. THE ARGUMENT TABLE IS NORMALLY
- * DONE BY THE SYSTEM BUT IS SUPPRESSED IN TFILES DUE
- * TO THE 17 CHARACTER FILENAMES AND STRUCTURES OF THE
- * COMMANDS.
- *
- * ENTRY B6 SPECIFIES NEXT POSITION IN THE USB STRING
- * BUFFER TO BE CRACKED.
- *
- * EXIT TARG STORAGE AREA CONTAINS THE ARGUMENT TABLE.
- *
- * USES A - 3, 4, 6, 7.
- * B - 3, 7.
- * X - 3, 4, 5, 6, 7.
- *
- * CALLS POP.
- *
- * MACROS ABORT, MESSAGE.
- BAT SUBR ENTRY/EXIT
- BX6 X6-X6
- SA6 BATA INITIALIZE INDEX TO TARG
- SA6 NARG INITIALIZE ARGUMENT COUNT
- BAT1 RJ POP PICK OUT NEXT PARAMETER
- NG B5,ERR IF ERROR ENCOUNTERED
- ZR B5,BAT2 IF PARAMETER DOES NOT EXCEED ONE WORD
- SA3 BATB
- SA4 TARG+B3-1
- IX6 X3-X4
- NZ X6,ERR IF NOT *REMARK=*
- BAT2 SA3 POPA GET PARAMETER
- BX6 X3
- NG X2,BAT5 IF LAST PARAMETER
- SB3 X1-1R=
- ZR B3,BAT3 PROCESS EQUIVALENCED PARAMETER
- SB3 X1-1R,
- NZ B3,ERR6 IF INCORRECT SEPARATOR
- EQ BAT4 PROCESS NON-EQUIVALENCED PARAMETER
- BAT3 MX5 -6 ZERO-OUT LOWER -6BITS OF PARAMETER WORD
- BX4 X5*X6
- BX6 X4+X1 COMBINE KEYWORD AND *=*
- BAT4 SA3 NARG INCREMENT ARGUMENT COUNT
- SX7 X3+B1
- SA7 NARG
- BAT5 SA3 BATA INCREMENT INDEX TO TARG
- SB3 X3
- SB7 TARGL
- EQ B3,B7,ERR IF EXCEEDED MAX. TARG LENGTH
- SA6 TARG+B3 STORE PARAMETER
- SB3 B3+B1 INCREMENT INDEX TO TARG
- SX6 B3
- SA6 BATA
- NG X2,BAT NO MORE ARGUMENTS
- EQ BAT1 GET NEXT PARAMETER
- BATA CON 0 INDEX TO ARGUMENT TABLE
- BATB VFD 36/0LREMARK,18/0,6/0L=
- PAR SPACE 4,20
- ** PAR - PROCESS ARGUMENTS
- *
- * ENTRY (B1) = 1.
- * (B4) = ARGUMENT COUNT.
- * (A4) = ADDRESS OF FIRST ARGUMENT.
- * (X4) = FIRST ARGUMENT.
- * (B5) = ADDRESS OF ARGUMENT TABLE IN FOLLOWING FORM -
- * 12/OP,18/ASV,9/ST,3/WC,18/ADDR
- * OP = 2 CHARACTER OPTION.
- * ASV = ADDRESS OF ASSUMED VALUE.
- * IF .LT. 0, ARGUMENT MUST BE EQUIVALENCED.
- * ST = STATUS, IF = 400B, A ZERO *0* PARAMETER IS
- * RETAINED AS A DISPLAY ZERO, OTHERWISE A
- * VALUE OF ZERO IS STORED.
- * WC = FULL WORD COUNT.
- * ADDR = ADDRESS TO STORE PARAMETER.
- *
- * EXIT (X1) = ZERO IF NO ERROR DETECTED.
- * (X1) = NON-ZERO IF ANY OF THE FOLLOWING ERRORS
- * ARE FOUND.
- * 1. OPTION NOT FOUND IN TABLE.
- * 2. SINGLE ARGUMENT EQUIVALENCED.
- * 3. INCORRECT RE-ENTRY OF ARGUMENT.
- * 4. PARAMETER TOO LONG.
- *
- * USES X - 0, 1, 2, 3, 4, 5, 6, 7.
- * B - 2, 3, 4.
- * A - 2, 3, 4, 7.
- PAR SUBR
- MX0 42
- SX1 B0
- ZR B4,PARX IF NO ARGUMENTS
- SX1 B1
- * SEARCH FOR MATCH IN ARGUMENT TABLE.
- PAR1 ZR X4,PARX IF NULL ARGUMENT
- SA2 B5-B1
- MX3 12
- PAR2 SA2 A2+B1 GET NEXT OPTION
- ZR X2,PARX IF END OF OPTION TABLE
- BX6 X2*X3 CHECK FOR KEYWORD MATCH
- BX5 X3*X4
- BX7 X5-X6
- NZ X7,PAR2 IF NO MATCH
- * CHECK FOR EQUIVALENCE ALLOWED.
- SX7 X4-1R= CHECK FOR EQUIVALENCE SEPARATOR
- SB2 X2 SET ADDRESS VALUE
- LX2 30 GET ASSUMED STATUS
- SB3 X2
- PL B3,PAR3 IF EQUIVALENCE ALLOWED
- SA3 -B3 SET ASSUMED STATUS ADDRESS
- BX6 -X0*X3 GET ASSUMED STATUS
- SB3 -B3
- NZ X7,PAR5 IF ARGUMENT NOT EQUIVALENCED
- EQ PARX RETURN WITH ERROR
- * PROCESS EQUIVALENCE.
- PAR3 SA3 B3 SET ASSUMED VALUE ADDRESS
- BX6 -X0*X3 SET ASSUMED VALUE
- NZ X7,PAR5 IF ARGUMENT NOT EQUIVALENCED
- SA4 A4+B1 GET PARAMETER
- SB4 B4-B1
- BX3 X4
- AX4 42
- NG X2,PAR4 IF DISPLAY ZERO REQUESTED
- SX2 X4-1L0
- PAR4 ZR X3,PARX IF NULL PARAMETER
- NZ X2,PAR5 IF NOT *0*
- SX3 B0 CLEAR EQUIVALENCE
- SX6 B0 CLEAR STATUS
- * ENTER ARGUMENT.
- PAR5 SA2 A2 GET WORD COUNT OF PARAMETER
- MX0 -3
- AX2 18
- BX2 -X0*X2
- BX7 X3
- NZ X2,PAR6 IF PARAMETER MAY BE FULL WORD
- SA4 A4 GET CURRENT ARGUMENT
- MX0 -6
- LX0 12
- BX2 -X0*X4
- NZ X2,ERR IF PARAMETER TOO LONG
- MX0 42
- BX7 X0*X7
- IX7 X6+X7 MERGE ARGUMENT AND STATUS
- PAR6 SA7 B2 STORE ARGUMENT
- SB3 B2-B3
- NZ B3,PAR7 IF MORE THAN 1 ENTRY ALLOWED
- SA2 A2 GET ENTRY IN ARGUMENT TABLE
- MX3 12
- BX4 -X3*X2
- BX7 X3+X4
- SA7 A2 MASK THIS ENTRY OUT
- PAR7 SB4 B4-B1 DECREMENT ARGUMENT COUNT
- SA4 A4+B1 GET NEXT ARGUMENT
- NZ B4,PAR1 IF MORE ARGUMENTS TO PROCESS
- SX1 B0 CLEAR ERROR
- EQ PARX RETURN WITH ERROR
- CBE SPACE 4,10
- ** CBE - CLEAR BLANKS FROM WORD.
- *
- * ENTRY (X6) = WORD TO BE CLEARED.
- *
- * EXIT (X6) = WORD WITH BLANKS CLEARED.
- *
- * USES X - 0, 2, 3, 4, 5, 6.
- CBE SUBR ENTRY/EXIT
- BX3 X6
- SX2 12B
- MX0 -6
- SX4 55B
- CBE1 BX5 -X0*X3
- BX5 X5-X4
- ZR X5,CBE3 IF BLANK
- LX3 54
- CBE2 SX2 X2-1 DECREMENT CHARACTER COUNT
- NZ X2,CBE1 IF NOT DONE WITH WORD
- BX6 X3
- EQ CBEX RETURN
- CBE3 BX3 X0*X3
- LX3 54
- EQ CBE2 CONTINUE CONVERSION
- CER SPACE 4,15
- ** CER - CHECK FOR RETURNED ERRORS
- *
- * *CER* CHECKS THE ERROR BITS IN THE FET. IF SET,
- * *CER* ISSUES THE MESSAGE SENT BY *TFM*, THEN EITHER
- * ENDS PROCESSING OR ROLLS OUT AND RETURNS TO THE
- * CALLING PROGRAM. UPON ROLLIN, THE CALLING PROGRAM
- * WILL RE-ISSUE THE REQUEST.
- *
- * ENTRY TFM HAS JUST BEEN CALLED.
- *
- * EXIT X7 .NE. 0 IF ROLLOUT.
- * IF OTHER THAN ROLLOUT ERROR, MESSAGE IS ISSUED AND
- * PROCESSING IS STOPPED.
- *
- * USES A - 1.
- * B - 7.
- * X - 0, 1, 6, 7.
- *
- * MACROS ABORT, ENDRUN, MESSAGE, ROLLOUT.
- CER SUBR ENTRY/EXIT
- BX7 X7-X7
- MX0 -8
- LX0 10D
- SA1 F
- BX0 -X0*X1
- ZR X0,CER IF NO ERRORS
- SA2 TFMSG
- MESSAGE A2,0
- SA1 F
- MX0 42
- BX6 X0*X1
- LX1 59-17
- PL X1,CER1 IF NOT ROLLABLE ERROR
- SA6 A1
- SX7 B1
- ROLLOUT
- MESSAGE CERA,1 CLEAR B-DISPLAY MESSAGE
- SB7 B7-B1
- EQ CERX RETURN
- CER1 SA1 NABT CHECK NO-ABORT OPTION
- ZR X1,CER2 IF NA NOT SET
- ENDRUN
- CER2 ABORT
- CERA CON 0 CLEAR B-DISPLAY MESSAGE
- CDT SPACE 4,15
- ** CDT - CONVERT TIMES AND DATES TO DISPLAY FORMAT.
- *
- * ENTRY (X3) = CODED DATE AND TIME.
- *
- * EXIT (X6) = DISPLAY CODED DATE.
- * (X5) = DISPLAY CODED TIME.
- *
- * USES X 0, 1, 6.
- * A 1, 6.
- *
- * CALLS EDT.
- *
- * MACROS EDATE, ETIME.
- CDT SUBR ENTRY/EXIT
- MX0 -18
- BX1 -X0*X3 CONVERT TIME
- BX6 -X0-X1
- BX5 X3
- ZR X6,CDT1 IF BLANK TIME REQUEST
- ETIME X1
- CDT1 AX5 18
- BX1 -X0*X5 CONVERT DATE
- BX5 X6
- BX6 -X0-X1
- ZR X6,CDTX IF BLANK DATE REQUEST
- EDATE X1
- EQ CDTX EXIT
- CNV SPACE 4,20
- ** CNV - CONVERT PARAMETER TO VALUE
- *
- * *CNV* CONVERTS THE ALPHA PARAMETER EQUIVALENCES TO THEIR
- * CORRESPONDING NUMERIC TFM VALUES. THESE VALUES ARE
- * STORED IN THE PARAMETER AREA.
- *
- * ENTRY THE USER GIVEN PARAMETER EQUIVALENCES HAVE BEEN
- * CRACKED AND STORED.
- *
- * EXIT GIVEN PARAMETERS HAVE BEEN CONVERTED. IF ANY WERE
- * INCORRECT, ERROR PROCESSING IS INITIATED.
- *
- * USES A - 1, 2, 6.
- * B - 2, 4.
- * X - 1, 2, 3, 6.
- *
- * CALLS NONE.
- CNV SUBR ENTRY/EXIT
- MX0 12
- SA2 CATG GET FILE CATEGORY
- ZR X2,CNV3 IF NO CATEGORY SPECIFIED
- SB4 4
- SB2 B0
- CNV1 SA1 CNVA+B2
- BX1 X0*X1
- BX3 X2-X1
- SB2 B2+B1
- GT B2,B4,CNV2 IF END OF POSSIBLE CATEGORIES
- NZ X3,CNV1 IF CATEGORY NOT FOUND
- CNV2 NZ X3,ERR10 IF INCORRECT CATEGORY
- SB2 B2-B1
- SA1 CNVA+B2
- MX0 -12
- BX6 -X0*X1
- SA6 A2
- MX0 12
- CNV3 SA2 ALAD GET AC PARAMETER
- ZR X2,CNV6 IF AC PARAMETER NOT SPECIFIED
- SB2 B0
- SB4 2
- CNV4 SA1 CNVB+B2
- BX1 X0*X1
- BX3 X2-X1
- SB2 B2+B1
- GT B2,B4,CNV5 IF END OF AC POSSIBILITIES
- NZ X3,CNV4 IF AC VALUE NOT FOUND
- CNV5 NZ X3,ERR11 IF INCORRECT AC PARAMETER
- SB2 B2-B1
- SA1 CNVB+B2
- MX0 -12
- BX6 -X0*X1
- SA6 A2
- MX0 12
- CNV6 SA2 MODE GET FILE MODE
- ZR X2,CNV9 IF FILE MODE NOT SPECIFIED
- SB2 B0
- SB4 3
- CNV7 SA1 CNVC+B2
- BX1 X0*X1
- BX3 X2-X1
- SB2 B2+B1
- GT B2,B4,CNV8 IF END OF POSSIBLE MODES
- NZ X3,CNV7 IF MODE NOT FOUND
- CNV8 NZ X3,ERR7 IF INCORRECT MODE
- SB2 B2-B1
- SA1 CNVC+B2
- MX0 -12
- BX6 -X0*X1
- SA6 A2
- CNV9 EQ CNVX RETURN
- CNVA VFD 12/0LPU,36/0,12/FCPU
- VFD 6/0LP,42/0,12/FCPR
- VFD 12/0LPR,36/0,12/FCPR
- VFD 6/0LS,42/0,12/FCSP
- CNVB VFD 6/0LY,42/0,12/FAYS
- VFD 6/0LN,42/0,12/FANO
- CNVC VFD 6/0LW,42/0,12/FMWR
- VFD 6/0LR,42/0,12/FMRE
- VFD 6/0LN,42/0,12/FMNA
- CSU SPACE 4,10
- ** CSU - CHECK FOR SPECIAL USER.
- *
- * ENTRY (PTPL) = ALTERNATE USER.
- *
- * EXIT (CODE) UPDATED TO NON-ALTERNATE CATALOG IF
- * USER REQUESTING AUDIT IS THE SAME AS THE ALTERNATE
- * USER. SUBTITLE FOR OUTPUT IS COMPLETED.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * B - 2.
- * A - 1, 2, 6.
- *
- * CALLS SFN.
- CSU SUBR ENTRY/EXIT
- USERNUM CSUA GET CURRENT USER NAME
- SA1 CSUA
- RJ SFN SPACE FILL USER NAME
- MX0 6
- LX6 48
- SX4 1RF SET LAST PART OF *OF*
- LX4 54
- BX6 -X0*X6
- BX6 X6+X4
- SA6 PTPC
- SA2 CODE
- SX2 X2-AUDP
- PL X2,CSUX IF ADMIT DATA REQUEST
- SA2 PTPL
- ZR X2,CSUX IF NO ALTERNATE USER
- MX0 -6
- SB2 8
- CSU1 LX1 6 POSITION NEXT CHARACTER
- LX2 6
- SB2 B2-B1
- ZR B2,CSU2 IF USER NUMBERS MATCH
- BX3 -X0*X1 USER
- BX6 -X0*X2 ALTERNATE USER
- IX6 X3-X6
- ZR X6,CSU1 IF CHARACTERS COMPARE
- EQ CSUX RETURN
- CSU2 SA1 MODE PROCEED AS NON-ALTERNATE CATALOG
- SX6 X1-2
- SA6 A1
- EQ CSUX RETURN
- CSUA CON 0 CURRENT USER NAME
- ERR SPACE 4,25
- ** ERR - ERROR MESSAGES.
- ERR MESSAGE (=C*ERROR IN ARGUMENT.*)
- ABORT
- ERR1 MESSAGE (=C*NO ARGUMENTS SPECIFIED.*)
- ABORT
- ERR2 MESSAGE (=C*ERROR IN VSN.*)
- ABORT
- ERR3 MESSAGE (=C*NO USERNAME SPECIFIED.*)
- ABORT
- ERR4 MESSAGE (=C*EXCEEDED USERNAME LIMIT.*)
- ABORT
- ERR5 MESSAGE (=C*ERROR IN USERNAME.*)
- ABORT
- ERR6 MESSAGE (=C*INCORRECT SEPARATOR.*)
- ABORT
- ERR7 MESSAGE (=C*INCORRECT FILE MODE.*)
- ABORT
- ERR8 MESSAGE (=C*ERROR IN FILENAME.*)
- ABORT
- ERR9 MESSAGE (=C*EXCEEDED FILENAME LIMIT.*)
- ABORT
- ERR10 MESSAGE (=C*INCORRECT FILE CATEGORY.*)
- ABORT
- ERR11 MESSAGE (=C*INCORRECT AC PARAMETER.*)
- ABORT
- ERR12 MESSAGE (=C*EXCEEDED VSN LIMIT.*)
- ABORT
- ERR13 MESSAGE (=C*INCORRECT LIST OPTION.*)
- ABORT
- ERR14 MESSAGE (=C*FILE NAME MISSING.*)
- ABORT
- ERR15 MESSAGE (=C*INCORRECT PASSWORD.*)
- ABORT
- ERR16 MESSAGE (=C*CANNOT AMEND VSN NAME.*)
- ABORT
- ERR17 MESSAGE (=C*EMPTY CATALOG.*)
- ABORT
- ESP SPACE 4,20
- ** ESP - ENTER SECURE PASSWORD.
- *
- * THIS SUBROUTINE PROCESSES SECURELY ENTERED PASSWORDS.
- * IF OUTPUT FILE IS ASSIGNED TO A TERMINAL THE MESSAGE
- * *PASSWORD:* ALONG WITH BLANK OUT CHARACTERS FOR SECURE
- * ENTRY OF PASSWORD WILL BE SENT TO THE TERMINAL.
- * FILE *INPUT* WILL THEN BE READ FOR THE PASSWORD.
- * FOR BATCH JOBS FILE *INPUT* IS READ FOR THE PASSWORD.
- *
- * ENTRY NONE.
- *
- * EXIT (X6) = PASSWORD.
- * TO *ABT* IF INCORRECT PASSWORD ENCOUNTERED.
- *
- * USES A - 1, 2, 4, 6.
- * B - 2, 3, 4, 5, 6, 7.
- * X - 0, 1, 2, 3, 5, 6, 7.
- *
- * CALLS STF.
- *
- * MACROS CSET, READSKP, WRITE.
- ESP SUBR ENTRY/EXIT
- SETFET POUT,(LFN==6LOUTPUT)
- SX2 P SET ADDRESS OF FET
- RJ STF CHECK IF OUTPUT ASSIGNED TO TERMINAL
- NZ X6,ESP1 IF OUTPUT NOT ASSIGNED TO TERMINAL
- SA1 X2+B1 SET BUFFER FULL
- SX7 X1
- SX6 X1+PMSGL
- SA6 A1+B1 SET IN BELOW DATA FOR MESSAGE
- SA7 A6+B1 SET OUT = FIRST
- WRITE X2,* FORCE WRITE BIT SET
- SA1 P
- MX0 42
- BX2 X0*X1 FILE NAME FOR OUTPUT POINTER
- SX1 A1 SET ADDRESS OF FET FOR POINTER
- BX6 X1+X2
- SA6 ARGR FORCE WRITE BEFORE READ ON ROLLOUT
- ESP1 SX2 I SET ADDRESS OF FET
- RJ STF CHECK IF INPUT ASSIGNED TO TERMINAL
- NZ X6,ESP2 IF INPUT NOT ASSIGNED TO TERMINAL
- CSET NORMAL ENSURE TERMINAL IN NORMAL MODE
- ESP2 READSKP I,,R READ INPUT FOR PASSWORD
- SA1 I+2 DETERMINE NUMBER OF WORDS READ
- SA2 A1+B1
- IX3 X1-X2
- ZR X3,ERR15 IF NO DATA ENTERED
- SB5 X3
- SB3 B0
- BX6 X6-X6
- SB4 60
- SB7 B0
- MX0 -6
- ESP3 SA2 IBUF+B3 PICK UP NEXT DATA WORD
- SB2 B0+
- ESP4 LX2 6
- BX1 -X0*X2 PICK UP CHARACTER TO CHECK
- NZ X1,ESP5 IF CHARACTER NOT ZERO
- NZ X5,ESP9 IF 00 ENCOUNTERED
- SX5 B1+ SET FLAG TO INDICATE 0 ENCOUNTERED
- EQ ESP8 PROCESS CHARACTER
- ESP5 NZ X5,ERR15 IF PREVIOUS CHARACTER = COLON
- SB6 X1-1R9
- GT B6,ESP7 IF NOT ALPHANUMERIC CHARACTER
- ESP6 SB4 B4-6
- LX7 X1,B4
- BX6 X7+X6
- SB7 B7+1
- SB6 B7-7
- GT B6,ERR15 IF PASSWORD .GT. SEVEN CHARACTERS
- EQ ESP8 PROCESS CHARACTER
- ESP7 SX4 X1-1R*
- ZR X4,ESP6 IF CHARACTER = *
- SX3 X1-1R
- NZ X3,ERR15 IF CHARACTER NOT BLANK
- ESP8 SB2 B2+B1
- SB6 B2-10
- LT B6,ESP4 IF NOT END OF WORD
- SB3 B3+B1
- SB6 B5-B3
- EQ B6,ERR15 IF TOO MUCH DATA ENTERED
- EQ ESP3 PICK UP NEXT WORD
- ESP9 SA1 I+1
- BX7 X1
- SA7 A1+B1 SET IN = FIRST FOR INPUT BUFFER
- EQ ESPX RETURN
- FBA SPACE 4,25
- *** FBA - FILL CBUF BUFFER FOR ADMIT LIST.
- *
- * ENTRY NONE.
- *
- * EXIT (X6) = 0 IF EOI ENCOUNTERED
- *
- * USES A - 1, 3, 6.
- * B - 2, 3, 4, 5.
- * X - 0, 1, 3, 6.
- *
- * CALLS CER.
- *
- * MACRO AUDIT.
- FBA SUBR ENTRY/EXIT
- FBA1 SX6 B1 PRESET EOI FLAG
- SA1 F+1
- SB2 X1 (B2) = FIRST
- SA1 F+2
- SB3 X1 (B3) = IN
- SA1 F+3
- SB4 X1 (B4) = OUT
- SA1 F+4
- SB5 X1-1 (B5) = LIMIT
- NE B4,B3,FBA3 IF OUT .NE. IN
- SA1 F CHECK FOR EOI ON LAST REQUEST
- MX0 -1
- LX0 1
- BX0 -X0*X1
- ZR X0,FBA2 IF NOT *EOI*
- BX6 X6-X6 SET EOI FLAG
- EQ FBAX RETURN
- FBA2 AUDIT F REQUEST MORE INFORMATION
- RJ CER CHECK FOR RETURNED ERRORS
- NZ X7,FBA2 IF ROLLABLE ERROR OCCURRED
- EQ FBA1 FILL CBUF BUFFER
- * MOVE DATA TO CBUF FROM CIRCULAR BUFFER.
- FBA3 SA3 B4 (X3) = DATA WORD
- BX6 X3
- SA6 CBUF STORE FIRST WORD
- NE B4,B5,FBA4 IF OUT .NE. LIMIT
- SB4 B2-B1 SET OUT = FIRST - 1
- FBA4 SB4 B4+B1 INCREMENT OUT
- SA3 B4
- BX6 X3
- SA6 CBUF+B1 STORE SECOND WORD
- NE B4,B5,FBA5 IF OUT .NE. LIMIT
- SB4 B2-B1 SET OUT = FIRST - 1
- FBA5 SX6 B4+B1 RESET OUT
- SA6 F+3
- EQ FBAX RETURN
- FCB SPACE 4,25
- *** FCB - FILL CBUF BUFFER FOR FULL LIST.
- *
- * ENTRY (B2) = 0 SHORT LIST.
- * = 1 FULL LIST.
- *
- * EXIT (X6) = 0 IF EOI ENCOUNTERED
- *
- * USES A - 1, 3, 4, 5, 6.
- * B - 2, 3, 4, 5, 6.
- * X - 0, 1, 3, 4, 5, 6.
- *
- * CALLS CER.
- *
- * MACRO AUDIT.
- FCB SUBR ENTRY/EXIT
- SX6 B2 SAVE LIST FLAG
- SA6 FCBF
- FCB1 SX6 B1 PRESET X6
- SA1 F+1
- SB2 X1 (B2) = FIRST
- SA1 F+2
- SB3 X1 (B3) = IN
- SA1 F+3
- SB4 X1 (B4) = OUT
- SA1 F+4
- SB5 X1-1 (B5) = LIMIT
- NE B4,B3,FCB3 IF OUT .NE. IN
- SA1 F CHECK FOR EOI ON LAST REQUEST
- MX0 -1
- LX0 1
- BX0 -X0*X1
- ZR X0,FCB2 IF NOT *EOI*
- BX6 X6-X6 SET EOI FLAG
- EQ FCBX RETURN
- FCB2 AUDIT F REQUEST MORE INFORMATION
- RJ CER CHECK FOR RETURNED ERRORS
- NZ X7,FCB2 IF ROLLABLE ERROR OCCURRED
- EQ FCB1 FILL CBUF BUFFER
- * MOVE DATA TO CBUF FROM CIRCULAR BUFFER.
- FCB3 SB6 B0 INITIALIZE CBUF POINTER
- SB7 TCEL TAPE CATALOG SIZE
- FCB4 SA3 B4 (X3) = DATA WORD
- BX6 X3
- SA6 CBUF+B6 STORE DATA WORD
- SB6 B6+B1 INCREMENT CBUF POINTER
- NE B4,B5,FCB5 IF OUT .NE. LIMIT
- SB4 B2-B1 SET OUT = FIRST - 1
- FCB5 SB4 B4+B1 INCREMENT OUT
- NE B6,B7,FCB4 IF 23 WORDS OF TAPE CATALOG NOT MOVED
- SA4 FCBA GET EOF POINTER
- SA5 FCBF (X5) = LIST FLAG
- FCB6 SA3 B4 BYPASS VSN LIST
- NE B4,B5,FCB7 IF OUT .NE. LIMIT
- SB4 B2-B1 OUT = FIRST - 1
- FCB7 SB4 B4+B1
- ZR X5,FCB8 IF FULL ADMIT LIST
- BX6 X3
- SA6 CBUF+B6
- SB6 B6+B1
- FCB8 MX0 36
- BX3 X3*X0
- BX0 X3-X4
- NZ X0,FCB6 IF NOT EOF
- MI X0,FCB6 IF NOT EOF
- SX6 B4 RESET OUT
- SA6 F+3
- EQ FCBX RETURN
- FCBA VFD 36/-0,24/0 EOI WORD
- FCBF CON 0 LIST FLAG
- SPACE 2
- FCE SPACE 4,25
- *** FCE - FORMAT CATALOG ENTRY FOR OUTPUT.
- *
- * FCE CONVERTS THE FIELDS OF A TAPE CATALOG ENTRY TO
- * DISPLAY AND FORMATS IT INTO 3 - 80 CHARACTER LINES FOR
- * OUTPUT. HEADER LINES ARE DEFINED WHICH THE CALLING
- * PROGRAM CAN RETRIEVE (FCEY, FCEZ).
- *
- * ENTRY (X7) = LINE NUMBER (4 DECIMAL DIGITS) TO BE
- * ATTACHED TO BEGINNING OF LINE.
- * = 0 - DO NOT ATTACH ANY LINE NUMBER.
- * (B6) = ADDRESS OF CATALOG ENTRY.
- * (B7) = WORK AREA FOR STORAGE OF OUTPUT LINES.
- * BUFFER SIZE IS DETERMINED BY SYMBOLS
- * *CHDR* = NUMBER OF LINES,
- * *NWRD* = NUMBER OF WORDS PER LINE.
- * NO END-OF-LINES ARE INSERTED. USE WRITEH
- * FOR OUTPUT.
- *
- * EXIT OUTPUT LINES WRITTEN TO WORK AREA.
- *
- * USES ALL.
- *
- * CALLS CDD, CDT, COD, EDT, SCB, SFN.
- FCE SUBR ENTRY/EXIT
- SA7 FCED STORE LINE NUMBER
- * INITIALIZE THE OUTPUT WORKING BUFFER.
- SB2 NWRD*3-1 NUMBER OF WORDS TO FILL - 1
- SA1 FCEB BLANK FILL THE BUFFER
- BX6 X1
- FCE1 SA6 B7+B2 BLANK FILL NEXT CELL
- SB2 B2-B1
- PL B2,FCE1 IF NOT BLANK FILLED
- * CONVERT CATALOG FIELDS
- SA3 B6+CEMD MODIFICATION DATE AND TIME
- RJ CDT CONVERT DATE AND TIME
- SB3 MDPS
- RJ SCB SET CHARACTERS IN BUFFER
- BX6 X5
- SB3 MTPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA3 B6+CEAD LAST ACCESS DATE AND TIME
- RJ CDT CONVERT DATE AND TIME
- SB3 ADPS
- RJ SCB SET CHARACTERS IN BUFFER
- BX6 X5
- SB3 ATPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA3 B6+CECD CREATION DATE AND TIME
- RJ CDT CONVERT DATE AND TIME
- SB3 CDPS
- RJ SCB SET CHARACTERS IN BUFFER
- BX6 X5
- SB3 CTPS
- RJ SCB SET CHARACTERS IN BUFFER
- MX0 54 FILE TYPE
- SA2 B6+CEPW
- AX2 6
- BX0 -X0*X2
- SX0 X0-1
- SA2 X0+FCEI
- BX6 X2
- SB3 FTPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA2 B6+CEST LOGICAL FILE NAME
- LX2 59-2
- PL X2,FCE2 IF NOT SYMBOLIC ACCESS
- SA1 B6+CELI STORE FILE NAME
- RJ SFN SPACE FILL NAME
- SB3 FNPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CEST
- MX2 42
- BX1 X2*X1
- RJ SFN SPACE FILL NAME
- SB3 F2PS
- RJ SCB SET CHARACTERS IN BUFFER
- EQ FCE3
- FCE2 SA1 B6+CEES STORE VSN
- MX0 36
- BX1 X0*X1
- RJ SFN SPACE FILL NAME
- SB3 FNPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 FCEQ
- BX6 X1
- SB3 F2PS
- RJ SCB SET CHARACTERS IN BUFFER
- FCE3 SA1 FCED LINE NUMBER
- ZR X1,FCE4 IF NO LINE NUMBER
- RJ CDD CONVERT TO DISPLAY
- LX6 59-23 LEFT-JUSTIFY LINE NUMBER
- SB3 NMPS
- RJ SCB SET CHARACTERS IN BUFFER
- FCE4 MX0 54
- SA2 B6+CEPW
- BX0 -X0*X2
- SX0 X0-1
- SA2 X0+FCEJ PERMISSION MODE
- BX6 X2
- SB3 FPPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA5 MULT MULTIFILE LIST INDICATOR
- ZR X5,FSE5 IF NOT MULTIFILE
- SA1 B6+CEVS SECTION NUMBER
- MX2 -18
- BX1 -X2*X1
- RJ CDD CONVERT TO DISPLAY
- LX6 59-23 LEFT-JUSTIFY LINE NUMBER
- SB3 SNPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CESQ SEQUENCE NUMBER
- MX2 -18
- BX1 -X2*X1
- RJ CDD CONVERT TO DISPLAY
- LX6 59-23 LEFT-JUSTIFY LINE NUMBER
- SB3 QNPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CESI MULTI-SET I.D.
- MX2 36
- BX1 X2*X1
- RJ SFN SPACE FILL NAME
- SB3 SIPS
- RJ SCB SET CHARACTERS IN BUFFER
- FSE5 SA1 B6+CEPI PHYSICAL FILE NAME
- RJ SFN SPACE FILL NAME
- SB3 PNPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CESQ
- MX2 42
- BX1 X2*X1
- RJ SFN SPACE FILL NAME
- SB3 P2PS
- RJ SCB SET CHARACTERS IN BUFFER
- SA2 B6+CEAD ACCESS COUNT
- MX1 24
- BX1 X1*X2
- LX1 24
- SA2 FCEG
- BX0 X2-X1
- PL X0,FCE6 IF NOT OVERFLOW ACCESS COUNT
- SA3 FCEH OVERFLOW FLAG
- BX6 X3
- SB3 AFPS
- RJ SCB SET CHARACTER IN BUFFER
- SA1 FCEG
- FCE6 RJ CDD CONVERT TO DISPLAY
- LX6 36D
- SB3 ACPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA2 B6+CEPW PASSWORD
- MX1 42
- BX1 X1*X2
- RJ SFN SPACE FILL NAME
- SB3 PWPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CETD DATA FORMAT
- MX0 54
- AX1 30
- BX0 -X0*X1
- SA1 X0+FCEL
- BX6 X1
- SB3 DFPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CETD LABEL STATUS
- LX1 1
- MX0 2
- BX1 X0*X1
- LX1 2
- SA2 X1+FCEP
- BX6 X2
- SB3 LBPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CETD CONVERSION MODE
- LX1 12D
- MX0 -3
- BX1 -X0*X1
- SA2 X1+FCEN
- BX6 X2
- SB3 CVPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CETD GET TAPE TYPE
- MX0 -2
- AX1 55
- BX0 -X0*X1
- BX6 X0 SAVE TAPE TYPE FOR DENSITY GENERATION
- SA6 FCEF
- SA2 X0+FCEK SET TAPE TYPE MNEMONIC
- BX6 X2
- SB3 TYPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CEST ALTERNATE USER LISTABLE
- MX0 59
- AX1 11
- BX0 -X0*X1
- SA2 X0+FCEO
- BX6 X2
- SB3 AUPS
- RJ SCB SET CHARACTERS IN BUFFER
- SA1 B6+CETD DENSITY
- LX1 9D
- MX0 -3
- BX0 -X0*X1
- SA1 FCEF CHECK TAPE TYPE
- ZR X1,FCE7 IF *MT*
- SX0 X0+1 ADJUST FOR DUAL 800-BPI TABLE ENTRIES
- FCE7 SX2 X1-3
- NZ X2,FCE7.1 IF NOT *AT*
- SX0 X0+1 ADJUST FOR DUAL 38000-CPI TABLE ENTRIES
- FCE7.1 SA2 X0+FCEM
- BX6 X2
- SB3 DNPS
- RJ SCB SET CHARACTERS IN BUFFER
- EQ FCEX RETURN
- FCEB CON 10H
- FCED BSS 1 LINE NUMBER
- FCEF BSSZ 1 TAPE TYPE
- FCEG CON 9999D
- FCEH CON 1L* ACCESS COUNT OVERFLOW FLAG
- * HEADER LINES.
- FCEY DATA 40H FILE-NAME PASSWORD CT MD A
- DATA C*CNT CREATION ACCESS LAST MOD*
- FCEU DATA 30H LOGICAL/PHYSICAL LB TT
- DATA C*F DN CV AC DATE/TIME DATE/TIME DATE/TIME*
- FCEV DATA 30H QN
- DATA C*SN SET ID*
- FCEZ DATA 40H FILE-NAME CT MD A
- DATA C*CNT CREATION ACCESS LAST MOD*
- FCES DATA 30H LOGICAL/PHYSICAL LB TT
- DATA C*F DN CV AC DATE/TIME DATE/TIME DATE/TIME*
- FCET DATA 30H QN
- DATA C*SN SET ID*
- * FIELD EQUIVALENCED CODES
- FCEI BSS 0 FILE TYPES
- LOC 0
- CON 2LPU
- CON 2LPR
- CON 2LSP
- LOC *O
- FCEJ BSS 0 PERMISSION MODES
- LOC 0
- CON 2LRE
- CON 2LWR
- CON 2LNU
- LOC *O
- FCEK BSS 0 TAPE TYPES
- LOC 0
- CON 2LMT SEVEN TRACK TAPE
- CON 2LCT CARTRIDGE TAPE
- CON 2LNT NINE TRACK TAPE
- CON 2LAT ACS CARTRIDGE TAPE
- LOC *O
- FCEL BSS 0 DATA FORMATS
- LOC 0
- CON 2LI INTERNAL
- CON 2LSI SYSTEM INTERNAL
- CON 2LF FOREIGN
- CON 2LS STRANGER
- CON 2LSL LONG STRANGER
- CON 2LLI LONG BLOCK INTERNAL
- LOC *O
- FCEM BSS 0 TAPE DENSITIES
- LOC 0
- CON 0
- CON 2LLO 200-BPI SEVEN TRACK TAPE
- CON 2LHI 556-BPI SEVEN TRACK TAPE
- CON 2LHY 800-BPI SEVEN TRACK TAPE
- CON 2LHD 800-CPI NINE TRACK TAPE
- CON 2LPE 1600-CPI NINE TRACK TAPE
- CON 2LGE 6250-CPI NINE TRACK TAPE
- CON 2LCE 38000-CPI CARTRIDGE TAPE
- CON 2LAE 38000-CPI ACS CARTRIDGE TAPE
- LOC *O
- FCEN BSS 0 CONVERSION MODE
- LOC 0
- CON 0
- CON 2L BCD CONVERSION (7 TRACK)
- CON 2LAS ASCII
- CON 2LEB EBCDIC
- LOC *O
- FCEO BSS 0 ALTERNATE USER AUDIT ATTRIBUTE
- LOC 0
- CON 1LN NOT AUDITABLE BY ALTERNATE USER
- CON 1LY AUDITABLE BY ALTERNATE USER
- LOC *O
- FCEP BSS 0 LABEL STATUS
- LOC 0
- CON 2LKU UNLABELED
- CON 2LNS NON-STANDARD LABEL
- CON 2LKL LABELED
- LOC *O
- FCEQ CON 10HNON-SYM
- FCER CON 1L*
- * LINE DEFINITION TABLE.
- * THE CHARACTER FORMAT OF THE OUTPUT BUFFER IS DEFINED HERE.
- LINE1 EQU 0 STARTING CHARACTER POSITION
- NMPS CFORM LINE1+1,4 NUMBER
- FNPS CFORM LINE1+6,10 FILE NAME
- F2PS CFORM LINE1+16,7 FILE NAME
- PWPS CFORM LINE1+24,7 PASSWORD
- FTPS CFORM LINE1+33,2 FILE CATEGORY
- FPPS CFORM LINE1+36,2 PERMISSION MODE
- ACPS CFORM LINE1+39,4 ACCESS COUNT
- AFPS CFORM LINE1+43,1 ACCESS COUNT FLAG
- CDPS CFORM LINE1+43,9 CREATION DATE
- ADPS CFORM LINE1+53,9 ACCESS DATE
- MDPS CFORM LINE1+63,9 MODIFY DATE
- LINE2 EQU NWRD*10 STARTING CHARACTER POSITION
- PNPS CFORM LINE2+6,10 PHYSICAL FILE NAME
- P2PS CFORM LINE2+16,7 PHYSICAL FILE NAME
- LBPS CFORM LINE2+24,2 LABEL STATUS
- TYPS CFORM LINE2+27,2 TAPE TYPE
- DFPS CFORM LINE2+30,2 DATA FORMAT
- DNPS CFORM LINE2+33,2 DENSITY
- CVPS CFORM LINE2+36,2 CONVERSION MODE
- AUPS CFORM LINE2+39,1 ALTERNATE USER AUDITABILITY
- CTPS CFORM LINE2+43,9 CREATION TIME
- ATPS CFORM LINE2+53,9 ACCESS TIME
- MTPS CFORM LINE2+63,9 MODIFY TIME
- LINE3 EQU NWRD*10*2 STARTING CHARACTER POSITION
- QNPS CFORM LINE3+22,4 SEQUENCE NUMBER
- SNPS CFORM LINE3+28,4 SECTION NUMBER
- SIPS CFORM LINE3+36,6 SET IDENTIFIER
- GAL SPACE 4,25
- ** GAL - GENERATE ADMIT LIST.
- *
- * *GAL* POSITIONS THE USERNAMES IN *LBUF* FOR THE
- * SHORT ADMIT LIST OPTION. *LBUF* IS THEN WRITTEN.
- *
- * ENTRY (CBUF) = ADMIT ENTRY.
- *
- * EXIT THE USERNAME IS IN THE CORRECT POSITION.
- * *LBUF* IS WRITTEN IF LINE IS FULL.
- *
- * USES A - 1, 5, 6.
- * B - 2.
- * X - 0, 1, 2, 5, 6.
- *
- * CALLS AEN, ALN, SFN.
- *
- * MACRO WRITEC.
- GAL SUBR ENTRY/EXIT
- SA5 GALA CHECK LINE FILE COUNT
- SX2 7
- IX2 X2-X5
- NG X2,GAL1 IF FIRST ENTRY
- NZ X2,GAL2 IF NOT END OF LINE
- WRITEC O,LBUF
- GAL1 SB2 B1 ADVANCE LINE NUMBER BY 1
- RJ ALN ADVANCE LINE NUMBER
- SX5 B0 RESET LINE COUNT
- GAL2 RJ AEN ADVANCE ENTRY NUMBER
- SA1 CBUF+AEUN PICK ENTRY
- MX0 42
- BX1 X0*X1
- ZR X1,GALX IF NO NAME
- RJ SFN SPACE FILL NAME
- LX6 48
- SA1 CBUF+AEAC CHECK FOR EXPLICIT USER
- MX0 4
- LX0 40
- BX1 X0*X1
- ZR X1,GAL3 IF IMPLICIT USER
- MX0 54
- BX6 X0*X6
- SA1 GALB
- BX6 X1+X6
- GAL3 SA6 LBUF+X5
- SX6 X5+B1 ADVANCE LINE FILE COUNT
- SA6 GALA
- EQ GALX RETURN
- GALA CON 8 LINE POSITION
- GALB CON 1R*
- GSL SPACE 4,25
- ** GSL - GENERATE SHORT LIST.
- *
- * *GSL* POSITIONS THE 17 CHARACTER FILENAMES IN
- * *LBUF* FOR THE SHORT LIST OPTION. *LBUF* IS
- * WRITTEN WHEN THE LINE IS FULL.
- *
- * ENTRY (CBUF) = CATALOG ENTRY
- *
- * EXIT *LBUF* IS WRITTEN WHEN LINE IS FULL.
- *
- * USES A - 1, 2, 3, 5, 6.
- * B - 2.
- * X - 0, 1, 2, 3, 5, 6.
- *
- * CALLS AEN, ALN, SFN.
- *
- * MACROS WRITEC, XFER.
- GSL SUBR ENTRY/EXIT
- SA5 GSLA CHECK LINE FILE COUNT
- SX2 6
- IX2 X2-X5
- NG X2,GSL1 IF FIRST ENTRY
- NZ X2,GSL2 IF NOT END OF LINE
- WRITEC O,LBUF
- GSL1 SB2 B1 ADVANCE LINE NUMBER BY 1
- RJ ALN ADVANCE LINE NUMBER
- SX5 B0 RESET LINE COUNT
- GSL2 RJ AEN ADVANCE ENTRY NUMBER
- SA1 CBUF PICK ENTRY
- ZR X1,GSLX IF NO NAME
- BX6 X1
- SA6 GSLB
- SX2 X5+B1
- SA1 CBUF+B1
- BX6 X1
- SA6 GSLB+B1
- SX6 X2+B1 ADVANCE LINE FILE COUNT
- SA6 GSLA
- XFER GSLB,LBUF+X5,0,2,18,18
- SA2 GSLA
- SX2 X2-2
- SA3 LBUF+X2
- MX0 6
- BX3 -X0*X3
- SA1 BLNK
- BX6 X1+X3
- SA6 A3
- SA1 GSLB+B1 CHECK FOR SPECIAL CONDITION
- MX0 54
- BX0 -X0*X1
- NZ X0,GSL3 IF SPECIAL CONDITION
- SA1 GSLC
- LX1 54
- MX0 6
- LX0 54
- SA3 LBUF+X2
- BX3 -X0*X3
- BX6 X3+X1
- SA6 A3
- EQ GSLX RETURN
- GSL3 SA1 BLNK
- LX1 54
- MX0 6
- LX0 54
- SA3 LBUF+X2
- BX3 -X0*X3
- BX6 X3+X1
- SA6 A3
- EQ GSLX EXIT
- GSLA CON 8 LINE POSITION
- GSLB BSSZ 2 FILE IDENTIFIER STORAGE
- GSLC CON 1L* SPECIAL CONDITION FLAG
- HDR SPACE 4,15
- ** HDR - GENERATES HEADERS.
- *
- * ENTRY (CODE) = CODE OF LISTING.
- *
- * EXIT HEADER LINE PLACED IN OUTPUT BUFFER.
- *
- * USES A - 1, 6.
- * B - NONE.
- * X - 0, 1, 6.
- *
- * CALLS NONE.
- *
- * MACRO WRITEC.
- HDR SUBR ENTRY/EXIT
- SA1 CODE INDEX INTO HEADER POINTER TABLE
- SA1 X1+HDRB
- BX0 X0-X0 INITIALIZE FOR LINE COUNT
- BX6 X1
- SA6 HDRA SET INDEX BASE OF HEADER MESSAGES FOR MODE
- * LOOP PRINTING HEADER MESSAGE LINES.
- HDR1 SA1 HDRA EXAMINE CURRENT MESSAGE POINTER
- SA1 X1
- ZR X1,HDR2 IF END OF HEADER MESSAGES
- SX6 A1+B1 SET NEXT MESSAGE POINTER
- SA6 HDRA
- SX0 X0+B1 INCREMENT LINE COUNT
- WRITEC O,X1
- EQ HDR1 CONTINUE LOOP
- * COMPLETE HEADER PROCESSING.
- HDR2 WRITEC O,BLNK
- WRITEC O,BLNK
- SA1 LINE INCREMENT LINE COUNT
- IX6 X1+X0
- SX6 X6+2
- SA6 A1
- EQ HDRX RETURN
- * HEADER MESSAGE BASE POINTERS.
- HDRA CON 0
- HDRB CON HDRC,HDRD,HDRE,HDRF,HDRG,HDRH
- * HEADER MESSAGE POINTERS.
- HDRC CON HDRI SHORT FILE LIST
- CON 0
- HDRD CON FCEY FULL FILE LIST
- CON FCEU
- CON 0
- CON 0
- HDRE CON HDRI SHORT ALTERNATE CATALOG
- CON 0
- HDRF CON FCEZ FULL ALTERNATE CATALOG
- CON FCES
- CON 0
- CON 0
- HDRG CON HDRJ SHORT ADMIT ENTRIES
- CON 0
- HDRH CON HDRK FULL ADMIT ENTRIES
- CON 0
- ** HEADERS
- HDRI DATA C* TAPE FILE NAME(S)*
- HDRJ DATA C* USER NAME(S)*
- HDRK DATA C* USER NAME MODE ACCESSES DATE TIME*
- CON 0
- IDF SPACE 4,15
- ** IDF - ISSUE DAYFILE MESSAGE.
- *
- * ENTRY (CCDR) COMMAND IMAGE.
- *
- * EXIT DAYFILE MESSAGE ISSUED.
- *
- * USES A - 1, 4, 5.
- * B - 2, 6.
- * X - 0, 1, 2, 4, 5.
- *
- * CALLS RSP.
- *
- * MACROS MESSAGE, MOVE.
- IDF SUBR ENTRY/EXIT
- MOVE 8,CCDR,IDFA
- SA4 RSP1$ FWA ARGUMENT TABLE
- SB6 RSP2$ FWA KEYWORD/POSITION TABLE
- SA5 IDFA FWA OF RELOCATED COMMAND
- SB2 1R, SKIP TO *,*
- RJ RSP REMOVE SECURE PARAMETERS
- MESSAGE IDFA,0,R ISSUE COMMAND TO DAYFILE
- SA1 JOPR
- LX1 -24
- MX0 -12
- BX1 -X0*X1
- SX2 X1-IAOT
- NZ X2,IDFX IF NOT AN INTERACTIVE JOB
- MESSAGE IDFB,1 CLEAR LINE 1 OF CPA
- EQ IDFX RETURN
- IDFA BSS 8 SECURE PARAMETER BUFFER
- IDFB CON 0 ZERO WORD
- MCS SPACE 4,25
- ** MCS - MOVE CHARACTER STRING.
- *
- * ENTRY (X1) = FIRST DIRECTIVE.
- * (A1) = LOCATION OF FIRST DIRECTIVE.
- *
- * THE CHARACTER STRING TO BE MOVED IS SPECIFIED VIA A
- * DIRECTIVE. THE CONTENT OF A DIRECTIVE HAS THE FOLLOWING
- * FORMAT:
- *
- * BITS 59 - 48 - N
- * BITS 47 - 30 - INPUT WORD LOCATION
- * BITS 29 - 24 - INPUT CHARACTER POSITION (1,2,...,10)
- * BITS 23 - 18 - OUTPUT CHARACTER POSITION (1,2,...,63)
- * BITS 17 - 0 - OUTPUT WORD LOCATION
- *
- * ADDITIONAL CHARACTER STRINGS MAY BE MOVED BY PROVIDING
- * ADDITIONAL DIRECTIVES. A ZERO-WORD TERMINATES THE LIST
- * OF DIRECTIVES. IF THE INDICATED OUTPUT CHARACTER
- * INDEX IS GREATER THAN 10 THE OUTPUT WORD LOCATION
- * IS AUTOMATICALLY ADJUSTED.
- *
- * EXIT SPECIFIED CHARACTER STRING IS MOVED.
- *
- * USES A - 1, 2, 3, 6.
- * B - 1, 2, 3, 4, 5, 6, 7.
- * X - 0, 1, 2, 3, 4, 6, 7.
- MCS SUBR ENTRY/EXIT
- MX0 -6 7777 7777 7777 7777 7700
- MX7 -18 7777 7777 7777 7700 0000
- SB1 1
- MCS1 SX3 6
- SB2 60
- ZR X1,MCS IF END OF DIRECTIVE LIST
- SB7 X1 SET B7 = DESTINATION WORD LOCATION
- AX1 18
- BX2 -X0*X1
- IX2 X2*X3
- SB5 X2
- MCS2 SB5 B5-B2 ADJUST DESTINATION CHARACTER POSITION
- SB7 B7+B1
- NG B5,MCS3 IF ADJUSTED
- ZR B5,MCS3 IF ADJUSTED
- EQ MCS2 CONTINUE
- MCS3 SB5 B5+B2
- SB7 B7-B1
- SB5 B2-B5 SET B5 = DESTINATION CHARACTER POSITION
- AX1 6
- BX2 -X0*X1
- IX2 X2*X3
- SB4 X2 SET B4 = SOURCE CHARACTER POSITION
- AX1 6
- SB6 X1 SET B6 = SOURCE WORD LOCATION
- AX1 18
- MX7 60-12
- BX2 -X7*X1
- SB3 X2+B1 SET B3 = N+1
- SA1 A1+B1 GET NEXT MOVE DIRECTIVE
- MCS4 SB3 B3-B1 DECREMENT N
- ZR B3,MCS1 IF N=0 GET NEXT MOVE DIRECTIVE
- SA2 B6 GET SOURCE WORD
- LX2 X2,B4 POSITION CHARACTER TO LOW ORDER
- BX2 -X0*X2 EXTRACT CHARACTER
- SB4 B4+6 INCREMENT SOURCE CHARACTER POSITION
- SB2 B4-66
- NZ B2,MCS5 IF SAME WORD
- SB4 6 RESET SOURCE CHARACTER POSITION
- SB6 B6+B1 INCREMENT SOURCE WORD LOCATION
- MCS5 SA3 B7 GET DESTINATION WORD
- LX2 X2,B5 POSITION NEW CHARACTER
- LX4 X0,B5 POSITION MASK
- BX3 X4*X3 ERASE OLD CHARACTER
- BX6 X2+X3 INSERT NEW CHARACTER
- SA6 B7 STORE DESTINATION WORD
- SB5 B5-6 DECREMENT DESTINATION CHARACTER POSITION
- PL B5,MCS4 IF SAME WORD
- SB5 54 RESET DESTINATION CHARACTER POSITION
- SB7 B7+B1 INCREMENT DESTINATION WORD LOCATION
- EQ MCS4 CONTINUE MOVE
- PCK SPACE 4,25
- ** PCK - PACK FILE IDENTIFIER (17 CHARACTERS).
- *
- * PCK PICKS UP THE FIRST WORD OF THE FILE IDENTIFIER FROM
- * THE *USB* TABLE. THE FIRST CHARACTER POSITION OF THIS
- * WORD IS STORED IN SAVE. PCK STORES THE TWO WORD FILE
- * IDENTIFIER IN THE STORAGE AREA SPECIFIED BY A5.
- *
- * ENTRY SAVE- FIRST CHARACTER POSITION OF FILENAM.
- * B3 - CURRENT EMPTY POSITION OF TFIN.
- * X6 - LAST WORD OF FILENAME AS RETURNED FROM *POP*.
- * A5 - ADDRESS OF STORAGE AREA
- *
- * EXIT B3 IS INCREMENTED BY ONE WORD AND THE TWO-WORD
- * FILENAME HAS BEEN STORED.
- *
- * USES A - 1, 3, 4, 6, 7.
- * B - 2, 3, 4.
- * X - 1, 3, 4, 6, 7.
- *
- * CALLS SFN.
- PCK5 SA1 PCKB
- PCK SUBR ENTRY/EXIT
- BX7 X1 SAVE DELIMITER
- SA7 PCKB
- GT B5,B1,ERR IF FILENAME .GT. 2 WORDS
- NZ X6,PCK1 IF FILENAME .NE. 20 CHARACTERS
- NZ B5,ERR IF FILENAME .EQ. 20 CHARACTERS
- PCK1 SB2 54D
- BX7 X7-X7
- SB4 B0
- SA4 SAVE
- SA3 PCKD CHECK FOR LITERAL
- SA1 X4
- BX3 X3-X1
- NZ X3,PCK2 IF NOT LITERAL
- SX4 X4+1
- PCK2 ZR X6,PCK3 IF FILENAME .GE. 10 CHARACTERS
- ZR B5,PCK4 IF FILENAME .LT. 10 CHARACTERS
- PCK3 SA3 X4+B4
- LX3 B2
- BX7 X3+X7
- SB2 B2-6
- SB4 B4+B1
- NZ B2,PCK3 IF 10 CHARACTERS NOT YET PACKED
- SA3 X4+B4
- BX7 X3+X7
- SA7 A5+B3
- SB3 B3+B1
- MX0 42
- BX3 -X0*X6
- NZ X3,ERR8
- BX1 X6
- RJ SFN SPACE FILL NAME
- SA6 A5+B3
- EQ PCK5 RESTORE DELIMITER WORD AND RETURN
- PCK4 BX1 X6
- RJ SFN SPACE FILL NAME
- SA6 A5+B3
- SB3 B3+B1
- SA1 PCKA
- BX6 X1
- SA6 A5+B3
- EQ PCK5 RESTORE DELIMITER WORD AND RETURN
- PCKA CON 10L
- PCKB CON 0 STORAGE FOR DELIMITER
- PCKD CON 1R$ LITERAL DESIGNATOR
- PVS SPACE 4,20
- ** PVS - PAD VSN WITH CHARACTER *0*.
- *
- * ENTRY (X6) = LEFT JUSTIFIED UNPADDED VSN.
- *
- * EXIT (X6) = PADDED VSN. CHARACTER *0* INSERTED
- * BEFORE FIRST NUMERIC CHARACTER UNTIL
- * VSN IS SIX CHARACTERS LONG.
- *
- * USES A - 1, 3.
- * B - 2, 3.
- * X - 0, 1, 2, 3, 4, 6, 7.
- PVS SUBR ENTRY/EXIT
- SA3 =1L
- MX0 6 GET LENGTH OF UNPADDED VSN
- BX2 X6
- SX4 B0
- PVS1 BX1 X0*X6 CHECK FOR CHARACTER
- BX7 X1-X3
- ZR X7,PVS2 IF CHARACTER IS A BLANK
- ZR X1,PVS2 IF END OF CHARACTERS
- SX4 X4+B1
- LX6 6
- EQ PVS1 CONTINUE
- PVS2 SX1 6 GET CORRECT NUMBER OF ZEROS
- IX4 X1*X4
- SB2 X4
- SB3 B2-6 SET UP MASK
- AX0 B3,X0
- BX2 X0*X2
- SA1 =36R000000
- AX1 B2
- SB3 60
- MX0 -6
- SX6 B0
- PVS3 BX7 X2 SAVE END OF VSN
- LX2 6 CHECK CHARACTER
- BX3 -X0*X2
- ZR X3,PVS4 IF END OF CHARACTERS
- SX4 X3-1R0
- PL X4,PVS4 IF NUMERIC CHARACTER
- LX6 6 BUILD FIRST PART OF VSN
- BX6 X6+X3
- BX2 X0*X2
- SB3 B3-6
- EQ PVS3 CHECK NEXT CHARACTER
- PVS4 SB2 B2-36 ADD ZEROS TO VSN
- AX6 B2
- BX6 X6+X1
- BX6 X6+X7 ADD END OF VSN
- SB3 B3+B2
- LX6 B3
- EQ PVSX RETURN
- PVT SPACE 4,25
- ** PVT - PROCESS *VSN* OR *TFN* LIST.
- *
- * ENTRY B6 - NEXT CHARACTER POSITION OF *USB* BUFFER
- *
- * EXIT VSN(S) OR TFN(S) ARE STORED IN *TFIN*.
- *
- * USES A - 3, 5, 6.
- * B - 3, 7.
- * X - 3, 5, 6.
- *
- * CALLS PCK, POP.
- *
- PVT SUBR ENTRY/EXIT
- RJ POP PICK OUT NEXT WORD
- NG B5,ERR IF ERROR ENCOUNTERED
- PVT1 SA3 INDX
- SB3 X3
- SB7 TFINL
- EQ B3,B7,ERR9 EXCEEDED FILENAME LIMIT
- SA5 TFIN
- RJ PCK STORE FILENAME
- SX6 B3+B1
- SA6 INDX
- NG X2,PVTX IF NO MORE ARGUMENTS
- SB3 X1-1R, CHECK FOR COMMAS
- NZ B3,PVTX IF END OF FILE NAME LIST
- SX6 B6
- SA6 SAVE
- RJ POP PICK OUT NEXT PARAMETER
- NG B5,ERR8 IF ERROR ENCOUNTERED
- EQ PVT1
- PTP SPACE 4,25
- ** PTP - PRINT TITLE PAGE.
- *
- * ENTRY (PAGE) = PAGE NUMBER
- *
- * EXIT TITLE PAGE PRINTED
- * (LINE) RESET TO 2.
- *
- * USES A - 1, 6.
- * B - 2.
- * X - 0, 1, 6.
- *
- * CALLS CDD.
- *
- * MACROS CLOCK, DATE, WRITEC, WRITEH.
- PTP SUBR ENTRY/EXIT
- SA1 PAGE ADVANCE TO NEXT PAGE
- SX1 X1+B1
- BX6 X1
- SA6 A1
- RJ CDD CONVERT TO DECIMAL
- MX0 48
- BX6 -X0*X6
- SA1 PTPG
- BX1 X0*X1
- BX6 X1+X6
- SA6 PTPG
- DATE PTPE
- CLOCK PTPF
- SB2 6 FOR TELEX ORIGIN JOBS
- SA1 DTYP
- ZR X1,PTP1 IF TERMINAL FILE
- WRITEH O,PTPA,B1
- SB2 7 FOR NON-TELEX ORIGIN JOBS
- PTP1 WRITEH O,PTPB,B2+ WRITE TITLE LINE
- SA1 PTPH WRITE SUB TITLE
- WRITEC O,X1
- SX6 3 RESET LINE NUMBER
- SA6 LINE
- EQ PTPX RETURN
- PTPA CON 1H1
- PTPB CON 10H CATALOG O
- PTPC CON 0
- PTPD CON 10H
- CON 10H
- PTPE CON 0
- PTPF CON 0
- PTPG DATA 8L PAGE
- PTPH CON BLNK
- PTPI CON 1H
- CON 10HFILE NAME
- PTPJ BSSZ 2
- PTPK CON 1H
- CON 10HALTERNATE
- CON 10HCATALOG
- PTPL CON 0
- RQS SPACE 4,25
- ** RQS - REQUEST STORAGE.
- *
- * ENTRY (X1) = CURRENT BUFFER SIZE.
- *
- * EXIT (X1) = NEGATIVE IF NO MORE STORAGE AVAILABLE.
- * (CFL) = NEW CURRENT FL.
- * (CBS) = NEW CURRENT BUFFER SIZE.
- *
- * USES X - 1, 3, 6.
- * A - 1, 3, 6.
- *
- * MACROS MEMORY.
- RQS SUBR ENTRY/EXIT
- SA3 MXBS GET MAXIMUM BUFFER SIZE
- SX6 X1+FLIN ADD POSSIBLE INCREMENT
- IX1 X3-X6
- NG X1,RQSX IF NO MORE SPACE
- SA3 CRFL SET POSSIBLE NEW FL
- SX6 X3+FLIN
- SA6 A3
- LX6 30
- SA6 RQSA
- MEMORY CM,RQSA,R,,NA
- SA3 RQSA
- SA1 CRFL
- AX3 30
- IX1 X3-X1
- NG X1,RQSX IF NO MORE ALLOCATED
- SA1 CSBS UPDATE CURRENT SORT BUFFER SIZE
- SX6 X1+FLIN
- SA6 A1
- EQ RQSX RETURN
- RQSA CON 0 FL CONTROL WORD
- SEC SPACE 4,15
- ** SEC - SHORT LIST ERROR CHECK
- *
- * THIS ROUTINE CHECKS FOR OFF-SITE STATUS, NOT RESERVED
- * STATUS, CATALOG IN RECOVERED MODE, AND CATALOG ERROR
- * SET. THIS ROUTINE IS CALLED BY *SFL* AND *SSL* TO CHECK
- * FOR THESE ERRORS.
- *
- * ENTRY SHORT LIST FLAG SET AND BUFFER FILLED.
- *
- * EXIT (X2) = (CBUF+CEST)
- * (X5) = FILE NAME MASK.
- *
- * USES A - 2.
- * X - 1.
- *
- SEC SUBR ENTRY/EXIT
- MX5 60 PRESET SPECIAL CONDITION FLAG
- SA2 CBUF+TCEL+1
- MX1 -18
- BX2 -X1*X2
- SX1 TVVS CHECK SITE STATUS
- BX1 X2*X1
- ZR X1,SEC1 IF SITE NOT SET SKIP
- MX5 -6
- SA2 CBUF+CEST GET STATUS
- EQ SECX RETURN
- SEC1 SX1 RTVS CHECK RESERVE STATUS
- BX1 X2*X1
- NZ X1,SEC2 IF RESERVE SET SKIP
- MX5 -6
- SA2 CBUF+CEST GET STATUS
- EQ SECX RETURN
- SEC2 SA2 CBUF+CEST GET STATUS
- SX1 2000B
- BX1 X1*X2
- ZR X1,SEC3 IF RECOVER NOT SET
- MX5 -6
- EQ SECX RETURN
- SEC3 SX1 2
- BX1 X1*X2
- ZR X1,SECX IF ERROR NOT SET
- MX5 -6
- EQ SECX RETURN
- SST SPACE 4,15
- ** SST - SHELL SORT TABLE.
- *
- * SST SORTS A TABLE USING A SHELL SORTING TECHNIQUE.
- * THE TABLE IS SORTED IN PLACE INTO ASCENDING ORDER.
- * ALL ELEMENTS SHOULD BE OF THE SAME SIGN.
- *
- * ORIGIN OF TECHNIQUE IS CACM VOL 6 NUMBER 5 MAY 1963, P209.
- * FIRST CODED BY R. HOTCHKISS IN *SORT1*.
- * REVISED BY L. A. LIDDIARD.
- * REVISED BY L. A. GILBERTSON, FOR 17 CHAR. WORD.
- *
- * ENTRY (B1) = 1.
- * (B7) = ADDRESS OF TABLE TO BE SORTED.
- * (X1) = NUMBER OF WORDS IN ARRAY.
- *
- * EXIT TABLE SORTED.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * B - 2, 3, 4, 5.
- * A - 1, 2, 6, 7.
- *
- * CALLS NONE.
- SST1 SA7 B5-B4 T(J+K) = S
- BX7 X5
- SA7 A7+B1
- SB2 B2+2 I = I+2
- EQ B2,B3,SST4 IF END OF TABLE
- SST2 SA2 B2 S = T(I)
- SA5 B2+B1
- SB5 B2+B4 J = I-K
- BX7 X2
- SST3 SA1 B5 T(J)
- IX3 X2-X1 COMPARE S AND T(J)
- PL X3,SST1 IF ELEMENTS IN ORDER
- BX6 X1 T(J+K) = T(J)
- SB5 B5+B4 J = J-K
- SA6 A1-B4
- SA1 A1+B1
- BX6 X1
- SA6 A1-B4
- GE B5,B7,SST3 IF J " FIRST
- EQ SST1 MOVE ELEMENT
- SST4 AX4 1 K = K/2
- MX0 -1
- BX4 -X0+X4
- SX3 X4+1
- NZ X3,SST5
- SB4 B0
- EQ SST6
- SST5 SB4 X4 (B4) = -K
- SST6 SB2 B7-B4 I = FIRST+K
- NZ X4,SST2 IF K " 0
- SST SUBR ENTRY/EXIT
- SB3 B7+X1 (B3) = LAST+1
- BX4 -X1
- EQ SST4 ENTER SORT LOOP
- SVM SPACE 4,25
- *** SVM - SET VARIABLE MESSAGE
- *
- * SVM SETS THE VARIABLE AUDIT MESSAGE *XXX FOUND*.
- *
- * ENTRY ADTA = CONTAINS THE NAME, ZERO FILLED.
- *
- * EXIT ADTA CONTAINS THE MESSAGE.
- *
- * USES A - 1.
- * X - 0, 1, 2.
- * B - 2, 3, 4, 5.
- *
- * CALLS NONE.
- *
- * MACROS XFER.
- SVM SUBR ENTRY/EXIT
- MX0 -6
- SB2 B0 WORD COUNT
- SB3 B0 CHARACTER COUNT
- SB4 10D MAXIMUM CHARACTERS
- SA1 ADTA+B1
- ZR X1,SVM1 IF NAME .LE. 10 CHARACTERS
- SB2 B1
- SVM1 SA1 ADTA+B2
- BX2 -X0*X1
- LX0 6
- SB3 B3+B1
- EQ B3,B4,SVM2 IF 10 CHARACTERS PROCESSED
- ZR X2,SVM1 IF ZERO CHARACTER
- NE B1,B3,SVM2 IF NOT AT A WORD BOUNDARY
- SB2 B2+B1 INCREMENT WORD COUNT OFFSET
- SB3 B4+B1 SET ZERO CHARACTER COUNT OFFSET
- SVM2 SB5 B4-B3 SHIFT COUNT
- SB5 B5+B1
- XFER SVMF,ADTA+B2,0,B5,7,7
- EQ SVMX
- SVMF CON 7L FOUND.
- XFR SPACE 4,25
- *** XFR - TRANSFER/VALIDATE CHARACTER STRING.
- *
- * *XFR* PERFORMS A CHARACTER STRING TRANSFER AND VALIDATES
- * EACH CHARACTER MOVED ACCORDING TO THE SETTINGS OF THE
- * VALIDATION FLAGS OF THE SOURCE CONTROL WORD. THE TRANSFER
- * CAN BEGIN AT ANY CHARACTER OF THE SOURCE AND OBJECT FIELDS
- * AND WILL CONTINUE UNTIL *XCC* CHARACTERS OF THE SOURCE
- * HAVE BEEN TRANSFERRED. THE DISPOSITION OF THE LAST OBJECT
- * WORD IS SPACE FILLED IF *XCC* OF THE SOURCE FIELD IS
- * LESS THEN *XCC* OF THE OBJECT FIELD. THE SOURCE CHARACTER
- * STRING WILL BE TRUNCATED IF THE *XCC* OF THE OBJECT IS
- * LESS THEN *XCC* OF THE SOURCE. THE ROUTINE WILL NOT
- * DESTROY ANY OF THE EXISTING INFORMATION OUTSIDE OF THE
- * DEFINED RANGE OF THE TRANSFER.
- *
- * ENTRY (X1) = SOURCE CONTROL WORD.
- * (X2) = OBJECT CONTROL WORD.
- *
- * EXIT (X1) = 0 IF NO ERRORS.
- * (X1) NOT = 0 IF ERRORS.
- *
- * CONTROL WORD FORMAT.
- *
- * VFD 12/0,18/FWA,3/FLG,9/BWP,9/BCP,9/XCC
- *
- * FWA FIRST WORD ADDRESS OF BUFFER.
- * FLG VALIDATION FLAG.
- * 2 VALIDATE NUMERIC CHARACTERS.
- * 4 VALIDATE ALPHABETIC CHARACTERS.
- * 6 VALIDATE ALPA/NUMERIC CHARACTERS.
- * 7 NO VALIDATION.
- * BWP BEGINNING WORD POSITION IN FWA.
- * BCP BEGINNING CHARACTER POSITION IN BWP.
- * XCC TRANSFER CHARACTER COUNT.
- *
- * USES A - 1, 2, 3, 4, 5, 6.
- * X - ALL.
- * B - ALL.
- *
- XFR12 SB4 B7-B4 REMAINING SHIFT COUNT
- LX6 X2,B4 REALIGN LAST WORD
- BX1 X6
- RJ SFN SPACE FILL NAME
- SA6 A2 STORE LAST OBJECT WORD
- ZR X4,XFRX IF NO VALIDATION CHECK
- NG X5,XFRX IF NOT DATA TRANSFER ERROR
- SX1 B1+ SET ERROR FLAG
- XFR SUBR ENTRY/EXIT
- MX0 -9
- BX6 -X0*X1 SOURCE CHARACTER COUNT
- AX1 9
- BX7 -X0*X2 OBJECT CHARACTER COUNT
- SB2 X6 (B2) = SOURCE CHARACTER COUNT
- AX2 9
- IX6 X7-X6
- SB3 X6
- GT B3,XFR0 IF SOURCE < OR = OBJECT
- SX6 B0
- SB2 X7 SOURCE = OBJECT CHARACTER COUNT
- XFR0 SA6 XFRA OBJECT OVERFLOW COUNT
- BX3 -X0*X1
- SB3 X3 (B3)= SOURCE BCP
- AX1 9
- BX3 -X0*X2
- SB4 X3 (B4)= OBJECT BCP
- AX2 9
- BX3 -X0*X1
- SB5 X3 (B5)= SOURCE BWP
- AX1 9
- BX3 -X0*X2
- SB6 X3 (B6)= OBJECT BWP
- BX3 X1
- LX3 59-2
- MX4 0
- PL X3,XFR1 IF NOT ALPHANUMERIC FORMAT
- SA4 XFRB GET ALPHANUMERIC VALIDATION WORD
- XFR1 SA5 XFRC GET NUMERIC VALIDATION WORD.
- LX3 59-58
- PL X3,XFR2 IF NOT NUMERIC FORMAT
- BX4 X4+X5
- XFR2 LX3 59-57-59+58
- PL X3,XFR3 IF NO SPECIAL CHARACTERS ALLOWED
- MX4 60
- XFR3 MX0 -18
- AX1 3
- BX1 -X0*X1
- SA1 X1+B5 (A1)= SOURCE FWA
- AX2 12
- BX2 -X0*X2
- SX6 6 CHARACTER COUNT MULTIPLIER
- SA2 X2+B6 (A2)= OBJECT FWA
- SX7 B3 SOURCE CHARACTER POSITION
- IX7 X6*X7
- SB3 X7 RESET (B3)
- SX7 B4 OBJECT CHARACTER POSITION
- IX7 X6*X7
- SB4 X7 RESET (B4)
- LX1 X1,B3 ALIGN TO FIRST CHARACTER(SOURCE)
- LX2 X2,B4 ALIGN TO FIRST CHARACTER(OBJECT)
- MX0 6 CHARACTER MASK
- SB7 60 SHIFT LIMIT
- XFR4 BX3 X0*X1 SAVE UPPER 6 BITS OF SOURCE
- ZR X4,XFR5 IF NO VALIDATION CHECK
- SB5 6
- LX5 X3,B5
- SB5 X5
- LX5 X4,B5
- PL X5,XFR9 IF INCORRECT CHARACTER
- XFR5 BX2 -X0*X2 CLEAR UPPER 6 BITS OF OBJECT
- BX2 X2+X3 MASK INTO OBJECT WORD
- LX1 59-53
- SB3 B3+6
- EQ B3,B7,XFR7 IF SOURCE SHIFT LIMIT
- XFR6 LX2 59-53
- SB4 B4+6
- SB2 B2-B1
- ZR B2,XFR9 IF LAST CHARACTER TRANSFERRED
- EQ B4,B7,XFR8 IF OBJECT SHIFT LIMIT
- EQ XFR4 GET NEXT CHARACTER
- XFR7 SA1 A1+B1 GET NEXT SOURCE WORD
- SB3 B0 CLEAR SOURCE BCP
- EQ XFR6 CHECK OBJECT SHIFT LIMIT
- XFR8 BX6 X2
- SA6 A2 STORE OBJECT WORD
- SA2 A2+B1 GET NEXT OBJECT WORD
- SB4 B0 CLEAR OBJECT BCP
- EQ XFR4 GET NEXT CHARACTER
- XFR9 SA3 XFRA CHECK FOR UNDERFLOW
- SB2 X3+0 (B2) = UNDERFLOW COUNTER
- SX3 1R
- SX1 B0
- LX3 59-5
- XFR10 ZR B2,XFR12 IF LAST FILL CHARACTER
- EQ B4,B7,XFR11 IF OBJECT SHIFT LIMIT
- BX2 -X0*X2
- SB4 B4+6
- BX2 X2+X3 MASK IN SPACE
- SB2 B2-B1
- LX2 59-53
- EQ XFR10 SPACE FILL NEXT CHARACTER
- XFR11 BX6 X2
- SA6 A2 STORE OBJECT WORD
- SB4 B0 CLEAR OBJECT BCP
- SA2 A2+B1 GET NEXT OBJECT WORD
- EQ XFR10 GET NEXT CHARACTER
- * *XFRB* AND *XFRC* ARE THE ALPHABETIC AND NUMERIC VALIDATION
- * WORDS. EACH BIT SET CORRESPONDS TO THE NUMERICAL DISPLAY
- * CODE VALUE FOR EACH VALID CHARACTER. EACH CHARACTER CAN BE
- * TESTED BY SHIFTING THE VALIDATION WORD LEFT BY THE DISPLAY
- * CODE VALUE AND TESTING FOR THE BIT BEING SET.
- * *XFRB* HAS BEEN PRESET FOR A - Z AND *SPACE*.
- * *XFRC* HAS BEEN PRESET FOR 0 - 9.
- XFRA CON 0 OVERFLOW COUNTER
- XFRB DATA 37777777700000040000B
- XFRC DATA 00000000077760000000B
- ZFD SPACE 4,15
- ** ZFD - DISPLAY CODE ZERO FILL WORD. (EXTRACTED FROM PFTRACK)
- *
- * ENTRY (X6) = WORD WITH BINARY ZEROES.
- *
- * EXIT (X6) = WORD WITH REPLACED DISPLAY CODE ZEROES
- *
- * USES X - 0, 2, 3, 4, 5, 6.
- ZFD SUBR ENTRY/EXIT
- BX3 X6
- SX2 12B
- MX0 -6
- ZFD1 BX5 -X0*X3
- ZR X5,ZFD3 IF BINARY ZERO
- LX3 54
- ZFD2 SX2 X2-1 DECREMENT CHARACTER COUNT
- NZ X2,ZFD1 IF NOT DONE WITH WORD
- BX6 X3
- EQ ZFDX RETURN
- ZFD3 BX3 X0*X3
- SX4 33B
- BX3 X4+X3
- LX3 54
- EQ ZFD2 CONTINUE CONVERSION
- SPACE 4
- *CALL COMCARM
- *CALL COMCCDD
- *CALL COMCCIO
- *CALL COMCCPM
- *CALL COMCEDT
- *CALL COMCMVE
- *CALL COMCPOP
- *CALL COMCRSP
- *CALL COMCSCB
- *CALL COMCSFN
- *CALL COMCSNM
- *CALL COMCSTF
- *CALL COMCSYS
- *CALL COMCUSB
- *CALL COMCWTC
- *CALL COMCWTH
- *CALL COMCWTW
- SPACE 4
- ** BUFFERS.
- USE LITERALS
- LBUF EQU * OUTPUT LINE BUFFER
- CBUF EQU LBUF+CHDR*NWRD CATALOG READ BUFFER
- IBUF EQU CBUF+301D INPUT BUFFER
- OBUF EQU IBUF+IBFL OUTPUT BUFFER
- SBUF EQU OBUF+OBFL CATALOG SORT BUFFER
- RFL= EQU SBUF+SBFL DEFAULT FL
- PMSG BSS 0
- DATA 10H"EM" PASSWO
- DATA 10HRD:"NL" HHH
- DATA 10HHHHHH"CR" I
- DATA 10HIIIIIII"CR"
- DATA 10H ########
- DATA 10H"CR""CB""EL"''''
- PMSGL EQU *-PMSG
- END
cdc/nos2.source/opl871/tfiles.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator