cdc:nos2.source:opl871:enquire
Table of Contents
ENQUIRE
Table Of Contents
- [00011] ENQUIRE - ENQUIRE PROCESSOR.
- [00124] MACRO DEFINITION.
- [00126] INDEX - INDEX TABLE ENTRY GENERATION.
- [00154] LDEF - LINE DEFINITION ENTRY GENERATION.
- [00170] TABLE - GENERATE TABLE ENTRY.
- [00185] PROGRAM CONSTANTS.
- [00556] MAIN LOOP.
- [01567] JSN= OPTION.
- [01569] PEJ - PROCESS EQUIVALENCED JSN PARAMETER.
- [01848] JSN OPTION.
- [01850] PJS - PROCESS JSN PARAMETER.
- [01960] UJN OPTION.
- [01962] PUJ - PROCESS UJN PARAMETER.
- [02107] SUBROUTINES.
- [02109] BFB - BLANK FILL STRING BUFFER.
- [02128] CFP - CHECK FOR END OF PAGE.
- [02172] CIH - COMPUTE USER INDEX HASH.
- [02211] CLM - CHECK AND CONVERT LIMIT.
- [02241] CSD - CONVERT TO SIGNED DISPLAY CODE.
- [02275] CSR - CONVERT SRU-S.
- [02302] DTT - DETERMINE TIME UNTIL TIMEOUT.
- [02342] ESB - ENTER DATA INTO STRING BUFFER.
- [02376] GCS - GET CONNECTION STATUS.
- [02408] GDR - GET DESTINATION ROUTING.
- [02433] GJS - GET JOB STATUS.
- [02481] GSC - GET SERVICE CLASS.
- [02514] IPR - ISSUE PEEK REQUEST.
- [02560] ISM - ISSUE MESSAGE.
- [02598] LST - PROCESS FILE LENGTH, STATUS AND TYPE.
- [02724] PSE - PROCESS SYSTEM ERROR.
- [02738] RRB - RESET *QAC* REQUEST BUFFER.
- [02787] WCL - WRITE DISPLAY CODED LINES.
- [02860] WML - WRITE MESSAGE LINE.
- [02922] BUFFER.
- [02937] PRESET.
- [02970] PRS - PRESET SUBROUTINE.
- [03172] SAL - SET ALL OPTIONS.
Source Code
- ENQUIRE.txt
- IDENT ENQUIRE,STR,ENQUIRE
- ABS
- SST
- SYSCOM B1
- ENTRY ENQUIRE
- ENTRY LENGTH
- ENTRY STATUS
- ENTRY RFL=
- ENTRY SSJ=
- ENTRY SSM=
- TITLE ENQUIRE - ENQUIRE PROCESSOR.
- SPACE 4,10
- *COMMENT ENQUIRE - ENQUIRE ABOUT JOB STATUS.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- **** ENQUIRE - PROVIDE JOB STATUS.
- * L. CLINTON 74/01/23.
- * D. D. SADLER 75/02/18.
- SPACE 4,10
- *** COMMAND FORMATS.
- *
- * ENQUIRE(O=LFN1,FN=LFN2,OP=X)
- * ENQUIRE(JSN=AAAA,O=LFN1)
- * ENQUIRE(JSN,O=LFN1)
- * ENQUIRE(UJN=BBBBBBB,O=LFN1)
- * ENQUIRE(UJN,O=LFN1)
- * ENQUIRE. - SAME AS ENQUIRE(OP=A).
- *
- * LENGTH(LFN2) - SAME AS ENQUIRE(FN=LFN2).
- *
- * STATUS(...) - SAME AS ENQUIRE(...).
- * STATUS. - SAME AS ENQUIRE.
- *
- * PARAMETERS ARE ORDER-INDEPENDENT, AND ABSENCE OF
- * A KEYWORD IMPLIES *OP*.
- *
- * LFN1 = OUTPUT FILE NAME. DEFAULT IS *OUTPUT*.
- *
- * LFN2 = USER-S FILE NAME TO SEARCH FOR.
- *
- * AAAA = JOB SEQUENCE NUMBER (JSN) TO SEARCH FOR.
- *
- * BBBBBBB = USER JOB NAME (UJN) TO SEARCH FOR.
- *
- * FOR THE *FN*, *JSN*, AND *UJN* PARAMETERS, WHEN THE
- * SPECIFIED FILE OR JOB IS NOT FOUND, AN INFORMATIVE
- * MESSAGE IS WRITTEN TO THE OUTPUT FILE IF IT IS
- * ASSIGNED TO A TERMINAL. OTHERWISE THE MESSAGE IS
- * WRITTEN TO THE USER-S DAYFILE.
- *
- * X = STRING OF CONCATENATED OPTION LETTERS SPECIFYING OPTIONS
- * TO BE EXECUTED. THE MAXIMUM NUMBER OF LETTERS IN THE
- * STRING IS 7. ENQUIRY INFORMATION IS RETURNED TO THE
- * OUTPUT FILE.
- *
- * THE POSSIBLE OPTION LETTERS ARE-
- * A = SELECTION OF ALL OPTIONS.
- * B = ENQUIRY INFORMATION GIVES USER IDENTIFICATION
- * AND HIS PRIORITIES.
- * D = ENQUIRY INFORMATION GIVES RESOURCE DEMAND AND
- * ASSIGNED COUNTS.
- * F = ENQUIRY INFORMATION IS IN SAME FORMAT AS THAT GIVEN
- * BY *FN* PARAMETER, BUT FOR ALL USER-S WORKING FILES.
- * NOTE - LENGTH VALUE DISPLAYED FOR EACH FILE
- * IS RELEVANT ONLY FOR MASS STORAGE FILES.
- * J = ENQUIRY INFORMATION GIVES CONTENTS OF USER-S
- * CONTROL REGISTERS AND ERROR FLAG REGISTER.
- * L = ENQUIRY INFORMATION GIVES LOADER INFORMATION,
- * AND CONSISTS OF USER-S MAP OPTIONS AND GLOBAL
- * LIBRARY SET.
- * R = ENQUIRY INFORMATION GIVES AMOUNT OF RESOURCES
- * USER HAS USED.
- * S = ENQUIRY INFORMATION GIVES USER-S CURRENT SRU VALUE.
- * T = ENQUIRY INFORMATION GIVES USER-S CURRENT CP TIME VALUE.
- * U = ENQUIRY INFORMATION GIVES RESOURCE USAGE ALLOWED
- * USER, AND CONSISTS OF NUMBER OF DAYFILE MESSAGES,
- * JOB STEP TIME AND SRU LIMITS, ACCOUNT BLOCK SRU LIMIT,
- * COMMANDS, DISPOSED FILES, AND MASS STORAGE
- * SPACE ALLOWED.
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- * * ARGUMENT ERRORS.* = *ENQUIRE* CALL WAS NOT VALID.
- *
- * * ENQUIRE ABORTED.* = *ENQUIRE* HAS BEEN ABORTED AS A RESULT
- * OF A SYSTEM ERROR.
- *
- * * ENQUIRY COMPLETE.* = INFORMATIVE MESSAGE INDICATING THAT
- * THE ENQUIRY HAS COMPLETED.
- *
- * * FILE NOT FOUND.* = REQUESTED FILE COULD NOT BE FOUND.
- *
- * * INCORRECT OPTION X.* = OPTION *X* IS NOT DEFINED IN
- * *ENQUIRE*.
- *
- * * INCORRECT QUEUE TYPE.* = *ENQUIRE* WAS ABORTED DUE TO AN
- * INCORRECT QUEUE TYPE ERROR CODE RETURNED BY *QAC* ON A
- * PEEK REQUEST.
- *
- * * NO JOBS FOUND.* = NO JOBS WERE FOUND FOR THE USER.
- *
- * * NNNNNNN NOT FOUND.* = THE SPECIFIED JSN (JSN=NNNN)
- * OR UJN (UJN=NNNNNNN) WAS NOT FOUND.
- *
- * * QAC ERROR ENCOUNTERED.* = *ENQUIRE* WAS ABORTED DUE TO AN
- * UNEXPECTED ERROR CODE RETURNED BY *QAC*.
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCCMD
- *CALL COMCMAC
- *CALL COMSEJT
- *CALL COMSJIO
- *CALL COMSLFD
- *CALL COMSMLS
- *CALL COMSPFM
- *CALL COMSQAC
- *CALL COMSREM
- *CALL COMSRSX
- *CALL COMSSCD
- *CALL COMSSFM
- *CALL COMSSSJ
- TITLE MACRO DEFINITION.
- SPACE 4,15
- ** INDEX - INDEX TABLE ENTRY GENERATION.
- *
- * INDEX GENERATES TABLES WHICH ARE TO BE INDEXED BY VALUES
- * WHICH MAY CHANGE DUE TO ASSEMBLY MODES OR OPTIONS.
- *
- * INDEX NAME,IND,ADD
- *
- * ENTRY *NAME* = NAME OF TABLE ENTRY.
- * *IND* = INDEX AT WHICH ENTRY IS TO BE PLACED.
- * *ADD* = ADDRESS FIELD OF ENTRY GENERATION INSTRUCTION.
- PURGMAC INDEX
- MACRO INDEX,NAME,IND,ADD
- IFC NE,*NAME**
- NAME CON 0
- .1 SET NAME
- BSSZ IND-1
- ELSE
- ORG .1+IND
- IFC NE,*ADD**,2
- LOC IND
- CON ADD
- BSS 0
- ENDIF
- INDEX ENDM
- SPACE 4,10
- ** LDEF - LINE DEFINITION ENTRY GENERATION.
- *
- * LDEF WO,CL
- *
- * ENTRY WO = WORD OFFSET INTO STRING BUFFER.
- * CL = NUMBER OF CHARACTERS TO ENTER INTO STRING BUFFER.
- *
- *T 24/0, 18/WO, 18/CL
- PURGMAC LDEF
- LDEF MACRO WO,CL
- VFD 24/0,18/WO,18/CL
- LDEF ENDM
- SPACE 4,10
- ** TABLE - GENERATE TABLE ENTRY.
- *
- * TABLE A,B
- *
- * ENTRY A = NUMERIC VALUE.
- * B = NUMERIC VALUE.
- *
- *T 18/A, 24/0, 18/B
- PURGMAC TABLE
- TABLE MACRO A,B
- VFD 18/A,24/0,18/B
- TABLE ENDM
- TITLE PROGRAM CONSTANTS.
- SPACE 4,10
- ** PROGRAM CONSTANTS.
- ORG 110B
- STR BSS 0
- * SSJ CONTROL.
- SSJ= EQU SSJD SSJ= PRIVILEGES ONLY AND DROP FILES
- * BUFFER PARAMETERS.
- FBUFL EQU 1+2*MXLF+1 *GETFNT*/COMMAND BUFFER LENGTH
- OBUFL EQU 201B OUTPUT BUFFER LENGTH
- LBUFL EQU 25 LIBRARY BUFFER LENGTH
- RBUFL EQU 300B REPLY BUFFER LENGTH
- USBBL EQU 92 UNPACK STRING BUFFER LENGTH
- USBL$ EQU 1 VARIABLE LENGTH OPTION FOR UNPACK BUFFER
- WBUFL EQU 10B WORKING BUFFER LENGTH
- NCST EQU 10B COMMAND COUNT
- NUMQ EQU 6 NUMBER OF QUEUE TYPES
- TBUFL MAX LBUFL,RBUFL,WBUFL SCRATCH BUFFER LENGTH
- * PRINTER CONTROL CHARACTERS.
- PAGE DATA 1L1 PAGE EJECT
- TRPL DATA 1L- TRIPLE SPACE
- SPACE 4,10
- * STATUS MESSAGES.
- INQM DATA L*INPUT QUEUE *
- PRQM DATA L*PRINT QUEUE *
- PHQM DATA L*PUNCH QUEUE *
- PLQM DATA L*PLOT QUEUE *
- WTQM DATA L*WAIT QUEUE *
- PRSM DATA L*ROLLED *
- EXSM DATA L*EXECUTING *
- ROSM DATA L*ROLLED *
- SISM DATA L*SCP ROLLIN *
- SOSM DATA L*SCP ROLLOUT *
- TOSM DATA L*T/E ROLLOUT *
- IOSM DATA L*ROLLED *
- DOSM DATA L*IDLE *
- SUSM DATA L*SUSP XXX MIN*
- PCSM DATA L*PCP ROLLOUT *
- ERSM DATA L*ROLLOUT ERROR*
- SWSM DATA L*SERVICE WAIT *
- SPACE 4,10
- * ERROR MESSAGES.
- EMSA DATA L* ENQUIRE ABORTED.*
- EMSB DATA L* INCORRECT QUEUE TYPE. *
- EMSC DATA L* NO JOBS FOUND.*
- EMSD DATA L* NOT FOUND. *
- EMSE DATA L* QAC ERROR ENCOUNTERED.*
- EMSF DATA L* ENQUIRY COMPLETE.*
- FETS SPACE 4,10
- * FETS.
- O BSS 0
- OUTPUT FILEB OBUF,OBUFL,FET=9 OUTPUT
- F BSS 0
- FILEFET RFILEB FBUF,FBUFL,FET=9 *GETFNT*/COMMAND FILE
- SPACE 4,10
- ** *QAC* PARAMETER BLOCK.
- BQAC VFD 50/0,9/PKFC,1/0 REQUEST PREFIX PORTION
- VFD 36/0,6/11,18/RBUF
- VFD 42/0,18/RBUF
- VFD 42/0,18/RBUF
- VFD 42/0,18/RBUF+RBUFL
- BQSC VFD 60/0 SELECTION CRITERIA PORTION
- VFD 60/0
- VFD 24/0,24/DLSF,12/ZPSF
- VFD 12/77B,48/0
- VFD 18/0,18/3R***,24/0
- VFD 60/0
- VFD 60/0
- BQPF VFD 60/-0 PEEK FUNCTION PORTION
- VFD 12/-0,48/0
- VFD 60/0
- VFD 60/0
- * PEEK INFORMATION BITS.
- PIUJ BSS 0 UJN PARAMETERS
- VFD 36/0
- VFD 12/LDPB+M2PB+M1PB+ESPB
- VFD 12/UJPB+FUPB+OTPB+JSPB
- PIJS BSS 0 JSN PARAMETERS
- VFD 36/0
- VFD 12/LDPB+ESPB
- VFD 12/FUPB+OTPB+JSPB
- PIEJ BSS 0 EQUIVALENCED JSN PARAMETERS
- VFD 24/0
- VFD 12/ALPB
- VFD 12/LDPB+CSPB+DYPB+ASPB+SLPB+M2PB+M1PB+ESPB+FLPB
- VFD 12/UJPB+FUPB+UNPB+PRPB+OTPB+JSPB
- SPACE 4,10
- ** RSB CONTROL WORDS.
- * CALL BLOCK TO READ CONTROL POINT AREA.
- STAT1 VFD 12/0,12/100B,18/0,18/BUFF
- VFD 24/0,18/1,18/0
- STAT2 VFD 12/0,12/100B,18/0,18/BUFF+100B
- VFD 24/0,18/1,18/100B
- SPACE 4,10
- ** MISCELLANEOUS CONTROL WORDS.
- * GETFNT CONTROL WORD.
- GFNT VFD 12/MXLF,6/0,18/0,2/0,1/1,1/1,1/1,1/0,18/FBUF
- * GETGLS CONTROL WORD.
- GGLS VFD 6/0,18/LBUF+3,36/0
- * GET PRIMARY FILE CONTROL.
- PRIM DECMIC PTFT
- GPRM VFD 12/1,24/1S"PRIM",2/0,1/1,3/5,18/FBUF
- SPACE 4,10
- ** CONSTANTS.
- ACAT CON 0 ACCESS CATEGORIES
- ALVL CON 0 ACCESS LEVEL
- FT CON 1 FILE TYPE (PRESET AS NON-TERMINAL TYPE)
- FCT CON 0 FILE COUNT
- JSNM CON 0 JOB SEQUENCE NUMBER
- LCT CON 0 LINE COUNT
- LLM CON 0 LINE LIMIT
- JPPW BSS 2 JOB PAGE PARAMETER WORD
- MXLC EQU 10 MAXIMUM LINE COUNT
- MXLL EQU 92 MAXIMUM LINE LENGTH (CHARACTERS)
- OPAL CON 0 EXECUTION FLAG WORD
- MLPY CON 0.0001P48+1 SRU CONSTANT (=.0001)
- NASV VFD 6/77B,54/0 NEGATIVE (INCORRECT) ASSUMED VALUE
- SSFL CON 0 SECURE SYSTEM FLAG
- CSFP BSSZ 1 COMMAND FILE POSITION
- UESC VFD 1/1,59/0 USER EM SHIFT COUNT
- * MULTIPLIER TO CONVERT QUARTER-NANOSECONDS TO MILLISECONDS.
- OPA DATA 0.25E-6
- * PARAMETER ENTRY TABLE.
- TAGS CON 0 OPTION
- CON 0 OUTPUT FILE NAME
- CON 0 FILE NAME TO SEARCH FOR
- CON 0 JSN PARAMETER VALUE
- CON 0 UJN PARAMETER VALUE
- * OPTION TABLE.
- OPNS VFD 6/0LA,36/0,18/0
- VFD 6/0LB,36/0,18/OPB
- VFD 6/0LD,36/0,18/OPD
- VFD 6/0LR,36/0,18/OPR
- VFD 6/0LU,36/0,18/OPU
- VFD 6/0LJ,36/0,18/OPJ
- VFD 6/0LL,36/0,18/OPL
- VFD 6/0LF,36/0,18/OPF
- VFD 6/0LT,36/0,18/OPT
- VFD 6/0LS,36/0,18/OPS
- VFD 60/0
- * EXECUTION BIT MASK FOR OPTION TABLE.
- EBIT DATA 00000000000077000000B
- SPACE 4,10
- ** SUB-SYSTEM TABLE.
- SSTB INDEX MSYS
- INDEX NULS,(0L"NULS".)
- INDEX BASS,(0L"BASS".)
- INDEX FORS,(0L"FORS".)
- INDEX FTNS,(0L"FTNS".)
- INDEX EXES,(0L"EXES".)
- INDEX BATS,(0L"BATS".)
- INDEX ACCS,(0L"ACCS".)
- INDEX MSYS
- SPACE 4,10
- ** EXTERNAL CHARACTERISTICS TABLES.
- * EXTERNAL CHARACTERISTICS QUEUE TYPE TABLE.
- QTEC BSS 0
- TABLE PRQQ,PREC
- TABLE PHQQ,PHEC
- TABLE PLQQ,PLEC
- CON 0
- * PRINT QUEUE EXTERNAL CHARACTERISTICS EQUIVALENCES TABLE.
- PREC INDEX 7
- INDEX DFEX,(5L )
- INDEX A4EX,(5LA4 )
- INDEX B4EX,(5LB4 )
- INDEX B6EX,(5LB6 )
- INDEX A6EX,(5LA6 )
- INDEX A9EX,(5LA9 )
- INDEX 7
- * PUNCH QUEUE EXTERNAL CHARACTERISTICS EQUIVALENCES TABLE.
- PHEC INDEX 7
- INDEX DFFR,(5L )
- INDEX PBFR,(5LSB )
- INDEX P8FR,(5L80COL)
- INDEX PHFR,(5LO26 )
- INDEX P9FR,(5LO29 )
- INDEX ASFR,(5LASCII)
- INDEX 7
- * PLOT QUEUE EXTERNAL CHARACTERISTICS EQUIVALENCES TABLE.
- PLEC INDEX 3
- INDEX T6EX,(5LT6 )
- INDEX T8EX,(5LT8 )
- INDEX 3
- FLST SPACE 4,10
- ** STATUS TABLE (LAST OPERATION IS PRESET AS *READ*).
- FLST BSS 0
- DATA H* I/C *
- DATA H* EOR *
- DATA H* EOF *
- DATA H* EOI *
- DATA H* BOI *
- FLTY SPACE 4,10
- ** FILE TYPE TABLE.
- *
- *T,FLTY VFD 12/DCFT,42/ADDR
- * DCFT = DISPLAY CODED FILE TYPE.
- * ADDR = MESSAGE ADDRESS.
- FLTY INDEX MXFT
- INDEX INFT,(3LIN.) INPUT
- INDEX ROFT,(3LRO.) ROLLOUT
- INDEX QFFT,(3LQF.) QUEUED
- INDEX SYFT,(3LSY.) SYSTEM
- INDEX LOFT,(3LLO.) LOCAL
- INDEX LIFT,(3LLI.) LIBRARY
- INDEX PTFT,(3LPT.) PRIMARY TERMINAL
- INDEX PMFT,(3LPM.) DIRECT ACCES PERMANENT
- INDEX FAFT,(3LFA.) FAST ATTACH
- INDEX MXFT
- FSTT SPACE 4,10
- ** FILE STATUS TABLE.
- *
- *T,FSTT 24/DCFS,36/0
- * DCFS = DISPLAY CODED FILE STATUS.
- FSTT INDEX MXST
- INDEX 0,(4L )
- INDEX UPST,(4L UP )
- INDEX SSST,(4L SS )
- INDEX CBST,(4L CB )
- INDEX CKST,(4L CK )
- INDEX SOST,(4L SO )
- INDEX AAST,(4L AA )
- INDEX NDST,(4L NAD)
- INDEX MXST
- QTST SPACE 4,10
- ** QUEUE TYPE STATUS TABLE.
- QTST BSS 0
- TABLE INQQ,INQM
- TABLE EXQQ,0
- TABLE PRQQ,PRQM
- TABLE PHQQ,PHQM
- TABLE PLQQ,PLQM
- TABLE WTQQ,WTQM
- CON 0
- CNST SPACE 4,10
- ** EXECUTING JOB CONNECTION STATUS.
- CNST INDEX MXCS
- INDEX NICS,(2LNI) NOT INTERACTIVE
- INDEX DTCS,(2LDT) DETACHED
- INDEX OLCS,(2LON) ON-LINE
- INDEX MXCS
- EJST SPACE 4,10
- ** EJT STATUS TABLE.
- EJST INDEX MXJS
- INDEX PRJS,PRSM
- INDEX EXJS,EXSM
- INDEX ROJS,ROSM
- INDEX SIJS,SISM
- INDEX SOJS,SOSM
- INDEX TOJS,TOSM
- INDEX IOJS,IOSM
- INDEX DOJS,DOSM
- INDEX SUJS,SUSM
- INDEX PCJS,PCSM
- INDEX ERJS,ERSM
- INDEX SWJS,SWSM
- INDEX MXJS
- SPACE 4,10
- ** LINE DEFINITION TABLES.
- *
- * THE LINE DEFINITION TABLES DEFINE THE WORD OFFSET INTO
- * A STRING BUFFER AND THE NUMBER OF CHARACTERS TO ENTER
- * INTO THE BUFFER FOR DATA TO BE WRITTEN TO THE OUTPUT
- * FILE. THIS DEFINES THE FORMAT OF THE OUTPUT LINES.
- * UJN OUTPUT LINE.
- L1UL LDEF 00,70 LINE 1 SKELETON
- JSUL LDEF 01,04 JSN
- SCUL LDEF 06,01 SERVICE CLASS
- CNUL LDEF 08,02 CONNECTION STATUS
- DSUL LDEF 11,02 DESTINATION ROUTING
- LIUL LDEF 14,03 LID
- UJUL LDEF 18,07 UJN
- STUL LDEF 27,13 STATUS
- EMUL LDEF 42,30 EXECUTING MESSAGE
- * JSN OUTPUT LINES.
- *
- * *JSJL*, *SCJL* AND *STJL* ARE USED TO DEFINE THE FORMAT
- * OF OUTPUT LINES WHEN INFORMATION ABOUT A SPECIFIC JOB
- * IS REQUESTED (JSN PARAMETER EQUIVALENCED), AND ALSO WHEN
- * INFORMATION ABOUT ALL JOBS OWNED BY A USER IS REQUESTED
- * (JSN PARAMETER UNEQUIVALENCED).
- L1JL LDEF 00,69 LINE 1 SKELETON
- JSJL LDEF 01,04 JSN, COLUMN 1
- LDEF 40,04 JSN, COLUMN 2
- SCJL LDEF 06,01 SERVICE CLASS, COLUMN 1
- LDEF 45,01 SERVICE CLASS, COLUMN 2
- CNJL LDEF 08,02 CONNECTION STATUS, COLUMN 1
- LDEF 47,02 CONNECTION STATUS, COLUMN 2
- DSJL LDEF 11,02 DESTINATION ROUTING, COLUMN 1
- LDEF 50,02 DESTINATION ROUTING, COLUMN 2
- LIJL LDEF 14,03 LID, COLUMN 1
- LDEF 53,03 LID, COLUMN 2
- STJL LDEF 18,13 STATUS, COLUMN 1
- LDEF 57,13 STATUS, COLUMN 2
- UJJL LDEF 46,07 UJN
- ALJL LDEF 62,07 ACCESS LEVEL
- L2JL LDEF 00,70 LINE 2 SKELETON
- SUJL LDEF 06,10 SRU ACCUMULATOR
- SLJL LDEF 29,08 SRU LIMIT
- CFJL LDEF 46,06 CM FL
- EFJL LDEF 62,07 EXTENDED MEMORY FL
- L3JL LDEF 00,56 LINE 3 SKELETON
- PLJL LDEF 12,08 PRU LENGTH
- DCJL LDEF 26,02 DISPOSITION CODE
- FCJL LDEF 34,02 FORMS CODE
- IDJL LDEF 42,02 DESTINATION BATCH DEVICE ID
- ECJL LDEF 50,05 EXTERNAL CHARACTERISTICS
- TITLE MAIN LOOP.
- ** MAIN PROGRAM.
- MAIN BSS 0
- SYSTEM RSB,R,STAT1 READ FIRST 100B WORDS OF CPA
- SYSTEM RSB,R,STAT2 READ SECOND 100B WORDS OF CPA
- MAIN1 SA5 OPNS+1 OPTION TABLE
- SA4 EBIT EXECUTION BIT MASK
- MAIN2 ZR X5,MAIN5 IF END OF OPTION TABLE
- BX6 X4*X5 CHECK FOR EXECUTION BIT
- NZ X6,MAIN3 IF OPTION TO BE EXECUTED
- SA5 A5+1 CHECK NEXT OPTION
- EQ MAIN2
- MAIN3 SA2 FT FILE TYPE
- ZR X2,MAIN4 IF TERMINAL FILE
- SB3 X5
- SA1 OPF
- SB2 A1
- SB3 B3-B2
- ZR B3,MAIN4 IF OP=F OPTION TO BE EXECUTED
- WRITEW OUTPUT,PAGE,B1 PAGE EJECT
- SA2 TRPL TRIPLE SPACE
- BX6 X2
- SA6 PAGE SET TRIPLE SPACE
- SA4 EBIT RESET MASK FOR NEXT OPTION
- MAIN4 SB2 X5 PICK UP PROCESSOR ADDRESS
- BX6 -X4*X5 CLEAR EXECUTION BIT
- SA6 A5
- JP B2
- * PROCESS JSN.
- MAIN5 SA5 TAGS+3
- ZR X5,MAIN5.2 IF JSN NOT SPECIFIED
- MX0 24
- BX5 X0*X5
- ZR X5,MAIN5.1 IF UNEQUIVALENCED JSN PARAMETER SPECIFIED
- MX0 -42
- BX1 -X0*X5
- NZ X1,MAIN5.0 IF FOUR-CHARACTER JSN
- SX0 1R APPEND SPACE
- LX0 36-0
- BX5 X5+X0
- MAIN5.0 RJ PEJ LIST STATUS OF SPECIFIED JSN
- EQ MAIN7 COMPLETE ENQUIRY
- MAIN5.1 RJ PJS LIST STATUS OF ALL JSN-S
- EQ MAIN7 COMPLETE ENQUIRY
- * PROCESS UJN.
- MAIN5.2 SA5 TAGS+4
- ZR X5,MAIN6 IF UJN NOT SPECIFIED
- RJ PUJ LIST STATUS OF JOBS BY UJN
- EQ MAIN7 COMPLETE ENQUIRY
- * PROCESS FILENAME.
- MAIN6 SA1 TAGS+2 CHECK FILENAME
- ZR X1,MAIN7 IF NO FILENAME
- JP FNA
- MAIN7 SA1 O+2 CHECK FOR NO OUTPUT
- SA2 A1+B1
- BX6 X1-X2
- ZR X6,MAIN8 IF NO OUTPUT
- WRITER OUTPUT
- MAIN8 SA1 FT
- ZR X1,MAIN9 IF TERMINAL FILE
- MESSAGE EMSF,3 * ENQUIRY COMPLETE.*
- MAIN9 ENDRUN
- FNA TITLE FN OPTION.
- ** THE *FN=FILENAME* FUNCTION RETURNS THE STATUS OF THE
- * FILE SPECIFIED BY THE USER. THE *FN=FILENAME* FUNCTION IS
- * EXECUTED ONLY IF THE *OP=F* OPTION IS NOT SPECIFIED.
- * THE FOLLOWING INFORMATION IS GIVEN FOR THE SPECIFIED FILE
- * *FILENAME* *LENGTH/PRUS* *TYPE* *STATUS* *FS* *LEVEL*.
- FNA MX0 42
- MX7 0 CLEAR FIRST WORD OF BUFFER
- SA7 FBUF
- FNA0 SA2 GFNT STATUS WORD TO RETURN FILES
- BX6 X2
- SA6 FILEFET+8
- GETFNT FILEFET
- SA5 FBUF-1 INITIALIZE FILE NAME SEARCH
- SA1 TAGS+2 FILE NAME
- FNA1 SA5 A5+2
- ZR X5,FNA3 IF END OF FNTS
- BX3 X0*X5
- BX3 X3-X1
- NZ X3,FNA1 IF NO MATCH
- SA1 FT TERMINAL FILE CONSTANT
- ZR X1,FNA2 IF TERMINAL FILE
- WRITEW OUTPUT,PAGE,B1 CARRIAGE CONTROL
- FNA2 WRITEW OUTPUT,FOP,FOPA
- RJ LST LIST FILE
- EQ MAIN7 RETURN
- FNA3 SA4 FBUF BUFFER CONTROL WORD
- NZ X4,FNA0 IF MORE FILES TO GET
- SA2 =L* FILE NOT FOUND.*
- SX1 B0+
- RJ ISM ISSUE MESSAGE
- EQ MAIN7 RETURN
- OPB TITLE B OPTION.
- ** THE *OP=B* OPTION RETURNS TO THE USER INFORMATION THAT IS
- * READ FROM HIS CONTROL POINT AREA. INFORMATION SUCH AS
- * USER NAME, USER INDEX, USER PRIORITIES IS RETURNED TO
- * THE CALLER. THE USER PRIMARY FILENAME IS RETURNED IF
- * HE HAS ONE AND THE SUBSYSTEM HE IS USING.INFORMATION
- * ABOUT THE USER FIELD LENGTH, FAMILY AND PACK NAME IS
- * GIVEN. IF SECURE SYSTEM, INFORMATION ABOUT SECURITY
- * ACCESS LEVELS AND ACCESS CATEGORIES IS ALSO GIVEN.
- * PROCESS PRIORITIES.
- OPB BSS 0 ENTRY
- SA5 BUFF+CWQW GET CPU PRIORITY
- AX5 51
- MX3 -7
- BX1 -X3*X5 CPU PRIORITY
- RJ COD CONVERT TO OCTAL DISPLAY CODE
- MX0 12
- BX6 X0*X4
- SA6 BOCP+2
- * PROCESS FAMILY NAME AND PACK NAME, IF ANY.
- GETPFP WBUF GET PERMANENT FILE INFORMATION
- SA1 WBUF
- MX0 42
- BX6 X0*X1
- ZR X6,OPB1 IF NO FAMILY NAME
- SA6 BOFM+2
- OPB1 SA1 A1+B1
- BX6 X0*X1
- ZR X6,OPB1.1 IF NO PACK NAME IN CPA
- SA6 BOPN+2 SET PACK NAME
- BX6 -X0*X1
- LX6 42
- SA6 BOPN+5 SET PACK TYPE
- NZ X6,OPB2 IF PACK TYPE SPECIFIED IN CPA
- OPB1.1 SYSTEM RSB,R,OPBC READ PFNL WORD
- SA1 OPBD GET SYSTEM DEFAULT PACK TYPE
- MX6 18
- BX6 X6*X1
- SA6 BOPN+5 SET PACK TYPE
- * PROCESS USER NAME AND USER INDEX.
- OPB2 SA5 BUFF+UIDW USER NAME
- MX4 -18
- BX6 X4*X5
- SA6 BOUN+2
- * PROCESS HASH CODE AND JOB SEQUENCE NAME.
- MX4 -17
- BX7 -X4*X5
- RJ CIH COMPUTE USER INDEX HASH
- SA7 BOUH+2
- GETJN BOJS+2 GET JSN
- * PROCESS CHARGE AND PROJECT NUMBER.
- GETCN WBUF GET CHARGE NUMBER INFORMATION
- SA1 WBUF SET CHARGE NUMBER
- ZR X1,OPB2.1 IF NO CHARGE NUMBER
- RJ SFN SPACE FILL NAME
- SA6 BOCN+2
- SA1 WBUF+1 SET PROJECT NUMBER
- ZR X1,OPB2.1 IF NO PROJECT NUMBER
- RJ SFN SPACE FILL NAME
- SA6 BOPJ+2
- SA1 WBUF+2
- RJ SFN SPACE FILL NAME
- SA6 BOPJ+3
- * PROCESS PRIMARY FILE.
- OPB2.1 SA1 GPRM SET OPTIONS FOR GETFNT
- BX6 X1
- MX7 0 CLEAR BUFFER CONTROL WORD
- SA7 FBUF
- SA6 FILEFET+8 GETFNT STATUS WORD
- GETFNT FILEFET GET PRIMARY FILE NAME
- MX6 0 CLEAR STATUS WORD
- SA6 FILEFET+8
- SA2 FBUF+1
- MX0 42
- BX1 X0*X2
- ZR X1,OPB3 IF NO PRIMARY FILE
- RJ SFN SPACE FILL NAME
- SA6 BOPF+2
- SA2 A2+1
- LX2 59-8
- PL X2,OPB3 IF FILE ACCESSIBLE
- SA2 OPBB
- BX6 X2
- SA6 BOPF+3
- * PROCESS SUBSYSTEM.
- OPB3 SA2 BUFF+TXSW TELEX SUBSYSTEM WORD
- MX0 -6
- LX2 6
- BX1 -X0*X2 SUB-SYSTEM TABLE INDEX
- SB3 X1-MSYS
- PL B3,OPB4 IF INCORRECT SUB-SYSTEM
- SA1 SSTB+X1 SUB-SYSTEM TABLE
- BX6 X1
- SA6 BOSU+2
- * PROCESS FIELD LENGTH.
- OPB4 SA3 UESC GET USER EM SHIFT COUNT
- SA5 BUFF+ELCW EXTENDED MEMORY STATUS WORD
- MX0 -12
- SB5 X3+9
- LX5 12 CONVERT EXTENDED MEMORY MFL
- BX1 -X0*X5
- LX1 B5
- RJ COD CONVERT TO OCTAL DISPLAY CODE
- BX6 X0*X4
- SA6 BOME+2
- LX5 12 CONVERT LAST EXTENDED MEMORY FIELD LENGTH
- BX1 -X0*X5
- LX1 B5
- RJ COD
- BX6 X0*X4
- SA6 BOLE+2
- SA5 BUFF+FLCW CM MEMORY CONTROL WORD
- LX5 12 CONVERT CM MFL
- BX1 -X0*X5
- LX1 6 BLOCKS * 100
- RJ COD
- BX6 X0*X4
- SA6 BOMF+2
- LX5 12 CONVERT CM LAST FIELD LENGTH
- BX1 -X0*X5
- LX1 6 BLOCKS * 100
- RJ COD
- BX6 X0*X4
- SA6 BOLF+2
- * PROCESS JOB ACCESS LEVELS IF SECURE SYSTEM.
- SA1 SSFL
- ZR X1,OPB8 IF NON-SECURE SYSTEM
- GETJAL ALVL GET JOB ACCESS LEVELS
- SA1 ALVL GET CURRENT JOB ACCESS LEVEL
- MX0 -3
- BX2 -X0*X1
- SA2 TALV+X2
- MX3 42
- BX6 X2*X3
- SA6 BOAL+2
- AX1 6 GET JOB ACCESS LEVEL UPPER LIMIT
- BX2 -X0*X1
- SA2 TALV+X2
- BX6 X2*X3
- SA6 BOUL+2
- AX1 6 GET JOB ACCESS LEVEL LOWER LIMIT
- BX2 -X0*X1
- SA2 TALV+X2
- BX6 X2*X3
- SA6 BOLL+2
- * PROCESS JOB ACCESS CATEGORIES IF SECURE SYSTEM.
- GETUSV ACAT GET JOB ACCESS CATEGORIES
- SA4 ACAT
- SB3 32 NUMBER OF CATEGORIES TO CHECK
- SB4 B0 INDEX INTO TABLE OF CATEGORY NAMES
- SB5 B1 POINTER FOR STORING CATEGORY NAME
- SB6 6 COUNT OF WORDS TO BE SPACE FILLED
- OPB5 LX4 -1
- PL X4,OPB7 IF CATEGORY NOT SET
- SA2 TACT+B4 GET CATEGORY NAME
- MX0 42
- BX1 X0*X2
- RJ SFN SPACE FILL NAME
- LX6 -18
- SA6 BOAC+B5 SAVE CATEGORY NAME
- SB6 B6-B1
- SA1 OPBA INCREMENT PRINTED LINE COUNT
- SX6 X1+B1
- SA6 A1
- PL B6,OPB6 IF COUNT NOT TO BE RESET
- SB6 6
- SB5 B5+B1 WRITE END-OF-LINE
- BX6 X6-X6
- SA6 BOAC+B5
- SA1 OPBA INCREMENT PRINTED LINE COUNT
- SX6 X1+B1
- SA6 A1
- OPB6 SB5 B5+B1
- OPB7 SB4 B4+B1
- SB3 B3-B1
- NZ B3,OPB5 IF MORE CATEGORIES TO CHECK
- SA1 OPBA GET LINE COUNT
- WRITEW OUTPUT,BOP,X1
- EQ MAIN1 RETURN
- OPB8 WRITEW OUTPUT,BOP,BOPL
- EQ MAIN1 RETURN
- OPBA CON BLLL PRINTED LINE COUNT
- OPBB DATA 10L*INACCESS* FILE NOT ACCESSIBLE STATUS
- OPBC VFD 12/0,12/1,18/PFNL,18/OPBD PFNL READ CONTROL
- OPBD VFD 1/1,59/0 PFNL CODE
- * *OUTPUT FORMAT FOR B-OPTION*
- BOP DATA 0
- DATA L* SYSTEM ACTIVITY.*
- DATA 0
- BOUN DATA 20H USER NAME
- DATA 0
- BOUH DATA 20H USER INDEX HASH
- DATA 0
- BOJS DATA 20H JOB SEQ. NAME
- DATA 0
- BOFM DATA 20H FAMILY
- DATA 8L*NONE*.
- BOCN DATA 20H CHARGE NUMBER
- DATA 10H*NONE*.
- DATA 0
- BOPJ DATA 20H PROJECT NUMBER
- DATA 20H*NONE*.
- DATA 0
- BOPN DATA 20H PACK NAME
- DATA 8L*NONE*.
- DATA 20H PACK TYPE
- VFD 18/DFPT,42/0
- BOPF DATA 20H PRIMARY FILE
- DATA 10L*NONE*.
- DATA 10L
- DATA 0
- BOSU DATA 20H SUBSYSTEM
- DATA 0
- BOCP DATA 20H CPU PRIORITY
- DATA 0
- BOMF DATA 20H MAX FL (CM)
- DATA 0
- BOME DATA 20H MAX FL (EM)
- DATA 0
- BOLF DATA 20H LAST FL (CM)
- DATA 0
- BOLE DATA 20H LAST FL (EM)
- DATA 0
- BOPL EQU *-BOP
- DATA 0
- DATA C* JOB SECURITY ACCESS LEVELS*
- DATA 0
- BOAL DATA 20H CURRENT
- DATA 0
- BOLL DATA 20H LOWER LIMIT
- DATA 0
- BOUL DATA 20H UPPER LIMIT
- DATA 0
- DATA 0
- DATA C* JOB SECURITY ACCESS CATEGORIES*
- BOAC DATA 0
- DATA 10H *NONE*.
- DATA 0
- BLLL EQU *-BOP INITIAL OUTPUT LENGTH
- DUP 39,1
- DATA 0
- OPD TITLE D OPTION.
- ** THE OP = D OPTION RETURNS TO THE USER THE RESOURCE
- * DEMAND AND ASSIGNED COUNTS FROM THE USER DEMAND FILE
- * ENTRY.
- OPD WRITEW OUTPUT,FOD,FODA HEADER
- * SET CORRECT DEMAND FILE NAME.
- SA1 BUFF+RFCW
- MX0 -18
- BX6 -X0*X1
- ZR X6,OPD7 IF NO DEMAND FILE ENTRY
- SYSTEM RSB,R,OPDA READ MMFL WORD
- SA1 OPDC SET CORRECT DEMAND FILE NAME
- MX0 12
- BX3 X0*X1
- SA2 OPDB
- LX0 -24
- BX2 -X0*X2
- LX3 -24
- BX6 X3+X2
- SA6 A2+
- ATTACH FILEFET,OPDB,,,RM,,,DF,FA
- SA1 BUFF+RFCW CHECK DEMAND FILE INDEX
- MX0 -18
- BX6 -X0*X1
- SA6 FILEFET+6
- READ X2,R READ DEMAND FILE ENTRY
- SA5 FBUF+RVAL CHECK FOR TOTAL DEMAND = TOTAL ASSIGN = 0
- MX2 -24
- BX2 -X2*X5
- ZR X2,OPD7 IF NO ASSIGNS/DEMANDS
- SA5 FBUF+RMTP GET FIRST MAGNETIC TAPE ENTRY WORD
- * FORMAT LINE.
- OPD1 MX2 12 GET RESOURCE IDENTIFIER
- BX1 X2*X5
- SX3 A5-FBUF-RRPP
- NG X3,OPD2 IF MAGNETIC TAPE ENTRY
- SX2 1R1 ENTER REMOVABLE PACK UNIT COUNT
- LX2 -18
- BX1 X1+X2
- OPD2 RJ SFN BLANK FILL RESOURCE IDENTIFIER
- LX6 -24
- SA6 FODB
- LX5 12
- SX3 A5-FBUF-RRPP
- PL X3,OPD3 IF REMOVABLE PACK ENTRY
- * ADD THE ASSIGNED AND DEMAND COUNTS FOR ALL ACCESS LEVELS
- * OF MAGNETIC TAPE RESOURCE ENTRY. PRINT NON-ZERO COUNTS.
- BX1 X1-X1 INITIALIZE TOTAL ASSIGNED COUNT
- BX3 X3-X3 INITIALIZE TOTAL DEMAND COUNT
- SB2 B1+ INITIALIZE ENTRY WORD COUNT
- OPD2.1 SB3 3 INITIALIZE BYTE COUNT
- OPD2.2 MX2 -6 GET ASSIGNED COUNT
- LX5 6
- BX0 -X2*X5
- IX1 X0+X1 ADD COUNT TO TOTAL COUNT
- LX5 6 GET DEMAND COUNT
- BX2 -X2*X5
- IX3 X2+X3 ADD COUNT TO TOTAL COUNT
- SB3 B3-B1
- PL B3,OPD2.2 IF NOT END OF ENTRY WORD
- SB2 B2-B1
- NG B2,OPD2.3 IF END OF SECOND ENTRY WORD
- SA5 A5+B1 READ SECOND ENTRY WORD
- LX5 12
- EQ OPD2.1 RESET BYTE COUNT
- OPD2.3 BX0 X1+X3
- BX5 X3
- ZR X0,OPD6 IF NO ASSIGNED/DEMAND COUNTS
- EQ OPD3.1 CONVERT ASSIGNED COUNT
- * GET ASSIGNED/DEMAND COUNTS FOR REMOVABLE PACK ENTRIES.
- OPD3 MX2 -6 GET ASSIGNED COUNT
- LX5 6
- BX1 -X2*X5
- MX3 -12 CHECK FOR ZERO ASSIGNED AND DEMAND COUNTS
- LX5 6
- BX3 -X3*X5
- ZR X3,OPD4 IF NO ASSIGNED/DEMAND COUNTS
- OPD3.1 RJ CDD CONVERT ASSIGNED COUNT
- LX6 18
- MX2 -6
- SA6 FODB+2
- BX1 -X2*X5 GET DEMAND COUNT
- RJ CDD CONVERT DEMAND COUNT
- LX6 18
- SA6 A6-B1
- WRITEW OUTPUT,FODB,FODL
- OPD4 SX3 A5-FBUF-RRPP
- NG X3,OPD6 IF MAGNETIC TAPE ENTRY
- SX2 B1 INCREMENT REMOVABLE PACK UNIT COUNT
- SA1 FODB
- LX2 18
- SB2 X0+B1
- IX6 X1+X2
- SB3 X0-RPEW
- SB2 A0-B2
- SA6 A1
- NZ B3,OPD5 IF NOT END OF FIRST ENTRY WORD
- SA5 A5+B1
- LX5 12
- OPD5 SX0 X0+1
- PL B2,OPD3 IF MORE COUNTS TO PROCESS IN ENTRY
- PL B3,OPD6 IF SECOND ENTRY WORD PROCESSED
- SA5 A5+1
- OPD6 SA5 A5+1
- SX2 A5-FBUF-RREQ
- SX3 A5-FBUF-RRPP
- ZR X2,OPD8 IF END OF RESOURCE ENTRIES
- NG X3,OPD1 IF MAGNETIC TAPE ENTRY
- ZR X5,OPD8 IF END OF RESOURCE ENTRIES
- SA1 A5+B1 GET MAXIMUM UNIT COUNT
- UX1 X1,B2
- SA0 B2
- SX0 B1 RESET UNIT COUNT
- EQ OPD1 CONTINUE PROCESSING ENTRIES
- OPD7 WRITEW OUTPUT,FODC,FODD
- OPD8 RETURN FILEFET,R
- EQ MAIN1 RETURN
- OPDA VFD 12/0,12/1,18/MMFL,18/OPDC MMFL READ CONTROL
- OPDB VFD 60/0LRSXD DEMAND FILE NAME
- OPDC VFD 1/1,59/0 MMFL CODE
- * OUTPUT FORMAT FOR OP = D.
- FOD DATA 0
- DATA L* RESOURCE DEMAND INFORMATION. *
- DATA 0
- DATA L* RESOURCE DEMAND ASSIGNED *
- DATA 0
- FODA EQU *-FOD
- FODB DATA C* *
- FODL EQU *-FODB
- FODC DATA C* NONE.*
- FODD EQU *-FODC
- OPF TITLE F OPTION.
- ** THE *OP=F* OPTION RETURNS TO THE USER THE FOLLOWING
- * INFORMATION ABOUT EACH OF HIS FILES- *FILENAME*
- * *LENGTH/PRUS* *TYPE* *STATUS* *FS* *LEVEL*.
- OPF BSS 0 ENTRY
- BX6 X6-X6 PRECLUDE FN PARAMETER PROCESSING
- SA6 TAGS+2
- MX7 0 CLEAR BUFFER CONTROL WORD
- SA7 FBUF
- SA1 GFNT SET GETFNT CONTROL WORD IN FET+8
- BX6 X1
- SA6 FILEFET+8
- GETFNT FILEFET GET FILES
- BX6 X6-X6 CLEAR STATUS WORD
- SA6 FILEFET+8
- * SORT FNT ENTRIES INTO ASCENDING ORDER.
- SX7 B0 COUNT NUMBER OF ENTRIES TO SORT
- SA1 FBUF+1
- OPF1 SX7 X7+B1
- SA1 A1+2
- NZ X1,OPF1 IF MORE ENTRIES TO COUNT
- SA7 FCT SAVE FILE COUNT
- SB2 B0 SORT FNT ENTRIES
- SB3 B0
- SB4 B1
- SB5 B1+B1
- SB6 X7
- SB7 FBUF+1
- MX0 42
- RJ GMS
- SA5 FBUF+1 SET ADDRESS OF FIRST ENTRY TO LIST
- * OUTPUT PAGE EJECT AND/OR PAGE HEADER.
- OPF2 SA1 FT
- ZR X1,OPF3 IF OUTPUT ASSIGNED TO TERMINAL
- WRITEW OUTPUT,PAGE,B1 PAGE EJECT
- OPF3 WRITEW OUTPUT,FOP,FOPA PAGE HEADER
- * LIST FNT ENTRY.
- OPF4 ZR X5,OPF5 IF END OF BUFFER
- RJ LST LIST FILE
- * CHECK FOR FULL PAGE.
- SA5 A5+1 NEXT FILE IN BUFFER
- SA1 LCT LINE COUNT
- SX6 X1+B1
- SA6 A1
- SA2 LLM GET LINE LIMIT
- IX1 X1-X2
- SX7 X1+6
- NZ X7,OPF4 IF NOT END OF PAGE
- SA7 A1 CLEAR LINE COUNT
- EQ OPF2 OUTPUT PAGE EJECT AND/OR PAGE HEADER
- * WRITE FILE COUNT MESSAGE AND EXIT.
- OPF5 SA1 FCT FILE COUNT
- RJ CDD CONVERT TO DISPLAY
- MX0 24
- BX6 X0*X4
- SA6 FOPD+1 TOTAL FILE COUNT
- WRITEW OUTPUT,FOPC,FOLL
- EQ MAIN1 RETURN
- * OUTPUT FORMAT FOR OP = F.
- FOP DATA 0
- DATA L* LOCAL FILE INFORMATION.*
- DATA 0
- DATA L* FILENAME LENGTH/PRUS TYPE STATUS FS LEVEL*
- DATA 0
- FOPA EQU *-FOP
- FOPB DATA L* *
- FOPL EQU *-FOPB
- FOPC DATA 0
- FOPD DATA 10H TOTAL =
- DATA 0
- FOLL EQU *-FOPC
- OPJ TITLE J OPTION.
- ** OP=*J* RETURNS TO THE USER THE CONTENTS OF HIS CONTROL
- * REGISTERS AND THE CONTENTS OF ERROR FLAG FIELD.
- * THE NEXT COMMAND FROM THE BUFFER IS GIVEN ALSO.
- * PROCESS PSEUDO REGISTERS.
- OPJ SA5 BUFF+JCRW JOB CONTROL WORD
- LX5 6
- MX0 -6 ERROR FLAG
- BX1 -X0*X5
- RJ COD CONVERT TO DISPLAY CODE
- MX0 42
- BX6 X0*X4
- SA6 JOPE+1
- LX5 18 R3
- BX1 -X0*X5
- RJ CSD CONVERT TO SIGNED DISPLAY CODE
- SA6 JOPD+1
- LX5 18 R2
- BX1 -X0*X5
- RJ CSD CONVERT TO SIGNED DISPLAY CODE
- SA6 JOPC+1
- LX5 18 R1
- BX1 -X0*X5
- RJ CSD CONVERT TO SIGNED DISPLAY CODE
- SA6 JOPB+1
- SA5 BUFF+JCDW *CCL* JOB CONTROL WORD
- LX5 6 GLOBAL ERROR FLAG
- MX0 -6
- BX1 -X0*X5
- RJ COD CONVERT TO DISPLAY CODE
- MX0 42
- BX6 X0*X4
- SA6 JOPF+1
- LX5 18 R1G
- BX1 -X0*X5
- RJ CSD CONVERT TO SIGNED DISPLAY CODE
- SA6 JOPG+1
- SA5 JPPW GET JOB PAGE PARAMETERS
- MX0 -8
- AX5 12 POSITION FOR *PW*
- BX1 -X0*X5
- RJ CSD CONVERT TO DISPLAY
- SA6 JOPH+1 PAGE WIDTH
- AX5 8 POSITION FOR *PS*
- BX1 -X0*X5
- RJ CSD CONVERT TO DISPLAY
- SA6 JOPI+1 PAGE SIZE
- MX0 -4
- AX5 8 POSITION FOR *PD*
- BX1 -X0*X5
- RJ CSD CONVERT TO DISPLAY CODE
- SA6 JOPJ+1 PAGE DENSITY
- WRITEW O,JOP,JOPL
- * PROCESSING NEXT COMMAND.
- SA3 F+1 SET FET EMPTY
- MX0 -30
- SX6 X3
- SA6 A3+B1
- SX5 NCST NUMBER OF COMMANDS
- SA6 A6+B1
- ACCSF F,CSFP,L ATTACH COMMAND FILE
- SA4 CSFP
- BX7 -X0*X4
- AX7 6
- SA7 F+6 RANDOM ADDRESS
- READ F,R
- MX0 -6
- BX6 -X0*X4
- SA3 F+3 UPDATE *OUT* POINTER
- IX6 X3+X6
- SA6 A3
- OPJ1 READC F,WBUF,WBUFL
- NZ X1,OPJ2 IF *EOR*
- SB2 WBUF
- SB6 USBBL
- RJ USB UNSTRING COMMAND
- SB7 B7-WBUF2+1
- WRITES O,WBUF2,B7
- SX5 X5-1 DECREMENT COUNTER
- NZ X5,OPJ1 IF NOT END OF COMMANDS
- EQ OPJ3 RETURN FILE AND EXIT
- OPJ2 WRITEC O,OPJB WRITE *EOR* LINE
- OPJ3 RETURN F
- EQ MAIN1 RETURN
- OPJA CON 0 COMMAND COUNT
- OPJB DATA C/ *EOR*/
- * OUTPUT FORMAT FOR OP = J.
- JOP DATA 0
- JOPA DATA L* JOB CONTROL REGISTERS.*
- DATA 0
- JOPB DATA C* R1 = *
- JOPC DATA C* R2 = *
- JOPD DATA C* R3 = *
- JOPE DATA C* EF = *
- JOPF DATA C* EFG = *
- JOPG DATA C* R1G = *
- DATA 0
- DATA C* JOB PAGE PARAMETERS.*
- DATA 0
- JOPH DATA C* PW = *
- JOPI DATA C* PS = *
- JOPJ DATA C* PD = *
- DATA 0
- JOPK DATA L* PENDING COMMANDS.*
- DATA 0
- JOPL EQU *-JOP
- OPL TITLE L OPTION.
- ** *OP=L* GIVES THE USER LOADER INFORMATION THAT CONSISTS OF
- * MAP OPTIONS, DEBUG MODE AND GLOBAL LIBRARY SET
- * CURRENTLY IN EFFECT.
- OPL SA1 BUFF+LB1W MAP OPTIONS IN EFFECT
- PL X1,OPL2.1 IF SYSTEM DEFAULT
- LX1 59-57 POSITION MAP OPTION FIELD TO LEFT
- MX0 4 MAP OPTION FIELD WIDTH
- BX1 X0*X1
- ZR X1,OPL8 IF MAP *OFF*
- BX2 -X0+X1
- ZR X2,OPL3 IF *FULL* MAP
- SA2 OPLA
- BX2 X1-X2
- ZR X2,OPL4 IF MAP *ON*
- SA2 OPLB
- BX2 X1-X2
- ZR X2,OPL5 IF *PARTIAL* MAP
- SA2 =L*XEBS* FETCH POSSIBLE MAP OPTIONS
- SB2 4 INITIALIZE MAP OPTIONS COUNTER
- BX6 X6-X6 PRESET RESULT REGISTER
- MX0 6
- OPL1 PL X1,OPL2 IF OPTION NOT SET
- BX3 X0*X2 ADD CHARACTER TO RESULT REGISTER
- LX6 -6
- BX6 X3+X6
- OPL2 SB2 B2-B1 DECREMENT MAP OPTIONS COUNTER
- ZR B2,OPL7 IF NO MORE MAP OPTIONS TO CONSIDER
- LX1 1
- LX2 6
- EQ OPL1 LOOP
- OPL2.1 SA1 =L*DEFAULT*
- EQ OPL6 SET DEFAULT MAP OPTION
- OPL3 SA1 =L*FULL*
- EQ OPL6
- OPL4 SA1 =L*ON*
- EQ OPL6
- OPL5 SA1 =L*PARTIAL*
- OPL6 BX6 X1
- OPL7 SA6 OPLD UPDATE MAP OPTIONS ASSEMBLY AREA
- OPL8 WRITEW OUTPUT,OPLC,OPLE
- * PROCESS INTERACTIVE DEBUG.
- SA1 BUFF+LB1W CHECK DEBUG STATUS
- SB6 OPLH *DEBUG = OFF*
- LX1 59-35
- PL X1,OPL8.1 IF DEBUG = OFF
- SB6 OPLI *DEBUG = ON*
- OPL8.1 WRITEC O,B6 WRITE DEBUG STATUS
- * PROCESS GLOBAL LIBRARY SET.
- MOVE 4,OPLG,LBUF HEADER (PRESET EMPTY)
- GETGLS GGLS GET GLOBAL LIBRARY SET
- SB3 4 PRESET NUMBER OF WORDS TO WRITE
- SA1 GGLS LWA OF LIST + 1
- AX1 36
- SB2 X1-LBUF-3
- ZR B2,OPL11 IF EMPTY LIST
- SB3 B3-B1
- SB4 X1
- SB5 B3 INITIALIZE NAMES PER LINE COUNTER
- MX0 48
- MX5 42
- SA1 LBUF+3
- OPL9 BX1 X1*X5
- RJ SFN SPACE FILL NAME
- LX6 -6
- SB5 B5-B1 DECREMENT NAMES PER LINE COUNTER
- NZ B5,OPL10 IF NOT THIRD NAME ON LINE
- SB5 3 RE-INITIALIZE NAMES PER LINE COUNTER
- BX6 X0*X6 SET END-OF-LINE
- OPL10 SA6 A1
- SA1 A1+B1
- SB3 B3+B1 INCREMENT NUMBER OF WORD TO WRITE
- SB2 A1-B4
- NZ B2,OPL9 IF NOT END OF LIST
- BX6 X0*X6 SET END-OF-LINE
- SA6 A6
- OPL11 WRITEW OUTPUT,LBUF,B3
- JP MAIN1 RETURN
- OPLA VFD 4/7,56/0 MAP *ON* MASK
- OPLB VFD 4/3,56/0 *PARTIAL* MAP MASK
- * MAP OPTIONS ASSEMBLY AREA.
- OPLC DATA 0 BLANK LINE
- DATA L* LOADER INFORMATION. *
- DATA H* MAP OPTIONS = *
- OPLD DATA L*OFF* PRESET AS *OFF*
- OPLE EQU *-OPLC LENGTH OF MAP OPTIONS ASSEMBLY AREA
- OPLG DATA L* GLOBAL LIBRARY SET IS - *
- DATA L* EMPTY.*
- OPLH DATA L* DEBUG = OFF*
- OPLI DATA L* DEBUG = ON*
- OPR TITLE R OPTION.
- ** THE *OP=R* OPTION RETURNS TO THE USER HIS ACCUMULATED
- * RESOURCES. THESE INCLUDE SRU UNITS, CP, IO AND
- * ADDER ACCUMULATORS.
- OPR SA1 BUFF+CPTW CPU TIME
- PX1 X1 CONVERT TO MILLISECONDS
- SA2 OPA
- NX1 X1
- RX2 X2*X1
- UX1,B4 X2
- LX1 B4
- RJ CFD CONVERT TO F10.3 FORMAT
- SA6 ROPB+2
- SA5 BUFF+IOAW IO ACCUMULATORS
- MX0 -20
- LX5 20 MS ACCUMULATOR
- BX1 -X0*X5
- RJ CFD
- SA6 ROPC+2
- LX5 20 MT ACCUMULATOR
- BX1 -X0*X5
- RJ CFD
- SA6 ROPD+2
- LX5 20 PF ACCUMULATOR
- BX1 -X0*X5
- RJ CFD
- SA6 ROPE+2
- SA2 BUFF+ADAW ADDER ACCUMULATOR
- BX1 -X0*X2 ADDER ACCUMULATOR
- RJ CFD
- SA6 ROPF+2
- SA2 BUFF+AUCW AUC ACCUMULATOR
- MX0 -29
- BX1 -X0*X2
- RJ CFD
- SA6 ROPG+2
- SA2 BUFF+SRUW SRU ACCUMULATOR
- RJ CSR CONVERT SRU ACCUMULATOR
- SA6 ROPH+2
- WRITEW OUTPUT,ROP,ROPL
- EQ MAIN1 RETURN
- * OUTPUT FORMAT FOR OP = R.
- ROP DATA 0
- ROPA DATA L* RESOURCES USED.*
- DATA 0
- ROPB DATA 30H CPU TIME
- DATA 6L SECS.
- ROPC DATA 30H MS ACTIVITY
- DATA 6L KUNS.
- ROPD DATA 30H MT ACTIVITY
- DATA 6L KUNS.
- ROPE DATA 30H PF ACTIVITY
- DATA 6L KUNS.
- ROPF DATA 30H ADDER
- DATA 6L KUNS.
- ROPG DATA 30H AUC ACTIVITY
- DATA 6L UNTS.
- ROPH DATA 30H SRU
- DATA 6L UNTS.
- ROPL EQU *-ROP
- OPS TITLE S OPTION.
- ** THE *OP=S* OPTION RETURNS TO THE USER HIS SRU UNIT.
- * THIS UNIT REPRESENTS THE TOTAL USAGE OF THE SYSTEM
- * BY THE USER.
- OPS BSS 0 ENTRY
- SA2 BUFF+SRUW SRU ACCUMULATOR
- RJ CSR CONVERT SRU ACCUMULATOR
- SA6 SOPB+1
- WRITEW OUTPUT,SOP,SOPL
- EQ MAIN1 RETURN
- * OUTPUT FORMAT FOR OP = S.
- SOP DATA 0
- SOPA DATA L* SRU ACCUMULATOR.*
- DATA 0
- SOPB DATA 20H SRU
- DATA 6L UNTS.
- SOPL EQU *-SOP
- OPT TITLE T OPTION.
- ** OP=*T* RETURNS TO THE USER HIS CP TIME.
- *
- OPT SA1 BUFF+CPTW CP TIME
- PX1 X1 CONVERT TO MILLISECONDS
- SA2 OPA
- NX1 X1
- RX2 X2*X1
- UX1,B4 X2
- LX1 B4
- RJ CFD CONVERT TO F10.3 FORMAT
- SA6 TOPA+1 STORE CP TIME
- WRITEW OUTPUT,TOP,TOPL
- EQ MAIN1 RETURN
- * OUTPUT FORMAT FOR OP = T.
- TOP DATA 0
- DATA L* CPU ACCUMULATOR.*
- DATA 0
- TOPA DATA 20H CPU TIME
- DATA 6L SECS.
- TOPL EQU *-TOP
- OPU TITLE U OPTION.
- ** OP = *U* GIVES THE USER THE AMOUNT OF RESOURCE USAGE
- * ALLOWED TO HIS JOB. THESE RESOURCES INCLUDE SYSTEM
- * RESOURCE UNITS ALLOWED FOR EACH JOB STEP AND ACCOUNT
- * BLOCK, JOB STEP TIME LIMIT, AND MAXIMUM NUMBER OF DISPOSE
- * FILES, MASS STORAGE PRUS, DAYFILE MESSAGES AND CONTROL
- * COMMANDS.
- OPU SA5 BUFF+CPJW JOB STEP TIME LIMIT
- MX0 -15
- LX0 17-14
- LX5 30
- RJ CLM CONVERT
- SA7 UOPF+2
- SA5 BUFF+SRJW JOB STEP SRU LIMIT
- LX5 30
- RJ CLM CONVERT
- SA7 UOPG+2
- SA5 BUFF+STLW ACCOUNT BLOCK SRU LIMIT
- LX5 18
- RJ CLM CONVERT
- SA7 UOPH+2
- SA5 BUFF+ACLW PICK UP ACCOUNTING LIMITS WORD
- MX0 -12
- LX5 24 DAYFILE MESSAGES COUNT
- RJ CLM CONVERT
- SA7 UOPB+2
- LX5 12 COMMAND COUNT
- RJ CLM CONVERT
- SA7 UOPC+2
- MX0 -15
- LX0 17-14
- LX5 24 MASS STORAGE PRUS
- RJ CLM
- SA7 UOPE+2
- WRITEW OUTPUT,UOP,UOPL
- EQ MAIN1
- * OUTPUT FORMAT FOR OP = U.
- UOP DATA 0
- UOPA DATA L* RESOURCE USAGE ALLOWED.*
- DATA 0
- UOPF DATA 20H SECONDS
- DATA 0
- UOPG DATA 20H JOB STEP SRU
- DATA 0
- UOPH DATA 20H ACCOUNT BLK SRU
- DATA 0
- UOPB DATA 20H DAYFILE MESSAGES
- DATA 0
- UOPC DATA 20H COMMANDS
- DATA 0
- UOPE DATA 20H MASS STORAGE
- DATA 0
- UOPL EQU *-UOP
- TITLE JSN= OPTION.
- PEJ SPACE 4,10
- ** PEJ - PROCESS EQUIVALENCED JSN PARAMETER.
- *
- * ENTRY (X5) = JSN PARAMETER VALUE.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 3, 5, 6, 7.
- * B - 2, 4, 6, 7.
- *
- * CALLS CDD, COD, CSR, ESB, GCS, GDR, GJS, GSC, IPR, SFN,
- * WCL, WML.
- *
- * MACROS WRITES, WRITEW.
- *
- * EXAMPLE OF EXECUTING JOB -
- *
- * 1 2 3 4 5 6 7
- * 234567890123456789012345678901234567890123456789012345678901234567890
- *
- * ABFB.T.ON.BC.M90.T/E ROLLOUT UJN=MYJOBAA LEVEL=LVL0
- * SRUS= 22.057. SRU LIMIT=NO LIMIT. CM FL= 47500. ECS FL= 1000.
- * LABEL,TAPE,VSN=TEROLL,D=PE. (MS1W MESSAGE)
- * WAITING FOR TAPE/PACK MOUNT. (MS2W MESSAGE)
- *
- * DAYFILE=
- * (MAXIMUM OF 10 LINES OF DAYFILE)
- *
- * NEXT COMMANDS=
- * (MAXIMUM OF 10 LINES OF COMMANDS)
- *
- * EXAMPLE OF JOBS IN THE INPUT, PRINT, PLOT, PUNCH
- * OR WAIT QUEUE -
- *
- * 1 2 3 4 5 6 7
- * 234567890123456789012345678901234567890123456789012345678901234567890
- *
- * ADAE.B. .BC.M90.PRINT QUEUE UJN=MYJOBAA LEVEL=LVL0
- * PRU LENGTH= 47. DC=LT. FC= . ID=05. EC=A9 .
- PEJ SUBR ENTRY/EXIT
- SA3 PIEJ SET PEEK INFORMATION BITS
- BX7 X3
- BX6 X5 SAVE JSN
- SA6 JSNM
- SA7 BQPF+2
- SA1 BQSC+2 SET JSN SELECTION CRITERIA
- SX2 JSSF SET JSN SELECTION BIT
- BX1 X1+X5 SET JSN
- BX6 X1+X2
- SA6 A1+
- RJ IPR ISSUE *QAC* PEEK REQUEST
- NZ X1,PEJX IF JOB NOT FOUND
- * FORMAT LINE 1.
- SA1 PEJF WRITE SKELETON LINE
- SB7 L1JL
- BX6 X1
- RJ ESB
- SA1 RBUF GET REPLY ENTRY FWA
- MX0 24 SET JSN
- BX1 X0*X1
- RJ SFN
- SB6 A1+
- SB7 JSJL
- RJ ESB
- RJ GSC SET SERVICE CLASS
- SB7 SCJL
- RJ ESB
- SA1 B6+7
- RJ GCS GET CONNECTION STATUS
- SB7 CNJL
- RJ ESB
- SA1 B6+4 GET DESTINATION ROUTING
- RJ GDR
- SB7 DSJL
- RJ ESB
- SA1 BQPF+1 GET LID
- MX0 -12
- BX1 -X0*X1
- SB3 X1-2
- SA1 B6+B3 SET LID
- MX0 18
- LX1 6
- BX1 X0*X1
- RJ SFN
- SB7 LIJL
- RJ ESB
- SB4 7 SET JOB STATUS
- RJ GJS
- SB7 STJL
- RJ ESB
- SA1 B6+5 SET UJN
- MX0 42
- BX1 X0*X1
- RJ SFN
- SB7 UJJL
- RJ ESB
- SA1 SSFL
- NZ X1,PEJ0.1 IF SECURE SYSTEM
- SA1 L1JL DO NOT DISPLAY ACCESS LEVEL
- SX6 X1-16
- SA6 A1
- EQ PEJ0.2 OUTPUT DATA
- PEJ0.1 SA1 BQPF+1 GET ACCESS LEVEL
- MX0 -12
- BX1 -X0*X1
- SB3 X1-1
- SA1 B6+B3
- AX1 12
- MX0 -3
- BX1 -X0*X1
- SA1 TALV+X1 SET ACCESS LEVEL
- MX0 42
- BX1 X0*X1
- RJ SFN SPACE FILL NAME
- SB7 ALJL
- RJ ESB
- PEJ0.2 WRITEW OUTPUT,PAGE,B1
- SA1 L1JL GET CHARACTER COUNT
- SB7 X1+
- WRITES OUTPUT,USBB,B7
- SA1 RBUF CHECK QUEUE TYPE
- MX0 -12
- LX1 -12
- BX6 -X0*X1
- SX2 X6-EXQQ
- SA6 PEJA SAVE QUEUE TYPE
- NZ X2,PEJ1 IF NOT EXECUTING QUEUE
- * FORMAT OUTPUT LINES FOR EXECUTING JOB.
- SB6 RBUF RESET REPLY ENTRY FWA
- SA1 PEJB WRITE SKELETON LINE
- BX6 X1
- SB7 L2JL
- RJ ESB
- SA2 B6+19
- LX2 -18
- RJ CSR CONVERT SRU ACCUMULATOR
- SB7 SUJL
- RJ ESB
- SA2 B6+18 SET SRU LIMIT
- LX2 -18
- RJ CSR CONVERT SRU LIMIT
- SB7 SLJL
- RJ ESB
- SA5 B6+2 GET CM FL/100B
- LX5 0-24
- MX0 -12
- BX1 -X0*X5
- LX1 6 MULTIPLY BY 100B
- RJ COD
- SB7 CFJL SET CM FL
- LX6 24 USE LOWER 6 CHARACTERS
- RJ ESB
- LX5 0-36-0+24 GET EXTENDED MEMORY FL/1000B
- MX0 -12
- BX1 -X0*X5
- LX1 9 MULTIPLY BY 1000B
- RJ COD
- LX6 18 USE LOWER 7 CHARACTERS
- SB7 EFJL SET EXTENDED MEMORY FL
- RJ ESB
- SA1 L2JL GET CHARACTER COUNT
- SB7 X1+
- WRITES OUTPUT,USBB,B7
- SA2 RBUF+8 WRITE *MS1W*
- RJ WML
- SA2 RBUF+14 WRITE *MS2W*
- RJ WML
- SA1 RBUF+20 WRITE DAYFILE BUFFER
- MX7 -12
- LX1 -12
- SX0 A1+1 FWA OF DATA
- BX2 -X7*X1 REPLY UNIT WORD COUNT - 1
- LX1 -12
- BX5 -X7*X1 DATA WORD COUNT
- IX6 X0+X2 SAVE LWA+1 OF REPLY UNIT
- SA6 PEJG
- ZR X5,PEJ0 IF NO DATA
- WRITEW OUTPUT,PEJC,PEJCL WRITE DAYFILE TITLE LINE
- SB6 X0
- SB7 B0 WRITE LAST 10 DAYFILE MESSAGES
- RJ WCL
- PEJ0 SA2 PEJG WRITE COMMAND BUFFER
- SA1 X2
- MX7 -12
- SX0 A1+1 FWA OF DATA
- LX1 -24
- BX5 -X7*X1 DATA WORD COUNT
- ZR X5,PEJX IF NO DATA
- WRITEW OUTPUT,PEJD,PEJDL WRITE COMMAND TITLE LINE
- SB6 X0
- SB7 B1 WRITE FIRST 10 COMMANDS
- RJ WCL
- EQ PEJX RETURN
- * FORMAT OUTPUT LINE FOR JOB IN THE INPUT, PRINT, PLOT,
- * PUNCH OR WAIT QUEUE.
- PEJ1 SA1 PEJE WRITE SKELETON LINE
- SB7 L3JL
- BX6 X1
- RJ ESB
- SB6 RBUF
- SA1 B6+6 SET FILE LENGTH
- MX0 -24
- LX1 24
- SB7 PLJL
- BX1 -X0*X1
- RJ CDD
- LX6 12 USE LOWER 8 CHARACTERS
- RJ ESB
- SA5 B6+B1 SET FORMS CODE
- MX0 12
- LX5 59-47
- BX6 X0*X5
- ZR X6,PEJ2 IF FORMS CODE NOT SPECIFIED
- SB7 FCJL
- RJ ESB
- PEJ2 LX5 59-35-59+47 SET DISPOSITION CODE
- MX0 12
- BX6 X0*X5
- ZR X6,PEJ3 IF DISPOSITION CODE NOT SPECIFIED
- SB7 DCJL
- RJ ESB
- PEJ3 SA1 PEJA GET QUEUE TYPE
- MX0 18
- SA2 QTEC SEARCH FOR MATCHING QUEUE TYPE
- PEJ4 ZR X2,PEJ5 IF END OF TABLE
- BX3 X0*X2
- LX3 18
- IX3 X1-X3
- SB2 X2 ADDRESS OF EXTERNAL CHARACTERISTICS TABLE
- SA2 A2+B1
- NZ X3,PEJ4 IF NOT MATCH
- LX5 0-21-59+35 GET EXTERNAL CHARACTERISTICS
- MX0 -3
- BX1 -X0*X5
- SB7 ECJL SET EXTERNAL CHARACTERISTICS
- SA2 X1+B2 INDEX INTO TABLE
- BX6 X2
- RJ ESB
- PEJ5 SA1 B6+3 SET DESTINATION BATCH DEVICE ID
- MX0 -6
- LX1 -12
- BX1 -X0*X1
- RJ COD
- LX6 -12 USE LOWER 2 CHARACTERS
- SB7 IDJL
- RJ ESB
- SA1 L3JL GET CHARACTER COUNT
- SB7 X1+
- WRITES OUTPUT,USBB,B7
- EQ PEJX RETURN
- PEJA CON 0 QUEUE TYPE
- PEJB DATA L* SRUS= . SRU LIMIT= . CM FL= .
- , EM FL= .*
- PEJC DATA 0
- DATA L* DAYFILE= *
- PEJCL EQU *-PEJC LENGTH OF DAYFILE HEADER LINE
- PEJD DATA 0
- DATA C* PENDING COMMANDS =*
- PEJDL EQU *-PEJD LENGTH OF COMMAND HEADER LINE
- PEJE DATA L* PRU LENGTH= . DC= . FC= . ID= . EC=
- , .*
- PEJF DATA L* . . . . . UJN=
- , LEVEL= *
- PEJG CON 0 LWA+1 OF REPLY UNIT
- TITLE JSN OPTION.
- PJS SPACE 4,10
- ** PJS - PROCESS JSN PARAMETER.
- *
- * USES X - 0, 1, 2, 3, 5, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 4, 6, 7.
- *
- * CALLS BFB, CFP, ESB, GCS, GDR, GJS, GSC, IPR, RRB, SFN.
- *
- * MACROS WRITES.
- *
- * DEFINE (X5) = INCOMPLETE LINE FLAG.
- * .EQ. 1, PARTIAL LINE WRITTEN.
- * .NE. 1, COMPLETE LINE WRITTEN.
- *
- * EXAMPLE -
- *
- * 1 2 3 4 5 6 7
- * 234567890123456789012345678901234567890123456789012345678901234567890
- *
- * JSN SC CS DS LID STATUS JSN SC CS DS LID STATUS
- *
- * ABFB.D. .RB.M90.PRINT QUEUE ABAB.T.ON.BC.M90.EXECUTING
- PJS SUBR ENTRY/EXIT
- SA1 PIJS SET PEEK INFORMATION BITS
- SX6 99999 FORCE EJECT
- BX5 X5-X5 SET LINE COMPLETE
- SA6 LCT
- BX7 X1
- SA7 BQPF+2
- PJS1 RJ IPR ISSUE PEEK REQUEST
- NZ X1,PJS5 IF NO JOBS FOUND
- NZ X5,PJS3 IF INCOMPLETE LINE
- PJS2 SB6 PJSA CHECK FOR PAGE LIMIT
- RJ BFB INITIALIZE BUFFER
- SB7 PJSAL
- RJ CFP
- PJS3 SA1 BQAC+3 GET NEXT ENTRY
- SB6 X1 GET *OUT* POINTER
- MX0 24
- SA1 B6 GET JSN
- BX1 X0*X1
- RJ SFN
- SB7 JSJL+X5 SET JSN IN BUFFER
- RJ ESB
- SX6 1R.
- SA6 B7+
- RJ GSC GET SERVICE CLASS
- SB7 SCJL+X5 SET SERVICE CLASS IN BUFFER
- RJ ESB
- SX6 1R.
- SA6 B7
- SA1 B6+3
- RJ GCS GET CONNECTION STATUS
- SB7 CNJL+X5
- RJ ESB
- SX6 1R.
- SA6 B7
- SA1 B6+2
- RJ GDR GET DESTINATION ROUTING
- SB7 DSJL+X5
- RJ ESB
- SX6 1R.
- SA6 B7+
- SA1 B6+4 GET LID
- MX0 18
- LX1 6
- BX1 X0*X1
- RJ SFN
- SB7 LIJL+X5 SET LID IN BUFFER
- RJ ESB
- SX6 1R.
- SB4 3
- SA6 B7
- RJ GJS GET JOB STATUS
- SB7 STJL+X5 SET JOB STATUS IN BUFFER
- RJ ESB
- MX0 -12
- SA1 BQPF+1 ADVANCE *OUT* POINTER
- BX1 -X0*X1 PEEK REPLY ENTRY LENGTH
- SA2 BQAC+3
- SA3 A2-B1 GET *IN* POINTER
- IX6 X1+X2
- IX3 X6-X3 CALCULATE *OUT* - *IN*
- SX5 X5+B1
- ZR X3,PJS4 IF REPLY BUFFER EMPTY
- SA6 A2
- SB7 X5
- EQ B7,B1,PJS3 IF INCOMPLETE LINE
- WRITES OUTPUT,USBB,MXLL
- BX5 X5-X5
- EQ PJS2 PROCESS NEXT ENTRY
- PJS4 RJ RRB RESET *QAC* REQUEST BUFFER
- NZ X1,PJS6 IF MORE QUEUES TO SCAN
- PJS5 ZR X5,PJSX IF LINE ALREADY WRITTEN
- WRITES OUTPUT,USBB,MXLL
- EQ PJSX RETURN
- PJS6 ZR X5,PJS1 IF LINE ALREADY WRITTEN
- WRITES OUTPUT,USBB,MXLL
- SX5 B0+
- EQ PJS1 PROCESS NEXT BUFFER
- PJSA DATA L* JSN SC CS DS LID STATUS JSN SC CS *
- DATA L*DS LID STATUS*
- DATA 0
- PJSAL EQU *-PJSA LENGTH OF PAGE HEADER
- TITLE UJN OPTION.
- PUJ SPACE 4,10
- ** PUJ - PROCESS UJN PARAMETER.
- *
- * ENTRY (X5) = UJN PARAMETER WORD.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 4, 6, 7.
- *
- * CALLS BFB, CFP, ESB, GCS, GDR, GJS, GSC, IPR, ISM, RRB,
- * SFN.
- *
- * MACROS WRITES.
- *
- * EXAMPLE -
- *
- * 1 2 3 4 5 6 7
- * 234567890123456789012345678901234567890123456789012345678901234567890
- *
- * JSN SC CS DS LID UJN STATUS EXECUTING MESSAGE
- *
- * ABFB.D.DT.BC.M90.MYJOBAA EXECUTING ASSEMBLING LFM
- PUJ SUBR ENTRY/EXIT
- MX0 42 SAVE UJN
- BX6 X0*X5
- SA6 PUJB
- SA6 PUJC
- SA1 PIUJ SET PEEK INFORMATION BITS
- SX6 99999 FORCE EJECT
- SA6 LCT
- BX7 X1
- SA7 BQPF+2
- PUJ1 RJ IPR ISSUE PEEK REQUEST
- NZ X1,PUJX IF NO JOBS FOUND
- PUJ2 SB6 PUJA CHECK FOR PAGE LIMIT
- SB7 PUJAL
- RJ CFP
- RJ BFB BLANK FILL STRING BUFFER
- SA1 BQAC+3 GET NEXT ENTRY
- SB6 X1+ GET *OUT* POINTER
- MX0 42 GET UJN
- SA1 B6+3
- BX1 X0*X1
- SA2 PUJB
- ZR X2,PUJ3 IF NOT SEARCHING FOR SPECIFIC UJN
- BX2 X1-X2
- NZ X2,PUJ7 IF NOT MATCH
- BX6 X6-X6 SPECIFIC UJN FOUND
- SA6 PUJC
- PUJ3 RJ SFN SPACE FILL UJN
- SB7 UJUL
- RJ ESB
- MX0 24
- SA1 B6+ GET JSN
- BX1 X0*X1
- RJ SFN
- SB7 JSUL SET JSN
- RJ ESB
- SX6 1R.
- SA6 B7+
- RJ GSC GET SERVICE CLASS
- SB7 SCUL SET SERVICE CLASS
- RJ ESB
- SX6 1R.
- SA6 B7+
- SA1 B6+4
- RJ GCS GET CONNECTION STATUS
- SB7 CNUL SET CONNECTION STATUS
- RJ ESB
- SX6 1R.
- SA6 B7+
- SA1 B6+2
- RJ GDR GET DESTINATION ROUTING
- SB7 DSUL
- RJ ESB
- SX6 1R.
- SA6 B7
- SA1 B6+15 GET LID
- MX0 18
- LX1 6
- BX1 X0*X1
- RJ SFN
- SB7 LIUL SET LID IN BUFFER
- RJ ESB
- SX6 1R.
- SA6 B7
- SB4 4 GET JOB STATUS
- RJ GJS
- SB7 STUL SET JOB STATUS
- RJ ESB
- SB7 EMUL
- SA1 B6+12 CHECK *MS2W*
- NZ X1,PUJ4 IF MESSAGE PRESENT
- SA1 B6+6 USE MESSAGE IN *MS1W*
- PUJ4 BX6 X1
- RJ ESB
- SA1 L1UL
- SB7 X1+
- SA2 USBB+B7 CHANGE TRAILING ZEROES TO BLANKS
- SX6 1R
- PUJ5 SA2 A2-B1
- NZ X2,PUJ6 IF NONZERO CHARACTER
- SA6 A2
- EQ PUJ5 CHECK NEXT CHARACTER
- PUJ6 WRITES OUTPUT,USBB,B7
- PUJ7 SA2 BQPF+1 GET PEEK REPLY ENTRY LENGTH
- MX0 -12
- BX2 -X0*X2
- SA1 BQAC+3 ADVANCE *OUT* POINTER
- SA3 A1-B1
- IX6 X2+X1
- IX3 X6-X3 CALCULATE *OUT* - *IN*
- SA6 A1
- NZ X3,PUJ2 IF MORE ENTRIES IN REPLY BUFFER
- RJ RRB RESET REQUEST BUFFER
- NZ X1,PUJ1 IF MORE QUEUES TO SCAN
- SA1 PUJC
- ZR X1,PUJX IF NOT SEARCHING FOR UJN
- SA1 PUJB GET UJN
- RJ SFN
- SB7 UJUL SET UJN
- RJ ESB
- SA1 PUJD
- BX6 X1
- SB7 STUL SET JOB STATUS
- RJ ESB
- SA1 L1UL
- SB7 X1
- WRITES OUTPUT,USBB,B7
- SA1 PUJB
- SA2 EMSD * UJN NOT FOUND.*
- RJ ISM ISSUE ERROR MESSAGE
- EQ PUJX RETURN
- PUJA DATA L* JSN SC CS DS LID UJN STATUS EXECUT*
- DATA L*ING MESSAGE*
- DATA 0
- PUJAL EQU *-PUJA LENGTH OF PAGE HEADER
- PUJB CON 0 UJN TO SEARCH FOR
- PUJC CON 0 SEARCHING FOR UJN FLAG
- PUJD DATA L*NOT FOUND *
- TITLE SUBROUTINES.
- BFB SPACE 4,10
- ** BFB - BLANK FILL STRING BUFFER.
- *
- * EXIT (USBB) = STRING BUFFER BLANK FILLED.
- *
- * USES X - 1, 6.
- * A - 1, 6.
- * B - 2.
- BFB SUBR ENTRY/EXIT
- SA1 USBB
- SB2 USBBL
- SX6 1R
- BFB1 SA6 A1
- SB2 B2-B1
- SA1 A1+1
- NZ B2,BFB1 IF NOT END OF BUFFER
- EQ BFBX RETURN
- CFP SPACE 4,15
- ** CFP - CHECK FOR END OF PAGE.
- *
- * ENTRY (B6) = FWA OF PAGE HEADER.
- * (B7) = LENGTH OF PAGE HEADER (WORDS).
- * (LCT) = CURRENT LINE COUNT.
- * (LLM) = CURRENT PAGE SIZE.
- *
- * EXIT LINE COUNT UPDATED.
- * NEW PAGE HEADER WRITTEN IF END OF PAGE.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 2, 6, 7.
- *
- * MACROS WRITEW.
- CFP SUBR ENTRY/EXIT
- SA1 LCT INCREMENT LINE COUNT
- SX6 X1+B1
- SA6 A1
- SA2 LLM GET LINE LIMIT
- IX1 X1-X2
- SX7 X1+4
- NG X7,CFPX IF NOT END OF PAGE
- MX7 0
- SA7 A1 RESET LINE COUNT
- SA1 PUJB
- ZR X1,CFP1 IF NOT SEARCHING FOR SPECIFIC UJN
- SA1 CFPA
- NZ X1,CFPX IF FWA OF PAGE HEADER ALREADY SET
- CFP1 SX6 B6 SAVE FWA OF PAGE HEADER
- SA6 CFPA
- SX7 B7+ SAVE LENGTH OF PAGE HEADER
- SA7 CFPC
- WRITEW OUTPUT,PAGE,B1 WRITE NEW PAGE HEADER
- SA1 CFPA
- SA2 CFPC
- WRITEW OUTPUT,X1,X2
- EQ CFPX RETURN
- CFPA CON 0 FWA OF PAGE HEADER
- CFPC CON 0 LENGTH OF PAGE HEADER
- CIH SPACE 4,10
- ** CIH - COMPUTE USER INDEX HASH.
- *
- * ENTRY (X7) = 18 BIT USER INDEX (RIGHT JUSTIFIED).
- *
- * EXIT (X7) = 4 CHARACTER USER INDEX HASH (LEFT JUSTIFIED
- * WITH ZERO FILL).
- *
- * USES X - 0, 1, 2, 3, 7.
- * B - 2, 3.
- CIH SUBR ENTRY/EXIT
- SB2 59-11 INITIAL SHIFT COUNT
- SB3 5
- MX0 -5
- LX3 B2,X7 BITS 12-16 OF USER INDEX
- BX2 -X0*X3 FIRST CHARACTER OF HASH
- SX2 X2+B1
- LX2 6
- SB2 B2+B3 SHIFT COUNT FOR SECOND CHARACTER
- LX3 B2,X7 BITS 7-11 OF USER INDEX
- BX1 -X0*X3 SECOND CHARACTER OF HASH
- SX1 X1+B1
- BX2 X2+X1
- LX2 6
- SB2 B2+B3 SHIFT COUNT FOR THIRD CHARACTER
- LX3 B2,X7 BITS 2-6 OF USER INDEX
- BX1 -X0*X3 THIRD CHARACTER OF HASH
- SX1 X1+B1
- BX2 X2+X1
- LX2 6
- MX0 -2 FOURTH CHARACTER OF HASH
- BX1 -X0*X7 BITS 1-0 OF USER INDEX
- LX1 3
- SX1 X1+B1
- BX7 X2+X1
- LX7 59-23 LEFT JUSTIFY USER INDEX HASH
- EQ CIHX EXIT
- CLM SPACE 4,15
- ** CLM - CHECK AND CONVERT LIMIT.
- *
- * ENTRY (X5) = VALUE TO CONVERT.
- * (X0) = MASK.
- *
- * EXIT (X6) = CONVERTED VALUE, RIGHT JUSTIFIED.
- * (X7) = CONVERTED VALUE, LEFT JUSTIFIED.
- *
- * USES A - 2.
- * X - 1, 2, 3, 6, 7.
- *
- * CALLS CDD.
- CLM SUBR ENTRY/EXIT
- SA2 =L*NO LIMIT*
- BX1 -X0*X5
- BX3 X0+X1
- BX7 X2
- LX2 -12
- BX6 X2
- ZR X3,CLMX IF NO LIMIT
- MX3 57 COMPLETE MASK (ADD BITS 2-0)
- BX3 X3*X0
- BX1 -X3*X5
- RJ CDD CONVERT TO DECIMAL DISPLAY
- MX3 42 INSURE END OF LINE
- BX7 X3*X4
- EQ CLMX RETURN
- CSD SPACE 4,15
- ** CSD - CONVERT TO SIGNED DISPLAY CODE.
- *
- * ENTRY (X1) = 18-BIT VALUE TO BE CONVERTED, RIGHT JUSTIFIED.
- *
- * EXIT (X6) = SIGNED VALUE, MAXIMUM OF 6 CHARACTERS
- * PLUS SIGN CHARACTER.
- *
- * USES B - 5.
- * X - 1, 2, 3, 4, 6.
- *
- * CALLS CDD.
- CSD SUBR ENTRY/EXIT
- SB5 B0
- BX2 X1
- LX2 59-17
- BX3 -X2 GET COMPLEMENT
- PL X2,CSD1 IF NOT NEGATIVE VALUE
- AX3 59-17 FIND POSITIVE VALUE
- BX1 X3
- SB5 1R- SET NEGATIVE SIGN
- CSD1 RJ CDD CONVERT TO DISPLAY CODE
- ZR B5,CSD2 IF NOT A NEGATIVE VALUE
- SX3 B5 ADD SIGN TO VALUE
- AX4 6
- MX2 6 CLEAR UPPER 6 BITS
- BX4 -X2*X4
- LX3 54
- BX4 X4+X3
- CSD2 MX1 48
- BX6 X1*X4
- EQ CSDX RETURN
- CSR SPACE 4,10
- ** CSR - CONVERT SRU-S.
- *
- * ENTRY (X2) = SRU VALUE (MICRO-UNITS*10).
- *
- * EXIT (X6) = F10.3 FORMAT VALUE.
- * = *NO LIMIT*, IF SRU VALUE .EQ. -0.
- *
- * USES X - 0, 1, 3, 6.
- * A - 3.
- *
- * CALLS CFD.
- CSR1 SA3 =L*NO LIMIT*
- BX6 X3
- CSR SUBR ENTRY/EXIT
- MX0 -42
- BX1 -X0*X2
- BX3 X0+X1
- ZR X3,CSR1 IF NO LIMIT
- SA3 MLPY SRU CONSTANT (=.0001)
- PX1 X1
- FX1 X3*X1 SRU/10000
- RJ CFD CONVERT TO F10.3 FORMAT
- EQ CSRX RETURN
- DTT SPACE 4,10
- ** DTT - DETERMINE TIME UNTIL TIMEOUT.
- *
- * ENTRY (X1) = SCHEDULING FIELD FROM *QAC* BLOCK,
- * RIGHT-JUSTIFIED.
- *
- * EXIT (SUSM) = UPDATED WITH NEW TIME.
- *
- * USES X - 1, 2, 4, 6.
- * A - 1, 6.
- *
- * CALLS CDD.
- *
- * MACROS RTIME.
- DTT SUBR ENTRY/EXIT
- MX2 -24
- BX4 -X2*X1
- RTIME DTTA
- SA1 DTTA GET SECONDS
- LX1 24
- BX1 -X2*X1
- IX4 X4-X1 SECONDS REMAINING UNTIL TIMEOUT
- SX1 X4+30
- SX4 60
- IX1 X1/X4 CONVERT SECONDS TO MINUTES
- RJ CDD CONVERT TO DECIMAL DISPLAY CODE
- SA1 SUSM
- MX2 -18
- BX6 -X2*X6
- LX2 23-17
- BX1 X2*X1 REMOVE TIME
- LX6 23-17
- BX6 X1+X6
- SA6 A1 REPLACE MINUTES REMAINING
- EQ DTTX RETURN
- DTTA DATA 0 REAL TIME
- ESB SPACE 4,15
- ** ESB - ENTER DATA INTO STRING BUFFER.
- *
- * ENTRY (B7) = ADDRESS OF LINE DESCRIPTOR ENTRY.
- * (X6) = FIRST WORD OF DATA TO TRANSFER.
- * (A1) = ADDRESS OF DATA TO TRANSFER, IF MORE THAN
- * ONE WORD.
- *
- * EXIT (B7) = CURRENT STRING BUFFER ADDRESS.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 2, 7.
- * B - 2, 3, 7.
- ESB SUBR ENTRY/EXIT
- SA2 B7+ GET NUMBER OF CHARACTERS TO TRANSFER
- SB2 X2
- LX2 -18
- SX3 X2 GET CHARACTER INDEX
- SB7 USBB+X3 SET STARTING ADDRESS IN STRING BUFFER
- MX0 -6
- ESB1 SB3 10 SET CHARACTERS PER WORD
- ESB2 LX6 6
- SB2 B2-B1
- BX7 -X0*X6
- SB3 B3-B1
- SA7 B7
- SB7 B7+B1
- ZR B2,ESBX IF ALL CHARACTERS TRANSFERRED
- NZ B3,ESB2 IF NOT END OF WORD
- SA1 A1+B1
- BX6 X1
- EQ ESB1 TRANSFER NEXT CHARACTER
- GCS SPACE 4,10
- ** GCS - GET CONNECTION STATUS.
- *
- * ENTRY (B6) = PEEK REPLY ENTRY ADDRESS.
- * (X1) = PEEK REPLY ENTRY WORD CONTAINING CONNECTION
- * STATUS.
- *
- * EXIT (X6) = CONNECTION STATUS, LEFT JUSTIFIED.
- *
- * USES X - 0, 1, 2, 6.
- * A - 1, 2.
- GCS SUBR ENTRY/EXIT
- SA2 B6 GET QUEUE TYPE
- MX0 -12
- LX2 11-23
- BX2 -X0*X2
- SX2 X2-EXQQ
- ZR X2,GCS1 IF EXECUTING JOB
- SA1 GCSA CLEAR CONNECTION STATUS
- BX6 X1
- EQ GCSX RETURN
- GCS1 MX0 -4 GET CONNECTION STATUS FROM REPLY ENTRY
- LX1 0-55
- BX1 -X0*X1
- SA1 CNST+X1 GET CONNECTION STATUS TO DISPLAY
- BX6 X1
- EQ GCSX RETURN
- GCSA DATA 2C CONNECTION STATUS FOR QUEUED FILES
- GDR SPACE 4,10
- ** GDR - GET DESTINATION ROUTING.
- *
- * ENTRY (X1) = PEEK REPLY ENTRY WORD CONTAINING THE
- * DESTINATION *FO-UI*.
- *
- * EXIT (X6) = DESTINATION ROUTING, LEFT JUSTIFIED.
- *
- * USES X - 0, 1, 2, 6.
- * A - 1.
- GDR SUBR ENTRY/EXIT
- MX0 6
- BX2 X0*X1
- NZ X2,GDR1 IF ROUTED TO REMOTE BATCH
- SA1 GDRA
- EQ GDR2 DISPLAY ROUTED TO LOCAL BATCH
- GDR1 SA1 GDRB DISPLAY ROUTED TO REMOTE BATCH
- GDR2 BX6 X1
- EQ GDRX RETURN
- GDRA DATA 2CBC ROUTED TO LOCAL BATCH
- GDRB DATA 2CRB ROUTED TO REMOTE BATCH
- GJS SPACE 4,15
- ** GJS - GET JOB STATUS.
- *
- * ENTRY (B4) = EJT STATUS WORD OFFSET.
- * (B6) = PEEK REPLY ENTRY ADDRESS.
- *
- * EXIT (A1) = ADDRESS OF STATUS DESCRIPTOR.
- * (X6) = FIRST WORD OF STATUS DESCRIPTOR.
- *
- * ERROR TO *PSE*, IF INCORRECT QUEUE TYPE.
- *
- * USES X - 0, 1, 2, 3, 4, 6.
- * A - 1, 2, 3.
- *
- * CALLS DTT.
- GJS SUBR ENTRY/EXIT
- SA1 B6+ GET QUEUE TYPE
- MX0 -12
- LX1 -12
- BX1 -X0*X1
- SA2 QTST SEARCH FOR MATCHING QUEUE TYPE
- MX0 18
- GJS1 ZR X2,GJS3 IF END OF TABLE
- BX3 X0*X2
- LX3 18
- IX4 X1-X3
- SX3 X2 ADDRESS OF STATUS DESCRIPTOR
- SA2 A2+1
- NZ X4,GJS1 IF NO MATCH
- NZ X3,GJS2 IF NOT EXECUTING JOB
- SA1 B6+B4 GET EJT STATUS
- MX0 -5
- LX1 11
- BX6 -X0*X1
- SA3 X6+EJST
- SX6 X6-SUJS
- NZ X6,GJS2 IF NOT SUSPENDED JOB
- LX1 -11-12
- RJ DTT DETERMINE MINUTES UNTIL TIMEOUT
- SA3 EJST+SUJS RESET MESSAGE
- GJS2 SA1 X3
- BX6 X1
- EQ GJSX RETURN
- GJS3 SX1 EMSB * INCORRECT QUEUE TYPE.*
- EQ PSE ISSUE ERROR MESSAGE AND ABORT
- GSC SPACE 4,10
- ** GSC - GET SERVICE CLASS.
- *
- * ENTRY (B6) = PEEK REPLY ENTRY ADDRESS.
- *
- * EXIT (X6) = SERVICE CLASS CHARACTER, LEFT JUSTIFIED.
- *
- * USES X - 0, 1, 2, 3, 4, 6.
- * A - 1, 2.
- * B - 2.
- GSC SUBR ENTRY/EXIT
- MX0 6 GET SERVICE CLASS
- SA1 B6+B1
- SX3 10 CALCULATE WORD ORDINAL
- BX1 X0*X1
- LX1 6
- BX4 X1
- SX6 X3
- IX3 X1/X3
- SA2 GSCA+X3
- IX3 X3*X6
- IX4 X4-X3
- SX3 6 CALCULATE SHIFT COUNT
- IX4 X3*X4
- SB2 X4
- LX2 X2,B2
- BX6 X0*X2 SERVICE CLASS CHARACTER
- EQ GSCX RETURN
- GSCA DATA L+"NMDS"+ SERVICE CLASS CHARACTER STRING
- IPR SPACE 4,15
- ** IPR - ISSUE PEEK REQUEST.
- *
- * ENTRY (BQAC) = *QAC* PEEK REQUEST.
- *
- * EXIT (X1) = 0, IF REQUEST SUCCESSFUL.
- * = 1, IF NO JOBS FOUND.
- *
- * ERROR TO *PSE*, IF *QAC* ERROR ENCOUNTERED.
- *
- * USES X - 0, 1, 2, 6.
- * A - 1, 2, 6.
- *
- * CALLS ISM.
- *
- * MACROS SYSTEM.
- IPR SUBR ENTRY/EXIT
- SYSTEM QAC,R,BQAC ISSUE PEEK REQUEST
- SA1 BQAC CHECK ERROR STATUS
- MX0 -8
- LX1 -10
- BX1 -X0*X1
- ZR X1,IPR3 IF NO ERRORS
- SX2 X1-ER07
- ZR X2,IPR1 IF NO JOBS FOUND
- SX1 EMSE * QAC ERROR ENCOUNTERED.*
- EQ PSE ISSUE ERROR MESSAGE AND ABORT
- * PROCESS NO JOBS FOUND.
- IPR1 SA1 JSNM GET JSN
- SA2 EMSD
- NZ X1,IPR2 IF JSN SPECIFIED
- SA1 IPRA
- NZ X1,IPRX IF NOT FIRST REQUEST
- SA2 EMSC
- IPR2 RJ ISM
- SX1 B1+ SET NO JOBS FOUND FLAG
- IPR3 SX6 B1+ FIRST REQUEST ISSUED
- SA6 IPRA
- EQ IPRX RETURN
- IPRA CON 0 FIRST REQUEST FLAG
- ISM SPACE 4,20
- ** ISM - ISSUE MESSAGE.
- *
- * ENTRY (X1) = JSN OR UJN.
- * = 0, IF JSN OR UJN NOT TO BE ADDED TO MESSAGE.
- * (X2) = FIRST WORD OF MESSAGE.
- * (A2) = BEGINNING ADDRESS OF MESSAGE.
- *
- * USES X - 1, 2, 3, 6.
- * A - 3, 6.
- *
- * CALLS SFN.
- *
- * MACROS MESSAGE, WRITEC.
- *
- * NOTES *ISM* ISSUES A SPECIFIED MESSAGE TO THE
- * OUTPUT FILE IF IT IS A TERMINAL FILE, OR TO
- * THE USER-S DAYFILE IF IT IS NOT. IF A JSN OR
- * UJN IS SPECIFIED, IT IS ADDED TO THE MESSAGE.
- ISM SUBR ENTRY/EXIT
- ZR X1,ISM1 IF NO JSN/UJN
- RJ SFN SPACE FILL JSN/UJN
- MX3 42 ADD JSN/UJN TO MESSAGE
- LX3 -6 PUT JSN/UJN IN CHARACTER POSITIONS 2-8
- BX2 -X3*X2
- LX6 -6
- BX1 X3*X6
- BX6 X2+X1
- SA6 A2+
- ISM1 SA3 FT
- ZR X3,ISM2 IF TERMINAL FILE
- MESSAGE A2,3
- EQ ISMX EXIT
- ISM2 WRITEC O,A2
- EQ ISMX EXIT
- LST SPACE 4,20
- ** LST - PROCESS FILE LENGTH, STATUS AND TYPE.
- *
- * ENTRY (A5)= FNT ENTRY ADDRESS.
- * (X5)= FNT ENTRY.
- *
- * EXIT (A5) = FST WORD ADDRESS.
- * FILE LENGTH IN FOPB+1.
- * FILE TYPE IN FOPB+2.
- * FILE STATUS IN FOPB+3.
- * FILE ACCESS LEVEL IN FOPB+4, FOPB+5.
- *
- * USES X - 0, 1, 2, 3, 4, 5, 6, 7.
- * A - 1, 2, 5, 6, 7.
- * B - 2, 5.
- *
- * CALLS CDD, SFN.
- *
- * MACROS WRITEW.
- *
- LST SUBR
- MX0 42 PROCESS NAME
- BX1 X0*X5
- RJ SFN SPACE FILL NAME
- LX6 42 RIGHT JUSTIFY NAME
- SA6 FOPB
- MX0 -6 SET FILE STATUS
- BX1 -X0*X5
- SA1 FSTT+X1 FILE STATUS
- RJ SFN SPACE FILL NAME
- SB2 15 SET FILE ACCESS LEVEL
- AX3 X5,B2
- MX0 -3
- BX3 -X0*X3
- NZ X3,LST1 IF NOT LEVEL 0
- SA2 SSFL
- NZ X2,LST1 IF SECURE SYSTEM
- SA6 FOPB+4 STORE FILE STATUS
- SX6 B0+
- SA6 FOPB+5
- EQ LST2 GET FILE TYPE
- LST1 MX0 30
- BX4 X0*X6 SAVE FILE STATUS
- SA1 TALV+X3 FILE ACCESS LEVEL
- RJ SFN SPACE FILL ACCESS LEVEL
- LX6 -30
- BX7 -X0*X6
- BX7 X4+X7
- SA7 FOPB+4 SET FILE STATUS AND ACCESS LEVEL
- MX0 12
- BX6 X0*X6 SET LAST TWO CHARACTERS OF ACCESS LEVEL
- SA6 FOPB+5
- LST2 MX0 -6
- AX5 6 FILE TYPE
- BX2 -X0*X5
- SA1 FLTY+X2 FILE TYPE
- MX0 18
- BX1 X0*X1
- RJ SFN SPACE FILL NAME
- LX6 24
- LX5 6+59-12 CHECK WRITE LOCKOUT BIT
- PL X5,LST3 IF NOT WRITE LOCKOUT
- SA1 =1R* DISPLAY * AFTER FILE TYPE
- MX0 -6
- BX6 X0*X6
- BX6 X1+X6
- LST3 LX6 6
- SA6 FOPB+2
- MX0 -2 GET FILE TYPE
- BX5 -X0*X5
- SB5 X5
- SX2 X2-LOFT
- NZ X2,LST3.2 IF NOT LOCAL FILE
- SA2 LSTA SET *TP*
- EQ B5,B1,LST3.1 IF TAPE FILE
- SA2 A2+B1 SET *TT*
- SB2 B5-B1
- NE B2,B1,LST3.2 IF NOT TERMINAL FILE
- LST3.1 MX0 48 REPLACE *LO* IN FILE TYPE FIELD
- LX0 18
- LX2 30
- BX6 X0*X6
- BX6 X2+X6 INSERT NEW FILE TYPE
- SA6 A6+
- * PROCESSING FST ENTRY.
- LST3.2 SA5 A5+1 FST ENTRY
- SA2 =10H
- NE B5,B1,LST3.3 IF NOT TAPE FILE
- LX5 24
- LST3.3 MX0 24
- BX1 X0*X5 FILE LENGTH
- LX1 24
- BX6 X2
- ZR X1,LST4 IF ZERO LENGTH
- RJ CDD CONVERT TO DECIMAL
- LST4 SA6 FOPB+1
- LE B5,B1,LST5 IF MS OR TAPE FILE
- SA1 =10H SET BLANKS FOR STATUS
- EQ LST6 STORE STATUS
- LST5 MX0 -3 SET STATUS FIELD
- SA5 A5 FST ENTRY
- SA1 OPBB
- LX5 59-8
- NG X5,LST6 IF FILE ON INACCESSIBLE DEVICE
- LX5 59-0-59+8
- BX2 -X0*X5
- SA1 FLST+X2
- PL X5,LST6 IF LAST OPERATION READ
- MX0 30 UPDATE LAST OPERATION WITH *WRITE*
- BX1 X0*X1
- SA2 =R*WRITE*
- BX1 X1+X2
- LST6 BX6 X1
- SA6 FOPB+3
- WRITEW OUTPUT,FOPB,FOPL
- EQ LSTX EXIT
- LSTA DATA 2LTP
- DATA 2LTT
- PSE SPACE 4,10
- ** PSE - PROCESS SYSTEM ERROR.
- *
- * ENTRY (X1) = FWA OF ERROR MESSAGE.
- *
- * EXIT JOB ABORTED.
- *
- * MACROS ABORT, MESSAGE.
- PSE BSS 0 ENTRY
- MESSAGE X1 ISSUE DESCRIPTIVE MESSAGE
- MESSAGE EMSA * ENQUIRE ABORTED.*
- ABORT
- RRB SPACE 4,10
- ** RRB - RESET *QAC* REQUEST BUFFER.
- *
- * EXIT (X1) .EQ. 0, IF QUEUE SCAN IS COMPLETE.
- * .NE. 0, IF REQUEST IS TO BE REISSUED.
- *
- * USES X - 0, 1, 2, 3, 6.
- * A - 1, 2, 3, 6.
- * B - 2, 3.
- RRB SUBR ENTRY/EXIT
- SA1 BQAC+4 CHECK QUEUE SELECTION BITS
- MX0 -12
- LX1 -24
- BX1 -X0*X1
- ZR X1,RRBX IF QUEUE SEARCH COMPLETE
- MX0 -1 CLEAR COMPLETION BIT
- SA3 BQAC
- BX6 X0*X3
- SA6 A3
- SA2 A3+B1 RESET BUFFER POINTERS
- SX6 X2
- SA6 A2+1 SET *IN* = *FIRST*
- SB3 NUMQ
- SA2 RRBA
- SA6 A6+B1 SET *OUT* = *FIRST*
- SB2 5 NUMBER OF QUEUE COUNTS PER WORD
- BX6 X6-X6
- SA3 BQPF
- RRB1 ZR B3,RRB3 IF END OF QUEUES
- NZ B2,RRB2 IF NOT END OF WORD
- SA6 A3
- SB2 4 ADVANCE TO NEXT WORD
- SA3 A3+B1
- SX6 B0+
- RRB2 LX1 -1
- SB2 B2-B1
- LX2 -12
- SB3 B3-B1
- PL X1,RRB1 IF QUEUE SCANNED
- BX6 X2+X6
- EQ RRB1 CHECK NEXT QUEUE
- RRB3 SA6 A3+
- EQ RRBX RETURN
- RRBA CON 7777B MAXIMUM QUEUE COUNT
- WCL SPACE 4,15
- ** WCL - WRITE DISPLAY CODED LINES.
- *
- * ENTRY (B6) = FWA OF DATA IN *QAC* REPLY UNIT BUFFER.
- * (B7) = SEARCH FLAG.
- * .EQ. 0, SEARCH FROM LWA TO FWA.
- * .NE. 0, SEARCH FROM FWA TO LWA.
- * (X5) = DATA WORD COUNT.
- *
- * USES X - 1, 5, 6, 7.
- * A - 1, 6.
- * B - 2, 3, 4, 5, 6, 7.
- *
- * CALLS USB.
- *
- * MACROS WRITES.
- *
- * NOTES *WCL* SEARCHES A *QAC* REPLY UNIT BUFFER
- * CHECKING FOR THE FWA OF DATA TO WRITE.
- * IF LESS THAN *MXLC* LINES ARE IN THE REPLY UNIT
- * BUFFER, ALL DATA WILL BE WRITTEN. OTHERWISE
- * THE FIRST ((B7) .NE. 0) OR LAST ((B7) .EQ. 0) *MXLC*
- * LINES WILL BE WRITTEN. LINES ARE TRUNCATED TO *MXLL*
- * CHARACTERS.
- WCL SUBR ENTRY/EXIT
- ZR X5,WCLX IF NO DATA
- SB5 MXLC SET MAXIMUM NUMBER OF LINES TO WRITE
- MX7 -12
- SB2 B6+X5 (B2) = LWA+1 OF DATA
- NZ B7,WCL5 IF SEARCH FROM FWA TO LWA
- SB4 B0 INITIALIZE LINE COUNT
- WCL1 EQ B2,B6,WCL2 IF BEGINNING OF BUFFER
- SB2 B2-B1 GET PREVIOUS WORD
- SA1 B2
- BX1 -X7*X1
- NZ X1,WCL1 IF NO ZERO BYTE TERMINATOR
- SB4 B4+B1 INCREMENT LINE COUNT
- LE B4,B5,WCL1 IF LINE LIMIT NOT REACHED
- SB2 B2+B1 SET FWA OF PREVIOUS LINE
- SB4 B4-B1
- WCL2 SX6 B4+ SAVE LINE COUNT
- SA6 WCLA
- WCL3 SB6 USBBL
- RJ USB
- SB7 B7-WBUF2+1
- SB6 MXLL
- SX5 A1+B1 SAVE POSITION IN PACKED BUFFER
- LE B7,B6,WCL4 IF LINE NOT TOO LONG
- SB7 B6
- WCL4 WRITES OUTPUT,WBUF2,B7
- SA1 WCLA DECREMENT LINE COUNT
- SX6 X1-1
- SA6 A1
- SB2 X5 ADDRESS OF NEXT LINE
- NZ X6,WCL3 IF MAXIMUM LINES NOT WRITTEN
- EQ WCLX RETURN
- WCL5 SB3 B6+
- SB4 1 INITIALIZE LINE COUNT
- WCL6 SA1 B3
- SB3 B3+1
- BX1 -X7*X1
- EQ B2,B3,WCL7 IF END OF BUFFER
- NZ X1,WCL6 IF NO ZERO BYTE TERMINATOR
- SB4 B4+1
- LT B4,B5,WCL6 IF LINE LIMIT NOT REACHED
- WCL7 SB2 B6 SET FWA OF FIRST LINE
- EQ WCL2 WRITE LINES TO OUTPUT
- WCLA CON 0 LINE COUNT
- WML SPACE 4,10
- ** WML - WRITE MESSAGE LINE.
- *
- * ENTRY (A2) = FWA OF *QAC* REPLY UNIT CONTAINING MESSAGE.
- * (X2) = FIRST WORD OF *QAC* REPLY UNIT.
- *
- * USES X - 0, 1, 2, 3.
- * A - 3.
- * B - 2, 6, 7.
- *
- * CALLS USB.
- *
- * MACROS WRITES.
- WML SUBR ENTRY/EXIT
- SA3 A2+1
- ZR X3,WMLX IF NO MESSAGE PRESENT
- LX2 -12 GET MESSAGE LENGTH
- MX0 -12
- BX2 -X0*X2
- SB2 A3
- SX1 10
- IX2 X1*X2 MESSAGE LENGTH (CHARACTERS)
- SB6 X2
- RJ USB
- SB7 B7-WBUF2
- WRITES OUTPUT,WBUF2+1,B7
- EQ WMLX RETURN
- SPACE 4,10
- ** COMMON DECK CONTROL.
- * CONTROL FOR COMCUSB.
- WBUF2 DATA 1R
- DATA 1R
- USBB BSS USBBL STRING BUFFER
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCCDD
- *CALL COMCCFD
- *CALL COMCCIO
- *CALL COMCCOD
- *CALL COMCCPM
- GMS$ EQU 1 FORCE USE OF MASK DURING SORT
- *CALL COMCGMS
- *CALL COMCLFM
- *CALL COMCMVE
- *CALL COMCPFM
- *CALL COMCRDC
- *CALL COMCRDW
- *CALL COMCSFN
- *CALL COMCSYS
- *CALL COMCUSB
- *CALL COMCVLC
- *CALL COMCWTC
- *CALL COMCWTH
- *CALL COMCWTS
- *CALL COMCWTW
- TITLE BUFFER.
- * BUFFERS.
- *
- * NOTE *LBUF*, *RBUF*, AND *WBUF* ARE OVERLAPPING BUFFERS.
- USE BUFFERS
- FBUF BSS 0 GETFNT BUFFER
- OBUF EQU FBUF+FBUFL OUTPUT BUFFER
- BUFF EQU OBUF+OBUFL CONTROL POINT AREA / FNT BUFFER
- LBUF EQU BUFF+200B LIBRARY LIST BUFFER
- RBUF EQU LBUF REPLY BUFFER
- WBUF EQU LBUF WORKING BUFFER
- RFL= EQU LBUF+TBUFL+5 FIELD LENGTH REQUIRED
- SSM= EQU 0 DECLARE *SSM=* ENTRY POINT
- TITLE PRESET.
- PRS SPACE 4,10
- ** ENTRY POINTS.
- ENQUIRE SPACE 4,10
- ** ENQUIRE.
- ENQUIRE BSS 0 ENTRY
- EQ STATUS
- LENGTH SPACE 4,10
- ** LENGTH.
- LENGTH BSS 0 ENTRY
- SA1 ACTR ARGUMENT COUNT
- SX1 X1-1
- NZ X1,PRS2 IF NOT 1 ARGUMENT
- SA1 ARGR CONSTRUCT *FN* KEYWORD FOR ARGUMENT
- SA2 DOFN
- BX6 X1
- SA6 A1+1
- BX7 X2
- SA7 A1
- SB4 2 SET ARGUMENT COUNT
- EQ PRS1
- STATUS SPACE 4,10
- ** STATUS.
- STATUS BSS 0 ENTRY
- SA2 =0LA DEFAULT OPTION
- * EQ PRS
- PRS SPACE 4,25
- ** PRS - PRESET SUBROUTINE.
- *
- * EXIT (OPAL) = .LT. 0, IF ALL OPTIONS TO BE EXECUTED.
- * (BUFF) = CONTROL POINT ADDRESS TO BE READ
- * FOR FIRST *RSB* READ (FIRST 100B OF CPA).
- * (BUFF+100B) = CONTROL POINT ADDRESS TO BE READ
- * FOR SECOND *RSB* READ (SECOND 100B OF CPA).
- * (FT) = FILE TYPE.
- * = 0, IF TERMINAL FILE.
- * (SSFL) .NE. 0, IF SECURE SYSTEM.
- * =0, IF NON-SECURE SYSTEM.
- * (ACAT) = JOB ACCESS CATEGORIES IF SECURE SYSTEM.
- * (ALVL) = JOB ACCESS LEVELS IF SECURE SYSTEM.
- * (UESC) = USER EM SHIFT COUNT FROM CMR.
- *
- * USES X - 0, 1, 2, 3, 4, 5, 6.
- * A - 1, 2, 3, 4, 6.
- * B - 1, 4, 5.
- *
- * CALLS ARG, SAL, STF.
- *
- * MACROS ABORT, MESSAGE, SYSTEM.
- PRS SA1 ACTR ARGUMENT COUNT
- BX6 X2
- SB4 X1
- SA6 DFOP
- * PROCESS ARGUMENTS.
- PRS1 SB1 1
- ZR B4,PRS3 IF NO ARGUMENTS
- SB5 ARGT PROCESS ARGUMENTS
- SA4 ARGR
- RJ ARG
- SA2 TAGS CHECK FOR ARGUMENTS NOT EQUIVALENCED
- LX2 6
- SB4 X2-1R9
- GT B4,PRS2 IF *OP* USED BUT NOT EQUIVALENCED
- SA2 A2+B1
- LX2 6
- SB4 X2-1R9
- GT B4,PRS2 IF *O* USED BUT NOT EQUIVALENCED
- SA2 A2+B1
- LX2 6
- SB4 X2-1R9
- GT B4,PRS2 IF *FN* USED BUT NOT EQUIVALENCED
- ZR X1,PRS3 IF NO ARGUMENT ERRORS
- SA1 ACTR
- SB4 X1-1
- NZ B4,PRS2 IF MORE THAN ONE ARGUMENT
- SA4 ARGR
- MX0 -6
- BX6 -X0*X4
- SX6 X6-1R=
- ZR X6,PRS2 IF SEPARATOR IS *=*
- BX6 X0*X4
- SA6 TAGS
- EQ PRS3 NO ARGUMENT ERRORS
- PRS2 MESSAGE MSGB * ARGUMENT ERRORS.*
- ABORT
- PRS3 SA2 TAGS+3
- ZR X2,PRS3.0 IF NO JSN
- SA1 ACTR
- MX0 54 ELIMINATE OPTION SELECTION CHARACTER
- BX2 X0*X2
- ZR X2,PRS3.1 IF JSN SPECIFIED BUT NOT EQUIVALENCED
- SX1 X1-1
- LX2 -18
- MX0 -18
- BX6 -X0*X2
- NZ X6,PRS2 IF JSN .GT. 4 CHARACTERS LONG
- EQ PRS3.1 CHECK ARGUMENT COUNT
- PRS3.0 SA2 A2+1
- ZR X2,PRS3.2 IF NO UJN
- SA1 ACTR
- MX0 54 ELIMINATE OPTION SELECTION CHARACTER
- BX2 X0*X2
- ZR X2,PRS3.1 IF UJN SPECIFIED BUT NOT EQUIVALENCED
- SX1 X1-1
- PRS3.1 SB4 X1-1
- * CHECK FOR *O* SPECIFIED WITH UJN OR JSN. ANY OTHER PARAMETER
- * IS INCORRECT.
- ZR B4,PRS3.3 IF NO MORE PARAMETERS
- SB4 B4-2
- NZ B4,PRS2 IF TOO MANY PARAMETERS
- SA1 TAGS+B1
- ZR X1,PRS2 IF *O* NOT SPECIFIED
- EQ PRS3.3 CLEAR DEFAULT OPTION
- PRS3.2 SA1 TAGS+2
- ZR X1,PRS3.4 IF FILENAME NOT SPECIFIED
- PRS3.3 BX6 X6-X6 CLEAR DEFAULT OPTION
- SA6 DFOP
- PRS3.4 SA1 TAGS+B1 CHANGE OUTPUT FILE NAME
- ZR X1,PRS3.5 IF *O* NOT SPECIFIED
- SA2 OUTPUT
- MX0 -18
- BX6 -X0*X2
- BX6 X6+X1
- SA6 A2
- PRS3.5 GETPP JPPW,LLM,PRSA
- SX2 OUTPUT
- RJ STF
- SA6 FT
- NZ X6,PRS3.6 IF NOT TERMINAL
- SA2 =1L CLEAR PAGE EJECT
- BX6 X2
- SA6 PAGE
- MESSAGE ZERO,1 CLEAR LINE 1 OF CPA
- PRS3.6 SA1 FT
- WRITEW O,PRSA,X1 CONDITIONALLY WRITE FORMAT EFFECTOR
- * PRESET OPTIONS TO BE EXECUTED.
- PRS4 SA1 TAGS CHECK OPTIONS
- NZ X1,PRS5 IF NOT DEFAULT OPTION
- SA2 DFOP
- BX6 X2
- SA6 A1
- BX1 X2
- PRS5 MX0 6
- BX2 X0*X1
- ZR X2,PRS10 IF THRU ALL SPECIFIED OPTIONS
- LX1 6 SHIFT OPTION TO BOTTON OF WORD
- BX6 X1 RESET OPTION WORD
- SA6 A1+
- * CHECK FOR LEGAL OPTION.
- SA4 OPNS
- PRS6 BX3 X0*X4 CHECK OPTION
- IX3 X3-X2
- ZR X3,PRS8 IF LEGAL OPTION
- SA4 A4+B1
- NZ X4,PRS6 IF MORE OPTIONS TO CHECK
- * SEND ERROR MESSAGE AND ABORT JOB.
- SA1 MSGA+1 PLACE OPTION IN MESSAGE
- LX0 12
- LX2 12
- BX1 -X0*X1
- BX6 X1+X2
- SA6 A1
- MESSAGE MSGA * INCORRECT OPTION X.*
- ABORT
- * SET EXECUTION BITS IN OPTION TABLE.
- PRS8 SX6 B1
- LX6 18
- BX6 X6+X4
- SA6 A4
- LX2 6 RIGHT JUSTIFY OPTION
- SX6 X2-1RA
- NZ X6,PRS4 IF NOT *A* OPTION
- SX6 B1+ SET EXECUTION FLAG WORD FOR ALL OPTIONS
- SA6 OPAL
- EQ PRS4 CHECK REMAINING OPTIONS
- * SET RSB BUFFER WORDS TO READ CONTROL POINT AREA.
- PRS10 SA2 STAT1+1
- BX6 X2
- SA6 BUFF
- SA2 STAT2+1
- BX6 X2
- SA6 BUFF+100B
- SA1 OPAL
- ZR X1,PRS11 IF NOT ALL OPTIONS TO BE EXECUTED
- RJ SAL ASSURE ALL OPTIONS ARE SET
- * CHECK IF SECURE SYSTEM.
- PRS11 GETSSL SSFL GET SYSTEM SECURITY MODE
- SA1 SSFL
- LX1 12
- MX0 -3
- BX6 -X0*X1
- SA6 SSFL SET SECURE SYSTEM FLAG
- * GET USER EXTENDED MEMORY SHIFT COUNT FROM CMR.
- SYSTEM RSB,R,PRSB
- SA1 UESC
- LX1 0-33
- MX0 -3
- BX6 -X0*X1
- SA6 A1
- EQ MAIN
- PRSA BSS 1 PRINT DENSITY
- PRSB VFD 24/1,18/MEFL,18/UESC
- SAL SPACE 4,10
- ** SAL - SET ALL OPTIONS.
- *
- * EXIT ALL OPTION BITS SET FOR EXECUTION.
- *
- * USES X - 3, 4, 5, 6.
- * A - 4, 5, 6.
- SAL SUBR ENTRY/EXIT
- SA4 OPNS+1 OPTION TABLE - SKIP *A* OPTION
- SA5 EBIT EXECUTION BIT MASK
- SAL1 ZR X4,SAL3 IF END OF OPTION TABLE
- BX3 X5*X4 CLEAR OPTION FROM OPTION TABLE
- NZ X3,SAL2 IF EXECUTION BIT SET
- SX6 1 SET EXECUTION BIT
- LX6 18
- BX6 X6+X4
- SA6 A4+
- SAL2 SA4 A4+1 CHECK NEXT OPTION
- EQ SAL1
- SAL3 BX6 X6-X6 RESET END OF OPTION TABLE - SINCE *S*
- SA6 A4-2 AND *T* OPTIONS ARE REDUNDANT
- EQ SALX
- SPACE 4,10
- ** PRESET COMMON DECKS.
- *CALL COMCARG
- *CALL COMCSTF
- SPACE 4,10
- ** PRESET CONSTANTS.
- * ARGUMENT TABLE.
- ARGT BSS 0
- OP ARG NASV,TAGS+0 OPTIONS
- O ARG NASV,TAGS+1 OUTPUT FILE
- FN ARG NASV,TAGS+2 FILE NAME
- JSN ARG =1,TAGS+3 JSN
- UJN ARG =1,TAGS+4 UJN
- ARG
- ZERO CON 0
- * MESSAGES.
- MSGA DATA C* INCORRECT OPTION X.*
- MSGB DATA L* ARGUMENT ERRORS.*
- * DEFAULT OPTIONS.
- DOFN VFD 42/0LFN,18/1R=
- DFOP CON 0
- SPACE 4,10
- END
cdc/nos2.source/opl871/enquire.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator