cdc:nos2.source:opl871:vej
Table of Contents
VEJ
Table Of Contents
- [00008] VEJ - VERIFY JOB FILE INFORMATION.
- [00010] VERIFY JOB FILE.
- [00125] MACRO DEFINITIONS.
- [00126] ERROR - ERROR PROCESSING.
- [00140] ABORT - ABORT CONTROL POINT.
- [00155] MAIN PROGRAM.
- [00249] OAST - ORIGIN TYPE AND SERVICE CLASS TABLE.
- [00261] ERROR PROCESSING ROUTINES.
- [00263] ABT - ABORT CONTROL POINT.
- [00285] TERL - TABLE OF ERROR CODES.
- [00301] TDFM - TABLE OF DAYFILE MESSAGE ADDRESSES.
- [00324] AIF - ASSIGN INPUT FILE.
- [00514] CUT - CONVERT USER NAME TO TID.
- [00612] DRF - DROP FILE AND QFT ENTRY.
- [00639] GFA - GET FET ADDRESS.
- [00655] WIF - WRITE INPUT FILE.
- [00718] VCA - VALIDATE CENTRAL ADDRESS.
- [00763] PRS - PRESET ROUTINE.
- [00880] DOT - DETERMINE ORIGIN TYPE OF CONTROL POINT.
Source Code
- VEJ.txt
- IDENT VEJ,VEJ
- PERIPH
- BASE MIXED
- SST
- IOQ$ EQU 1 DEFINE TABLE FOR *SFA* MACRO
- *COMMENT VEJ - VERIFY JOB FILE INFORMATION.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE VEJ - VERIFY JOB FILE INFORMATION.
- SPACE 4
- *** VEJ - VERIFY JOB FILE.
- * R. A. JAPS. 76/01/13.
- * M. J. CARIDDI. 81/07/17.
- SPACE 4
- *** *VEJ* IS CALLED TO VERIFY BASIC JOB COMMAND AND OTHER
- * REQUIRED ACCOUNTING TYPE COMMANDS (CURRENTLY, ONLY THE
- * USER COMMAND) FOR A NEW JOB (INPUT) FILE. *VEJ* WILL
- * VERIFY THE INFORMATION, CREATE A SYSTEM NAME FOR THE
- * NEW JOB AND ASSIGN THE FILE TO THE APPROPRIATE DEVICE.
- *
- * *VEJ* MUST BE CALLED BY A SUBSYSTEM.
- SPACE 4
- *** CALL.
- *
- *T 18/ *VEJ*, 2/1, 22/ 0, 18/ FET ADDRESS
- *
- * FORMAT OF FET.
- *
- *T,FET 42/ , 6/ , 11/ , 1/0
- *T,FET+1 20/ , 1/ SP, 15/ , 24/ TID
- *T,FET+2 42/ , 18/ LWA (IN)
- *T,FET+3 42/ , 18/ FWA (OUT)
- *T,FET+4 21/ , 3/ AL, 36/
- *
- * SP = SECURITY PROCESSING BIT.
- * INDICATES THAT *AL* FIELD HAS BEEN SPECIFIED.
- * TID = TERMINAL ID.
- * IF THE UPPER SIX BITS ARE EQUAL TO 77B, THE
- * LOWER EIGHTEEN BITS CONTAIN THE COMPLEMENT
- * OF A CM ADDRESS OF A TWO WORD FAMILY NAME - USER
- * NUMBER AREA.
- * TAG+0 42/ FAMILY NAME , 18/ 0
- * TAG+1 42/ USER NAME , 18/ 0
- * IF THE UPPER SIX BITS ARE NOT EQUAL TO 77B, THE
- * LOWER TWENTYONE BITS CONTAIN THE TID.
- * LWA = LAST WORD ADDRESS OF BUFFER CONTAINING JOB/USER
- * COMMANDS.
- * FWA = FIRST WORD ADDRESS OF BUFFER.
- * AL = ACCESS LEVEL LIMIT FOR COMMUNICATIONS LINE.
- * ON A SECURED SYSTEM, THE UPPER ACCESS LEVEL LIMIT
- * FOR THE JOB MUST BE .LE. THIS VALUE (IF SPECIFIED).
- SPACE 4
- *** RETURN.
- *
- *T,FET 42/ JOBNAME , 6/ EC, 11/ , 1/1
- *T,FET+1 36/ , 24/ TID
- *T,FET+2 42/ , 18/ LWA
- *T,FET+3 42/ , 18/ FWA
- *T,FET+4 12/ FNT OFF , 48/
- *
- * EC = ERROR CODES.
- * 0 = NO ERROR ENCOUNTERED.
- * 1 = JOB COMMAND ERROR.
- * 2 = BUFFER ARGUMENT ERROR. (FATAL)
- * 3 = ACCOUNT COMMAND ERROR.
- * 4 = FNT/DEVICE FULL.
- * 5 = INCORRECT TID.
- * 6 = INCORRECT REQUEST. (FATAL)
- * 7 = DEVICE UNAVAILABLE.
- *
- * FNT OFF = OFFSET OF FNT ENTRY IN NFL.
- SPACE 4
- ** DAYFILE MESSAGES.
- *
- *
- * * VEJ - BUFFER ARGUMENT ERROR.*
- * FET BUFFER POINTERS ARE INCORRECT.
- * (FWA .LT. LWA .LE. FL)
- *
- * * VEJ - INCORRECT REQUEST.*
- * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS -
- * 1. *VEJ* NOT CALLED BY A SUBSYSTEM.
- * 2. FET ADDRESS OUT OF RANGE.
- * 3. A JOB WITHOUT SSJ= PRIVILEGES ATTEMPTED TO SPECIFY
- * A SYSTEM SECTOR ADDRESS IN THE SYSTEM REQUEST.
- * 4. SYSTEM SECTOR BUFFER NOT WITHIN FL.
- * 5. CALLER WAS NOT SYSTEM ORIGIN OR DID NOT HAVE
- * SYSTEM ORIGIN PRIVILEGES.
- SPACE 4
- ** ROUTINES CALLED.
- *
- * 0AV - ACCOUNT VALIDATION.
- * 0BF - BEGIN FILE.
- * 0DF - DROP FILE.
- * 0DQ - DROP QFT ENTRY.
- * 0VJ - VERIFY JOB AND USER COMMAND.
- SPACE 4
- * COMMON DECKS.
- *CALL COMPMAC
- *CALL COMSCPS
- *CALL COMSDSP
- *CALL COMSEVT
- *CALL COMSMSP
- *CALL COMSSCD
- *CALL COMSSSD
- *CALL COMSSSE
- *CALL COMSSSJ
- *CALL COMSWEI
- *CALL COMSZOL
- SPACE 4
- **** DIRECT LOCATION ASSIGNMENTS.
- FS EQU 20 - 24 FST (5 LOCATIONS)
- QA EQU 26 ORDINAL OF QFT ENTRY
- FT EQU 27 TABLE FWA
- CN EQU 30 - 34 CM BUFFER (5 LOCATIONS)
- SC EQU 35 SCRATCH
- FN EQU 40 - 44 FILE NAME (5 LOCATIONS)
- OT EQU 46 ORIGIN TYPE
- ER EQU 47 ERROR STATUS
- FA EQU 57 NFL FNT ENTRY OFFSET
- ****
- TITLE MACRO DEFINITIONS.
- ** ERROR - ERROR PROCESSING.
- *
- * ERROR ER
- PURGMAC ERROR
- ERROR MACRO E
- MACREF ERROR
- LDN E
- STD ER
- LJM VEJ5 SET ERROR CODE
- ENDM
- SPACE 4
- ** ABORT - ABORT CONTROL POINT.
- *
- * ABORT ER
- *
- * ER = ERROR CODE.
- PURGMAC ABORT
- ABORT MACRO E
- MACREF ABORT
- LDN E
- RJM ABT
- ENDM
- EJECT
- TITLE MAIN PROGRAM.
- ORG PPFW
- SPACE 4
- ** MAIN PROGRAM.
- VEJ BSS 0 ENTRY
- RJM PRS PRESET
- LDN ZERL CLEAR DLID / SET LOWER ACCESS LEVEL LIMIT
- CRD CN
- LDC STMT SET FIRST WORD OF PP BUFFER
- STD CN
- LDC 400 SET *DO NOT DELETE PASSWORD* FLAG
- RAD CN+2
- LDN 0
- STM IOSS+INSQ*5+1 CLEAR DLID IN QFT / SYSTEM SECTOR
- LDM IOSS+INSQ*5+2
- LPN 77
- STM IOSS+INSQ*5+2
- LDM OAST,OT SET ORIGIN AND SERVICE CLASS
- STM IOSS+SCLQ*5+0
- EXECUTE 0VJ,OVL0 VERIFY JOB AND USER COMMAND
- PJN VEJ1 IF VERIFICATION COMPLETE
- ERROR ERUA * DEVICE UNAVAILABLE.*
- VEJ1 LDM SLSS CLEAR SLID IN SYSTEM SECTOR
- SCN 77
- STM SLSS
- LDN 0
- STM SLSS+1
- LDD ER
- LMN ERAC
- ZJN VEJ2 IF *USER COMMAND ERROR*
- VEJA LDN 0
- * LDN 1 (*SP* BIT SPECIFIED)
- ZJN VEJ4 IF *SP* NOT SPECIFIED OR UNSECURED SYSTEM
- LDM IOSS+5*INSQ+3 CHECK UPPER ACCESS LEVEL LIMIT
- LPN 7
- VEJB SBN 1
- * SBN AL+1 (SPECIFIED ACCESS LEVEL + 1)
- MJN VEJ4 IF JOB MAY BE CREATED
- LDN ERJC SET *JOB COMMAND ERROR* STATUS
- STD ER
- LDN JCIE
- STM VEJC
- UJN VEJ3 DO NOT CREATE JOB
- * CHECK IF JOB SHOULD BE CREATED DESPITE USER COMMAND ERROR.
- VEJ2 LDD CN CHECK DESTINATION LID ATTRIBUTES
- ZJN VEJ3 IF NO DESTINATION LID
- SHN 21-13
- MJN VEJ3 IF DESTINED FOR LOCAL HOST LID
- SHN 21-11-21+13
- MJN VEJ3 IF VALIDATION REQUIRED FOR THIS LID
- LDN 0 CLEAR ERROR CODE
- STD ER
- STM JASS CLEAR JOB ABORT CODE
- UJN VEJ4 CREATE JOB
- VEJ3 LDC UNIE SET *USER NAME / PASSWORD NOT VALID*
- * LDC JCIE (*JOB COMMAND ERROR*)
- VEJC EQU *-1
- STM JASS SET JOB ABORT CODE IN SYSTEM SECTOR
- * RETURN HERE FROM *WIF* IF MASS STORAGE ERROR.
- VEJ4 LDN ZERL CLEAR ENCRYPTED PASSWORD
- CRM EPSS,ON
- RJM AIF ASSIGN INPUT FILE
- RJM WIF WRITE INPUT FILE
- * ENTER HERE FROM *ERROR* MACRO CALLS.
- VEJ5 LDD FN+3 SET ERROR CODE
- SCN 77
- LMD ER
- STD FN+3
- LDN 1 SET FET COMPLETE
- STD FN+4
- RJM GFA SET FNT OFFSET
- ADN 4
- CRD CM
- LDD FA
- STD CM
- RJM GFA WRITE FET INFORMATION
- ADN 4
- CWD CM
- SBN 4
- CWD FN
- DPP MONITOR DPPM DROP PPU
- LJM PPR
- OAST SPACE 4,10
- ** OAST - ORIGIN TYPE AND SERVICE CLASS TABLE.
- *
- *T 6/ SC, 6/ OT
- * SC = SERVICE CLASS.
- * OT = ORIGIN TYPE.
- OAST BSS 0
- VFD 6/SYSC,6/SYOT
- VFD 6/BCSC,6/BCOT
- VFD 6/RBSC,6/RBOT
- VFD 6/TSSC,6/IAOT
- TITLE ERROR PROCESSING ROUTINES.
- ABT SPACE 4,10
- ** ABT - ABORT CONTROL POINT.
- *
- * ENTRY (A) = ERROR CODE.
- *
- * EXIT TO *PPR*.
- *
- * USES T1.
- *
- * CALLS DFM.
- *
- * MACROS MONITOR.
- ABT SUBR ENTRY
- STD T1
- LDM TDFM,T1 GET FWA OF DAYFILE MESSAGE
- ZJN ABT1 IF NO ADDRESS
- ADC CPON
- RJM DFM
- ABT1 MONITOR ABTM ABORT CONTROL POINT
- LJM PPR
- TERC SPACE 4,5
- ** TERL - TABLE OF ERROR CODES.
- * THE ORDER OF *TERC* IS DEPENDENT ON *TDFM*.
- TERC BSS 0
- LOC 1
- ERJC BSS 1 JOB COMMAND ERROR
- ERBA BSS 1 BUFFER ARGUMENT ERROR
- ERAC BSS 1 USER COMMAND ERROR
- ERFD BSS 1 FNT/DEVICE FULL
- ERTD BSS 1 INCORRECT TID
- ERIR BSS 1 INCORRECT REQUEST
- ERUA BSS 1 DEVICE UNAVAILABLE
- LOC *O
- ORG TERC
- TDFM SPACE 4
- ** TDFM - TABLE OF DAYFILE MESSAGE ADDRESSES.
- * THE ORDER OF *TDFM* IS DEPENDENT ON *TERC*.
- TDFM BSS 0
- LOC 0
- CON 0
- CON 0 JOB COMMAND ERROR
- CON DMBA BUFFER ARGUMENT ERROR
- CON 0 ACCOUNT COMMAND ERROR (PROCESSED BY *0VJ*)
- CON 0 FNT/DEVICE FULL
- CON 0 INCORRECT TID
- CON DMIR INCORRECT REQUEST
- CON 0 DEVICE UNAVAILABLE
- LOC *O
- * DAYFILE MESSAGES.
- DMBA DATA C* VEJ - BUFFER ARGUMENT ERROR.*
- DMIR DATA C* VEJ - INCORRECT REQUEST.*
- AIF TITLE SUBROUTINES.
- ** AIF - ASSIGN INPUT FILE.
- *
- * EXIT (FA) = RELATIVE FNT ADDRESS IN NFL.
- * (QA) = QFT ORDINAL.
- * (T5) = EQUIPMENT.
- * (T6) = FIRST TRACK.
- * (FN - FN+4) = FNT ENTRY.
- * (FS - FS+4) = FST INFORMATION.
- *
- * ERROR TO ERROR PROCESSOR IF DEVICE FULL OR ERROR FROM *0DF*.
- *
- * USES T5, T6, CM - CM+7, FN - FN+4, FS - FS+2,
- * FS+4, QA.
- *
- * CALLS CTE, DRF, GFO, *0BF*, *0DF*.
- *
- * MACROS ERROR, EXECUTE, MONITOR, SFA.
- AIF SUBR ENTRY/EXIT
- * ASSIGN QFT ENTRY.
- LDN ZERL
- CRD CM+3
- LDN 7 SET CREATION, EJT AND INTERLOCK BITS
- STD CM+7
- LDN PQFT
- RJM CTE CREATE TABLE ENTRY
- ZJP AIF6 IF QFT ENTRY NOT ASSIGNED
- CRD FN
- CRM IOSS,ON
- SBN 1
- CRM OJSS,ON
- LDD CM+1 PRESERVE QFT ORDINAL
- STD QA
- LDN 0 ZERO FILE FILE NAME
- STD FN+2
- STD FN+3
- STD FN+4
- * ASSIGN FNT/FST AND MASS STORAGE TO FILE.
- AIF1 LDN NEEQ SELECT NO MASS STORAGE ASSIGNMENT
- STD FS
- LDM IOSS+5*INSQ+3 GET LOWER ACCESS LEVEL LIMIT OF JOB
- LPN 70
- SHN 3
- LMD TH SET ACCESS LEVEL ON *0BF* CALL
- ADN 5 RETURN ON NFL INCREASE, LOCAL FILE LIMIT
- STM OVL0-1
- EXECUTE 0BF,OVL0 BEGIN FILE
- UJN AIF2 CHECK RETURN STATUS
- * PROCESS ADVANCE EXIT FROM *0BF* IF FILE ALREADY EXISTS.
- NFA FA,R READ FNT ENTRY
- CRD FS
- RJM SFB SET FILE BUSY
- NJN AIF3 IF FILE BUSY REJECT
- LDN 1 DROP DUPLICATE FILE
- STM OVL0-1
- EXECUTE 0DF,OVL0
- PJN AIF4 IF FILE UNLOADED
- AOD FS+4
- NFA FA,R CLEAR FILE BUSY
- CWD FS
- ERROR ERUA * DEVICE UNAVAILABLE.*
- * PROCESS LOCAL FILE LIMIT OR WAIT FOR NFL INCREASE.
- AIF2 ZJN AIF5 IF FNT ENTRY CREATED
- LMN 4
- ZJP AIF6 IF LOCAL FILE LIMIT
- AIF3 PAUSE NE
- DELAY
- AIF4 LJM AIF1 RETRY FILE CREATION
- * ASSIGN MASS STORAGE.
- AIF5 LDN ZERL REQUEST MASS STORAGE SPACE
- CRD CM
- LDN 2
- STD CM+4
- LDN INPS
- STD CM+2
- LDM IOSS+5*INSQ+3 GET LOWER ACCESS LEVEL LIMIT OF JOB
- LPN 70
- SHN 3
- LMC 4000 SET ACCESS LEVEL SELECTION ON *RTCM*
- STD CM+3
- MONITOR RTCM REQUEST TRACK CHAIN
- LDD CM+4
- NJN AIF7 IF DISK SPACE ASSIGNED
- * PROCESS DEVICE FULL.
- LDD CP CONSOLE MESSAGE = *TRACK LIMIT.*
- ADN MS2W
- CWM AIFE,TR
- LDN ZERL CLEAR PARAMETERS
- CRD CM
- LDN TKLE SET TRACK LIMIT EVENT
- STD CM+4
- * LDN 0 SET SYSTEM EVENT
- * STD CM+3
- MONITOR EATM
- AIF6 RJM DRF DROP FILE
- ERROR ERFD *FNT/DEVICE FULL.*
- * SET INFORMATION IN FNT/FST AND SYSTEM SECTOR.
- AIF7 STD T6 SET FIRST TRACK
- STD FS+1
- STM IOSS+ENTQ*5+1
- STD FS+2 SET CURRENT TRACK
- LDD CM+1 SET EQUIPMENT
- STD FS
- STM IOSS+ENTQ*5+0
- STD T5
- LDC QFFT*100
- STD FN+4
- LDD MA SET FNT IN SYSTEM SECTOR
- CWD FN
- CRM FNSS,ON
- LDN 15 SET FILE NOT BUSY
- STD FS+4
- LDN 2 SET INITIAL FILE LENGTH
- STM FLSS+1
- LDC FLSS GET ADDRESS OF SYSTEM SECTOR FILE LENGTH
- RJM RFI SET FILE SIZE INDEX IN QFT ENTRY
- LDC 2RIN SET DISPOSITION CODE FIELD
- STM DCSS
- LDN 1 SET FILE PLACED IN QUEUE FLAG
- STM FGSS
- LDD CP ASSIGN QFT TO EJT
- ADN TFSW
- CRD CM
- LDD CM
- STM IOSS+ENTQ*5+4
- SFA EJT SET CREATION JSN
- ADK JSNE
- CRD CM
- LDD CM
- STM CJSS
- LDD CM+1
- STM CJSS+1
- LDC MMFL SET RESIDENT MACHINE ID
- CRD CM
- LDD CM
- STM RMSS
- STM CMSS
- LDN PDTL SET QUEUED DATE/TIME
- CRD CM
- LDD CM+2
- STM CDSS+2
- LDD CM+3
- STM CDSS+3
- LDD CM+4
- STM CDSS+4
- LDM ACSS+3 GET CREATION USER INDEX
- LPN 77
- STM IOSS+JSNQ*5+2
- LDM ACSS+4
- STM IOSS+JSNQ*5+3
- * GET CREATION FAMILY ORDINAL.
- LDD MA
- CWM FMSS,ON
- SBN 1
- CRD FN READ FAMILY NAME
- LDN 1
- RJM GFO
- LDD FN+4
- NJN AIF8 IF ORDINAL FOUND
- STM IOSS+JSNQ*5+2 SET NO CREATION USER
- STM IOSS+JSNQ*5+3
- UJN AIF9 MOVE FILE NAME TO FNT WORD
- AIF8 SHN 6
- RAM IOSS+5*JSNQ+2
- AIF9 LDD MA MOVE FILE NAME TO FNT WORD
- CWM FNSS,ON
- SBN 1
- CRD FN
- LJM AIFX RETURN
- AIFE DATA C* TRACK LIMIT.*
- CUT SPACE 4,10
- ** CUT - CONVERT USER NAME TO TID.
- *
- * ENTRY (T1+3 - T1+4) = TID FROM FET.
- * (OT) = ORIGIN TYPE.
- *
- * EXIT ROUTING INFORMATION SET IN SYSTEM SECTOR.
- *
- * USES T1, T2, CN - CN+4, FN - FN+4.
- *
- * CALLS GFO, VCA, *0AV*.
- *
- * MACROS ABORT, ERROR, EXECUTE.
- CUT4.1 LDD T1 CHECK USER INDEX
- SHN 14
- ADD T2
- ZJN CUT4.4 IF NO USER INDEX PRESENT
- STM DASS+4 SET DESTINATION TID (USER INDEX)
- STM IOSS+SCLQ*5+2
- SHN -14
- STM IOSS+SCLQ*5+1
- LDM DASS+3 COMBINE UI WITH 7TH CHARACTER OF UN
- SCN 77
- LMD T1
- STM DASS+3
- LDD MA GET FAMILY ORDINAL
- CWM FDSS,ON
- SBN 1
- CRD FN
- * LDN (NONZERO) DO NOT ADD FAMILY
- RJM GFO GET FAMILY ORDINAL
- LDD FN+4
- ZJN CUT4.4 IF FAMILY NOT FOUND
- SHN 6
- RAM IOSS+SCLQ*5+1
- UJN CUTX RETURN
- CUT4.4 ERROR ERTD *INCORRECT TID*
- CUT5 LDN 0 SET BATCH ID
- STM IOSS+SCLQ*5+1
- LDD T5
- STM IOSS+SCLQ*5+2
- SBN IDLM CHECK FOR INCORRECT ID
- PJN CUT4.4 IF INCORRECT TID
- CUT SUBR ENTRY/EXIT
- LDD OT
- LMN EIOT
- NJN CUT5 IF NOT REMOTE BATCH
- LDD T1+3
- SHN -6
- LMN 77
- NJN CUT4.4 IF NOT COMPLEMENT OF ADDRESS
- LDD T1+3
- SHN 14
- LMN 77
- LMD T1+4
- LMC 777777
- RJM VCA VALIDATE CENTRAL ADDRESS
- ZJN CUT1 IF INCORRECT ADDRESS
- ADN 1
- RJM VCA VALIDATE CENTRAL ADDRESS
- NJN CUT2 IF VALID ADDRESS
- CUT1 ABORT ERBA * BUFFER ARGUMENT ERROR.*
- CUT2 SHN 14 READ USER NAME
- ADD RA
- SHN 6
- CRD FN
- CRM DASS,ON
- SBN 2
- CRD CN
- CRM FDSS,ON
- LDD CN
- NJN CUT3 IF FAMILY NAME PRESENT
- LDC FOTP SET DEFAULT FAMILY NAME
- CRD CN
- LDD CN
- SHN 14
- LMD CN+1
- ADN 1
- CRD CN
- CRM FDSS,ON
- CUT3 LDD FN+3
- LPN 37
- STD T1
- SHN 14
- LMD FN+4
- STD T2
- NJN CUT4 IF USER INDEX PRESENT
- EXECUTE 0AV,OVL0 VALIDATE USER NAME
- PJN CUT4 IF NO ERROR
- ERROR ERUA * DEVICE UNAVAILABLE.*
- CUT4 LJM CUT4.1 CHECK USER INDEX
- DRF SPACE 4,10
- ** DRF - DROP FILE AND QFT ENTRY.
- *
- * ENTRY (FA) = FNT ADDRESS.
- * (QA) = ORDINAL OF QFT ENTRY.
- *
- * EXIT (A) = (QA) = 0.
- *
- * CALLS *0DF*, *0DQ*.
- *
- * MACROS EXECUTE.
- DRF SUBR ENTRY/EXIT
- LDN 1
- STM OVL0-1 SELECT UNLOAD OPTION FOR *0DF*
- LDD FA
- ZJN DRF1 IF NO FILE
- EXECUTE 0DF,OVL0 DROP LOCAL FILE
- DRF1 LDD QA
- ZJN DRFX IF NO QFT ENTRY
- * LDN 1
- * STM OVL0-1 SELECT NO DROP OF DISK SPACE
- EXECUTE 0DQ,OVL0
- LDN 0 CLEAR QFT ORDINAL
- STD QA
- UJN DRFX RETURN
- GFA SPACE 4,5
- ** GFA - GET FET ADDRESS.
- *
- * ENTRY (IR+3 - IR+4) = FET ADDRESS.
- *
- * EXIT (A) = FET ADDRESS.
- GFA SUBR ENTRY/EXIT
- LDD IR+3
- LPN 37
- SHN 6
- ADD RA
- SHN 6
- ADD IR+4
- UJN GFAX RETURN
- WIF SPACE 4,25
- ** WIF - WRITE INPUT FILE.
- *
- * ENTRY (T5) = EQUIPMENT.
- * (T6) = FIRST TRACK.
- * (FA) = NFL FNT ENTRY OFFSET.
- * (FN - FN+4) = FNT ENTRY.
- * (FS - FS+4) = FST ENTRY.
- * (QA) = ORDINAL OF QFT ENTRY.
- * *BFMS* CONTAINS SYSTEM SECTOR BUFFER.
- *
- * EXIT (FA) = RELATIVE FNT ADDRESS IN NFL.
- *
- * ERROR TO *VEJ4*.
- *
- * USES FA, SC, T5, CM - CM+4, FN - FN+4, FS - FS+4.
- *
- * CALLS DRF, WEI, WSS.
- *
- * MACROS ENDMS, NFA, SETMS, SFA.
- WIF SUBR ENTRY/EXIT
- * WRITE SYSTEM SECTOR AND EOI.
- LDD FA
- ZJN WIFX IF NO FILE
- STM FASS SET FST ADDRESS IN SYSTEM SECTOR
- STD SC SAVE FNT OFFSET
- LDN FSMS
- STD FS+3
- NFA FA,R UPDATE FNT / FST IN NFL
- CWD FN
- ADN FSTL
- CWD FS
- LDD QA
- STM GQSS
- LDN 0 CLEAR FST ADDRESS
- STD FA
- SETMS IO,,WDSB
- RJM WSS WRITE SYSTEM SECTOR
- MJN WIF1 IF ERROR
- RJM WEI WRITE EOI SECTOR
- PJN WIF2 IF NO ERROR
- WIF1 LDD SC
- STD FA
- RJM DRF DROP FILE
- LJM VEJ4 RETRY ASSIGNING INPUT FILE
- WIF2 ENDMS
- LDD SC UPDATE FNT/FST IN NFL
- STD FA
- LDN 2 UPDATE QFT ENTRY
- STM IOSS+JSNQ*5+4
- LDN QFTE-1
- STD T5
- SFA QFT,QA SET QFT ADDRESS
- ADN 1 WRITE QFT DATA
- CWM IOSS+5,T5
- SBN QFTE-JSNQ WRITE INTERLOCK WORD
- CWM IOSS,ON
- LJM WIFX RETURN
- VCA SPACE 4,10
- ** VCA - VALIDATE CENTRAL ADDRESS.
- *
- * ENTRY (A) = CENTRAL ADDRESS TO VALIDATE.
- *
- * EXIT (A) = 0, IF ADDR .LE. 1, OR .GE. FL.
- * (A) = CENTRAL ADDRESS IF VALID.
- * (T1 - T2) = CENTRAL ADDRESS.
- VCA1 STD T1 CLEAR UPPER PART OF ADDRESS
- VCA2 LDN 0 SET BAD ADDRESS
- VCA SUBR ENTRY/EXIT
- STD T2
- SCN 1
- ZJN VCA1 IF ADDRESS .LE. 1
- SCN 77
- SHN 6
- STD T1
- SHN 6
- SBD FL
- PJN VCA2 IF ADDRESS .GE. FL
- LDD T1
- SHN 14
- LMD T2
- UJN VCAX RETURN
- SPACE 4
- * COMMON DECKS.
- SSJ$ EQU 1 ALLOW NON-SYSTEM ORIGIN SSJ= JOBS
- *CALL COMPCUA
- *CALL COMPCTE
- IFP$ SET 1 SELECT *COMPGFP* REMOTE INITIALIZATION
- QFT$ SET 1 SELECT *COMPGFP* QFT ADDRESSING
- EJT$ SET 1 SELECT *COMPGFP* EJT ADDRESSING
- *CALL COMPGFP
- *CALL COMPRFI
- *CALL COMPSFB
- GFO$ SET 1 SELECT *COMPUFT* GET FAMILY ORDINAL
- *CALL COMPUFT
- *CALL COMPWEI
- WCS$ EQU 1 CONSECUTIVE SECTOR AFTER SYSTEM SECTOR
- *CALL COMPWSS
- PRS TITLE PRESET.
- ** PRS - PRESET ROUTINE.
- *
- * EXIT (OT) = JOB ORIGIN TYPE.
- *
- * USES FA, QA, CM - CM+4, T1 - T5.
- *
- * CALLS CUT, DOT, GFA, IFP, VCA.
- *
- * MACROS ABORT.
- PRS SUBR ENTRY/EXIT
- LDN 0
- STD FA CLEAR FST ADDRESS
- STD QA CLEAR QFT ORDINAL
- RJM IFP INITIALIZE *COMPGFP* ROUTINES
- RJM DOT DETERMINE ORIGIN TYPE
- MJN PRS1 IF NOT SUBSYSTEM
- LDD IR+3 CHECK FET ADDRESS
- LPN 37
- SHN 14
- LMD IR+4
- RJM VCA VALIDATE CENTRAL ADDRESS
- ZJN PRS1 IF INCORRECT ADDRESS
- ADN 4
- RJM VCA VALIDATE CENTRAL ADDRESS
- NJN PRS2 IF VALID ADDRESS
- PRS1 ABORT ERIR * VEJ - INCORRECT REQUEST.*
- * SET FET PARAMETERS.
- PRS2 RJM GFA GET FET ADDRESS
- ADN 2
- CRD T1 READ LWA
- ADN 1
- CRD CM READ FWA
- LDD T1+3
- LPN 37
- STD T1+3
- SHN 14
- LMD T1+4
- SBN 1
- SHN -6
- SBD FL
- PJN PRS3 IF LWA .GE. FL
- LDD CM+3
- LPN 37
- STD CM+3
- LDD T1+3
- SBD CM+3
- SHN 14
- ADD T1+4
- SBD CM+4
- ZJN PRS3 IF ZERO WORD COUNT
- PJN PRS4 IF FWA .LE. LWA
- PRS3 ABORT ERBA * VEJ - BUFFER ARGUMENT ERROR.*
- PRS4 STD T1
- SBN BUFL
- MJN PRS5 IF BUFFER LENGTH .LT. 18 CM WORDS
- LDN BUFL SET MAXIMUM BUFFER SIZE
- STD T1
- PRS5 LDD CM+3 READ JOB/USER COMMANDS FROM CM BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD CM+4
- CRM STMT,T1
- * PROCESS TID.
- RJM GFA READ TID
- ADN 1
- CRD T1
- LDC 501 CLEAR SYSTEM SECTOR
- STD T3
- PRS6 LDN 0
- STM BFMS,T3
- SOD T3
- PJN PRS6 IF NOT END OF BUFFER
- RJM CUT CONVERT USER NAME TO TID
- * PROCESS ACCESS LEVEL.
- LDK SSML CHECK OPERATING SYSTEM SECURITY MODE
- CRD CM
- LDD CM
- LPN 7
- ZJN PRS7 IF SYSTEM IN UNSECURED MODE
- RJM GFA READ *SP* BIT AND ACCESS LEVEL
- ADN 1
- CRD T1
- ADN 4-1
- CRD CM
- LDD T1+1
- LPN 10
- ZJN PRS7 IF *SP* BIT NOT SET
- AOM VEJA SET *ACCESS LEVEL SPECIFIED* FLAG
- LDD CM+1
- LPN 7
- RAM VEJB SET ACCESS LEVEL
- PRS7 LJM PRSX RETURN
- SPACE 4
- * BUFFERS AND OVERLAY ADDRESSES.
- STMT EQU * JOB AND USER COMMAND BUFFER
- BUFL EQU 9D*2 COMMAND BUFFER LENGTH
- OVL0 EQU STMT+BUFL*5+10 OVERLAY LOAD ADDRESS
- WDSB EQU OVL0 WRITE ERROR PROCESSING BUFFER
- ERRNG BFMS-OVL0-ZAVL
- ERRNG EPFW-OVL0-ZBFL
- ERRNG BFMS-OVL0-ZDFL
- ERRNG BFMS-OVL0-ZDQL
- ERRNG BFMS-OVL0-ZVJL
- DOT SPACE 4,10
- ** DOT - DETERMINE ORIGIN TYPE OF CONTROL POINT.
- *
- * ENTRY NONE.
- *
- * EXIT (OT) = ORIGIN TYPE.
- * (A) .GE. 0, IF JOB IS VALID CALLER.
- *
- * USES T1, CM - CM+4, CN - CN+4.
- *
- * MACROS SFA.
- DOT3 LDD CP READ EJT ORDINAL FROM CP AREA
- ADN TFSW
- CRD CN
- SFA EJT,CN GET EJT ADDRESS
- ADN SCLE
- CRD CN
- LDD CN SET ORIGIN TYPE
- LPN 17
- STD OT
- LDD CM+2
- NJN DOTX IF VALID CALL
- LCN 0 FLAG INCORRECT CALL
- DOT SUBR ENTRY/EXIT
- LDD CP READ SUBSYSTEM ID
- ADN JCIW
- CRD CM
- LDN 0
- STD T1
- DOT1 LDM TQPR,T1
- ZJN DOT3 IF END OF TABLE
- LMD CM+2
- ZJN DOT2 IF MATCH
- LDN TQPRE ADVANCE INDEX
- RAD T1
- UJN DOT1
- DOT2 LDM TQPR+1,T1 SET ORIGIN TYPE
- STD OT
- UJN DOTX RETURN
- * TQPR - TABLE OF SUBSYSTEM ID-S.
- *
- *T 12/ SI, 12/ OT
- * SI = SUBSYSTEM ID.
- * OT = ORIGIN TYPE.
- TQPR BSS 0
- CON RBSI,EIOT RBF
- TQPRE EQU *-TQPR LENGTH OF AN ENTRY
- CON BISI,BCOT BATCHIO
- CON 0,0 END OF TABLE
- SPACE 4
- * COMMON DECKS.
- *CALL COMPCRS
- SPACE 4,10
- IFP HERE
- SPACE 4,10
- END
cdc/nos2.source/opl871/vej.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator