cdc:nos2.source:opl871:sfm
Table of Contents
SFM
Table Of Contents
- [00008] SFM - SYSTEM FILE MANAGER.
- [00010] SYSTEM FILE MANAGER.
- [00347] MACRO DEFINITIONS.
- [00349] ABORT - ABORT CONTROL POINT.
- [00366] ENTRY - DEFINE OVERLAY ENTRY NAME.
- [00383] ERROR - RETURN ERROR CODE TO FET.
- [00400] FCN - DEFINE FUNCTION PROCESSOR.
- [00475] OVERLAY - GENERATE OVERLAY CONSTANTS.
- [00507] PERR - PUT ERROR CODE IN PARAMETER BLOCK ENTRY.
- [00527] SUBSYST - GENERATE SUBSYSTEM TABLE.
- [00550] MAIN PROGRAM.
- [00552] MAIN PROGRAM.
- [00603] RESIDENT SUBROUTINES.
- [00605] ABT - ABORT JOB.
- [00630] ERR - ERROR EXIT PROCESSOR.
- [00647] ERS - ENTER PP RECALL STACK.
- [00669] CFB - CLEAR FILE BUSY.
- [00690] DRF - DROP FILE.
- [00708] EER - EVALUATE MASS STORAGE ERROR RETURN.
- [00741] EFN - ENTER FILE NAME.
- [00771] FDB - FLUSH DAYFILE BUFFER.
- [00791] GFE - GET FET ADDRESS.
- [00804] LLT - LOCATE LABEL TRACK.
- [00827] SDA - SET DAYFILE POINTER ADDRESS.
- [00848] SDT - SET DAYFILE TYPE.
- [00868] RMS - READ MASS STORAGE.
- [00885] RTI - RELEASE TRACK INTERLOCK.
- [00903] WMS - WRITE MASS STORAGE.
- [00920] WTI - WAIT FOR TRACK INTERLOCK.
- [00982] CFS - CHECK FILE STATUS.
- [01021] TDYN - TABLE OF DAYFILE NAMES.
- [01711] SUBROUTINES.
- [01713] CBL - CHECK DAYFILE BUFFER LENGTH.
- [01734] CDF - COPY DAYFILE.
- [01799] CIB - CLEAR FST INTERLOCK BIT.
- [01832] SBA - SET BUFFER ADDRESS.
- [01852] RDI - READ DEVICE INFORMATION SECTOR.
- [01883] VBP - VALIDATE BUFFER POINTERS.
- [01925] VEQ - VALIDATE EQUIPMENT.
- [01954] PRS - PRESET PROGRAM.
- [02109] TFCN - TABLE OF FUNCTION CODE PROCESSORS.
- [02165] ABP - ABORT JOB.
- [02220] ERP - COMMON ERROR EXIT FROM SFM.
- [02975] CAC - CHECK ACTIVITY COUNTS.
- [03010] SUBROUTINES.
- [03012] CFE - CLEAR LOCAL FNT ENTRY.
- [03036] CFI - CLEAR FLAG REGISTER INTERLOCK.
- [03056] CFM - COMPARE FAMILY NAMES.
- [03079] EXTENDED MEMORY - READ/WRITE EXTENDED MEMORY.
- [03099] EFI - ENTER *FAT* ITEM.
- [03174] IFA - INITIALIZE FAST ATTACH FILE.
- [03238] IFC - INCREMENT FAST ATTACH COUNT.
- [03261] RET - READ ENVIRONMENT TABLE.
- [03296] RFS - READ FILE SYSTEM SECTOR.
- [03345] SFR - SET FLAG REGISTER INTERLOCK.
- [03386] SFS - SEARCH *FAT* SECTOR.
- [03463] SFT - SEARCH *FAT* TABLE.
- [03515] SMP - SET MULTI-MAINFRAME PARAMETERS.
- [03567] SSF - SEARCH FOR *SYFT* FILE.
- [03610] UFI - UPDATE *FAT* ITEM.
- [03647] VLF - VERIFY LOCAL FILE.
- [03691] WFS - WRITE FILE SYSTEM SECTOR.
- [03710] WFW - WRITE *FAT* WORD.
- [03765] SECURITY FUNCTIONS.
- [03891] CSS - CHECK FOR SSJ= ENTRY POINT OR SUBSYSTEM ID.
- [03910] MAIN ROUTINE.
- [03984] SUBFUNCTION PROCESSORS.
- [03986] IOS - RETURN BUFFER I/O STATISTICS.
- [04142] RDD - RETURN DAYFILE DATA FROM SECTOR OF LOCAL AREAS.
- [04295] PDAF - RETURN/CLEAR *PROBE* DATA TABLES.
- [04373] CBS - CLEAR BUFFERED I/O STATISTICS.
- [04459] RFDF - RETURN FAMILY ORDINAL TABLE FROM LOW CORE.
- [04519] RSCF - RETURN SERVICE CLASS CONTROL TABLE FROM LOW CORE.
- [04552] RSSF - RETURN SUBSYSTEM DATA.
- [04634] TSSS - TABLE OF SUBSYSTEM STATUS INFORMATION.
- [04650] DPT - DETERMINE *PROBE* TABLE LENGTH.
- [04674] LPT - LOCK *PROBE* TABLES.
- [04720] RPC - RETURN *PLD* COUNTS.
- [04837] SDR - SET DEVICE RESIDENCE.
- [04872] RCIF - RETURN/UPDATE SYSTEM SERVICE CLASS DATA.
- [04967] GCA - GET CM BUFFER ADDRESS.
- [05005] CSTF/SSTF/SUSF FUNCTION PROCESSOR.
- [05130] TSSS - TABLE OF SUBSYSTEM STATUS INFORMATION.
- [05138] MDFF FUNCTION PROCESSOR.
- [05403] LID TABLE FUNCTION PROCESSORS.
- [06000] SPTF - SET PID ATTRIBUTES.
- [06060] SUBROUTINES.
- [06062] ALD - ADD LID AND/OR SET NEW LID ATTRIBUTES.
- [06168] CLI - CLEAR LID TABLE INTERLOCK.
- [06183] DLD - DELETE LID.
- [06240] FMP - FIND MATCHING PID.
- [06300] ILT - INTERLOCK LID TABLE.
- [06323] PER - PROCESS PARAMETER BLOCK ENTRY ERROR.
- [06349] RLE - READ LID ENTRY.
- [06411] RPE - READ PID ENTRY.
- [06446] SMF - SET MAINFRAME DESCRIPTOR.
- [06511] SNS - SET NETWORK STATUS.
- [06583] SPA - SET PID ATTRIBUTES.
- [06630] UTE - UPDATE LDT TABLE ENTRY.
- [07185] TDMO - TABLE OF DAYFILE MESSAGE OPTIONS.
- [07199] TDMP - TABLE OF DAYFILE MESSAGE PROCESSOR OPTIONS.
- [07213] BWA - GET BUFFER WORD ADDRESS.
- [07234] CML - CHECK MESSAGE LENGTH.
Source Code
- SFM.txt
- IDENT SFM,SFM
- PERIPH
- BASE MIXED
- SST
- STI$ EQU 1 SET UNCONDITIONAL RETURN FROM *COMPSTI*
- *COMMENT SFM - SYSTEM FILE MANAGER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE SFM - SYSTEM FILE MANAGER.
- SPACE 4
- *** SFM - SYSTEM FILE MANAGER.
- * G. R. MANSFIELD. 70/10/02.
- * R. A. JAPS. 75/01/02.
- * S. L. KSANDER. 75/05/26.
- * P. D. HAAS. 79/05/23.
- SPACE 4
- *** SFM PERFORMS VARIOUS FILE MANAGING TASKS FOR A JOB.
- SPACE 4
- *** CALL.
- *
- *
- *T 18/ *SFM*,1/,1/1,4/,12/ CODE,6/,18/ FET
- * CODE FUNCTION CODE
- * FET ADDRESS OF FET
- *
- *T FET 42/ LFN , 17/ , 1/0
- *T,FET+1 12/ ET , 3/ , 1/E, 26/ , 18/ FIRST
- *T,FET+2 42/ , 18/ IN
- *T,FET+3 42/ , 18/ OUT
- *T,FET+4 42/ , 18/ LIMIT
- *T,FET+5 60/
- *T,FET+6 60/
- *T,FET+7 12/ EQ, 24/ , 12/ TY, 6/ , 6/ WI
- *
- * LFN = LOCAL FILE NAME.
- * ET = EQUIPMENT TYPE.
- * E = RETURN ERROR CODE.
- * EQ = EST ORDINAL.
- * TY = DAYFILE TYPE. (SEE COMSIOQ FOR DEFINED CODES).
- * 1 = SYSTEM DAYFILE
- * 2 = ACCOUNT DAYFILE
- * 3 = ERRLOG DAYFILE
- * 4 = MAINTENANCE LOG DAYFILE
- * WI = WORD INDEX IN SECTOR (SETDI).
- *
- * RETURN.
- *
- *T FET 42/ *FILE NAME*,8/ EC,9/,1/1
- * EC ERROR CODE
- SPACE 4
- *** DAYFILE MESSAGES.
- *
- *
- * * SFM ARGUMENT ERROR.*
- * ARGUMENT TO SFM WAS OUT OF RANGE.
- *
- * * SFM BML MESSAGE LENGTH ERROR.*
- * BML MESSAGE LENGTH IS = 0, OR .GT. 6.
- *
- * * SFM INCORRECT REQUEST.*
- * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS -
- * 1. SFM NOT CALLED WITH AUTO RECALL.
- * 2. FUNCTION CODE OUT OF RANGE.
- * 3. USER DOES NOT HAVE SYSTEM ORIGIN PRIVILEGES.
- * 4. CALLING PROGRAM IS NOT SSJ=.
- *
- * * SFM INCORRECT DAYFILE CODE.*
- * DAYFILE CODE PASSED IN THE FET WAS NOT WITHIN RANGE.
- *
- * * SFM INCORRECT EQUIPMENT.*
- * EQUIPMENT NOT WITHIN EST OR NOT MASS STORAGE.
- *
- * * SFM FILE NOT FOUND.*
- * REQUESTED FILE WAS NOT FOUND.
- *
- * * SFM DUPLICATE FILE FOUND.*
- * THE REQUESTED FILE IS ALREADY ATTACHED TO THE
- * CONTROL POINT.
- *
- * * SFM FILE NOT ON MASS STORAGE.*
- * SELF EXPLANATORY.
- *
- * * SFM I/O SEQUENCE ERROR.*
- * ACTION HAS BEEN REQUESTED ON A BUSY FILE.
- *
- * * SFM FILE EMPTY.*
- * SELF EXPLANATORY.
- *
- * * SFM FILE NAME ERROR.*
- * FILE NAME, LFN, PASSED THROUGH FET IS NOT A
- * VALID FILE NAME.
- *
- * * SFM FNT FULL.*
- * A FAST ATTACH FILE COULD NOT BE CREATED BECAUSE
- * THE FNT WAS FULL.
- *
- * * SFM INCORRECT FILE TYPE.*
- * FILE MUST BE LOCAL FOR SYSTEM FILE AND DIRECT
- * ACCESS FOR FAST ATTACH FILE.
- *
- * * SFM DIRECT ACCESS FILE ERROR.*
- * ERROR WAS ENCOUNTERED ON SYSTEM SECTOR OF A DIRECT
- * ACCESS FILE.
- *
- * * XXXXXXX TERMINATED.*
- * THE DAYFILE XXXXXXX, HAS BEEN TERMINATED.
- * (ISSUED TO SYSTEM AND CONTROL POINT DAYFILES).
- *
- * * DAYFILE TERMINATED.*
- * SELF EXPLANATORY. (ISSUED TO TERMINATED DAYFILE).
- *
- * * SFM UNABLE TO INTERLOCK DEVICE.*
- * REQUEST WAS NOT PERFORMED BECAUSE DEVICE COULD
- * NOT BE INTERLOCKED.
- *
- * * SFM TRACK INTERLOCK ERROR.*
- * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS.
- * 1. TRACK WAS INTERLOCKED WHEN IT SHOULD NOT
- * HAVE BEEN.
- * 2. TRACK WAS NOT INTERLOCKED WHEN IT SHOULD
- * HAVE BEEN.
- *
- * * SFM SYSTEM SECTOR ERROR.*
- * AN ERROR HAS BEEN ENCOUNTERED WHILE ATTEMPTING
- * TO READ A SYSTEM SECTOR.
- *
- * * SFM GLOBAL FAST ATTACH LIMIT.*
- * THIS MESSAGE IS ISSUED WHEN A REQUEST IS
- * MADE TO ENTER A GLOBAL FAST ATTACH FILE
- * AND NO SPACE IS AVAILABLE IN THE *FAT*.
- *
- * * SFM ABORTED.*
- * ERROR FLAG WAS SET AT SFM,S CONTROL POINT.
- *
- * * SFM UNRECOVERABLE LINK DEVICE ERROR.*
- * READ OR WRITE ERROR WHEN ATTEMPTING TO UPDATE
- * *FAT* ENTRIES ON LINK DEVICE.
- *
- * * SFM FAST ATTACH SYSTEM SECTOR ERROR.*
- * AN UNRECOVERABLE ERROR WAS DETECTED WHEN TRYING TO
- * READ THE SYSTEM SECTOR OF THE FILE BEING ENTERED
- * INTO FAST ATTACH STATUS. THE FILE WAS ENTERED,
- * HOWEVER, THE SYSTEM SECTOR POINTERS WERE NOT SET.
- * THIS FILE MAY NOT BE DUMPED PROPERLY BY *PFDUMP*
- * WHEN THIS OCCURS.
- *
- * * SFM LINK FAST ATTACH FILE NOT FOUND.*
- * AN ATTEMPT TO LINK TO AN EXISTING FAST ATTACH FILE
- * WAS UNSUCCESSFUL BECAUSE THE FILE WAS NOT FOUND
- * IN THE *FAT*.
- *
- * * SFM FAMILY STILL ACTIVE.*
- * AN ATTEMPT HAS BEEN MADE TO REMOVE A FAST ATTACH FILE
- * FROM A FAMILY WHILE ACTIVITY STILL EXISTS WITHIN
- * THAT FAMILY.
- *
- * THE FOLLOWING ERROR MESSAGES ARE ISSUED IF THE *EP* BIT
- * IS NOT SET. OTHERWISE, THE SPECIFIED ERROR CODE IS
- * RETURNED TO FET+0. ERRORS FOR THOSE FUNCTIONS WHICH
- * HAVE ONLY A ONE-WORD PARAMETER BLOCK WILL ALWAYS BE
- * PROCESSED AS IF *EP* HAD BEEN SET. (THESE ERRORS
- * ARE DOCUMENTED BELOW IN PARENTHESES.)
- *
- * * SFM DAYFILE BUSY.*
- * EC = 1. THE DAYFILE IS CURRENTLY BUSY.
- *
- * * SFM MASS STORAGE NOT AVAILABLE.*
- * EC = 2. MASS STORAGE IS NOT AVAILABLE ON THE
- * SPECIFIED DEVICE.
- *
- * * SFM FILE NOT FOUND.*
- * EC = 3. THE FILE FOR WHICH ACTION HAS BEEN
- * REQUESTED CAN NOT BE FOUND.
- *
- * * SFM UNCORRECTABLE RMS ERROR.*
- * EC = 4. AN UNCORRECTABLE RMS ERROR HAS BEEN DETECTED
- * DURING AN I/O OPERATION.
- *
- * + *CPD* NOT ACTIVE.+
- * EC = 5. *SFM* WAS CALLED TO SET THE *CPD* DROP
- * FLAG WHEN *CPD* WAS NOT ACTIVE.
- *
- * * SFM - LID TABLE TOO LONG FOR BUFFER.*
- * EC = 6. AN ATTEMPT WAS MADE TO GET A COPY OF THE
- * LID TABLE BUT THE LIDT WAS LARGER THAN THE CALLER-S
- * BUFFER.
- *
- * (LID UNKNOWN OR NOT LEGAL.)
- * EC=7. THE SPECIFIED LID WAS NOT FOUND IN THE
- * LID TABLE, OR IS NOT EXACTLY 3 CHARACTERS LONG.
- *
- * ( INCORRECT LID ATTRIBUTES.)
- * EC=10. THE SPECIFIED ATTRIBUTES ARE NOT CORRECT FOR
- * THE SPECIFIED LID.
- *
- * ( CURRENT ATTRIBUTES NOT IN LID TABLE.)
- * EC = 11. THE CURRENT ATTRIBUTES SPECIFIED DO NOT
- * MATCH THOSE CURRENTLY IN THE LID TABLE FOR THE
- * SPECIFIED LID.
- *
- * ( LID TABLE OVERFLOW.)
- * EC = 12. THE SPECIFIED NEW LID CANNOT BE ADDED TO THE
- * LID TABLE, SINCE THE LID TABLE IS ALREADY FULL.
- *
- * ( TOO MANY HOST LIDS.)
- * EC = 13. THE SPECIFIED NEW HOST LID CANNOT BE ADDED
- * TO THE LID TABLE, SINCE THE TABLE ALREADY CONTAINS
- * THE MAXIMUM NUMBER OF HOST LIDS.
- *
- * ( INCORRECT SUBFUNCTION CODE.)
- * EC = 14. THE SPECIFIED SUBFUNCTION IS NOT DEFINED FOR
- * THIS FUNCTION.
- *
- * ( INCORRECT NETWORK STATUS PARAMETER.)
- * EC = 15. THE SPECIFIED NETWORK STATUS IS NOT VALID.
- *
- * ( CHECK PARAMETER BLOCK ENTRIES FOR ERROR.)
- * EC = 16. AT LEAST ONE PARAMETER BLOCK ENTRY COULD NOT
- * BE PROCESSED DUE TO AN ERROR DETECTED. THE CALLER MAY
- * NEED TO CHECK EACH PARAMETER ENTRY (BYTE 4) TO DETER-
- * MINE WHICH ONES WERE NOT PROCESSED, AND WHY.
- SPACE 4
- *** ACCOUNT FILE MESSAGES.
- *
- *
- * *SDCA, XXXXXX.XXXSECS.*
- * CPU MONITOR PROGRAM MODE TIME.
- *
- * *SDCM, XXXXXX.XXXKUNS.*
- * NUMBER OF STORAGE MOVES.
- *
- * *SDMR, XXXXXX.XXXKUNS.*
- * CONTROL POINTS MOVED.
- *
- * *SDMS, XXXXXX.XXXKUNS.*
- * SECTORS ROLLED.
- *
- * *SDNF, XXXXXX.XXXKUNS.*
- * NUMBER OF FL INCREASES TO NFL.
- *
- * *SDSF, XXXXXX.XXXKUNS.*
- * NUMBER OF TIMES RECALL STACK IS FULL.
- *
- * *SDTS, XXXXXX.XXXKUNS.*
- * JOBS ROLLED DUE TO TIME SLICE.
- *
- * *SDTO, XXXXXX.XXXKUNS.*
- * JOBS ROLLED DUE TO SLICE LIMIT OR TIME SLICE
- * WITH OUTPUT PENDING.
- *
- * *SDPX, XXXXXX.XXXKUNS.*
- * PP EXCHANGE PRIORITY REQUESTS.
- *
- * *ABST, X...X.*
- * SYSTEM TITLE.
- *
- * *ABSV, X...X.*
- * SYSTEM VERSION.
- *
- * *ABSY, YY/MM/DD.*
- * BEGINNING OF A NEW ACCOUNT DAYFILE DUE TO
- * INITIALIZATION OR TERMINATION ON DATE
- * YY/MM/DD.
- *
- * *AESY, YY/MM/DD.*
- * END OF AN ACCOUNT DAYFILE ON DATE YY/MM/DD.
- SPACE 4,10
- *** ERROR LOG MESSAGES.
- *
- *
- * *CHXX,YYYYYYYYY.* = EQUIPMENT ON CHANNEL XX IS RUNNING WITH
- * FIRMWARE REVISION YYYYYYYYY.
- *
- * *ETXXX, UYY,PS=ZZZZZZ.* = THE PACK ON PHYSICAL UNIT YY OF EST
- * ORDINAL XXX OF TYPE ET HAS A SERIAL NUMBER OF ZZZZZZ.
- SPACE 4
- SPACE 4
- ** ROUTINES CALLED.
- *
- *
- * 0BF - BEGIN FILE.
- * 0DF - DROP FILE.
- * 0TD - TERMINATE DAYFILE.
- * 0CI - IDENTIFY FIRMWARE.
- * 0PI - LIST PACK SERIAL NUMBER.
- SPACE 4
- *CALL COMPMAC
- *CALL COMSCPS
- *CALL COMSSSD
- *CALL COMSDFS
- *CALL COMSEJT
- *CALL COMSHIO
- *CALL COMSIOQ
- *CALL COMSLFD
- *CALL COMSMSC
- *CALL COMSMSP
- *CALL COMSMST
- QUAL COMSMTX
- *CALL COMSMTX
- QUAL *
- *CALL COMSPFM
- *CALL COMSPIM
- *CALL COMSSCD
- *CALL COMSSSE
- *CALL COMSSSJ
- QUAL TFM
- *CALL COMSTFM
- QUAL *
- *CALL COMSMMF
- *CALL COMSWEI
- *CALL COMSZOL
- LIST X
- *CALL COMSSFM
- LIST *
- SPACE 4,10
- **** DIRECT LOCATION ASSIGNMENTS.
- FS EQU 20 - 24 FST ENTRY (5 LOCATIONS)
- FT EQU 20 - 21 FIRST
- IN EQU 22 - 23 IN
- P0 EQU 25 OVERLAY PROCESSOR ADDRESS
- HI EQU 25 *FAT* INDEX OF AVAILABLE HOLE
- QA EQU 26 FNT ORDINAL
- FC EQU 27 *FAT* TABLE COUNT
- TY EQU 30 DAYFILE TYPE
- DA EQU 30 - 31 LINK DEVICE PARAMETERS
- ID EQU 32 MACHINE ID
- CN EQU 33 - 37 CM WORD BUFFER
- FN EQU 40 - 44 FILE NAME (5 LOCATIONS)
- OT EQU 40 - 41 OUT
- LM EQU 42 - 43 LIMIT
- LS EQU 45 LAST FET STATUS
- JC EQU 46 JOB COUNT (MAXIMUM)
- MI EQU 46 MACHINE INDEX
- BA EQU 47 *FAT* ITEM BASE ADDRESS
- FA EQU 57 ADDRESS OF FNT ENTRY
- TE EQU 60 NUMBER OF TABLE ENTRIES (FNT)
- LO EQU 61 LAST MASS STORAGE ORDINAL + 1
- ES EQU 62 - 66 CM WORD BUFFER (EST ENTRY)
- FI EQU 67 *FAT* INDEX OF ENTRY / HOLE
- SPACE 4,10
- ** ASSEMBLY CONSTANTS.
- ILKN EQU 200000 INTERLOCK DAYFILE MESSAGE OPTION
- ****
- TITLE MACRO DEFINITIONS.
- ABORT SPACE 4,10
- ** ABORT - ABORT CONTROL POINT.
- *
- * ABORT ADDR
- *
- * ENTRY *ADDR* = MESSAGE ADDRESS.
- *
- * EXIT TO *ABT*.
- PURGMAC ABORT
- ABORT MACRO A
- MACREF ABORT
- LDC A
- LJM ABT
- ENDM
- ENTRY SPACE 4,10
- ** ENTRY - DEFINE OVERLAY ENTRY NAME.
- *
- * ENTRY NAME
- *
- * ENTRY *NAME* = NAME OF PROCESSOR ADDRESS.
- PURGMAC ENTRY
- MACRO ENTRY,N
- MACREF ENTRY
- QUAL
- N EQU *+1R".M"*10000B
- QUAL ".O"
- N BSS 0
- ENDM
- ERROR SPACE 4,10
- ** ERROR - RETURN ERROR CODE TO FET.
- *
- * ERROR EC
- *
- * ENTRY *EC* = ERROR CODE.
- *
- * EXIT TO *ERR*.
- PURGMAC ERROR
- ERROR MACRO E
- MACREF ERROR
- LDN E
- LJM ERR
- ENDM
- FCN SPACE 4,50
- ** FCN - DEFINE FUNCTION PROCESSOR.
- *
- * TN FCN F,N,L,P,S,M,E,A
- *
- * TN TABLE NAME (FIRST CALL ONLY).
- * F FUNCTION CODE.
- * N NAME OF FUNCTION PROCESSOR.
- * L REQUIRED FET LENGTH - 1.
- * P CALLER MUST HAVE SYSTEM ORIGIN PRIVILEGES.
- * S CALLER MUST BE SPECIAL SYSTEM JOB (SSJ).
- * M MAINTENANCE ACCESS ALLOWED
- * E EITHER SSJ= OR SYSTEM ORIGIN PRIVILEGES REQUIRED.
- * A ALLOW ACCESS IF CALLER HAS PRIVILEGED ANALYST
- * VALIDATION AND IF *PRIVILEGED ANALYST MODE* ENABLED.
- *
- * TABLE GENERATED.
- *
- *T,TN 12/O,12/N,1/S,1/P,1/M,1/E,1/A,1/0,6/L
- *
- * O OVERLAY NAME (LAST CHARACTER)
- * N PROCESSOR ADDRESS
- * S SSJ= REQUIRED
- * P SYSTEM ORIGIN PRIVILEDGES REQUIRED
- * M MAINTENANCE ACCESS ALLOWED
- * E EITHER SSJ= OR SYSTEM ORIGIN PRIVILEGES REQUIRED.
- * A ALLOW ACCESS IF CALLER HAS PRIVILEGED ANALYST
- * VALIDATION AND IF *PRIVILEGED ANALYST MODE* ENABLED.
- * L REQUIRED FET LENGTH - 1
- MACRO FCN,TN,F,N,L,P,S,M,E,A
- MACREF FCN
- .1 IFC NE,$TN$$
- TN BSS 0
- .T SET TN
- .1 ELSE
- ORG .T+3*F
- .2 IFC NE,$N$$
- LOC F
- CON N/10000B,N-N/10000B*10000B
- .3 IFC EQ,$S$SSJ$
- VFD 1/1
- .3 ELSE
- VFD 1/0
- .3 ENDIF
- .4 IFC NE,$P$$
- VFD 1/1
- .4 ELSE
- VFD 1/0
- .4 ENDIF
- .5 IFC NE,$M$$
- VFD 1/1
- .5 ELSE
- VFD 1/0
- .5 ENDIF
- .6 IFC NE,$E$$
- VFD 1/1
- .6 ELSE
- VFD 1/0
- .6 ENDIF
- .7 IFC NE,$A$$
- VFD 1/1
- .7 ELSE
- VFD 1/0
- .7 ENDIF
- VFD 1/0
- VFD 6/L
- .2 ENDIF
- BSS 0
- .1 ENDIF
- ENDM
- SPACE 4,2
- .N SET 0
- OVLB MICRO 1,, 3S BASE OVERLAY NAME
- OVERLAY SPACE 4,20
- ** OVERLAY - GENERATE OVERLAY CONSTANTS.
- *
- * OVERLAY (TEXT),LOAD,NQ
- *
- * ENTRY *TEXT* = TEXT FOR SUBTITLE.
- * *LOAD* = IF SPECIFIED, DEFINE ORIGIN ADDRESS.
- * *NQ* = IF SPECIFIED, OVERLAY NOT QUALIFIED.
- PURGMAC OVERLAY
- OVERLAY MACRO TEXT,LOAD,NQ
- QUAL
- NOREF .N
- MACREF OVERLAY
- .N SET .N+1
- .M MICRO .N,1, ZYXWVUTSRQPONMLKJIHGFEDCBA
- .O MICRO 1,3 "OVLB"".M"
- IFC EQ,*NQ**,1
- QUAL ".O"
- TTL SFM/".O" - TEXT
- IDENT ".O",OVL TEXT
- TITLE
- *COMMENT SFM - TEXT
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- IFC NE,*LOAD**
- ORG LOAD
- ELSE 1
- ORG OVLA
- OVL LJM *
- UJN OVL
- ENDM
- PERR SPACE 4,10
- ** PERR - PUT ERROR CODE IN PARAMETER BLOCK ENTRY.
- *
- * PERR EC
- *
- * ENTRY *EC* = ERROR CODE.
- *
- * EXIT *EC* PLACED IN BYTE 4 OF PARAMETER BLOCK ENTRY
- * AND WORD REWRITTEN TO USER-S FL.
- *
- * CALLS /3SW/PER.
- PURGMAC PERR
- PERR MACRO E
- MACREF PERR
- LDN E
- RJM PER
- ENDM
- SUBSYST SPACE 4,10
- ** SUBSYST - GENERATE SUBSYSTEM TABLE.
- *
- * SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT
- *
- * ENTRY *ID* = SUBSYSTEM ID.
- *
- * GENERATE TABLE OF *SSSL* BYTES AND MASKS.
- *
- *T 12/ BYTE, 12/ MASK
- PURGMAC SUBSYST
- SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB
- .SUB RMT
- .1 SET MXSI-ID
- .21 SET .1/12D
- .3 SET 4-.21 *SSSL* BYTE
- .4 DECMIC .1-12D*.21
- .5 SET 1S".4" *SSSL* MASK
- INDEX (MXSI*2-ID*2),(.3,.5)
- .SUB RMT
- SUBSYST ENDM
- TITLE MAIN PROGRAM.
- SFM SPACE 4
- ** SFM - MAIN PROGRAM.
- ORG PPFW
- SFM RJM PRS PRESET PROGRAM
- SFM1 LDC 0
- SFMA EQU *-1
- ZJN SFM2 IF NO OVERLAY LOAD
- LMC 2L"OVLB" LOAD OVERLAY
- RJM EXR
- SFM2 LJM * PROCESS REQUEST
- SFMB EQU *-1
- SFMX RJM CFB SET FILE NOT BUSY
- RJM GFE READ FILE NAME
- CRD FN
- AOD LS SET FET NOT BUSY
- STD FN+4
- LDD FN+3
- SCN 77
- LMC 0
- SFMC EQU *-1 (ERROR CODE)
- STD FN+3
- RJM GFE STORE FET STATUS
- CWD FN
- SFMD LDN 0
- ZJN SFM3 IF NO SYSTEM SECTOR ERROR
- LDC ERFS * FAST ATTACH SYSTEM SECTOR ERROR.*
- RJM DFM
- SFM3 LDM SFMF
- ZJN DPP IF OPERATION COMPLETE
- STD T1
- LDD T5
- STM CKPA+3 SET EQUIPMENT IN REQUEST
- LDD CP SET CONTROL POINT
- SHN -7
- RAM 1,T1
- LDD IA STORE INPUT REGISTER
- CWM 0,ON
- SFMF EQU *-1
- EXECUTE CPD,=
- EXECUTE 1CK,=
- UJN SFM4 EXIT TO PP RESIDENT
- DPP MONITOR DPPM DROP PP
- SFM4 LJM PPR EXIT TO PP RESIDENT
- CKPA VFD 18/3R1CK,6/40,12/4,24/0
- ERFS DATA C* SFM FAST ATTACH SYSTEM SECTOR ERROR.*
- FETL CON 0 FET LENGTH REQUIRED FOR FUNCTION
- TITLE RESIDENT SUBROUTINES.
- ABT SPACE 4
- ** ABT - ABORT JOB.
- *
- * ENTRY (A) = FWA OF MESSAGE.
- *
- * EXIT TO *ERR1*.
- * (DA) = ADDRESS OF MESSAGE.
- *
- * CALLS CFI.
- ABT BSS 0 ENTRY
- STD DA
- LDC 0
- * LDC 1 (*DATI* INTERLOCK SET)
- * LDC 2 (*DATI* AND *FATI* INTERLOCK SET)
- ABTB EQU *-1
- ZJN ABT0 IF NO FLAG REGISTER INTERLOCKS SET
- LDN DATI CLEAR *DATI* INTERLOCK
- RJM /3SY/CFI
- ZJN ABT0 IF *FATI* INTERLOCK NOT SET
- LDN FATI CLEAR *FATI* INTERLOCK
- RJM /3SY/CFI
- ABT0 LDC ABP
- UJN ERR1 LOAD ERROR PROCESSING OVERLAY
- ERR SPACE 4,10
- ** ERR - ERROR EXIT PROCESSOR.
- *
- * ENTRY (A) = ERROR CODE.
- *
- * EXIT TO *SFM0*.
- *
- * USES DA.
- ERR BSS 0 ENTRY
- STD DA
- LDC ERP
- ERR1 STM SFMB SET PROCESSOR ADDRESS
- SHN -14
- STM SFMA
- LJM SFM1 LOAD ERROR PROCESSING OVERLAY
- ERS SPACE 4,10
- ** ERS - ENTER PP RECALL STACK.
- *
- * ENTRY (A) = RECALL STACK REASON CODE.
- *
- * EXIT TO *PPR*.
- *
- * USES CM - CM+5.
- *
- * MACROS MONITOR.
- ERS BSS 0 ENTRY
- STD CM SAVE RECALL STACK REASON CODE
- LDN ZERL
- CRD CM+1
- LDD MA RECALL *SFM*
- CWD IR
- ADN 1
- CWD CM
- MONITOR RECM
- LJM PPR EXIT TO PP RESIDENT
- CFB SPACE 4,10
- ** CFB - CLEAR FILE BUSY.
- *
- * ENTRY (FA) = FNT ADDRESS OF BUSY FILE.
- * (FS - FS+4) = FST INFORMATION.
- *
- * EXIT (A) = (FA) = 0.
- *
- * MACROS NFA.
- CFB SUBR ENTRY/EXIT
- LDD FA
- ZJN CFBX IF NO FILE ASSIGNED
- AOD FS+4
- NFA FA,R CLEAR FILE BUSY
- ADN FSTL
- CWD FS
- LDN 0 CLEAR FNT ADDRESS
- STD FA
- UJN CFBX RETURN
- DRF SPACE 4,15
- ** DRF - DROP FILE.
- *
- * ENTRY (FA) = INDEX OF FNT ENTRY.
- *
- * EXIT (A) = (FA) = 0.
- *
- * ERROR TO *EER* IF MASS STORAGE DEVICE INACCESSIBLE.
- *
- * CALLS *0DF*.
- DRF SUBR ENTRY/EXIT
- LDN 1 SET *UNLOAD* FILE FLAG FOR *0DF*
- STM OVL0-1
- EXECUTE 0DF,OVL0
- ZJN DRFX IF FILE RELEASED
- * UJN EER EVALUATE MASS STORAGE ERROR RETURN
- EER SPACE 4,15
- ** EER - EVALUATE MASS STORAGE ERROR RETURN.
- *
- * ENTRY (T5) = EST ORDINAL.
- *
- * EXIT JOB IS ROLLED OUT TO WAIT FOR A DEVICE TO BECOME
- * ACCESSIBLE IF A NON-SUBSYSTEM JOB ENCOUNTERED A
- * RECOVERABLE READ/WRITE ERROR ON THE DEVICE.
- *
- * USES IR+4.
- *
- * CALLS CFB, RTI, *1RJ*.
- *
- * MACROS ENDMS, ERROR, EXECUTE, PAUSE.
- EER ENDMS
- RJM RTI RELEASE TRACK INTERLOCK
- LDM RDCT
- SHN 21-12
- PJN EER2 IF RECOVERABLE ERROR
- EER1 ERROR /ERR/RMS
- EER2 LDM MSD CHECK CALLER
- SHN 21-13
- PJN EER1 IF SUBSYSTEM
- PAUSE
- LDD CM+1
- NJP SFMX IF ERROR FLAG SET
- RJM CFB
- LDD T5 SET EST ORDINAL
- STD IR+4
- EXECUTE 1RJ RECALL JOB
- EFN SPACE 4
- ** EFN - ENTER FILE NAME.
- *
- * ENTRY (FN - FN+4) = FILE NAME.
- *
- * EXIT (FA) = INDEX OF FNT ENTRY.
- * (FS - FS+4) = FST ENTRY.
- *
- * CALLS VFN, *0BF*.
- *
- * MACROS ABORT, EXECUTE.
- EFN SUBR ENTRY/EXIT
- RJM VFN VERIFY FILE NAME
- NJN EFN1 IF NO ERROR
- ABORT /MESS/ERFN * SFM FILE NAME ERROR.*
- EFN1 LDN 0 SELECT NO RETURN WITHOUT FILE CREATED
- STM OVL0-1
- LDN NEEQ ASSIGN NULL EQUIPMENT
- STD FS
- EXECUTE 0BF,OVL0
- UJN EFNX RETURN WITH NEW FILE CREATED
- * PROCESS ADVANCE EXIT FROM *0BF* IF FILE ALREADY EXISTS.
- LDN 0 CLEAR FNT ENTRY ADDRESS
- STD FA
- ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
- FDB SPACE 4,10
- ** FDB - FLUSH DAYFILE BUFFER.
- *
- * ENTRY (A) = ADDRESS OF TERMINATING MESSAGE.
- * (TY) = DAYFILE TYPE.
- *
- * EXIT DAYFILE BUFFER FLUSHED.
- *
- * CALLS DFM, *0TD*.
- *
- * MACROS EXECUTE.
- FDB SUBR ENTRY/EXIT
- LMC ILKN ADD INTERLOCK REQUEST
- RJM DFM ISSUE DAYFILE MESSAGE
- LDD TY
- STM OVL0-1 SET *0TD* PARAMETER
- EXECUTE 0TD,OVL0 FLUSH BUFFER
- UJN FDBX RETURN
- GFE SPACE 4,5
- ** GFE - GET FET ADDRESS.
- *
- * EXIT (A) = FET ADDRESS.
- GFE SUBR ENTRY/EXIT
- LDD IR+3
- SHN 6
- ADD RA
- SHN 6
- ADD IR+4
- UJN GFEX RETURN
- LLT SPACE 4,10
- ** LLT - LOCATE LABEL TRACK.
- *
- * ENTRY (T5) = EST ORDINAL.
- *
- * EXIT (A) = (T6) = LABEL TRACK.
- * (CM - CM+4) = EST ENTRY.
- * (T0 - T4) = *ALGL* WORD OF MST.
- *
- * USES T6, CM - CM+4, T0 - T4.
- LLT SUBR ENTRY/EXIT
- SFA EST,T5 READ EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM+4 READ *ALGL* WORD FROM THE MST
- SHN 3
- ADN ALGL
- CRD T0
- LDD T0+1 SET LABEL TRACK
- STD T6
- UJN LLTX RETURN
- SDA SPACE 4,8
- ** SDA - SET DAYFILE POINTER ADDRESS.
- *
- * ENTRY (TY) = DAYFILE TYPE.
- * = 0 IF USER DAYFILE.
- *
- * EXIT (A) = ADDRESS OF DAYFILE POINTER FST.
- *
- * MACROS NFA.
- SDA1 NFA DAPN+2 SET ADDRESS OF JOB DAYFILE FST
- SDA SUBR ENTRY/EXIT
- LDD TY
- ZJN SDA1 IF USER DAYFILE
- STD T0
- SHN 1
- ADD T0
- SDAA ADC ** (FWA-1 OF DAYFILE POINTERS)
- UJN SDAX RETURN
- SDT SPACE 4,10
- ** SDT - SET DAYFILE TYPE.
- *
- * EXIT (TY) = DAYFILE TYPE.
- * (CN - CN+4) = WORD 7 OF FET.
- *
- * CALLS GFE.
- SDT SUBR ENTRY/EXIT
- RJM GFE READ FET+7
- ADN 7
- CRD CN
- LDD CN+3 SET DAYFILE TYPE
- LPN 77
- STD TY
- ZJN SDT1 IF INCORRECT TYPE
- SBN EXDF+1
- MJN SDTX IF VALID DAYFILE TYPE
- SDT1 ABORT /MESS/ERDC * SFM INCORRECT DEVICE CODE.*
- RMS SPACE 4,10
- ** RMS - READ MASS STORAGE.
- *
- * ENTRY (A) = BUFFER ADDRESS.
- * (T5 - T7) = MASS STORAGE PARAMETERS.
- *
- * EXIT (A) .GE. 0.
- *
- * ERROR TO *EER*.
- *
- * CALLS RDS.
- RMS SUBR ENTRY/EXIT
- RJM RDS
- PJN RMSX IF SUCCESSFUL READ
- LJM EER EVALUATE ERROR RETURN
- RTI SPACE 4,10
- ** RTI - RELEASE TRACK INTERLOCK.
- *
- * ENTRY (RTIA) = TRACK NUMBER IF TRACK INTERLOCKED.
- *
- * EXIT (A) = (RTIA) = 0.
- *
- * CALLS CTI.
- RTI SUBR ENTRY/EXIT
- LDC 0
- RTIA EQU *-1
- ZJN RTIX IF NO TRACK INTERLOCK
- RJM CTI
- * LDN 0 CLEAR INTERLOCK STATUS
- STM RTIA
- UJN RTIX RETURN
- WMS SPACE 4,10
- ** WMS - WRITE MASS STORAGE.
- *
- * ENTRY (A) = BUFFER ADDRESS.
- * (T5 - T7) = MASS STORAGE PARAMETERS.
- *
- * EXIT (A) .GE. 0.
- *
- * ERROR TO *EER*.
- *
- * CALLS WDS.
- WMS SUBR ENTRY/EXIT
- RJM WDS
- PJN WMSX IF SUCCESSFUL WRITE
- LJM EER EVALUATE ERROR RETURN
- WTI SPACE 4,15
- ** WTI - WAIT FOR TRACK INTERLOCK.
- *
- * ENTRY (T5) = EQUIPMENT.
- * (T6) = TRACK.
- *
- * EXIT (A) = 0, IF INTERLOCK SET.
- * = 1, IF *ORET* ERROR FLAG SET IN CPA.
- *
- * USES CM - CM+4.
- *
- * CALLS STI.
- *
- * MACROS DELAY, PAUSE.
- WTI3 LDN 1 RETURN WITH ERROR
- WTI SUBR ENTRY/EXIT
- WTI1 RJM STI SET TRACK INTERLOCK
- ZJN WTIX IF INTERLOCK SET
- * DELAY 100 MILLISECONDS AND RETRY.
- LDC 1400
- STD T0
- WTI2 DELAY
- PAUSE
- LDD CM+1
- LMN ORET
- ZJN WTI3 IF *ORET* ERROR FLAG SET
- SOD T0
- PJN WTI2 IF MORE DELAY REQUIRED
- UJN WTI1 LOOP TO RETRY INTERLOCK
- SPACE 4
- * COMMON DECKS.
- *CALL COMPCTI
- *CALL COMPDTS
- EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT
- FNT$ EQU 0 DEFINE *COMPGFP* ACCESS TO FNT
- IFP$ EQU 0 GENERATE *IFP* REMOTE CODE
- JCB$ EQU 0 DEFINE *COMPGFP* ACCESS TO JCB
- *CALL COMPGFP
- *CALL COMPRLA
- *CALL COMPSAF
- *CALL COMPSEI
- *CALL COMPSFB
- *CALL COMPSTI
- *CALL COMPVFN
- QUAL MIO
- QUAL$ EQU 1
- RDS EQU RMS
- WDS EQU WMS
- *CALL COMPRSS
- *CALL COMPWEI
- *CALL COMPWSS
- QUAL *
- RSS EQU /MIO/RSS
- WEI EQU /MIO/WEI
- WSS EQU /MIO/WSS
- CFS SPACE 4,10
- ** CFS - CHECK FILE STATUS.
- *
- * ENTRY (FA) = INDEX OF FNT ENTRY.
- *
- * EXIT (FS - FS+4) = FST ENTRY.
- * (ES - ES+4) = FILE EQUIPMENT EST ENTRY.
- * (CM - CM+4) = FNT ENTRY.
- * (T5) = EST ORDINAL.
- * (T6) = FIRST TRACK.
- *
- * CALLS SFB.
- *
- * MACROS ABORT, SFA.
- CFS SUBR ENTRY/EXIT
- RJM SFB SET FILE BUSY
- ZJN CFS1 IF NO REJECT
- LDN 0
- STD FA
- ABORT /MESS/ERIO * SFM I/O SEQUENCE ERROR.*
- CFS1 LDD FS READ EST ENTRY
- STD T5
- SFA EST
- ADK EQDE
- CRD ES
- LDD ES CHECK EQUIPMENT
- SHN 6
- MJN CFS2 IF MASS STORAGE
- ABORT /MESS/ERMS * SFM FILE NOT ON MASS STORAGE.*
- CFS2 LDD FS+1 SET FIRST TRACK
- STD T6
- LDD FS+2
- NJN CFSX RETURN IF FILE USED
- ABORT /MESS/ERFE * SFM FILE EMPTY.*
- SPACE 4
- TDYN SPACE 4,10
- ** TDYN - TABLE OF DAYFILE NAMES.
- TDYN BSS 0
- LOC SDAY
- CON NDYF SYSTEM DAYFILE
- CON NACF ACCOUNT DAYFILE
- CON NERL ERRLOG DAYFILE
- CON NBML MAINTENANCE LOG
- LOC *O
- SPACE 4
- NDYF VFD 42/0LDAYFILE,6/1,6/LIFT,6/0
- NACF VFD 42/0LACCOUNT,6/1,6/LIFT,6/0
- NERL VFD 42/0LERRLOG,6/1,6/LIFT,6/0
- NBML VFD 42/0LMAINLOG,6/1,6/LIFT,6/0
- USE OVERLAY
- OVLA EQU *+5 OVERLAY BASE ADDRESS
- ADF TITLE FUNCTION PROCESSORS.
- ADF SPACE 4
- *** FUNCTION *AMDF* - ACCESS MASTER DAYFILE.
- *
- * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
- * LIBRARY FILE AT CONTROL POINT.
- *
- * ENTRY CONDITIONS.
- *
- * MESSAGE TO ISSUE IN BUFFER STARTING AT FIRST.
- * (MAXIMUM LENGTH OF 30 CHARACTERS.) THE MESSAGE IS
- * ISSUED BEFORE THE CM BUFFER IS COPIED AND THE FILE
- * LENGTH CALCULATED. THE MESSAGE WILL BE THE LAST ONE
- * IN THE DAYFILE FOR THIS ACCESS TO THE DAYFILE.
- *
- * EXIT CONDITIONS.
- *
- *T FET+5 42/ 0 , 18/ RL
- *T,FET+6 42/ 0 , 18/ CL
- *
- * RL = DAYFILE LENGTH AT LAST DEADSTART.
- * CL = CURRENT DAYFILE LENGTH IN PRUS.
- ADF BSS 0 ENTRY
- LDN SDAY SELECT MASTER DAYFILE
- ADF1 STD TY SAVE DAYFILE TYPE
- RJM CBL CHECK DAYFILE BUFFER LENGTH
- * CHECK FILE STATUS.
- RJM SAF SEARCH FOR ASSIGNED FILE
- ZJN ADF3 IF NOT FOUND
- RJM SFB SET FILE BUSY
- ZJN ADF2 IF NO REJECT
- LDN 0
- STD FA
- ABORT /MESS/ERIO * SFM I/O SEQUENCE ERROR.*
- ADF2 RJM DRF DROP FILE
- ADF3 RJM EFN ENTER FILE NAME
- RJM SDA SET DAYFILE FST ADDRESS
- CRD FS READ DAYFILE FST
- SBN 1 READ DAYFILE BUFFER POINTERS
- CRD CM
- AOD CM+2 VALIDATE BUFFER POINTERS
- RJM VBP
- MJN ADF4 IF DATA FITS IN BUFFER AND IN FL
- NFA FA,R READ CORRECT FST FOR *ABT*
- ADN FSTL
- CRD FS
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- * INTERLOCK DAYFILE.
- ADF4 LDD FS SET EQUIPMENT
- STD T5
- LDD FS+1 SET FIRST TRACK
- STD T6
- LDD TY
- NJN ADF5 IF NOT USER DAYFILE DUMP
- LJM ADF8 PROCESS USER DAYFILE DUMP
- ADF5 LDD TH FLAG TRACK INTERLOCK SET
- RAM ADFE
- RJM STI SET TRACK INTERLOCK
- ZJN ADF6 IF TRACK INTERLOCKED
- NFA FA,R READ CORRECT FST FOR *ABT*
- ADN FSTL
- CRD FS
- ERROR /ERR/DFB EC=1, DAYFILE BUSY
- ADF6 LDD T6 SET TRACK INTERLOCKED STATUS
- STM RTIA
- LDD CP FETCH EJT ORDINAL
- ADN TFSW
- CRD CM
- SFA EJT,CM READ SEQUENCE NUMBER FROM EJT
- CRM BFMS,ON
- ADN SCLE-JSNE-1 GET JOB SERVICE CLASS
- CRD CM
- LDC 2R
- STM BFMS+2
- STM BFMS+3
- LDD CM SET SERVICE CLASS IN MESSAGE
- SHN -6
- STM BFMS+4
- LDD CN+3 READ DAYFILE MESSAGE
- SHN 6
- ADD RA
- SHN 6
- ADD CN+4
- CRD CM+1
- ADFC ADN 0
- * ADN 1 (MAINTENANCE LOG PROCESSING)
- CRM BFMS+5,TR
- * CRM BFMS,TR (MAINTENANCE LOG PROCESSING)
- ADFD EQU *-1
- LDN 0 ENSURE MESSAGE HAS TERMINATOR
- STM BFMS+5+3*5
- LDD CM+1 BYTE COUNT OF MAINTENANCE LOG MESSAGE
- ADFF UJN ADF7.4 CONTINUE
- * NJN ADF7.3 (MAINTENANCE LOG PROCESSING)
- ADF7 RJM RTI RELEASE TRACK INTERLOCK
- NFA FA,R RESTORE FST FOR ABORT PROCESSING
- ADN FSTL
- CRD FS
- ABORT /MESS/ERWC * SFM BML MESSAGE LENGTH ERROR.*
- ADF7.3 SBN 7
- PJN ADF7 IF WORD COUNT TOO LARGE
- ADN 7
- ADF7.4 SHN 2
- RAD CM+1
- LDM ADFG-1,TY ISSUE MESSAGE AND INTERLOCK DAYFILE
- SHN 14
- ADC ILKN+BFMS
- RJM DFM
- * TRANSFER CM DAYFILE BUFFER TO CONTROL POINT.
- LDD TY CHECK DAYFILE TYPE
- LMN BMLF
- NJN ADF8 IF NOT MAINTENANCE LOG
- LDN BMLL READ MAINTENANCE LOG CONTROL WORD
- CRD CM
- LDD CN+3 STORE CONTROL WORD IN BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD CN+4
- CWD CM
- AOD CN+4 ADVANCE IN POINTER
- SHN -14
- RAD CN+3
- ADF8 RJM CDF DUMP CM DAYFILE TO CONTROL POINT
- * UPDATE FET INFORMATION.
- LDD T6
- STD T2
- STD T3
- ZJN ADF9 IF NO FIRST TRACK
- RJM SEI
- LCN FSMS DISCOUNT SYSTEM SECTOR
- RAD T3
- PJN ADF9 IF NO BORROW
- SOD T2 PROPAGATE BORROW
- AOD T3
- ADF9 LDN ZERL
- CRD CM
- LDD T3
- STD CM+4 LOWER HALF OF FILE LENGTH
- LDD T2
- STD CM+3 UPPER HALF OF FILE LENGTH
- LDN 0
- STD CN
- STD CN+1
- STD CN+2
- RJM GFE STORE IN
- ADN 2
- CWD CN
- ADN 6-2 STORE SECTOR COUNT
- CWD CM
- * GET LENGTH OF DAYFILE AT LAST DEADSTART.
- LDD TY
- NJN ADF10 IF NOT USER DAYFILE DUMP
- LJM ADF12
- ADF10 RJM SDA READ BUFFER STATUS WORD
- CRD CM
- LDN 2 CLEAR BUFFER INTERLOCK
- RAD CM+4
- RJM SDA STORE BUFFER STATUS WORD
- CWD CM
- SETMS IO
- LDD FS+1 SET FIRST TRACK
- STD T6
- LDM TDYN-1,TY READ SYSTEM SECTOR
- RJM RSS
- ZJN ADF11 IF NO ERROR
- RJM RTI RELEASE TRACK INTERLOCK
- NFA FA,R READ CORRECT FST FOR *ABT*
- ADN FSTL
- CRD FS
- ABORT /MESS/ERSE * SFM SYSTEM SECTOR ERROR.*
- ADF11 ENDMS
- LDN ZERL SET LENGTH IN FET+5
- CRD CM
- LDM FLSS
- STD CM+3
- LDM FLSS+1
- STD CM+4
- RJM GFE
- ADN 5
- CWD CM
- * ATTACH DAYFILE TO CONTROL POINT.
- ADF12 LDC 4 SET FILE STATUS
- * LDC 1004 (IF TRACK INTERLOCK SET)
- ADFE EQU *-1
- STD FS+4
- LDD FS+2
- ZJN ADF13 IF FILE NOT USED
- LDD FS+1 REWIND FILE
- STD FS+2
- LDN FSMS SET FIRST DATA SECTOR
- STD FS+3
- ADF13 NFA FA,R READ FNT ENTRY
- CRD CM
- LDD CM+3 SET EXTEND-ONLY AND WRITE LOCKOUT
- SCN 77
- LMN 21
- STD CM+3
- LDC LIFT*100 SET FILE TYPE TO *LIBRARY*
- STD CM+4
- NFA FA,R STORE FNT ENTRY
- CWD CM
- LDN 22 LAST STATUS = EOR
- STD LS
- LJM SFMX EXIT
- ADFG BSS 0 TABLE OF DAYFILE MESSAGE OPTIONS
- LOC SDAY
- CON JNMN/10000
- CON AJNN/10000
- CON EJNN/10000
- CON BMLN/10000
- LOC *O
- AAC SPACE 4
- *** FUNCTION *AAFF* - ACCESS ACCOUNT FILE.
- *
- * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
- * LIBRARY TYPE FILE AT CONTROL POINT.
- AAC BSS 0 ENTRY
- LDN ACCF SELECT ACCOUNT FILE
- UJN AER1
- AER SPACE 4
- *** FUNCTION *AELF* - ACCESS ERROR LOG.
- *
- * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
- * LIBRARY TYPE FILE AT CONTROL POINT.
- AER LDN ERLF SELECT ERROR LOG
- AER1 LJM ADF1 ACCESS DAYFILE
- AMF SPACE 4,10
- *** FUNCTION *AMLF* - ACCESS MAINTENANCE LOG.
- *
- * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
- * LIBRARY TYPE FILE AT CONTROL POINT.
- AMF LCN 5 ADJUST ADDRESS FOR ACCESS MESSAGE
- RAM ADFD
- AOM ADFC
- LDC NJNI+ADF7.3-ADFF
- STM ADFF
- LDN BMLF SELECT MAINTENANCE LOG
- UJN AER1 ACCESS DAYFILE
- ERRNG 37-ADF7.3+ADFF JUMP OUT OF RANGE
- AUD SPACE 4
- *** FUNCTION *AUDF* - ACCESS USER DAYFILE.
- *
- * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
- * LIBRARY TYPE FILE AT CONTROL POINT.
- AUD LDN 0 SELECT USER DAYFILE
- UJN AER1
- RDT SPACE 4
- *** FUNCTION *RDTF* - RETURN DEVICE TYPE.
- *
- * FET+1, BYTE 0 = EST ORDINAL.
- * RETURN DEVICE TYPE IN FET+1, BYTE 0.
- RDT RJM GFE GET FET ADDRESS
- ADN 1
- CRD CM
- LDN ESTP READ EST POINTER
- CRD FS
- LDD CM LOAD EST ORDINAL
- SBD FS+2
- MJN RDT1 IF IN TABLE
- ABORT /MESS/EREQ * SFM INCORRECT EQUIPMENT.*
- RDT1 SFA EST,CM
- ADK EQDE
- CRD FS READ EST ENTRY
- LDD FS
- LPC 4000
- LMD FS+3
- STD CM
- RJM GFE RETURN DEVICE TYPE TO FET
- ADN 1
- CWD CM
- LJM SFMX EXIT
- PAD SPACE 4,5
- *** FUNCTION *PADF* - PROTECT ACTIVE DAYFILE.
- *
- * AN ACTIVE DAYFILE OF TYPE, TY, WILL BE PROTECTED BY
- * PLACING THE FIRST TRACK FROM THE DAYFILE POINTER INTO THE
- * APPROPRIATE TRACK BYTE IN THE SECTOR OF LOCAL AREAS.
- * THE TRACK INTERLOCK IS ASSUMED TO BE INTERLOCKED.
- * THE TRACK INTERLOCK WILL BE CLEARED.
- PDF RJM SDT SET DAYFILE TYPE
- RJM SDA SET DAYFILE POINTER ADDRESS
- CRD CM
- LDD CM SET EQUIPMENT
- STD T5
- LDD CM+1 SET FIRST TRACK
- STD T6
- RJM DTS DETERMINE TRACK STATUS
- MJN PDF1 IF TRACK INTERLOCKED
- ABORT /MESS/ERTE * SFM TRACK INTERLOCK ERROR.*
- PDF1 LDD T6 CLEAR TRACK INTERLOCK
- RJM CTI
- LDN SPFS SET PRESERVED FILE BIT
- STD CM+3
- LDD T5 SET EQUIPMENT
- STD CM+1
- LDD T6 SET FIRST TRACK
- STD CM+2
- MONITOR STBM
- PDF2 LDC CKPA SET CHECKPOINT REQUEST
- STM SFMF
- LJM SFMX RETURN
- CDB SPACE 4,6
- *** FUNCTION *CDBF* - CLEAR DAYFILE BYTE.
- *
- * THE TRACK INTERLOCK AND THE FIRST TRACK BYTE FOR THE
- * SPECIFIED DAYFILE ON THE SPECIFIED DEVICE WILL BE CLEARED.
- CDB RJM SDT SET DAYFILE TYPE
- LDD CN SET EQUIPMENT
- STD T5
- STM CDBA
- SFA EST READ EST ENTRY
- ADK EQDE
- CRD CN
- LDD CN CHECK IF MASS STORAGE
- SHN 21-13
- MJN CDB2 IF MASS STORAGE EQUIPMENT
- CDB1 ABORT /MESS/EREQ * SFM INCORRECT EQUIPMENT.*
- CDB2 RJM RLA READ SECTOR OF LOCAL AREAS
- ZJN CDB1 IF NO ENTRY FOR THIS MACHINE
- PJN CDB3 IF NO MASS STORAGE ERROR
- ERROR /ERR/RMS EC=3, SFM UNCORECTABLE RMS ERROR
- CDB3 ADD TY SET TRACK BYTE ADDRESS
- SBN SDAY
- STD T1
- LDI T1 SET FIRST TRACK OF INACTIVE DAYFILE
- STD T6
- RJM DTS DETERMINE TRACK STATUS
- MJN CDB4 IF TRACK INTERLOCK SET
- ABORT /MESS/ERTE * SFM TRACK INTERLOCK ERROR.*
- CDB4 LDD TY SET CHECKPOINT PARAMETER
- STM CKPA+4
- RJM CIB CLEAR FST INTERLOCK BIT
- LDD T6 CLEAR TRACK INTERLOCK
- RJM CTI
- LDD MA LOCATE THE *ZZZZLBT* FILE
- CWM ATDD,ON
- SBN 1
- CRD FN
- RJM SAF
- ZJN CDB5 IF FILE NOT FOUND
- RJM DRF RETURN THE *ZZZZLBT* FILE
- LDC * RESET THE EST ORDINAL
- CDBA EQU *-1
- STD T5
- LJM PDF2 SET CHECKPOINT REQUEST
- CDB5 ABORT /MESS/ERFF * SFM FILE NOT FOUND.*
- ATD SPACE 4,15
- ATD TITLE ATTACH INACTIVE DAYFILE.
- *** FUNCTION *ATDF* - ATTACH INACTIVE DAYFILE.
- *
- * THE SPECIFIED INACTIVE DAYFILE ON EQUIPMENT, EQ, IS ATTACHED
- * TO THE CONTROL POINT AS A LIBRARY TYPE FILE WITH ITS TRACK
- * INTERLOCK BIT SET. THE FILE NAME IS TAKEN FROM THE FIRST
- * WORD OF THE FET.
- *
- * IF A LIBRARY TYPE FILE WITH THE SAME FILE NAME IS FOUND
- * ATTACHED TO THE CONTROL POINT, THEN THE CALLER IS ABORTED.
- * IF THE DUPLICATE FILE IS NOT A LIBRARY TYPE FILE, THEN
- * IT IS RETURNED BEFORE CREATING THE NEW FILE.
- *
- * THE LABEL TRACK ON THE DAYFILE DEVICE WILL BE INTERLOCKED TO
- * PREVENT PROBLEMS CAUSED BY MULTIPLE *DFTERM* RUNS. THIS
- * INTERLOCK IS NORMALLY CLEARED BY A *CDBF* CALL. TO ALLOW
- * FOR A POSSIBLE ABORT OF *DFTERM*, A LOCAL FILE *ZZZZLBT* OF
- * FILE TYPE *LIFT* WILL BE CREATED. THIS FILE POINTS TO THE
- * INTERLOCKED LABEL. *0DF* WILL CLEAR THE INTERLOCK WHEN
- * THE *ZZZZLBT* FILE IS RETURNED.
- ATD BSS 0 ENTRY
- LDD MA CREATE THE *ZZZZLBT* FILE
- CWM ATDD,ON
- SBN 1
- CRD FN
- ATD0 LDN NEEQ SET THE NULL EQUIPMENT
- STD FS
- LDN 2 RETURN IF NFL INCREASE PENDING
- STM OVL0-1
- EXECUTE 0BF,OVL0
- UJN ATD0.2 CHECK FOR FNT ENTRY CREATED
- * PROCESS DUPLICATE FILE.
- RJM SFB SET FILE BUSY
- NJN ATD0.1 IF FILE BUSY REJECT
- RJM DRF DROP THE FILE
- UJN ATD0 RETRY THE FILE CREATION
- ATD0.1 ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
- ATD0.2 ZJN ATD0.3 IF FNT CREATED
- LDN NFIR
- LJM ERS ENTER PP RECALL STACK
- ATD0.3 LDD FA SAVE THE FNT OFFSET
- STM ATDC
- RJM GFE GET THE DAYFILE FNT NAME
- CRD FN
- RJM VFN VERIFY FILE NAME
- NJN ATD1 IF NAME VERIFIES
- ABORT /MESS/ERFN * SFM FILE NAME ERROR.*
- * GET FIRST TRACK OF FILE TO ATTACH.
- ATD1 RJM SDT SET DAYFILE TYPE
- LDD CN SET EST ORDINAL
- STD T5
- STM ATDB SAVE EST ORDINAL
- SFA EST READ EST ENTRY
- ADK EQDE
- CRD CN
- LDD CN
- SHN 21-13
- MJN ATD3 IF MASS STORAGE
- ATD2 ABORT /MESS/EREQ * SFM INCORRECT EQUIPMENT.*
- ATD3 RJM RLA READ SECTOR OF LOCAL AREAS
- ZJN ATD2 IF NO ENTRY FOR THIS MACHINE
- PJN ATD4 IF NO MASS STORAGE ERROR
- ERROR /ERR/RMS EC=3, UNCORRECTABLE RMS ERROR
- ATD4 ADD TY SET TRACK BYTE ADDRESS
- SBN SDAY
- STD T1
- LDI T1 SET FIRST TRACK OF INACTIVE DAYFILE
- STD T6
- STM ATDA
- NJN ATD5 IF FILE EXISTS
- ERROR /ERR/FNF EC=2, FILE NOT FOUND
- * SET TRACK INTERLOCK.
- ATD5 RJM STI SET TRACK INTERLOCK
- ZJN ATD7 IF INTERLOCK SET
- ERROR /ERR/DFB EC=0, DAYFILE BUSY
- * ENTER FILE IN FNT TABLE.
- ATD6 RJM SFB SET FILE BUSY
- NJN ATD7.1 IF FILE BUSY REJECT
- RJM DRF DROP FILE
- ATD7 LDN NEEQ SET NULL EQUIPMENT
- STD FS
- LDN 2 RETURN TO ENTER PP STACK ON NFL INCREASE
- STM OVL0-1
- EXECUTE 0BF,OVL0 MAKE FNT/FST ENTRY
- UJN ATD7.2 CHECK IF FNT ENTRY CREATED
- * PROCESS DUPLICATE FILE.
- NFA FA,R READ FNT ENTRY OF DUPLICATE FILE
- CRD FS
- LDD FS+4 CHECK FILE TYPE
- SHN -6
- LMN LIFT
- NJN ATD6 IF FILE NOT *LIBRARY* TYPE
- ATD7.1 LDN 0 CLEAR FNT ENTRY ADDRESS
- STD FA
- LDM ATDA CLEAR TRACK INTERLOCK
- RJM CTI
- ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
- ATD7.2 ZJN ATD8 IF FNT ENTRY CREATED
- LDM ATDA CLEAR TRACK INTERLOCK
- RJM CTI
- LDN NFIR REASON CODE = NFL INCREASE PENDING
- LJM ERS ENTER PP RECALL STACK
- * BUILD FNT/FST ENTRY.
- ATD8 LDC * SET FIRST TRACK
- ATDA EQU *-1 (DAYFILE FIRST TRACK)
- STD FS+1
- STD FS+2 SET CURRENT TRACK
- LDC * SET EQUIPMENT
- ATDB EQU *-1 (EST ORDINAL)
- STD FS
- STD T5 SET EST ORDINAL
- LDN FSMS SET CURRENT SECTOR
- STD FS+3
- LDC 1005 SET TRACK INTERLOCK, EOR
- STD FS+4
- LDC LIFT*100 SET FILE TYPE TO *LIBRARY*
- STD FN+4
- RJM LLT LOCATE LABEL TRACK
- RJM WTI SET TRACK INTERLOCK
- NJP ATD9 IF TRACK INTERLOCK NOT SET
- NFA FA,R STORE FNT ENTRY
- CWD FN
- ADN FSTL STORE THE FST ENTRY
- CWD FS
- LDC ** COMPLETE THE *ZZZZLBT* FILE
- ATDC EQU *-1
- STD FA
- NFA FA,R
- ADK FNTL
- CRD FN
- ADN FSTL-FNTL
- CRD FS
- LDM ATDB SET THE EST ORDINAL
- STD FS
- RJM LLT SET THE LABEL TRACK
- STD FS+1
- STD FS+2
- LDC 1005 SET THE TRACK INTERLOCK FLAG
- STD FS+4
- LDC LIFT*100 SET LIBRARY FILE TYPE
- STD FN+4
- NFA FA,R
- ADK FNTL
- CWD FN
- ADN FSTL-FNTL
- CWD FS
- LDN 0 CLEAR THE FNT POINTER
- STD FA
- LJM SFMX
- ATD9 LDD FS+1 CLEAR TRACK INTERLOCK ON DAYFILE
- RJM CTI
- RJM DRF RETURN FNT ENTRY
- ERROR /ERR/DFB EC=1, DAYFILE BUSY
- ATDD VFD 42/0LZZZZLBT,18/0
- GDI SPACE 4,10
- *** FUNCTION *GDIF* - GET DEVICE INFORMATION.
- *
- * COPY DEVICE INFORMATION SECTOR FOR SPECIFIED DEVICE
- * INTO CENTRAL BUFFER STARTING AT *FIRST*.
- *
- * THE CALLING PROGRAM MUST HAVE SYSTEM ORIGIN AND
- * AN *SSJ=* ENTRY POINT.
- GDI BSS 0 ENTRY
- LDD HN VALIDATE BUFFER POINTERS
- RJM VBP
- MJN GDI1 IF DATA FITS IN BUFFER AND IN FL
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- GDI1 RJM GFE READ EST ORDINAL
- ADN 7
- CRD CM
- LDD CM VALIDATE EQUIPMENT
- RJM VEQ
- RJM RDI READ DEVICE INFORMATION SECTOR
- ENDMS
- LDD CN+3 WRITE SECTOR TO CENTRAL BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD CN+4
- CWM BFMS+2,HN
- LDN 0 UPDATE BUFFER POINTERS
- STD CN
- STD CN+1
- STD CN+2
- RJM GFE SET (OUT) = (FIRST)
- ADN 3
- CWD CN
- LDD T1 SET (IN) = (FIRST) + (WORDS TRANSFERRED)
- RAD CN+4
- SHN -14
- RAD CN+3
- RJM GFE
- ADN 2
- CWD CN
- LDN 22 LAST STATUS = EOR
- STD LS
- LJM SFMX EXIT
- SDF SPACE 4,10
- *** FUNCTION *SDFF* - SET DEVICE INFORMATION.
- *
- * SET FIELDS IN DEVICE INFORMATION SECTOR OF
- * SPECIFIED DEVICE. WORD AT *WI* IS UPDATED WITH DATA
- * FOUND IN CENTRAL BUFFER AT *FIRST*.
- *
- * THE CALLING PROGRAM MUST HAVE SYSTEM ORIGIN
- * PRIVILEGES AND AN *SSJ=* ENTRY POINT.
- SDF BSS 0 ENTRY
- RJM GFE READ *FIRST*
- ADN 1
- CRD CN
- ADN 7-1 READ (FET+7)
- CRD CM
- LDD CN+3
- LPN 37
- STD CN+3
- SHN 14
- LMD CN+4
- SHN -6
- SBD FL
- MJN SDF1 IF DATA WITHIN FL
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- SDF1 LDD CM+4 SAVE WORD INDEX
- LPN 77
- STM SDFA
- SBN MNIT
- PJN SDF2 IF NOT RESERVED WORD
- ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
- SDF2 LDD CM VALIDATE EQUIPMENT
- RJM VEQ
- LDN 0 FORCE LABEL TRACK INTERLOCK
- STM RDIA
- RJM RDI READ DEVICE INFORMATION SECTOR
- LDC * CALCULATE ADDRESS OF WORD IN BUFFER
- SDFA EQU *-1 (INDEX OF WORD TO UPDATE)
- SHN 2
- ADM SDFA
- ADC BFMS+2
- STM SDFB
- LDD CN+3
- SHN 6
- ADD RA
- SHN 6
- ADD CN+4
- CRM *,ON UPDATE WORD
- SDFB EQU *-1 (ADDRESS OF WORD WITHIN BUFFER)
- LDN PDTL UPDATE SECTOR MODIFICATION DATE
- CRM BFMS+2+SMIT*5,ON
- LDC BFMS+WLSF REWRITE SECTOR
- RJM WMS
- ENDMS
- RJM RTI RELEASE LABEL TRACK INTERLOCK
- LJM SFMX EXIT
- RSD SPACE 4,10
- TITLE SUBROUTINES.
- CBL SPACE 4,10
- ** CBL - CHECK DAYFILE BUFFER LENGTH.
- *
- * ENTRY (TY) = DAYFILE TYPE.
- *
- * EXIT (A) = BUFFER LENGTH.
- * TO *ABT* IF ZERO LENGTH DAYFILE BUFFER.
- *
- * USES FA, CM - CM+4.
- *
- * CALLS SDA.
- CBL SUBR ENTRY/EXIT
- RJM SDA SET DAYFILE ADDRESS
- SBN 1 READ BUFFER LENGTH (OUT POINTER) WORD
- CRD CM
- LDD CM+2
- NJN CBLX IF NOT ZERO LENGTH BUFFER
- STD FA CLEAR FST ADDRESS
- ABORT /MESS/ERFE * SFM FILE EMPTY.*
- CDF SPACE 4,10
- ** CDF - COPY DAYFILE.
- *
- * ENTRY (CN+3 - CN+4) = IN POINTER.
- *
- * EXIT (CN+3 - CN+4) ADVANCED.
- *
- * USES T1 - T3, CM - CM+7.
- *
- * CALLS SBA, SDA.
- CDF SUBR ENTRY/EXIT
- RJM SDA SET DAYFILE FET ADDRESS
- SBN 1
- CRD CM+3
- SBN 1
- CRD CM
- LDD HN SET BLOCK SIZE FOR READ
- STD T3
- CDF1 LDD CM+4 IN - OUT
- SBD CM+7
- ZJN CDFX IF BUFFER EMPTY
- PJN CDF2 IF IN .GT. OUT
- ADD CM+5 ADD BUFFER LENGTH
- CDF2 SBD T3
- PJN CDF3 IF FULL BLOCK IN BUFFER
- ADD HN ADJUST BLOCK SIZE
- STD T3
- CDF3 LDD T3 SET WORD COUNT FOR READ
- STD T2
- ADD CM+7 ADD OUT - BUFFER LENGTH
- SBD CM+5
- MJN CDF4 IF NO WRAP AROUND
- ZJN CDF4 IF NO WRAP AROUND
- STD T1 WORD COUNT FOR FIRST READ
- LDD CM+5 WORD COUNT FROM OUT TO END OF BUFFER
- SBD CM+7
- STD T2
- SHN 2
- ADD T2
- ADC BFMS BUFFER ADDRESS FOR FIRST READ
- STM CDFA
- RJM SBA READ WRAP AROUND
- CRM *,T1
- CDFA EQU *-1
- CDF4 RJM SBA READ DAYFILE BLOCK
- ADD CM+7
- CRM BFMS,T2
- LDD CN+3 STORE DATA READ
- SHN 6
- ADD RA
- SHN 6
- ADD CN+4
- CWM BFMS,T3
- LDD T3 ADVANCE IN POINTER
- RAD CN+4
- SHN -14
- RAD CN+3
- LDD T3 ADVANCE DAYFILE OUT POINTER
- RAD CM+7
- SBD CM+5
- MJN CDF5 IF NO WRAP AROUND
- STD CM+7
- CDF5 LJM CDF1 LOOP FOR NEXT BLOCK
- CIB SPACE 4,15
- ** CIB - CLEAR FST INTERLOCK BIT.
- * THE TRACK INTERLOCK BIT IN THE FST FOR THE OLD
- * DAYFILE IS CLEARED.
- *
- * ENTRY (IR+3 - IR+4) = FET ADDRESS.
- *
- * EXIT FST ENTRY REWRITTEN.
- *
- * USES FA, CM - CM+4, FN - FN+4.
- *
- * CALLS GFE, SAF.
- *
- * MACROS NFA.
- CIB SUBR ENTRY/EXIT
- RJM GFE GET FET ADDRESS
- CRD FN READ FILE NAME
- RJM SAF SEARCH FOR ASSIGNED FILE
- ZJN CIBX IF FILE NOT FOUND
- NFA FA,R
- ADN FSTL
- CRD CM READ FST ENTRY
- LDD CM+4 CLEAR INTERLOCK BIT
- LPC 6777
- STD CM+4
- NFA FA,R
- ADN FSTL
- CWD CM REWRITE FST ENTRY
- LDN 0 CLEAR FNT ORDINAL
- STD FA
- UJN CIBX RETURN
- SBA SPACE 4,10
- ** SBA - SET BUFFER ADDRESS.
- *
- * ENTRY (TY) = DAYFILE TYPE.
- * (CM - CM+1) = DAYFILE BUFFER ADDRESS.
- *
- * EXIT (A) = DAYFILE BUFFER ADDRESS.
- *
- * MACROS NFA.
- SBA1 NFA DAYN SET JOB DAYFILE BUFFER ADDRESS
- SBA SUBR ENTRY/EXIT
- LDD TY
- ZJN SBA1 IF JOB DAYFILE
- LDD CM SET SYSTEM DAYFILE BUFFER ADDRESS
- SHN 14
- ADD CM+1
- UJN SBAX RETURN
- RDI SPACE 4,20
- ** RDI - READ DEVICE INFORMATION SECTOR.
- *
- * ENTRY (T5) = EQUIPMENT.
- * (RDIA) = *PSN* IF LABEL TRACK IS TO BE INTERLOCKED.
- *
- * EXIT (T6) = LABEL TRACK.
- * (T7) = *DILT* SECTOR.
- * (BFMS) = DEVICE INFORMATION SECTOR.
- *
- * ERROR TO *DPP* IF ERROR FLAG SET.
- *
- * CALLS LLT, RMS, WTI.
- *
- * MACROS SETMS.
- RDI SUBR ENTRY/EXIT
- RJM LLT LOCATE LABEL TRACK
- RDIA UJN RDI2 BYPASS LABEL TRACK INTERLOCK
- * PSN (*SETDI* FUNCTION)
- RJM WTI SET LABEL TRACK INTERLOCK
- NJP DPP IF ERROR FLAG SET
- LDD T6
- STM RTIA
- RDI2 LDN DILT SET SECTOR
- STD T7
- SETMS IO,RW
- LDC BFMS READ SECTOR
- RJM RMS
- UJP RDIX RETURN
- VBP SPACE 4,15
- ** VBP - VALIDATE BUFFER POINTERS.
- *
- * ENTRY (A) = BUFFER LENGTH REQUIRED.
- *
- * EXIT (A) .LT. 0 IF VALID POINTERS.
- * (CN+3 - CN+4) = (FIRST).
- *
- * USES T0, T1, CN - CN+4, T2 - T2+4.
- *
- * CALLS GFE.
- VBP SUBR ENTRY/EXIT
- STD T1
- RJM GFE READ *FIRST*
- ADN 1
- CRD CN
- ADN 3 READ *LIMIT*
- CRD T2
- LDD T2+3
- LPN 37
- STD T2+3
- SHN 14
- LMD T2+4
- SBN 1
- SHN -6
- SBD FL
- PJN VBPX IF LIMIT .GT. FL
- LDD CN+3
- LPN 37
- STD CN+3
- SHN 14
- LMD CN+4
- ADD T1 FIRST+BUFL
- STD T2
- SHN -14
- SBD T2+3
- NJN VBPX IF (FIRST+BUFL) .NE. LIMIT
- LDD T2
- SBD T2+4
- UJN VBPX RETURN
- VEQ SPACE 4,10
- ** VEQ - VALIDATE EQUIPMENT.
- *
- * ENTRY (A) = EST ORDINAL.
- *
- * EXIT (CM - CM+4) = EST ENTRY.
- * TO *ABT* IF INCORRECT EQUIPMENT.
- *
- * USES T5, CM - CM+4.
- *
- * MACROS ABORT, SFA.
- VEQ SUBR ENTRY/EXIT
- STD T5
- ZJN VEQ1 IF NOT LEGAL EST ORDINAL
- SFA EST READ EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM
- SHN 21-13
- MJN VEQX IF MASS STORAGE EQUIPMENT
- VEQ1 ABORT /MESS/EREQ * SFM INCORRECT EQUIPMENT.*
- SPACE 4
- SPACE 4
- OVL0 EQU BFMS-ZDFL
- ERRNG OVL0-*-5 OVERFLOW INTO ZERO LEVEL OVERLAY AREA
- ERRNG EPFW-OVL0-ZBFL CHECK LENGTH OF *0BF*
- ERRNG EPFW-OVL0-ZTDL CHECK LENGTH OF *0TD*
- PRS TITLE PRESET.
- ** PRS - PRESET PROGRAM.
- *
- * EXIT (LS) = LAST FET STATUS.
- * (FA) = 0.
- * (FI) = 0.
- * (MI) = 1.
- * (TE) = NUMBER OF ENTRIES IN FNT.
- * (FN - FN+4) = FIRST WORD OF FET.
- PRS SUBR ENTRY/EXIT
- LDN 0 CLEAR FST ADDRESS
- STD T1
- STD FA
- STD FI
- LDN 1 PRESET MACHINE INDEX
- STD MI
- RJM CRS CHECK RECALL STATUS
- ZJN PRS1 IF RECALL NOT SET
- * CHECK FUNCTION CODE.
- LDD IR+2 CHECK FUNCTION CODE
- SHN 1
- ADD IR+2
- STD T7
- SBK MXFN*3
- MJN PRS2 IF LEGAL CODE
- PRS1 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
- * CHECK FET ADDRESS.
- PRS2 LDD IR+3 CHECK FET ADDRESS
- LPN 77
- STD IR+3
- SHN 14
- MJN PRS2.1 IF OUT OF RANGE
- LMD IR+4
- ADN 1
- SHN -6
- SBD FL
- MJN PRS2.2 IF NOT OUT OF RANGE
- PRS2.1 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- * CHECK FET LENGTH.
- PRS2.2 LDM TFCN+2,T7
- LPN 77
- STM FETL SAVE REQUIRED FET LENGTH
- ZJN PRS2.3 IF NO FET REQUIRED
- RJM GFE GET FET ADDRESS
- ADN 1
- CRD CM
- LDD CM+3 SET FET LENGTH
- SHN -6
- ADN 5
- STD T1
- LDM FETL CHECK FET LENGTH
- SBD T1
- PJN PRS2.1 IF FET NOT LONG ENOUGH
- PRS2.3 LDD IR+3
- SHN 14
- LMD IR+4
- ADD T1
- SHN -6
- SBD FL
- PJN PRS2.1 IF OUT OF RANGE
- * CHECK FOR PRIVILEGED ANALYST ACCESS.
- LDM TFCN+2,T7
- SHN 21-7
- PJN PRS3 IF NOT CHECKING FOR PRIVILEGED ANALYST
- RJM VPA VALIDATE PRIVILEGED ANALYST
- ZJN PRS3.1 IF PRIVILEGED ANALYST ACCESS ALLOWED
- * CHECK FOR EITHER SYSTEM ORIGIN PRIVILEGES OR *SSJ=*.
- PRS3 LDM TFCN+2,T7
- SHN 21-10
- PJN PRS4 IF NOT CHECKING FOR *SYOT* OR *SSJ=*
- RJM CUA CHECK USER ACCESS
- ZJN PRS3.1 IF CALLER HAS SYSTEM ORIGIN PRIVILEGES
- LDD CP CHECK FOR *SSJ=*
- ADK SEPW
- CRD CM
- LDD CM
- SHN 21-2
- PJN PRS5 IF CALLER IS NOT *SSJ=*
- PRS3.1 LJM PRS7 PROCESS FUNCTION
- * CHECK FOR SYSTEM ORIGIN PRIVILEGES.
- PRS4 LDM TFCN+2,T7 CHECK USER ACCESS REQUIRMENTS
- SHN 21-12
- PJN PRS6 IF NO REQUIREMENTS
- RJM CUA CHECK USER ACCESS
- ZJN PRS6 IF CALLER HAS SYSTEM ORIGIN PRIVILEGES
- LDD CM CHECK MAINTENANCE ACCESS
- NJN PRS5 IF NOT MAINTENANCE ACCESS
- LDM TFCN+2,T7
- SHN 21-11
- MJN PRS6 IF MAINTENANCE ACCESS ALLOWED
- PRS5 LJM PRS1 * SFM INCORRECT REQUEST.*
- * CHECK FOR *SSJ=*.
- PRS6 LDM TFCN+2,T7
- SHN 21-13
- PJN PRS7 IF NOT CHECKING FOR *SSJ=*
- LDD CP READ SPECIAL ENTRY POINTS
- ADC SEPW
- CRD CM
- LDD CM
- SHN 21-2
- PJN PRS5 IF *SSJ=* NOT PRESENT
- * PROCESS FUNCTION.
- PRS7 LDM TFCN,T7 SET OVERLAY NAME
- STM SFMA
- LDM TFCN+1,T7 SET PROCESSOR ADDRESS
- STM SFMB
- RJM GFE GET FET ADDRESS
- CRD FN
- LDD FN+4 SAVE LAST FET STATUS
- LPC 1776
- STD LS
- LDN DFPP READ DAYFILE POINTER WORD
- CRD CM
- LDD CM SET FWA-1 OF DAYFILE POINTERS
- SHN 14
- LMD CM+1
- SBN 1
- STM SDAA+1
- SHN -14
- RAM SDAA
- LDN FNTP SET FNT POINTER
- CRD CM
- LDD CM+2 SET NUMBER OF ENTRIES
- STD TE
- RJM IFP INITIALIZE TABLE ACCESS ROUTINES
- LJM PRSX RETURN
- IFP HERE DUMP *IFP* REMOTE CODE
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPCRS
- SSJ$ EQU 1 SET SSJ CHECKING FOR *COMPCUA*
- *CALL COMPCUA
- *CALL COMPVPA
- TFCN SPACE 4,20
- ** TFCN - TABLE OF FUNCTION CODE PROCESSORS.
- *
- *T, 12/O,12/N,1/S,1/P,1/M,1/E,1/A,1/0,6/L
- *
- * N FUNCTION PROCESSOR ADDRESS.
- * O OVERLAY NAME.
- * S *SSJ=* ENTRY POINT REQUIRED.
- * P SYSTEM ORIGIN PRIVILEGES REQUIRED.
- * M MAINTENANCE ACCESS ALLOWED.
- * E EITHER *SSJ=* OR SYSTEM ORIGIN PRIVILEGES REQUIRED.
- * A ALLOW ACCESS IF CALLER HAS PRIVILEGED ANALYST
- * VALIDATION AND IF *PRIVILEGED ANALYST MODE* ENABLED.
- * L REQUIRED FET LENGTH - 1.
- TFCN FCN
- FCN TAFF,TAD,6,P,SSJ TERMINATE ACTIVE DAYFILE
- FCN AMDF,ADF,5,P,,,,A ACCESS MASTER DAYFILE
- FCN AAFF,AAC,5,P,,,,A ACCESS ACCOUNT DAYFILE
- FCN AELF,AER,5,P,,M,,A ACCESS ERROR LOG
- FCN AMLF,AMF,5,P,,M ACCESS MAINTENANCE LOG
- FCN AUDF,AUD,5 ACCESS USER DAYFILE
- FCN RDTF,RDT,4,P RETURN DEVICE TYPE
- FCN PADF,PDF,6,P,SSJ PROTECT ACTIVE DAYFILE
- FCN CDBF,CDB,6,P,SSJ CLEAR DAYFILE BYTE
- FCN EFAF,EGF,5,P,SSJ ENTER LOCAL FAST ATTACH FILE
- FCN DFAF,DFA,5,P,SSJ DELETE FAST ATTACH FILE
- FCN ECFF,ECF,5,P,SSJ ENTER *CPD* SAMPLE FILE
- FCN ATDF,ATD,6,,SSJ ATTACH INACTIVE DAYFILE
- FCN EGFF,EGF,5,P,SSJ ENTER GLOBAL FAST ATTACH FILE
- FCN ELFF,ELF,5,P,SSJ ENTER LINK FAST ATTACH FILE
- FCN GDIF,GDI,6,P,SSJ GET DEVICE INFORMATION
- FCN SDFF,SDF,6,P,SSJ SET DEVICE INFORMATION
- FCN RSDF,RSD,0,,,,E RETURN SYSTEM DATA
- FCN CSTF,CST,0,P CLEAR SUBSYSTEM ACCESS FLAG
- FCN SSTF,CST,0,P SET SUBSYSTEM ACCESS FLAG
- FCN SCDF,SCD,4,P SET *CPD* DROP FLAG
- FCN CFFF,CFA,5,P,SSJ COUNT FAST ATTACH FILES
- FCN MDFF,DMM,4,P DUMP MACHINE MEMORY
- FCN GLAF,GLA,0 GET LID ATTRIBUTES
- FCN GLTF,GLT,4,,,,E GET LID TABLE
- FCN GLPF,GLP,0,,,,E GET PID ATTRIBUTES
- FCN GSSF,GSS,0 GET ORIGIN TYPE ACCESS LEVELS
- FCN GEAF,GEA,0 GET EQUIPMENT ACCESS LEVEL LIMITS
- FCN GSMF,GSM,0 GET SYSTEM SECURITY MODE
- FCN SPTF,SPT,0,,,,E SET PID ATTRIBUTES
- FCN ILTF,INT,0,,,,E INITIALIZE LDT
- FCN GLCF,GLC,0,,,,E GET LID CONFIGURATION
- FCN SUSF,SSS,0,P SET SUBSYSTEM STATUS
- FCN GTSF,GTS,0 GET *TMS* STATUS
- FCN TPDF,TPD,0,,SSJ TRANSFER RESOURCE PREVIEW DATA
- FCN MXFN
- SPACE 4,10
- OVERFLOW
- OVERLAY (ERROR PROCESSOR.)
- ABP SPACE 4,15
- ** ABP - ABORT JOB.
- *
- * ENTRY (DA) = MESSAGE ADDRESS.
- * (FS - FS+4) = FST ENTRY.
- * (FA) = FST ADDRESS.
- * (FA) = 0, IF NO FILE.
- *
- * USES CM+1, FS+4.
- *
- * CALLS CFB, DFM.
- *
- * MACROS MONITOR.
- ABP ENTRY ENTRY
- LDD DA ISSUE MESSAGE TO DAYFILE
- ZJN ABP2 IF NO DAYFILE MESSAGE
- ABP0 RJM DFM
- RJM CFB CLEAR FILE BUSY
- ABP1 MONITOR ABTM ABORT PROGRAM
- LJM PPR EXIT TO PP RESIDENT
- ABP2 LDC /MESS/ERIE * SFM INTERNAL ERROR.*
- UJN ABP0 ISSUE MESSAGE
- * DAYFILE ERROR MESSAGES.
- QUAL MESS
- ERAB DATA C* SFM ABORTED.*
- ERAE DATA C* SFM ARGUMENT ERROR.*
- ERAF DATA C* SFM FAMILY STILL ACTIVE.*
- ERDA DATA C* SFM DIRECT ACCESS FILE ERROR.*
- ERDC DATA C* SFM INCORRECT DAYFILE CODE.*
- ERDF DATA C* SFM DUPLICATE FILE FOUND.*
- EREQ DATA C* SFM INCORRECT EQUIPMENT.*
- ERFA DATA C* SFM LINK FAST ATTACH FILE NOT FOUND.*
- ERFE DATA C* SFM FILE EMPTY.*
- ERFF DATA C* SFM FILE NOT FOUND.*
- ERFN DATA C* SFM FILE NAME ERROR.*
- ERFT DATA C* SFM INCORRECT FILE TYPE.*
- ERFU DATA C* SFM FNT FULL.*
- ERIO DATA C* SFM I/O SEQUENCE ERROR.*
- ERIR DATA C* SFM INCORRECT REQUEST.*
- ERLE DATA C* SFM UNRECOVERABLE LINK DEVICE ERROR.*
- ERMS DATA C* SFM FILE NOT ON MASS STORAGE.*
- ERNH DATA C* SFM GLOBAL FAST ATTACH LIMIT.*
- ERSE DATA C* SFM SYSTEM SECTOR ERROR.*
- ERTE DATA C* SFM TRACK INTERLOCK ERROR.*
- ERUD DATA C* SFM UNABLE TO INTERLOCK DEVICE.*
- ERWC DATA C* SFM BML MESSAGE LENGTH ERROR.*
- ERIE DATA C* SFM INTERNAL ERROR.*
- QUAL *
- ERP SPACE 4,10
- ** ERP - COMMON ERROR EXIT FROM SFM.
- *
- * ENTRY (DA) = ERROR CODE.
- *
- * USES DA, LS, CM - CM+4.
- *
- * CALLS GFE.
- ERP ENTRY ENTRY
- LDM FETL CHECK FET LENGTH
- ZJN ERP0 IF ONE-WORD FET
- RJM GFE GET FET ADDRESS
- ADN 1
- CRD CM
- LDD CM+1 CHECK IF EP BIT SET
- SHN 21-10
- PJN ERP1 IF EP BIT NOT SET
- ERP0 LDD DA SET ERROR CODE IN FET+0
- SHN 12
- RAD LS
- SHN -14
- STM SFMC
- LJM SFMX RETURN TO USER
- ERP1 LDD DA CHECK ERROR TYPE
- LMN /ERR/DFB
- NJN ERP2 IF NOT DAYFILE BUSY ERROR
- LDN TIRR REASON CODE = TRACK INTERLOCK
- LJM ERS ENTER PP RECALL STACK
- ERP2 LDM TEMT,DA SET ERROR MESSAGE ADDRESS
- STD DA
- LJM ABP ABORT JOB
- SPACE 4,10
- ** DEFINED ERROR CODES.
- *
- * EC DESCRIPTION
- * 1 DAYFILE BUSY.
- * 2 MASS STORAGE NOT AVAILABLE.
- * 3 FILE NOT FOUND.
- * 4 UNCORRECTABLE RMS ERROR.
- * 5 *CPD* NOT ACTIVE
- * 6 RETURN INFORMATION TOO LONG FOR BUFFER.
- * 7 LID UNKNOWN OR NOT LEGAL.
- * 10 INCORRECT LID ATTRIBUTES.
- * 11 CURRENT ATTRIBUTES NOT IN LID TABLE.
- * 12 LID TABLE OVERFLOW.
- * 13 TOO MANY HOST LIDS.
- * 14 INCORRECT SUBFUNCTION CODE.
- * 15 INCORRECT NETWORK STATUS PARAMETER.
- * 16 CHECK PARAMETER BLOCK ENTRIES FOR ERROR.
- TEMT INDEX
- INDEX /ERR/DFB,ERPA
- INDEX /ERR/TKL,ERPB
- INDEX /ERR/FNF,ERPC
- INDEX /ERR/RMS,ERPD
- INDEX /ERR/CNF,ERPE
- INDEX /ERR/LTL,ERPF
- INDEX /ERR/LNL,NMSG
- INDEX /ERR/ILA,NMSG
- INDEX /ERR/LOA,NMSG
- INDEX /ERR/LTO,NMSG
- INDEX /ERR/TMH,NMSG
- INDEX /ERR/IFC,NMSG
- INDEX /ERR/IST,NMSG
- INDEX /ERR/CPB,NMSG
- INDEX /ERR/MXSE
- ERPA DATA C* SFM - DAYFILE BUSY.*
- ERPB DATA C* SFM - TRACK LIMIT.*
- ERPC DATA C* SFM - FILE NOT FOUND.*
- ERPD DATA C* SFM - UNCORRECTABLE RMS ERROR.*
- ERPE DATA C+ *CPD* NOT ACTIVE.+
- ERPF DATA C* SFM - LID TABLE TOO LONG FOR BUFFER.*
- NMSG EQU 0 (NO DAYFILE MESSAGE ISSUED)
- SPACE 4,10
- OVERFLOW OVLA
- OVERLAY (FAST ATTACH PROCESSORS.)
- SPACE 4
- EFA TITLE FUNCTION PROCESSORS
- CFA SPACE 4,10
- *** FUNCTION *CFFF* - COUNT FAST ATTACH FILES.
- *
- * *CFA* COUNTS FAST ATTACH FILES FOR THE FAMILY OF THE CALLING
- * PROGRAM AND COMPARES IT TO THE DAF COUNT OF THE SAME FAMILY.
- * *CFA* MUST BE CALLED BY A SPECIAL SYSTEM JOB.
- *
- * ENTRY (IR+3 - IR+4) = FET FWA.
- *
- * EXIT (FET+5) = 36/ 0, 24/ C
- *
- * MACROS SFA.
- CFA ENTRY ENTRY
- LDD CP GET FAMILY NAME
- ADN PFCW
- CRD CM
- SFA EST,CM+3
- ADK EQDE
- CRD CM
- LDD CM+4
- SHN 3
- ADN PFGL
- CRD CM
- * COUNT FAST ATTACH FILES ON SPECIFIED FAMILY.
- LDN 0 INITIALIZE FAFT COUNT
- STD T1
- STD QA
- CFA1 AOD QA ADVANCE FNT ORDINAL
- LMD TE
- ZJN CFA3 IF END OF FNT
- SFA FNT,QA READ FNT ENTRY
- CRD CN
- ADN FSTG READ FST INFORMATION
- CRD T3
- LDD CN+4 CHECK FILE TYPE
- SHN -6
- LMN FAFT
- NJN CFA1 IF NOT FAFT
- LDD T3
- STD T2 SAVE EST ORDINAL
- SFA EST
- ADK EQDE
- CRD T3 EST WORD
- LDD T3+4 READ FAMILY NAME
- SHN 3
- ADN PFGL
- CRD T3
- RJM CFM COMPARE FAMILY NAMES
- NJN CFA1 IF NOT SAME FAMILY
- AOD T1 INCREMENT FAFT COUNT
- UJN CFA1 LOOP
- * GET DIRECT ACCESS FILE (DAF) COUNT FOR SPECIFIED FAMILY.
- CFA3 LDN ESTP GET EST POINTER
- CRD FN
- LDD FN+3 SAVE LAST MASS STORAGE ORDINAL + 1
- STD FN+1
- LDN 0 INITIALIZE DAF COUNT
- STD FN+3
- STD FN+4
- LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
- STD FN
- CFA4 AOD FN GET NEXT EST ENTRY
- LMD FN+1
- ZJN CFA5 IF END OF MASS STORAGE EQUIPMENTS
- SFA EST,FN READ EST ENTRY
- ADK EQDE
- CRD CN
- LDD CN
- SHN 21-13
- PJN CFA4 IF NOT MS EQUIPMENT
- LDD CN+4 GET FAMILY NAME
- SHN 3
- ADN PFGL
- CRD T3
- RJM CFM COMPARE FAMILY NAMES
- NJN CFA4 IF NOT SAME FAMILY
- LDD CN+4 GET DAF COUNT
- SHN 3
- ADN STLL
- CRD CN
- LDD CN+3 INCREMENT DAF COUNT
- RAD FN+4
- SHN -14
- RAD FN+3
- UJN CFA4 SEARCH FOR ANOTHER FAMILY DEVICE
- * STORE RESULT.
- CFA5 LDN ZERL
- CRD CM
- LDD FN+3
- SHN 14
- ADD FN+4
- SBD T1 (DAF COUNT) - (FAFT COUNT)
- STD CM+4
- SHN -14
- STD CM+3
- RJM GFE WRITE FET+5
- ADN 5
- CWD CM
- LJM SFMX EXIT
- ECF SPACE 4,10
- *** FUNCTION *ECFF* - ENTER *CPD* SAMPLE FILE.
- *
- * SPECIFIED FILE MUST BE A DIRECT ACCESS FILE.
- * NO ACTION TAKEN IF SPECIFIED FILE ALREADY ENTERED.
- ECF ENTRY ENTRY
- LCN FAFT-PMFT ENABLE SEARCH FOR *PMFT* FILE
- RAM FATC
- RJM VLF VERIFY LOCAL FILE
- NJN ECF1 IF FILE UNDEFINED IN SYSTEM FNT
- LJM SFMX RETURN
- ECF1 RJM IFA INITIALIZE SYSTEM FNT ENTRY
- LDD QA
- STM ECFA+2 SET FNT ORDINAL FOR *CPD* CALL
- NFA FA,R
- ADN FSTL RESTORE FST INFORMATION
- CRD FS
- LDD IR+3 SET FET ADDRESS
- STM ECFA+3
- LDD IR+4
- STM ECFA+4
- RJM GFE READ LIMIT WORD
- ADN 4
- CRD CN
- LDD FA SET LOCAL FNT OFFSET
- STD CN
- RJM GFE UPDATE FET
- ADN 4
- CWD CN
- LDC ECFA ENABLE *CPD* CALL
- STM SFMF
- LJM SFMX RETURN
- ECFA VFD 18/3RCPD,6/40,12/0,24/0
- EFA SPACE 4,10
- *** FUNCTION *EFAF* - ENTER LOCAL FAST ATTACH FILE.
- *
- * SPECIFIED FILE MUST BE A DIRECT ACCESS FILE.
- * NO ACTION TAKEN IF SPECIFIED FILE ALREADY ENTERED.
- EGF SPACE 4
- *** FUNCTION *EGFF* - ENTER GLOBAL FAST ATTACH FILE.
- *
- * THE SPECIFIED FILE IS ENTERED INTO THE GLOBAL FAST
- * ATTACH STATUS IF IT RESIDES ON A SHARED DEVICE. IF THE
- * FILE IS NOT ON A SHARED DEVICE, THE FUNCTION IS EXACTLY
- * THE SAME AS FUNCTION *EFAF*, ENTER LOCAL FAST ATTACH.
- *
- * THE SPECIFIED FILE MUST BE A DIRECT ACCESS FILE.
- EGF ENTRY ENTRY
- RJM VLF VERIFY LOCAL FILE
- NJN EGF1 IF FAST ATTACH FILE NOT FOUND
- LJM SFMX EXIT
- EGF1 LDD ES CHECK FILE ON SHARED DEVICE
- SHN 21-11
- PJN EGF2 IF NOT SHARED DEVICE
- LDD IR+2
- LMN EFAF
- NJN EGF3 IF NOT LOCAL FAST ATTACH
- RJM SMI GET MACHINE INDEX
- STD MI
- EGF2 UJN EGF6 UPDATE SYSTEM SECTOR
- EGF3 SOM EGFA
- RJM SMP SET MMF PARAMETERS
- LDD ES
- SHN 21-4
- MJN EGF6 IF INDEPENDENT SHARED DEVICE
- LDN DATI SET *DATI* INTERLOCK
- RJM SFR
- RJM SFT SEARCH *FAT* TABLE
- NJN EGF4 IF ENTRY FOUND
- RJM EFI ENTER *FAT* TABLE ENTRY
- ZJN EGF5 IF HOLE USED FOR ENTRY
- RJM IFC INCREMENT FAST ATTACH COUNT
- UJN EGF5
- EGF4 RJM UFI UPDATE *FAT* ENTRY
- EGF5 LDN DATI CLEAR *DATI* INTERLOCK
- RJM CFI
- EGF6 LDD MI SET SYSTEM SECTOR ADDRESS OF WRITE FLAG
- STD BA
- SHN 2
- ADC UCSS
- RAD BA
- RJM IFA INITIALIZE FAST ATTACH FILE
- LDN 1 READ SYSTEM SECTOR
- RJM RFS
- NJN EGF8 IF SYSTEM SECTOR ERROR
- LDD ES
- LPN 20
- ZJN EGF7 IF NOT INDEPENDENT SHARED DEVICE
- LDN 4 SET MACHINE ACTIVE FLAG
- EGF7 ADN 1 SET LOCAL WRITE FLAG
- * ADN 0 (CLEAR LOCAL WRITE FLAG - GLOBAL FILE)
- EGFA EQU *-1
- STI BA
- LDC 4000 SET FAST ATTACH INDICATOR
- LMD FI
- STM FISS
- LDM CASS CLEAR CURRENT ACCESS MODE
- SCN 37
- STM CASS
- LDD QA SET FNT ORDINAL
- STM FASS
- LDD MA COPY FILE NAME TO SYSTEM SECTOR
- CWD FN
- CRM FNSS,ON
- RJM WFS REWRITE SYSTEM SECTOR
- EGF8 LDD FI SET *FAT* INDEX IN FNT ENTRY
- RAD FN+3
- SFA FNT,QA STORE FNT ENTRY
- CWD FN
- ADN FSTG
- CWD FS
- LJM SFMX RETURN
- ELF SPACE 4
- *** FUNCTION *ELFF* - ENTER LINK FAST ATTACH FILE.
- *
- * A SEARCH IS MADE OF THE ECS/FAT TABLE IN ORDER TO DETERMINE
- * IF A FILE WITH THE SPECIFIED NAME HAS ALREADY BEEN ENTERED
- * INTO GLOBAL FAST ATTACH STATUS. THE EST ORDINAL AND
- * FIRST TRACK RETURNED FROM *PFM* IN *TERW* ARE USED TO
- * UNIQUELY IDENTIFY THE FILE.
- ELF ENTRY ENTRY
- LDD CP SET EQUIPMENT AND FIRST TRACK
- ADN TERW
- CRD CM
- LDD CM+4 SET TRACK
- STD FS+1
- LDD CM+3 SET EQUIPMENT
- LPC 777
- STD FS
- STD T5
- SFA EST SET EQUIPMENT EST
- ADK EQDE
- CRD ES
- LDD ES CHECK FILE ON SHARED DEVICE
- SHN 21-11
- PJN ELF1 IF FILE NOT ON SHARED DEVICE
- RJM SMP SET MMF PARAMETERS
- LDD ES
- SHN 21-4
- MJN ELF4 IF INDEPENDENT SHARED DEVICE
- LDN DATI SET *DATI* INTERLOCK
- RJM SFR
- RJM SFT SEARCH *FAT* TABLE
- NJN ELF2 IF FILE FOUND
- ELF1 ABORT /MESS/ERFA * SFM LINK FAST ATTACH FILE NOT FOUND.*
- ELF2 LDD MI CHECK MACHINE ALREADY ENTERED
- SHN 2 OFFSET = (MI+1)*5+(BA)
- ADD MI
- ADN 5
- ADD BA
- STD T1
- LDI T1
- ZJN ELF5 IF MACHINE NOT ENTERED YET
- LDN DATI CLEAR *DATI* INTERLOCK
- RJM CFI
- ELF3 LJM SFMX RETURN
- ELF4 LDD ES+4 READ FAMILY NAME
- SHN 3
- ADN PFGL
- CRD CN
- LDD MA MOVE FILE NAME
- CWD FN
- CRD CM
- RJM FAT SEARCH FOR FAST ATTACH FILE
- NJN ELF6 IF FILE NOT FOUND
- UJN ELF3 RETURN
- ELF5 RJM UFI UPDATE *FAT* TABLE
- LDN DATI CLEAR *DATI* INTERLOCK
- RJM CFI
- ELF6 RJM IFA INITIALIZE FAST ATTACH FILE
- LDD ES
- LPN 20
- ZJN ELF7 IF NOT INDEPENDENT SHARED DEVICE
- RJM RFS READ SYSTEM SECTOR
- NJN ELF3 IF SYSTEM SECTOR ERROR
- LDD MI
- SHN 2
- ADD MI
- ADC UCSS
- STD T1
- LDN 4 SET MACHINE ACTIVE FLAG
- RAI T1
- RJM WFS REWRITE SYSTEM SECTOR
- ELF7 LDD FI SET *FAT* INDEX IN FNT ENTRY
- RAD FN+3
- SFA FNT,QA STORE FNT ENTRY
- CWD FN
- ADN FSTG
- CWD FS
- LDD FS SET EST ORDINAL
- STD CM+1
- LDN IUCS INCREMENT USER COUNT
- STD CM+3
- MONITOR SMDM
- LJM SFMX
- DFA SPACE 4
- *** FUNCTION *DFAF* - DELETE FAST ATTACH FILE.
- *
- * SPECIFIED FILE MUST BE ASSIGNED TO CONTROL POINT.
- DFA ENTRY ENTRY
- RJM VLF VERIFY LOCAL FILE
- ZJN DFA1 IF FAST ATTACH FILE FOUND
- LJM SFMX
- DFA1 LDC DFAB-4 PRESET TABLE ADDRESS
- STD CM
- DFA1.1 LDN 4 INCREMENT ADDRESS FOR NEXT ENTRY
- RAD CM
- LDM 0,CM
- ZJN DFA1.2 IF END OF TABLE
- LMD FN
- NJN DFA1.1 IF NO FILE NAME MATCH
- LDM 1,CM
- LMD FN+1
- NJN DFA1.1 IF NO FILE NAME MATCH
- LDM 2,CM
- LMD FN+2
- NJN DFA1.1 IF NO FILE NAME MATCH
- LDM 3,CM
- LMD FN+3
- SCN 77
- ZJN DFA2 IF IGNORE FAMILY ACTIVITY COUNT
- DFA1.2 LDD CP CHECK FAMILY ACTIVITY COUNT
- ADN PFCW
- CRD CM
- SFA EST,CM+3
- ADK EQDE
- CRD CM
- LDD CM+4
- SHN 3
- ADN DULL
- CRD CM
- LDD CM+4
- LPC 3777
- SBN 1
- ZJN DFA2 IF NO FAMILY ACTIVITY
- ABORT /MESS/ERAF * SFM FAMILY STILL ACTIVE.*
- DFA2 LDD FS+4 CLEAR FAST ATTACH INDICATOR
- LPC 5777
- STD FS+4
- LDC SYFT*100 SET FILE TYPE
- STD FN+4
- LDN ZERL
- CRD CN
- LDD T1 SET FNT ORDINAL
- STD QA
- SFA FNT READ FNT ENTRY
- CRD CM
- CWD FN
- ADN FSTG
- CWD CN
- LDD CM+3 CHECK GLOBAL FAST ATTACH
- LPN 77
- ZJN DFA3 IF NOT GLOBAL FAST ATTACH
- RJM SMP
- LDD ES
- SHN 21-4
- PJN DFA7 IF NOT INDEPENDENT SHARED DEVICE
- * CLEAR FST ADDRESS FROM SYSTEM SECTOR.
- DFA3 LDD FS RESTORE EQUIPMENT
- STD T5
- LDD FS+1 RESTORE FIRST TRACK
- STD T6
- LDN 0 READ SYSTEM SECTOR
- RJM RFS
- NJN DFA6 IF SYSTEM SECTOR ERROR
- LDD ES
- LPN 20
- ZJN DFA4 IF NOT SHARED DEVICE
- RJM SMI GET MACHINE INDEX
- STD MI
- RJM CAC
- ZJN DFA4 IF LAST MACHINE RELEASING FILE
- LDN 0 CLEAR ACCESS MODE
- STM CASS
- STI T2 CLEAR LOCAL WRITE FLAG
- UJN DFA5 REWRITE SYSTEM SECTOR
- DFA4 STM FISS
- DFA5 RJM WFS REWRITE SYSTEM SECTOR
- DFA6 LJM DFA11 DECREMENT USER COUNT
- * PROCESS MMF FAST ATTACH FILE.
- DFA7 LDN DATI SET *DATI* INTERLOCK
- RJM SFR
- RJM SFT SEARCH *FAT* TABLE
- NJN DFA8 IF FILE FOUND
- ABORT /MESS/ERFF * SFM FILE NOT FOUND.*
- DFA8 LDD MI SET LOCAL WORD OFFSET
- SHN 2
- ADD MI
- ADN 5
- ADD BA
- STM DFAA
- LDN ZERL DELETE LOCAL ENTRY
- CRM *,ON
- DFAA EQU *-1
- LDN MXMF PRESET SEARCH LOOP
- STD T0
- DFA8.1 SOD T0 CHECK FOR OTHER MACHINES
- MJN DFA9 IF NO OTHER MACHINES ACTIVE
- SHN 2
- ADD T0
- ADD BA
- STD T1
- LDM 2*5,T1
- NJN DFA10 IF NOT LAST MACHINE OUT
- UJN DFA8.1 CHECK NEXT MACHINE SLOT
- * PROCESS LAST ENTRY REMOVED.
- DFA9 LDN ZERL SET TO DELETE ENTRY
- CRD CM
- LDN 0 CLEAR WORD ZERO OF *FAT* ENTRY
- RJM WFW
- LDN DATI CLEAR *DATI* INTERLOCK
- RJM CFI
- LJM DFA3 UPDATE SYSTEM SECTOR AND FST
- DFA10 LDC LDNI CLEAR LOCAL ENTRY
- STM UFIA
- RJM UFI UPDATE *FAT* ENTRY
- LDN DATI CLEAR *DATI* INTERLOCK
- RJM CFI
- RJM CFE CLEAR LOCAL FNT ENTRY
- LDD FS DECREMENT COUNT FOR FAST ATTACH
- STD CM+1
- LDN DUCS
- STD CM+3
- MONITOR SMDM
- DFA11 LDD FS DECREMENT COUNT FOR LOCAL FILE
- STD CM+1 SET EQUIPMENT
- LDN DUCS
- STD CM+3
- MONITOR SMDM
- LJM SFMX
- * TABLE OF SYSTEM FILES FOR FAMILY ACTIVITY OVERRIDE.
- DFAB BSS 0
- DATA 7L"TMFC" TMS DATABASE
- CON 0 END OF TABLE
- GTS SPACE 4,10
- *** FUNCTION *GTSF* - GET TMS STATUS.
- *
- * ENTRY (IR+3 - IR+4) = PARAMETER WORD ADDRESS.
- *
- * EXIT (ADDRESS) = BIT 59 SET IF TMS IS ENABLED.
- * BIT 58 SET IF TFM BINARIES ON SYSTEM.
- * BIT 57 SET IF TMS ACTIVE ON FAMILY.
- * BIT 1 SET IF DEFAULT *TO=E*.
- * BIT 0 SET IF DEFAULT *TO=F*.
- GTS ENTRY ENTRY
- LDD CP GET FAMILY EST ORDINAL
- ADN PFCW
- CRD CM
- SFA EST,CM+3 GET EST ENTRY
- CRD CM
- LDD CM+4 GET FAMILY NAME FROM MST
- SHN 3
- ADN PFGL
- CRD CN
- LDD MA GET TAPE CATALOG NAME
- CWM GTSC,ON
- LDD MA
- CRD CM
- RJM FAT FIND FAST ATTACH FILE
- STD CM
- LDN ZERL PRESET PARAMETER WORD
- CRD CN
- LDD CM SET FILE STATUS
- LMN 1
- SHN 11-0
- STD CN
- EXECUTE TFM,=
- LDC 100+1RT SET NAME OF TMS PP PROGRAM *TFM*
- STD CM+2
- LDC 2RFM
- STD CM+3
- MONITOR SPLM SEARCH PERIPHERAL LIBRARY
- LDD CM+4 CHECK IF TMS BINARIES IN SYSTEM
- ADD CM+3
- ZJN GTS1 IF NO BINARIES
- LDC 2000 FLAG BINARIES IN SYSTEM
- RAD CN
- GTS1 LDN SSTL GET TMS ENABLED/DISABLED STATUS
- CRD CM
- LDD CM+2
- LPN 1
- LMN 1
- SHN 13-0
- RAD CN
- NFA TMSN GET TMS CONTROL WORD
- CRD CM
- LDD CM+4 PRESET USER DEFAULTS
- SHN 1-12
- STD CN+4
- SHN 21-13-1+12
- MJN GTS3 IF DEFAULTS SET BY USER
- LDD CP FETCH EJT ORDINAL
- ADK TFSW
- CRD CM
- SFA EJT,CM CALCULATE EJT ENTRY ABSOLUTE ADDRESS
- ADK SCLE GET JOB ORIGIN TYPE
- CRD CM
- LDD CM
- LPN 17
- NJN GTS2 IF NOT SYSTEM ORIGIN
- AOM GTSA CHANGE SHIFT COUNTS
- AOM GTSB
- GTS2 LDK TFML GET TMS SYSTEM STATUS WORD
- CRD CM
- LDD CM+4 SET *TO=F* OR *TO=T*
- GTSA SHN 0-12
- * SHN 0-11 SYSTEM ORIGIN
- LPN 1
- STD CN+4
- LDD CM+4 SET *TO=E* OR *TO=C*
- GTSB SHN 1-10
- * SHN 1-7 SYSTEM ORIGIN
- LPN 2
- RAD CN+4
- GTS3 LDD CN+4 SET DEFAULT TAPE OPTIONS
- LMN 3
- LPN 3
- STD CN+4
- LDN 0
- STD T1
- RJM GFE WRITE REPLY WORD
- CWD CN RETURN TMS STATUS
- LJM DPP DROP PP
- GTSC DATA 7L"TMFC" TAPE CATALOG FILE NAME
- SCD SPACE 4,10
- *** FUNCTION *SCDF* - SET *CPD* DROP FLAG.
- *
- * THIS FUNCTION WILL SET THE *CPD* DROP FLAG IN CMR. AS A
- * RESULT, THE COPY OF *CPD* THAT IS RUNNING WILL TERMINATE.
- * IT WILL ALSO ASSIGN THE ACTIVE *SAMPLE* FILE (IF ONE EXISTS)
- * TO THE CALLING JOB AS A LOCAL FILE.
- SCD ENTRY ENTRY
- * CHECK IF *CPD* IS ACTIVE.
- LDN PPCP SET PP COMMUNICATION AREA ADDRESSES
- CRD CM
- LDD CM+4
- STD DA
- LDN PPUL
- CRD CM
- LDD CM+2
- SHN 3
- ADD DA
- STD T2
- SCD1 LDD DA CHECK PP PROGRAM NAME
- CRD CM
- LDD CM+1
- SCN 77
- SHN 6
- LMD CM
- LMC 3RDCP
- ZJN SCD2 IF *CPD* FOUND
- LDN 10
- RAD DA
- LMD T2
- NJN SCD1 IF MORE PP-S TO CHECK
- STD DA
- LJM SCD4 PROCESS SAMPLE FILE
- SCD2 LDN 1 SET *CPD* DROP FLAG
- STD CM+1
- STD CM+2
- LDD MA
- CWM SCDA,ON
- MONITOR UADM
- SCD3 DELAY WAIT AWHILE
- PAUSE
- LDD CM+1
- NJP SFMX IF ERROR FLAG SET
- LDD DA
- CRD CM
- LDD CM+1 CHECK PP ASSIGNED
- SCN 77
- SHN 6
- LMD CM
- LMC 3RDCP
- ZJN SCD3 IF *CPD* STILL ACTIVE
- * PROCESS SAMPLE FILE.
- SCD4 LDN 0 INITIALIZE SEARCH INDEX
- STD QA
- SCD5 AOD QA ADVANCE ORDINAL
- LMD TE
- NJN SCD6 IF NOT END OF FNT
- ERROR /ERR/FNF EC = 3, * SFM FILE NOT FOUND.*
- SCD6 SFA FNT,QA READ FNT ENTRY
- CRD FN
- LDD FN+4
- LMC PMFT*100
- NJN SCD5 IF INCORRECT TYPE
- * CREATE LOCAL FILE.
- RJM EFN ENTER FILE NAME
- LDN ZERL
- CRD CN
- LDD MA
- CWD FN
- CRD CM
- LDD CM+3 CLEAR MODE FLAGS
- SCN 77
- STD CM+3
- LDC SYFT*100 SET FILE TYPE
- STD CM+4
- SFA FNT,QA
- CRD FN
- CWD CM RESTORE SYSTEM FNT SLOT
- ADN FSTG
- CRD FS
- CWD CN
- NFA FA,R STORE FILE TYPE IN LOCAL FNT
- CWD FN
- SOD FS+4 SET FILE BUSY
- LDD DA
- NJP SFMX IF *CPD* FOUND
- ERROR /ERR/CNF EC=5, * CPD NOT ACTIVE.*
- SCDA CON LIOS INCREMENT LOW CORE FIELD BY ONE
- CON INWL WORD ADDRES
- CON 2*100+1 BIT ADDRESS/FIELD WIDTH
- CON 0
- CON 0
- CAC SPACE 4,10
- ** CAC - CHECK ACTIVITY COUNTS.
- *
- * ENTRY (BFMS) = SYSTEM SECTOR.
- * (MI) = MACHINE INDEX.
- *
- * EXIT (A) = 0 IF LAST MACHINE TO DELETE FILE.
- * (T2) = *UCSS* OFFSET FOR THIS MACHINE.
- *
- * USES CM, T2.
- CAC SUBR ENTRY/EXIT
- LDD MI
- SHN 2
- ADD MI
- ADC UCSS
- STD T2
- LDI T2 CLEAR MACHINE ACTIVE FLAG
- SCN 4
- STI T2
- LDN 0
- STD CM
- CAC1 LDM UCSS+5,CM CHECK FOR OTHER MACHINES ACTIVE
- LPN 4
- NJN CACX IF MACHINE ACTIVE
- LDN 5
- RAD CM ADVANCE TO NEXT MACHINE
- ADC -MISD*5
- NJN CAC1 IF NOT ALL MACHINES CHECKED
- LDM CASS SET CURRENT ACCESS TO WRITE
- SCN 20
- LMN 20
- STM CASS
- LDN 0
- UJN CACX RETURN
- TITLE SUBROUTINES.
- CFE SPACE 4,10
- ** CFE - CLEAR LOCAL FNT ENTRY.
- *
- * ENTRY (FA) = INDEX OF FNT ENTRY.
- *
- * EXIT (A) = (FA) = 0.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- CFE SUBR ENTRY/EXIT
- LDN ZERL
- CRD CM
- LDD FA
- ZJN CFEX IF NO LOCAL FILE
- STD CM+4
- LDN DLFS DELETE LOCAL FNT ENTRY
- STD CM+1
- MONITOR PLFM
- * LDN 0 CLEAR FNT INDEX
- STD FA
- UJN CFEX RETURN
- CFI SPACE 4,10
- ** CFI - CLEAR FLAG REGISTER INTERLOCK.
- *
- * ENTRY (A) = INTERLOCK TO CLEAR. (*DATI* OR *FATI*)
- *
- * EXIT (A) = (ABTB).
- * INTERLOCK CLEARED.
- *
- * USES CM - CM+4.
- CFI SUBR ENTRY/EXIT
- SHN 6
- STD CM+1
- LDN CFRS CLEAR FLAG REGISTER BITS
- SHN 11
- STD CM+3
- MONITOR ECSM
- SOM ABTB CLEAR INTERLOCK HELD
- UJN CFIX RETURN
- CFM SPACE 4,10
- ** CFM - COMPARE FAMILY NAMES.
- *
- * ENTRY (T3 - T7) = FAMILY NAME A.
- * (CM - CM+4) = FAMILY NAME B.
- *
- * EXIT (A) = 0, IF SAME FAMILY NAME.
- CFM SUBR ENTRY/EXIT
- LDD CM
- LMD T3
- NJN CFMX IF NOT SAME FAMILY
- LDD CM+1
- LMD T3+1
- NJN CFMX IF NOT SAME FAMILY
- LDD CM+2
- LMD T3+2
- NJN CFMX IF NOT SAME FAMILY
- LDD CM+3
- LMD T3+3
- SHN -6
- UJN CFMX RETURN
- ECS SPACE 4
- ** EXTENDED MEMORY - READ/WRITE EXTENDED MEMORY.
- *
- * ENTRY (A) = NUMBER OF WORDS*100.
- * (CM+3 - CM+4) SET UP FOR *ECSM*.
- *
- * EXIT TO *ABT* IF UNRECOVERED ERROR.
- *
- * USES CM - CM+4.
- * MESSAGE BUFFER IS USED FOR CM BUFFER.
- ECS SUBR ENTRY/EXIT
- STD CM+1 SET WORDS TO READ/WRITE
- LDD MA SET BUFFER ADDRESS
- STD CM+2
- MONITOR ECSM READ/WRITE EXTENDED MEMORY
- LDD CM+1
- ZJN ECSX IF NO ERROR
- ABORT /MESS/ERLE * SFM UNRECOVERED LINK DEVICE ERROR.*
- EFI SPACE 4,20
- ** EFI - ENTER *FAT* ITEM.
- *
- * ENTRY (FN - FN+3) = FAST ATTACH FILE NAME.
- * (FS - FS+4) = FILE FST ENTRY.
- * (ES - ES+4) = FILE EST ENTRY.
- * (FC) = *FAT* TABLE COUNT.
- * (FI) = *FAT* TABLE INDEX OF HOLE
- * (ID) = MACHINE ID
- * (MI) = MACHINE INDEX
- *
- * EXIT (A) .EQ. 0 IF HOLD USED FOR ENTRY.
- * (A) .NE. 0 IF NEW ENTRY CREATED AT END OF TABLE.
- * TO *ABT* IF *FAT* SPACE NOT AVAILABLE.
- *
- * USES CM - CM+4, T1, T6, T7.
- * MESSAGE BUFFER USED FOR CM/ECS BUFFER.
- *
- * CALLS CEA, ECS.
- EFI SUBR ENTRY/EXIT
- LDD FI
- NJN EFI1 IF HOLE AVAILABLE
- AOM EFIA SET NEW ENTRY CREATED
- LDN 20 SET AVAILABLE ENTRY COUNT
- EFIB SHN 0
- SBK FAST
- SHN 6-FATS
- STD T1
- LDD FC
- STD FI
- SBD T1
- MJN EFI1 IF SPACE AVAILABLE
- ABORT /MESS/ERNH * SFM GLOBAL FAST ATTACH LIMIT.*
- * SET *FAT* WORDS IN EXTENDED MEMORY.
- EFI1 LDN ZERL SET FIRST TRACK AND USER COUNTS
- CRD CM
- LDD FS+1
- STD CM+1
- LDN 0 SET WORD TO WRITE
- STD T3
- EFI2 AOD T3 WRITE WORDS 1 THROUGH 1+MXMF
- RJM WFW
- LDN ZERL SET LOCAL AREAS
- CRD CM
- LDD T3
- SBN 1+MXMF
- MJN EFI2 IF NOT END OF LOCAL WORDS TO WRITE
- LDD ID SET MACHINE ID IN ENTRY BEING CREATED
- STD CM
- LDD MI
- ADN 1
- RJM WFW WRITE *FAT* WORD
- LDD ES+4 SET FAMILY AND DEVICE NUMBER
- SHN 3
- ADN PFGL
- CRD CM
- LDN 0
- STD CM+4
- LDN 2+MXMF
- RJM WFW WRITE *FAT* WORD
- * WRITE WORD 0 OF *FAT* ENTRY TO LINK DEVICE.
- LDD MA SET FILE NAME
- CWD FN
- CRD CM
- LDN 0
- RJM WFW WRITE FILE NAME
- EFIA LDN 0 SET RETURN STATUS
- * LDN 1 SET IF NEW ENTRY CREATED
- LJM EFIX RETURN
- IFA SPACE 4,15
- ** IFA - INITIALIZE FAST ATTACH FILE.
- *
- * ENTRY (FN - FN+4) = FILE NAME.
- * (FS - FS+4) = FST INFORMATION.
- *
- * EXIT (QA) = ORDINAL OF GLOBAL FNT ENTRY.
- * (T5) = EST ORDINAL.
- * (T6) = FIRST TRACK OF FAST ATTACH FILE.
- * (TY) = 0 IF FILE NAME FOUND IN FNT.
- *
- * ERROR TO *ABT* IF FILE INTERLOCK NOT AVAILABLE.
- *
- * USES CM - CM+7.
- *
- * CALLS CTE, SSF.
- *
- * MACROS ABORT, MONITOR, SFA.
- IFA SUBR ENTRY/EXIT
- LDD FN+3
- SCN 77 CLEAR MODE FIELD
- STD FN+3
- RJM SSF SEARCH FOR *SYFT* TYPE FILE
- ZJN IFA1 IF FILE NOT FOUND
- SFA FNT
- STD CM+4 SET ADDRESS OF FNT ENTRY
- SHN -14
- STD CM+3
- LDN 0 INTERLOCK FNT ENTRY
- STD CM+1
- MONITOR UTEM
- LDD CM+1
- ZJN IFA2 IF FILE INTERLOCKED
- LDN 0
- STD FA
- ABORT /MESS/ERIO * SFM I/O SEQUENCE ERROR.*
- IFA1 LDC SYFT*100+1 SET INTERLOCK IN REQUEST
- STD FN+4
- LDD MA MOVE FILE NAME
- CWD FN
- CRD CM+3
- LDN PFNT CREATE FNT ENTRY
- RJM CTE
- ZJN IFA3 IF FNT FULL
- LDD CM+1 SET FNT ORDINAL
- STD QA
- IFA2 STD TY SET FNT CREATION STATUS
- LDC FAFT*100 SET FILE TYPE
- STD FN+4
- LDD FS SET EQUIPMENT
- STD T5
- LDD FS+1 SET FIRST TRACK
- STD T6
- LDN 0 CLEAR USER COUNTS
- STD FS+2
- STD FS+3
- STD FS+4
- LJM IFAX RETURN
- IFA3 STD FA CLEAR LOCAL FNT OFFSET
- ABORT /MESS/ERFU * SFM FNT FULL.*
- IFC SPACE 4
- ** IFC - INCREMENT FAST ATTACH COUNT.
- *
- * EXIT FAST ATTACH COUNT UPDATED IN MMF ENVIRONMENT TABLE.
- *
- * USES CM - CM+4.
- *
- * CALLS CEA, ECS, RET.
- IFC SUBR ENTRY/EXIT
- RJM RET READ *FAET* WORD
- LDD MA WRITE WORD BACK TO LINK DEVICE
- CWD CM
- RJM CEA CONVERT EXTENDED MEMORY ADDRESS
- LDN FAET
- RAD CM+4
- SHN -14
- ADC WECS*1000 SET TO WRITE EXTENDED MEMORY
- RAD CM+3
- LDN 1-1 SET TO WRITE 1 WORD
- RJM ECS
- UJN IFCX RETURN
- RET SPACE 4
- ** RET - READ ENVIRONMENT TABLE.
- *
- * ENTRY (RETA) = LINK DEVICE LABEL TRACK.
- *
- * EXIT (FC) = *FAT* TABLE COUNT.
- * (CM - CM+4) = *FAET* WORD FROM ENVIRONMENT
- * TABLE WITH COUNT INCREMENTED BY 1.
- * (T6) = LINK DEVICE LABEL TRACK.
- * (T7) = ENVIRONMENT TABLE SECTOR.
- *
- * USES CM - CM+4.
- *
- * CALLS CEA, ECS.
- RET SUBR ENTRY/EXIT
- LDC 0 SET LABEL TRACK
- RETA EQU *-1
- STD T6
- LDN ETLT SET ENVIRONMENT TABLE SECTOR
- STD T7
- RJM CEA CONVERT EXTENDED MEMORY ADDRESS
- LDN FAET READ *FAT* COUNT
- RAD CM+4
- SHN -14
- ADC RECS*1000 SET TO READ EXTENDED MEMORY
- RAD CM+3
- LDN 1-1 SET TO READ 1 WORD
- RJM ECS READ EXTENDED MEMORY
- LDD MA READ ENTRY
- CRD CM
- AOD CM+4 INCREMENT COUNT
- STD FC
- UJN RETX RETURN
- RFS SPACE 4,15
- ** RFS - READ FILE SYSTEM SECTOR.
- *
- * ENTRY (A) = 0 IF LOCAL FNT ENTRY NOT TO BE CLEARED.
- * (QA) = FNT ORDINAL.
- * (T5) = EST ORDINAL.
- * (T6) = FIRST TRACK.
- * (TY) = FNT CREATION STATUS.
- *
- * EXIT (A) = 0 IF SYSTEM SECTOR READ WITHOUT ERROR.
- *
- * USES T3, CM - CM+4.
- *
- * CALLS CFE, RSS, RTI, WTI.
- *
- * MACROS ABORT, ENDMS, MONITOR, SETMS, SFA.
- RFS3 LDD T6 SET TRACK INTERLOCKED STATUS
- STM RTIA
- LDD T3
- ZJN RFS4 IF LOCAL FNT ENTRY NOT TO BE CLEARED
- RJM CFE CLEAR LOCAL FNT ENTRY
- * LDN 0 READ SYSTEM SECTOR
- RFS4 RJM RSS
- ZJN RFSX IF NO ERRORS
- ENDMS
- RJM RTI RELEASE TRACK INTERLOCK
- AOM SFMD
- RFS SUBR ENTRY/EXIT
- STD T3
- SETMS IO,(DE,RW)
- RJM WTI SET TRACK INTERLOCK
- ZJN RFS3 IF INTERLOCK SET
- LDD TY
- ZJN RFS2 IF FNT ENTRY NOT CREATED
- LDD QA
- STD CM+1
- LDN PFNT RELEASE FNT ENTRY
- STD CM+2
- MONITOR MTRM
- RFS1 ABORT /MESS/ERDA * SFM DIRECT ACCESS FILE ERROR.*
- RFS2 LDC SYFT*100 RESET FILE TYPE
- STD FN+4
- SFA FNT,QA RESTORE FNT ENTRY
- CWD FN
- UJN RFS1 ABORT
- SFR SPACE 4,10
- ** SFR - SET FLAG REGISTER INTERLOCK.
- *
- * ENTRY (A) = INTERLOCK TO OBTAIN, (*DATI* OR *FATI*).
- *
- * EXIT (A) = (ABTB).
- *
- * ERROR TO *ABT* IF ERROR FLAG SET.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR, PAUSE.
- SFR2 STD CM CLEAR WAITING MESSAGE
- LDD CP
- ADN MS2W
- CWD CM
- AOM ABTB SET INTERLOCK OBTAINED
- SFR SUBR ENTRY/EXIT
- SHN 6
- STM SFRA SAVE SUBFUNCTION
- SFR1 LDN SFRS SET FLAG REGISTER BITS
- SHN 11
- STD CM+3
- LDC * REQUEST FLAG REGISTER INTERLOCK
- SFRA EQU *-1
- STD CM+1
- MONITOR ECSM
- LDD CM+1 CHECK INTERLOCK STATUS
- ZJN SFR2 IF INTERLOCK ACHIEVED
- LDD CP SET WAITING MESSAGE
- ADN MS2W
- CWM SFRB,TR
- PAUSE
- LDD CM+1 CHECK ERROR FLAG
- ZJN SFR1 IF NOT ERROR FLAG SET
- ABORT /MESS/ERAB * SFM ABORTED.*
- SFRB DATA C*$WAITING - RECOVERY INTERLOCK.*
- SFS SPACE 4
- ** SFS - SEARCH *FAT* SECTOR.
- *
- * ENTRY (FN - FN+3) = FAST ATTACH FILE NAME.
- * (FS - FS+4) = FILE FST ENTRY.
- * (ES - ES+4) = FILE EST ENTRY.
- * (FI) = CURRENT *FAT* INDEX.
- * (BFMS - BFMS+502) = *FAT* SECTOR.
- * (FC) = *FAT* TABLE COUNT.
- *
- * EXIT (A) .EQ. 0 IF MATCHING ENTRY FOUND.
- * (A) .LT. 0 IF END OF TABLE.
- * (BA) = BASE ADDRESS OF MATCHED ENTRY.
- * (FI) = BASE ADDRESS OF LAST HOLE ENCOUNTERED.
- * (HI) = *FAT* INDEX OF LAST HOLE.
- *
- * USES CM - CM+4.
- SFS6 LDN 2 SET NO MATCH STATUS
- SFS7 SBN 1
- SFS SUBR ENTRY/EXIT
- LDC BFMS+2 SET BASE ADDRESS
- STD BA
- UJN SFS2
- SFS0 LDD FI SET HOLE INFORMATION
- STD HI
- LDD BA
- STM SFTA
- SFS1 LDK FATL*5 INCREMENT BASE ADDRESS
- RAD BA
- LMC BFMS+2+100*5 CHECK FOR END OF SECTOR
- ZJN SFS6 IF END OF SECTOR
- SFS2 AOD FI INCREMENT TABLE INDEX
- LPN 77
- LMD FC CHECK FOR END OF TABLE
- ZJN SFS7 IF END OF TABLE
- LDI BA COMPARE FILE NAME
- ZJN SFS0 IF HOLE
- LMD FN
- NJN SFS1 IF NOT A MATCH
- LDM 1,BA
- LMD FN+1
- NJN SFS1 IF NOT A MATCH
- LDM 2,BA
- LMD FN+2
- NJN SFS1 IF NOT A MATCH
- LDM 3,BA
- LMD FN+3
- SCN 77
- NJN SFS1 IF NOT A MATCH
- LDM 1*5+1,BA CHECK FIRST TRACK
- LMD FS+1
- NJN SFS1 IF NOT MATCHING FIRST TRACK
- LDD ES+4
- SHN 3
- ADN PFGL
- CRD CM
- LDM MXMF*5+2*5+0,BA
- LMD CM
- NJN SFS3 IF NOT MATCHING FAMILY
- LDM MXMF*5+2*5+1,BA
- LMD CM+1
- NJN SFS3 IF NOT MATCHING FAMILY
- LDM MXMF*5+2*5+2,BA
- LMD CM+2
- NJN SFS3 IF NOT MATCHING FAMILY
- LDM MXMF*5+2*5+3,BA
- LMD CM+3
- ZJN SFS4 IF MATCHING DEVICE NUMBER
- SFS3 LJM SFS1
- SFS4 LJM SFSX MATCHING ENTRY FOUND
- SFT SPACE 4,20
- ** SFT - SEARCH *FAT* TABLE.
- *
- * ENTRY (DA - DA+1) = LINK DEVICE PARAMETERS.
- *
- * EXIT (A) .EQ. 0, IF ENTRY NOT FOUND.
- * (FI) = *FAT* INDEX OF FILE/HOLE.
- * (BA) = BASE ADDRESS OF FILE/HOLE.
- * (FC) = *FAT* COUNT.
- *
- * USES T4 - T7.
- *
- * CALLS RDS, RET, SFS.
- *
- * MACROS ENDMS, SETMS.
- SFT SUBR ENTRY/EXIT
- LDD DA SET LINK DEVICE PARAMETERS
- STD T5
- SETMS IO
- RJM RET READ ENVIRONMENT TABLE
- LDD DA+1
- STD T6
- LDN FAST SET STARTING *FAT* SECTOR
- STD T7
- LCN 0 INITIALIZE *FAT* INDICIES
- STD FI
- ADN 1
- STD HI
- SFT1 LDC BFMS SET BUFFER ADDRESS
- RJM RDS READ *FAT* SECTOR
- MJN SFT4 IF READ ERROR
- RJM SFS SEARCH *FAT* SECTOR
- ZJN SFT3 IF FILE FOUND
- MJN SFT2 IF END OF TABLE FOUND
- AOD T7 INCREMENT TO NEXT SECTOR
- LMN 20 CHECK FOR END-OF-TABLE
- NJN SFT1 IF NOT END-OF-TABLE
- SFT2 SOM SFTB SET FILE NOT FOUND
- LDD HI SET HOLE ADDRESS
- STD FI
- LDC 0 BASE ADDRESS OF FILE/HOLE
- SFTA EQU *-1
- STD BA
- SFT3 ENDMS
- SFTB LDN 1 SET RETURN STATUS
- * LDN 0 SET IF FILE NOT FOUND
- LJM SFTX RETURN
- SFT4 ABORT /MESS/ERLE * SFM UNRECOVERED LINK DEVICE ERROR.*
- SMP SPACE 4
- ** SMP - SET MULTI-MAINFRAME PARAMETERS.
- *
- * ENTRY (ES - ES+4) = FILE EQUIPMENT EST ENTRY.
- * (T5) = EST ORDINAL.
- *
- * EXIT (DA) = EST ORDINAL OF LINK DEVICE.
- * (DA+1) = *FAT* TRACK.
- * (MI) = MACHINE INDEX.
- * (FI) = MACHINE INDEX.
- * (ID) = MACHINE ID.
- * (RETA) = LINK DEVICE LABEL TRACK.
- *
- * USES CM - CM+4.
- *
- * CALLS SMI.
- *
- * MACROS SFA.
- SMP SUBR ENTRY/EXIT
- RJM SMI GET MACHINE INDEX FOR DEVICE
- STD MI
- STD FI
- LDC MMFL SET *MMFL* PARAMETERS
- CRD CM
- LDD CM SET MACHINE ID
- STD ID
- LDD ES
- SHN 21-4
- MJN SMPX IF INDEPENDENT SHARED DEVICE
- LDD CM+1 SET LINK EQUIPMENT
- LPC 777
- STD DA
- SFA EST SET *FAT* TRACK
- ADK EQDE
- CRD CM
- ADK EQAE-EQDE
- CRD CN
- LDD CN+2 SET LINK DEVICE SHIFT COUNT
- SHN -6
- LPN 3
- RAM EFIB
- LDD CM+4
- SHN 3
- ADN ALGL
- CRD CM
- LDD CM+4
- STD DA+1
- LDD CM+1 SET LABEL TRACK
- STM RETA
- UJP SMPX RETURN
- SSF SPACE 4
- ** SSF - SEARCH FOR *SYFT* FILE.
- *
- * ENTRY (FN - FN+4) = FILE NAME.
- *
- * EXIT (A) = (QA) = FNT ORDINAL IF FILE FOUND.
- * = 0 IF FILE NOT FOUND
- *
- * USES CN - CN+4.
- *
- * MACROS SFA.
- SSF2 STD QA SET FILE NOT FOUND
- SSF SUBR ENTRY/EXIT
- LDN 0
- STD QA
- SSF1 AOD QA ADVANCE FNT ORDINAL
- LMD TE
- ZJN SSF2 IF END OF FNT
- SFA FNT,QA READ FNT ENTRY
- CRD CN
- LDD CN+4 CHECK FILE TYPE
- SHN -6
- LMN SYFT
- NJN SSF1 IF NOT *SYFT* FILE
- LDD CN COMPARE FILE NAME
- ZJN SSF1 IF EMPTY ENTRY
- LMD FN
- NJN SSF1 IF NOT MATCHING NAME
- LDD CN+1
- LMD FN+1
- NJN SSF1 IF NOT MATCHING NAME
- LDD CN+2
- LMD FN+2
- NJN SSF1 IF NOT MATCHING NAME
- LDD CN+3
- LMD FN+3
- SCN 77
- NJN SSF1 IF NOT MATCHING NAME
- LDD QA
- UJN SSFX EXIT
- UFI SPACE 4
- ** UFI - UPDATE *FAT* ITEM.
- *
- * ENTRY (ID) = MACHINE ID.
- * (MI) = MACHINE INDEX.
- * (FI) = INDEX OF ENTRY.
- *
- * EXIT *FAT* ITEM UPDATED AND WRITTEN BACK TO LINK DEVICE.
- *
- * USES CM - CM+4, T6, T7.
- *
- * CALLS CEA, CFI, ECS, SFR.
- UFI SUBR ENTRY/EXIT
- LDN FATI SET *FATI* INTERLOCK
- RJM SFR
- LDN ZERL SET ENTRY TO WRITE
- CRD CM
- UFIA LDD ID SET MACHINE ID
- * LDN 0 IF CLEAR ENTRY
- STD CM
- LDD MI
- ADN 1
- RJM WFW WRITE LOCAL MACHINE WORD
- LDM UFIA
- LMC LDNI+0
- NJN UFI1 IF NOT CLEARING ENTRY
- LDN ZERL CLEAR ATTACH MODES IN GLOBAL ENTRY
- CRD CM
- LDD FS+1 PRESERVE FIRST TRACK
- STD CM+1
- LDN 1
- RJM WFW WRITE *FAT* WORD
- UFI1 LDN FATI CLEAR *FATI* INTERLOCK
- RJM CFI
- LJM UFIX RETURN
- VLF SPACE 4,15
- ** VLF - VERIFY LOCAL FILE.
- *
- * EXIT (A) = 0, IF FAST ATTACH ENTRY FOUND.
- * (T1) = FNT INDEX FOR FAST ATTACH FILE.
- * (T5) = EQUIPMENT.
- * (FN - FN+4) = FNT ENTRY.
- *
- * ERROR TO *ABT* IF LOCAL FILE NOT FOUND.
- * TO *ABT* IF LOCAL FILE NOT TYPE *PMFT*.
- *
- * USES CM - CM+4, CN - CN+4.
- *
- * CALLS CFS, FAT, SAF.
- *
- * MACROS NFA.
- VLF SUBR ENTRY/EXIT
- RJM SAF SEARCH FOR ASSIGNED FILE
- ZJN VLF1 IF FILE NOT FOUND
- RJM CFS CHECK FILE STATUS
- NFA FA,R READ FNT ENTRY
- CRD FN
- LDD CM+4 CHECK FILE TYPE
- SHN -6
- LMN PMFT
- ZJN VLF2 IF DIRECT ACCESS FILE
- LDN /MESS/ERFT-/MESS/ERFF * SFM INCORRECT FILE TYPE.*
- VLF1 ADC /MESS/ERFF * SFM FILE NOT FOUND.*
- LJM ABT PROCESS ERROR
- * SEARCH FOR EXISTING FAST ATTACH FILE.
- VLF2 LDD ES+4 GET DEVICE NAME FROM MST
- SHN 3
- ADN PFGL
- CRD CN
- RJM FAT SEARCH FOR FAST ATTACH FILE
- STD T0 SAVE RESPONSE
- LDD FS RESTORE EQUIPMENT
- STD T5
- LDD T0 (A) = RESPONSE FROM *COMPFAT*.
- UJN VLFX RETURN
- WFS SPACE 4,15
- ** WFS - WRITE FILE SYSTEM SECTOR.
- *
- * ENTRY (T5) = EST ORDINAL.
- * (T6) = FIRST TRACK.
- * TRACK INTERLOCK SET.
- *
- * EXIT TRACK INTERLOCK CLEARED.
- *
- * CALLS RTI, WSS.
- *
- * MACROS ENDMS.
- WFS SUBR ENTRY/EXIT
- RJM WSS WRITE SYSTEM SECTOR
- ENDMS
- RJM RTI RELEASE TRACK INTERLOCK
- UJN WFSX RETURN
- WFW SPACE 4,10
- ** WFW - WRITE *FAT* WORD.
- *
- * ENTRY (A) = OFFSET IN *FAT* OF WORD TO WRITE.
- * (FI) = *FAT* INDEX OF ENTRY.
- * (CM - CM+4) = WORD TO WRITE.
- *
- * USES T1, T6, T7, CM - CM+4.
- *
- * CALLS CEA, ECS.
- WFW SUBR ENTRY/EXIT
- STM WFWA SAVE OFFSET OF WORD TO WRITE
- LDD MA STORE WORD TO WRITE
- CWD CM
- LDD DA+1 SET *FAT* TRACK
- STD T6
- LDN FAST SET FIRST *FAT* SECTOR
- STD T7
- RJM CEA CONVERT EXTENDED MEMORY ADDRESS
- LDD FI
- SHN FATS
- ADC * ADD OFFSET OF WORD TO WRITE
- WFWA EQU *-1
- RAD CM+4
- SHN -14
- ADC WECS*1000 SET TO WRITE EXTENDED MEMORY
- RAD CM+3
- LDK 1*100-100 SET TO WRITE 1 WORD
- RJM ECS WRITE EXTENDED MEMORY
- UJN WFWX RETURN
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPCEA
- *CALL COMPCTE
- *CALL COMPFAT
- *CALL COMPSMI
- SPACE 4
- ERRNG BFMS-* CODE OVERLAPS SECTOR BUFFER
- OVERFLOW OVLA,EPFW
- OVERLAY (RETURN SYSTEM DATA PROCESSORS.)
- SPACE 4,10
- *CALL COMSEVT
- *CALL COMSMTR
- *CALL COMSPDT
- *CALL COMSMLS
- SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO CALLS
- *CALL COMSSSD
- SPACE 4,10
- ** ASSEMBLY CONSTANTS.
- TJCBL EQU JCBE*MXJC-JCBE LENGTH OF *JCB* TABLE
- TITLE SECURITY FUNCTIONS.
- GEAF SPACE 4,10
- *** FUNCTION *GEAF* - GET EQUIPMENT ACCESS LEVEL LIMITS.
- *
- * ENTRY.
- *
- *T,ADDR 48/ ,12/ EO
- *
- * EO EST ORDINAL.
- *
- * EXIT.
- *
- *T,ADDR 36/ ,12/ ALL ,12/ EO
- *
- * ALL ACCESS LEVEL LIMITS.
- * EO EST ORDINAL.
- GEA3 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
- GEA4 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- GEA ENTRY ENTRY
- RJM CSS
- MJN GEA3 IF NO SUBSYSTEM OR SSJ= ENTRY POINT
- RJM GFE GET REPLY WORD
- CRD CN
- LDN ESTP CHECK IF ORDINAL WITHIN EST
- CRD CM
- LDD CN+4
- SBD CM+2
- PJN GEA4 IF NOT WITHIN EST
- SFA EST,CN+4 READ EST ENTRY
- ADK EQDE
- CRD CM
- ADK EQAE-EQDE READ ACCESS LEVELS
- CRD T1
- LDD CM
- SHN 21-13
- PJN GEA1 IF NOT MASS STORAGE
- LDD CM+4
- SHN 3
- ADK PFGL
- CRD CM
- LDD CM+4
- SHN -6
- UJN GEA2 SET ACCESS LEVEL
- GEA1 LDD T1+3 SET ACCESS LEVEL IN REPLY WORD
- LPN 77
- GEA2 STD CN+3
- RJM GFE WRITE REPLY WORD
- CWD CN
- LJM DPP DROP PP
- GSMF SPACE 4,15
- *** FUNCTION *GSMF* - GET SYSTEM SECURITY MODE.
- *
- * RETURNS A NONZERO VALUE IF THE SYSTEM IS RUNNING IN
- * A SECURED MODE.
- *
- * EXIT.
- *
- *T ADDR 48/0, 12/ SM
- *
- * SM = 0 IF SYSTEM IN UNSECURED MODE.
- * SM = 1 IF SYSTEM IN SECURED MODE.
- GSM ENTRY ENTRY
- LDN SSML GET SYSTEM SECURITY MODE
- CRD CM
- LDN ZERL
- CRD CN
- LDD CM
- LPN 7
- ZJN GSM1 IF SYSTEM UNSECURED
- AOD CN+4
- GSM1 RJM GFE WRITE REPLY WORD
- CWD CN
- LJM DPP DROP PP
- GSSF SPACE 4,15
- *** FUNCTION *GSSF* - GET ORIGIN TYPE ACCESS LEVELS.
- *
- * RETURNS SECURITY MODE, OUTPUT QUEUE SPECIAL HANDLING
- * LEVEL, AND ORIGIN TYPE SECURITY ACCESS LIMITS.
- *
- * EXIT.
- *
- *T,ADDR 3/ ,3/ OQSH ,3/ ,3/ SM ,12/ SY ,12/ BC ,12/ RB ,12/ IA
- *
- * OQSH = OUTPUT QUEUE SPECIAL HANDLING LEVEL.
- * SM = SECURITY MODE.
- * SY = 3/ , 3/SYOT LOWER LIMIT, 3/ , 3/SYOT UPPER LIMIT.
- * BC = 3/ , 3/BCOT LOWER LIMIT, 3/ , 3/BCOT UPPER LIMIT.
- * RB = 3/ , 3/RBOT LOWER LIMIT, 3/ , 3/RBOT UPPER LIMIT.
- * IA = 3/ , 3/IAOT LOWER LIMIT, 3/ , 3/IAOT UPPER LIMIT.
- GSS ENTRY ENTRY
- RJM CSS
- MJN GSS2 IF NO SUBSYSTEM OR SSJ= ENTRY POINT
- LDN SSML GET SECURITY MODE AND OQSH
- CRD CN
- LDN IAOT PRESET LOOP CONTROL
- STD T1
- GSS1 LDN 0 GET NEXT SERVICE CONTROL WORD
- SFA JCB
- ADD T1
- CRD CM
- LDD CM+1 SET ACCESS LIMITS IN REPLY WORD
- LPN 7
- STD CM+2
- LDD CM+1
- LPN 70
- SHN 3
- ADD CM+2
- STM CN+1,T1
- SOD T1
- PJN GSS1 IF MORE LIMITS TO OBTAIN
- RJM GFE RETURN REPLY WORD
- CWD CN
- LJM DPP DROP PP
- GSS2 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
- CSS SPACE 4,10
- ** CSS - CHECK FOR SSJ= ENTRY POINT OR SUBSYSTEM ID.
- *
- * EXIT (A) .GE. 0 IF EITHER FOUND.
- *
- * USES CM - CM+4, CN - CN+4.
- CSS SUBR ENTRY/EXIT
- LDD CP CHECK FOR SSJ= ENTRY POINT
- ADK JCIW
- CRD CM
- ADK SEPW-JCIW
- CRD CN
- LDD CN
- LPN 4
- NJN CSSX IF SSJ= ENTRY POINT FOUND
- LDD CM+2 CHECK FOR SUBSYSTEM ID
- ADC -LSSI
- UJN CSSX RETURN
- TITLE MAIN ROUTINE.
- RSD SPACE 4,10
- *** FUNCTION *RSDF* - RETURN SYSTEM DATA.
- RSD ENTRY ENTRY
- RSD0 LDD IR+3 CHECK CONTROL WORD ADDRESS
- SHN 14
- ADD IR+4
- SHN -6
- SBD FL
- PJN RSD2 IF NEXT CONTROL WORD NOT IN BOUNDS
- RJM GFE READ CONTROL WORD
- CRD ES
- LDD ES CHECK SUBFUNCTION
- NJN RSD1 IF NOT END OF REQUESTS
- LJM DPP DROP PPU
- RSD1 SBN MXSF
- MJN RSD3 IF VALID SUBFUNCTION
- RSD2 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
- RSD3 LDD ES+3 CHECK RETURN ADDRESS
- LPN 77
- STD ES+3
- SHN 14
- LMD ES+4
- MJN RSD4 IF INCORRECT ADDRESS
- ADD ES+2
- SHN -6
- SBD FL
- MJN RSD5 IF WITHIN FL
- RSD4 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- RSD5 LDM TRSD,ES SET PROCESSING ADDRESS
- STM RSDA
- RJM *
- RSDA EQU *-1
- * EXIT TO SUBFUNCTION PROCESSORS WITH -
- * (ES - ES+4) = CONTROL WORD.
- *
- * RETURN FROM SUBFUNCTION PROCESSORS WITH -
- * (ES - ES+4) = CONTROL WORD.
- * (FC) = WORD COUNT.
- RSD6 LDC 4000 SET DATA NOT AVAILABLE
- RAD ES
- LDN 0 RETURN ZERO WORDS RETURNED
- STD FC
- RSD7 LDD FC SET NUMBER OF WORDS RETURNED
- STD ES+2
- RJM GFE RETURN CONTROL WORD
- CWD ES
- AOD IR+4 INCREMENT ADDRESS TO NEXT CONTROL WORD
- SHN -14
- RAD IR+3
- LJM RSD0 PROCESS NEXT CONTROL WORD
- TRSD SPACE 4,10
- * TRSD - TABLE OF SUBFUNCTION PROCESSORS.
- TRSD INDEX
- INDEX RDDF,RDD
- INDEX SDIF,SDI
- INDEX PDAF,PDA
- INDEX PDLF,PDL
- INDEX RFDF,RFD
- INDEX RSSF,RSS
- INDEX RSCF,RSC
- INDEX RCIF,RCI
- INDEX IOSF,IOS
- INDEX MXSF
- TITLE SUBFUNCTION PROCESSORS.
- IOS SPACE 4,20
- ** IOS - RETURN BUFFER I/O STATISTICS.
- *
- *T,FA 12/*IOSF*, 12/ , 12/ WC, 6/ , 18/ ADDR
- *
- * WC LENGTH OF BUFFER TO RECEIVE DATA
- * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
- *
- * ADDR FWA OF CM BUFFER
- *
- *T,ADDR 12/ DT, 18/ ESTO, 30/
- *T 30/ RCNT0, 30/ WCNT0
- *T, 30/ RCNT1, 30/ WCNT1
- *T, 30/ RCNT2, 30/ WCNT2
- *T, 30/ RCNT3, 30/ WCNT3
- *T, 30/ RCNT4, 30/ WCNT4
- *T, 30/ RCNT5, 30/ WCNT5
- *T, 30/ RCNT6, 30/ WCNT6
- *T, 30/ RCNT7, 30/ WCNT7
- *
- * DT = DEVICE TYPE
- * ESTO = EST ORDINAL IN DISPLAY CODE
- *
- *
- * -----------------------------------------------------------
- * I FIELD I LENGTH OF READ TRANSFER IN- I
- * I I *CBT*S SECTORS I
- * -----------------------------------------------------------
- * I I I I
- * I RCNT0 I 1 I 1 - 40B I
- * I RCNT1 I 2 - 3 I 41B - 140B I
- * I RCNT2 I 4 - 7 I 141B - 340B I
- * I RCNT3 I 10B - 17B I 341B - 740B I
- * I RCNT4 I 20B - 37B I 741B - 1740B I
- * I RCNT5 I 40B - 77B I 1741B - 3740B I
- * I RCNT6 I 100B - 177B I 3741B - 7740B I
- * I RCNT7 I MORE THAN 177B I MORE THAN 7740B I
- * I I I I
- * -----------------------------------------------------------
- *
- *
- * -----------------------------------------------------------
- * I FIELD I LENGTH OF WRITE TRANSFER IN- I
- * I I *CBT*S SECTORS I
- * -----------------------------------------------------------
- * I I I I
- * I WCNT0 I 1 I 1 - 40B I
- * I WCNT1 I 2 - 3 I 41B - 140B I
- * I WCNT2 I 4 - 7 I 141B - 340B I
- * I WCNT3 I 10B - 17B I 341B - 740B I
- * I WCNT4 I 20B - 37B I 741B - 1740B I
- * I WCNT5 I 40B - 77B I 1741B - 3740B I
- * I WCNT6 I 100B - 177B I 3741B - 7740B I
- * I WCNT7 I MORE THAN 177B I MORE THAN 7740B I
- * I I I I
- * -----------------------------------------------------------
- IOS SUBR ENTRY/EXIT
- RJM LPT LOCK *PROBE* TABLE
- ZJN IOS2 IF *PROBE* TABLE LOCKED
- IOS1 LJM RSD6 IF DATA NOT AVAILABLE
- IOS2 STD FC INITIALIZE WORD COUNT
- LDN 1 INITIALIZE PUT/IOST INDEX
- STD T3
- LDK BIOL READ BUFFER TABLE POINTER
- CRD CM
- LDD CM+1 READ *PUT* TABLE POINTER
- SHN 14
- ADD CM+2
- NJN IOS2.1 IF BUFFERED I/O TABLES PRESENT
- LDC 4000 CLEAR PROBE INTERLOCK
- STD FN
- LDC PRBP
- CWD FN
- UJN IOS1 RETURN WITH NO DATA
- IOS2.1 ADK PUTP
- CRD FS
- ADK IOSP-PUTP READ FWA OF I/O STATISTICS TABLE
- CRD FN
- LDD FS+3 CLEAR FLAGS
- LPN 77
- STD FS+3
- LDD FN+1 SET LENGTH OF *IOST* ENTRY
- SHN -6
- STD T2
- ADN 1 SET LENGTH OF *PROBE* ENTRY
- STD T1
- IOS3 LDD T3 READ EST ORDINAL FROM PUT
- SHN PUTLS
- ADK UNCT
- ADD FS+4
- SHN 6
- ADD FS+3
- SHN 14
- CRD CM
- LDD CM+1 CONVERT EST ORDINAL TO DISPLAY CODE
- LPC 707
- ADC 2R00
- SHN 6
- STM IOSA+2
- SHN -6
- SCN 77
- STM IOSA+1
- LDD CM+1
- SHN -3
- LPN 7
- ADN 1R0
- RAM IOSA+1
- SFA EST,CM+1 READ DEVICE EST
- CRD CM
- LDD CM+3 SET DEVICE TYPE
- STM IOSA
- LDD T3 READ I/O STATISTICS TABLE
- SHN PUTLS
- ADD FN+4
- SHN 6
- ADD FN+3
- SHN 14
- CRM IOSB,T2
- LDD ES+2 CHECK IF ROOM IN BUFFER
- SBD FC
- SBD T1
- PJN IOS4 IF ROOM FOR DATA
- LDC PRBP CLEAR PROBE INTERLOCK
- CRD FN
- LDC 4000
- STD FN
- LDC PRBP
- CWD FN
- ABORT /MESS/ERAE *SFM ARGUMENT ERROR.*
- IOS4 LDD ES+3 RETURN DATA TO CALLER
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- ADD FC
- CWM IOSA,T1
- LDD T1 UPDATE WORD COUNT
- RAD FC
- AOD T3 INCREMENT INDEX
- LDD FS
- SBD T3
- MJN IOS5 IF NO MORE *PUT*S
- LJM IOS3 PROCESS NEXT *PUT*
- IOS5 LDC PRBP CLEAR PROBE INTERLOCK
- CRD FN
- LDC 4000
- STD FN
- LDC PRBP
- CWD FN
- LJM RSD7 RETURN
- RDD SPACE 4,10
- ** RDD - RETURN DAYFILE DATA FROM SECTOR OF LOCAL AREAS.
- *
- *T,FA 12/*RDDF* ,12/ EQ ,12/ WC ,6/ ,18/ADDR
- *
- * EQ EST ORDINAL TO CHECK FOR DAYFILES
- * WC LENGTH OF CM BUFFER TO RECEIVE DATA
- * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
- * ADDR FWA OF CM BUFFER
- *
- *
- *T,ADDR 12/ SDF ,12/ ADF ,12/ELD ,12/ BML ,12/
- *
- * SDF FIRST TRACK OF SYSTEM DAYFILE
- * ADF FIRST TRACK OF ACCOUNT DAYFILE
- * ELD FIRST TRACK OF ERRLOG
- * BML FIRST TRACK OF BINARY MAINTENCE LOG
- *
- * IF A DAYFILE DOES NOT EXIST ON A DEVICE, THE FIRST TRACK
- * WILL BE SET TO ZERO.
- RDD SUBR ENTRY
- LDN ESTP GET EST POINTERS
- CRD CN
- LDD ES+1 SET EQUIPMENT
- STD T5
- SBD CN+2
- PJN RDD1 IF EQUIPMENT OUT OF EST
- SFA EST,T5 READ EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM CHECK EQUIPMENT TYPE
- SHN 21-13
- MJN RDD2 IF MASS STORAGE
- RDD1 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- RDD2 LDN ZERL
- CRD CN
- RJM RLA READ SECTOR OF LOCAL AREAS (SLA)
- MJN RDD3 IF READ ERROR
- ZJN RDD3 IF NO SLA ENTRY FOR THIS MACHINE
- STM RDDA
- RDD3 LDD ES+3 STORE DAYFILE DATA
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- CWM CN,ON
- RDDA EQU *-1
- LDN 1
- STD FC
- LJM RSD7 RETURN
- SDIF SPACE 4,20
- *** SDI - RETURN AND/OR CLEAR STATISTICAL DATA AREA.
- *
- * THE STATISTICAL DATA AREA IS RETURNED TO THE
- * SPECIFIED BUFFER.
- *
- *T,FA 12/ *SDIF* ,12/ FLAGS ,12/ WC ,6/ ,18/ ADDR
- *
- * FLAGS 1, RETURN DATA TO CM BUFFER
- * 2, CLEAR STATISTICAL DATA AREA IN CMR
- * 3, RETURN DATA TO CM BUFFER AND THEN CLEAR
- * THE STATISTICAL DATA AREA IN CMR
- * WC LENGTH OF CM BUFFER
- * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
- * ADDR FWA OF CM BUFFER
- SDI SUBR ENTRY
- LDN 0 PRESET NUMBER OF WORDS TO WRITE
- STD FC
- LDD ES+1
- SHN 21-0
- PJN SDI2 IF DATA NOT TO BE RETURNED
- LDN SDAL SET NUMBER OF WORDS TO RETURN
- STD FC
- LDD ES+2 CHECK BUFFER SIZE
- SBD FC
- PJN SDI1 IF BUFFER LARGE ENOUGH
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- SDI1 LDC SDAP READ STATISTICAL AREA POINTER
- CRD CM
- LDD CM
- STM SDIA+3
- SHN 14
- ADD CM+1
- STM SDIA+4
- CRM BFMS,FC
- LDD ES+3 WRITE STATISTICAL DATA TO BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- CWM BFMS,FC
- SDI2 LDD ES+1
- SHN 21-1
- PJN SDI3 IF STATISTICAL DATA AREA NOT TO BE CLEARED
- LDN ZERL CLEAR STATISTICAL DATA AREA
- CRD CM
- LDD MA
- CWM SDIA,ON
- CWD CM
- MONITOR CSTM
- SDI3 LJM RSD7 RETURN
- SDIA VFD 36/SDAL,24/0
- PDLF SPACE 4,10
- *** PDLF - RETURN *PROBE* DATA TABLE LENGTH.
- *
- * THE MINIMUM BUFFER SIZE REQUIRED FOR THE *PROBE* DATA TABLES
- * IS RETURNED TO THE CALLER.
- *
- *T,FA 12/ *PDLF* ,12/ ,12/ WC ,6/ 18/ ADDR
- *
- * WC LENGTH OF CM BUFFER
- * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
- * ADDR FWA OF CM BUFFER
- *
- *
- *T,ADDR 60/ REQUIRED BUFFER SIZE FOR *PROBE* DATA
- PDL SUBR ENTRY
- LDN 1 SET WORD COUNT
- STD FC
- LDD ES+2 CHECK BUFFER SIZE
- SBD FC
- PJN PDL1 IF BUFFER LARGE ENOUGH
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- PDL1 RJM LPT LOCK *PROBE* TABLE
- ZJN PDL2 IF *PROBE* TABLE LOCKED
- LJM RSD6 RETURN DATA NOT AVAILABLE STATUS
- PDL2 LDN ZERL
- CRD CM
- RJM DPT DETERMINE *PROBE* TABLE LENGTH
- STD CM+4
- SHN -14
- STD CM+3
- LDD ES+3 RETURN TABLE LENGTH TO CM BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- CWD CM
- LDC PRBP UNLOCK *PROBE* TABLE
- CWD FN
- LJM RSD7 RETURN
- PDAF SPACE 4,20
- ** PDAF - RETURN/CLEAR *PROBE* DATA TABLES.
- *
- *T,FA 12/ *PDAF* ,12/ FLAGS ,12/ WC ,6/ ,18/ ADDR
- *
- * FLAGS 1, RETURN DATA TO CM BUFFER
- * 2, CLEAR *PROBE* DATA AREA IN CMR
- * 3, RETURN DATA TO CM BUFFER AND THEN CLEAR
- * THE *PROBE* DATA AREA IN CMR
- * WC LENGTH OF CM BUFFER
- * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
- * ADDR FWA OF CM BUFFER
- PDA SUBR ENTRY
- LDN 0
- STD FC
- RJM LPT LOCK *PROBE* TABLE
- ZJN PDA2 IF *PROBE* TABLE LOCKED
- LJM RSD6 RETURN DATA NOT AVAILABLE STATUS
- PDA1 LJM PDA6 CLEAR *PROBE* DATA TABLES
- PDA2 LDD ES+1
- SHN 21-0
- PJN PDA1 IF *PROBE* DATA NOT TO BE RETURNED
- RJM DPT DETERMINE *PROBE* TABLE LENGTH
- STD FC SET WORD COUNT
- SBD ES+2
- ZJN PDA3 IF BUFFER LARGE ENOUGH
- MJN PDA3 IF BUFFER LARGE ENOUGH
- LDC PRBP UNLOCK *PROBE* TABLE
- CWD FN
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- PDA3 LDC TPRDL
- STD T1
- LDN 0 INITIALIZE TABLE INDEX
- STD T2
- LDK PDTL READ PACKED DATE AND TIME
- CRD CN
- UJN PDA5 WRITE PACKED DATE AND TIME TO BUFFER
- PDA4 LDD FN+3 READ NEXT WORD TO TRANSFER
- SHN 14
- LMD FN+4
- ADD T2
- CRD CN
- AOD T2 INCREMENT TABLE INDEX
- PDA5 LDD ES+3 WRITE WORD TO BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- ADD T2
- CWD CN
- SOD T1
- PJN PDA4 IF DATA LEFT TO TRANSFER
- RJM RPC RETURN *PLD* COUNTS
- PDA6 LDD ES+1
- SHN 21-1
- PJN PDA7 IF TABLE NOT TO BE CLEARED
- LDC PRBP READ *PROBE* TABLE POINTER
- CRD CM
- LDD CM+1 CLEAR FUNCTION CODE
- LPN 77
- STD CM+1
- MONITOR CSTM
- LDK PDTL READ PACKED DATE AND TIME
- CRD CN
- LDD FN+3
- SHN 14
- LMD FN+4
- CWD CN
- RJM CBS CLEAR BUFFERED I/O STATISTICS
- PDA7 LDC PRBP UNLOCK *PROBE* TABLE
- CWD FN
- LJM RSD7 RETURN
- CBS SPACE 4,10
- ** CBS - CLEAR BUFFERED I/O STATISTICS.
- *
- * USES T1, CM - CM+4, CN - CN+4, FS - FS+4.
- CBS SUBR
- LDK BIOL FETCH BUFFERED I/O CONTROL TABLE ADDRESS
- CRD FS
- LDD FS+1
- SHN 14
- LMD FS+2
- ZJN CBSX IF NO BUFFERED I/O DEVICES DEFINED
- CRD CN READ POINTER WORD
- ERRNZ IBSP *IBSP* MUST BE ZERO
- * BUILD A BLOCK OF ZEROES FOR CLEARING MEMORY.
- LDN 10*5
- STD T1
- CBS1 LDN 0
- STM BFMS,T1
- SOD T1
- PJN CBS1 IF MORE TO CLEAR
- * CLEAR STATISTICS WORDS.
- LDN IBSL SET LENGTH OF STATISTICS AREA
- STD T1
- LDD CN+3
- SHN 14
- LMD CN+4
- CWM BFMS,T1 CLEAR STATISTICS BLOCK
- * CLEAR CHANNEL TABLE REQUEST COUNTERS.
- LDN 0 PRESET FOR *UTEM* FUNCTION
- STD CM+2
- LDD FS+1 READ CHANNEL TABLE POINTER WORD
- SHN 14
- LMD FS+2
- ADN CCTP
- CRD CN
- SOD CN
- CBS2 SHN CCTLS
- ADN CCNT
- ADD CN+4
- SHN 6
- ADD CN+3
- SHN 14
- STD CM+4 SET ADDRESS FOR *UTEM*
- SHN -14
- STD CM+3
- LDN 1
- STD CM+1 NUMBER OF UPDATES TO PROCESS
- LDD MA
- CWM CBSA,ON WRITE *UTEM* PARAMETERS
- MONITOR UTEM CLEAR REQUEST COUNTER
- SOD CN
- PJN CBS2 IF MORE CHANNEL TABLES TO PROCESS
- * CLEAR *PUT* STATISTICS AREAS.
- LDN INST-RDST+1
- STD T1 SET LENGTH OF STATISTICS AREA
- LDD FS+1
- SHN 14
- LMD FS+2
- ADN PUTP
- CRD CN READ *PUT* POINTER
- LDD CN+3 CLEAR FLAGS
- LPN 77
- STD CN+3
- LDD CN
- CBS3 SHN PUTLS
- ADN RDST
- ADD CN+4
- SHN 6
- ADD CN+3
- SHN 14
- CWM BFMS,T1 CLEAR STATISTICS AREA
- SOD CN
- PJN CBS3 IF MORE *PUT*S TO CLEAR
- LJM CBSX RETURN
- CBSA VFD 6/0,6/36D,6/0,42/0 *UTEM* PARAMETERS
- RFDF SPACE 4,20
- ** RFDF - RETURN FAMILY ORDINAL TABLE FROM LOW CORE.
- *
- *T,FA 12/*RFDF* ,12/LENGTH ,12/ WC ,6/ ,18/ADDR
- *
- * WC LENGTH OF CM BUFFER
- * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN. THIS WILL
- * BE THE NUMBER OF FOT ORDINALS CURRENTLY RESERVED.)
- * LENGTH ZERO ON CALL. *SFM* WILL RETURN THE MAXIMUM NUMBER
- * OF FOT ORDINALS THAT MAY USED.
- * ADDR FWA OF CM BUFFER
- *
- *
- *T,ADDR 42/*FAMILY NAME*,18/ FOT ORDINAL
- *
- * ONE CM WORD WILL BE RETURNED FOR EACH ORDINAL THAT IS
- * CURRENTLY RESERVED.
- RFD SUBR ENTRY
- LDC FOTP GET FOT POINTER
- CRD CM
- LDD CM+2 CALCULATE FOT ORDINALS IN USE
- SBN 1
- SBD CM+3
- STD FC NUMBER OF WORDS TO BE RETURNED
- LDD ES+2 CHECK CM BUFFER LENGTH
- SBD FC
- PJN RFD1 IF CM BUFFER LARGE ENOUGH
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- RFD1 LDD CM TRANSFER FOT TO PP BUFFER
- SHN 14
- ADD CM+1
- ADN 1 BEGIN WITH SECOND WORD
- CRM BFMS,FC
- LDC BFMS SET FWA OF BUFFER
- STD T1
- LDN 1 INITIALIZE ORDINAL
- STD T2
- RFD2 LDM 3,T1 SET FOT ORDINAL
- SCN 77
- STM 3,T1
- LDD T2
- STM 4,T1
- LDN 5 ADVANCE POINTER
- RAD T1
- AOD T2 ADVANCE ORDINAL
- SBD FC
- SBN 1
- MJN RFD2 IF NOT END OF TABLE
- LDD ES+3 RETURN FOT TO CM BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- CWM BFMS,FC
- SOD CM+2 RETURN TOTAL NUMBER OF ORDINALS POSSIBLE
- STD ES+1
- LJM RSD7 RETURN
- RSC SPACE 4,10
- ** RSCF - RETURN SERVICE CLASS CONTROL TABLE FROM LOW CORE.
- *
- *T,FA 12/ *RSCF* ,12/ 0 ,12/ WC ,6/ 0 ,18/ ADDR
- *
- * WC NUMBER OF WORDS IN CM BUFFER. MUST BE AT LEAST *SCTE*.
- * *SFM* WILL RETURN THE NUMBER OF WORDS WRITTEN.
- * ADDR FWA OF CM BUFFER.
- *
- * A COPY OF THE *SCT* IS RETURNED IN THE CM BUFFER.
- RSC SUBR ENTRY
- LDN SCTE SET NUMBER OF WORDS TO RETURN
- STD FC
- LDD ES+2
- SBD FC
- PJN RSC1 IF BUFFER LARGE ENOUGH
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- RSC1 LDK JBCP GET ADDRESS OF *SCT*
- CRD CM
- LDD CM RETURN *SCT* TO CM BUFFER
- SHN 14
- ADD CM+1
- CRM SBUF,FC
- LDD ES+3
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- CWM SBUF,FC
- LJM RSD7 RETURN
- RSSF SPACE 4,25
- ** RSSF - RETURN SUBSYSTEM DATA.
- *
- *T,FA 12/*RSSF* ,12/ ,12/ WC ,6/ ,18/ADDR
- *
- * WC LENGTH OF CM BUFFER
- * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
- * ADDR FWA OF THE CM BUFFER
- *
- *
- *T,ADDR 41/ , 1/F, 6/ CP, 12/ EJTO
- *
- * CP CONTROL POINT NUMBER WHERE SUBSYSTEM MUST RESIDE
- * WHEN IT IS ACTIVE
- * F ENABLE/DISABLE FLAG
- * =0, IF SUBSYSTEM ENABLED
- * =1, IF SUBSYSTEM DISABLED
- * EJTO EJT ORDINAL OF THE SUBSYSTEM (ZERO IF NOT ACTIVE)
- *
- * ONE CM WORD WILL BE RETURNED FOR EACH SUBSYSTEM THAT IS
- * SUPPORTED BY THE OPERATING SYSTEM.
- RSS SUBR ENTRY
- LDN SBUFL/5 SAVE NUMBER OF CM WORDS TO BE RETURNED
- STD FC
- LDC SBUFL
- STD T2
- LDD ES+2 CHECK CM BUFFER
- SBD FC
- PJN RSS1 IF BUFFER LARGE ENOUGH
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- RSS1 LDN 0 CLEAR PP BUFFER
- STM SBUF-1,T2
- SOD T2
- NJN RSS1 IF NOT END OF BUFFER
- * STD T2 INITIALIZE CP AND EJTO INDEX
- STD T3 INITIALIZE RETURN DATA BUFFER INDEX
- STD T4 INITIALIZE *TSSS* INDEX
- LDC SSCP GET FWA OF THE SSCT
- CRD CM
- LDN SSCTL*2 LENGTH OF SSCT AND SSAT (IN CM WORDS)
- STD T1
- LDD CM+2 READ SSCT AND SSAT
- SHN 14
- ADD CM+3
- CRM BFMS,T1
- LDK SSSL READ STATUS WORD
- CRD CM
- RSS2 LDM BFMS,T2 GET CONTROL POINT NUMBER
- LPN 37
- STM SBUF+3,T3
- LDM BFMS+SSCTL*5,T2 GET EJT ORDINAL
- STM SBUF+4,T3
- LDM TSSS,T4 GET *SSSL* BYTE POSITION
- STD T1
- LDM TSSS+1,T4 CHECK STATUS BIT
- STM RSSA
- LDM CM,T1
- LPC **
- RSSA EQU *-1 (SUBSYSTEM MASK BIT)
- ZJN RSS3 IF SUBSYSTEM ENABLED
- LDC 100B SET DISABLED STATUS
- RAM SBUF+3,T3
- RSS3 LDN 5 LENGTH OF ONE ENTRY IN PP BUFFER
- RAD T3 INCREMENT RETURN BUFFER INDEX
- LDN 2 INCREMENT TABLE INDEX
- RAD T4
- AOD T2 INCREMENT CP AND EJTO INDEX
- SBN MXSI-LSSI TOTAL NUMBER OF SUPPORTED SUBSYSTEMS
- ZJN RSS4 IF ALL SUBSYSTEMS PROCESSED
- LJM RSS2 PROCESS NEXT ENTRY
- RSS4 LDD ES+3 RETURN SUBSYSTEM DATA TO CM BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- CWM SBUF,FC
- LJM RSD7 RETURN
- ** TSSS - TABLE OF SUBSYSTEM STATUS INFORMATION.
- *
- *T 12/ BYTE, 12/ MASK
- TSSS INDEX
- .SUB HERE
- INDEX MXSI*2-LSSI*2
- SBUF EQU BFMS+SSCTL*5*2 FWA RETURN DATA PP BUFFER
- .NSS SET MXSI-LSSI TOTAL NUMBER OF SUBSYSTEMS POSSIBLE
- SBUFL EQU .NSS*5 LENGTH OF PP BUFFER
- SBUFE EQU SBUF+SBUFL END OF PP BUFFER
- ERRNG 7777-SBUFE TEST FOR PP BUFFER OVERFLOW
- DPT SPACE 4,10
- ** DPT - DETERMINE *PROBE* TABLE LENGTH.
- *
- * ENTRY NONE.
- *
- * EXIT (A) = MINIMUM SIZE OF CM BUFFER NEEDED TO
- * RECEIVE *PROBE* DATA.
- *
- * USES T1 - T7.
- *
- DPT SUBR ENTRY/EXIT
- LDC PLDP FETCH PLD POINTER
- CRD T1
- ADN PSTP-PLDP GET PST POINTER
- CRD T3
- LDD T3+2 COMPUTE LENGTH OF *PLD*
- SBD T1
- SHN 14
- ADD T3+3
- SBD T1+1
- ADC TPRDL
- UJN DPTX RETURN
- LPT SPACE 4,35
- ** LPT - LOCK *PROBE* TABLES.
- *
- * ENTRY NONE.
- *
- * EXIT (A) .EQ. 0 IF *PROBE* TABLES LOCKED
- * (A) .NE. 0 IF *PROBE* TABLES NOT PRESENT.
- * (FN - FN+4) = *PROBE* TABLE POINTER.
- *
- * USES CM - CM+4, FN - FN+4.
- *
- * MACROS DELAY, MONITOR, PAUSE.
- LPT2 LDC PRBP READ *PROBE* DATA POINTER
- CRD FN
- LDC 4000 CLEAR *PROBE* TABLE LOCK FLAG
- RAD FN
- LDN 0 SET *PROBE* TABLE INTERLOCKED
- LPT SUBR ENTRY/EXIT
- LDC SSTL READ *PROBE* STATUS
- CRD CM
- LDD CM+2
- LPC 100
- NJN LPTX IF *PROBE* NOT ENABLED
- LPT1 LDD MA LOCK *PROBE* TABLE
- CWM LPTA,ON
- LDN 1
- STD CM+1
- STD CM+2
- MONITOR UADM
- LDD CM+1
- ZJN LPT2 IF *PROBE* TABLE LOCKED
- DELAY
- PAUSE
- LDD CM+1
- ZJN LPT1 IF NO ERROR FLAG
- LJM DPP DROP PPU
- LPTA CON LDOS DECREMENT LOW CORE FIELD BY ONE
- CON PRBP WORD ADDRESS
- CON 59D*100+1 BIT ADDRESS/FIELD WIDTH
- CON 0
- CON 0
- RPC SPACE 4,10
- ** RPC - RETURN *PLD* COUNTS.
- *
- * ENTRY (FN - FN+4) = *PROBE* TABLE POINTERS.
- *
- * EXIT *PROBE*/*PLD* INFORMATION WRITTEN TO BUFFER.
- *
- * USES CM - CM+4, CN - CN+4, DA - DA+1, T3 - T7.
- *
- * CALLS DPT, SDR.
- *
- * DEFINE (DA - DA+1) = FWA OF *PROBE* TABLE *TSPL*.
- * (T3) = LENGTH OF *TSPL*.
- * (T4) = *TSPL* TABLE INDEX.
- * (T5) = *PLD* INDEX.
- * (T6 - T7) = FWA OF *PLD*.
- *
- * NOTE THIS ROUTINE COMBINES THE INFORMATION FROM THE
- * *PROBE* TABLE *TSPL* WITH INFORMATION FROM THE *PLD*
- * TO CREATE THE FOLLOWING ENTRY THAT IS RETURNED TO THE
- * CM BUFFER.
- *
- *T 18/ PPU ,6/ R ,6/ ,30/ COUNT
- *
- * PPU NAME OF PPU PROGRAM.
- * R PPU PROGRAM RESIDENCE.
- * 0 = ASR RESIDENT.
- * 1 = CM RESIDENT
- * 2 = DISK RESIDENT
- * COUNT NUMBER OF TIMES THE PPU PROGRAM WAS LOADED.
- RPC SUBR ENTRY/EXIT
- RJM DPT DETERMINE *PROBE* TABLE LENGTH
- ADC -TPRDL
- STD T3
- LDC TSPL SET FWA OF *TSPL*
- ADD FN+4
- STD DA+1
- SHN -14
- ADD FN+3
- STD DA
- LDC PLDP FETCH PLD POINTER
- CRD T6
- LDN 0 INITIALIZE *PROBE* TABLE INDEX
- STD T4
- STD T5 INITIALIZE *PLD* INDEX
- RPC1 LPN 1
- NJN RPC2 IF MORE DATA TO PROCESS
- LDD DA READ *PROBE* DATA
- SHN 14
- ADD DA+1
- ADD T4
- CRD CM
- AOD T4 INCREMENT PROBE TABLE INDEX
- RPC2 LDN 0 CHECK IF LAST *PLD* ENTRY ENCOUNTERED
- * LDN 1 (LAST *PLD* ENTRY ENCOUNTERED)
- RPCA EQU *-1
- NJN RPCX IF END OF *PLD*
- LDD T6 READ *PLD* ENTRIES
- SHN 14
- ADD T7
- ADD T5
- CRD CN
- * THE LAST ENTRY OF THE *PLD* IS RESERVED FOR *SFP*.
- * THIS *PLD* ENTRY HAS NO PP NAME. THEREFORE, *SFP*
- * MUST BE SET INTO THE ENTRY BEFORE IT IS RETURNED TO
- * THE CM BUFFER.
- LDD CN CHECK FOR *SFP* *PLD* ENTRY
- NJN RPC3 IF NOT *SFP* ENTRY
- LDC 3RPSF SET *SFP* AS PPU NAME
- STD CN
- SHN -6
- LMD CN+1
- SCN 77
- LMD CN+1
- STD CN+1
- AOM RPCA FLAG LAST *PLD* ENTRY ENCOUNTERED
- RPC3 LDD T5
- LPN 1
- NJN RPC4 IF RETURNING SECOND ENTRY OF *PROBE* DATA
- LDD CM+4 SET *PROBE* COUNT INTO FIRST *PLD* ENTRY
- STD CN+4
- LDD CM+3
- STD CN+3
- LDD CM+2
- LPN 77
- STD CN+2
- UJN RPC5 SET DEVICE RESIDENCE
- RPC4 LDD CM+2 SET *PROBE* COUNT FOR SECOND *PLD* ENTRY
- SCN 77
- SHN 6
- LMD CM+1
- SHN 6
- STD CN+4
- LPC 770000
- LMD CM
- SHN 6
- STD CN+3
- SHN -14
- STD CN+2
- RPC5 LDD CN+1 SET DEVICE RESIDENCE
- RJM SDR
- STD CN+1
- LDD ES+3 RETURN DATA TO CM BUFFER
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- ADC TPRDL+1
- ADD T5
- CWD CN
- AOD T5
- LJM RPC1 LOOP FOR MORE DATA
- SDR SPACE 4,15
- ** SDR - SET DEVICE RESIDENCE.
- *
- * ENTRY (A) = BYTE 1 OF *PLD* ENTRY.
- *
- * EXIT (A) = BYTE 1 OF *PROBE/PLD* ENTRY
- *
- * USES T1, T2, FS - FS+4.
- *
- * MACROS SFA.
- *
- * NOTE 0 = ASR.
- * 1 = CM RESIDENT.
- * 2 = DISK RESIDENT.
- SDR SUBR ENTRY/EXIT
- STD T2
- SHN 0-5 CHECK FOR CM RESIDENCE
- LPN 1
- STD T1
- NJN SDR1 IF CM RESIDENT
- LDD T2 EXTRACT EST ORDINAL
- LPN 37
- SFA EST READ EST ENTRY
- ADK EQDE
- CRD FS
- LDD FS CHECK IF SYSTEM FILE PRESENT
- SHN 1-12
- LPN 2
- STD T1
- SDR1 LDD T2 SET RESIDENCE CODE
- SCN 77
- LMD T1
- UJN SDRX RETURN
- RCIF SPACE 4,15
- ** RCIF - RETURN/UPDATE SYSTEM SERVICE CLASS DATA.
- *
- * *RCI* READS OR UPDATES THE CONTENTS OF THE *JCB* (JOB
- * CONTROL AREA) TABLE IN CMR.
- *
- *T FA 12/ *RCIF* ,11/ ,1/ F,12/ WC,6/ ,18/ ADDR
- *
- * F = 0 IF DATA TO BE READ.
- * = 1 IF DATA TO BE UPDATED.
- * WC CM BUFFER LENGTH
- * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN).
- * ADDR FWA OF CM BUFFER.
- *
- * NOTE - FOR THE UPDATE OPTON - THE LAST TWO WORDS OF EACH
- * *JCB* (WORDS *JCTT* AND *CTMT*) ARE NOT UPDATED.
- RCI SUBR ENTRY/EXIT
- * CHECK FOR SYSTEM ORIGIN AND *SSJ=* ENTRY POINT.
- RJM CUA CHECK USER ACCESS
- NJN RCI1 IF NOT SYSTEM ORIGIN
- LDD CP
- ADK SEPW
- CRD CM
- LDD CM
- SHN 21-2
- MJN RCI2 IF SYSTEM ORIGIN AND *SSJ=*
- RCI1 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
- * CHECK FOR READ OR UPDATE OPTION.
- RCI2 LDK TJCBL SET LENGTH OF *JCB* TABLE
- STD FC
- SBD ES+2 CHECK CM BUFFER
- ZJN RCI3 IF BUFFER CORRECT SIZE
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- RCI3 LDN 1 INITIALIZE SERVICE CLASS NUMBER
- STD T1
- LDN 0 INITIALIZE CM BUFFER OFFSET
- STD T2
- LDD ES+1 CHECK READ/WRITE FLAG
- LPN 1
- NJN RCI5 IF DATA TO BE WRITTEN
- * READ *JCB* TABLE TO JOB BUFFER.
- LDN JCBE SET WORD COUNT
- STD T3
- RCI4 SFA JCB,T1 GET *JCB* ADDRESS
- CRM RCIB,T3 READ NEXT *JCB* ENTRY
- RJM GCA GET CM BUFFER ADDRESS
- ADD T2
- CWM RCIB,T3 WRITE NEXT *JCB* ENTRY TO CM BUFFER
- LDN JCBE ADJUST OFFSET FOR NEXT SERVICE CLASS
- RAD T2
- AOD T1 INCREMENT SERVICE CLASS
- SBN MXJC
- NJN RCI4 IF MORE *JCB* ENTRIES TO COPY
- LJM RSD7 RETURN
- * UPDATE *JCB*.
- RCI5 LDN JCBE-2 DO NOT UPDATE LAST TWO WORDS OF EACH *JCB*
- ERRNZ JCBE-JCTT-2 CODE DEPENDS ON VALUE
- STD T3 SET WORD COUNT
- RCI6 RJM GCA GET CM BUFFER ADDRESS FOR NEXT *JCB* ENTRY
- ADD T2
- CRM RCIB,T3 READ NEXT UPDATED *JCB* ENTRY
- SFA JCB,T1
- CWM RCIB,T3 UPDATE NEXT *JCB* ENTRY
- LDN ZERL
- CRD CM
- LDN CCSS CONVERT CPU SCHEDULING PARAMETERS
- STD CM+2
- LDD T1 SET SERVICE CLASS
- STD CM+4
- MONITOR SCTM SET SYSTEM CONTROL PARAMETERS
- LDN JCBE ADJUST OFFSET FOR NEXT SERVICE CLASS
- RAD T2
- AOD T1 INCREMENT SERVICE CLASS
- SBN MXJC
- NJN RCI6 IF MORE *JCB* ENTRIES TO UPDATE
- * ISSUE JOB LIMIT CHANGED EVENT.
- RCI7 LDN ZERL
- CRD CM
- LDN SCFE
- STD CM+4
- MONITOR EATM
- LJM RSD7 RETURN
- GCA SPACE 4,10
- ** GCA - GET CM BUFFER ADDRESS.
- *
- * ENTRY (ES+3 - ES+4) = FWA CM BUFFER FOR JOB.
- *
- * EXIT (A) = FWA CM BUFFER FOR JOB.
- GCA SUBR ENTRY/EXIT
- LDD ES+3 GET FWA CM BUFFER
- LPN 77
- SHN 6
- ADD RA
- SHN 6
- ADD ES+4
- UJN GCAX RETURN
- RCIB EQU * *JCB* BUFFER
- RCIBL EQU JCBE*5 *JCB* BUFFER LENGTH
- ERRPL RCIB+RCIBL-BFMS BUFFER OVERFLOWS *BFMS*
- * BUFFER FOR I/O STATISTICS.
- IOSA VFD 12/0,18/0,6/0,12/0,12/0
- IOSB EQU IOSA+5
- ERRPL IOSB+PUTL*5-BFMS BUFFER OVERFLOWS *BFMS*
- SPACE 4,10
- ** COMMON DECKS.
- QUAL$ SET 0 FORCE UNQUALIFIED COMMON DECKS
- *CALL COMPCUA
- SPACE 4,10
- OVERFLOW OVLA,EPFW
- OVERLAY (MISCELLANEOUS FUNCTIONS.)
- SPACE 4,10
- SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO CALLS
- *CALL COMSSSD
- TITLE CSTF/SSTF/SUSF FUNCTION PROCESSOR.
- *** FUNCTION *CSTF* - CLEAR SUBSYSTEM ACCESS FLAG.
- *
- * THE SUBSYSTEM ACESS FLAG (BIT 11D OF THE SUBSYSTEM-S SSCT
- * ENTRY) WILL BE CLEARED.
- *
- * EXIT CONDITIONS.
- *
- *T STATUS 48/ 0,9/ 0,2/ ST,1/ C
- * C COMPLETION BIT.
- * ST = 0 IF SUBSYSTEM ACCESS FLAG WAS SET AT TIME OF CALL.
- * ST = 1 IF SUBSYSTEM ACCESS FLAG WAS ALREADY CLEAR.
- SST SPACE 4,10
- *** FUNCTION *SSTF* - SET SUBSYSTEM ACCESS FLAG.
- *
- * THE SUBSYSTEM ACCESS FLAG (BIT 11D OF THE SUBSYSTEM-S SSCT
- * ENTRY) WILL BE SET.
- *
- *
- *T STATUS 48/ 0,9/ 0,2/ ST,1/ C
- * C COMPLETION BIT.
- * ST = 0 IF SUBSYSTEM ACCESS FLAG WAS CLEAR AT TIME OF CALL.
- * ST = 1 IF SUBSYSTEM ACCESS FLAG WAS ALREADY SET.
- CST ENTRY ENTRY
- LDN ZERL CLEAR STATUS WORD
- CRD CN
- AOD CN+4 SET COMPLETE BIT
- LDD CP GET SUBSYSTEM IDENTIFICATION NUMBER
- ADN JCIW
- CRD CM
- LDD IR+2
- SBN CSTF-CSCF
- SHN 14
- LMD CM+2
- ERRNZ SSTF-CSTF-1 VALUES MUST BE CONSECUTIVE
- ERRNZ SSCF-CSCF-1 VALUES MUST BE CONSECUTIVE
- RJM AST SET/CLEAR SUBSYSTEM ACCESS FLAG
- NJN CST1 IF FLAG IS ALREADY IN DESIRED STATE
- LDN 2 SET REPLY CODE
- RAD CN+4
- CST1 LDD IR+3 RETURN STATUS TO CALLER
- SHN 6
- ADD RA
- SHN 6
- ADD IR+4
- CWD CN
- LJM DPP DROP PP
- SUSF SPACE 4,10
- *** FUNCTION *SUSF* - SET SUBSYSTEM STATUS.
- *
- * THE CONTROL POINT NUMBER, IF SPECIFIED, WILL BE PLACED
- * INTO THE SUBSYSTEM-S SSCT ENTRY. THE *SSSL* STATUS BIT
- * WILL BE SET TO THE SPECIFIED STATUS (ENABLED OR DISABLED).
- *
- * ENTRY
- *
- *T,ADDR 41/ , 1/F, 6/ CP, 12/ SSID
- *
- * F = 1, IF SUBSYSTEM TO BE DISABLED.
- * = 0, IF SUBSYSTEM TO BE ENABLED.
- * CP = CONTROL POINT NUMBER + 40B, IF SPECIFIED.
- * SSID = SUBSYSTEM ID.
- SSS3 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- SSS ENTRY ENTRY
- RJM GFE GET PARAMETER WORD
- CRD CM
- LDD CM+4 SAVE SSID
- STD T6
- SBK MXSI+1
- PJN SSS3 IF SSID OUT OF RANGE
- ADK MXSI-LSSI
- MJN SSS3 IF SSID OUT OF RANGE
- LDD CM+3
- SHN 21-5 SAVE ENABLE/DISABLE FLAG
- STD T7
- PJN SSS1 IF NO CONTROL POINT SPECIFIED
- SHN 6
- LPN 37
- STD T1 SAVE CONTROL POINT
- LDN NCPL CHECK CONTROL POINT
- CRD CM
- LDD T1
- SBD CM+1
- SBN 1
- PJN SSS3 IF INVALID CONTROL POINT NUMBER
- LDN SECF
- SHN 14
- LMD T6
- RJM AST UPDATE SSCT
- * UPDATE *SSSL* STATUS BIT.
- SSS1 LDC MXSI COMPUTE TABLE OFFSET
- SBD T6
- SHN 1
- STD T6
- LDM TSSS,T6 GET *SSSL* BYTE NUMBER
- ADN CM
- STD T5
- LDM TSSS+1,T6 SET MASK
- STD T6
- LCN 0
- LMD T6
- STM SSSA
- LDD T7
- NJN SSS2 IF *DISABLE*
- STD T6 CLEAR STATUS BITS
- SSS2 LDK SSSL READ STATUS WORD
- CRD CM
- LDI T5
- LPC *
- SSSA EQU *-1
- LMD T6
- STI T5
- LDK SSSL REWRITE STATUS WORD
- CWD CM
- LJM DPP DROP PP
- TSSS SPACE 4,10
- ** TSSS - TABLE OF SUBSYSTEM STATUS INFORMATION.
- *
- *T 12/ BYTE, 12/ MASK
- TSSS INDEX
- .SUB HERE
- INDEX MXSI*2-LSSI*2
- TITLE MDFF FUNCTION PROCESSOR.
- DMM SPACE 4,15
- *** FUNCTION *MDFF* - DUMP MACHINE MEMORY.
- *
- * ENTRY CONDITIONS.
- *T FET+5 24/ ,12/ 0,24/ FWA/100
- * FWA = ABSOLUTE ADDRESS OF FIRST WORD TO DUMP.
- * FIRST, IN, OUT, LIMIT SET TO RECEIVE DUMP DATA.
- *
- * EXIT CONDITIONS.
- *T FET+5 24/ MEMORY SIZE/100,12/ 0,24/ UNCHANGED
- *
- * MEMORY SIZE IS FROM CMR WORD *MABL*.
- * MEMORY DATA FROM FWA IS WRITTEN INTO THE BUFFER
- * AND *IN* IS SET CORRECTLY. MEMORY WILL BE DUMPED
- * IN ANY NUMBER OF 100 WORD BLOCKS NEEDED TO FILL
- * THE BUFFER TO .LT. 100 REMAINING FREE WORDS.
- *
- * IN A SECURED SYSTEM, ONLY CMR AND THE CALLER-S FIELD
- * LENGTH WILL BE RETURNED. THE REST OF CENTRAL MEMORY
- * WILL BE WRITTEN AS BINARY ZEROES.
- DMM ENTRY ENTRY
- LDN 2 SET VALIDATION OPTION
- STD CM+1
- LDD IR+4 SET FET ADDRESS
- STD CM+4
- LDD IR+3
- STD CM+3
- MONITOR VFPM VALIDATE FET PARAMETERS
- LDD CM+1
- ZJN DMM1 IF NO ERROR
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- DMM1 LDK CMRL GET CMR SIZE
- CRD ES
- ADK SSTL-CMRL GET SECURITY UNLOCK STATUS
- CRD CN
- ADK SSML-SSTL GET SYSTEM SECURITY MODE
- CRD CM
- LDD CM
- LPN 7
- ZJN DMM3 IF NOT SECURED SYSTEM
- LDD CN
- SHN 21-11
- MJN DMM3 IF SECURITY UNLOCK STATUS
- AOM DMMC SET SECURED SYSTEM FLAG
- LDC 500D CLEAR BUFFER
- STD T2
- DMM2 LDN 0
- STM ZBUF-1,T2
- SOD T2
- NJN DMM2 IF MORE TO CLEAR
- DMM3 LDK MABL READ HARDWARE OPTIONS
- CRD CM
- LDD CM+1
- SHN 21-13
- PJN DMM4 IF CM EXTENSION PRESENT
- LDM DMMB SET NO CME MODE
- STM DMMA
- DMM4 LDN 6
- STD T1
- RJM GFE GET FET ADDRESS
- CRM BUF,T1 READ FET
- LDD CM+3 ADJUST 262K MEMORY SIZE
- ADN 1
- SCN 1
- STM BUF+5*5+1
- STD ES+1
- SHN -14
- ADD CM+2
- STM BUF+5*5
- STD ES
- RJM GFE
- ADN 5
- CWM BUF+5*5,ON
- LDM BUF+1*5+3 SET FET PARAMETERS
- LPN 37
- STD FT
- LDM BUF+1*5+4
- STD FT+1
- LDM BUF+2*5+3
- STD IN
- LDM BUF+2*5+4
- STD IN+1
- LDM BUF+4*5+3
- LPN 37
- STD LM
- LDM BUF+4*5+4
- STD LM+1
- RJM CIB GET BUFFER SIZE
- SHN -6 MAKE MULTIPLE OF 100
- NJN DMM5 IF LARGE ENOUGH
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- DMM5 STD CN SAVE WORD COUNT/100
- LDM BUF+5*5+3 GET FWA/100
- STD CN+3
- LDM BUF+5*5+4
- STD CN+4
- SBD ES+1 FWA - MACHINE SIZE
- SHN -21
- LMC -0
- ADD CN+3
- SBD ES
- MJN DMM6 IF FWA .LT. MACHINE SIZE
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- DMM6 LDN 0
- * LDN 1 (SECURED SYSTEM)
- DMMC EQU *-1
- ZJP DMM9 IF NOT SECURED SYSTEM
- LDD CN+3
- NJN DMM7 IF FWA PAST CMR
- LDD CN+4
- SBD ES+4
- MJP DMM9 IF FWA WITHIN CMR
- * CHECK FOR REQUESTED BLOCK FWA WITHIN CALLER-S FL
- DMM7 LDD CP CHECK FOR FWA .LT. FWA OF CALLER-S FL
- ADK FLSW+1
- CRD CM
- LDD CN+4
- SBD CM+2
- SHN -21
- LMC -0
- ADD CN+3
- SBD CM+1
- MJN DMM8 IF FWA .LT. THAN FWA OF CALLER-S FL
- LDD CM+3 CALCULATE LWA+1 OF CALLER-S FL
- LPC 3777
- ADD CM+2
- ADD CM+4
- STD CM+2
- SHN -14
- RAD CM+1
- LDD CN+4 CHECK FOR FWA .GT. LWA OF CALLER-S FL
- SBD CM+2
- SHN -21
- LMC -0
- ADD CN+3
- SBD CM+1
- MJN DMM9 IF FWA WITHIN CALLER-S FL
- DMM8 LDC ZBUF SET BUFFER ADDRESS FOR ZEROES
- STM DMMD
- UJN DMM12 PAUSE AND WRITE BUFFER
- DMM9 LDC BUF SET BUFFER ADDRESS FOR CM DATA
- STM DMMD
- LRD CN+3 SET *R* REGISTER TO FWA
- * UJN DMM10 (CME NOT PRESENT)
- DMMA EQU *-1
- LDC 400000 SET RELATIVE ADDRESS = 0
- UJN DMM11 READ DATA FROM CM
- DMM10 LDD CN+4
- SHN 6
- DMM11 CRM BUF,HN
- DMM12 PAUSE RESET *R* REGISTER
- LDD HN
- STD T1
- LDC BUF WRITE TO CM BUFFER
- DMMD EQU *-1 (BUFFER ADDRESS)
- RJM WBB
- SOD CN DECREMENT BLOCK COUNT
- ZJN DMM14 IF NO SPACE REMAINS
- AOD CN+4 ADVANCE ABSOLUTE ADDRESS
- SHN -14
- RAD CN+3
- SBD ES COMPARE TO LIMIT VALUE
- NJN DMM13 IF NOT EQUAL
- LDD CN+4
- SBD ES+1
- DMM13 NJP DMM6 IF NOT END OF MEMORY
- DMM14 LDN ZERL RETURN IN POINTER
- CRD CM
- LDD IN
- STD CM+3
- LDD IN+1
- STD CM+4
- RJM GFE
- ADN 2
- CWD CM
- SBN 2 SET COMPLETION BIT
- CRD CM
- LDD CM+4
- SCN 1
- LMN 1
- STD CM+4
- RJM GFE
- CWD CM
- LJM DPP EXIT
- DMMB BSS 0
- LOC DMMA
- UJN DMM10 CME NOT PRESENT
- LOC *O
- TPDF SPACE 4,10
- *** FUNCTION *TPDF* - TRANSFER RESOURCE PREVIEW DATA.
- *
- * ENTRY
- *
- *T,ADDR 60/ FIRST WORD OF PREVIEW DATA
- *
- * SSID = SUBSYSTEM ID.
- TPD ENTRY ENTRY
- LDK LPDS-1 SET PREVIEW DATA LENGTH
- STD T1
- LDD IR+3
- SHN 14
- ADD IR+4
- ADD T1 DATA LWA + 1
- SHN -6
- SBD FL
- MJN TPD1 IF DATA WITHIN FL
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- TPD1 RJM GFE SET DATA ADDRESS
- CRM BUF,T1 READ PREVIEW DATA
- LDN ZERL
- CRD CM
- CRD FS
- LDK LDSP
- CRD CN
- LDK LLDS SET PREVIEW BUFFER INTERLOCK WORD ADDRESS
- RAD CN+3
- STD CM+4
- SHN -14
- RAD CN+2
- STD CM+3
- MONITOR UTEM INTERLOCK PREVIEW BUFFER
- LDD CM+1
- NJN TPD2 IF BUFFER NOT INTERLOCKED
- LCN 0 SET NON-ZERO FIELD (REQUIRED BY *UTEM*)
- STD FS
- LDD CN+2 SET PREVIEW DATA ADDRESS
- SHN 14
- ADD CN+3
- ADN 1
- CWM BUF,T1 UPDATE PREVIEW BUFFER
- ADK -LPDS CLEAR BUFFER INTERLOCK
- CWD FS
- TPD2 LJM DPP EXIT
- SPACE 4
- * COMMON DECKS.
- QUAL$ SET 1
- AST$ SET 1 ASSEMBLE TABLE UPDATE CODE IN *COMPAST*
- *CALL COMPAST
- *CALL COMPCIB
- *CALL COMPWBB
- USE BUFFER
- BUF EQU *
- ZBUF EQU *+500D ZERO BUFFER FOR *MDFF*
- ERRPL ZBUF+500D-EPFW
- OVERLAY (LID MANAGEMENT PROCESSOR.)
- SPACE 4
- TITLE LID TABLE FUNCTION PROCESSORS.
- GLAF SPACE 4,15
- *** GLAF - GET LID ATTRIBUTES.
- *
- * *GLAF* RETURNS VARIOUS ATTRIBUTES FOR A SPECIFIED LID.
- *
- * ENTRY -
- *T FET+0 18/LID,42/1
- * LID = THREE CHARACTER ALPHANUMERIC LID.
- * EXIT -
- *T FET+0 18/LID,12/AT,6/ ,3/RFU,3/NW,8/RC,9/0,1/C
- * AT = 1/H,1/L,1/E,1/V,1/SH,1/SL,1/B,3/RFU,2/RFI
- * H = HOST.
- * L = LINKED MAINFRAME.
- * E = ENABLED LID.
- * V = PRE-VALIDATION REQUIRED.
- * SH = STORE AND FORWARD LID ON HOST.
- * SL = STORE AND FORWARD LID ON LINKED MAINFRAME.
- * B = LOOPBACK LID ON HOST MAINFRAME.
- * RFU = RESERVED FOR FUTURE USE.
- * RFI = RESERVED FOR INSTALLATION.
- * NW = 1/SSF,1/RHF,1/NHP.
- * SSF = SCOPE 2 STATION FACILITY.
- * RHF = REMOVE HOST FACILITY.
- * NHP = NETWORK HOST PRODUCTS.
- * NOTE - ONLY NETWORKS WITH CURRENTLY AVAILABLE
- * PATHS TO ENABLED *PID*S ARE RETURNED.
- * RC = RESPONSE CODE.
- GLA ENTRY
- RJM GFE READ LID
- CRD ES
- LDD ES+1 ENSURE PROPER FORMAT ON LID
- SCN 77
- STD ES+1
- LDN 0 CLEAR REMAINING FIELDS
- STD ES+2
- STD ES+3
- STD ES+4
- STD FN+4 CLEAR INITIAL NEXT PID INDEX
- LDK LIDP FWA OF LDT
- CRD T1
- LDN 1 INITIALIZE INDEX INTO LDT
- STD T6
- LDD T1 GET LDT HEADER
- SHN 14
- LMD T2
- CRD CM
- GLA1 LDD FN+4 INCREMENT NEXT PID INDEX
- RAD T6
- RJM RPE READ PID ENTRY
- MJN GLA2 IF ENABLED PID FOUND
- * ALL PIDS HAVE BEEN PROCESSED. WRITE REPLY BLOCK AND RETURN.
- RJM GFE WRITE REPLY BLOCK
- CWD ES
- LJM SFMX RETURN
- GLA2 LDN 3-1 SET POINTER TO FWA-1 OF FIRST LID ENTRY
- STD FI
- GLA3 RJM RLE READ LID ENTRY
- NJN GLA1 IF NO MATCHING LIDS FOR THIS PID
- LDD CN+2
- SHN 21-13
- PJN GLA3.3 IF LID NOT ENABLED
- LDD ES+1 SET ENABLED PID/LID FLAG
- SCN 10
- LMN 10
- STD ES+1
- GLA3.3 LDD CN+2
- SHN 21-12
- MJN GLA3.5 IF STORE/FORWARD
- LDD FS+1
- SHN 21-3
- PJN GLA4 IF NO PRE-VALIDATION ON PID
- UJN GLA3.7 SET PRE-VALIDATION FLAG
- GLA3.5 SHN 21-11+12-21
- PJN GLA4 IF NO PRE-VALIDATION ON LID
- GLA3.7 LDD ES+1 SET PRE-VALIDATION FLAG
- SCN 4
- LMN 4
- STD ES+1
- GLA4 LDD FS+1
- SHN 21-5
- MJN GLA7 IF HOST
- LDD CN+2
- SHN 21-12
- MJN GLA5 IF STORE/FORWARD
- LDD ES+1 SET *L* FLAG
- SCN 20
- LMN 20
- STD ES+1
- UJN GLA10 CHECK FOR ENABLED NETWORKS
- GLA5 LDD ES+1 SET *SL* FLAG
- SCN 1
- LMN 1
- STD ES+1
- GLA6 LJM GLA3 PROCESS NEXT LID
- GLA7 LDD CN+2
- SHN 21-12
- MJN GLA8 IF STORE/FORWARD
- LDD ES+1 SET *H* FLAG
- SCN 40
- LMN 40
- UJN GLA9 UPDATE ATTRIBUTES FIELD
- GLA8 LDD ES+1 SET *SH* FLAG
- SCN 2
- LMN 2
- GLA9 STD ES+1
- LDD CN+2
- SHN 21-10
- PJN GLA10 IF LOOPBACK FLAG NOT SET
- LDD ES+2 SET *B* FLAG
- LPC 3777
- LMC 4000
- STD ES+2
- * CHECK FOR ENABLED NETWORKS.
- GLA10 LDD CN+2 CHECK FOR STORE/FORWARD ATTRIBUTE
- SHN 21-12
- MJN GLA6 IF STORE/FORWARD
- LDD FS+4 CHECK FOR *NAM* ENABLED
- LPN 17
- LMK /NTS/ISV
- NJN GLA11 IF *NAM* NOT AVAILABLE
- LDD ES+3 SET *NAM* ENABLED FLAG
- SHN -6+22
- SCN NANS
- LMN NANS
- SHN 6
- STD ES+3
- GLA11 LDD FS+4 CHECK FOR *RHF* ENABLED
- SHN 0-4
- LPN 17
- LMK /NTS/ISV
- NJN GLA12 IF *RHF* NOT AVAILABLE
- LDD ES+3 SET *RHF* ENABLED FLAG
- SHN -6+22
- SCN RHNS
- LMN RHNS
- SHN 6
- STD ES+3
- GLA12 LDD FS+4 CHECK FOR *SSF* ENABLED
- SHN 0-10
- LMK /NTS/ISV
- NJN GLA13 IF *SSF* NOT AVAILABLE
- LDD ES+3 SET *SSF* ENABLED FLAG
- SHN -6+22
- SCN SSNS
- LMN SSNS
- SHN 6
- STD ES+3
- GLA13 LJM GLA3 PROCESS NEXT LID
- GLCF SPACE 4,40
- *** GLCF - GET LID CONFIGURATION.
- *
- * *GLCF* RETURNS MULTIPLE ENTRIES, WHERE EACH ENTRY CONSISTS
- * OF THE LID ATTRIBUTES, THE ENABLED PID, ITS ATTRIBUTES, AND
- * THE VARIOUS NETWORK STATUSES ASSOCIATED WITH THAT PID. SEE
- * *PPCOM* FOR THE FORMAT OF THE LDT, THE CONTENTS OF THE
- * ATTRIBUTES FIELD, AND THE CONTENTS OF THE NETWORK STATUS
- * FIELD.
- *
- * ENTRY -
- *T FET+0 12/WC,30/0,8/RC,9/0,1/1
- *T 18/LID,42/
- *T 60/
- *T .
- *T .
- *T .
- *T 60/
- * WC = WORD COUNT (INCLUDING TWO HEADER WORDS) OF THE
- * AVAILABLE REPLY BLOCK SIZE.
- * RC = RESPONSE CODE.
- * LID = THREE CHARACTER ALPHANUMERIC LOGICAL ID.
- *
- * EXIT -
- *T FET+0 60/ UNCHANGED
- *T 18/LID, 30/, 12/NP
- *T 18/PID1, 1/S, 1/B, 6/, 10/RFI, 12/, 12/NW
- *T .
- *T .
- *T .
- *T 18/PIDN, 1/S, 1/B, 6/, 10/RFI, 12/, 12/NW
- * NP = NUMBER OF ENABLED PIDS FOUND IN LDT THAT DEFINE
- * THIS LID. NOTE THAT IF THIS NUMBER EXCEEDS (WC)-2,
- * A *BUFFER TOO SMALL* ERROR WILL BE RETURNED TO THE
- * CALLER.
- * PIDI = THREE CHARACTER ALPHANUMERIC ENABLED PHYSICAL
- * ID.
- * S = STORE AND FORWARD FLAG.
- * B = LOOPBACK FLAG.
- * RFI = RESERVED FOR INSTALLATION.
- * NW = NETWORK STATUSES.
- GLC11 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- GLC ENTRY
- LDD IR+3 CHECK REPLY BLOCK ADDRESS
- SHN 14
- LMD IR+4
- SHN -6
- SBD FL
- PJN GLC11 IF ADDRESS BEYOND FL
- RJM GFE GET REPLY BLOCK WORD COUNT
- CRD CM
- ADN 1 GET LID TO BE MATCHED
- CRD ES
- LDD IR+3 CHECK LWA OF REPLY BLOCK
- SHN 14
- LMD IR+4
- ADD CM
- SHN -6
- SBD FL
- PJN GLC11 IF LWA OUT OF RANGE
- LDD CM SAVE REPLY BLOCK WORD COUNT
- SBN 2 DO NOT COUNT HEADER WORDS
- STD T7
- ZJN GLC1 IF NO REPLY BLOCK LENGTH SPECIFIED
- PJN GLC2 IF REPLY BLOCK LENGTH SPECIFIED
- GLC1 ERROR /ERR/LTL RETURN BUFFER TOO SMALL
- GLC1.5 ERROR /ERR/LNL LID NOT LEGAL
- GLC2 LDD ES CHECK LID
- ZJN GLC1.5 IF LID IS INCORRECT
- LDD ES+1 ENSURE PROPER FORMAT ON LID
- SCN 77
- ZJN GLC1.5 IF LID IS INCORRECT
- STD ES+1
- LDN 1 INITIALIZE TABLE OFFSET
- STD T6
- LDK LIDP GET FWA OF LDT
- CRD T1
- LDD T1 GET LDT HEADER
- SHN 14
- LMD T2
- CRD CM
- LDN 0 INITIALIZE NUMBER OF PIDS RETURNED
- STD ES+4
- * CHECK NEXT PID IN THE LDT.
- GLC3 LDD CM+4
- NJN GLC4 IF MORE PIDS TO CHECK
- LJM GLC10 FINISH PROCESSING
- GLC4 SOD CM+4 DECREMENT REMAINING PID COUNT
- LDD T1 GET FIRST WORD OF PID ENTRY
- SHN 14
- LMD T2
- ADD T6
- CRD FS
- ADN 1 SECOND WORD OF PID ENTRY
- CRD FN
- ADN 1 THIRD WORD OF PID ENTRY
- CRD CN
- LDD FS+1
- SHN 21-4
- MJN GLC6 IF PID ENABLED
- GLC5 LDD FN+4 POINT TO NEXT PID
- RAD T6
- UJN GLC3 CHECK NEXT PID
- GLC6 LDN 3-1 FWA-1 OF FIRST LID ENTRY
- STD ES+2
- LDD CN+4 NUMBER OF LID SLOTS
- STD T3
- * CHECK NEXT LID IN THE LDT.
- GLC7 AOD ES+2 POINT TO NEXT LID ENTRY
- SOD T3 DECREMENT LID COUNT
- MJN GLC5 IF NO MORE LIDS FOR THIS PID
- LDD T1 READ TABLE ENTRY
- SHN 14
- LMD T2
- ADD T6
- ADD ES+2
- CRD CN
- * COMPARE LID TO LID ENTRY IN THE LDT.
- LDD ES
- LMD CN
- NJN GLC7 IF LIDS DO NOT MATCH
- LDD ES+1
- LMD CN+1
- NJN GLC7 IF LIDS DO NOT MATCH
- LDD CN+2
- SHN 21-13
- PJN GLC7 IF LID NOT ENABLED
- * RETURN LID-S ATTRIBUTES ALONG WITH PID INFORMATION.
- SHN 5-12-21+13
- LPN 50 SAVE *S* AND *B* FLAGS
- STD CN+2
- LPN 10
- SHN 1 POSITION *B* FLAG
- RAD CN+2
- SCN 10 CLEAR OLD *B* FLAG
- STD CN+2
- LDD FS+1
- SCN 77
- LMD CN+2 MERGE FLAGS INTO REPLY WORD
- STD FS+1
- LDN 0 CLEAR REMAINING FIELDS
- STD FS+2
- STD FS+3
- SOD T7 DECREMENT SIZE OF REPLY BLOCK
- GLCA EQU *-1
- * UJN GLC9 (BYPASS IF REPLY BLOCK TOO SMALL)
- PJN GLC8 IF ROOM LEFT IN REPLY BLOCK
- AOM GLCB INDICATE REPLY BLOCK TOO SMALL
- ISTORE GLCA,(UJN GLC9) BYPASS LOGIC WHEN REPLY BLOCK FULL
- UJN GLC9 INCREMENT PID COUNT
- GLC8 RJM GFE WRITE RETURN INFORMATION
- ADN 2 ALLOW FOR HEADER WORDS
- ADD ES+4
- CWD FS
- GLC9 AOD ES+4 INCREMENT ENABLED PID COUNT
- LJM GLC7 PROCESS NEXT LID
- GLC10 LDN 0 CLEAR FIELD
- STD ES+2
- RJM GFE RETURN PID COUNT
- ADN 1
- CWD ES
- LDD ES+4
- ZJN GLC12 IF NO MATCHING LIDS FOUND
- LDN 0
- GLCB EQU *-1
- * LDN 1 (REPLY BUFFER TOO SMALL)
- ZJP SFMX IF ENOUGH ROOM IN REPLY BUFFER
- LJM GLC1 REPLY BUFFER TOO SMALL
- GLC12 ERROR /ERR/LNL UNKNOWN LID
- GLP SPACE 4,20
- *** GLPF - GET PID ATTRIBUTES.
- *
- * *GLPF* RETURNS THE THREE PID WORDS ASSOCIATED WITH THE SPECI-
- * FIED PID TO THE REPLY BUFFER. SEE *PPCOM* FOR THE FORMAT OF
- * THE THREE PID WORDS.
- *
- * ENTRY -
- *T FET+0 18/PID,24/0,8/0,9/0,1/0
- *T, 60/0
- *T, 60/0
- *T, 60/0
- * PID = PID TO BE MATCHED.
- *
- * EXIT -
- *T FET+0 18/PID,24/0,8/RC,9/0,1/1
- *T, 60/WORD 1 OF PID ENTRY
- *T, 60/WORD 2 OF PID ENTRY
- *T, 60/WORD 3 OF PID ENTRY
- GLP2 ABORT /MESS/ERAE * SFM - ARGUMENT ERROR.*
- GLP ENTRY ENTRY
- LDD IR+3 CHECK REPLY BLOCK ADDRESS
- SHN 14
- LMD IR+4
- SHN -6
- SBD FL
- PJN GLP2 IF ADDRESS OUT OF RANGE
- LDD IR+3 CHECK REPLY BLOCK LWA
- SHN 14
- LMD IR+4
- ADN 4
- SHN -6
- SBD FL
- PJN GLP2 IF ADDRESS OUT OF RANGE
- RJM GFE GET SEARCH PID
- CRD FN
- LDD FN+1 ENSURE 3 CHARACTER PID
- SCN 77
- STD FN+1
- RJM FMP FIND MATCHING PID IN LID TABLE
- ZJN GLP1 IF NO MATCH FOUND
- LDD T1 GET PID ENTRY
- SHN 14
- LMD T2
- ADD T6
- CRM GLPA,TR
- RJM GFE WRITE PID INFORMATION
- ADN 1
- CWM GLPA,TR
- LJM SFMX RETURN
- GLP1 ERROR /ERR/LNL * PID/LID NOT LEGAL*
- GLPA BSS 3*5 PID BUFFER
- GLTF SPACE 4,10
- *** GLTF - GET LID TABLE.
- *
- * *GLTF* RETURNS THE ENTIRE LID TABLE (INCLUDING THE HEADER)
- * TO THE BUFFER ASSOCIATED WITH THE USER-S FET. THE FET
- * POINTERS ARE UPDATED TO REFLECT THE PRESENCE OF THIS
- * DATA IN THE BUFFER. SEE *PPCOM* FOR THE FORMAT OF
- * THE LID TABLE. IF THE LID TABLE IS TOO LONG FOR THE BUFFER,
- * ERROR CODE 6 IS RETURNED, AND FET+5, BYTE 0 CONTAINS THE
- * LENGTH OF THE LID TABLE.
- GLT ENTRY
- LDK LIDP FWA OF LDT
- CRD ES
- LDD ES INITIALIZE LDT ADDRESS
- RAM GLTA
- LDD ES+1
- STM GLTA+1
- LDD ES GET LENGTH OF LDT
- SHN 14
- LMD ES+1
- CRD ES
- RJM GFE READ FET POINTERS
- ADN 1
- CRD CM *FIRST*
- ADN 3
- CRD CN *LIMIT*
- LDD CM+3
- LPN 77
- STD CM+3
- LDD CN+3
- LPN 77
- STD CN+3
- SHN 14
- LMD CN+4
- SHN -6
- SBD FL
- PJN GLT1 IF *LIMIT* OUT OF RANGE
- LDD CN+3
- SBD CM+3
- MJN GLT1 IF *FIRST* NOT WITHIN *LIMIT*
- SHN 14
- ADD CN+4
- SBD CM+4
- SBN 1
- PJN GLT2 IF *FIRST* LESS THAN *LIMIT*
- GLT1 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- GLT2 LDN ZERL CALCULATE NEW VALUE OF *IN*
- CRD FN
- LDD CM+3
- SHN 14
- LMD CM+4
- ADD ES LENGTH OF TABLE
- STD FN+4
- SHN -14
- STD FN+3
- LDD CN+3 CHECK IF ENOUGH SPACE IN BUFFER
- SBD FN+3
- MJN GLT3 IF NO SPACE IN BUFFER
- SHN 14
- ADD CN+4
- SBD FN+4
- SBN 1
- PJN GLT4 IF ENOUGH SPACE IN BUFFER
- GLT3 RJM GFE RETURN LID TABLE LENGTH
- ADN 5
- CWD ES
- ERROR /ERR/LTL EC=6, LID TABLE TOO LONG FOR BUFFER
- GLT4 LDN 0 INITIALIZE TABLE OFFSET
- STD T2
- GLT5 LDD ES LDT LENGTH
- NJN GLT6 IF LDT DEFINED
- LDN 1 RETURN LDT HEADER
- STD ES
- GLT6 STD T1
- ADC -LIDTL
- MJN GLT7 IF REMAINDER OF LDT FITS IN BUFFER
- ZJN GLT7 IF REMAINDER OF LDT FITS IN BUFFER
- LDK LIDTL PROCESS ONE BUFFER OF DATA
- STD T1
- GLT7 LDC ** READ LDT INTO BUFFER
- GLTA EQU *-2
- CRM LIDT,T1
- LDD CM+3 RETURN LDT TO USER-S FL
- SHN 6
- ADD RA
- SHN 6
- ADD CM+4
- ADD T2
- CWM LIDT,T1
- LDD ES
- SBD T1
- ZJN GLT8 IF ENTIRE LDT WRITTEN TO USER-S FL
- STD ES
- LDD T1 UPDATE LDT ADDRESS
- RAM GLTA+1
- SHN -14
- RAM GLTA
- LDD T1 UPDATE OFFSET TO USER-S FL
- RAD T2
- LJM GLT5 READ/WRITE THE LDT TO USER-S FL
- GLT8 LDK ZERL RETURN *IN* AND *OUT* TO FET
- CRD CN
- LDD CM+3
- STD CN+3
- LDD CM+4
- STD CN+4
- RJM GFE
- ADN 2
- CWD FN
- ADN 1
- CWD CN
- LJM SFMX COMPLETE *SFM* PROCESSING
- INT SPACE 4,10
- *** ILTF - INITIALIZE THE LDT.
- *
- * *ILTF* WRITES THE ENTIRE LDT (INCLUDING THE HEADER) FROM THE
- * BUFFER ASSOCIATED WITH THE USER-S FET TO THE FWA OF THE
- * TABLE, FOUND IN *LIDP*. SEE *PPCOM* FOR THE FORMAT OF THE
- * LDT.
- INT ENTRY
- RJM ILT INTERLOCK THE LDT
- RJM GFE READ LENGTH OF PARAMETER BLOCK
- CRD FN
- * TEST IF PARAMETER BLOCK LENGTH IS WITHIN FL.
- LDD IR+3
- SHN 14
- LMD IR+4
- ADD FN
- ADN 1 INCLUDE PARAMETER BLOCK HEADER
- SHN -6
- SBD FL
- MJN INT1 IF PARAMETER BLOCK WITHIN FL
- RJM CLI CLEAR THE LDT INTERLOCK
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- INT1 LDN 1 INITIALIZE PARAMETER BLOCK OFFSET
- STD T2
- LDK LIDP READ FWA OF LDT
- CRD FS
- LDD FS FWA OF LDT
- RAM INTA
- LDD FS+1
- STM INTA+1
- * ENSURE THE NEW TABLE FITS WITHIN LDT-S ALLOTTED SPACE.
- LDD FN
- ZJN INT2 IF NO PARAMETER BLOCK LENGTH SPECIFIED
- SBD FS+2
- MJN INT3 IF TABLE FITS WITHIN ALLOTTED SPACE
- ZJN INT3 IF TABLE EXCEEDS ALLOTTED SPACE
- INT2 RJM CLI CLEAR THE LDT INTERLOCK
- ERROR /ERR/LTL RETURN INFORMATION TOO LARGE
- * CALCULATE NUMBER OF CM WORDS TO READ/WRITE.
- INT3 LDD FN REMAINING NUMBER OF CM WORDS TO PROCESS
- STD T1
- ADC -LIDTL
- MJN INT4 IF PARAMETER BLOCK FITS IN PP BUFFER
- ZJN INT4 IF PARAMETER BLOCK FITS IN PP BUFFER
- LDK LIDTL PROCESS ONE BUFFER OF DATA
- STD T1
- INT4 RJM GFE CURRENT ADDRESS OF PARAMETER BLOCK
- ADD T2
- CRM LIDT,T1
- LDC ** WRITE BUFFER TO LDT IN CM
- INTA EQU *-2
- CWM LIDT,T1
- LDD FN
- SBD T1
- ZJN INT5 IF ENTIRE PARAMETER BLOCK PROCESSED
- STD FN
- LDD T1 INCREMENT ADDRESS FOR NEXT BLOCK OF DATA
- RAM INTA+1
- SHN -14
- RAM INTA
- LDD T1 INCREMENT PARAMETER BLOCK OFFSET
- RAD T2
- UJN INT3 PROCESS REMAINING PARAMETER BLOCK
- INT5 RJM CLI CLEAR THE LDT INTERLOCK
- LJM SFMX RETURN
- SPT SPACE 4,10
- ** SPTF - SET PID ATTRIBUTES.
- *
- * *SPTF* CAN PERFORM A NUMBER OF DIFFERENT TASKS DEPENDING UPON
- * THE SUBFUNCTION ISSUED WITH THIS FUNCTION. SEE *COMCCMD* FOR
- * THE ENTRY AND EXIT FORMATS FOR THE VARIOUS SUBFUNCTIONS.
- SPT4 RJM CLI CLEAR THE INTERLOCK
- ERROR /ERR/LNL LID/PID NOT LEGAL
- SPT ENTRY
- RJM ILT INTERLOCK THE LDT
- LDK LIDP GET LDT ADDRESS
- CRD FS
- LDD FS+2
- SBN 2
- MJN SPT4 IF NO LDT DEFINED
- RJM GFE
- CRD FN
- LDD FN+1 CHECK NUMBER OF PIDS
- ZJN SPT2 IF NO PIDS
- LDD FN VALIDATE SUBFUNCTION
- SBN MXSP
- MJN SPT1 IF VALID SUBFUNCTION
- RJM CLI CLEAR THE LDT INTERLOCK
- ERROR /ERR/IFC INCORRECT SUBFUNCTION CODE
- * CHECK IF PARAMETER BLOCK IS WITHIN FL.
- SPT1 LDD IR+3
- SHN 14
- LMD IR+4
- ADD FN+1
- SHN -6
- SBD FL
- PJN SPT2 IF PARAMETER BLOCK BEYOND FL
- LDM TSPT,FN SET PROCESSOR ADDRESS
- STM SPTA
- RJM * PROCESS SUBFUNCTION
- SPTA EQU *-1 (PROCESSOR ADDRESS)
- RJM CLI CLEAR THE LDT INTERLOCK
- LDM PERA
- NJN SPT3 IF ERROR DETECTED IN PARAMETER BLOCK
- LJM SFMX RETURN
- SPT2 RJM CLI CLEAR THE LDT INTERLOCK
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- SPT3 ERROR /ERR/CPB CHECK PARAMETER BLOCK FOR ERRORS
- SPACE 4,10
- * TABLE OF SUBFUNCTION PROCESSOR ADDRESSES.
- TSPT INDEX
- INDEX SPAF,SPA
- INDEX SNSF,SNS
- INDEX SMFF,SMF
- INDEX ALDF,ALD
- INDEX DLDF,DLD
- INDEX SLTF,ALD
- INDEX MXSP
- TITLE SUBROUTINES.
- ALD SPACE 4,15
- ** ALD - ADD LID AND/OR SET NEW LID ATTRIBUTES.
- *
- * ENTRY (FN) = SUBFUNCTION TO BE PROCESSED.
- * (FN+1) = NUMBER OF ENTRIES TO PROCESS.
- *
- * EXIT ALL PARAMETER BLOCK ENTRIES PROCESSED.
- *
- * USES ES+2, T3, CM - CM+4, FN - FN+4.
- *
- * CALLS FMP, GFE, RLE.
- *
- * MACROS PERR.
- ALD SUBR ENTRY/EXIT
- LDD FN
- LMK ALDF
- ZJN ALD1 IF ADDING LID AND ATTRIBUTES
- * ONLY THE LID ATTRIBUTES ARE BEING CHANGED. SOME BRANCH
- * ADDRESSES AND SOME FLAGS MUST BE ALTERED TO ALLOW ONLY
- * CHANGING THE ATTRIBUTES.
- LDC ZJNI+ALD7-ALDA CHANGE BRANCH ADDRESS
- STM ALDA
- LDC UJNI+77-ALDB+ALD4 CHANGE BRANCH ADDRESS
- STM ALDB
- SOM ALDC
- LDN 0 INITIALIZE PARAMETER BLOCK INDEX
- ALD1 STD T3
- LDD FN+1 NUMBER OF PARAMETER BLOCK ENTRIES
- STD ES+2
- ALD2 AOD T3 INCREMENT PARAMETER BLOCK INDEX
- SBD ES+2
- MJN ALD3 IF MORE ENTRIES TO PROCESS
- NJN ALDX IF ALL ENTRIES PROCESSED
- ALD3 RJM GFE READ PARAMETER BLOCK ENTRY
- ADD T3
- CRD FN
- RJM FMP FIND MATCHING PID
- NJN ALD6 IF MATCH
- ALD4 PERR /ERR/LNL PID/LID NOT LEGAL
- ALD5 UJN ALD2 PROCESS NEXT ENTRY
- ALD6 LDD FN+1 SET UP LID TO BE MATCHED
- LPN 77
- SHN 14
- LMD FN+2
- SHN 14
- STD ES
- SHN -6
- SCN 77
- STD ES+1
- LDN 3-1 INDEX - 1 TO FIRST LID
- STD FI
- RJM RLE READ LID ENTRY
- ZJN ALD4 IF LIDS MATCH
- * ZJN ALD7 IF SETTING ATTRIBUTES ONLY
- ALDA EQU *-1
- PJN ALD8 IF HOLE FOUND
- * UJN ALD4 PID/LID NOT LEGAL (SETTING ATTRIBUTES)
- ALDB EQU *-1
- PERR /ERR/LTO LID TABLE OVERFLOW
- UJN ALD5 PROCESS NEXT ENTRY
- ALD7 LDD T1 SAVE LID ADDRESS
- SHN 14
- LMD T2
- ADD T6
- ADD FI
- STD T5
- SHN -14
- STD T4
- ALD8 LDD T4 GET LDT ENTRY
- SHN 14
- LMD T5
- CRD CM
- * SET NEW LID ATTRIBUTES.
- LDD FN+3 CHECK ATTRIBUTES
- LPC 177
- ZJN ALD9 IF VALID ATTRIBUTES
- PERR /ERR/ILA INCORRECT LID ATTRIBUTE
- UJN ALD11 PROCESS NEXT ENTRY
- ALD9 LDD FN+3
- STD CM+2
- LDN 1
- * LDN 0 (SETTING NEW ATTRIBUTES ONLY)
- ALDC EQU *-1
- ZJN ALD10 IF SETTING NEW ATTRIBUTES ONLY
- LDD ES INSERT LID
- STD CM
- LDD ES+1
- STD CM+1
- ALD10 LDD T4 REWRITE LDT ENTRY
- SHN 14
- LMD T5
- CWD CM
- PERR /ERR/CMP REQUEST COMPLETE
- ALD11 LJM ALD2 PROCESS NEXT ENTRY
- ERRNG 37+ALDA-ALD7 ERROR IF OUT OF RANGE
- ERRNG 37+ALD4-ALDB ERROR IF OUT OF RANGE
- CLI SPACE 4,10
- ** CLI - CLEAR LID TABLE INTERLOCK.
- *
- * USES FS - FS+4.
- CLI SUBR ENTRY/EXIT
- LDK LIDP READ LDT POINTER
- CRD FS
- LDD FS+4 CLEAR INTERLOCK BIT
- SCN 1
- STD FS+4
- LDC LIDP REWRITE POINTER WORD
- CWD FS
- UJN CLIX RETURN
- DLD SPACE 4,15
- ** DLD - DELETE LID.
- *
- * ENTRY (FN+1) = NUMBER OF ENTRIES TO PROCESS.
- *
- * EXIT LID DELETED FROM LDT, IF MATCH FOUND.
- *
- * USES T3, CN - CN+2, ES - ES+2, FN - FN+4.
- *
- * CALLS FMP, GFE, RLE.
- *
- * MACROS PERR.
- DLD SUBR ENTRY/EXIT
- LDN 0 INITIALIZE PARAMETER BLOCK INDEX
- STD T3
- LDD FN+1 NUMBER OF PARAMETER BLOCK ENTRIES
- STD ES+2
- DLD1 AOD T3 INCREMENT PARAMETER BLOCK INDEX
- SBD ES+2
- MJN DLD2 IF MORE ENTRIES TO PROCESS
- NJN DLDX IF ALL ENTRIES PROCESSED
- DLD2 RJM GFE READ PARAMETER BLOCK ENTRY
- ADD T3
- CRD FN
- RJM FMP FIND MATCHING PID
- NJN DLD4 IF MATCH
- PERR /ERR/LNL PID/LID NOT LEGAL
- DLD3 UJN DLD1 PROCESS NEXT ENTRY
- DLD4 LDD FN+1 SET UP LID TO BE MATCHED
- LPN 77
- SHN 14
- LMD FN+2
- SHN 14
- STD ES
- SHN -6
- SCN 77
- STD ES+1
- LDN 3-1 INDEX - 1 TO FIRST LID
- STD FI
- RJM RLE READ LID ENTRY
- ZJN DLD6 IF LIDS MATCH
- PERR /ERR/LNL PID/LID NOT LEGAL
- DLD5 UJN DLD3 PROCESS NEXT ENTRY
- DLD6 LDK ZERL CLEAR LID ENTRY
- CRD CN
- LDD T1 UPDATE LDT ENTRY
- SHN 14
- LMD T2
- ADD T6
- ADD FI
- CWD CN
- PERR /ERR/CMP REQUEST COMPLETE
- UJN DLD3 PROCESS NEXT ENTRY
- FMP SPACE 4,15
- ** FMP - FIND MATCHING PID.
- *
- * ENTRY (FN - FN+1) = PID BEING MATCHED.
- *
- * EXIT (A) = 0, IF NO MATCH FOUND.
- * (A) .NE. 0, IF MATCH FOUND.
- * (T1 - T2) = FWA OF LDT.
- * (T6) = TABLE OFFSET OF MATCHING PID, IF ONE FOUND.
- *
- * USES T1, T2, T6, CM - CM+4, CN - CN+4, FS - FS+4.
- *
- * CALLS CLI.
- *
- * MACROS ERROR.
- FMP SUBR ENTRY/EXIT
- LDK LIDP GET LDT ADDRESS
- CRD CM
- LDD CM+1 SAVE LDT ADDRESS
- STD T2
- LDD CM
- STD T1
- SHN 14 READ LDT HEADER
- LMD T2
- CRD CM
- LDN 1 INITIAL LID TABLE POINTER OFFSET
- STD T6
- LDD CM+4
- NJN FMP1 IF PIDS DEFINED IN LDT
- RJM CLI CLEAR THE LDT INTERLOCK
- ERROR /ERR/LNL LID/PID NOT LEGAL
- FMP1 LDD T1 GET PID
- SHN 14
- LMD T2
- ADD T6
- CRD CM
- ADN 1 GET SECOND WORD OF PID
- CRD FS
- ADN 1 GET THIRD WORD OF PID
- CRD CN
- * CHECK FOR MATCHING PIDS.
- LDD CM+1
- LMD FN+1
- SCN 77
- SHN 6
- ADD CM
- LMD FN
- NJN FMP3 IF NO MATCH
- LDN 1 INDICATE MATCH FOUND
- FMP2 LJM FMPX RETURN
- FMP3 LDD FS+4
- ZJN FMP2 IF ALL PIDS SEARCHED
- RAD T6 POINT TO NEXT PID
- UJN FMP1 READ NEXT PID ENTRY
- ILT SPACE 4,10
- ** ILT - INTERLOCK LID TABLE.
- *
- * EXIT LID TABLE INTERLOCKED.
- *
- * USES CM - CM+4.
- *
- * MACROS ABORT, DELAY, MONITOR, PAUSE.
- ILT SUBR ENTRY/EXIT
- ILT1 LDN ZERL INTERLOCK LID TABLE
- CRD CM
- ADK LIDP-ZERL FWA OF LDT
- STD CM+4
- MONITOR UTEM
- LDD CM+1
- ZJN ILTX IF TABLE INTERLOCKED
- DELAY
- PAUSE
- LDD CM+1
- ZJN ILT1 IF NO ERROR FLAG
- ABORT /MESS/ERAB *SFM ABORTED*
- PER SPACE 4,10
- ** PER - PROCESS PARAMETER BLOCK ENTRY ERROR.
- *
- * ENTRY (A) = ERROR CODE.
- * (T3) = PARAMETER BLOCK ENTRY INDEX.
- *
- * EXIT ERROR CODE PLACED IN PARAMETER BLOCK ENTRY AND WORD
- * REWRITTEN TO USER-S FL.
- * (PERA) = ERROR CODE, IF ERROR DETECTED.
- *
- * USES FN+4.
- *
- * CALLS GFE.
- PER SUBR ENTRY/EXIT
- STD FN+4
- LMK /ERR/CMP
- ZJN PER1 IF NO ERROR DETECTED
- STM PERA SAVE ERROR CODE
- PER1 RJM GFE REWRITE PARAMETER BLOCK ENTRY
- ADD T3 ADDRESS INDEX
- CWD FN
- UJN PERX RETURN
- PERA CON 0 ERROR CODE
- RLE SPACE 4,15
- ** RLE - READ LID ENTRY.
- *
- * ENTRY (ES - ES+1) = LID TO BE MATCHED.
- * (FI) = INDEX - 1 TO NEXT LID.
- * (T1 - T2) = FWA OF LDT.
- * (T6) = LDT INDEX OF FIRST WORD OF PID BEING PROCESSED.
- * (CN+4) = NUMBER OF LIDS IN THIS PID.
- *
- * EXIT (A) = 0, IF LIDS MATCH.
- * .GT. 0, IF HOLE FOUND.
- * .LT. 0, IF NO HOLE/MATCHING LID FOUND.
- * (T4 - T5) = LDT ADDRESS, IF HOLE FOUND.
- *
- * USES FI, T0, T4, T5, T6, CN - CN+4.
- RLE3 LDD T4
- NJN RLEX IF HOLE FOUND
- LCN 1 INDICATE NO HOLE/MATCHING LID FOUND
- RLE SUBR ENTRY/EXIT
- LDD CN+4 NUMBER OF LID SLOTS
- STD T0
- LDN 0 INITIALIZE FIRST HOLE POINTER
- STD T4
- STD T5
- RLE1 AOD FI SET INDEX TO NEXT LID ENTRY
- SOD T0 DECREMENT LID COUNT
- MJN RLE3 IF NO MORE LID SLOTS FOR THIS PID
- LDD T1 READ TABLE ENTRY
- SHN 14
- LMD T2
- ADD T6
- ADD FI
- CRD CN
- * COMPARE LID TO LID ENTRY IN LDT.
- LDD CN
- ZJN RLE2 IF NO LID PRESENT
- LMD ES
- NJN RLE1 IF NO MATCH
- LDD CN+1
- LMD ES+1
- SCN 77
- ZJN RLEX IF MATCH
- UJN RLE1 CHECK NEXT LID ENTRY
- * PROCESS HOLE IN THE LDT.
- RLE2 LDD T4
- NJN RLE1 IF PRIOR HOLE FOUND
- LDD T1 SAVE POINTERS TO FIRST HOLE
- SHN 14
- LMD T2
- ADD T6
- ADD FI
- STD T5
- SHN -14
- STD T4
- UJN RLE1 CHECK NEXT LID ENTRY
- RPE SPACE 4,15
- ** RPE - READ PID ENTRY.
- *
- * ENTRY (T1 - T2) = FWA OF LDT.
- * (T6) = LDT INDEX OF PID CURRENTLY BEING PROCESSED.
- * (CM+4) = REMAINING NUMBER OF PIDS TO PROCESS.
- *
- * EXIT (A) = 0, IF ALL PIDS HAVE BEEN PROCESSED.
- * (A) .LT. 0, IF ENABLED PID FOUND.
- * (FS - FS+4) = FIRST WORD OF PID ENTRY.
- * (FN - FN+4) = SECOND WORD OF PID ENTRY.
- * (CN - CN+4) = THIRD WORD OF PID ENTRY.
- *
- * USES CM+4, T6, CN - CN+4, FN - FN+4, FS - FS+4.
- RPE SUBR ENTRY/EXIT
- RPE1 LDD CM+4
- ZJN RPEX IF ALL PIDS PROCESSED
- SOD CM+4 DECREMENT REMAINING PID COUNT
- LDD T1 GET FIRST WORD OF PID ENTRY
- SHN 14
- LMD T2
- ADD T6
- CRD FS
- ADN 1 GET SECOND WORD OF PID ENTRY
- CRD FN
- ADN 1 GET THIRD WORD OF PID ENTRY
- CRD CN
- LDD FS+1
- SHN 21-4
- MJN RPEX IF PID ENABLED
- LDD FN+4 POINT TO NEXT PID
- RAD T6
- UJN RPE1 CHECK NEXT PID
- SMF SPACE 4,10
- ** SMF - SET MAINFRAME DESCRIPTOR.
- *
- * ENTRY (FN+1) = NUMBER OF ENTRIES TO PROCESS.
- *
- * EXIT MAINFRAME DESCRIPTION UPDATED IN PID ENTRY IN THE LDT.
- *
- * USES T0, T3, FN - FN+4, FS - FS+4.
- *
- * CALLS FMP, GFE.
- *
- * MACROS PERR.
- SMF SUBR ENTRY/EXIT
- LDN 0 INITIALIZE PARAMETER BLOCK OFFSET
- STD T3
- LDD FN+1 NUMBER OF PARAMETER BLOCK ENTRIES
- STD T0
- SMF1 AOD T3 INCREMENT PARAMETER BLOCK OFFSET
- SBD T0
- MJN SMF2 IF MORE ENTRIES TO PROCESS
- NJN SMFX IF ALL ENTRIES PROCESSED
- SMF2 RJM GFE READ PARAMETER BLOCK ENTRY
- ADD T3
- CRD FN
- RJM FMP FIND MATCHING PID
- NJN SMF3 IF MATCH
- PERR /ERR/LNL PID/LID NOT LEGAL
- UJN SMF1 PROCESS NEXT ENTRY
- * WRITE NEW MAINFRAME DESCRIPTION TO THE LDT.
- SMF3 LDD FN+2
- SCN 77
- SHN 6
- LMD FN+1
- SHN 6
- STD FS
- LDD FN+2
- LPN 77
- SHN 14
- LMD FN+3
- SHN -6
- STD FS+1
- LDD FN+4
- SCN 77
- SHN 6
- LMD FN+3
- SHN 6
- STD FS+2
- LDD FS+3
- LPN 77
- STD FS+3
- LDD FN+4
- SHN 6
- RAD FS+3
- LDD T1 PID ADDRESS IN LDT
- SHN 14
- LMD T2
- ADD T6
- ADN 1
- CWD FS
- PERR /ERR/CMP REQUEST COMPLETE
- LJM SMF1 PROCESS NEXT ENTRY
- SNS SPACE 4,10
- ** SNS - SET NETWORK STATUS.
- *
- * ENTRY (FN+1) = NUMBER OF ENTRIES TO PROCESS.
- *
- * EXIT ALL ENTRIES IN THE PARAMETER BLOCK HAVE THEIR APPRO-
- * PRIATE NETWORK STATUS FIELDS UPDATED.
- *
- * USES T0, T3, FN - FN+4.
- *
- * CALLS CLI, FMP, GFE, UTE.
- *
- * MACROS ABORT, PERR.
- SNS SUBR ENTRY/EXIT
- LDD FN+1 SAVE PID COUNT
- STD T0
- SBN 1
- NJN SNS1 IF MORE THAN ONE PID TO PROCESS
- LDM SNSB ALLOW CLEARING OF ALL PIDS OPTION
- STM SNSA
- SNS1 LDD FN+2 CHECK FOR VALID NETWORK
- STD T4 SAVE NETWORK FLAG
- ZJN SNS2 IF NO NETWORKS SPECIFIED
- SCN SSNS+RHNS+NANS
- ZJN SNS3 IF VALID NETWORK FLAGS
- SNS2 RJM CLI CLEAR THE LDT INTERLOCK
- ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
- SNS3 STD T3 INITIALIZE PARAMETER BLOCK INDEX
- SNS4 AOD T3 INCREMENT PARAMETER BLOCK INDEX
- SBD T0
- MJN SNS5 IF MORE ENTRIES TO PROCESS
- NJN SNSX IF ALL ENTRIES PROCESSED
- SNS5 RJM GFE READ PID ENTRY
- ADD T3 ADD INDEX
- CRD FN
- UJN SNS6 CHECK PID
- SNSA EQU *-1
- * LDD FN+1 (IF SETTING STATUS ON ALL PIDS PERMITTED)
- SCN 77
- SHN 6
- LMD FN
- LMC 3R***
- ZJN SNS8 IF SETTING STATUS ON ALL PIDS
- SNS6 LDD FN+4 CHECK FOR VALID STATUS
- SBK /NTS/RS3
- MJN SNS9 IF VALID STATUS
- SBK /NTS/DAB-/NTS/RS3
- ERRNZ /NTS/DAB-/NTS/RS7-1
- ZJN SNS9 IF VALID STATUS
- PERR /ERR/IST INCORRECT NETWORK STATUS
- SNS7 UJN SNS4 PROCESS NEXT PARAMETER BLOCK ENTRY
- SNS8 LDD FN+4
- LMK /NTS/NAV
- NJP SNS2 IF NOT *NETWORK NOT AVAILABLE*
- RJM UTE UPDATE ALL LDT TABLE ENTRIES
- LJM SNSX RETURN
- SNS9 RJM FMP FIND MATCHING PID
- ZJN SNS10 IF NO MATCH
- RJM UTE UPDATE LDT TABLE ENTRY
- UJN SNS7 PROCESS NEXT PARAMETER BLOCK ENTRY
- SNS10 PERR /ERR/LNL PID/LID NOT LEGAL
- UJN SNS7 PROCESS NEXT PARAMETER BLOCK ENTRY
- SNSB LDD FN+1 (USED IF *** OPTION ALLOWED)
- SPA SPACE 4,10
- ** SPA - SET PID ATTRIBUTES.
- *
- * ENTRY (FN+1) = NUMBER OF ENTRIES TO PROCESS.
- *
- * EXIT ALL ENTRIES IN THE PARAMETER BLOCK HAVE THEIR APPRO-
- * PRIATE PID ATTRIBUTE FIELDS UPDATED.
- *
- * USES T1 - T3, T6, FN - FN+4.
- *
- * CALLS FMP, GFE.
- *
- * MACROS PERR.
- SPA SUBR ENTRY/EXIT
- LDD FN+1 SET PID COUNT
- STD T3
- SPA1 RJM GFE GET PARAMETER WORD
- ADD T3
- CRD FN
- RJM FMP FIND MATCHING PID IN LID TABLE
- NJN SPA2 IF PID FOUND
- PERR /ERR/LNL PID/LID NOT LEGAL
- UJN SPA3 DECREMENT PID COUNT
- SPA2 LDD T1 GET PID ENTRY
- SHN 14
- LMD T2
- ADD T6
- CRD CM
- LDD CM+1 CLEAR OLD PID ATTRIBUTES
- SCN 34
- STD CM+1
- LDD FN+4 SET PID ATTRIBUTES
- SHN 4-13
- LPN 34
- RAD CM+1
- LDD T1 REPLACE PID ENTRY
- SHN 14
- LMD T2
- ADD T6
- CWD CM
- PERR /ERR/CMP REQUEST COMPLETE
- SPA3 SOD T3 DECREMENT PID COUNT
- NJP SPA1 IF MORE PIDS TO PROCESS
- LJM SPAX RETURN
- UTE SPACE 4,15
- ** UTE - UPDATE LDT TABLE ENTRY.
- *
- * ENTRY (A) = 0, IF NETWORK STATUS OF ALL PIDS IN LDT ARE TO
- * BE UPDATED.
- * (A) .NE. 0, IF NETWORK STATUS OF ONLY ONE PID IS TO BE
- * UPDATED.
- * (T1 - T2) = ADDRESS OF LDT ENTRY TO BE UPDATED, IF
- * ONLY ONE PID BEING UPDATED.
- * (T4) = NETWORK FLAG.
- * (FN - FN+4) = CURRENT PID ENTRY BEING PROCESSED.
- * (FN+3) = 1, IF ENABLING OR DISABLING NETWORK.
- * = 0, IF SETTING NEW NETWORK STATUS.
- * (FN+4) = 8/0,1/E,3/ST.
- *
- * EXIT THE NETWORK STATUS FIELD OF THE APPROPRIATE PID(S) HAS
- * S) HAS BEEN UPDATED.
- *
- * USES T1, T2, CN, CN+1, CM - CM+4, FS - FS+4.
- *
- * CALLS CLI.
- *
- * MACROS ABORT, PERR.
- UTE SUBR ENTRY/EXIT
- STD CN SAVE PID UPDATE STATUS
- NJN UTE1 IF UPDATING STATUS OF ONE PID
- STD T6 INITIALIZE LDT INDEX
- LDK LIDP GET FWA OF LDT
- CRD CM
- LDD CM SET POINTER TO FIRST PID IN LDT
- SHN 14
- LMD CM+1
- ADN 1
- STD T2
- SHN -14
- STD T1
- * STORE APPROPRIATE NETWORK STATUS MASK AND NEW NETWORK STATUS.
- UTE1 LDD FN+3 SET APPROPRIATE MASK
- ADC TUTE+2
- STM UTEA
- LDN 0 INITIALIZE ADDRESS FOR TABLE SEARCH
- STD CN+1
- STM UTEC CLEAR STATUS MASK
- LDD FN+4 PRESET STATUS
- SHN 4
- RAD FN+4
- SCN 17
- SHN 4
- RAD FN+4
- UTE2 LDM TUTE,CN+1
- ZJN UTE5 IF NETWORK NOT FOUND
- LMD T4
- SBD T4
- MJN UTE3 IF MATCH ON NETWORK
- LDM TUTE+1,CN+1 NETWORK CLEARING MASK
- UJN UTE4 BUILD MASK
- UTE3 LDM TUTE+2,CN+1 STATUS
- * LDM TUTE+3,CN+1 (ENABLE/DISABLE NETWORK)
- UTEA EQU *-1
- UTE4 LMM UTEC
- STM UTEC
- LDN TUTEL INCREMENT NETWORK POINTER
- RAD CN+1
- UJN UTE2 CHECK NEXT NETWORK
- UTE5 LCN 0 FORM NEW NETWORK STATUS
- LMM UTEC
- STM UTEB
- LDD FN+4
- LPC **
- UTEB EQU *-1
- STD FN+4
- * READ LDT PID ENTRY AND UPDATE APPROPRIATE NETWORK STATUS.
- UTE6 LDD T1 READ NETWORK STATUS
- SHN 14
- LMD T2
- ADD T6
- CRD CM
- ADN 1 READ NEXT PID OFFSET
- CRD FS
- LDD CM+4 CLEAR CURRENT NETWORK STATUS
- LPC **
- UTEC EQU *-1
- LMD FN+4 NEW NETWORK STATUS
- STD CM+4
- LDD T1 REWRITE *LDT* ENTRY
- SHN 14
- LMD T2
- ADD T6
- CWD CM
- PERR /ERR/CMP REQUEST COMPLETED
- LDD CN
- NJN UTE7 IF UPDATING ONLY ONE PID ENTRY
- LDD FS+4
- ZJN UTE7 IF NO MORE PIDS IN *LDT*
- RAD T6 UPDATE POINTER TO NEXT PID
- UJN UTE6 PROCESS NEXT PID IN *LDT*
- UTE7 LJM UTEX RETURN
- TUTE BSS 0
- CON NANS,17,10,7 *NAM*
- TUTEL EQU *-TUTE LENGTH OF TABLE ENTRY
- CON RHNS,360,200,160 *RHF*
- CON SSNS,7400,4000,3400 *SSF*
- CON 0 END OF TABLE
- SPACE 4,10
- ** LID TABLE BUFFER.
- LIDL1 EQU 200*5 PP WORD LENGTH OF BUFFER
- LIDL2 MIN 5*MXLDT,LIDL1 LDT PP BUFFER LENGTH
- LIDTL EQU LIDL2/5 CM WORD LENGTH OF BUFFER
- LIDT EQU BFMS-LIDL2 LDT BUFFER ADDRESS
- SPACE 4,10
- ERRNG LIDT-*
- OVERFLOW OVLA,EPFW
- OVERLAY (DAYFILE TERMINATION PROCESSOR.)
- TAD SPACE 4,15
- *** FUNCTION *TAFF* - TERMINATE ACTIVE DAYFILE.
- *
- * SSJ= REQUIRED. A NEW FILE IS CREATED WITH A DAYFILE
- * FORMATTED SYSTEM SECTOR AND EOI SECTOR ON EQUIPMENT, EQ.
- * THE TRACK INTERLOCK IS SET FOR THE SPECIFIED DAYFILE AND A
- * TERMINATING DAYFILE MASSAGE IS ISSUED TO FLUSH THE BUFFER
- * AND INTERLOCK THE DAYFILE. THE TERMINATED DAYFILE IS THEN
- * ATTACHED TO THE CONTROL POINT AS A LOCKED LIBRARY FILE AND
- * THE NEW DAYFILE IS STARTED BY WRITING ITS FST ENTRY INTO
- * THE DAYFILE POINTER AREA AND SETTING ITS TRACK INTERLOCK
- * AFTER MOVING A CREATION DATE MESSAGE INTO THE DAYFILE BUFFER.
- *
- * THE LABEL TRACK ON THE DAYFILE DEVICE WILL BE INTERLOCKED TO
- * PREVENT PROBLEMS CAUSED BY MULTIPLE *DFTERM* RUNS. THIS
- * INTERLOCK IS NORMALLY CLEARED BY A *CDBF* CALL. TO ALLOW
- * FOR A POSSIBLE ABORT OF *DFTERM*, A LOCAL FILE *ZZZZLBT* OF
- * FILE TYPE *LIFT* WILL BE CREATED. THIS FILE POINTS TO THE
- * INTERLOCKED LABEL. *0DF* WILL CLEAR THE INTERLOCK WHEN
- * THE *ZZZZLBT* FILE IS RETURNED.
- TAD ENTRY ENTRY
- LDD MA CREATE THE *ZZZZLBT* FILE
- CWM TADI,ON
- SBN 1
- CRD FN
- TAD0 LDN NEEQ SET THE NULL EQUIPMENT
- STD FS
- LDN 2 RETURN IF NFL INCREASE PENDING
- STM OVL0-1
- EXECUTE 0BF,OVL0
- UJN TAD0.2 CHECK FOR FNT ENTRY CREATED
- * PROCESS DUPLICATE FILE.
- RJM SFB SET FILE BUSY
- NJN TAD0.1 IF FILE BUSY REJECT
- RJM DRF DROP THE FILE
- UJN TAD0 RETRY THE FILE CREATION
- TAD0.1 ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
- TAD0.2 ZJN TAD0.3 IF FNT CREATED
- LDN NFIR
- LJM ERS ENTER PP RECALL STACK
- TAD0.3 LDD FA SAVE THE FNT OFFSET
- STM TADC
- RJM GFE READ FILE NAME
- CRD FN
- RJM VFN VERIFY FILE NAME
- NJN TAD1 IF FILE NAME VERIFIES
- ABORT /MESS/ERFN * SFM FILE NAME ERROR.*
- TAD1 RJM SDT SET DAYFILE TYPE
- LDD CN SET EST ORDINAL FOR NEW DAYFILE
- STD T5
- ADD TH SET MASS STORAGE ASSIGNMENT BY *0BF*
- STD FS
- LDN 0 SELECT NO RETURN WITHOUT FILE CREATED
- STM OVL0-1
- EXECUTE 0BF,OVL0
- UJN TAD4 FNT/FST CREATED
- * PROCESS DUPLICATE FILE.
- NFA FA,R READ FNT ENTRY
- CRD FS
- LDD FS+4 CHECK FILE TYPE
- SHN -6
- LMN LIFT
- NJN TAD3 IF NOT LIBRARY FILE TYPE
- TAD2 LDN 0
- STD FA CLEAR FNT INDEX
- ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
- TAD3 RJM SFB SET FILE BUSY
- NJN TAD2 IF FILE BUSY REJECT
- RJM DRF DROP FILE
- LJM TAD RETRY FUNCTION
- * BUILD DAYFILE SYSTEM SECTOR AND EOI SECTOR.
- TAD4 LDD FA SAVE THE FNT OFFSET
- STM TADT
- LDC 501-DTEI-3*5
- STD T1
- TAD5 LDN 0 CLEAR SYSTEM SECTOR / EOI BUFFER
- STM BFMS+DTEI+3*5,T1
- SOD T1
- PJN TAD5 IF NOT END OF BUFFER
- LDD CN SET EST ORDINAL
- STD T5
- LDD FS+1 SET FIRST TRACK
- NJN TAD6 IF TRACK ASSIGNED
- RJM DRF DROP NEW DAYFILE
- LDM TADC
- STD FA
- RJM DRF DROP *ZZZZLBT* FILE
- ERROR /ERR/TKL EC=2, MASS STORAGE NOT AVAILABLE
- TAD6 STD T6
- LDM TDYN-1,TY SET DAYFILE NAME IN SYSTEM SECTOR
- STM TADA
- LDD MA
- CWM *,ON
- TADA EQU *-1
- SBN 1
- CRM FNSS,ON
- SBN 1 SET DAYFILE NAME IN DAYFILE MESSAGE
- CRM TADF+1,ON
- LDD FA SAVE FNT INDEX
- STM TADB
- NFA FA,R SET FST INFORMATION IN SYSTEM SECTOR
- ADN FSTL
- CRM EQSS,ON
- LDN 0 CLEAR FNT INDEX
- STD FA
- STM FASS
- LDN PDTL SET DATE AND TIME GROUP IN EOI
- CRM BFMS+DTEI,TR
- * WRITE SYSTEM SECTOR AND EOI SECTOR OF NEW DAYFILE.
- SETMS IO
- RJM WSS WRITE SYSTEM SECTOR
- RJM WEI WRITE EOI SECTOR
- ENDMS
- * SET EOI IN TRT AND BUILD FST FOR NEW DAYFILE.
- LDD T5 SET EQUIPMENT
- STD CM+1
- LDD T6 SET FIRST TRACK
- STD FS+2
- LPC 3777
- STD CM+2
- LDD T7 SET SECTOR
- STD FS+3
- STD CM+3
- MONITOR DTKM DROP TRACKS
- RJM WTI SET TRACK INTERLOCK ON NEW DAYFILE
- ZJN TAD7 IF TRACK INTERLOCK SET
- LJM DPP DROP PPU
- * SET TRACK INTERLOCK ON OLD DAYFILE.
- TAD7 RJM SDA READ DAYFILE FST
- CRD FN
- LDD FN SET DAYFILE EST ORDINAL
- STD T5
- LDD FN+1 SET DAYFILE FIRST TRACK
- STD T6
- LDC ** SET FNT INDEX
- TADB EQU *-1 (FNT INDEX)
- STD FA
- RJM STI SET TRACK INTERLOCK
- ZJN TAD9 IF TRACK INTERLOCK SET
- TAD8 LDC ** DROP NEW DAYFILE
- TADT EQU *-1
- STD FA
- RJM DRF
- LDM TADC DROP *ZZZZLBT* FILE
- STD FA
- RJM DRF DROP FILE
- ERROR /ERR/DFB EC=1, DAYFILE BUSY
- * INTERLOCK THE LABEL TRACK TO PREVENT *1CK* FROM UPDATING
- * THE LOCAL AREA SECTOR UNTIL *DFTERM* ISSUES THE *CDBF*
- * FUNCTION. THIS INTERLOCK IS NECESSARY ONLY WHEN ANOTHER
- * *DFTERM* IS EXECUTING AND IS TERMINATING ANOTHER DAYFILE
- * ON THE SAME DEVICE.
- TAD9 RJM LLT LOCATE LABEL TRACK
- STD T2
- RJM WTI SET LABEL TRACK INTERLOCK
- ZJN TAD10 IF LABEL TRACK INTERLOCK SET
- LDD FN CLEAR TRACK INTERLOCK ON OLD FILE
- STD T5
- LDD FN+1
- RJM CTI CLEAR TRACK INTERLOCK
- UJN TAD8 DROP NEW FILE
- TAD10 LDC ** COMPLETE THE *ZZZZLBT* FILE
- TADC EQU *-1
- STD T1
- NFA T1,R
- ADK FNTL
- CRD CM
- ADN FSTL-FNTL
- CRD CN
- LDD T5 SET THE EST ORDINAL
- STD CN
- LDD T2 SET THE LABEL TRACK
- STD CN+1
- STD CN+2
- LDC 1005 SET THE TRACK INTERLOCK FLAG
- STD CN+4
- LDC LIFT*100 SET LIBRARY FILE TYPE
- STD CM+4
- NFA T1,R
- ADK FNTL
- CWD CM
- ADN FSTL-FNTL
- CWD CN
- * BUILD FNT FOR OLD DAYFILE.
- NFA FA,R READ FNT
- CRD CN
- LDC LIFT*100+SSST SET LIBRARY FILE TYPE
- STD CN+4
- LDD CN+3 SET WRITE LOCKOUT
- SCN 77
- LMN 1
- STD CN+3
- * SET TIME IN CREATION MESSAGES FOR NEW DAYFILE.
- LDN TIML SET TIME
- CRM TADD,ON
- * TERMINATE OLD DAYFILE.
- LDC 2RTE RESET MESSAGE
- STM TADF+5
- LDD TY
- LMN ERLF
- NJN TAD11 IF NOT ERRLOG TERMINATION
- LDC 2R
- UJN TAD12 SET BLANKS
- TAD11 LDM TADF+4
- SCN 77
- LMN 1R
- TAD12 STM TADF+4
- LDC TADF
- RJM DFM ISSUE MESSAGE TO SYSTEM DAYFILE
- LDM TDMO-1,TY SET PROCESSOR ADDRESS
- STD T1
- LJM 0,T1 SET PROCESSOR ADDRESS
- TAD13 LDC JNMN+TADE TERMINATE SYSTEM DAYFILE
- UJN TAD15 ISSUE MESSAGE
- TAD14 LDC EJNN+TADE TERMINATE ERRLOG DAYFILE
- TAD15 RJM FDB FLUSH DAYFILE BUFFER
- LDN 2 SET *CREATION DATE* IN MESSAGE
- STD T1
- LDD MA
- CWM TADH,T1
- SBD T1
- CRM TADF+5,T1
- LDN DTEL SET DATE
- CRM TADG,ON
- LDN 6
- UJN TAD17 WRITE CREATION MESSAGE TO BUFFER
- TAD16 LDN TADML SET MESSAGE LENGTH
- STD CM+1
- LDC BMLN+TADM TERMINATE MAINTENANCE LOG
- RJM FDB
- LDC DS0101 SET MAINTENANCE LOG CREATION SYMPTOM
- STM TADM+1
- LDN 2
- STD T1
- LDD MA MOVE MESSAGE
- CWM TADM,T1
- SBN 2
- CRM TADF,T1
- LDN PDTL SET DATE AND TIME IN MESSAGE
- CRM TADD,ON
- LDN 4 SET MESSAGE LENGTH
- STM TADD
- TAD17 UJN TAD19 WRITE CREATION MESSAGE TO BUFFER
- TAD18 LDN DTEL TERMINATE ACCOUNT DAYFILE
- CRM TADL,ON
- LDN 2 MOVE ACCOUNT MESSAGE
- STD T1
- LDD MA
- CWM TADK,T1
- LDD MA
- CRM TADF,T1
- LDC AJNN+TADE
- RJM FDB FLUSH DAYFILE BUFFER
- LCN 1RE-1RB SET *ABSY* IN MESSAGE
- RAM TADF
- LDN 4
- TAD19 STD T1 SAVE WORD COUNT
- LDC 2R
- STD CM
- LDD MA SET JOB NAME IN CREATION MESSAGES
- CWM TADE,ON
- SBN 1
- CRD CM+1
- CWD CM
- CRM TADE,ON
- * SET NEW DAYFILE FST AND WRITE MESSAGE TO BUFFER.
- RJM SDA SET DAYFILE FST ADDRESS
- SBN 1 READ DAYFILE OUT POINTER
- CRD CM
- SBN 1 READ IN POINTER
- CRD ES
- LDD TY SET BUFFER INDEX
- SHN 6
- LMN 3 CLEAR BUFFER INTERLOCK
- STD FS+4
- LDN 0 SET OUT = FIRST
- STD CM+4
- LDD T1 SET IN
- STD ES+4
- LDD ES+2 CLEAR THE THRESHOLD INCREMENT
- SCN 7
- STD ES+2
- LDD ES WRITE CREATION MESSAGE TO BUFFER
- SHN 14
- ADD ES+1
- CWM TADD,T1
- LDM TDMP-1,TY SET PROCESSOR ADDRESS
- STD T4
- LJM 0,T4 PROCESS APPROPRIATE DAYFILE
- TAD20 LDN 7 SET BML MESSAGE LENGTH
- STD T3
- STM TADD
- LDN ZERL CLEAR BML MESSAGE AREA
- CRM TADF,ON
- LDC DM0400 SET SYSTEM CREATION INFORMATION ID
- STM TADF
- LDC SS0100 SET SYSTEM TITLE SYMPTOM
- STM TADF+1
- LDC TADF+5 SET INFORMATION READ ADDRESS
- UJN TAD22 SAVE MESSAGE ADDRESS
- TAD21 LCN 1RY-1RT CHANGE ACCOUNT MESSAGE TO *ABST*
- RAM TADF+1
- LDN ZERL TERMINATE LINE
- CRM TADF+4*5,ON
- LDC TADF+3 SET INFORMATION READ ADDRESS
- TAD22 STM TADQ
- STM TADR
- TAD23 LDN 4 READ SYSTEM TITLE
- STD T4
- LDN SYTL
- CRM TADF,T4
- TADQ EQU *-1
- RJM CML DETERMINE MESSAGE LENGTH
- RJM BWA DETERMINE BUFFER ADDRESS
- CWM TADD,T3 WRITE MESSAGE TO BUFFER
- LDD TY
- LMN BMLF
- NJN TAD24 IF NOT BML
- LDN 5 SET BML MESSAGE LENGTH
- STD T3
- STM TADD
- LDC SS0101 SET SYSTEM VERSION SYMPTOM
- STM TADF+1
- UJN TAD25 PROCESS SYSTEM VERSION
- TAD24 LMN BMLF&ACCF
- NJN TAD25 IF NOT ACCOUNT FILE
- LDN 1RV-1RT CHANGE ACCOUNT MESSAGE TO *ABSV*
- RAM TADF+1
- LDN ZERL TERMINATE LINE
- CRM TADF+2*5,ON
- TAD25 LDN 2 READ SYSTEM VERSION
- STD T4
- LDN SVNL
- CRM TADF,T4
- TADR EQU *-1
- RJM CML DETERMINE MESSAGE LENGTH
- RJM BWA DETERMINE BUFFER WORD ADDRESS
- CWM TADD,T3 WRITE MESSAGE TO BUFFER
- RJM SDA SET DAYFILE POINTER ADDRESS
- SBN 2
- CWD ES
- ADN 1
- CWD CM
- ADN 1 STORE BUFFER STATUS
- CWD FS
- * WRITE FNT/FST ATTACHING OLD DAYFILE TO CONTROL POINT.
- LDC 1005 SET TRACK INTERLOCK AND NOT BUSY
- STD FN+4
- NFA FA,R STORE FNT ENTRY
- CWD CN
- ADN FSTL
- CWD FN
- LDD TY
- LMN ERLF
- ZJN TAD26 IF ERRLOG
- LMN ERLF&BMLF
- NJN TAD27 IF NOT BML
- AOM TADS
- TAD26 LDN ESTP GET NUMBER OF MASS STORAGE DEVICES+1
- CRD CM
- LDD CM+3
- STD LO
- LDC OVL0 SET MASS STORAGE LOAD ADDRESS
- STD LA
- TADS LDN 1 ISSUE MESSAGE TO ERRLOG
- * LDN 2 ISSUE MESSAGE TO BML
- RJM IME PROCESS MASS STORAGE
- TAD27 LDN 0 CLEAR FNT INDEX
- STD FA
- LJM SFMX RETURN
- * DAYFILE MESSAGES.
- TADD DATA H* HH.MM.SS.*
- TADE VFD 24/4L"SJSN",24/4HS. ,12/SYSC
- TADF DATA C* XXXXXXX TERMINATED.*
- TADG DATA C* YY/MM/DD. *
- TADH DATA H* CREATION DATE *
- TADK DATA H*AESY, *
- TADL DATA C* YY/MM/DD. *
- TADI VFD 42/0LZZZZLBT,18/0
- TADM CON DM0406,DS0103 MAINTENANCE LOG MESSAGE
- BSSZ TADM+2*5-*
- TADML EQU *-TADM LENGTH OF MAINTENANCE LOG MESSAGE
- TDMO SPACE 4,10
- ** TDMO - TABLE OF DAYFILE MESSAGE OPTIONS.
- *
- * THIS TABLE IS USED TO ISSUE THE TERMINATING
- * DAYFILE MESSAGE TO THE CORRECT DAYFILE.
- TDMO BSS 0
- LOC SDAY
- CON TAD13 SYSTEM DAYFILE
- CON TAD18 ACCOUNT DAYFILE
- CON TAD14 ERRLOG DAYFILE
- CON TAD16 MAINTENANCE LOG
- LOC *O
- TDMP SPACE 4,10
- ** TDMP - TABLE OF DAYFILE MESSAGE PROCESSOR OPTIONS.
- *
- * THIS TABLE IS USED TO ISSUE THE SYSTEM TITLE
- * AND VERSION TO THE CORRECT DAYFILE.
- TDMP BSS 0
- LOC SDAY
- CON TAD23 SYSTEM DAYFILE
- CON TAD21 ACCOUNT DAYFILE
- CON TAD23 ERRLOG DAYFILE
- CON TAD20 MAINTENANCE DAYFILE
- LOC *O
- BWA SPACE 4,10
- ** BWA - GET BUFFER WORD ADDRESS.
- *
- * ENTRY (ES - ES+4) = FWA OF DAYFILE BUFFER POINTER.
- * (T3) = LENGTH OF MESSAGE.
- *
- * EXIT (A) = ADDRESS OF FREE BUFFER WORD.
- * (ES+4) = WORD COUNT UPDATED.
- *
- * USES ES+4.
- BWA SUBR ENTRY/EXIT
- LDD T3 LENGTH OF MESSAGE
- RAD ES+4 UPDATE WORD COUNT
- LDD ES
- SHN 14
- ADD ES+1
- ADD ES+4 ADD TO IN POINTER
- SBD T3
- UJN BWAX RETURN
- CML SPACE 4,10
- ** CML - CHECK MESSAGE LENGTH.
- *
- * ENTRY (TY) = TYPE OF DAYFILE.
- *
- * EXIT (T3) = MESSAGE LENGTH IF NOT BML.
- *
- * USES T3, T4.
- CML SUBR ENTRY/EXIT
- LDD TY CHECK DAYFILE TYPE
- LMN BMLF
- ZJN CMLX IF BML
- LDC TADF+4 FIRST WORD TO CHECK FOR END
- STD T4
- LDN 3 PRESET MESSAGE LENGTH
- STD T3
- CML1 LDI T4
- ZJN CMLX IF END OF MESSAGE
- AOD T3 INCREMENT MESSAGE LENGTH
- LDN 5 INCREMENT END OF MESSAGE ADDRESS
- RAD T4
- UJN CML1 CHECK NEXT CM WORD
- SPACE 4,10
- * COMMON DECKS.
- LIST X
- *CALL COMPPDI
- LIST *
- SPACE 4,10
- ERRNG OVL0-* OVERFLOW INTO OVERLAY LOAD AREA
- SPACE 4,10
- OVERFLOW OVLA,EPFW
- TTL SFM - SYSTEM FILE MANAGER.
- SPACE 4
- END
cdc/nos2.source/opl871/sfm.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator