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