MONITOR SYSTEM LIBRARY

The System Library is a group of disk-resident subprograms and mainline programs that perform I/O, conversion, arithmetic, and disk initialization and disk maintenance functions. A paper tape utility program (PTUTL) is also included in the System Library. Appendix F is a listing of the Monitor System Library.

ADDING AND REMOVING SUBROUTINES

Subroutines can be added to or deleted from the Monitor System Library as desired by the user. The DUP control record STORE is used to add a subroutine and the DUP control record DELETE is used to remove a program (see DUP Control Records) Each program in the IBM-supplied system deck is preceded by a DUP STORE control record.

The user should not remove subroutines that are called by other subroutines left in the System Library (refer to Appendix F for a list of subroutines called by other subroutines). Neither should he delete any of the mainline programs, since they may be required by Monitor programs.

SYSTEM LIBRARY SUBROUTINES

The 1130 Monitor System Library contains a group of programs that aid the programmer in making efficient use of the 1130 Computing System. Descriptions of the programs and methods for programming them are contained in the publication, IBM 1130 Subroutine Library (Form C26-5929). From an operational standpoint, the programs of particular interest are the ISSs, which manipulate the I/O devices attached to the 1130 Computing System and handle all programming details peculiar to each device. Table 5 lists the ISSs supplied with the 1130 Monitor system.

NOTE: User-written ISSs should be numbered from 20 down to avoid conflict with IBM-assigned ISS numbers (see Digit 1 under Preoperative Errors).

NOTE: Although the disk subroutines are technically not ISSs, they have most of the characteristics of an ISS.

The following paragraphs describe the use of some of the IBM-supplied ISS subroutines and discuss preoperative errors and I/O error restarts in which special handling is required. All addresses are given in symbolic form. See the table of equivalence in the listing of the Resident Monitor (Appendix H) to equate the symbolic to the absolute addresses. ISS preoperative error WAITs are listed in Appendix A.

Table 5. 1130 Disk Monitor System ISS Names
Device Subroutine
1442 Card Read Punch CARDZ, CARD0, or CARD1
2501 Card Reader READZ, READ0, or READ1
1442 Card Punch PNCHZ, PNCH0, or PNCH1
Disk DISKZ, DISK1, or DISKN
1132 Printer PRNTZ, PRNT1, or PRNT2
1403 Printer PRNZ, or PRNT3
Keyboard/Console Printer TVPEZ, or TVPE0
Console Printer WRTYZ, or WRTY0
1134/1055 Paper Tape Reader Punch PAPTZ, PAPT1, PAPTN, or PAPIX
1627 Plotter PLOT1
1231 Optical Mark Page Reader OMPR1
Synchr. Comm. Adapter SCAT1, SCAT2, or SCAM

PREOPERATIVE ERRORS

A preoperative error is an error condition detected before an I/O operation is started. It denotes either an illegal parameter, an illegal specification in the I/O area, or a device not-ready condition. This error causes a trap to $PRET and the following conditions:

The ISS is set up to attempt initiation of the operation a second time if the CALL is re-executed. Pressing the PROGRAM START key will return control to the ISS for a re-execution of the call.

When a preoperative error is encountered the operator can:

1442 CARD SUBROUTINE ERRORS
(CARDx AND PNCHx)

Error Parameters

CARDZ CARD0 PNCHZ or PNCH0. There is no error parameter. If an error is detected during processing of an operation-complete interrupt, the subroutine traps to $PST4, with interrupt level 4 on. After the 1442 is made ready, pressing the PROGRAM START key will cause the operation to be reinitiated.

CARD1 or PNCH1. There is an error parameter. If an error is detected during processing of an operation-complete interrupt, the user program can elect to terminate (clear "subroutine busy indicator" and turn off the interrupt level) or to retry. A retry consists of waiting at $PST4 with interrupt level 4 on and then reinitiating the function.

Last Card. A read or feed function requested after the last card has been detected causes the last card to be ejected, and a trap to $PRET occurs. A punch function will punch and then eject the last card with a normal exit.

1442 Errors and Operator Procedures

If a 1442 error occurs, the 1442 becomes not-ready until the operator has intervened. Unless the stop is caused by a stacker full (no indicator) or chip box indication, the 1442 card path must be cleared before proceeding. The 1442 error indicators and the position of the cards in the feed path should be used to determine which cards must be placed back in the hopper.

For the card subroutines, a retry consists of positioning the cards (i. e., skipping the first card in the hopper, if necessary, on a read or feed operation) and reinitiating the function whenever the card reader becomes ready.

Read errors do not apply to the 1442-5.

Hopper Misfeed. Indicates that card 2 failed to pass properly from the hopper to the read station during the card 1 feed cycle.

Card positions after error:

1442 Misfeed card position
Error indicator: HOPR
Operator procedure: When program halts, press NPRO to eject card 1, place card 1 in hopper before card 2, and ready the 1442.

Feed Check (punch station). Indicates that card 1 is improperly positioned in the punch station at the completion of its feed cycle.

Card positions after error:

