The standard list of control statements for the library editing program includes the following:
• *M-replace program in system library
• *L-add/replace program in program library
• *P-produce absolute record
• *U-return to comment device for next control statement
• *V -get next control statement
• *Z-terminate processing
• *DL-list program library directory
• *DM-list system library directory
• *N-modify program library files
• *T -transfer information
• *K-change 110 devices
• *R-remove program
• *F-end-of-transfer indicator
• *FOK-transfer indicator
REPLACE PROGRAM IN SYSTEM LmRARY An *M (replace program in system library) statement replaces a program in the system library which executes in allocatable core with another program.
Format
The statement format is:
*M,or,s,d,M,N
7-1
Parameters
The parameters utilized for this statement are as follows:
7-2
or-This is the ordinal number iIi the system library directory and is a required parameter. If the ordinal number does not appear in the system library directory, or if the parameter is not specified, the statement is illegal.
s -This is a mass storage address. This parameter is illegal if M is blank.
After the relocatable binary programs are loaded and linked, a check is made on the thread of the directory entry which is being replaced. If the thread of the directory entry is busy, LIB EDT waits for' it to be freed, indicating this directory entry is not currently being operated. The thread is then set to a busy state to prevent scheduling of the file while LIB EDT is manipulating the directory and writing the new file onto mass storage (beginning at address s). If s is not specified in the input statement, a search of ' mass storage is made to find the first block of sectors which is large enough to contain this file. In most instances, this block is at the end of the library.
When the new program is shorter than the one it is supposed to replace, it is stored on the sectors of the file which it is replacing. At the completion of the update, the thread is cleared.
d-This is the data base indicator. This parameter is specified to allow linkage of allocatable core programs to data which has been previously linked to the program at initialization.
NOTE
When using this parameter, the following restriction exists: data cannot be preset into the 'established labeled common block by the loader, but program refer-ences will be absolutized properly.
M-M is the mass storage indicator. When M appears in the statement, the program which is to be replaced is mass-storage resident, and the ordinal represents its position in the system lib-rary directory relative to other mass-storage resident programs. When the length of the replacement program is less than or equal to the length of the program being replaced (rounded-up to the nearest sector), the new one overlays the old one on mass storage.
If M is omitted in the statement, the program to be replaced is core-resident, and the ordinal represents its position in the system library directory relative to other core-resident pro-grams. The length of the new program, if core-resident, must be equal to or less than that of the program which is being replaced. Since the directory entry for a core-resident ordinal does not contain length, no error indication can be given if it is longer than the program being replaced.
CAUTION
On-line use of LIBEDT for replacement of system library programs exposes the opera-tion to the following potential faults: 1) The interrupt system is disabled during core-resident program replacement, which for large programs, could inhibit system response for excessive periods of time. The program length of a core-resident program which is being replaced cannot be checked by LIB EDT. 2) A larger program is loaded without indication of error, potentially destroying part of the system.
N-This indicates that linking to the program library is not required. When a new program is added to the system library, the library editing program issues a loader request to load one or more relocatable binary programs from the standard input device until a loader EOL state-ment (*T), a nonloader statestate-ment, or a device failure is detected. If at this time any unpatched' externals exists, automatic linkage is performed to the core resident entry point (CREP) tables.
Any unpatched externals that remain after this linkage are listed, and the user has the option of continuing by typing an *. Termination of the load is performed by manual interrupt followed by *Z. If the field is blank, automatic linkage to the program library is performed after the CREP linkage. Any remaining unpatched externals are listed, and the user may continue or terminate as previously described.
If loading is terminated with an EOL statement, the library editing program looks to the comment device (*U statement) or standard input device (*V statement) for the next control statement. If loading was terminated by a nonloader statement, the nonloader statement is processed as a control statement to the library editing program
ADD OR REPLACE PROGRAM IN PROGRAM LmRARY
An *L (add/replace program in program library) statement adds a new program to the library or replaces a program in the library.
Format
The statement format is as follows:
*L,epn Parameter
The parameter used in the *L statement is:
epn-Ifthe entry-point name does not appear in the program library directory, this statement adds a new program to the library. When an addition is made to the library, the library editing program reads format records of binary input from the standard input device and writes them onto mass storage.
Entry-point names for programs added to the library are recorded in the directory along with the beginning mass storage addresses. . If the entry-point name does appear in the directory, the program which contains this entry point is replaced. The new entry-point name is placed in the directory. When a pro-gram is replaced in the library, its entry-point name is removed from the directory.
If a mass storage unit is to be used as a system input device, the input operation begins at the first scratch sector. This feature allows the user to assemble and obtain load-and-go output. By assigning the load-and-go unit as the system input device with a monitor control statement (*K,I unit number), the load-and-go unit becomes the input device for processing an *L, entry-point name control statement.
PRODUCE ABSOLUTE RECORD
An *p (produce absolute record) statement directs the library editing program to produce an absolute record from one or more relocatable binary programs. The relocatable binary programs are loaded in core by the loader under control of the library editing program.
Format
The statement format is as follows:
*P,n,P/R,sa Parameters
The parameters for the request to produce an absolute record are as follows:
n-The parameter n indicates the record format n =f. F or omitted
A single format record is written on the standard binary output device
n=F
Output is in format records of 96 words each.
If binary output is assigned to a mass storage device, this unit must be the library unit, since subsequent operations expect the absolute file to start on the scratch area fol-lowing the library (that is, the sector defined by the contents of $CO and $C1).
P/R-This parameter indicates the order of linkage.
The use of the P /R option makes it possible build subprogram parts for foreground-allocatable or partition-core programs. Such programs can then be stored on the disk as files by using the *N LIB EDT processor and can be overlaid in foreground user buffer areas by using the user programs. The imple-mentation of this technique negates the need of applying system directory entries for such files.
P parameter
If the P parameter field is blank, the order of linkage is the preset table, the program library, and/or the unprotected, unlabeled common area. If at this time, unpatched externals exist, the *p processor links to the CREP tables. If any unpatched externals still exist following this linkage, they are listed, and the user can enter an * to continue or an
*T to terminate.
If the parameter field is set to P, linkage is performed in the following order: protected unlabeled common, CREP tables, and the
7-3
7-4
program library. If unpatched externals exist following the linkage, a list is printed, and the user can enter an * or an *T.
R parameter
If the parameter field is set to R, linkage is performed in the following order: protected unlabeled common, CREP 1 table, CREP table, and the program library. If unpatched externals exist following the linkage, a list is printed, and the user can enter an * or an *T.
If the parameter field is set to a numeric value between 1 and 16, the relocatable binary pro-grams are absolutized at the beginning of the partition which was specified by the field. In all other cases of the P IR parameter, absolutizing begins at ($F7) plus one.
sa-This indicates the starting address and can be one of the following: point of the relocatable binary program read in by the loader. The entry point name DA TBAS is used to reference the data block set aside during a loader operation.
entry point name
+
hhhhhhhh is added to or subtracted from the core address to find the starting address.
If the starting address is omitted in an *p statement, the starting address is the beginning of the load at the address specified by ($F7) plus one. The binary output terminates with the last word of the load.
If the starting address is specified, the binary output extends from the starting address to the last word of the load. The starting address, therefore, must not be specified beyond the last word address of the relocatable binary load. If the *p statement is unacceptable to LIB EDT because it exceeds the last word address of the relocatable binary load, the error message Ell appears on the print device. The operator must type in an acceptable starting address without repeating an *P,n. A carriage return without a starting address has the same effect as a
starting address equal to the contents of location $F7 plus one. The error message is issued by the loader which is processing the starting address portion of an *p statem.ent.
RETURN TO COMMENT DEVICE FOR NEXT CONTROL STATEMENT
An *U (return to comment device· for next control statement) statement directs the library editing program to go to the comment device for subsequent control statements.
Format
The format is as follows:
*U
GET NEXT CONTROL STATEMENT
An *V (get next control statement) statement directs LIB EDT (system) input unit is assumed m-mode of control statement
A-formatted ASCII mode B-formatted binary mode
If mode is not specified, the control statements are read in formatted ASCII mode.
If the control statement *LIBEDT is read under an *V option in the job processor, LIBEDT continues processing with the same *V option.
TERMINATE PROCESSING
An *Z (terminate processing) statement terminates the library editing program processing and returns control to
the job prOCessor. .
Format
The format is as follows:
*Z
UST SYSTEM LIBRARY DIRECTORY
An *DM (list system library directory) statement directs the library editing program to list the system library directory on the print output device. The statement includes an *y or an *YM ordianl at the beginning of each line.
Format
The format is as follows:
*DM
UST PROGRAM LmRARY DIRECTORY
An *DL (list program library directory) statement directs the library editing program to list the program library directory on the standard print output device.
Format
The format is as follows:
*DL
MODIFY PROGRAM LmRARY
FILES
An *N (modify program library files) statement is used to add, replace, or edit a permanent binary file in the program library.
Format
When a file is added or replaced, only name and mode have to be specified in the following format:
*N,n,wl,w2,m
Parameters
Parameters for the *N statement are:
N-name of file; name is a I-to-6-character identification by which the file is addressed n-name of file; name is a l-to-6-character
identi-fication by which the file is addressed
WI-first word of file to be changed; WI and w2, where WI
<
w2, are used if only part of a file is to be changedwrlast word of file to be changed (refer to WI); if w2 is omitted, only the word specified by WI . is changed
m-the mode of input:
A-ASCII format records B-binary format records Input to *N Processor
Input to an *N processor consists of format records of 96 words or less. Input is terminated with any valid LIB EDT or an *Z statement.
The load-and-go unit can be used as an input device for processing an *N statement in the. same way as for an *L statement.
SET CORE REQUEST PRIORITY
An *S (set core request priority) statement sets the core request priority of an entry in the system directory. This determines the area in core where the file runs.
Format
The format is as follows:
*S,or,v,M Parameters
or-ordinal number which refers to an entry in the system directory
7-5
N-Ievel at which the request priority is to be set:
o
~ v .~ 15'M-s~ecifies mass-storage residen~ or core-resident M-ordinal number is mass-storage resident
=F M-ordinal number is core-resident
TRANSFER INFORMATION
An *T (transfer information) statement permits the tran'sfer of information between any two peripheral devices such as a card-to-tape or a tape-to-printer devicet.
An *T statement can be used in conjunction with an *F pseudo LIB EDT statement to perform information transfer in a batch job. On recognizing an *F during a transfer operation, LIBEDT outputs the IN message and proceeds to read the next control card.
Format
The format for an *T statement is as follows:
*T ,i,mi,o,mo,n,f Parameters
The statement format parameters are identified in the following manner:
i-input logical unit; if omitted, LIBEDT's standard input binary unit is selected
tLIBEDT for Phase-Encoded Tapes
mi-mode of input A-ASCII B-binary
o-output logical unit; if omitted, LIBEDT's standard output unit is selected
mo-mode of output A-ASCII B-binary
n-sets an upper limit on the number of records to be transferred; if n is omitted, records are transferred until the input device is empty or fails or encounters an *F control statement.' The upper limit on the number of records to be transferred is decimal.' At the end of transfer, the number of records and files encountered is printed in decimal format on the standard print device.
f-sets an upper limit on the number of files to be transferred; iffis omitted, files are transferred until the input device is empty, fails, or encounters an *F control statement. The upper limit of the number of files to be transferred is decimal. At the end of transfer, the number of records and files encountered is printed in decimal format on the standard print device.
CHANGE INPUT/OUTPUT DEVICES
An *K (change input/output devices) statement, which may occur in any order in respect to other statements, allows the operator to change LIB EDT devices. These
LIBEDT does not provide density selection, In order to use LIBEDT to copy tapes, density for each phase-encoded tape unit must be preset by using the following IOUP commands
• TSD,u,8 (select 800 bpi)
• TSD,u,16 (select 1,600 bpi)
With the appropriate densities selected, LIBEDT wiII copy:
7-6
• 800 to 800 bpi tapes
• 800 to 1,600 bpi tapes
• 1,600 to 1,600 bpi tapes
• 1.600 to 800 bpi tapes
CAUTION
The hardware returns to 1,600 bpi (and lights the HI DEN light) whenever a master clear or clear controller Is Issued. But with word 16 of each units' physical device table set to the required density, proper density returns to each unit as soon as a connect is made to It.
changes are internal to LIBEDT and do not affect the system device assignments.
Format
The format for an *K statement is as follows:
*K,Ilu,Plu,Llu Parameters
The *K statement uses the following parameters:
lu-Iogical unit number; if a unit number designates a protected device, an error exit is taken
I-LIBEDT's input unit
P-LIBEDT's binary output unit L-LIBEDT's print unit
Example of *K Statement
The parameters of an *K statement may be in any order, but must be separated by commas. In the following example, this statement sets LIBEDT's input unit to logical unit 2, its print unit to logical unit 5, and its binary output unit to logical unit 3.
*K,I2,LS,P3
An *K statement is terminated by a carriage return.
REMOVE PROGRAM
An *R (remove program) control statement removes a program with entry point n from the program library.
Format
The format is as follows:
*R,n,F Parameters
The parameters are defined as follows:
n---entry point of program or name of file to be removed; if F is included, the file name n is removed
F-specifies that n is a file name
END·OF·TRANSFER INDICATOR
The *F (end-of-transfer indicator) statement is a pseudo instruction to the *T processor of LIB EDT. When an *F followed by two spaces is encountered, the current *T operation is terminated and the next LIB EDT control statement is read from the standard input device.
TRANSFER INDICATOR
The *FOK (transfer indicator) statement, like an *F statement, is a pseudo instruction to the *T processor of LIBEDT. On encountering this statement during input, . an *F is transferred to the output device.
Table 7-1 shows sample transfer request statements.
Table 7·1. Sample Transfer Request Statements
Type Statement Description
*JOB Call job processor
Call -
-*LlBEDT Call LlBEDT
*T,6,A,9,A,,2 Transfer two files of information from logical unit 6 to logical unit 9
*L,PROG Put relocatable program on library Typical uses *N,PROG1",B Put absolutized file on library
*M,10",M Put allocatable core program on system library
*A12,2,1"", Put partition core program on system library
7-7