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