Disk system format is the format in which absolute and relocatable programs (mainlines and subprograms) are stored on disk. Disk system format is shown in Figure 16.
The format of words 1-12 of the program header is the same for all program types (see Program Types below). These words contain the following information:
Word | Contents |
---|---|
1 | Zero |
2 | Checksum, if the source was cards; otherwise, zero. |
3 | Program type (bits 4-7), subtype (bits 0-3), and precision (bits 8-15) |
4 | Effective program length, i.e., the terminal address in the program |
5 | Length of COMMON (in words) |
6 | Length of the program header (in words) minus 9 |
7 | Zero |
8 | Length of the program, including the program header (in disk blocks) |
9 | FORTRAN indicator (bits 0-7), number of files defined (bits 8-15). |
10-11 | Name of entry point 1 (in name code) |
12 | Address of entry point 1 (absolute for type 1 programs, relative for all others) |
The format of words 13-54 of the program header varies according to the program type. For program types 1 and 2, the program header consists of words 1-12 only.
For program types 3 and 4, the program header, in addition to words 1-12, contains the following information:
Word | Contents |
---|---|
13-14 | Name of entry point 2 (in name code) |
15 | Relative address of entry point 2 |
16-17 | Name of entry point 3 (in name code) |
18 | Relative address of entry point 3 |
19-51 | Names and relative addresses of entry points 4 through 14, as required, in the format shown above. The program header ends following the relative address of the last entry point defined; hence, It is of variable length. |
For program types 5 and 6, the program header, in addition to words 1-12, contains the following information:
Word | Contents |
---|---|
13 | ISS number plus 50 |
14 | ISS number |
15 | Number of interrupt levels required* |
16 | Interrupt level number associated with the primary interrupt* |
17 | Interrupt level number associated with the secondary interrupt* |
*The 1442 Card Read Punch is the only device requiring more than one interrupt level.
For type 7 programs, the program header, in addition to words 1-12, contains the associated interrupt level number in word 13.
The program types are defined as follows:
Type | Type of Program |
---|---|
1 | Mainline (absolute) |
2 | Mainline (relocatable) |
3 | Subprogram, not an ISS, referenced by a LIBF statement |
4 | Subprogram, not an ISS, referenced by a CALL statement |
5 | Interrupt service subroutine (ISS) referenced by a LIBF statement |
6 | Interrupt service subroutine (ISS) referenced by a CALL statement |
7 | Interrupt level subroutine (ILS) |
Subtypes are defined for program types 3, 4, 5, and 7 only. When not used, the subtype indicator in the program header contains a zero.
The program subtypes are defined as follows:
Subtype | Type | Description |
---|---|---|
0 | 3, 4 | In-core subprograms |
1 | 3 | Disk FORTRAN I/O subroutines |
2 | 3 | Arithmetic subroutines |
3 | 3 | Non-disk FORTRAN I/O and "Z" conversion subroutines |
3 | 5 | "Z" device subroutines |
8 | 4 | Function subprogram |
1 | 7 | Dummy ILS02, ILS04 |
Disk data format is the format in which data files are stored on the disk. Disk data format consists of 320 binary words per sector. There are no headers, trailers, indicator words, etc.
Disk core image format is the format in which a core image program is stored on disk. A core image program consists of the Core Image Header, the mainline program, all subprograms referenced in the mainline program or other subprograms (except the disk I/O subroutine), the Transfer Vector, and any LOCALs and SOCALs required. Figure 5 (see STORECI under Disk Utility Programs shows the layout of a core image program stored on disk.
The Core Image Header contains the following information:
Word | Contents | ||||
---|---|---|---|---|---|
Symbol | Relative Address |
||||
XEQ1 | 1 | Execution address of the core load | |||
@CMON | 2 | Length of COMMON (in words) | |||
@DREQ | 3 | Disk I/O subroutine indicator -- /FFFF for DISKZ, /0000 for DISK1, /0001 for DISKN | |||
@FILE | 4 | Number of files defined | |||
@HWET | 5 | Length of the Core Image Header (in words) | |||
@LSCT | 6 | Sector count of files in System WS | |||
@LDAD | 7 | Loading address of the core load | |||
@XCTL | 8 | Exit control address for DISK1/N | |||
@TVWC | 9 | Length of the transfer vector (in words) | |||
@WCNT | 10 | Length of the core load (in words) | |||
@XR3X | 11 | Setting for index register 3 during execution of the core load | |||
@ITVX | 12 | Contents of word 8 during execution |
|
||
13 | Contents of word 9 during execution | ||||
14 | Contents of word 10 during execution | ||||
15 | Contents of word 11 during execution | ||||
16 | Contents of word 12 during execution | ||||
17 | Contents of word 13 during execution | ||||
18-20 | Reserved |
|
|||
21 | Interrupt entry to 1231 ISS | ||||
22 | Interrupt entry to 1403 In | ||||
23 | Interrupt entry to 2501 ISS | ||||
24 | Interrupt entry to 1442 ISS IBT for ILSO4 | ||||
25 | Interrupt entry to Keyboard/Console Printer ISS | ||||
26 | Interrupt entry in 1134/1055 ISS | ||||
@OVSW | 27 | Sector count of LOCALs/SOCALs | |||
@CORE | 28 | Core size of system on which core load built | |||
29-30 | Define File Table checksum work area. |
Card system format is the format in which absolute and relocatable programs (mainlines and subprograms) are punched into cards. Each deck in card system format consists of (1) a header card, (2) data cards, and (3) an end-of-program card.
The mainline header card is the first card of every type 1 or 2 program in card system format. It contains the following information:
Word | Contents |
---|---|
1 | Reserved |
2 | Checksum |
3 | Type code (first 8 bits): 0000 0001 -- absolute 0000 0010 -- relocatable Precision code (last 8 bits): 0000 0001 -- standard 0000 0010 -- extended 0000 0000 -- undefined |
4 | Reserved |
5 | Length of COMMON, in words (FORTRAN mainline program only) |
6 | 0000 0000 0000 0011 |
7 | Length of the work area required, in words (FORTRAN only) |
8 | Reserved |
9 | Define File Count |
10-11 | Name |
12 | Relative Entry Point |
13-54 | Reserved |
The subprogram header card is the first card of every type 3 or 4 program in card system format. It contains the following information:
Word | Contents |
---|---|
1 | Reserved |
2 | Checksum |
3 | Type code (first 8 bits): 0000 0011 -- to be called by a LIBF statement only 0000 0100 -- to be called by a CALL statement only Precision code (last 8 bits): 0000 0001 -- standard 0000 0010 -- extended 0000 0000 -- undefined |
4-5 | Reserved |
6 | Number of entry points times three |
7-9 | Reserved |
10-11 | Name of entry point 1 (in name code) |
12 | Relative address of entry point 1 |
13-51 | Names and relative addresses of entry points 2 through 14, as required |
52-54 | Reserved |
The ISS header card is the first card of every type 5 or 6 program in card system format. It contains the following information:
Word | Contents |
---|---|
1 | Reserved |
2 | Checksum |
3 | Type code (first 8 bits): 0000 0101 -- to be called by a LIBF statement only 0000 0110 -- to be called by a CALL statement only Precision code (last 8 bits): 0000 0001 -- standard 0000 0010 -- extended 0000 0000 -- undefined |
4-5 | Reserved |
6 | Number of interrupt levels required plus 6 |
7-9 | Reserved |
10-11 | Subroutine name (in name code) |
12 | Relative entry point address |
13-14 | Reserved for parameters used by the 1130 Card/Paper Tape System |
15 | Number of interrupt levels required* |
16 | Interrupt level number associated with the primary interrupt* |
17 | Interrupt level associated with the secondary interrupt level* |
18-29 | Reserved |
30 | One |
31-54 | Reserved |
*The 1442 Card Read Punch is the only device requiring more than one interrupt level.
The ILS header card is the first card of every type 7 program in card system format. It contains the following information:
Word | Contents |
---|---|
1 | Reserved |
2 | Checksum |
3 | Type code (first 8 bits): 0000 0111 Reserved (last 8 bits) |
4-5 | Reserved |
6 | 0000 0000 0000 0100 |
7-9 | Reserved |
10-12 | Reserved |
13 | Interrupt level number |
14-54 | Reserved |
In all types of programs, data cards contain the instructions and data that constitute the machine language program. The format of each data card is as follows:
Word | Contents |
---|---|
1 | The loading address of the first data word in the card. Succeeding words go into higher-numbered core locations. The relocation factor must be added to this address to obtain the actual load address. For an absolute program the relocation factor is zero. |
2 | Checksum |
3 | Type code (first 8 bits); 0000 1010 Count of data words, excluding indicator data words, in this card (last 8 bits) |
4-9 | Relocation indicator data words (2 bits for each following data word): 00 -- absolute 01 -- relocatable 10 -- LIBF 11 -- CALL |
10 | Data word 7 |
11-54 | Data words 8 through 51 |
The end-of-program card is the last card of all programs in card system format. It contains the following information:
Word | Contents |
---|---|
1 | Effective length of the program. This number is always even and is assigned by the Assembler, or FORTRAN Compiler. |
2 | Checksum |
3 | Type code (first 8 bits): 0000 1111 Last 8 bits: 0000 0000 |
4 | Execution address (mainline program only) |
5-54 | Reserved |
Sector break cards are binary cards used by the System Loader to cause programs or phases of programs to start loading at the beginning of a sector. The Monitor system uses Type 1 loader cards as sector break cards. The sector break cards are not checksummed. Columns 5-72 of the sector break cards may contain information identifying the program phase being loaded. The card sequence number appears in columns 73-80. Columns 5-80 are punched in IBM Card Code.
Type 1 cards are identified by a 1 punch in column 4 (binary word 3). A Type 1 card indicates to the System Loader that it should check word 11 of the first data card that follows. For the Resident Image, Cold Start Program, and Phase 1 or the System Loader, word 11 contains an absolute starting sector address. For all other Monitor programs or phases word 11 contains the phase ID. Recognition of a phase ID during initial load causes the System Loader to load the program or phase starting at the next sequential sector. During a reload, the phase ID is matched with the ID in SLET and the phase is loaded to the sector address indicated in SLET.
On an initial load, phase 1 of DUP starts loading at sector 8.
A type 2 (relocatable starting sector address)[?] sector break card is processed by the Monitor system as a Type 1 sector break card.
Card data format is the format in which data files are punched into cards. Card Data format consists of 54 binary words per card. Each binary word occupies 1-1/3 columns. There are no headers, trailers, indicator words, etc.
Card Data format is illustrated in Figure 17.
Figure 17. Card Data Format
Card core image format is the format in which core image programs are punched into cards. Card core image format is identical to card data format; that is, one binary word occupies 1-1/3 columns and 54 binary words can be punched per card.
The paper tape formats -- paper tape system format (PTS), paper tape data format (PTD), and paper tape core image format (PTC) -- are analogous to the corresponding card formats (see above).
Two frames in paper tape (data or core image) format contain one binary word and are equivalent to 1-1/3 columns in card (data or core image) format. A data record in paper tape (data or core image) format differs from a data record in card (data or core image) format in that 2 special frames precede the data record; the first contains 7F16, and the second contains the word count, one-half the number of frames in this data record. A data record in paper tape (data or core image) format contains a maximum of 108 frames (54 binary words) plus the 2 special frames.
Information that would appear in columns 73-80 in card format must not appear in paper tape format.
Print data format is the format in which DUP prints a DSF program, core image program, or data file on a print device (1403, 1132, or Console Printer).
The Address which precedes each printed line is the core address of Word 1 on that line if a core image program is being printed. If a DSF program or data file is being printed, the Address is the address of Word 1 on that line relative to the start of the DSF program or data file. Each Word printed consists of four hexadecimal characters and represents one binary word. Figure 18 illustrates the DSF and core image print format.
Figure 18. Dump of DSF and Core Image Program
But wait, there's MORE...