1442 Feed-check (punch station) error
Error indicator: PUNCH STA
Operator procedure: When program halts, empty hopper, clear 1442 card path, place cards 1 and 2 in hopper before card 3 and ready the 1442.

Transport. Indicates that card 1 has jammed in the stacker during the feed cycle for card 2.

Card positions after error:

1442 transport error
Error indicator: TRANS
Operator procedure: When program halts, empty hopper, clear 1442 card path, place cards 2 and 3 in hopper before card 4, and ready the 1442.

Feed Cycle. Indicates that the 1442 took an unrequested feed cycle and, therefore, cards 1, 2, and 3 are each one station farther ahead in the 1442 card path than they should be.

Card positions after error:

1442 feed cycle error
Error indicator: FEED CLU
Operator procedure: When program halts, empty hopper, press NPRO to eject cards 2 and 3, place cards 1, 2, and 3 in hopper before card 4, and ready the 1442.

Feed Check (read station). Indicates that card 1 failed to eject from the read station during its feed cycle.

Card positions after error:

1442 feedcheck (read station)
Error indicator: READ STA
Operator procedure: When program halts, empty hopper, clear 1442 card path, place cards 1 and 2 in hopper before card 3, and ready the 1442.

Read Registration. Indicates incorrect card registration or a difference between the first and second reading of a column.

Card positions after error:

1442 read registration error
Error indicator: READ REG
Operator procedure: See Feed check (punch station). Repeated failures of this type might indicate a machine malfunction.

Punch Check. Indicates an error in output punching.

Card positions after error:

1442 punch check error
Error indicator: PUNCH
Operator procedure: When program halts, empty hopper, check card position and press NPRO to clear 1442 card path. If necessary, correct card 1 to prepunched state. Place (corrected) card 1 and card 2 in hopper before card 3 and ready the 1442.

2501 CARD SUBROUTINE ERRORS (READx)

Error Parameters

READZ or READ0 There is no error parameter. If an error is detected during processing of an operation-complete interrupt, the subroutine traps to $PST4, with interrupt level 4 on. After the 2501 is made ready, pressing the PROGRAM START key will cause the operation to be reinitiated.

READ1. There is an error parameter. If an error is detected during processing of an operation-complete interrupt, the user program can elect to terminate (clear "subroutine busy indicator" and turn off the interrupt level) or to retry. A retry consists of waiting at $PST4 with interrupt level 4 on until the 2501 becomes ready, and then reinitiating the function.

Last Card. A read function requested after the last card has been detected causes a trap to $PRET.

2501 Errors and Operator Procedures

If a 2501 error occurs, the 2501 becomes not-ready until the operator has intervened. Unless the stop is caused by a stacker full or cover open (ATTENTION), the 2501 card path must be cleared before proceeding. The 2501 error indicators and the position of the cards in the feed path should be used to determine which cards must be placed back in the hopper.

For the card subroutines, a retry consists of positioning the cards (i.e., skipping the first card in the hopper, if necessary) and reinitiating the read function whenever the card reader becomes ready.

FEED CHECK. A feed check indicates that a card is mispositioned in the feed path or a card has failed to feed from the hopper.

When the program traps to $PST4, empty the hopper and clear the 2501 card path. If a card is improperly positioned at the pre-read station (it has not been read), place this card ahead of the cards remaining to be read, place the deck back in the hopper, and ready the 2501.

READ CHECK. A read check indicates incorrect card registration or a difference between the first and second reading of a column.

When the program traps to $PST4, empty the hopper, NPRO, place the last two cards in the stacker ahead of the deck remaining to be read, place this deck back in the hopper, and ready the reader.

CONSOLE PRINTER SUBROUTINE ERRORS (TYPEZ, TYPE0, WRTYZ, and WRTY0)

If the carrier attempts to print beyond the manually positioned margins, a carrier restore (independent of the program) occurs.

Subroutine printing begins wherever the carrier is positioned as a result of the previous print operation. There is no automatic carrier return as a result of a call to the subroutine.

If the Console Printer indicates a not-ready condition after printing has begun, the subroutine traps to $PST4 with interrupt level 4 on. After the Console Printer is made ready, pressing the PROGRAM START key will cause the operation to be reinitiated.

KEYBOARD SUBROUTINE FUNCTIONS (TYPEZ and TYPE0)

Re-entry

When the ERASE FIELD key is pressed, a character interrupt signals the interrupt response subroutine that the previously-entered Keyboard message is in error and will be re-entered. The subroutine prints two slashes on the Console Printer, restores the carrier to a new line, and prepares to replace the old message in the I/O area with the new message. The operator then enters the new message. The old message in the I/O area is not cleared. The new message overlays the previous message, character by character. If the previous message was longer than the new message, characters from the previous message remain (following the NL character which terminated the new message).

When the interrupt response subroutine recognizes the end-of-message control character, it assumes the message has been completed, stores an NL character in the I/O area, and terminates the operation.

Backspace

When the backspace key is pressed, the last graphic character entered is slashed and the address of the next character to be read is decremented by +1. If the backspace key is pressed twice consecutively, the character address is decremented by +2, but only the last graphic character is slashed. For example, assume that ABCDE has been entered and the backspace key pressed three times. The next graphic character replaces the C, but only the E is slashed. If the character F had been used for replacement, the paper would show ABCDEFFF, but ABFFF would be stored in the buffer.

