IDENT SFP,SFP PERIPH BASE MIXED QUAL$ EQU 1 DEFINES UNQUALIFIED COMMON DECKS SST SYSCOM *COMMENT SFP - SCOPE FUNCTION PROCESSOR. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE SFP - SCOPE FUNCTION PROCESSOR. SPACE 4,10 ***** SFP - SCOPE FUNCTION PROCESSOR. * D. J. TAYLOR. 72/09/27. SPACE 4,10 *** *SFP* IS A FUNCTION PROCESSOR WHICH IS CALLED BY THE * PPR SUBROUTINE *PLL* WHENEVER *PLL* IS UNABLE TO FIND A * REQUESTED PP PROGRAM. *SFP* WILL CHECK THE REQUESTED PP * PACKAGE AGAINST A TABLE OF ACCEPTABLE PP PACKAGE CALLS AND, * IF LEGAL, WILL CALL THE ASSOCIATED FUNCTION PROCESSOR TO * PROCESS THE REQUEST. THE FUNCTION PROCESSORS ARE DESIGNED * TO PROVIDE *SCOPE 3.4* CAPABILITY. SPACE 4,10 *** CALL. * * * *SFP* IS CALLED DIRECTLY BY THE PPR SUBROUTINE *PLL*. SPACE 4,10 *** ENTRY CONDITIONS. * * * (IR - IR+4) = ORGINAL PP PROGRAM CALL. * (PLLA - PLLA+1) = PP PACKAGE BEING CALLED. SPACE 4,10 *** FUNCTIONS. * * THE FOLLOWING ARE THOSE PP PACKAGES WHO HAVE A ASSOCIATED * FUNCTION PROCESSOR - * * STS - *SCOPE 3.4* STATUS PACKAGE * MSD - *SCOPE 3.4* SDA/SIS MESSAGE GENERATOR * PFE - *SCOPE 3.4* EXTEND/ALTER FUNCTION * ACE - *SCOPE 3.4* ADVANCE COMMAND. * CKP - *SCOPE 3.4* CHECKPOINT * REQ - *SCOPE 3.4* REQUEST CALL * DMB - DUMP CM/EXTENDED MEMORY FIELD LENGTH IN BINARY. * DMM - DUMP MACHINE MEMORY. * DMP - DUMP FIELD LENGTH * DMD - DUMP FIELD LENGTH - DISPLAY CODE * DEP - DUMP EXTENDED MEMORY FIELD LENGTH * DED - DUMP EXTENDED MEMORY FIELD LENGTH - DISPLAY CODE * PRM - *SCOPE 3.4* PERMISSION CHECKING FUNCTION * D00 - *SCOPE 3.4* ERROR TEXT PROCESSOR SPACE 4,10 *** DAYFILE MESSAGES. * * * *XXX NOT IN PP LIB.* * THE PP PACKAGE, XXX, WAS NOT FOUND IN THE PPU * LIBRARIES. * * *XXX NOT IN PP LIB. CALLED BY YYY.* * THE PP PACKAGE, XXX, WAS CALLED BY THE PP PROGRAM, * YYY, AND WAS NOT FOUND IN THE PPU LIBRARIES. * * * SFP CALL ERROR.* * *SFP* WAS CALLED DIRECTLY AND NOT BY *PLL*. * * * SFP/XXX PARAMETER ERROR.* * THE PARAMETER ADDRESS SPECIFIED IN THE INPUT REGISTER * IS OUT OF RANGE. THE PROGRAM BEING CALLED IS XXX. * * *MONITOR CALL ERROR.* * THIS MESSAGE IS DETECTED BY *SFP* BUT IS ISSUED BY * *1AJ*. SPACE 4,10 * COMMON DECKS. *CALL COMPMAC *CALL COMSCPS *CALL COMSMSC *CALL COMSMSP QUAL COMSMTX *CALL COMSMTX QUAL * *CALL COMSPIM *CALL COMSWEI TITLE MACRO DEFINITIONS. EMESS SPACE 4,20 ** EMESS - GENERATE ERROR MESSAGE * * EMESS TYPE,KEY,ERR,COM,RET,CODE,(MESSAGE) * * TYPE ERROR TYPE. MUST BE EITHER *FA* - FATAL OR * *TR* - TRIVAL. * * KEY KEY PROCESSING. MUST BE EITHER *KY* - KEY * PROCESSING REQUIRED, OR *NK* - NO KEY * PROCESSING REQUIRED. * * ERR MESSAGE CODE ORDINAL MINUS TABLE OFFSET. THIS * PARAMETER MUST BE 3 CHARACTERS LONG IN MACRO * CALL. * * COM COMMENT TO ERROR FILE. MUST BE EITHER *CM* - * COMMENT TO ERROR FILE, OR *NC* - NO COMMENT TO * ERROR FILE. * * RET RETURN FLAG. MUST BE EITHER *RT* - USER EXITS * ROUTINE AT ENTRY POINT, OR *NR* - USER EXITS * BY A JUMP INSTRUCTION. * * CODE RETURN CODE. A FOUR LETTER RETURN CODE * INFORMING THE USER OF AN ERROR. * * MESSAGE ERROR MESSAGE. NO LEADING BLANKS ALLOWED. * IF FIRST CHARACTER A BLANK, MESSAGE MUST * START IN COLUMN 2 OF A FOLLOWING CONTINUATION * COMMAND. PURGMAC EMESS EMESS MACRO TY,KE,ER,CT,RC,CD,MS .K MICRO 1,1,*MS* IFC NE,*".K"* * .K MICRO 1,,*MS* ELSE 4 .K MICRO 34,1,*MS* IFC EQ,*".K"**,1 ERR * -MESSAGE- NOT STARTED IN COL 2 OF CONT. LINE.* .K MICRO 34,,*MS* IFC EQ,*TY*FA* VFD 1/1 ELSE 3 IFC NE,*TY*TR*,1 ERR * INCORRECT -TYPE- PARAMETER.* VFD 1/0 IFC EQ,*KE*KY* VFD 1/1 ELSE 3 IFC NE,*KE*NK*,1 ERR * INCORRECT -KEY- PARAMETER.* VFD 1/0 IFC EQ,*ER**,1 ERR * UNDEFINED -ERR- PARAMETER.* VFD 9/ER IFC EQ,*CT*CM* VFD 1/1 ELSE 3 IFC NE,*CT*NC*,1 ERR * INCORRECT -COM- PARAMETER.* VFD 1/0 IFC EQ,*RC*RT* VFD 1/0 ELSE 3 IFC NE,*RC*NR*,1 ERR * INCORRECT -RET* PARAMETER.* VFD 1/1 IFC EQ,*CD**,1 ERR * UNDEFINED -CODE- PARAMETER.* VFD 2/0 VFD 9/CD DATA C*".K"* EMESS ENDM ENTRY SPACE 4,10 ** ENTRY - DEFINE OVERLAY ENTRY POINT. * * ENTRY NAME * * NAME NAME OF ENTRY ADDRESS PURGMAC ENTRY ENTRY MACRO NAME QUAL NAME EQU *+1R".M"*10000 QUAL ".O" ENTRY ENDM FCN SPACE 4,10 ** FCN - DEFINE FUNCTION PROCESSOR. * * * CALL FCN NAME,CHECK * * CALL NAME OF CALLING PP PACKAGE. * * NAME NAME OF ASSOCIATED FUNCTION PROCESSOR. * * CHECK IF DEFINED, A VALID PARAMETER ADDRESS IS * CONTAINED IN BITS 0 - 17 OF CALL. PURGMAC FCN MACRO FCN,A,B,C NOREF .I .I SET 0 LOC .I/3 IFC EQ,*C** VFD 1/1 ELSE 1 VFD 1/0 VFD 5/B/10000 .J MICRO 1,,*A* VFD 18/3L".J" CON B-B/10000*10000 .I SET .I+3 ENDM LDA SPACE 4,10 ** LDA - FORM ABSOLUTE CM ADDRESS. * * LDA X,M * * X DIRECT CELLS CONTAINING RELATIVE ADDRESS * * M IF SPECIFIED, ONLY LOWER 17 BITS OF (X - X+1) * ARE USED. PURGMAC LDA LDA MACRO X,M LDD X IFC NE,*M**,1 LPN 37 SHN 6 ADD RA SHN 6 ADD X+1 LDA ENDM OVERLAY SPACE 4,10 ** OVERLAY - GENERATE OVERLAY CONSTANTS. * * OVERLAY (TEXT) * * TEXT TEXT OF SUBTITLE. PURGMAC OVERLAY * OVERLAY CONTROL. .N SET 0 OVLB MICRO 1,, 2S BASE OVERLAY NAME OVERLAY MACRO TEXT QUAL .N SET .N+1 .M MICRO .N,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 .O MICRO 1,3, "OVLB"".M" QUAL ".O" TTL SFP/".O" - TEXT TITLE IDENT ".O",OVL TEXT *COMMENT SFP - TEXT COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. ORG OVL LJM * UJN *-2 OVERLAY ENDM TITLE DIRECT LOCATION ASSIGNMENTS. * DIRECT LOCATION ASSIGNMENTS. FS EQU 20 - 24 FST ENTRY (5 LOCATIONS) CN EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS) PN EQU 35 - 36 PACKAGE NAME (2 LOCATIONS) PI EQU 37 PARAMETER AREA INDEX EI EQU 46 ERROR NUMBER OC EQU 47 JOB ORGIN CODE FN EQU 40 - 44 FILE NAME (5 LOCATIONS) FA EQU 57 ADDRESS OF FNT ENTRY SP EQU 60 - 64 COMMAND POINTER (5 LOCATIONS) SFP TITLE MAIN PROGRAM. ** MAIN PROGRAM. ORG PPFW SFP PSN ENTRY FROM *PPR* PSN SPACE FOR RETURN JUMP FROM *EXR* RJM PRS PRESET (ENTRY FROM *EXR*) SFP1 LDC 0 SFPA EQU *-1 (OVERLAY NAME) ZJN SFP2 IF NO OVERLAY REQUIRED LMC 2L"OVLB" LOAD OVERLAY RJM EXR SFP2 LJM * PROCESS REQUEST SFPB EQU *-1 SFPX MONITOR DPPM DROP PP LJM PPR EXIT TO PP RESIDENT ERR SPACE 4,10 ** ERR - PROCESS ERROR. * * ENTRY (A) = ERROR NUMBER. ERR STD EI LDC ERP STM SFPB SET ERROR PROCESSING ENTRY SHN -14 STM SFPA SET OVERLAY NAME UJN SFP1 LOAD ERROR PROCESSING OVERLAY ERRA BSS 5 STORAGE FOR ERROR TEXT DECK NAME ERRB BSS 1 STORAGE FOR ERROR TEXT MESSAGE NUMBER MSR SPACE 4,10 ** MSR - PROCESS MASS STORAGE ERROR. * * ENTRY (T5) = EST ORDINAL OF DEVICE WITH ERROR. * * EXIT TO *SFPX* IF ERROR IS NOT RECOVERABLE OR ROLLABLE. * TO *1RJ* TO ROLL JOB IF ERROR IS RECOVERABLE AND * JOB IS ROLLABLE. MSR BSS 0 ENTRY LDM RDCT CHECK FOR NON-RECOVERABLE ERROR SHN 21-12 MJN MSR1 IF NON-RECOVERABLE MASS STORAGE ERROR LDM MSD CHECK FOR SUBSYSTEM SHN 21-13 PJN MSR1 IF SUBSYSTEM, RETURN ERROR LDD T5 EST ORDINAL OF DEVICE STD IR+4 EXECUTE 1RJ ROLL JOB * LJM PPR DOES NOT RETURN MSR1 MONITOR ABTM ABORT CONTROL POINT LJM PPR EXIT USE OVERLAY OVL EQU *+10 TITLE SUBROUTINES WHICH MAY BE OVERLAID. PRS SPACE 4,30 ** PRS - PRESET PROGRAM. * * CHECKS THE PP PACKAGE FOR WHICH *PLL* COULD NOT FIND * THE ASSOCIATED ROUTINE AGAINST A TABLE OF SPECIAL FUNCTIONS * ACCEPTABLE. IF PACKAGE ACCEPTABLE AS SPECIAL FUNCTION, A * CHECK IS PERFORMED FOR VALID FUNCTION CODE AND PARAMETER * ADDRESS WITHIN USER AREA. * * ENTRY (IR) = ADDRESS OF REQUESTING PP PROGRAM. * (PLLA) = FIRST CHARACTER OF PP PACKAGE BEING CALLED. * (PLLB) = SECOND AND THIRD CHARACTERS OF PACKAGE NAME. * * EXIT *SFPA* = FUNCTION PROCESSOR NAME. * *SFPB* = FUNCTION PROCESSOR ENTRY ADDRESS * (PN - PN+1) = PACKAGE NAME. * * USES T6, PN - PN+1. * * MACROS PAUSE. PRS SUBR ENTRY/EXIT LDM PLLA STORE PACKAGE NAME STD PN LDM PLLB STD PN+1 * CHECK FOR LEGAL PP PACKAGE CALL. LDC TFCN-3 SET START OF FUNCTION TABLE STD T6 PRS1 LDN 3 ADVANCE TABLE ADDRESS RAD T6 LDI T6 LPN 77 ZJN PRS4 IF NOT IN TABLE LMD PN COMPARE NAME SHN 14 LMM 1,T6 LMD PN+1 NJN PRS1 IF NO MATCH * SET PROCESSOR PARAMETERS. LDM 2,T6 SET PROCESSOR ADDRESS STM SFPB LDI T6 SET OVERLAY SHN -6 LPN 37 STM SFPA LDI T6 CHECK PARAMETER PRESENT SHN -13 NJN PRS5 IF NO PARAMETER CHECK LDD IR+3 CHECK PARAMETER ADDRESS LPN 77 SHN 14 LMD IR+4 SHN -1 ZJN PRS3 IF INCORRECT REQUEST SHN -5 SBD FL MJN PRS5 IF ADDRESS IN FL PRS3 LDN /ERR/PAE&/ERR/PCE *SFP/XXX PARAMETER ERROR.* PRS4 LMN /ERR/PCE *MONITOR CALL ERROR.* LJM ERR PRS5 LJM PRSX RETURN TFCN SPACE 4,10 ** TFCN - TABLE OF FUNCTION CODE PROCESSORS. * * ENTRY 3 WORDS. * *T 1/ C,5/ OV,18/ PP PACKAGE,12/ ADDR * * PP PACKAGE - NAME OF LEGAL PP PACKAGE CALL * OV OVERLAY NAME * ADDR ADDRESS OF FUNCTION PROCESSOR * C 0 IF TO CHECK PARAMETER ADDRESS TFCN BSS 0 STS FCN STS,C STATUS PROCESSOR MSD FCN EMG,C SDA/SIS MESSAGE GENERATOR PFE FCN PFE,C *ALTER* FUNCTION ACE FCN ACE,C ADVANCE COMMAND PRM FCN PRM,C PERMISSION CHECKING FUNCTION CKP FCN CKP *SCOPE 3.4* CHECKPOINT REQUEST REQ FCN REQ,C *SCOPE 3.4* REQUEST DMB FCN DMP DUMP CM/ECS FIELD LENGTH REQUEST - BINARY DMM FCN DMP DUMP MACHINE MEMORY REQUEST DMP FCN DMP DUMP FIELD LENGTH REQUEST DMD FCN DMP DUMP FIELD LENGTH REQUEST - DISPLAY CODE DEP FCN DEP DUMP EXTENDED MEMORY FIELD LENGTH REQUEST DED FCN DEP DUMP ECS FL REQUEST - DISPLAY CODE D00 FCN D00,C ERROR TEXT PROCESSOR FIN FCN FIN,C FILE INFORMATION REQUEST SFP FCN ERR DETECT INCORRECT DIRECT CALL ERRNZ /ERR/SCE-0 INSURE DIRECT CALL ERROR IS ZERO LOC *O CON 0 TERMINATE TABLE OVERFLOW OVERLAY (STS - STATUS PROCESSOR.) STE SPACE 4 ENTRY STS ENTRY LDA IR+3 CRD SP READ STATUS HEADER LDN 0 STD SP+2 CLEAR RETURN LENGTH LDD SP+1 NJN STS2 IF LIST LENGTH .NE. 0 STS1 LDN /ERR/PAE LJM ERR *PARAMETER ERROR* STS2 LDD IR+3 SHN 14 LMD IR+4 ADD SP+1 CHECK LIST LENGTH ADN 1 SHN -6 SBD FL PJN STS1 IF END OF LIST BEYOND FL LDD IR+2 NJN STS4 IF FUNCTION CODE .NE. 0 STS3 LDN /ERR/IAF * SFP/STS INCORRECT FUNCTION CODE.* LJM ERR PROCESS ERROR STS4 SBN TSTSL PJN STS3 IF FUNCTION OUT OF RANGE LDM TSTS-1,IR+2 STD T2 SET PROCESSOR ADDRESS LJM 0,T2 ** TSTS - TABLE OF STS FUNCTIONS PROCESSORS. * *T 12/ ADDR * * ADDR FUNCTION ADDRESS TSTS BSS 0 LOC 1 CON STE CON STF CON STP TSTSL EQU * *TSTS* TABLE LENGTH LOC *O SES SPACE 4,10 ** SES - SET EXIT STATUS. * * EXIT FUNCTION SET COMPLETE. * * USES SP+4. * * MACROS LDA. SES LDN 1 STD SP+4 SET FUNCTION COMPLETE LDA IR+3 CWD SP LJM SFPX RETURN EJECT STE SPACE 4,30 *** FUNCTION 01 - RETURN MASS STORAGE DEVICES STATUS. * * RETURNS STATUS OF MASS STORAGE DEVICES STARTING AT * ADDRESS+1 OF ADDRESS CONTAINED IN BITS 0 - 17 OF PROGRAM * CALL. RETURN AREA IS DEFINED BY ADDRESS - * * *T ADR 12/ ,12/ LL,12/ LR,23/ ,1/A * * LL NUMBER OF WORDS, EXCLUDING THIS HEADER WORD, TO BE * USED FOR RETURN INFORMATION; MUST BE SET BY USER TO * OTHER THAN 0. * * LR NUMBER OF STATUS WORDS RETURNED. * * A AUTO RECALL REPLY; SET TO 0 BY USER AND SET TO 1 WHEN * REQUEST IS COMPLETE. * * * THE MASS STORAGE DEVICE STATUS IS RETURNED, 1 WORD * PER DEVICE, IN THE FOLLOWING FORMAT - * * *T ADR+N 3/ ,9/ STATUS,12/ DEV TYPE,12/ EST ORD,6/ CHAN,6/ EQ,12/ PRUS * * STATUS 000 - NOT AVAILABLE, OFF, NOT IN USE * 040 - UNLOADED PACK * 120 - *NOS* SYSTEM ROUTINES * 140 - *NOS* SYSTEM ROUTINES ON PACK * 620 - CONTAINS PERMANENT FILES * 640 - PACK WITH PERMANENT FILES * 700 - *NOS* SYSTEM AND PERMANENT FILES * 740 - *NOS* SYSTEM AND PERM FILES ON PACK * * DEV TYPE *SCOPE 3.4* HARDWARE MNEMONIC IN DISPLAY CODE. * AZ - 844-41 DISK SYSTEM * * PRUS NUMBER OF PRUS/100 OCTAL OF SPACE REMAINING ON THE * DEVICE. A VALUE OF 7777 INDICATES AT LEAST 262,100 * PRUS AVAILABLE. STE BSS 0 ENTRY LDC =C$ **** ENDING SUPPORT OF STS FUNCTION 01 ****.$ RJM DFM LDN ESTP CRD T6 READ EST POINTER LDD T6+3 SET LAST MASS STORAGE ORDINAL + 1 STD T7 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH STD CN+2 STE1 ZJN SES IF END OF LIST STE2 AOD CN+2 LMD T7 ZJN SES IF END OF MS ENTRIES SFA EST,CN+2 READ EST ENTRY ADK EQDE CRD CM LDD CM CHECK MS DEVICE SHN 21-13 PJN STE2 IF NOT MASS STORAGE SHN 13-6 PJN STE3 IF DEVICE AVAILABLE LDN 0 STE3 SHN -1 FORM INDEX TO STATUS TABLE LPN 5 STD T2 LDD CM+4 CHECK PERMANENT FILE STATUS SHN 3 ADN PUGL CRD FN LDD FN+3 LPN 17 ADD FN+4 ZJN STE4 IF NOT A PERMANENT FILE DEVICE LDN 2 RAD T2 STE4 LDM TSTE,T2 SET DEVICE STATUS STD CN LDD CM+2 LPC 7000 EXTRACT EQUIPMENT SHN 3 LMD CM+1 MERGE CHANNEL SHN 6 STD CN+3 STORE CHANNEL/EQUIPMENT RJM SDT STD CN+1 SET DEVICE MNEMONIC LDD CM LPN 3 ZJN STE5 IF DEVICE LOGICALLY *ON* LDN 0 STD CN CLEAR STATUS BYTE STE5 LDD CM+4 SHN 3 READ MST FOR DEVICE ADK TDGL CRD CM LDD CM SHN 14 FORM AVAILABLE SECTOR COUNT LMD CM+1 SHN -6 SECTOR COUNT / 100B STD CN+4 AOD SP+2 BUMP WORDS RETURNED COUNT LDA IR+3 ADD SP+2 COPY ENTRY TO CM CWD CN LDD SP+1 CHECK FOR END OF LIST LMD SP+2 LJM STE1 LOOP TSTE CON 0 TABLE OF DEVICE STATUS RETURNED LOC 0 VFD 12/0040 UNLOAD PACK VFD 12/0620 CONTAINS PERMANENT FILES VFD 12/0640 PACK WITH PERMANENT FILES VFD 12/0120 *NOS* SYSTEM ROUTINES VFD 12/0140 *NOS* SYSTEM ROUTINES ON PACK VFD 12/0700 *NOS* SYSTEM AND PERMANENT FILES VFD 12/0740 *NOS* SYSTEM AND PERM FILES ON PACK LOC *O STF SPACE 4,30 *** FUNCTION 02 - RETURN FILE STATUS. * * RETURNS TO THE CALLING PROGRAM THE FNT/FST ENTRIES * OF FILES REQUESTED WHOSE NAMES ARE SET IN EVERY THIRD * LOCATION STARTING WITH PARM+1 OF ADDRESS CONTAINED IN THE * *PARM* FIELD OF THE CALLING PROGRAM. IF THE FILE EXISTS, * THE FILE NAME WILL BE REPLACED BY THE FNT/FST OF *NOS* * MAPPED INTO THE *SCOPE 3.4* FNT/FST. IF THE FILE * DOES NOT EXIST, THE FILE NAME WILL BE ZEROED OUT. * * FORMAT OF LOCATION POINTED TO BY *PARM* - * * *T PARM 12/ ,12/ LL,12/ LR,23/ ,1/A * * LL NUMBER OF WORDS, EXCLUDING THIS HEADER WORD, TO BE * USED FOR RETURN INFORMATION; MUST BE SET BY USER TO * A MULTIPLE OF THREE. * * LR LENGTH OF STATUS AREA RETURNED. * * A AUTO RECALL REPLY - SET TO ZERO BY USER AND SET TO ONE * WHEN REQUEST IS COMPLETE. * * FORMAT OF MAPPED 3 WORD *NOS* FNT/FST. * *T 42/ FILE NAME, 18/ 0 *T, 12/ DEVT, 48/ 0 *T, 36/ 0, 4/ PERM, 20/ 0 STF BSS 0 ENTRY LDN SSTL CHECK LOGGING ENABLED CRD CM LDD CM+3 SHN 21-4 MJN STF0 IF ANALYST LOGGING DISABLED LDC =C$ **** USE *FILINFO* IN PLACE OF *STS* CALL ****.$ RJM DFM STF0 LCN 1 INITIALIZE PARAMETER INDEX STD PI STF1 LDN 3 ADVANCE PARAMETER INDEX RAD PI LDA IR+3 ADD PI READ FILE NAME CRD FN RJM SAF SEARCH FOR ASSIGNED FILE NJN STF3 IF FILE FOUND LDN ZERL CRD FN CRD FS CLEAR FNT/FST RETURN CRD CN STF2 LDA IR+3 ADD PI CWD FN WRITE FNT TO CENTRAL ADN 1 CWD FS COPY FST ADN 1 CWD CN LDN 3 ADVANCE WORDS RETURNED COUNT RAD SP+2 ADN 2 CHECK - END OF PARAMETER AREA SBD SP+1 MJN STF1 IF NOT END OF PARAMETER AREA LJM SES SET ERROR STATUS STF3 NFA FA,R CRD FN READ FNT ADN FSTL CRD FS READ FST LDD FN+3 LPN 77 SAVE FILE CONTROL BITS STD T7 LMD FN+3 CLEAR CONTROL BITS FROM FNT STD FN+3 LDN 0 CLEAR REMAINING DATA STD FN+4 LDD FS SFA EST READ EST ENTRY FOR DEVICE ADK EQDE CRD CM RJM SDT TRANSLATE DEVICE MNEMONIC/TYPE STD T4 SET DEVICE MNEMONIC SHN -14 STD T3 LDD T4 LMC 2RNT ZJN STF6 IF 9 TRACK TAPE LMC 2RMT&2RNT NJN STF9 IF NOT TAPE STF6 LDD FS+2 CHECK TAPE FORMAT SHN -10 LMN /COMSMTX/TFSI ZJN STF8 IF SI FORMAT LMN /COMSMTX/TFI&/COMSMTX/TFSI ZJN STF8 IF *I* FORMAT LMN /COMSMTX/TFS&/COMSMTX/TFI ZJN STF7 IF S FORMAT LMN /COMSMTX/TFL&/COMSMTX/TFS NJN STF8 IF NOT *L* TAPE LDN 20 STF7 ADN 40 STF8 ADC 4002 FORCE DENSITY TO 800 BPI ALWAYS STD FS LDD T3 SET NT/MT BIT LPC 100 RAD FS LDD FS+4 SET LABELED FLAG SHN -13 SHN 2 RAD FS UJN STF10 CONTINUE STF9 LDD T3 SHN 6 STD FS STORE DEVICE TYPE STF10 LDN 0 CLEAR DATA FIELDS STD FS+1 STD FS+2 STD FS+3 STD FS+4 LDN ZERL CRD CN LDD T7 CHECK FILE CONTROL BITS LPN 35 ZJN STF14 IF NO CONTROLS SHN 21-2 PJN STF11 IF NOT *EXECUTE ONLY* LDN 0 UJN STF15 SET *EXECUTE ONLY* STF11 SHN 21-0-21+2 PJN STF12 IF NOT *READ ONLY* LDN 1 UJN STF15 SET *READ ONLY* STF12 SHN 21-3-21+0+22 MJN STF13 IF ALTER ONLY LDN 3 UJN STF15 SET STATUS STF13 LDN 7 UJN STF15 SET STATUS STF14 LDN 17 STF15 SHN 10 STD CN+3 STORE FILE CONTROL LJM STF2 RETURN INFORMATION TO CM STP SPACE 4,30 *** FUNCTION 3 - RETURN PRU COUNT OF FILE(S). * * RETURNS TO THE CALLING PROGRAM THE NUMBER OF PRUS OF * THE FILES REQUESTED WHOSE NAMES ARE SET IN EVERY SECOND WORD * STARTING AT *PARM+1* OF ADDRESS CONTAINED IN THE *PARM* FIELD * OF THE CALLING PROGRAM. IF THE FILE EXISTS, THE PRU COUNT * WILL BE RETURNED IN BITS 0 - 23 OF THE SECOND WORD. IF THE * FILE DOES NOT EXIST, THE SECOND WORD WILL BE ZEROED. * * FORMAT OF LOCATION POINTED TO BY *PARM*. * * *T PARM 12/ ,12/ LL,12/ LR,23/ ,1/A * * LL NUMBER OF WORDS, EXCLUDING THIS HEADER, TO BE USED; * MUST BE SET BY USER TO A MULTIPLE OF 2. * * LR LENGTH OF STATUS REPLY AREA. * * A AUTO RECALL REPLY - SET TO ZERO BY USER AND SET TO ONE * WHEN REQUEST IS COMPLETE. STP BSS 0 ENTRY LDN SSTL CHECK LOGGING ENABLED CRD CM LDD CM+3 SHN 21-4 MJN STP0 IF ANALYST LOGGING DISABLED LDC =C$ **** USE *FILINFO* IN PLACE OF *STS* CALL ****.$ RJM DFM STP0 LDN ZERL CLEAR SECTOR COUNT RETURN CRD CN LDN 1 INITIALIZE PARAMETER INDEX STD PI STP1 LDA IR+3 ADD PI READ FILE NAME CRD FN RJM SAF SEARCH FOR ASSIGNED FILE NJN STP3 IF FILE FOUND STP2 STD CN+4 SHN -14 STD CN+3 SET SECTOR COUNT FOR FILE STP2.1 LDA IR+3 ADD PI ADN 1 CWD CN LDN 2 RAD SP+2 ADVANCE WORDS RETURNED COUNT ADN 1 STD PI ADVANCE PARAMETER INDEX SBD SP+1 MJN STP1 IF NOT END OF PARAMETER AREA LJM SES SET ERROR STATUS STP3 NFA FA,R ADN FSTL CRD T5 READ FST SFA EST,T5 READ EST FOR DEVICE ADK EQDE CRD CM READ EST FOR DEVICE LDD CM SHN -13 ZJN STP7 IF NOT MASS STORAGE LDD T5+2 ZJN STP7 IF FILE UNUSED LDD FS+4 CHECK FOR DIRECT ACCESS FILE SHN -6 LMN PMFT NJN STP5 IF NOT DIRECT ACCESS LDD FS+3 CHECK FOR SPECIAL ACCESS MODE LPN 30 ZJN STP4 IF NOT SPECIAL ACCESS MODE LDD TH SET RETURN-ON-INACCESSIBLE OPTION RAD T5 LCN 1 STP4 ADN 1 STP5 RJM SEI SEARCH FOR EOI MJP MSR IF DEVICE INACCESSIBLE LDD T2 SET SECTOR COUNT STD CN+3 SOD T3 DECREMENT FOR EOI SECTOR PJN STP6 IF NO UNDERFLOW SOD CN+3 LCN 0 STP6 STD CN+4 LJM STP2.1 LOOP STP7 LJM STP2 RETURN FILE STATUS SDT SPACE 4,10 ** SDT - SET *SCOPE 3.4* DEVICE NAME/TYPE. * * ENTRY (CM - CM+4) = EST ENTRY * * EXIT (A) = *SCOPE 3.4* DEVICE TYPE/MNEMONIC * * USES T4. SDT4 LDC 140000B+2RAZ SDT SUBR ENTRY/EXIT LDD CM SHN 0-13 NJN SDT4 IF MASS STORAGE STD T4 TABLE INDEX SDT1 LDM TKDT,T4 SEARCH DEVICE TABLE FOR MATCH ZJN SDT3 IF END OF TABLE LMD CM+3 ZJN SDT2 IF MATCH FOUND AOD T4 GET NEXT ENTRY UJN SDT1 LOOP SDT2 LDD T4 SHN 1 ORDINAL*2 ADC TSDT ADD TABLE ADDRESS STD T3 LDM 1,T3 LOAD DEVICE TYPE SHN 6 LMI T3 MERGE DEVICE MNEMONIC UJN SDTX EXIT SDT3 LDN /ERR/IDC UNKNOWN DEVICE TYPE/NAME LJM ERR ERROR EXIT TKDT SPACE 4,10 * TKDT - TABLE OF *NOS* DEVICE NAMES/TYPES. TKDT BSS 0 LOC 0 CON 2RMT 7 - TRACK TAPES CON 2RNT 9 - TRACK TAPES CON 2RCT CARTRIDGE TAPES CON 2RAT ACS CARTRIDGE TAPES CON 2RCR CARD READER CON 2RCP CARD PUNCH CON 2RLP LINE PRINTER CON 2RLQ LINE PRINTER (512) CON 2RTT TIME-SHARING TERMINAL CON 2RLR LINE PRINTER (580) CON 2RRD EST ORDINAL 0 CON 2RNE NULL EQUIPMENT CON 0 END OF TABLE LOC *O TSDT SPACE 4,10 * TSDT - TABLE OF *SCOPE 3.4* DEVICE NAMES/TYPES. TSDT BSS 0 LOC 0 CON 2RMT,4000 7 - TRACK TAPES CON 2RNT,4100 9 - TRACK TAPES CON 2RNT,4100 CARTRIDGE TAPES (TREATED AS 9-TRACK) CON 2RNT,4100 ACS CARTRIDGE TAPES (TREATED AS 9-TRACK) CON 2RCR,6000 CARD READER CON 2RCP,7000 CARD PUNCH CON 2RLP,5000 LINE PRINTER CON 2RLQ,5000 LINE PRINTER (512) CON 2RTA,6100 TIME-SHARING TERMINAL CON 2RLR,5000 LINE PRINTER (580) CON 0,0 EST ORDINAL 0 CON 0,0 NULL EQUIPMENT LOC *O SPACE 4,10 * COMMON DECKS. *CALL COMPCTI SEI$ EQU 1 MAKE INTERLOCKING AVAILABLE *CALL,COMPSEI *CALL COMPSAF *CALL COMPSTI SPACE 4,10 OVERFLOW OVL OVERLAY (MSD - SDA/SIS MESSAGE GENERATOR.) EMG SPACE 4,10 *** MSD - SDA/SIS MESSAGE GENERATOR. * * RETURNS MESSAGES TO SDA/SIS AS REQUESTED BY A * MESSAGE CODE CONTAINED IN THE PP CALL PARAMETER AREA. EMG * PERFORMS THE FUNCTION OF THE *SCOPE 3.4* PP PROGRAM *MSD*. * * ENTRY (IR - IR+4) = CALL TO *MSD* WITH THE FORMAT - * * *T, 24/ *MSD* ,18/MESSAGE CODE,18/ RETURN ADDRESS * * * MESSAGE CODE = MESSAGE ORDINAL OF MESSAGE TO BE RETURNED. * * RETURN ADDRESS = CM ADDRESS TO RETURN MESSAGE BEGINNING AT * (RETURN ADDRESS+1). * * EXIT (RETURN ADDRESS) .NE. 0. UPON COMPLETION OF MESSAGE * TRANSFER, (RETURN ADDRESS) IS SET * TO - * *T 12/ MESS CODE,12/MESS SIZE-1,12/MESS SIZE,23/ ,1/1 * * * MESS CODE = MESSAGE CODE ISSUED IN *MSD* CALL. * MESS SIZE = MESSAGE SIZE IN CM WORDS OF MESSAGE RETURNED. SPACE 4,10 * RETURN CODES. C001 EQU 445 C002 EQU 446 C003 EQU 6 C004 EQU 50 C005 EQU 50 C006 EQU 50 C007 EQU 100 C010 EQU 117 C011 EQU 147 C012 EQU 352 C013 EQU 147 C014 EQU 166 C015 EQU 167 C016 EQU 170 C017 EQU 170 C020 EQU 170 C021 EQU 170 C022 EQU 171 C023 EQU 253 C024 EQU 300 C025 EQU 301 C026 EQU 302 C027 EQU 304 C030 EQU 352 C031 EQU 352 C032 EQU 370 C033 EQU 356 C034 EQU 357 C035 EQU 421 C036 EQU 426 C037 EQU 441 C040 EQU 447 C041 EQU 150 C042 EQU 0 C043 EQU 0 C044 EQU 0 C045 EQU 0 C046 EQU 0 C047 EQU 452 C050 EQU 170 C051 EQU 135 C052 EQU 136 C053 EQU 252 C055 EQU 52B C175 EQU 175 C176 EQU 176 C201 EQU 0 C202 EQU 0 C203 EQU 416 C204 EQU 445 C205 EQU 6 C206 EQU 50 C207 EQU 50 C210 EQU 50 C212 EQU 100 C213 EQU 147 C214 EQU 147 C215 EQU 147 C216 EQU 166 C217 EQU 167 C220 EQU 170 C221 EQU 170 C222 EQU 170 C223 EQU 170 C224 EQU 253 C225 EQU 300 C226 EQU 301 C227 EQU 302 C230 EQU 352 C231 EQU 352 C232 EQU 352 C233 EQU 352 C234 EQU 352 C236 EQU 417 C237 EQU 420 C240 EQU 421 C241 EQU 423 C242 EQU 425 C243 EQU 441 C244 EQU 441 C245 EQU 441 C246 EQU 441 C247 EQU 441 C250 EQU 441 C251 EQU 441 C252 EQU 442 C253 EQU 443 C254 EQU 444 C255 EQU 446 C256 EQU 447 C257 EQU 360 C260 EQU 360 C261 EQU 360 C262 EQU 360 C264 EQU 360 C265 EQU 360 C266 EQU 360 C267 EQU 360 C270 EQU 422 C271 EQU 424 C272 EQU 425 C273 EQU 360 C274 EQU 356 C275 EQU 360 C276 EQU 0 C277 EQU 0 C300 EQU 150 C301 EQU 135 C302 EQU 136 C303 EQU 252 C304 EQU 352 C305 EQU 357 C307 EQU 0 C313 EQU 50 C314 EQU 0 C315 EQU 417 C316 EQU 104 C317 EQU 110 ZERO EQU 0 NO CODE STATUS EMG SPACE 4,10 ENTRY EMG LDD IR+3 LOAD MESSAGE CODE ORDINAL SHN -6 STD T7 LDD IR+2 LOAD MESSAGE CODE TABLE ORDINAL SBN 4 MJN EMG2 IF ORDINAL WITHIN TABLE SET EMG1 LDC ERRMSG SET ERROR MESSAGE RETURN UJN EMG6 SET WRIT MESSAGE POINTER EMG2 ADN 1 MJN EMG3 IF NOT *300* LEVEL MESSAGE LDC TEMG3L CHECK ORDINAL SBD T7 MJN EMG1 IF ORDINAL NOT WITHIN BOUNDS LDC TEMG3 SET TABLE SET FWA UJN EMG5 LOAD MESSAGE ADDRESS EMG3 ADN 1 MJN EMG4 IF LESS THAN *200* LEVEL MESSAGE LDC TEMG2L SBD T7 MJN EMG1 IF ORDINAL NOT WITHIN BOUNDS LDC TEMG2 SET TABLE SET FWA UJN EMG5 LOAD MESSAGE ADDRESS EMG4 LDC TEMG1L SBD T7 MJN EMG1 IF ORDINAL NOT WITHIN BOUNDS LDC TEMG1 SET TABLE SET FWA EMG5 STM EMGA LDM *,T7 LOAD EMGA EQU *-1 EMG6 STM EMGB STORE MESSAGE ADDRESS ADN 1 STD T1 PRESET ZERO BYTE SEARCH LDN ZERL PRESET HEADER RETURN CRD CM LDD IR+2 SET MESSAGE CODE SHN 6 ADD T7 STD CM AOD CM+4 LDN 2 * SET NUMBER OF LINES TO BE WRITTEN. EMG7 STD T2 PRESET CM BYTE COUNT AOD CM+2 UPDATE CM WORD COUNT EMG8 AOD T1 INCREMENT MESSAGE BYTE POINTER LDI T1 ZJN EMG10 IF MESSAGE TERMINATED LPN 77 NJN EMG9 IF CHARACTER PRESENT LDN 1R INSERT SPACE RAI T1 EMG9 AOD T2 INCREMENT CM WORD BYTE COUNT SBN 5 MJN EMG8 IF NOT END OF CM WORD LDN 0 UJN EMG7 LOOP EMG10 LDD T2 SBN 4 ZJN EMG12 IF LAST BYTE OF CM WORD EMG11 LDC 2R INSERT FIELD INTO NEXT CM BYTE STI T1 AOD T1 AOD T2 INCREMENT CM WORD BYTE POINTER SBN 4 MJN EMG11 IF NOT LAST BYTE OF CM WORD LDN 0 STI T1 EMG12 LDD CM+2 SET TOTAL CM WORD COUNT SBN 1 STD CM+1 LDD IR+3 VALIDATE RETURN ADDRESS LPN 37 SHN 14 ADD IR+4 ADD CM+2 SHN -6 SBD FL MJN EMG13 IF ADDRESS VALID LDN /ERR/PAE *PARAMETER ERROR.* LJM ERR PROCESS ERROR EMG13 LDD IR+3 SET USER RETURN ADDRESS LPN 77 SHN 6 ADD RA SHN 6 ADD IR+4 ADN 1 CWM *,CM+2 SEND MESSAGE TO USER EMGB EQU *-1 SBD CM+2 SEND MESSAGE HEADER SBN 1 CWD CM LJM SFPX EXIT TITLE MESSAGE CODE TABLE. ** MESSAGE CODE TABLE. * * CONSISTS OF SET OF TABLES WHOSE POSITION CORRESPONDS * TO A MESSAGE CODE NUMBER CONTAINED IN (IR+2 - IR+3). THE * ADDRESS CONTAINED IN EACH TABLE ENTRY CORRESPONDS TO THE * FWA OF THE MESSAGE ASSOCIATED WITH THE CALLING MESSAGE CODE. SPACE 4,10 ** TABLE 1 (000 - 177 MESSAGE CODE) TEMG1 BSS 0 LOC 0 CON ERRMSG CON TS1M1 KEY NOT FOUND CON TS1M2 DUPLICATE KEY FOUND CON TS1M3 FILE CONTENT NOT COMPATIBLE CON TS1M4 OPEN FILE LIMIT CON TS1M5 EXISTING FILE CON TS1M6 FILE ILLEGALLY EXTENDED CON TS1M7 EOI ENCOUNTERED CON TS1M8 PUT, OR REPLACE ERROR CON TS1M9 CHECKSUM ERROR-DATA CON ERRMSG CON TS1M11 CHECKSUM ERROR-FSTT CON TS1M12 INCOMPLETE FIT CON TS1M13 RECORD LENGTH ERROR CON TS1M14 RECORD LENGTH ERROR CON TS1M15 MINIMUM RECORD SIZE ERROR CON TS1M16 KEY POSITION RANGE ERROR CON TS1M17 RELATIVE KEY POSITION RANGE ERROR CON TS1M18 INCORRECT HASHING ROUTINE CON TS1M19 FILE LIMIT REACHED CON TS1M20 NO READ PERMISSION CON TS1M21 NO MODIFY PERMISSION CON TS1M22 NO EXTEND PERMISSION CON TS1M23 ILLEGAL OVERFLOW BLOCK CREATION CON TS1M24 UNKNOWN CLOSING FILE CON TS1M25 UNEQUAL NUMBER OF FILES/FITS CON TS1M26 FATAL I-O ERROR CON TS1M27 TRIVAL ERROR LIMIT REACHED CON TS1M28 NOT ENOUGH BUFFER SPACE CON TS1M29 UNSPECIFIED WSA CON TS1M30 ILLEGAL GETN CON TS1M31 HASH KEY OUTSIDE HOME BLOCK CON TS1M32 UNSEPCIFIED KEY ADDRESS CON TS1M33 FILE NOT ON MASS STORAGE CON TS1M34 ILLEGAL GETN AFTER EOI CON TS1M35 ILLOGICAL SUCCESSIVE SEEKS CON TS1M36 ILLEGAL CHECKSUM CON TS1M37 ILLOGICAL KEY CHANGE CON TS1M38 EMPTY HOME BLOCK CON TS1M39 FILE ALREADY OPEN CON TS1M40 MINIMUM RECORD SIZE ERROR CON TS1M41 RMS READ PARITY ERROR CON TS1M42 RMS WRITE PARITY ERROR CON TS1M43 RMS LIMIT EXCEEDED CON TS1M44 BLOCK SIZE TOO LARGE CON TS1M45 FILE NOT CLOSED AFTER UPDATE CON TS1M46 MRL/MAXRECSZ CONFLICT LOC *O TEMG1L EQU *-TEMG1 LENGTH OF TABLE SPACE 4,10 ** TABLE 2 (200 - 277 MESSAGE CODE) (SIS MESSAGES) TEMG2 BSS 0 LOC 0 CON ERRMSG CON ERRMSG CON TS2M2 BOI ENCOUNTERED CON TS2M3 ONLY PUT ALLOWED CON TS2M4 KEY NOT FOUND CON ERRMSG CON ERRMSG CON ERRMSG CON ERRMSG CON ERRMSG CON TS2M10 ILLEGAL SEQUENTIAL PROCESSING CON ERRMSG CON TS2M12 CHECKSUM ERROR-INDEX CON ERRMSG CON ERRMSG CON ERRMSG CON ERRMSG CON TS2M17 RECORD SIZE NEGATIVE CON ERRMSG CON ERRMSG CON ERRMSG CON ERRMSG CON ERRMSG CON ERRMSG CON ERRMSG CON ERRMSG CON TS2M26 PTREE OVERFLOW CON TS2M27 BAD FIT ADDRESS CON TS2M28 INTERNAL ERROR CON ERRMSG CON TS2M30 ONLY REPLACE .EQ. SIZE RECORDS CON TS2M31 NO REWIND CON ERRMSG CON TS2M33 CANNOT DELETE ACTUAL RECORDS CON TS2M34 CANNOT SKIP BACKWARDS CON TS2M35 MAJOR KEY WITH SYMB KEY ONLY CON TS2M36 CHANGE KEY TYPE CON TS2M37 CHANGE KEY SIZE CON TS2M38 KEY TYPE INCORRECT CON TS2M39 NO KEY DEFINED CON TS2M40 KEY SIZE ILLEGAL CON TS2M41 MAJOR KEY SIZE ILLEGAL CON TS2M42 INVALID ACTUAL KEY CON TS2M43 COMP-1 KEY BAD BIAS CON TS2M44 NEW KEY .LT. LAST KEY CON ERRMSG CON ERRMSG CON TS2M47 CANNOT SPECIFY SETBLKI CON TS2M48 BAD BUFFER ADDRESS CON TS2M49 NOT AFTER OPEN CON TS2M50 ERROR IN CALLING LIST CON ERRMSG CON TS2M52 WRONG NO. OF PARAMETERS CON TS2M53 INCONSISTENT CALLING SPEC. CON TS2M54 CANNOT PUT IN SEQ. MODE CON TS2M55 CANNOT DELETE IN SEQ. MODE CON TS2M56 CANNOT SEEK IN SEQ. MODE CON TS2M57 CANNOT GET IN SEQ. MODE CON TS2M58 CANNOT SKIP BACKWORD IN SEQ. MODE CON TS2M59 PARAMETER NNN OUT OF RANGE CON ERRMSG CON TS2M61 SISV1 PARAMETER ONE ERROR CON TS2M62 DELETED LAST RECORD CON TS2M63 EMPTY FILE OPENED LOC *O TEMG2L EQU *-TEMG2 TABLE LENGTH SPACE 4,10 ** TABLE 3 (300 - 377 MESSAGE CODES) TEMG3 BSS 0 LOC 0 CON ERRMSG CON ERRMSG CON ERRMSG CON TS3M4 FATAL I/O ERROR CON ERRMSG CON ERRMSG CON TS3M7 SIS RECOVER ERROR CON ERRMSG CON ERRMSG CON ERRMSG CON TS3M11 NONEXISTENT FILE CON TS3M12 DATA BLOCK/SIZE/FACTOR SET CON TS3M13 REPLACE LARGER RECORD IN SEQ. MODE CON TS3M14 ONLY PUT IN CREATE CON TS3M15 SISV1 FILE NOT OPEN CON TS3M16 FILE SLOT EMPTY CON TS3M17 FILE SLOT OCCUPPIED CON TS3M18 INVALID ACTUAL KEY CON TS3M19 HEADER LENGTH ERROR CON TS3M20 BLOCKING TOO LARGE CON TS3M21 MINN RECORD SIZE ERROR CON TS3M22 RECORD SIZE ERROR CON TS3M23 POSITION ERROR CON TS3M24 PADDING PERCENTAGE ERROR CON TS3M25 FILE STORAGE LIMIT EXCEEDED CON TS3M26 INTERNAL I/O ERROR CON TS3M27 ILLEGAL OPEN CON TS3M28 BLOCKING FACTOR ERROR CON TS3M29 FILE LIMIT REACHED LOC *O TEMG3L EQU *-TEMG3 TABLE SIZE TITLE MESSAGE AREA. ** MESSAGE AREA. * * ALL MESSAGES IN THIS AREA ARE IN SEQUENTIAL * ASCENDING ORDER BY TABLE AND POSITION. SPACE 4,10 * ILLEGAL MESSAGE CODE RETURN. ERRMSG EMESS FA,NK,12B,NC,RT,C012,( ,ILLEGAL CALL TO DIAGNOSTIC ROUTINE) * TABLE 1 MESSAGES. TS1M1 EMESS TR,KY,01B,NC,RT,C001,( ,KEY NOT FOUND - FILE POSITION ALTERED - REQUEST IGNORED) TS1M2 EMESS TR,KY,02B,NC,RT,C002,( ,DUPLICATE KEY FOUND - FILE POSITION ALTERED - REQUEST IGNORED) TS1M3 EMESS FA,NK,03B,NC,RT,C003,( ,FILE CONTENT NOT COMPATIBLE WITH FILE TYPE) TS1M4 EMESS FA,NK,04B,NC,RT,C004,( ,NUMBER OF FILES PERMITTED TO BE OPEN SIMULTANEOUSLY HAS BEEN EXCEEDED) TS1M5 EMESS FA,NK,05B,NC,RT,C005,( ,FILE ALREADY EXISTS-CANNOT OPEN NEW) TS1M6 EMESS FA,NK,06B,NC,RT,C006,( ,FILE ILLEGALLY EXTENDED-EOI MOVED) TS1M7 EMESS TR,NK,07B,CM,RT,C042,( ,END OF INFORMATION ENCOUNTERED) TS1M8 EMESS TR,KY,10B,NC,RT,C010,( ,PUT,OR REPLACE WITH LARGER RECORD ILLEGAL BETWEEN GETN COMMANDS) TS1M9 EMESS FA,NK,11B,NC,RT,C011,( ,CHECKSUM ERROR-DATA BLOCK) TS1M11 EMESS FA,NK,13B,NC,RT,C013,( ,CHECKSUM ERROR-FSTT) TS1M12 EMESS FA,NK,14B,NC,RT,C014,( ,FIT INCOMPLETE - CANNOT CREATE FILE) TS1M13 EMESS TR,NK,15B,NC,RT,C015,( ,RECORD LENGTH OUTSIDE MIN-MAX RANGE - REQUEST IGNORED) TS1M14 EMESS FA,NK,16B,NC,RT,C016,( ,RECORD SIZE EXCEEDS BLOCK SIZE) TS1M15 EMESS FA,NK,17B,NC,RT,C017,( ,MINIMUM RECORD SIZE EXCEEDS MAXIMUM) TS1M16 EMESS FA,NK,20B,NC,RT,C020,( ,KEY POSITION OUT OF RANGE) TS1M17 EMESS FA,NK,21B,NC,RT,C021,( ,RELATIVE KEY POSITION OUT OF RANGE) TS1M18 EMESS FA,NK,22B,NC,RT,C022,( ,INCORRECT HASHING ROUTINE) TS1M19 EMESS TR,KY,23B,NC,RT,C023,( ,FILE LIMIT REACHED-RECORD NOT INSERTED) TS1M20 EMESS FA,NK,24B,NC,RT,C024,( ,NO READ PERMISSION) TS1M21 EMESS FA,NK,25B,NC,RT,C025,( ,NO MODIFY PERMISSION) TS1M22 EMESS FA,NK,26B,NC,RT,C026,( ,NO EXTEND PERMISSION) TS1M23 EMESS TR,NK,27B,NC,RT,C027,( ,NOT ALLOWED TO CREATE OVERFLOW BLOCKS) TS1M24 EMESS TR,NK,30B,NC,RT,C030,( ,FILE TO BE CLOSED IS NOT KNOWN) TS1M25 EMESS FA,NK,31B,NC,RT,C031,( ,TOTAL OF OPEN FILES NOT EQUAL TO TOTAL OF FIT ADDRESSES) TS1M26 EMESS FA,NK,32B,NC,RT,C032,( ,FATAL I-O ERROR) TS1M27 EMESS FA,NK,33B,NC,RT,C033,( ,TRIVIAL ERROR LIMIT REACHED) TS1M28 EMESS FA,NK,34B,NC,RT,C034,( ,NOT ENOUGH BUFFER SPACE) TS1M29 EMESS TR,NK,35B,NC,RT,C035,( ,WORKING STORAGE ADDRESS NOT SPECIFIED-REQUEST IGNORED) TS1M30 EMESS TR,NK,36B,NC,RT,C036,( ,GETN NOT ALLOWED DURING FILE CREATION - REQUEST IGNORED) TS1M31 EMESS FA,KY,37B,NC,RT,C037,( ,HASHED KEY OUTSIDE HOME BLOCK AREA) TS1M32 EMESS TR,NK,40B,NC,RT,C040,( ,KEY ADDRESS NOT SPECIFIED - REQUEST IGNORED) TS1M33 EMESS FA,NK,41B,NC,RT,C041,( ,FILE NOT ON MASS STORAGE DEVICE) TS1M34 EMESS TR,NK,42B,NC,RT,C007,( ,CANNOT GETN AFTER EOI ENCOUNTERED) TS1M35 EMESS TR,NK,43B,CM,RT,C043,( ,ILLOGICAL SUCCESSIVE SEEK REQUESTS) TS1M36 EMESS TR,NK,44B,CM,RT,C044,( ,CANNOT CHECKSUM A FILE CREATED WITHOUT CHECKSUMS) TS1M37 EMESS TR,NK,45B,CM,RT,C045,( ,ILLOGICAL TO CHANGE THE KEY BEFORE SEEK FUNCTION COMPLETED) TS1M38 EMESS TR,NK,46B,CM,RT,C046,( ,HOME BLOCK EMPTY - HASHING ROUTINE NOT VERIFIED) TS1M39 EMESS FA,NK,47B,NC,RT,C047,( ,FILE ALREADY OPEN) TS1M40 EMESS FA,NK,50B,NC,RT,C050,( ,MINIMUM RECORD SIZE LESS THAN KEY LENGTH PLUS KEY POSITION) TS1M41 EMESS FA,NK,51B,NC,RT,C051,( ,RMS READ PARITY ERROR) TS1M42 EMESS FA,NK,52B,NC,RT,C052,( ,RMS WRITE PARITY ERROR) TS1M43 EMESS FA,NK,53B,NC,RT,C053,( ,SYSTEM MASS STORAGE LIMIT EXCEEDED) TS1M44 EMESS FA,NK,54B,CM,RT,C175,( ,REQUESTED DATA OR INDEX BLOCK SIZE TOO LARGE) TS1M45 EMESS TR,NK,55B,NC,NR,C055,( ,FILE NOT CLOSED AFTER LAST UPDATE - FILE CONDITION QUESTIONABLE) TS1M46 EMESS TR,NK,56B,NC,NR,C176,( ,MRL IN FIT LESS THAN MAXRECSZ IN FSTT, WSA MAY BE TOO SHORT) SPACE 4,10 * TABLE 2 MESSAGES. TS2M2 EMESS TR,KY,02B,CM,NR,C202,( ,BEGINNING OF INFORMATION ENCOUNTERED) TS2M3 EMESS FA,KY,03B,NC,RT,C203,( ,ONLY PUT ALLOWED DURING INITIAL CREATION) TS2M4 EMESS TR,KY,04B,NC,RT,C204,( ,KEY NOT FOUND-FILE POSITION ALTERED-REQUEST IGNORED) TS2M10 EMESS TR,KY,12B,NC,RT,C212,( ,CANNOT PROCESS SEQUENTIALLY BEYOND FILE BOUNDRIES.) TS2M12 EMESS FA,NK,14B,NC,RT,C214,( ,CHECKSUM ERROR-INDEX BLOCK) TS2M17 EMESS FA,NK,21B,NC,RT,C221,( ,RECORD SIZE NEGATIVE) TS2M26 EMESS FA,NK,32B,NC,RT,C232,( ,HIERARCHY TABLE OVERFLOW) TS2M27 EMESS FA,NK,33B,NC,RT,C233,( ,BAD FIT ADDRESS) TS2M28 EMESS FA,NK,34B,NC,RT,C234,( ,INTERNAL ERROR) TS2M30 EMESS TR,KY,36B,NC,RT,C236,( ,CAN ONLY REPLACE WITH EQUAL SIZE RECORDS IN ACTUAL KEY FILES) TS2M31 EMESS TR,NK,37B,NC,NR,C237,( ,CANNOT SPECIFY NO REWIND-FILE REWOUND) TS2M33 EMESS TR,KY,41B,NC,RT,C241,( ,CANNOT DELETE ACTUAL KEY RECORDS) TS2M34 EMESS TR,NK,42B,NC,RT,C242,( ,CANNOT SKIP BACKWARD WITH ACTUAL KEYS) TS2M35 EMESS FA,KY,43B,NC,RT,C243,( ,MAJOR KEY WITH SYMBOLIC KEYS ONLY) TS2M36 EMESS FA,KY,44B,NC,RT,C244,( ,CHANGED KEY TYPE) TS2M37 EMESS FA,KY,45B,NC,RT,C245,( ,CHANGED KEY SIZE) TS2M38 EMESS FA,KY,46B,NC,RT,C246,( ,KEY TYPE INCORRECT) TS2M39 EMESS FA,NK,47B,NC,RT,C247,( ,NO KEY DEFINED) TS2M40 EMESS FA,NK,50B,NC,RT,C250,( ,KEY SIZE ILLEGAL) TS2M41 EMESS FA,NK,51B,NC,RT,C251,( ,MAJOR KEY SIZE ILLEGAL) TS2M42 EMESS TR,KY,52B,NC,RT,C252,( ,INVALID ACTUAL KEY-REQUEST IGNORED) TS2M43 EMESS TR,KY,53B,NC,RT,C253,( ,COMP-1 KEY HAS INCONSISTENT BIAS-REQUEST IGNORED) TS2M44 EMESS TR,KY,54B,NC,RT,C254,( ,NEW KEY LESS THAN PREVIOUS KEY IN INITIAL CREATION) TS2M47 EMESS FA,NK,57B,NC,RT,C257,( ,SISV1 CANNOT SPECIFY SETBLKI OR SETBLKD WITH OPENOLD) TS2M48 EMESS FA,NK,60B,NC,RT,C260,( ,SISV1 BAD BUFFER ADDRESS) TS2M49 EMESS FA,NK,61B,NC,RT,C261,( ,SISV1 MAY NOT CALL AFTER OPENING FILE) TS2M50 EMESS FA,NK,62B,NC,RT,C262,( ,SISV1 ERROR IN CALLING LIST, PARAMETER NUMBER NNN) TS2M52 EMESS FA,NK,64B,NC,RT,C264,( ,SISV1 WRONG NUMBER OF PARAMETERS IN CALLING LIST) TS2M53 EMESS FA,NK,65B,NC,RT,C265,( ,SISV1 INCONSISTENT COLLATING SPECIFICATIONS) TS2M54 EMESS FA,KY,66B,NC,RT,C266,( ,SISV1 CANNOT PUT IN SEQUENTIAL MODE) TS2M55 EMESS FA,KY,67B,NC,RT,C267,( ,SISV1 CANNOT DELETE IN SEQUENTIAL MODE) TS2M56 EMESS TR,KY,70B,NC,RT,C270,( ,SISV1 SEEK ILLOGICAL IN SEQUENTIAL MODE) TS2M57 EMESS TR,KY,71B,NC,NR,C271,( ,SISV1 CANNOT GET IN SEQUENTIAL MODE GETN ASSUMED) TS2M58 EMESS TR,NK,72B,NC,RT,C272,( ,SISV1 CANNOT SKIP BACKWARD IN SEQUENTIAL MODE) TS2M59 EMESS FA,NK,73B,NC,RT,C273,( ,SISV1 PARAMETER OUT OF RANGE, PARAMETER NUMBER NNN) TS2M61 EMESS FA,NK,75B,NC,RT,C275,( ,SISV1 ERROR IN PARAMETER ONE-FILE NOT GIVEN) TS2M62 EMESS TR,NK,76B,CM,NR,C276,( ,DELETED LAST RECORD) TS2M63 EMESS TR,NK,77B,CM,NR,C277,( ,EMPTY FILE OPENED) SPACE 4,10 * TABLE 3 MESSAGES. TS3M4 EMESS FA,NK,04B,NC,NR,C304,( ,INTERNAL IO ERROR) TS3M7 EMESS TR,NK,07B,CM,RT,C307,( ,SIS ERROR RECOVERY) TS3M11 EMESS FA,NK,13B,NC,RT,C313,( ,FILE NONEXISTENT - CANNOT OPEN-OLD) TS3M12 EMESS TR,NK,14B,CM,NR,C314,( ,DATA BLOCK SIZE AND BLOCKING FACTOR BOTH SET) TS3M13 EMESS TR,NK,15B,NC,RT,C315,( ,CANNOT REPLACE LARGER RECORDS IN SEQUENTIAL MODE) TS3M14 EMESS TR,NK,16B,NC,NR,C316,( ,ONLY PUT ALLOWED IN CREATION MODE) TS3M15 EMESS FA,NK,17B,NC,RT,C317,( ,SISV1 FILE NOT OPEN) TS3M16 EMESS TR,KY,20B,NC,RT,ZERO,( ,SPECIFIED FILE SLOT IS EMPTY-REQUEST IGNORED) TS3M17 EMESS TR,KY,21B,NC,RT,ZERO,( ,SPECIFIED FILE SLOT IS OCCUPPIED-REQUEST IGNORED) TS3M18 EMESS TR,KY,22B,NC,RT,ZERO,( ,INVALID ACTUAL KEY-REQUEST IGNORED) TS3M19 EMESS TR,NK,23B,NC,RT,ZERO,( ,USER HEADER LENGTH INCONSISTENT WITH RECORD LENGTH-REQUEST IGNORED) TS3M20 EMESS TR,NK,24B,NC,RT,ZERO,( ,BLOCKING FACTOR TOO LARGE FOR KEY LENGTH) TS3M21 EMESS TR,NK,25B,NC,RT,ZERO,( ,MINIMUM RECORD SIZE MUST BE GREATER THAN ZERO) TS3M22 EMESS TR,NK,26B,NC,RT,ZERO,( ,RECORD SIZE TOO LARGE FOR BLOCK SIZE) TS3M23 EMESS TR,NK,27B,NC,RT,ZERO,( ,CANNOT SEQUENTIALLY POSITION PAST FILE BOUNDS) TS3M24 EMESS TR,NK,30B,NC,RT,ZERO,( ,PADDING PERCENTAGE OUT OF RANGE) TS3M25 EMESS TR,NK,31B,NC,RT,ZERO,( ,FILE MASS STORAGE LIMIT EXCEEDED) TS3M26 EMESS TR,NK,32B,NC,RT,ZERO,( ,INTERNAL I-O ERROR) TS3M27 EMESS TR,NK,33B,NC,RT,ZERO,( ,ILLEGAL TO OPEN-OLD A NULL FILE) TS3M28 EMESS TR,NK,34B,NC,RT,ZERO,( ,BLOCKING FACTOR TOO LARGE FOR BLOCK SIZE) TS3M29 EMESS TR,NK,35B,NC,RT,ZERO,( ,FILE LIMIT REACHED, LINEAR SEARCH FOR SPACE INITIATED) SPACE 4,10 OVERFLOW OVL OVERLAY (PFE - EXTEND/ALTER FUNCTION.) PFE SPACE 4,20 *** PFE - EXTEND/ALTER FILE FUNCTION. * * ALTERS THE REQUESTED FILE TO HAVE AN EOI RECORDED * AT THE CURRENT POSITION OF THE MASS STORAGE FILE. WORD * CONTAINED AT THE ADDRESS IN THE FUNCTION CALL IS - * * *T, PARM 42/ LOGICAL FILE NAME,9/ RET,3/ O,4/ F,1/ ,1/C * * RET IF THE *RC* AND *RT* PARAMETER DEFINED IN *O*, A * RETURN CODE WILL BE AVAILABLE TO THE USER. THE * FOLLOWING CODES WILL BE RETURNED - * * 000 - FUNCTION SUCCESSFUL * 003 - UNKNOWN LFN * 025 - FILE UNAVAILABLE * * O OPTIONS AVAILABLE ARE THE FOLLOWING - * BIT 6 - RETURN CODE TO USER IN *RET* * * F FUNCTION CODE FOR ALTER. BITS 2 - 5 = 0111. * * C COMPLETION BIT. SET WHEN FUNCTION IS COMPLETE. * * DAYFILE MESSAGES. * * *SFP/PFE INCORRECT FUNCTION CODE.* * *PFE* WAS CALLED WITH AN INCORRECT FUNCTION CODE. * * *SFP/PFE I/O SEQUENCE ERROR.* * AN ACTION WAS REQUESTED ON A FILE THAT WAS * ALREADY BUSY. ENTRY PFE ENTRY LDD IR+3 LOAD PARAMETER WORD SHN 6 ADD RA SHN 6 ADD IR+4 CRD FN PRESET FOR FILE SEARCH CRD CN LDD CN+4 CHECK ALTER/EXTEND FUNCTION CODE LPN 33 LMN 30 ZJN PFE1 IF ALTER/EXTEND FUNCTION CODE LDN /ERR/IAF * SFP/PFE INCORRECT FUNCTION CODE.* LJM ERR ERROR EXIT PFE1 RJM SAF SEARCH FOR FILE NJN PFE2 IF FILE FOUND LDN 3 SET *UNKNOWN FILE* RETURN CODE LJM PFE8 STORE PARAMETER WORD PFE2 LDD CN+4 CHECK FOR ALTER FUNCTION SHN 21-2 MJN PFE3 IF ALTER FUNCTION LJM PFE7 NO-OP EXTEND FUNCION PFE3 RJM SFB SET FILE BUSY ZJN PFE4 IF FILE MADE BUSY LDN /ERR/IOS *SFP/PFE I/O SEQUENCE ERROR.* LJM ERR PFE4 LDD CM+3 CHECK FOR FILE UNAVAILABLE LPN 35 ZJN PFE6 IF FILE AVAILABLE PFE5 LDN 25 SET *UNAVAILABLE FILE* RETURN CODE LJM PFE8 STORE PARAMETER WORD PFE6 LDD FS SET EQUIPMENT STD T5 SFA EST CHECK IF MASS STORAGE ADK EQDE CRD CM LDD CM SHN 21-13 PJN PFE5 IF NOT MASS STORAGE LDD FS+2 ZJN PFE5 IF FILE NOT WRITTEN ON LDD FS+1 SET FIRST TRACK ZJN PFE5 IF FIRST TRACK NOT ASSIGNED STD T6 RJM STI SET TRACK INTERLOCK NJN PFE5 IF OPERATOR DROP LDD FS+2 SET CURRENT POSITION STD T6 LDD FS+3 SET CURRENT SECTOR STD T7 SETMS IO RJM WEI WRITE EOI SECTOR MJP PFE10 IF MASS STORAGE ERROR ENDMS LDD T5 SET EQUIPMENT STD CM+1 LDD T6 SET EOI TRACK LPC 3777 STD CM+2 LDD T7 SET EOI SECTOR STD CM+3 MONITOR DTKM DROP TRACKS LDD FS+4 UPDATE FST AND SET COMPLETE LPC 7460 LMC 303 STD FS+4 LDD FS+1 SET FIRST TRACK STD T6 RJM CTI CLEAR TRACK INTERLOCK NFA FA,R STORE FST ENTRY ADK FSTL CWD FS PFE7 LDN 0 PFE8 STD T1 RETURN STATUS LDD CN+3 CLEAR OLD RETURN CODE SCN 77 STD CN+3 LDD CN+4 LPC 776 LMN 1 STD CN+4 SHN 21-6 PJN PFE9 IF NO RETURN REQUESTED LDD T1 SET RETURN CODE SHN 21-2 RAD CN+3 SHN -6 RAD CN+4 PFE9 LDD IR+3 RESTORE STATUS SHN 6 ADD RA SHN 6 ADD IR+4 CWD CN LJM SFPX EXIT PFE10 SHN 21-12 MJN PFE11 IF NON-RECOVERABLE MASS STORAGE ERROR LDM MSD CHECK FOR SUBSYSTEM SHN 21-13 PJN PFE11 IF SUBSYSTEM, RETURN ERROR LDD T5 EST ORDINAL OF DEVICE STD IR+4 EXECUTE 1RJ ROLL JOB * LJM PPR DOES NOT RETURN PFE11 MONITOR ABTM ABORT CONTROL POINT LJM PPR EXIT * COMMON DECKS. *CALL COMPCTI *CALL COMPSAF *CALL COMPSFB *CALL COMPSTI *CALL COMPWEI SPACE 4,10 OVERFLOW OVL OVERLAY (ACE - ADVANCE COMMAND.) ACE SPACE 4,30 *** ACE - ADVANCE COMMAND * * READS/BACKSPACES NEXT/PREVIOUS COMMAND INTO * RA+70B - RA+77B WITH THE OPTION TO PLACE THE COMMAND * IN THE DAYFILE AND/OR TO CRACK AND STORE THE COMMAND * PARAMETERS IN *SCOPE 3.4* FORMAT INTO RA+2 - RA+53B. * IF A READ FUNCTION IS ISSUED AND THE POINTER IS AT THE END * OF THE COMMAND RECORD, AN EOR STATUS (BIT 4 SET IN THE * FUNCTION CODE) AND RA+70B - RA+77B CLEARED. IF A BACKSPACE * FUNCTION IS ISSUED AND THE POINTER IS AT THE BEGINNING OF * THE COMMAND RECORD, THE POINTER IS NOT CHANGED AND AN * EOR STATUS IS RETURNED. WHEN FUNCTION IS COMPLETE, THE * COMPLETION BIT (BIT 0) IS SET AND RETURNED TO THE USER. * * CALL. * *T 24/ *ACEP*,9/ ,3/ F,6/ ,18/ FUNC ADDRESS * * *F* = X1 - CRACK PARAMETERS IN *SCOPE 3.4* FORMAT * = 1X - ISSUE COMMAND TO DAYFILE * * *FUNC ADDRESS* = CM WORD CONTAINING FUNCTION TO BE * PERFORMED. * *T FUNC 48/ ,12/ FUNCTION * * = 0010 - READ NEXT COMMAND AND * ADVANCE COMMAND POINTER. * = 0040 - BACKSPACE TO PREVIOUS COMMAND * * EXIT COMPLETION BIT SET IN *FUNCTION*. * * DAYFILE MESSAGES. * * *SFP/ACE INCORRECT FUNCTION CODE.* * THE FUNCTION CODE AT *FUNC ADDRESS IS UNDEFINED. ENTRY ACE ENTRY LDD IR+3 LOAD FUNCTION CODE LPN 37 SHN 6 ADD RA SHN 6 ADD IR+4 CRM ACEC,ON (ACEC+4) = FUNCTION CODE LDD CP ADN CSPW CRD SP (SP - SP+4) = COMMAND POINTER ADN CSSW-CSPW CRD CN (CN - CN+4) = COMMAND FILE STATUS LDM ACEC+4 CHECK FUNCTION CODE LMN 10 ZJN ACE1 IF *READ* FUNCTION LMN 40&10 ZJN ACE4 IF BACKSPACE FUNCTION LDN /ERR/IAF * SFP/ACE INCORRECT FUNCTION CODE.* LJM ERR ERROR EXIT * READ FUNCTION. ACE1 LDD SP+3 CHECK COMMAND BUFFER LMD SP+4 NJN ACE3 IF NOT EMPTY LDD SP+1 SEE IF AT *EOR* SHN 21-13 PJN ACE3 IF NOT AT EOR ACE2 LDN 20 RAM ACEC+4 ACE3 LJM ACE13 COMPLETE FUNCTION * BACKSPACE FUNCTION. ACE4 LDD SP+3 LMC CSBN ZJN ACE5 IF BEGINNING OF BUFFER LJM ACE9 BACKSPACE WITHIN BUFFER ACE5 LDD CN+1 LMD CN+2 NJN ACE6 IF CURRENT TRACK NOT FIRST LDD CN+3 SBN FSMS+2 MJN ACE2 IF COMMAND BUFFER EMPTY ACE6 LDD SP+1 LPC 3777 CLEAR EOR FLAG STM ACEB SOD SP+2 DECREMENT COMMAND COUNT PJN ACE7 IF NO UNDERFLOW AOD SP+2 SOM ACEB MJN ACE2 IF HIGH ORDER UNDERFLOW LDD SP+2 ACE7 STM ACEB+1 SAVE PREVIOUS COMMAND COUNT LDN 0 CLEAR COMMAND COUNTER STD SP+1 STD SP+2 LDC CSBN STD SP+3 STD SP+4 LDD CN+1 REWIND COMMAND FILE STD CN+2 FIRST = CURRENT TRACK LDN FSMS STD CN+3 LDD CP UPDATE *CSPW* AND *CSPW* + 1 ADN CSPW CWD SP COMMAND POINTER WORD ADN CSSW-CSPW CWD CN COMMAND FILE STATUS ACE8 RJM RCS READ COMMAND PJN ACE8.2 IF NO MASS STORAGE ERROR LDM RDCT CHECK FOR NON-RECOVERABLE ERROR SHN 21-12 MJN ACE8.1 IF NON-RECOVERABLE MASS STORAGE ERROR LDM MSD CHECK FOR SUBSYSTEM SHN 21-13 PJN ACE8.1 IF SUBSYSTEM, RETURN ERROR LDD T5 EST ORDINAL OF DEVICE STD IR+4 EXECUTE 1RJ ROLL JOB * LJM PPR DOES NOT RETURN ACE8.1 MONITOR ABTM ABORT CONTROL POINT LJM PPR EXIT ACE8.2 LDD SP+1 SEE IF AT RIGHT COMMAND LPC 3777 CLEAR EOR FLAG LMM ACEB NJN ACE8 IF NOT AT RIGHT COMMAND LMD SP+2 LMM ACEB+1 NJN ACE8 IF NOT AT RIGHT COMMAND UJN ACE12 UPDATE COMMAND WORD ACE9 LDN 2 NUMBER OF COMMAND BOUNDARIES STD T1 ACE10 AOD SP+3 LMC CSBN ZJN ACE11 IF AT FIRST WORD IN BUFFER NFA SP+3,R CRD CM LDD CM+4 NJN ACE10 IF NOT END OF COMMAND SOD T1 NJN ACE10 IF NOT SECOND COMMAND BOUNDARY SOD SP+3 PLACE COMMAND POINTER TO NEXT COMMAND ACE11 SOD SP+2 DECREMENT COMMAND COUNTER PJN ACE12 IF NO UNDERFLOW SOD SP+1 AOD SP+2 ACE12 LDD CP UPDATE COMMAND WORD ADN CSPW CWD SP ACE13 LDD CP LOAD ENTRY POINT WORD ADC SEPW CRD CM LDD CM CLEAR *ARG=* AND *SDM=* FLAGS LPC 7727 STD CM LDD IR+2 CHECK OPTIONS SHN 21-1 MJN ACE14 IF SEND DAYFILE LDN 10 SET *SDM=* FLAG RAD CM ACE14 LDD IR+2 LPN 1 SET ARG= VALUE SHN 5 RAD CM AOM ACEC+4 SET COMPLETION BIT LDD IR+3 RETURN FUNCTION CODE TO CALLER LPN 37 SHN 6 ADD RA SHN 6 ADD IR+4 CWM ACEC,ON LDM ACEC+4 LPN 40 NJN ACE15 IF BACKSPACE FUNCTION LDD CP RETURN ENTRY POINT WORD ADC SEPW CWD CM LDD IR+1 SET CP NUMBER AND RECALL STATUS LPN 77 RAM ACEA+1 LDD IA MAKE CALL TO *TCS* CWM ACEA,ON EXECUTE TCS,= LJM PPR LOAD *TCS* ACE15 LJM SFPX EXIT ACEA VFD 18/3LTCS,1/0,5/0,12/4,6/40,18/CCDR SPACE 4,10 * COMMON DECKS. *CALL,COMPRNS *CALL,COMPRCS SPACE 4,10 USE BUFFER STMT EQU * COMMAND BUFFER ACEB EQU STMT+55 COMMAND COUNT ACEC EQU ACEB+2 FUNCTION CODE SPACE 4,10 OVERFLOW OVL OVERLAY (PRM - PERMISSION CHECKING FUNCTION.) PRM SPACE 4,30 *** PRM - *SCOPE 3.4* PERMISSION CHECKING FUNCTION. * * PRM WILL SCAN FOR AN FNT ENTRY WHOSE ADDRESS IS * CONTAINED IN THE CALL AND, IF FOUND, WILL MAP THE *NOS* * FILE PERMISSION BITS INTO THE *SCOPE 3.4* PERMISSION BITS AND * RETURN TO THE USER AS A STATUS. IF THE CALL ADDRESS IS OUT * OF RANGE OR THE REQUESTED FILE DOES NOT EXIST, NO DIAGNOSTIC * WILL BE ISSUED AND NO STATUS WILL BE RETURNED TO THE USER. * * CALL * *T 24/ *PRM*,18/ ,18/ PARM ADDRESS * * *PARM ADDRESS* = CM ADDRESS WHICH CONTAINS THE FILE * NAME TO SEARCH FOR. * *T PARM 42/ *LFN*,9/ CODE,8/ ,1/C * * *CODE* = A 5-BIT CODE RETURNED BY *PRM* IN BITS * 9 - 13. THE RIGHTMOST 4 BITS ARE THE * PERMISSION BITS. THE BINARY CODES ARE * * BITS 9 - 12. * * 1 0 0 0 CONTROL PERMISSION * 0 1 0 0 MODIFY PERMISSION * 0 0 1 0 EXTEND PERMISSION * 0 0 0 1 READ PERMISSION * * BIT 13. * * 1 NON - PERMANENT FILE * 0 PERMANENT FILE * * ALL BITS(9 - 13) ZERO IMPLIES FILE NOT FOUND. * * *C* = COMPLETION BIT. SET TO 1 WHEN FUNCTION IS * COMPLETED. ENTRY PRM ENTRY LDN SSTL CHECK LOGGING ENABLED CRD CM LDD CM+3 SHN 21-4 MJN PRM1 IF ANALYST LOGGING DISABLED LDC =C$ **** USE *FILINFO* IN PLACE OF *PRM* CALL ****.$ RJM DFM PRM1 LDA IR+3 READ FILE NAME CRD FN SET FILE TO FIND RJM SAF SEARCH FOR FILE ZJN PRM8 IF FILE NOT FOUND LDD FS+4 CHECK FOR DIRECT ACCESS FILE SHN -6 LMN PMFT ZJN PRM2 IF DIRECT ACCESS LDN 2 SET NON - PERMANENT FILE RAD FN+3 PRM2 LDD FS+3 CHECK PERMISSIONS LPN 35 ZJN PRM3 IF WRITE LMN 30 ZJN PRM4 IF MODIFY LMN 30&20 ZJN PRM5 IF APPEND LMN 20&10 ZJN PRM6 IF UPDATE LMN 10&5 ZJN PRM7 IF EXECUTE LCN 17-1 SET READ ONLY PERMISSION PRM3 ADN 10 SET CONTROL PERMISSION PRM4 ADN 4 SET MODIFY PERMISSION PRM5 ADN 3 SET EXTEND/READ PERMISSIONS UJN PRM7 RETURN PERMISSION BITS PRM6 ADN 5 SET READ/MODIFY PERMISSIONS PRM7 SHN 11 POSITION PERMISSION BITS STD FN+4 SHN -14 RAD FN+3 PRM8 AOD FN+4 SET COMPLETION BIT LDA IR+3 RETURN INFORMATION TO CALLER CWD FN LJM SFPX EXIT * COMMON DECKS. *CALL COMPSAF SPACE 4,10 OVERFLOW OVL OVERLAY (SRP - SPECIAL REQUEST PROCESSING.) SRP SPACE 4,30 *** SRP - SPECIAL REQUEST PROCESSING. * * SRP CONSISTS OF ROUTINES WHICH SET UP A SPECIAL * PROCESSING WORD IN THE CALLING CONTROL POINT AREA (SPCW) * FOR FOLLOW-UP PROCESSING BY *1AJ* AND A CP PROGRAM * ASSOCIATED WITH THE CALL. * * FORMAT OF *SPCW* - * *T SPCW 18/ ENTRY POINT, 6/ CODES, 18/ PARAMETER, 18/ PARM ADDR * * ENTRY POINT = NAME OF ENTRY IN CP PROGRAM. * CODES = CONTROL CODES FOR USE BY *1AJ* * 1/A, 1/B, 1/C, 1/D, 2/0 * A = REQUEST ACTIVE (1AJ USE ONLY) * B = CLEAR RA+1 BEFORE RELOAD IF NOT SET * C = REMAINDER OF WORD IS PARAMETER LIST NOT * ADDRESS OF PARAMETER LIST * D = DO NOT RESTART CPU (1AJ USE ONLY) * PARAMETER = INPUT/OUTPUT PARAMETER * 18/ PARAMETER ON INPUT * 12/ STATUS,6/ UNUSED ON OUTPUT * PARM ADDR = PARAMETER ADDRESS PASSED IN CALL. * * EACH *SRP* ROUTINE WILL SET THE ROLLOUT FLAG IN THE CONTROL * POINT AREA. * * DAYFILE MESSAGES. * * *SFP/SRP SPECIAL REQUEST PROCESSING ERROR.* * A SPECIAL REQUEST WAS OUTSTANDING WHEN THE CURRENT * SPECIAL REQUEST WAS ISSUED. CKP SPACE 4,10 ** CKP - CHECKPOINT REQUEST. * * ENTRY (IR - IR+4) = CALL. * * EXIT SPCW WORD SET IN CONTROL POINT AREA FOR CP PROGRAM. ENTRY CKP ENTRY LDN 0 SELECT CLEAR RA+1 OPTION (CODES B) UJN DMP1 PROCESS *SPCW* WORD REQ SPACE 4,10 ** REQ - REQUEST EQUIPMENT ASSIGNMENT. * * ENTRY (IR - IR+4) = CALL. * * EXIT SPCW WORD SET IN CONTROL POINT AREA FOR CP PROGRAM. ENTRY REQ ENTRY LDN 0 SELECT CLEAR RA+1 OPTION (CODES B) UJN DMP1 DEP SPACE 4,10 ** DEP - DUMP EXTENDED MEMORY FIELD LENGTH. * * ENTRY (IR - IR+4) = CALL. * * EXIT SPCW WORD SET IN CONTROL POINT FOR CP PROGRAM. ENTRY DEP ENTRY LDN 0 SELECT CLEAR RA+1 OPTION (CODES B) UJN DMP1 PROCESS *SPCW* WORD DMP SPACE 4,10 ** DMP - DUMP CM FIELD LENGTH. * DMB - DUMP CM/EXTENDED MEMORY FIELD LENGTH IN BINARY. * DMM - DUMP MACHINE MEMORY. * * ENTRY (IR - IR+4) = CALL. * ENTERED AT *DMP1* FROM *CKP*, *DEP* AND *RWQ*. * * EXIT SPCW WORD SET IN CONTROL POINT AREA FOR CP PROGRAM. * * USES CM - CM+4, IR+1. * * CALL ISP. * * MACROS MONITOR. ENTRY DMP ENTRY LDN 10 SELECT PARAMETER LIST OPTION (CODES C) DMP1 STD CM LDD IR+1 CHECK AUTO RECALL LPN 40 NJN DMP1.1 IF AUTO RECALL SPECIFIED LJM DMP2 PROCESS ERROR DMP1.1 BSS 0 RJM ISP INITIALIZE SPCW LDD CM RAM DMPA+1 LDD CP LOAD SPCW ADC SPCW CRD CM LDD CM CHECK FOR *SPCW* FREE NJN DMP2 IF *SPCW* NOT FREE LDD CP STORE SPECIAL REQUEST ADC SPCW CWM DMPA,ON LDN ZERL CLEAR *ROCM* PARAMETERS CRD CM ERRNZ ROSR CODE ASSUMES *ROSR* = 0 MONITOR ROCM LDD IR+1 RESTORE SYSTEM REQUEST SCN 77 LMN 20 SET AUTO RECALL STD IR+1 LDD RA WRITE TO RA+1 SHN 6 ADN 1 CWD IR LJM SFPX EXIT DMP2 LDN /ERR/SRE *SFP/SRP SPECIAL REQUEST ERROR.* LJM ERR ERROR EXIT DMPA VFD 18/0,6/0,12/0,6/0,18/0 ISP SPACE 4,10 ** ISP - INITIALIZE SPCW. * * EXIT (DMPA - DMPA+1) = ((IA)) ISP SUBR ENTRY/EXIT LDD IA READ CALL CRM DMPA,ON LDM DMPA+1 SCN 77 CLEAR CODES STM DMPA+1 UJN ISPX RETURN SPACE 4,10 OVERFLOW OVL OVERLAY (ERP - ERROR PROCESSOR.) ERRNZ 3R".O"-3R2SG *SLL* ASSUMES *2SG* IS ERROR PROCESSOR ERP SPACE 4,10 *** ERP - ERROR PROCESSOR. * * ENTRY (EI) = ERROR NUMBER. * * EXIT TO *PPR* IF CONTROL POINT ABORTED. * TO *SFPX* IF NON=FATAL ERROR. * * CALLS DFM, NFE, SNM, SPN. * * MACROS MONITOR. ENTRY ERP LDC ERPT+1 SET MESSAGE ADDRESS RAD EI LDM -1,EI ZJN ERP1 IF NO SPECIAL PROCESSING STM ERPA RJM 0 PREPROCESS ERROR ERPA EQU *-1 ERP1 LDD EI LMC /ERR/PCE+ERPT+1 ZJN ERP3 IF PP-CALL ERROR ERP2 LDI EI ISSUE MESSAGE TO DAYFILE RJM DFM MONITOR ABTM ABORT CONTROL POINT LJM PPR ERP3 LDD CP ADN FLSW CRD T0 LDD T0+2 ADD T0+3 ZJN ERP4 IF SYSTEM CONTROL POINT LDD FL ZJN ERP2 IF NO FIELD LENGTH LDM SNMB NJN ERP2 IF REQUEST NOT FROM INPUT REGISTER LDN PCET STD CM+1 MONITOR CEFM CHANGE ERROR FLAG LDD RA REWRITE SYSTEM REQUEST TO RA+1. SHN 6 ADN 1 CWD IR LJM SFPX DROP PP ERP4 LDC SNMA * XXX NOT IN PP LIB.* RJM DFM LJM SFPX DROP PPU ERPT BSS 0 QUAL ERR LOC 0 SCE CON 0,=C* SFP CALL ERROR.* PCE CON /".O"/SNM,/".O"/SNMA * XXX NOT IN PP LIB.* *PCE CON 0,0 * MONITOR CALL ERROR.* (ISSUED BY 1AJ) IOC CON /".O"/SPN,=C* INCORRECT ORIGIN CODE.* PAE CON /".O"/SPN,=C* PARAMETER ERROR.* IAF CON /".O"/SPN,=C* INCORRECT FUNCTION CODE.* SRE CON /".O"/SPN,=C* SPECIAL REQUEST PROCESSING ERROR.* NET CON /".O"/NFE,=C* ERROR TEXT NOT FOUND.* NMS CON /".O"/NFE,=C* ERROR TEXT NOT ON MASS STORAGE.* BET CON /".O"/NFE,=C* BAD ERROR TEXT.* IMN CON /".O"/NFE,=C* INCORRECT MESSAGE NUMBER.* IOS CON /".O"/SPN,=C* I/O SEQUENCE ERROR.* IDC CON /".O"/SPN,=C* UNKNOWN DEVICE NAME/TYPE.* LOC *O QUAL * NFE SPACE 4,10 ** NFE - NON-FATAL ERROR PROCESSOR. * * NFE ISSUES THE SPECIFIED MESSAGE AND A SECOND MESSAGE WHICH * IDENTIFIES THE ERROR TEXT AND MESSAGE NUMBER. * * ENTRY (EI) = ADDRESS OF *ERPT* POINTER TO ERROR MESSAGE. * (MN) = MESSAGE NUMBER. * (ERRA - ERRA+3) = ERROR TEXT NAME. * * EXIT TO *SFPX*. * * USES T1. * * CALLS ACS, ANS, DFM, SPN. NFE CON 0 ENTRY RJM SPN SET PACKAGE NAME IN MESSAGE LDI EI LMC CPON ISSUE BASE MESSAGE RJM DFM LDI EI ADN 4 ADVANCE PAST * SFP/D00* STD T1 LDN 0 TRUNCATE BASE MESSAGE STI T1 LDC =C* TEXT=* RJM ACS ASSEMBLE CHARACTER STRING LDC ERRA ADDRESS OF TEXT DECK NAME RJM ACS ASSEMBLE TEXT DECK NAME LDC =C*, MSG=* RJM ACS ASSEMBLE CHARACTER STRING LDM ERRB RJM ANS ASSEMBLE MESSAGE NUMBER LDC =C*B.* RJM ACS TERMINATE MESSAGE LDI EI LMC CPON ISSUE SECOND MESSAGE RJM DFM LJM SFPX DROP PP SNM SPACE 4,10 ** SNM - SET NAME IN MESSAGE. * * ENTRY (PN - PN+1) = PACKAGE NAME TO LOAD. * (IR - IR+1) = PROGRAM MAKING CALL. * * EXIT * XXX NOT IN PP LIB.* MESSAGE SET UP. * * USES PN+1. SNM SUBR ENTRY/EXIT LDD PN+1 SET PACKAGE NAME LPN 77 NJN SNM1 IF NOT ZERO CHARACTER LDN 1R RAD PN+1 SNM1 LDD PN+1 STM SNMA+1 LDD PN LMC 1R *100 STM SNMA LDD IR+1 SCN 77 LMN 1R. STM SNMB+6 SCN 77 SHN 6 LMD IR STM SNMB+5 SHN 6 LMD PN+1 SHN 6 LMD PN NJN SNM2 IF CALLED BY *YYY* STM SNMB SNM2 LJM SNMX RETURN SNMA DATA L* XXX NOT IN PP LIB. * SNMB DATA C*CALLED BY YYY.* SPN SPACE 4,10 ** SPN - SET PACKAGE NAME. * * ENTRY (EI) = ADDRESS OF *ERPT* POINTER TO ERROR MESSAGE. * * USES T1. SPN SUBR ENTRY/EXIT LCN 4 RAI EI STD T1 LDC 2R S STI T1 ADD * SFP* TO MESSAGE LDC 2RFP STM 1,T1 LDD IR+1 SCN 77 SHN 6 LMD IR SHN 6 STM 3,T1 ADD PACKAGE NAME TO MESSAGE SHN -14 LMC 1R/*100 STM 2,T1 UJN SPNX RETURN * COMMON DECKS FOR ERROR PROCESSOR. *CALL COMPACS *CALL COMPANS SPACE 4,10 OVERFLOW OVL OVERLAY (D00 - EXTRACT ERROR TEXT.) D00 SPACE 4,30 *** D00 - EXTRACT ERROR TEXT. * * D00 IS A GOODIE THAT WILL EXTRACT MESSAGES FROM SPECIALLY * CREATED SYSTEM TEXT DECKS TO AID IN ANALYZING ERROR * SITUATIONS RESULTING FROM A PRODUCT SET. BY USING AN ERROR * NUMBER AND THE PROPER SYSTEM TEXT DECK, AN ERROR DIAGNOSTIC * WILL BE TRANSMITTED TO THE DAYFILE AND/OR TO A SPECIFIED CM * BUFFER. ALL SYSTEM TEXT DECKS TO BE USED MUST BE * MS RESIDENT. * * CALL. * *T 18/ *D00*,6/R,18/0,18/ ADDRES * *T,ADDRES 12/ A,12/ MSG NO.,12/ BUF SIZE,18/ BUF ADDR ,6/ *T 42/ TEXT DECK NAME,18/ INSERT CHARACTER * * WHERE A = 4000B - IF INSERTIONS TO MESSAGES. * A = 2000B - IF DAYFILE MESSAGE TRANSFER. * A = 1000B - IF CM BUFFER MESSAGE TRANSFER. * * EXIT. * *T ADDRES 36/ ,12/ STATUS,12/ 1 * * WHERE STATUS = 0 - IF TRANSMITTAL TO DAYFILE ONLY. * * = 7777B IF ERROR. * = CM WORDS WRITTEN IF CM BUFFER TRANSMITTAL. * * * DAYFILE MESSAGES. * * * *SFP/D00 ERROR TEXT NOT FOUND.* * THE SPECIFIED SYSTEMS TEXT COULD NOT BE FOUND. * * *SFP/D00 ERROR TEXT NOT ON MASS STORAGE.* * THE SPECIFIED SYSTEMS TEXT DOES NOT RESIDE ON * MASS STORAGE. * * *SFP/D00 BAD ERROR TEXT.* * THE SPECIFIED SYSTEMS TEXT IS NOT IN CORRECT FORMAT. * * *SFP/D00 INCORRECT MESSAGE NUMBER.* * THE SPECIFIED MESSAGE NUMBER COULD NOT BE FOUND ON * THE SYSTEMS TEXT. * * *SFP/D00 TEXT = XXXXXXX, MSG = NNNN.* * IDENTIFIES THE SPECIFIED TEXT AND MESSAGE NUMBER * CAUSING THE PREVIOUS DAYFILE MESSAGE. ALWAYS * FOLLOWS ONE OF THE ABOVE DAYFILE MESSAGES. EJECT * DIRECT CELL ASSIGNMENTS. BA EQU 20 PP BUFFER ADDRESS B1 EQU 21 TEMPORARY STORAGE B2 EQU 22 TEMPORARY STORAGE IA EQU 23 INDEX ADVANCE BE EQU 24 END OF PP BUFFER IF EQU 25 INSERTION FLAG TD EQU 26 TRANSMIT DAYFILE TC EQU 27 TRANSMIT CM BUFFER AB EQU 40 - 44 TEXT NAME ER EQU 40 RECORD STATUS SC EQU 41 SECTOR COUNT WC EQU 42 WORD COUNT IC EQU 44 INSETTION CHARACTER AD EQU 45 - 46 CM BUFFER ADDRESS ST EQU 47 EXIT STATUS P0 EQU 57 TEMPORARY LOCATION MN EQU 60 MESSAGE NUMBER BF EQU 61 CM BUFFER SIZE P1 EQU 62 TEMPORARY LOCATION IN EQU 63 - 67 INSERTION MESSAGE EJECT * D00 - MAIN PROCESSING. D001 LDC TBUF PROCESS FIRST SECTOR RJM FPB LDM 2,BA LMC 7700 NJN D002 IF NO PREFIX TABLE AOM 3,BA STD T2 SHN 2 ADD T2 RAD BA ADVANCE INDEX LDD WC SBD T2 ADJUST WORD COUNT STD WC D002 LDM 2,BA ADM 3,BA LMC 5101 ZJN D004 IF SYSTEMS TEXT FORMAT D003 LDN /ERR/BET *SFP/D00 BAD ERROR TEXT.* LJM NFE NON FATAL ERROR D004 STD ST CLEAR STATUS BYTE LDM 12,BA SHN 14 LMM 13,BA SET LENGTH OF SYMBOL TABLE SHN -1 STD P0 ZJN D003 IF NO SYMBOL TABLE LDN 25 RAD BA ADVANCE INDEX LCN 4 RAD WC RJM SST SEARCH SYMBOL TABLE RJM PMS PROCESS MICRO SEARCH * INSERT MESSAGE STUFF. LDD IF NJN D005 IF INSERTIONS TO BE PROCESSED STD IC CLEAR INSERTION CHARACTER D005 RJM PIM PROCESS D00 OPTIONS * SET EXIT STATUS. D006 RJM SES LJM SFPX RETURN PIM SPACE 4,20 ** PIM - PROCESS MESSAGE INSERTIONS. * * ENTRY (IC) = INSERTION CHARACTER. * (TC) = TRANSMIT TO CM BUFFER FLAG. * (TD) = TRANSMIT TO DAYFILE FLAG. * (BA) = LWA OF MESSAGE. * (BF) = BUFFER SIZE. * (AD - AD+1) = FWA OF CM BUFFER. * (P1) = FWA OF MESSAGE. * * EXIT MESSAGE SENT TO DAYFILE AND MESSAGE BUFFER * AS REQUIRED. * (ST) = NUMBER OF CM WORDS RETURNED TO CM BUFFER. * * USES P0, P1, ST, T1, T4, T5, T6. * * CALLS DFM, ICS. * * MACROS LDA. PIM SUBR ENTRY/EXIT LDN 1 STD P0 INITIALIZE INDEX TO PARAMETER AREA LDC MBUF STD T6 DEFINE CHARACTER BUFFER SOD P1 LDM -1,BA SCN 77 CLEAR END OF MESSAGE STM -1,BA * PROCESS MESSAGE INSERTIONS. PIM1 AOD P1 ADVANCE MESSAGE ADDRESS LDI P1 SHN -6 EXTRACT UPPER CHARACTER STI T6 ZJN PIM4 IF END OF MESSAGE LMD IC NJN PIM2 IF NOT INSERTION CHARACTER RJM ICS PIM2 AOD T6 ADVANCE BUFFER ADDRESS SBD P1 PJN PIM4 IF MESSAGE OVERLAID LDI P1 LPN 77 EXTRACT LOWER CHARACTER STI T6 ZJN PIM4 IF END OF MESSAGE LMD IC NJN PIM3 IF NOT INSERTION CHARACTER RJM ICS PIM3 AOD T6 ADVANCE BUFFER ADDRESS SBD P1 MJN PIM1 IF NOT OVERLAYING MESSAGE PIM4 LDC MBUF STD T4 STD T5 SET START OF CHARACTER BUFFER STD T1 LMD T6 CHECK - END OF MESSAGE ON BYTE BOUNDARY LPN 1 ZJN PIM5 IF ON BYTE BOUNDARY AOD T6 LDN 0 STORE ZERO ON BYTE BOUNDARY STI T6 * PACK MESSAGE WITH INSERTIONS. PIM5 LDI T1 SHN 6 PACK MESSAGE WITH INSERTIONS LMM 1,T1 STI T5 STORE TWO CHARACTERS AOD T5 LDN 2 RAD T1 ADVANCE THRU CHARACTER BUFFER LMD T6 NJN PIM5 IF NOT END OF MESSAGE * SEND MESSAGE TO DAYFILE. LDD TD ZJN PIM6 IF NO TRANSMISSION TO DAYFILE RJM IDM ISSUE DAYFILE MESSAGE * SEND MESSAGE TO CM BUFFER. PIM6 LDD TC NJN PIM7 IF MESSAGE GOING TO CM BUFFER LJM PIMX RETURN PIM7 LDM -1,T5 CHECK LAST CHARACTER LPN 77 NJN PIM8 IF NOT ZERO LDN 1R RAM -1,T5 INSERT BLANK CHARACTER PIM8 AOD ST LDN 5 RAD T4 FIND CM WORD COUNT OF MESSAGE SBD T5 MJN PIM8 IF NOT END OF MESSAGE STD T1 NJN PIM9 IF EOM NOT ON CM WORD BOUNDARY AOD ST ADVANCE WORD COUNT LDN 5 STD T1 PIM9 LDN 0 ZERO FILL END OF MESSAGE STI T5 AOD T5 SOD T1 NJN PIM9 IF NOT ZERO FILLED LDD BF SBD ST PJN PIM10 IF MESSAGE LENGTH .LE. BUFFER SIZE LDD BF STD ST SET MESSAGE LENGTH = BUFFER SIZE PIM10 LDD AD SHN 14 LMD AD+1 CHECK - VALID CM ADDRESS ADD ST SHN -6 SBD FL MJN PIM11 IF END OF BUFFER WITHIN FL LDN /ERR/PAE LJM ERR PROCESS ERROR PIM11 LDA AD CWM MBUF,ST COPY MESSAGE TO CENTRAL PIMA EQU *-1 LJM PIMX RETURN NFE SPACE 4,10 ** NFE - NON-FATAL ERROR PROCESSOR. * * ENTRY (A) = ERROR NUMBER. * * EXIT (A) = ERROR NUMBER. * TO *ERR*. * * USES EI, ST. * * CALLS SES. NFE STD EI LCN 0 STD ST RJM SES LDD EI LJM ERR PROCESS ERROR SES SPACE 4,10 ** SES - SET EXIT STATUS. * * ENTRY (ST) = STATUS. * * EXIT PARAMETER BLOCK SET COMPLETE. * * USES CM - CM+4 * * MACROS LDA. SES SUBR ENTRY/EXIT LDN ZERL CRD CM LDD ST SET STATUS STD CM+3 AOD CM+4 SET REQUEST COMPLETE LDA IR+3 CWD CM UJN SESX RETURN ICS SPACE 4,10 ** ICS - INSERT CHARACTER STRING. * * ENTRY (P0) = INDEX FOR INSERTION TEXT. * (P1) = MESSAGE ADDRESS. * (T6) = STRING BUFFER ADDRESS. * * EXIT (P0) = INDEX FOR INSERTION TEXT. * (P1) = MESSAGE ADDRESS. * (T6) = STRING BUFFER ADDRESS. * * USES P0, T2, T6, IN - IN+4. ICS3 SOD T6 ADJUST STRING BUFFER INDEX ICS SUBR ENTRY/EXIT ICS1 AOD P0 ADVANCE PARAMETER INDEX LDA IR+3 ADD P0 CRD IN READ WORD OF TEXT FOR INSERTION LDN IN STD T2 SET ADDRESS OF FIRST BYTE ICS2 LDI T2 SHN -6 EXTRACT UPPER CHARACTER STI T6 ZJN ICS3 IF END OF INSERTION AOD T6 SBD P1 PJN ICS3 IF MESSAGE BEING OVERLAID LDI T2 LPN 77 EXTRACT LOWER CHARACTER STI T6 ZJN ICS3 IF END OF INSERTION AOD T6 SBD P1 PJN ICS3 IF MESSAGE BEING OVERLAID AOD T2 LMN IN+5 NJN ICS2 IF NOT END OF CM WORD UJN ICS1 LOOP FOR MORE INSERTION TEXT IDM SPACE 4,10 ** IDM - ISSUE DAYFILE MESSAGE. * * ENTRY (T4) = FWA OF MESSAGE. * (T5) = LWA+1 OF MESSAGE. * * EXIT ((T5)) = 0. * * USES T1,T2,T6,T7. * * CALLS DFM. IDM SUBR ENTRY/EXIT LDD T4 INITIALIZE NEXT FRAGMENT POINTER STD T6 LDD T5 CALCULATE MESSAGE LENGTH SBD T4 STD T7 * LOOP UNTIL ALL OF THE MESSAGE HAS BEEN ISSUED TO THE DAYFILE. * THE MESSAGE IS ISSUED IN FRAGMENTS OF 50 CHARACTERS OR LESS. IDM1 LDD T7 CALCULATE MINIMUM OF 50 OR REMAINDER SBN 26D PJN IDM2 IF MORE THAN 50 CHARACTERS REMAIN LDD T7 SET NUMBER OF WORDS IN LAST FRAGMENT STD T1 LDN 0 CLEAR LENGTH FOR NO REMAINING FRAGMENT STD T7 UJN IDM3 ISSUE LAST MESSAGE FRAGMENT IDM2 ADN 1 SET NEW LENGTH OF REMAINING FRAGMENT STD T7 LDN 25D SET FOR A 50 CHARACTER FRAGMENT STD T1 * SETUP THE NEXT MESSAGE TO BE ISSUED. IDM3 LDD T1 CALCULATE ADDRESS OF VALUE TO SAVE/CLEAR ADD T6 STD T2 FWA + NEXT LENGTH + COMBINED OLD LENGTH LDI T2 GET VALUE TO BE SAVED STI T5 SET AT LWA+1 OF MESSAGE LDN 0 SET FRAGMENT TERMINATOR STI T2 * ISSUE NEXT MESSAGE. LDD T6 SET ADDRESS OF CURRENT FRAGMENT STM IDMB LDD T1 ACCUMMULATE LENGTH OF FRAGMENTS RAD T6 IDMA LDC ** (*NMSN* AFTER FIRST FRAGMENT) IDMB EQU *-1 (ADDRESS OF FRAGMENT) RJM DFM ISSUE NEXT MESSAGE * PROCESS REMAINING FRAGMENTS AS NECESSARY. LDD T7 CHECK REMAINING LENGTH NJN IDM4 IF ANOTHER FRAGMENT TO PROCESS LJM IDMX EXIT IDM4 LDC LDCI+NMSN/10000 SETUP FOR NEXT MESSAGE ISSUED STM IDMA LDI T5 RESTORE THE VALUE USED FOR TERMINATOR STI T6 LJM IDM1 PROCESS NEXT MESSAGE FRAGMENT SPACE 4,10 MBUF EQU * MESSAGE BUFFER SST SPACE 4,10 ** SST - SEARCH FOR SYMBOL TABLE. * * ENTRY (P0) = LENGTH OF SYMBOL TABLE. * (BA) = BUFFER ADDRESS. * (MN) = MESSAGE NUMBER. * (BE) = LWA OF BUFFER. * (WC) = WORD COUNT. * * EXIT (IN - IN+4) = MICRO NAME. * (P0) = LENGTH OF SYMBOLTABLE. * * CALLS GNB. SST3 SOD BA SBN 10 STM SSTA LDD MA CWM *,ON MOVE MICRO NAME TO DIRECT CELLS SSTA EQU *-1 SBN 1 CRD IN SST SUBR ENTRY/EXIT SST1 LDI BA CHECK MESSAGE NUMBER LMD MN ZJN SST3 IF MESSAGE FOUND SOD P0 NJN SST2 IF NOT END OF SYMBOL TABLE LDN /ERR/IMN *SFP/D00 INCORRECT MESSAGE NUMBER.* LJM NFE PROCESS NON-FATAL ERROR SST2 LCN 2 RAD WC LDN 10D RAD BA ADVANCE INDEX SBD BE MJN SST1 IF STILL WITHIN BUFFER ZJN SST1 IF STILL WITHIN BUFFER LDD BA SBN 9D STD P1 RJM GNB GET NEXT BLOCK SOD IA LPN 3 LMC -0 RAD WC ADJUST WORD COUNT UJN SST1 CONTINUE SEARCH PMS SPACE 4,10 ** PMS - PROCESS MICRO SEARCH. * * ENTRY (P0) = LENGTH OF SYMBOL TABLE. * (WC) = WORD COUNT. * (T4) = CHANNEL. * * EXIT (P1) = FWA OF MESSAGE. * * CALLS CMP, FPB, GNB. PMS SUBR ENTRY/EXIT SOD P0 SHN 1 LENGTH TO END OF SYMBOL TABLE STD P0 SBD WC MJN PMS1 IF MICRO TABLE WITHIN BUFFER STD P0 LDC TBUF RJM FPB LOAD PP BUFFER PMS1 LDD P0 SHN 2 SET INDEX TO START OF MICRO TABLE ADD P0 ADN 2 RAD BA LDD WC DECREMENT WORD COUNT SBD P0 STD WC LDM 4,BA CHECK LENGTH OF MICRO TABLE NJN PMS2 IF NO LENGTH LDN /ERR/BET *SFP/D00 BAD ERROR TEXT.* LJM NFE PROCESS NON FATAL ERROR PMS2 LDD BA STD P1 SET ADDRESS OF MICRO CONTROL WORD PMS3 LDN 5 RAD BA LOCATE NEXT CONTROL WORD SOD WC NJN PMS4 IF NOT END OF BUFFER RJM GNB PMS4 LDI BA SHN -6 CHECK FOR MICRO CONTROL WORD LMN 20 NJN PMS3 IF NOT CONTROL WORD LDI BA LPN 77 STD T0 SHN 2 ADD T0 CHECK LENGTH OF ENTRY ADD P1 LMD BA NJN PMS3 IF NOT MICRO CONTROL WORD LDM -1,BA LPN 77 CHECK WORD COUNT FOR LWA MESSAGE SBN 10D PJN PMS3 IF INCORRECT COUNT RJM CMP NJN PMS2 IF NO MATCH ON MICRO NAME LDN 5 RAD P1 SET FWA OF MESSAGE LJM PMSX RETURN CMP SPACE 4,10 ** CMP - COMPARE MICRO NAME. * * ENTRY (IN - IN+4) = MICRO NAME. * ((BA)) = FWAOF NAME TO COMPARE. * * EXIT (A) = 0, IF NAMES COMPARE. CMP SUBR ENTRY/EXIT LDD IN+1 LMM 1,BA NJN CMPX IF NO MATCH ON BYTE 1 LDD IN+2 LMM 2,BA NJN CMPX IF NO MATCH ON BYTE 2 LDD IN+3 LMM 3,BA NJN CMPX IF NO MATCH ON BYTE 3 LDD IN+4 LMM 4,BA COMPARE BYTE 4 UJN CMPX GNT SPACE 4,10 ** GNT - GET NEXT BLOCK. * * ENTRY (T4) = CHANNEL. * (T5) = EQUIPMENT. * (T6) = TRACK. * (T7) = SECTOR. * * EXIT BUFFER FILLED. * * CALLS FPB. GNB SUBR ENTRY/EXIT LDD BA ADC 10000 SBD BE SET ADVANCE INTO NEXT BUFFER STD IA LDC TBUF SET BUFFER ADDRESS STD BA SOD BE GNB1 LDI P1 STI BA MOVE UNCHECKED DATA TO START OF BUFFER AOD BA AOD P1 LMD BE NJN GNB1 IF NOT END OF MOVE LDI P1 STD B1 LDM 1,P1 SAVE BYTES OVERLAID BY LINKAGE STD B2 LDD BA READ NEXT BLOCK RJM FPB LDC TBUF STD P1 SET START OF BUFFER AOD IA RAD BA ADVANCE BUFFER INDEX LJM GNBX RETURN FPB SPACE 4,20 ** FPB - FILL PP BUFFER. * * ENTRY (A) = FWA OF BUFFER. * (ER) = EOR STATUS. * (T5) = EQUIPMENT. * (T6) = TRACK. * (T7) = SECTOR. * * EXIT (BA) = FWA OF BUFFER. * TO *MSR* IF MASS STORAGE ERROR. * * CALLS RNS. * * MACROS ENDMS. FPB SUBR ENTRY/EXIT STD T3 STD BA SET BUFFER ADDRESS LDD ER ZJN FPB2 IF EOR ON LAST READ LDN 0 STD WC CLEAR WORD/SECTOR COUNT STD SC LDC 7775 SBD BA CALCULATE SPACE AVAILABLE SHN -6 STD T2 FPB1 AOD SC ADVANCE SECTOR COUNT LCN 5 RAD T2 PJN FPB1 IF NOT END OF BUFFER SPACE SOD SC ZJN FPB2 IF NOT ROOM FOR ONE SECTOR LDD T3 READ FIRST SECTOR OF BLOCK RJM RNS MJP MSR IF MASS STORAGE ERROR NJN FPB4 IF NOT EOF FPB2 ENDMS LDN /ERR/BET *SFP/D00 BAD ERROR TEXT.* LJM NFE ISSUE ERROR MESSAGE FPB3 LDI BE STD B2 SAVE BYTES OVERLAID BY LINKAGE LDI T3 STD B1 LDD T3 READ NEXT SECTOR RJM RNS MJP MSR IF MASS STORAGE ERROR FPB4 RAD WC INCREMENT WORD COUNT LDD B1 STI T3 RESTORE BYTES OVERLAID BY LINKAGE LDD B2 STM 1,T3 LDD T1 SHN 2 SECTOR WORD COUNT * 5 ADD T1 ADD T3 STD T3 ADN 1 STD BE SET END OF BUFFER LDD T1 SHN -6 SET RECORD STATUS STD ER ZJN FPB5 IF SHORT SECTOR SOD SC NJN FPB3 IF BUFFER SPACE FOR NEXT SECTOR FPB5 ENDMS LJM FPBX RETURN * COMMON DECKS *CALL COMPRNS TBUF EQU * *CALL COMPCLD TITLE PRESET. PRS SPACE 4,20 ** PRS - PRESET ROUTINE. * * EXIT (IF) = INSERTION FLAG. * (IC) = INSERTION CHARACTER. * (TD) = SEND MESSAGE TO DAYFILE FLAG. * (TC) = SEND MESSAGE TO CM BUFFER. * (T4) = CHANNEL. * (T5) = EQUIPMENT. * (T6) = TRACK. * (T7) = SECTOR, * (AD - AD+1) = CM BUFFER ADDRESS. * (MN) = MESSAGE NUMBER. * (BF) = BUFFER SIZE. * SYSTEM FILE ATTACHED. * MASS STORAGE DRIVER LOADED. * TO *MSR* IF MASS STORAGE ERROR. * * USES AB - AB+4, AD - AD+1, FS - FS+4, P0 - P0+4, T4 - T7. * * CALLS CLD. * * MACROS MONITOR. ENTRY D00 LDN ZERL CLEAR FLAG CELLS CRD IF * READ PARAMETER BLOCK LDA IR+3 CRD P0 ADN 1 CRD AB CRM ERRA,ON SAVE ERROR TEXT DECK NAME LDM ERRA+3 CLEAR ALL BUT TEXT DECK NAME SCN 77 STM ERRA+3 LDN 0 STM ERRA+4 LDD MN SAVE ERROR TEXT MESSAGE NUMBER STM ERRB LDD P0 SHN -11 SHN 11+6+1 STD IF SET INSERT FLAG SCN 1 SHN 1 STD TD SET DAYFILE FLAG SCN 1 SHN 1 STD TC SET CM BUFFER FLAG LDD P1+1 SCN 77 SHN 6 LMD P1 SHN 6 STD AD+1 SET CM BUFFER ADDRESS SHN -14 LPN 37 STD AD RJM CLD SEARCH LIBRARY DIRECTORY NJN PRS1 IF ERROR TEXT FOUND LDN /ERR/NET *SFP/D00 ERROR TEXT NOT FOUND.* LJM NFE PROCESS NON FATAL ERROR PRS1 CRD FS READ DIRECTORY ENTRY LDD FS+1 LPC 6000 ZJN PRS1.1 IF ON SYSTEM DEVICE SHN 21-14 MJN PRS1.0 IF ON ALTERNATE SYSTEM LDN /ERR/NMS *SFP/D00 ERROR TEXT NOT ON MASS STORAGE.* LJM NFE PROCESS NON FATAL ERROR PRS1.0 LDD FS+2 SET ALTERNATE EQUIPMENT LPC 777 STD T5 UJN PRS3 RESUME PROCESSING PRS1.1 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH STD T5 PRS2 AOD T5 SFA EST ADK EQDE CRD CM LDD CM SHN -12 LMN 3 NJN PRS2 IF NOT SYSTEM DEVICE PRS3 LDD FS+3 STD T6 SET TRACK LDD FS+4 STD T7 SET SECTOR SETMS READSYS LJM D001 ENTER MAIN ROUTINE SPACE 4,10 OVERFLOW OVL OVERLAY (FIN - FILE INFORMATION REQUEST.) FIN SPACE 4,30 *** FIN - FILE INFORMATION REQUEST. * * FIN MAPS VALID NOS/BE *FIN* FUNCTIONS INTO VALID NOS *CPM* * OR *LFM* REQUESTS AND ISSUES THESE REQUESTS. * * CALL. * *T 24/ *FINP*, 6/0, 6/ FC, 6/0, 18/ ADDR * * FC = FUNCTION CODE * * ADDR = PARAMETER ADDRESS (IF NEEDED) * * THE FOLLOWING MAPPING OCCURS - * * FC CALL/FUNCTION NORMAL NOS MACRO * * 01 LFM/32 FILINFO * 02 LFM/21 ACCSF * 03 LFM/22 ENCSF * 04 CPM/74 GETJCI * 05 CPM/74 SETJCI * * EXIT LFM OR CPM REQUESTS ISSUED. * * DAYFILE MESSAGES. * * *SFP/FIN INCORRECT FUNCTION CODE.* * THE SPECIFIED FUNCTION CODE IS UNDEFINED. ENTRY FIN LDD IR+2 VALIDATE FUNCTION CODE LPN 77 ZJN FIN1 IF NO FUNCTION CODE SBN TFINL MJN FIN2 IF LEGAL FUNCTION CODE FIN1 LDN /ERR/IAF * SFP/FIN INCORRECT FUNCTION CODE.* LJM ERR PROCESS ERROR FIN2 LDM TFIN,IR+2 SET FUNCTION CODE SHN 14 STD IR+2 MJN FIN3 IF *CPM* CALL EXECUTE LFM,* UJN FIN5 ISSUE *LFM* REQUEST FIN3 SHN 1 CHECK FOR SET FUNCTION PJN FIN4 IF GET LDD HN SET *SETJCI* FUNCTION RAD IR+3 FIN4 EXECUTE CPM,* FIN5 SHN 14 STD IR SHN -6 LMD IR+1 SCN 77 LMD IR+1 STD IR+1 LDD IA STORE INPUT REGISTER CWD IR LJM PPR EXIT TO PP RESIDENT ** TFIN - TABLE OF FUNCTION CODE TRANSLATIONS. * * INDEXED BY *FIN* FUNCTION CODE. * *T 6/ CODE, 6/ PP * * CODE = *CPM* OR *LFM* FUNCTION CODE. * PP = 0 IF *LFM* CALL. * = 40 IF *GETJCI* * = 60 IF *SETJCI* TFIN BSS 0 LOC 0 CON 0 CON 32*100+0 CON 21*100+0 CON 22*100+0 CON 74*100+40 CON 74*100+40+20 TFINL EQU * LOC *O SPACE 4,10 OVERFLOW OVL QUAL TTL SFP - SCOPE FUNCTION PROCESSOR. SPACE 4,10 END