TYPEZ treats the backspace key as if it were the erase field key.

PAPER TAPE SUBROUTINES (PAPTx)

If the reader or punch becomes not ready during an I/O operation, the subroutines exit to the user via the error parameter. The user can request the subroutine to terminate (clear device busy on the interrupt level) or to wait at $PST4 (postoperative error trap) waiting for operator intervention (interrupt level 4 on).

If the 1134/1055 indicates a not-ready condition after an operation has been initiated, the subroutines trap to $PST4 with interrupt level 4 on. After the device has been made ready, pressing the PROGRAM START key will cause the operation to be reinitiated.

SYSTEM LIBRARY MAINLINE PROGRAMS

The 1130 System Library mainline programs provide the user with the ability to perform disk maintenance and paper tape utility functions by requesting execution of the appropriate program directly through the job stream.

DISK MAINTENANCE PROGRAMS

The disk maintenance programs are mainline programs that are a part of the System Library and that initialize and modify disk cartridge IDs, addresses, and tables required by the Monitor system. Normally, they should never be deleted from the System Library.

The disk maintenance mainline programs are:

IDENT - Print Cartridge ID
DISC - Satellite Disk Initialization*
DSLET - Dump System Location Equivalence Table
ID - Change Cartridge ID
COPY - Disk Copy
ADRWS - Write Sector Addresses in Working Storage
DLCIB - Delete CIB
MODIF - Monitor System Update
*All new cartridges must be initialized with DCIP before any operation is performed under Monitor control. DCIP also provides a disk copy function similar to the COPY program in the System Library.

The disk maintenance programs (except ADRWS) are called by an XEQ monitor control record. Some disk maintenance programs also require an ID control record. The format and use of the ID control record is described under the program descriptions which follow.

IDENT (Print Cartridge ID)

This program prints the ID and physical drive number of each cartridge mounted on the system. The program overrides any cartridge IDs specified on the JOB card and operates with all ready drives. IDENT will read and print illegal IDs including negative numbers. The calling sequence for IDENT is:

// XEQ IDENT

Printout

PHYSICAL DRIVE CART. ID
00 XXXX
01 XXXX
02 XXXX
03 XXXX
04 XXXX

where

XXXX is the cartridge ID. Only the IDs on ready drives are printed.

DISC (Satellite Disk Initialization)

This program re-initializes up to four satellite cartridges -- all but the master cartridge (see DCIP). DISC gives the user the ability to re-initialize a disk cartridge on line. It writes the sector addresses, defective cylinder addresses, a cartridge ID, a LET, a DCOM, an error message program, and a CIB on each cartridge initialized. DISC overrides all cartridge IDs specified on the JOB card except the master cartridge ID. The calling sequence for DISC is:

Coding form to initialize satellite disks: // XEQ DISC followed by an *ID control card

where

FID1 through FlDn are the IDs currently on the satellite cartridges to be re-initialized (identified by IDENT or a JOB record).

TID1 through TIDn are the IDs to be written on the satellite cartridges by this program. A valid cartridge ID is a number between /0001 and /7FFF.

DISC Operation

DISC causes all selected satellite drives to seek home. The program then writes sector addresses and three distinct bit patterns (/AAAA, /5555, and /0000) on all sectors on the first cylinder of the first disk cartridge being reinitialized. The program reads back each pattern after it is written, If no error occurs on any of the patterns, DISC continues to the next cylinder. This procedure is repeated until all 203 cylinders have been checked. The program then starts reinitialization on the next cartridge selected. If a read error occurs, the cylinder on which the error occurred is rewritten and reread 50 times using the same pattern that caused the error to appear. If a second error occurs, the first sector address of the cylinder is placed in the defective cylinder table in word 1 of sector @IDAD. If a second and third defective cylinder are found, their cylinder addresses are written in words 2 and 3 of sector @IDAD. If there are no defective cylinders on the cartridge, words 1, 2, and 3 contain /0658. The cartridge ID is written in word 4 and the copy ID is written in word 5 of sector @IDAD. An error message (NON-SYST. CART. ERROR) and the program to print it on the Console Printer is also stored in sector @IDAD. The error message is printed if a cold start is attempted on this non-system cartridge.

Printout

When DISC is executed, the user punched *ID record is printed on the principal print device. Following this printout one or more of the following error messages may be printed.

CARTRIDGE XXXX INVALID... LOG0 CARD ID

The ID of the master cartridge (logical drive 0) has been specified as a current ID on the *ID card.

CARTRIDGE XXXX NEW LABEL IS INVALID

A new ID is outside of the range /0001 - /7FFF.

CARTRIDGE XXXX IS NOT AVAILABLE

A selected cartridge is not on the system

CARTRIDGE XXXX IS DEFECTIVE

Sector @IDAD or more than 3 cylinders are defective on a satellite cartridge being reinitialized (to identify the defective cylinders, initialize the cartridge using DCIP).

Following the reinitialization of the selected cartridges, the following message is printed.

    XXXXYYYY NOT DONE

             or

             COMPLETE

XXXX is the old (FID1) cartridge ID

YYYY is the new (TID1) cartridge ID

One line is printed for each satellite cartridge that is reinitialized. A NOT DONE message should appear only if an error message has previously been printed.

DSLET (Dump System Location Equivalence Table

This program dumps the contents of SLET to the principal print device. Each entry printed consists of a symbolic name, phase ID, core address, word count, and disk sector address. A SLET dump is shown in Appendix I. The calling sequence for DSLET is:

// XEQ DSLET

ID (Change Cartridge ID)

This program changes the ID on up to four satellite cartridges. The calling sequence for ID is:

// XEQ ID followed by an *ID card

where

FID1 through FIDn are the IDs currently on the satellite cartridges being changed (these IDs must be in the same logical order as the entries on the JOB card),

TID1 through TIDn are the new IDs to be written on the selected satellite cartridges. A valid cartridge ID is a number between /0001 and /7FFF.

Printout

    FFFF TTTT NOT DONE

              or

              COMPLETE

where

FFFF is the FROM ID

TTTT is the TO ID

NOT DONE is printed if a selected cartridge is not found on the system.

One line is printed for each cartridge ID that is changed (maximum 4).

COPY (Disk Copy)

This program copies the contents (except the defective cylinder table and the cartridge ID) of one cartridge onto another. The copy ID (word 5 of sector @IDAD) is incremented by one on the destination cartridge. The cartridge to be copied onto must have previously been initialized (see DISC or DCIP). The calling sequence for COPY is:

// XEQ COPY followed by an *ID card

where

FID1 through FIDn are the IDs of the cartridges to be copied,

TID1 through TIDn are the IDs of the cartridges onto which the copies are to be made.

If multiple copies are to be made from a single master, FID1 through FIDn will all contain the same ID. If a system cartridge from a system with a different configuration is copied, it will be necessary to reconfigure the cartridge before a Cold Start can be performed (see System Reload).

Printout

    FFFF TTTT NOT DONE

              or

              COMPLETE

              or

              NOT PRES

              or

              NO. ERROR

where

FFFF is the FROM ID

TTTT is the TO ID

NOT PRES indicates that the ID requested was not found.

NO. ERROR indicates that the ID requested exceeded /7FFF.

One line is printed for each copy requested on the ID record. The printout occurs at the end of the job.

ADRWS (Write Sector Addresses in Working Storage)

This program, linked to from DUP on detection of the DUP control record, DWADR, writes the sector address on each sector of Working Storage of the disk cartridge specified in the DWADR control record (see *DWADR in DUP Control Records). ADRWS is intended for system use only.

DLCIB (Delete Core Image Buffer)

This program deletes the CIB from a non-system cartridge. If a User Area is defined, it is moved two cylinders closer to cylinder 0. The new addresses of disk areas moved as the result of the deletion of the CIB are reflected in DCOM on the master cartridge, on the non-system cartridge from which the CIB is deleted, and in COMMA. The calling sequence for DLCIB is:

// XEQ DLCIB followed by an *ID card

where

CART is the ID of the non-system cartridge from which the CIB is to be deleted.

Printout

    CART   UA/FX   FPAD
    XXXX   YYYY    NNNN

or

    XXXX ERROR

where

XXXX is the cartridge ID

YYYY is the User Area sector address

NNNN is the File Protect Address

ERROR is printed if the CIB was not deleted (cartridge not found on system or cartridge not specified on JOB card)

MODIF--SYSTEM MAINTENANCE PROGRAM

Included in the System Library is a system maintenance program, MODIF, that provides the user with the ability to update the Monitor system on the master cartridge. This program makes changes to the version and modification level word in DCOM, and can be used to update both System Programs and/or the System Library. A card deck or paper tape containing corrections to update the Monitor system to the latest version and modification level is supplied by IBM. Every modification must be run to update the version and modification level, even if the affected program has been deleted from the system.

NOTE: The replacement of a system program phase that contains reload entries (references to SLET generated by the System Loader during an initial or reload operation) cannot be performed by MODIF. MODIF does not update the System Reload Table. The replacement phase must be loaded by a system reload.

The calling sequence for MODIF is:

// XEQ MODIF

System Program Maintenance

Typical input for System Program update is shown in Figure 12.

Figure 12.  Layout of an Input Deck for a System Program Update
Figure 12. Layout of an Input Deck for a System Program Update

System Program Maintenance (Patch) Control Record

Each Monitor program phase to be changed requires a patch control record. If MODIF determines in analyzing SLET that the FORTRAN Compiler or the Assembler has been voided from the disk, modifications to these programs are not made; however, the version and modification levels for these programs are updated in DCOM.

The format of the patch control record is as follows.

Card
Column
ContentsNotes
1-5 *MON These characters identify a system patch to the FORTRAN Compiler Assembler DUP Supervisor Core Load Builder System Device Subroutines1 or Core Image Loader
5 blank  
6-8 vmm The version (v) and modification level level (mm) are specified in hexadecimal.
9 0 Reserved
10 blank  
11-14 xxxx The SLET ID of the Monitor program phase to which the patch is to be made is specified in hexadecimal. 0000 indicates an absolute patch (see columns 28-31 33-36).
15 blank  
16-19 nnnn "nnnn" specifies (in hex) the number of patch data records following this patch control record.
20 blank  
21 B or H This character identifies the format of the patch data records (binary system format or hex patch format)
22 blank  
23-26 pppp "pppp" specifies (in hex) the total number of patch control records to be processed. This parameter is required on the first patch control record only.2
27 blank  
28-31 dsss The drive code (d) and sector address (sss) of the program to be patched are specified in hexadecimal. This field is used only when the SLET ID (columns 11-14) is 0.
32 blank  
33-36 cccc "cccc" specifies (in hex) the core address of the first word of this sector. This field is used only when the SLET-ID (columns 11-14) is 0.3
37-80 Not used  

Notes:

  1. Modifications to subroutines in the System Device Subroutine Area must be made with a *MON patch, not a *SUB DELETE and STORE.
  2. A MODIF job may perform both System Program and System Library maintenance (see System Library Maintenance). In such a case the number in columns 23-26 must include the *SUB card in the count. Only one subroutine control record is allowed in any MODIF job, and it must be the last MODIF control record (not counting // DEND) in the stacked input.
  3. Core addresses can be obtained from the microfiche listing.

Patch Data Record Formats

Patch Data Records may not contain CALLS or LIBFs, nor will the relocation indicators be used.

Binary System Format.

Word Contents
1 Location
2 Checksum
3 Type Code (first 8 bits) 00001010
4-9 Relocation Indicators
10-54 Data words 1 through 45
55-60 ID and sequence number or may be blank

Hex Patch Format

Card
Column
ContentsNotes
1-4 aaaa "aaaa" specific. (in hex) the core address (origin) of the patch. Each patch record must have a core address.
5 blank  
6-9,
11-14,
16-19,
etc.
  Each 4-column field contains one word of patch data (in hex). Up to 13 words of patch data can be specifled per record. A blank column follows each word.
66-68,
73-80
Not used  

Hex patch cards may contain ID/sequence numbers. Zeros must be punched as leading blanks will not be assumed.

System Library Maintenance

Changes to the System Library require the deletion of the old program and the storing of the new one. MODIF updates the version and modification level word; the actual operation is performed by a DUP DELETE operation, followed by a DUP STORE operation.

Typical input for System Library maintenance is shown in Figure 13.

Figure 13. Layout of an Input Deck for a System Library Update
Figure 13. Layout of an Input Deck for a System Library Update

System Library Maintenance (Subroutine) Control Record

Only one subroutine control record may appear in a MODIF job; however, any number of DELETEs and STOREs may be performed with that control record. System Library maintenance may also be performed concurrently with System Program maintenance (see note 2, columns 23-26 of *MON card).

The format of a subroutine control record is as follows

Card
Column
ContentsNotes
1-4 *SUB These characters identify a system patch to the System Library.
5 blank  
6-8 vmm The version (v) and modification level (mm) are specified in hexadecimal.
9 0 Reserved
10-15 blank  
16-19 nnnn "nnnn" specifies (in hex) the number of deletes and stores to be processed.
20-80 Not used  

All Maintenance

Define End Record

All MODIF jobs must end with a card punched as follows.

Card
Column
ContentsNotes
1-7 //bDEND  
8-80 Not used  

This card terminates MODIF execution and passes control to the Supervisor.

Operating Procedures

The card deck or paper tape supplied by IBM is to be run as a Monitor job.

When a modification is completed successfully, the following messages are printed on the principal printer.

    MODIF EXECUTION OWXX
    MODIF TERMINATION OYZZ

where

WXX is the old version and modification number, and

YZZ is the new version and modification number.

MODIF Error Messages

If an error occurs during MODIF execution, an error message is printed on the principal printer. The format of the error message is as follows.

    ERROR# XXXX XXXX

Following the printing of the error message, the system will WAIT. All MODIF errors and their recovery procedures are listed in table 6.

Table 6. MODIF Errors and Recovery Procedures

Error Number Description Recovery Options* First Hex Number Printed Second Hex Number Printed
1 Invalid patch control record
(*MON or *SUB)
A. Correct error and reread from corrected patch control record. (If the error has occurred on the first patch control record, restart the modification.)
B. Terminate modification, CALL EXIT.
   
2 Checksum error on binary
patch data record.
A. Rechecksum and reread from preceding patch control record. (If the error has occurred on the first patch control record, restart the modification.)
B. Terminate modification, CALL EXIT.
C. Reread card in error (cards may be out of order).
Amount of checksum difference. Number of binary records read after patch header (including record in error).
3 Invalid hex data record. A. Correct error and reread from preceding patch control record.
B. Terminate modification, CALL EXIT.
C. Reread card in error.
   
4 Change level error. A. Correct error and reread from corrected patch control record.
B. Terminate modification, CALL EXIT.
Present version and modification level (from DCOM on disk). Change level of version and modification (from patch control record).
5 New change level lower than current level. A. Correct error and reread from corrected patch control record.
B. Terminate modification, CALL EXIT.
C. Reduce level and continue.
Present version and modification level (from DCOM on disk). Change level of version and modification (from patch control record).
6 Monitor control record or / DEND cord read before required number of patches read. A. Read new patch header.
B. Terminate modification, CALL EXIT
Number of patches not installed.  
7 DCOM configuration indicators do not agree with SLET or, Required system I/O routine missing. A. Restart MODIF execution.
B. Terminate modification, CALL EXIT.
Contents of Accumulator when error was detected. Address +2 from which error branch was executed.
8 DUP control record errors
(DELETES or STORES).
Print error indicators and WAIT.
Press START to continue.
XXYY where XX is the number of DUP errors detected and YY is the number of DUP control records processed (see DUP error printout). Number of DUP control records specified on *SUB patch control record.
9 SLET ID not found. Print error indicators and WAIT.
Press START to read patch data cards without processing and read new control record.
SLET ID in question.  
A Patch exceeds space allotted on disk for this phase. Print error indicators and WAIT.
Press start to read patch data cards without processing and read new control record.
High core patch address. High core SLET address.
B // DEND card not found
(patches completed but version and modification level in DCOM not updated.
Press START to CALL EXIT or, Rerun modification with // DEND card.    

* Set console entry switches as desired for errors 1-7 and press START.
No switches on - recovery A
Switch 0 an - recovery B
Switch 15 on - recovery C

MODIF Example

The purpose of the following example is to change one instruction in the 1134/1055 System Subroutine. The SLET ID of this subroutine is /0091.

Address
(from assembly listing)
Change From Change To
/0023 /0000 /7002

If the new modification level is 8, the following control and data cards must be punched by the user.

System Program Maintenance Control Record

*MON 2080 0091 0011 H 0001

Patch Data Record Hex Patch Format

0023 7002

These two cards together with the Monitor control cards shown in Figure 12 will perform the required modification.

At completion of execution, the following messages will print on the principal printer.

MODIF EXECUTION    
0207
The execution of MODIF has been initialized on version 2 level 7
MODIF TERMINATION  
0208
The patch has been installed and the new level is 8.

PAPER TAPE UTILITY (PTUTL)

This program accepts input from the Keyboard or the 1134 Paper Tape Reader and provides output on the Console Printer and/or the 1055 Paper Tape Punch.

PTUTL allows changes and/or additions to FORTRAN and Assembler language source records as well as Monitor control records.

The calling sequence for PTUTL is:

// XEQ PTUTL

Operating Procedure

If paper tape is the principal input, select the appropriate initializing procedure listed below and continue.

If the Resident Monitor is in core:

If the Resident Monitor is not in core:

The paper tape utility program is loaded into core and then comes to a WAIT with /1111 displayed in the Accumulator. This WAIT allows the operator to ready the Console Printer, paper tape reader, and paper tape punch. The user should punch a leader of delete codes on the paper tape punch.

At this time, the user can select the desired program options by turning on the appropriate console entry switches. Figure 14 shows the PTUTL console entry switch logic in flowchart form.

Console Entry
Switch On
Option
0 Print record after reading
1 Read paper tape records from 1134
2 Accept Keyboard input1
3 Punch paper tape records on 1055
14 WAIT after punching with /3333 in the Accumulator3
15 WAIT after printing with /2222 in the Accumulator2
All switches off CALL EXIT3

NOTES:

  1. The keyboard input option uses TYPE0; therefore all features of that subroutine apply to PTUTL.
  2. Keyboard input will replace the last paper tape record read if console entry switch 2 is turned on prior to pressing PROGRAM START.
  3. The test for exit is made just before an input record is read; therefore, a convenient way to branch out of PTUTL is to perform a WAIT after punching the last record desired (console entry switch 14 on). Turn off all console entry switches and press PROGRAM START. A CALL EXIT will be executed.

Paper Tape Not-Ready WAITs

Condition Indication Recovery Procedures
Paper tape reader not ready Program WAITs with /3005 in the Accumulator Ready reader if additional tape is to be read. Set the console entry switches as desired and press PROGRAM START.
Paper tape punch not ready Program WAITs with /3004 in the Accumulator Ready the paper tape punch and press PROGRAM START. To repunch the record that was being processed when the not-ready occurred, set console entry switches 1 and 2 off (to prevent another record from being read), set switches 3 and 14 on (punch a record and WAIT with /3333 in the Accumulator), and press PROGRAM START. After the record is punched, return the console entry switches to the original configuration and press PROGRAM START.
Example

Assume that the following records appear on a tape.

// JOB
// *(comments)
// ASM
// DUP
ASM Control Records
Source Program

The user now desires to alter the comments record, insert a // PAUS record after the comments record, and delete the // DUP record. The procedure is as follows.

  1. Load and execute PTUTL. The program will WAIT with /1111 in the Accumulator.
  2. Load the source tape in the paper tape reader and ready the paper tape punch and Console Printer. Make a leader of delete codes on the punch.
  3. Turn on console entry switches 1, 3, and 14.
  4. Press PROGRAM START.
  5. The // JOB record will be read, reproduced, and the program will WAIT with /3333 in the Accumulator.
  6. Turn on console entry switches 0, 1, 2, 3, 14, and 15.
  7. Press PROGRAM START.
  8. The comments record in the source tape will be read and printed on the Console Printer. The program will WAIT with /2222 in the Accumulator.
  9. Press PROGRAM START. The Keyboard will be selected (PROCEED light on) and the program will WAIT with /3333 in the Accumulator.
  10. Enter the new comments record in the proper format.
  11. Press the EOF key on the Keyboard.
  12. The new comments record will be punched on the tape, replacing the old record. The program will WAIT.
  13. Turn off console entry switch 1. Press PROGRAM START. The Keyboard will be reselected.
  14. Enter the // PAUS record from the Keyboard and press EOF.
  15. Turn off the console entry switches 0, 2, and 15. Turn on switch 1. Leave switches 3 and 14 on.
  16. Press PROGRAM START.
  17. The // ASM record will be read and reproduced on the punch. The program will WAIT with /3333 in the Accumulator.
  18. The next record // DUP, is to be deleted; therefore, switches 0, 1, and 15 should be set on, all other console entry switches should be set off.
  19. Press PROGRAM START.
  20. The // DUP record will be read and printed but not punched. The program will WAIT with /2222 in the Accumulator.
  21. Leave the sense switches at the present setting and press PROGRAM START. The next record on the input tape will be read into the I/O buffer, overlaying the // DUP record.
  22. Turn on console entry switches 1 and 3, all others off.
  23. Press PROGRAM START.
  24. The remainder of the source tape will be read in and reproduced, record for record.
  25. When the paper tape reader goes not-ready at the end of the source tape, the program will again WAIT with /3005 in the Accumulator. Set all console entry switches off and press PROGRAM START. A CALL EXIT will be executed.

 

                                         ****
                                        *    *
                                        * A3 *
                                        *    *
                                         ****
                                          .
                                          .
                                          .
                               START      X
                                  *****A3********** 
                                  *               *
                                  *               *
                                  *     WAIT      *
                                  *               *
                                  *               *
                                  *****************
                                          .
                                   ****   .
                                  *    *  .
                                  * C3 *.X.
                                  *    *  .
                                   ****   X
                               SW1       .*.
                                       B3   *.
                                     .*       *.             ****B4*********
                                   .*    ARE    *. YES      *               *
                                  *.ALL SWITCHES .*........X*     EXIT      *
                                    *.   OFF   .*           *               *
                                      *.     .*              ***************
                                        *. .*
                                          * NO
                                          .
                                          .
                                          .
                                          .
                                          X
                                         .*.
                                       C3   *.
                                     .*       *.
                               YES .*    IS     *. NO
                ..................*.  SWITCH 1   .*..................
                .                   *.   ON    .*                   .
                .                     *.     .*                     .
                .                       *. .*                       .
                .                         *                         .
                .                                                   .
                .                                                   .
                .                                                   .
                .                                                   .
                .                                                   X
                X                                        SW2       .*.
       ******D2***********                                       D4   *.
                                                               .*       *.         ****
        *     READ      *                                 NO .*    IS     *.      *    *
           PAPER TAPE                     ..................*.  SWITCH 2   .*X....* D4 *
         *   RECORD    *                  .                   *.   ON    .*       *    *
                                          .                     *.     .*          ****
          *************                   .                       *. .*
                .                         .                         * YES
                .                         .                         .
                .                         .                         .
                .                         .                         .
                .                         .                         .
                X                         .                         .
     SW0       .*.                        .                         X
             E2   *.                      .                 *****E4**********
           .*       *.                    .                 *               *
         .*    IS     *. NO               .                 *    ACCEPT     *
        *.  SWITCH 0   .*................X.                 *   KEYBOARD    *
          *.   ON    .*                   .                 *     INPUT     *
            *.     .*                     .                 *               *
              *. .*                       .                 *****************
                * YES                     .                         .
                .                         .                         .
                .                         .                         .
                .                         .                         .
                .                         .                         .
                .                         .                         .
                X                         .                         X
        *****F2**********                 .                 *****F4**********
        *               *                 .                 *               *
        *    CONVERT    *                 .                 *    CONVERT    *
        *PTTC/8 CODE TO *                 .X................*  KEYBOARD TO  *
        *  TYPWR CODE   *                 .                 *  PTTC/8 CODE  *
        *               *                 .                 *               *
        *****************                 .                 *****************
                .                         .
                .                         .
                .                         .
                .                         .
                .                         .
                .                         .
                X                         .
        *****G2**********                 .
        *    DEVELOP    *                 .
        *     WORD      *                 .
        *   COUNT FOR   *                 .
        *     TYPWR     *                 .
        *    OUTPUT     *                 .
        *****************                 .
                .                         .
                .                         .
                .                         .
                .                         .
                .                         .
                .                         X
                X              SW3       .*.
       ******H2***********             H3   *.             ******H4***********
                                     .*       *.
        * PRINT RECORD  *          .*    IS     *. YES      *     PUNCH     *
            ON TYPWR              *.  SWITCH 3   .*........X   PAPER TAPE
         *             *            *.   ON    .*            *   RECORD    *
                                      *.     .*
          *************                 *. .*                 *************
                .                         * NO                      .
                .                         .                         .
                .                         .                         .
                .                         .                         .
                .                         .                         .
                X                         .                         X
     SW 15     .*.                        .              SW 14     .*.
             J2   *.                      .                      J4   *.
           .*       *.                    .                    .*       *.         ****
         .*    IS     *. NO               .                  .*    IS     *. YES  *    *
        *.  SWITCH 15  .*....             ..................*.  SWITCH 14  .*....X* A3 *
          *.   ON    .*     .                                 *.   ON    .*       *    *
            *.     .*       .                                   *.     .*          ****
              *. .*         X                                     *. .*
                * YES      ****                                     * NO
                .         *    *                                    .
                .         * D4 *                                    .
                .         *    *                                    X
                .          ****                                    ****
                .                                                 *    *
                X                                                 * C3 *
        *****K2**********                                         *    *
        *               *                                          ****
        *               *
        *      WAIT     *
        *               *
        *               *
        *****************
                .
                .
                .
                X
               ****
              *    *
              * D4 *
              *    *
               ****

Figure 14. PTUTL Console Entry Switch Options

SYSTEM LIBRARY UTILITY SUBROUTINES

Also included in the System Library are a group of subroutines that perform utility functions for the Monitor system.

The utility subroutines are:

SYSUP - DCOM Updating Subroutine
RDREC - Read *ID Record Subroutine
CALPR - Call System Print Subroutines
FSLEN - Fetch Phase ID (FSLEN) or Fetch System Subroutine (FSYSU)
FLIPR - LOCAL/SOCAL Overlay Subroutine

SYSUP can be called by the user. The other utility subroutines are for system use only.

SYSUP (DCOM Update)

Whenever a core load requires changing disk cartridges during the job, SYSUP must be called to update DCOM on the master cartridge (logical drive 0) with the IDs and DCOM information from all satellite cartridges mounted on the system that are specified in the list or array in the calling sequence.

The Assembler language calling sequence for SYSUP is:

ASM template listing of a SYSUP call

where

a is the ID of the master cartridge on the system,

b is the ID of the first satellite cartridge on the system,

c is the ID of the second satellite cartridge on the system,

d is the ID of the third satellite cartridge on the system,

e is the ID of the fourth satellite on the system.

a may be zero, in which case the master cartridge is the same as that defined for the previous job.

The FORTRAN calling sequence for SYSUP is:

FORTRAN template listing of a SYSUP call

where

a is the name of the last item in an array containing the IDs of the satellite cartridges on the system.

The last item in the array may be zero, in which case the master cartridge is the same as that defined for the previous job. For example:

      CALL SYSUP (A(5))

The array is stored in reverse order

    A(5) DC
    A(4) DC
    A(3) DC
    A(2) DC
    A(1) DC

Thus A(5) is the entry for logical 0, the master cartridge. A is a one-word integer.

NOTE: The list or array must be no longer than five words. It may be shorter. If a list or array shorter than five words is specified, the Assembler array must be terminated with an ID of all zeros (all zeros in the first entry will not terminate the array). The FORTRAN array must be started with an ID of all zeros (all zeros in the last entry will not terminate the array). For example, a three-cartridge FORTRAN array would be specified as (A(4)) with A(1) having a DC of all zeros.

Printout

The following error messages may be printed by SYSUP (SYSUP error messages are also listed with the Supervisor Errors in Appendix A).

 XXXX IS NOT AN AVAILABLE CARTRIDGE ID

A specified cartridge is not in the system.

 XXXX IS A DUPLICATED SPECIFIED CARTRIDGE ID

The same ID appears more than once in the list or array in the calling sequence.

 XXXX IS A DUPLICATED AVAILABLE CARTRIDGE ID

Two or more disks (specified in the calling sequence) have the same cartridge ID.

An error printout is followed by termination of execution.

CALPR (Call System Print Subroutine)

This subroutine calls FSLEN to bring the system print subroutines into core storage for the purpose of printing one or more lines on the principal printer. This subroutine is intended for system use only.

RDREC (Read *ID Record)

This subroutine is called by the Disk Maintenance Programs to read the *ID record. The *ID record is printed on the principal print device. This subroutine is intended for system use only.

FSLEN (Fetch Phase IDs and Fetch System Subroutine

This subroutine has two entry points: FSLEN and FSYSU.

FLIPR (LOCAL/SOCAL Overlay)

The Monitor system library contains a flipper subroutine (FLIPR), which is used to call LOCAL (load-on-call) and SOCAL (system-load-on-call) subroutines into core storage. FLIPR is used with DISKZ, DISK1, or DISKN.

FLIPR passes the total word count to DISKZ, DISK1, or DISKN to fetch the LOCAL. When a LOCAL subroutine is called, control is passed to the flipper, which reads the LOCAL into core storage if it is not already in core and transfers control to it. All LOCALs in a given core load are executed from the same core storage locations; each LOCAL overlays the previous one. FLIPR fetches SOCALs in the same manner as LOCALs.


But wait, there's MORE...

Valid HTML 4.01 Transitional