Page 1¶
SINTRAN III REAL TIME LOADER¶
System Documentation
Page 2¶
SINTRAN III¶
REAL TIME LOADER¶
System Documentation
Page 3¶
Technical Manual Ordering Information¶
This manual is in loose leaf form for ease of updating. Old pages may be removed and new pages easily inserted if the manual is revised.
The loose leaf form also allows you to place the manual in a ring binder (A) for greater protection and convenience of use. Ring binders with 4 rings corresponding to the holes in the manual may be ordered in two widths, 30 mm and 40 mm. Use the order form below.
The manual may also be placed in a plastic cover (B). This cover is more suitable for manuals of less than 100 pages than for large manuals. Plastic covers may also be ordered below.
| Ring Binder | Plastic Cover |
|---|---|
Please send your order to the local ND office or (in Norway) to:
Documentation Department
Norsk Data A.S
P.O. Box 6, Lindeberg gård
Tel: 10
Order Form¶
I would like to order
- Ring Binders, 30 mm, at nkr 20,- per binder
- Ring Binders, 40 mm, at nkr 25,- per binder
- Plastic Covers at nkr 10,- per cover
Name
Company
Address
City
Page 4¶
REVISION RECORD¶
| Revision | Notes |
|---|---|
| 09/76 | Original Printing |
| 08/77 | Revised Edition, superseding the original printing |
SINTRAN III Real Time Loader – System Documentation
Publication No. ND-60.072.02
NORSK DATA A.S.
Lorenvn 57, Postboks 163 Økern, Oslo 5, Norway
Page 5¶
TABLE OF CONTENTS¶
| Section: | Page: |
|---|---|
| 1 INTRODUCTION | 1-1 |
| 1.1 The RT Loader's Place in the SINTRAN III System | 1-2 |
| 1.2 Memory Layout | 1-3 |
| 1.3 Generation of the RT Loader | 1-5 |
| 1.4 Layout on Mass Storage | 1-6 |
| 2 THE RT LOADER'S TABLES | 2-1 |
| 2.1 The Linking Table | 2-1 |
| 2.1.1 The Linking Table Element | 2-2 |
| 2.1.2 Element Descriptor Bit 0-2 Equals 0, Defined Symbol | 2-3 |
| 2.1.3 Element Descriptor Bit 0-2 Equals 1, Referenced Symbol | 2-3 |
| 2.1.4 Element Descriptor Bit 0-2 Equals 2, Defined Common Label | 2-5 |
| 2.1.5 Element Descriptor Bit 0-2 Equals 3, Declared Common Label | 2-8 |
| 2.1.6 Element Descriptor Bit 0-2 Equals 6, Declared RT Program | 2-8 |
| 2.1.7 Element Descriptor Bit 0-2 Equals 7, Defined RT Program | 2-8 |
| 2.1.8 Insert an Element in the Linking Table | 2-9 |
| 2.1.9 Remove an Element from the Linking Table | 2-9 |
| 2.2 The Freelist | 2-10 |
| 2.2.1 Remove an Element from the Freelist | 2-10 |
| 2.2.2 Insert an Element in the Freelist | 2-10 |
| 2.3 The RTIFTL Table | 2-11 |
| 2.3.1 The RTIFTL Table Element | 2-12 |
| 2.3.2 Element Descriptor Bits 0-4 Equals 20, Defined Symbol | 2-12 |
| 2.3.3 Element Descriptor Bits 0-4 Equal 22, Defined Common Label | 2-12 |
| 2.3.4 Element Descriptor Bits 0-4 Equals 26, Declared RT Program | 2-13 |
ND-60.072.02
Page 6¶
Section¶
| Section | Description | Page |
|---|---|---|
| 2.3.5 | Element Descriptor Bits 0-4 Equals 27, Defined RT Programs | 2-13 |
| 2.3.6 | Insert an Element in the RITFIL Table | 2-13 |
| 2.3.7 | Remove an Element from the RITFIL Table | 2-13 |
| 2.4 | The File RITFIL | 2-14 |
| 2.5 | The Flow of Symbolic Information in the RT Loader | 2-15 |
| 2.6 | The Segment Files Bit Map | 2-16 |
3 BUILDING SEGMENTS¶
| Section | Description | Page |
|---|---|---|
| 3.1 | Memory Layout of the RT Loader Segment | 3-1 |
| 3.2 | How to Build a Segment | 3-2 |
| 3.3 | The Scratch File Buffers | 3-3 |
| 3.4 | Flow Chart of the Scratch File Buffer System | 3-4 |
| 3.5 | Flow Chart of How the Linking Table Expands and How the Scratch File Buffer Lists are Reduced | 3-5 |
4 GLOBAL VARIABLES¶
| Page |
|---|
| 4-1 |
ND-60.072.02
Page 7¶
INTRODUCTION¶
The SINTRAN III Real Time Loader (hereafter called the RT Loader) is a subsystem included in all SINTRAN III mass storage systems. This manual will describe the internal architecture of the RT Loader. For details about the commands available refer to the manuals: SINTRAN III Real Time Loader (ND-60.051) and SINTRAN III Users Guide (ND-60.050).
ND-60.072.02
Page 8¶
1.1 The RT Loader's Place in the SINTRAN III System¶
+----------------+
| SINTRAN III |
+-------+--------+
|
|
+------------------+ |
| BACKGROUND | |
| PROCESSOR | |
+-------+----------+ |
| |
| |
+---------------+-----------+ |
| COMMAND PROCESSOR | |
+---------------+-----------+ |
| |
| |
+-----+------+ |
| RT LOADER | |
+------------+ |
|
+-------------------+ |
| REAL TIME MONITOR +----------------+
+-------+-----------+
|
|
+---------+---------+
| OTHER PARTS OF |
| THE SYSTEM |
+-------------------+
The RT Loader is a subsystem which can be activated by the SINTRAN III command @RT-LOADER.
NO-6600/72.02
Page 9¶
1.2 MEMORY LAYOUT¶
With respect to the RT Loader's layout in memory, the RT Loader consists of the following three parts:
-
The RT Loader segment.
Segment number 4, protection ring number 2, page table 0, virtual address area: 1000008 - 1737778.
-
The RTFIL segment.
Segment number 8, protection ring 2, page table 2, virtual address area: 0 - 777778.
-
The routines and parameter lists for data transfer between the RTFIL segment and the file RTFIL.
Memory resident, protection ring 2, page table 0, address area: approx. 160408 - 166068.
ND-60.072.02
Page 10¶
Page Table Overview¶
| Page Table | Description |
|---|---|
| 0 | SINTRAN III monitor, I/O system and resident part of background processor |
| RT Loader routines, File System routines | |
| Data fields and system tables | |
| Mass storage drivers and optional routines | |
| System Segments | |
| Command processor segment | |
| File System segment | |
| RT Loader segment | |
| 174000 |
| Page Table | Description |
|---|---|
| 1 | Real Time Programs |
| 2 | RTEP1 L segment |
| 3 | Background segments |
| Free for direct tasks |
177777 COMMON 177777
177777 177777
ND-60.072.02
Page 11¶
1.3 GENERATION OF THE RT LOADER¶
The source code of the RT Loader is a file which may be compiled/assembled independent of the rest of the SINTRAN III system, and dumped in a binary format onto a file. The "ILIST" and "ULIST" symbols are dumped onto another file.
When generating a SINTRAN III system, the binary RT Loader is linked to the SINTRAN III and dumped onto a file together with the rest of the SINTRAN III system.
The RT Loader consists of approximately 15K of code from the beginning of the RT Loader segment. The rest of the RT Loader segment and the whole RTFIL segment is working space for the RT Loader.
The memory resident routines of the RT Loader are included in the source file of SINTRAN III.
ND-60.072.02
Page 12¶
1.4 Layout on Mass Storage¶
The code of the RT Loader is placed on the "MACM-AREA" file on the mass storage. Every time the SINTRAN III system is started after the MACM command "JHENT" the RT Loader code will be moved by the SINTRAN III start program for the "MACM-AREA" to the segment file number 0.
Mass Storage Layout (address in 1K words): (on following page)
ND-60.072.02
Page 13¶
SINTRAN System Structure¶
| Address | Description |
|---|---|
| 0 | Master Block |
| 1 | Resident part of SINTRAN monitor |
| 35-41 | System Segment |
| 42 | Command processor segment |
| 75-100 | SINTRAN/SINTRAN Communication routines |
| 100 | MACM Assembler |
| 120 | RT Loader segment |
| 140 | File System segment |
| 174-200 |
Data Areas¶
- SINTRAN: DATA
- MACM-AREA: DATA
File Management¶
- Segment file number 0 (SEGFILE: DATA)
- File area
ND-600072.02
Page 14¶
THE RT LOADER'S TABLES¶
THE LINKING TABLE¶
The linking table is a table where all information about a symbol is kept during a load operation. A symbol may be an RT program name, an entry point, a common label, etc.
Examples of information about a symbol is the value of a symbol, the address where the symbol is referred to, etc.
The linking table is a linked table which always starts in the location LTBPP and ends with a link equals 0.
| LTBPP | LTBP | 1st ELEMENT | 2nd ELEMENT | LAST ELEMENT |
|---|---|---|---|---|
The symbols in the linking table are:
- defined RT program names
- declared RT program names
- defined RT COMMON labels
- declared RT COMMON labels
- symbols defined on segment number 0
- symbols defined or referred to on the one or eventually two segments currently being built
- symbols defined on an already existing segment currently used as linking segment
- symbols defined on an already existing segment specified in the FIX-SEGMENT command.
ND-60.072.02
Page 15¶
2.1.1 The Linking Table Element¶
The linking table element consists of 8 continuous locations.
| Word No | Explanation |
|---|---|
| 0 | The element link. This location contains the address of the next element in the linking table. If the element link is zero, then this element is the last in the linking table. |
| 1, 2, 3 | The name of the symbol in ASCII. Six bits per character. The symbol is right justified, i.e., the last character in the symbol is in bit 05 in word number 3. Maximum of 7 characters in a symbol. |
| 4 | Segment number(s) of the symbol. Bit 0-7: first segment number, Bit 8-15: eventually second segment number |
| 5 | Element descriptor. Bit 0-7: element flag, Bit 8-15: eventually priority of an RT program |
| 6 | Symbol value or address of a sublist |
| 7 | Address of a sublist of linking table elements or program start address if symbol is a defined RT program |
The element descriptor values:
| Bit 0-2 | Description |
|---|---|
| 0 | defined symbol (entry point) |
| 1 | referenced symbol (undefined symbol) |
| 2 | defined common label |
| 3 | declared common label |
| 4 | not used |
| 5 | not used |
| 6 | declared RT program |
| 7 | defined RT program |
Bit 3=1 (BPRT/PRINT): This symbol has been printed in the current "list command". This is used in the "list commands" after the commands LIST—IN—ALPHABETICAL—ORDER or LIST—[other commands] have been given.
ND-60.072.02
Page 16¶
Bit Descriptions¶
Bit 4=1 (INRTF): This symbol is in the RTFIL table.
Bit 5=1 (TEMP): This symbol is not available in the current "load command".
Bit 6=1 (BPREP): This symbol is an RT program name which will replace an already existing RT program with the same name and the same entry in the RT description table.
Bit 7=1 (BDECP): This symbol is a declared RT program which shall be defined now.
Bit 8-15: Contains the priority of the RT program if the symbol is an RT program, otherwise, these bits are not used.
Examples of the different linking table element types follow.
2.1.2 Element Descriptor Bit 0-2 Equals 0, Defined Symbol¶
Word No. 2 Explanation:
| Bits | Description |
|---|---|
| 0,1,2,3 | Standard |
| 4 | Segment number of the symbol |
| 5 | Element descriptor, bit 0-2 = 0 |
| 6 | Value of the symbol |
| 7 | Not used |
2.1.3 Element Descriptor Bit 0-2 Equals 1, Referenced Symbol¶
Word No. 2 Explanation:
| Bits | Description |
|---|---|
| 0,1,2,3 | Standard |
| 4 | Not used |
| 5 | Element descriptor, bit 0-2 = 1 |
| 6 | Address of sublist |
| 7 | Not used |
Page 17¶
Sublist Element¶
Word No.: Explanation¶
| Word No. | Explanation |
|---|---|
| 0 | Element link. Address of next element in sublist, link = 0 means end of sublist |
| 1 | Number of references in this element, maximum 6 |
| 2 | Address of reference |
| 3 | Address of next reference |
| 4, 5, 6, 7 | Address of references |
Linking Table with a Referenced Symbol¶
| Link | 0 | |
|---|---|---|
| No. of REF | No. of REF | |
| 1st REF. | 2 | |
| 2nd REF. | n-th REF. | |
| nth REF. | ||
| 5 | ||
| 6 | ||
| 7 |
Document Reference: ND6600722.02
Page 18¶
2.1.4 Element Descriptor Bit 0-2 Equals 2, Defined Common Label¶
| Word No. | Explanation |
|---|---|
| 0,1,2,3 | Standard |
| 4 | Segment number |
| 5 | Element descriptor, bit 0-2 = 2 |
| 6 | Address of common label descriptor |
| 7 | Eventually address of “data” sublist |
Common Label Descriptor¶
| Word No. | Explanation |
|---|---|
| 0 | Eventually address of "9ADS" sublist |
| 1 | Address of common block |
| 2 | Size of common block |
| 3 | Eventually current end of "data" sublist if linking table is expanded to the scratch file |
| 4 | Eventually current end of "9ADS” sublist if linking table is expanded to the scratch file |
| 5 | Eventually current end of "character" sublist if linking table is expanded to the scratch file |
| 6 | Not used |
| 7 | Eventually address of "character data" sublist |
The address of the common block is not decided before the END-LOAD command is given, so the address of the common block (word number 1 in the common label descriptor) will be relative to the first common address on the actual segment, after the common label is defined until the END-LOAD command is given, then the correct value is inserted.
ND-60.072.02
Page 19¶
The "9ADS" Sublist (References to the Common Label)¶
| Word No. | Explanation |
|---|---|
| 0 | Element link, address of next element in the sublist, link = 0 means end of sublist. |
| 1 | Number of references in this element, maximum 6 |
| 2 | Address of reference |
| 3 | Address of next reference |
| 4, 5, 6, 7 | Address of references |
The "Data" Sublist (DATA Statements)¶
| Word No. | Explanation |
|---|---|
| 0 | Element link. Address of next element in the sublist, link = 0 means end of sublist. |
| 1 | Number of data elements in this element, maximum 3 |
| 2 | Displacement (address relative to the start of the common block) |
| 3 | Data value |
| 4 | Displacement of next data element |
| 5 | Data value |
| 6 | Displacement of next data element |
| 7 | Data value |
The "CHARACTER" Sublist (CHARACTER Statements)¶
| Word No. | Explanation |
|---|---|
| 0 | Element link. Address of next element in the sublist, link = 0 means end of sublist. |
| 1 | Number of "character elements" in this sublist element |
| 2 | Displacement (address relative to the start of the common block) |
ND-60.072.02
Page 20¶
The "CHARACTER" Sublist Continued¶
Word No.: Explanation:¶
| Word No. | Explanation |
|---|---|
| 3 | Bit 0 - 7: character byte |
| Bit 15 = 0: left byte | |
| Bit 15 = 1: right byte | |
| 4 | Displacement of next "character element" |
| 5 | Next character byte |
| 6 | Displacement of next "character element" |
| 7 | Next character byte |
Linking Table with a Defined Common Label¶
| LINK | |
|---|---|
| 2 | COMMON LABEL DESCRIPTOR |
| 3 | SIZE |
"SADS" Sublist¶
| LINK | |
|---|---|
| 1 | NO. OF REF. |
| 2 | 1ST REF. |
| 3 | 2ND REF. |
| 7 | 6TH REF. |
"DATA" Sublist¶
| LINK | |
|---|---|
| 1 | NO. OF ELEM. |
| DISPLACEMENT | |
| 3 | VALUE |
| 4 | DISPLACEMENT |
| 5 | VALUE |
| 6 | DISPLACEMENT |
| 7 | VALUE |
"CHARACTER" Sublist¶
| LINK | |
|---|---|
| 1 | NO. OF ELEMENTS |
| 2 | DISPLACEMENT |
| 3 | BYTE |
| 4 | DISPLACEMENT |
| 5 | BYTE |
| 6 | DISPLACEMENT |
| 7 | BYTE |
ND-60.072.02
Page 21¶
2.1.5 Element Descriptor Bit 0-2 Equals 3, Declared Common Label¶
| Word No. | Explanation |
|---|---|
| 0,1,2,3 | Standard |
| 4 | Segment Number. Segment number equals -1 means segment common, segment number equals 0 means RTCOMMON. |
| 5 | Element descriptor, bit 0-2 = 3 |
| 6 | Eventually address of common label descriptor |
| 7 | Not used |
2.1.6 Element Descriptor Bit 0-2 Equals 6, Declared RT Program¶
| Word No. | Explanation |
|---|---|
| 0,1,2,3 | Standard |
| 4 | Not used |
| 5 | Element descriptor, bit 0-2 = 6 |
| 6 | Address of RT description |
| 7 | Not used |
2.1.7 Element Descriptor Bit 0-2 Equals 7, Defined RT Program¶
| Word No. | Explanation |
|---|---|
| 0,1,2,3 | Standard |
| 4 | Segment Number. Bit 0-7, segment number 1; bit 8-15, segment number 2. |
| 5 | Element descriptor. Bit 0-2 = 7; bit 8-15, program priority. |
| 6 | Address of RT description |
| 7 | Start address of RT program |
Page 22¶
Insert an Element in the Linking Table¶
A new element will always be inserted as the first element in the linking table by setting in the content of the linking table head location LTBP in the LINK of the new element, and set the address of the new element in the table head location LTBP.
Remove an Element from the Linking Table¶
An element in the linking table is removed by taking the content of the LINK location of the element, and storing it in the LINK location of the table element in front of the element to be removed.
Page 23¶
2.2 THE FREELIST¶
All the available elements for the linking table are initially set up in a freelist. The freelist is a linked table as in the linking table. When an element is removed from the linking table, it is inserted in the freelist again.
The freelist starts in a location named FREEP.
The freelist:
| FREEP | 1st ELEMENT | 2nd ELEMENT | nth ELEMENT |
|---|---|---|---|
| 0 | LINK | LINK | . . . |
2.2.1 Remove an Element from the Freelist¶
An element is removed from the freelist by taking the LINK of the first element and inserting it in the freelist header FREEP. The first element in the freelist is always the element to remove from the freelist.
2.2.2 Insert an Element in the Freelist¶
A new element in the freelist will always be inserted before the current first element by taking the content of the freelist header FREEP and inserting it as the LINK in the new element, and inserting the address of the new element as the content of the freelist header FREEP.
ND-60.072.02
Page 24¶
2.3 THE RTFIL TABLE¶
The RTFIL table is a continuous sequential table containing information about symbols of all existing segments which have been built by the RT loader. Each table element in the RTFIL table consists of 7 locations. The RTFIL table has a header location containing the number of elements in the table.
| NO. of ELEMENTS IN TABLE |
|---|
| ELEMENT 1 |
| ELEMENT 2 |
| ELEMENT m-1 |
| ELEMENT n |
ND-6000272.02
Page 25¶
2.3.1 The RTF/L Table Element¶
| Word No.: | Explanation: |
|---|---|
| 0,1,2 | The name of the symbol in ASCII. Same format as in the linking table (see Section 2.1.1) |
| 3 | Segment number(s) |
| 4 | Element descriptor. Bit 4 (INRTF) is always set |
| 5 | Symbol value |
| 6 | Other information |
2.3.2 Element Descriptor Bits 0-4 Equals 20, Defined Symbol¶
| Word No.: | Explanation: |
|---|---|
| 0,1,2 | Standard |
| 3 | Segment number |
| 4 | Element descriptor. Bit 0-4 = 20 |
| 5 | Symbol value |
| 6 | Not used |
2.3.3 Element Descriptor Bits 0-4 Equals 22, Defined Common Label¶
| Word No.: | Explanation: |
|---|---|
| 0,1,2 | Standard |
| 3 | Segment number. Segment number equals 0 means RTCOMMON. |
| 4 | Element descriptor. Bit 0-4 = 22. |
| 5 | Common label address (value). |
| 6 | Size of the common area. |
Page 26¶
2.3.4 Element Descriptor Bits 0-4 Equals 26, Declared RT Program¶
| Word No. | Explanation |
|---|---|
| 0,1,2 | Standard |
| 3 | Not used |
| 4 | Element descriptor. Bit 0-4 = 26 |
| 5 | Address of RT description |
| 6 | Not used |
2.3.5 Element Descriptor Bits 0-4 Equals 27, Defined RT Programs¶
| Word No. | Explanation |
|---|---|
| 0,1,2 | Standard |
| 3 | Segment number(s) Bit 0-7, segment number 1; Bit 8-15, segment number 2. |
| 4 | Element Descriptor. Bit 0-4 = 27; Bit 8-15, program priority. |
| 5 | Address of RT description |
| 6 | Start address of RT program |
2.3.6 Insert an Element in the RTE/L Table¶
A new element will always be inserted at the top of the RTFIL table, i.e., after the current last element in the table. The RTFIL header and the element counter will be incremented.
2.3.7 Remove an Element from the RTFIL Table¶
An element will be removed from the RTFIL table by moving all the elements following the element to remove, 7 locations down in the RTFIL table. The RTFIL header and the element counter will be decremented by one.
ND-60.072.02
Page 27¶
2.4 THE FILE RTFIL¶
The RT loader uses a file named RTFIL to keep a copy of the RTFIL table. The content of the file RTFIL is exactly the same as the content of the RTFIL table.
The content of the RTFIL table is written onto the file RTFIL on the EXIT-LOADER command if changes in the RTFIL table have been made in the current run of the RT loader.
The file RTFIL is initialized by setting the element counter the first location in the file, to zero, the first time the RT loader is started.
ND-60.072.02
Page 28¶
2.5 THE FLOW OF SYMBOLIC INFORMATION IN THE RT LOADER¶
| START RT LOADER |
|---|
| IS IT FIRST TIME THE RT LOADER IS STARTED? |
YES¶
- INITIALIZE THE FILE RTFIL
- COPY THE FILE RTFIL TO THE RTFIL TABLE
- INITIALIZE THE FREELIST AND THE LINKING TABLE
- COPY TO THE LINKING TABLE FROM THE RTFIL TABLE:
- ALL RT PROGRAM NAMES (DEFINED AND DECLARED)
- ALL SYMBOLS (ENTRIES) ON SEGMENT NO. 0
- ALL COMMON LABELS ON SEGMENT NO. 0 (RT COMMON)
NO¶
- LMON: READ A COMMAND
| IS IT A "LOAD" COMMAND? |
|---|
| NO |
| HAS THE "LINKING SEGMENT" CHANGED? |
NO¶
- EXECUTE THE LOAD FUNCTION. ALL SYMBOLIC INFORMATION WILL BE SET UP IN THE LINKING TABLE.
- GO TO LMON
YES¶
- COPY ALL SYMBOLS DEFINED ON THE NEW "LINKING SEGMENT" FROM THE RTFIL TABLE TO THE LINKING TABLE
| IS THE COMMAND END-LOAD? |
|---|
| NO |
| IS IT EXIT-LOADER? |
NO¶
- EXECUTE COMMAND AND GO TO LMON
- HAS THE RTFIL TABLE BEEN CHANGED IN THIS RUN?
- NO: GO TO LMON
- YES: COPY THE RTFIL TABLE TO THE FILE RTFIL
YES¶
- TRANSFER TO THE RTFIL TABLE FROM THE LINKING TABLE ALL ELEMENTS EXCEPT REFERENCED SYMBOLS AND DECLARED COMMON LABELS. IF THE SYMBOLS TO TRANSFER ALREADY EXIST IN THE RTFIL TABLE THEN THEY ARE NOT TRANSFERRED TO THE RTFIL TABLE
- GO TO LMON
| LEAVE RT LOADER |
|---|
ND-60.072.02
Page 29¶
2.6 THE SEGMENT FILES BIT MAP¶
The RT loader keeps a bit map of the segment files, to see which pages are free and which pages are already in use by segments. The bit map of the segment files are set up in the array BITBUF, and the addresses to the bit map of the respective segment files are set up in the array SEGTBIT.
Bit set to one means page is occupied, bit set to zero means page is free.
Bit number 15 in the first word in a segment file bit map corresponds to page number 0, bit 14 corresponds to page number 1, etc. (Bit 15 in the second word corresponds to page number 16.)
The size of the different bit maps depends upon the sizes of the corresponding segment files.
| SEGTBIT | Address of start of bit map buffer |
|---|---|
| 0 | (start of bit map of segment file 0) |
| 1 | address of start of bit map of segment file 1 |
| 2 | address of start of bit map of segment file 2 |
| 3 | address of start of bit map of segment file 3 |
| 4 | address of end of bit map of segment file 3 |
| BITBUF | Bit map of segment file |
|---|---|
| 0 | bit map of segment file 1 |
| 1 | bit map of segment file 2 |
| 2 | bit map of segment file 3 |
| BITBEND |
|---|
Page 30¶
3 BUILDING SEGMENTS¶
3.1 MEMORY LAYOUT OF THE RT LOADER SEGMENT¶
| Address | Description |
|---|---|
| 100000 | Global data |
| 102000 | Code (read only) |
| 136400 | RT loader stack |
| 137100 | Bit map of the segment files |
| 140100 | Input file buffer |
| 142100 | Scratch file buffers |
| The linking table | |
| 173777 |
ND-60.072.02
Page 31¶
3.2 HOW TO BUILD A SEGMENT¶
While loading a segment, the code is stored on the terminal's scratch file. The address area used in the scratch file is the same as the actual segment's virtual address area.
There are buffers for the scratch file on the RT loader segment. The number of buffers available depends upon the size of the linking table, as the linking table and the scratch file buffers share a common area.
In the END-LOAD command, the scratch file buffers are written onto the scratch file and the segment area on the scratch file is transferred to the actual segment file.
Page 32¶
3.3 THE SCRATCH FILE BUFFERS¶
The available scratch file buffers are set up in a list of used and unused buffers. Each scratch file buffer consists of 1k (2000₈) words.
The list of unused buffers:
BUFFREE
| LINK | LINK | |
|---|---|---|
| NOT USED | 0 | |
| ADDRESS | ADDRESS | ADDRESS |
The list of unused scratch file buffers starts in the location BUFFREE. Each element in the list consists of 3 locations.
| Word No. | Explanation |
|---|---|
| 0 | LINK. Address of next element in the list, LINK = 0 means end of list. |
| 1 | Not used |
| 2 | Address of the buffer |
The list of used buffers:
INCOX
| LINK | LINK | |
|---|---|---|
| VIRTUAL ADR. | VIRTUAL ADR. | VIRTUAL ADR. |
| ADDRESS | ADDRESS | ADDRESS |
| Word No. | Explanation |
|---|---|
| 0 | LINK. Address of next element in the list, LINK = 0 means end of list. |
| 1 | Virt. Addr. Address area of the scratch file for this buffer. |
| 2 | Address of the buffer |
The list of unused scratch file buffers are set up each time the RT loader is reset.
ND-6600072.02
Page 33¶
3.4 Flow Chart of the Scratch File Buffer System¶
| Is wanted buffer in memory? | |
| NO | YES |
| Is there a free buffer in the "unused buffer" list? | |
| NO | YES |
| Find last buffer in the "used buffer" list. Write buffer on the scratch file. |
Take buffer out of "unused buffer" list. |
Insert buffer first in the "used buffer" list.
Wanted buffer in memory
ND-60.072.02
Page 34¶
3.5¶
FLOW CHART OF HOW THE LINKING TABLE EXPANDS AND HOW THE SCRATCH FILE BUFFER LISTS ARE REDUCED
| Process Command | Has a new segment to be inserted into the linking table? | YES | NO |
|---|---|---|---|
| Start the linking data structure and the first header segment. This segment is linked to the first entry in the linking table. | YES | Place linking segments into the linking table from the scratch file buffer list. | Keep all segments already in the scratch file buffer list until processing a new statement. |
| Place remaining segments into the linking table. | Place scratch file with PROG NAME into appropriate place in scratch file storage. | ||
| Remove segments now linked to make room for new segments. | Each time a scratch file is linked to the linking table. |
Page 35¶
Global Variables¶
| Symbol | Description |
|---|---|
| 1CTpRI | Location in RT description entry |
| 1ACTSEG | Location in the RT description entry containing the RT program's current segment numbers |
| 1AL0GNO | Location in the core map entry, logical page number |
| 1ARES | A register for the subroutines, saved in stack by enter |
| 1BLPH | Bit 7 in COMFLAG (see COMFLAG) |
| 1B3AQK | Bit 2 in CDWFLAG (see COMFLAG) |
| 1BC0OT | Bit 1 in CDWFLAG (see COMFLAG) |
| 1BOCEP | Bit 7 in linking table and RRTFL table entry flag |
| 1bDEMAND | Bit 1 in segment table entry flag word |
| BdRM | Bit 9 in CDWFLAG (see COMFLAG) |
| 1BEC0El | BRF control byte for start of program unit (17 OCT) |
| 1BECFL | Flags for marking that loading of a BRF unit is started |
| 1BFLNL | Not yet found |
| 1BFNL | Bit 6 in COMFLAG (see COMFLAG) |
| BiHL | Address of the end of the segment files' bit maps |
| 1B1HLEND | The segment file bit map buffer |
| 1BLCKI | Block number to access on the scratch file |
| 1BL0GMW | Bit 3 in CDWFLAG |
| 1BLST | Buffer in system containing the mass storage start addresses of the defined segment files |
| 1BNREL | Bit 1 in COMFLAG (see COMFLAG) |
| 1BOOT5 | Start address of the bootstrap to output in the end-load command in the "IMAGEMLDDAD" mode |
| 1BPADR | Bit 8 in COMFLAG (see COMFLAG) |
| 1BPAGLNK | Location in the segment table entry, containing the address of this segment's first page in core map |
| 1BPREP | Bit 5 in linking table element flag |
| 1BSUINT | Means RT program shall be replaced |
| 1BSPRINT | Bit 3 in linking table and RRTFL table element flag |
| BPRMG | Means that element has been printed |
| BPRlCG | Bit 11 in COMFLAG (see COMFLAG) |
| 1BRCO | Bit 3 in COMFLAG (see COMFLAG) |
| 1BRESLNIK | Location in the RT description entry, start of the RT program's reservation link (queue) |
| 1BRFDEV | Logical device number for the input stream |
| 1BRFTF | Pointer to the parameter by the input file |
Page 36¶
RT-Description Table¶
General Information¶
- GRTPSTART: Start of the RT-Description table in the "Backup System"
- Used in the "Backup Upload" mode only
- BSEGLINK: End/start of "Segment Maintenance" queue
- BTAGBLODEST: Address pointer for the segment table, and the RT-Description table in the "Backup Upload Mode"
Configuration and Flags¶
- BTILST: Bit 12 in COMFLAG (see COMFLAG)
- BUFADR: Start of "Scratch File Buffer Area"
- BUFFREE: Start of free list for the "Scratch File Buffers"
- BUFLINK: Buffer contains the "used scratch file buffer" list and the "unused scratch file buffer" list
Registers and Pointers¶
- BUFPS: Address of the "Scratch file buffer" headers (BUFLINK)
- BHID: Bit 12 in RR register (written in PAGE)
- BXLO: Bit 5 in COMFLAG (see COMFLAG)
- CEFPAGE: In software, first page no. of RTCOMMON
- CCLFPAGE: In software, last page no. of RTCOMMON
- CKSUMPO: Saved current segment file number in use
- CHECT: Byte pointer in the input buffer
Utilities¶
- CHSUM: Location for generating checksum while loading
- CHSEG: Segment number used in the "write-segment-back" monitor call
Load Addresses¶
| 5LC | Current load address for the current load segment |
|---|---|
| 6LGC | Current load address for RTCOMMON |
| 6LLO | Current load address for the first new segment |
| 6LC2 | Current load address for the second new segment |
- LTTEND: Current end of the linking table (lowest address in LSTTE)
- LTTSTART: Current start of the linking table (highest address in LSTTE)
Flags and Limits¶
- CNZERD: Flag for marking that an address area has reached the limit of 64K
BIT Definitions¶
| BIT 1 | Address Area | RTCOMMON Area Correspondence |
|---|---|---|
| 0 | (SX1)=1 | Common defined to the end of SEGNI |
| 1 | (SX2)=1 | Common defined to the end of SEGN2 |
- BIT 3: (SXCJLC)=1 : Address area of the current load segment has reached 64K
- BIT 4: (SXCJJL)=1 : Address area of SEGNI has reached 64K
- BIT 5: (SXCLJ2)=1 : Address area of SEGN2 has reached 64K
Command Flags¶
- COMFLAG: Flag word used by the commands
- BIT 0: (BTHUL)=1 : "Image Load Mode"
- BIT 1: (BBAKDL)=1 : "Backup Load Mode"
- BIT 2: Reserved
- BIT 3: BOOTSTR=1 : Bootstart start address is not given in the "Image-Load" command
- BIT 4: Reserved
- BIT 9: Reserved
- BIT 5: (BXRLO)=x : Load command is the last given load command
- BIT 6: (BTRNUL)=1 : Reentrance load is the last given load command or the file named "(SYSTEM)DFTNLI1BR" will be scanned when the end load command is given
- NB-BD.072.02: Reference Code
Page 37¶
Technical Document¶
Bit Descriptions¶
| Bit | Description |
|---|---|
| BIT 7 | (BALPH) =1; The symbol output in the "LIST-COMMANDS" will be in alphabetical order. |
| BIT 8 | (BRADDR)=1; The symbol output in the "LIST-COMMANDS" will be in the order of increasing addresses. |
| BIT 9 | (BDREFL)=1; "DUMP-REENTRANT" command. |
| BIT 10 | (BPRSC0)=1; "PRESET-COMMON" command is given for segment 1. |
| BIT 11 | (BPRSC0I)=1; "PRESET-COMMON" command is given for segment 2. |
| BIT 12 | (BTULIST)=1; Table content should be printed in the "TERMINATE-LOAD-AND-PRINT" command. |
| BIT 18 | (BLOCMVH)=1; Marking that the current input-stream is in BRF format and not in binary format. |
Logical Device Numbers¶
- COMTNDEV: Logical device number for the command input device.
- COMTUDEV: Logical device number for the command output device.
Buffers and Segments¶
- COLSTRING: Command input line buffer.
- CORNSTART: In SMTRAN - Address of start of core map table (end of segment table).
Important Constants and Addresses¶
- LPNT: Byte pointer in buffer CSTRING.
- PLFC: Constant = 13, ASCII code for carriage return and line feed.
- CSEGPNO: Current segment file number ("0" = J).
- ESTRINGS: Pointer to array CSTRING containing command line.
- EUPRIMARY: In SMTRAN - RT description address of the current running RT program.
Segments and Labels¶
- EURSTILLUM: Lower address used on the current load-segment (CUR1S).
- EURSTILLUP: Upper address used on the current load-segment (CUR2S).
- URTP: Pointer to first free element in RT input buffer.
- CUR1S: Current load-segment.
- CUR2S: Current link-segment.
- C3COM: Address of common label in resident core relative to current program start address.
Common and General Codes¶
- CI3COM: Address of common label in segment 1 relative to the start of common area on segment 1.
- GECOM1: Address of common label in segment 2 relative to the start of common area on segment 2.
- GOPARL: Points to parameter list for accessing files.
- NREG: Return address to the subroutines, saved in stack by 'ENTER'.
- GSEGTP: Default segment type, (RENT & NIO).
- STACKL: Constant = 230Q, default stack length used in the "REENTRANT-LOAD" command.
- GLRTHFL: Pointer to the buffer GLRTHFL, used for moving table elements to/from RTIL from/to the linking table.
Exit and Control Codes¶
- EOFREG: Register when entering the RT loader.
- ENTREG: Register when entering the RT loader.
- EOFT: BRF control byte for end of file. (23 OCT).
- FACCODE: Access code to use when opening files.
- EALLOC: BIT 5 in open file table OFTYR.
- EALLOC: 1 means allocated file.
- ECONT: BIT 4 in open file table OFTYR.
- ECONT: 1 means continuous file.
Page 38¶
Technical Specifications¶
| Symbol | Description |
|---|---|
| ECURTP | Constant value, first address in the RTFILE_BUFFER |
| EXTFTFIL | Buffer containing the file name '\SYSTEM\ITINLR\BR\ |
| EXX | Bit 2 in flag in segment table entry |
| EXXLGN | FIX=1 means segment is fixed in memory (FIX or FIXC) |
| FLAG | Location in the segment table entry |
| Bit 1=1: Demand segment, Bit 1=0: Non demand segment | |
| Bit 2=1: Segment is fixed in memory | |
| Bit 3 (INHIBIT): Segment cannot be swapped in or out | |
| Bit 9-15: Same as in the page index table entry | |
| EP | Bit 13 in PCR register (Fetch permitted) |
| FREEP | Pointer to first element in three sites of the linking table |
| FRETFIN | Buffer containing the file name '\SYSTEM\ITINLR\LIBR\ |
| (REAL) Working locations for the subroutines | |
| FTMP0 | Saved in stack by enter |
| FTMP1 | Saved in stack by enter |
| GTHR2 | (REAL) Working locations for the subroutines |
| Saved in stack by enter | |
| BLCK | Block number to use when accessing the input file |
| !!!CTR | BRF control byte for integer common data constant (40 oct) |
| !!!G0CTR | Start of list of used buffers in the "scratch file buffer pool" |
| !!!!!DBG | Bit 1 in flag in segment table entry |
| !!!HNIBIT | Inhibit means segment free or temporarily unavailable |
| !!!INITFLAG | Flag set to one when an error is detected in the |
| Initializing of the RTM Loader, returns to the | |
| !!!INITCOM | SITRMAN III operator communication |
| !!!INT | BRF control byte for integer local data constant (34 oct) |
| !!!IWDF | Pointer to the parameter "input file" |
| !!!IVWF | Bit 4 in element descriptor (flag) |
| !!!IWX | In linking table element and in RTMHL element |
| QBULF | In STRIFT means that symbol exists in RTFILE table |
| RTDSDSIZE | Buffer of the BRF/Binary input file (1k) |
| PTAB | RT description size in SITRMAN III C |
| Page index table number for the RTPROGRAMS and the segments | |
| Currently being built; Bit 1=1: Page index table number | |
| REYGC | Page index table no. 1 is default |
| NGPLF | Constant/NSL logical device number of the terminals |
| !!REG | Flag for spar called directly or by KGPAR |
| LREG | KGPAR=1 when spar called by KGPAR |
| COMNMTSTART | A register for the subroutines calling |
| LDREQ | Enter & Leave |
| Address of end of segment table | |
| Return address for the subroutines calling | |
| !!OJIMK | Enter & Leave |
| FILTABLE | Next free linking table element on the scratch file |
| LEXCLGB | Upper address used in RTCOMMON |
| QIBNO | Flag to use when check for skip/not skip after |
| GJMK1 | A string of symbols after the BRF control byte IIBR |
| Local saving of return address for subroutines not calling | |
| Enter & Leave |
ND-60.072.02
Page 39¶
Technical Reference Page¶
Definitions¶
- EMUKZ
Local saving of return address for subroutines not calling enter and leave.
- LTMESIZE
Linking table entry size (96 LDC).
- LOAD1
In initialization, flag set to one the first time the RT loader is started.
- LOGADR
Location in the segment table entry:- Bit 0-7: First logical page in segment.
- LONGFL
Flag for 4 or 6 bytes SRF symbols, LONGFL=1 then 6 bytes.
- LOPHRT
Constant=1, priority given the RT programs who have no priority specified.
- FTFSTART
Address of start of RT description table.
- FTFPAGE
First logical page to load into on the current page index table.
- LRTLPG
Last legal page to load into on the current page index table.
- LSCGTSTART
Address of start of segment table.
- LSTACK
The loader stack array.
- LGTASIZE
Size of RTL loader stack.
- LTBP
Pointer to first element in linking table (constant; always points to LTBP linking table header).
- LTREG
Register for the subroutines calling enter and leave.
- LSGCM
First segment available for RTL loader.
- LSEGAUM
First free page on specified in backup/upload mode.
- LXREG
X register for the subroutines calling enter and leave.
- LASSADR
Location in the segment table entry:- Bit 0-9: Address of the segment on the segment file, in pages relative to the start of the segment file.
- Bit 14-15: Segment file number.
- MASSNG
Buffer containing the "open file number" of the specified segment files.
- MAXEBT
Highest EBT control number (45 OCT).
- MAXLTABLE
Upper memory address of linking table (end of RT loader segment).
- MAXPCBUF
Actual max numbers of buffers in the scratch file buffer pool.
- MAXUPTP
Upper address on RTL segment.
- NCSTTIK
Constant=347, number of bytes in an words.
- NCOSTR
Number of characters in the distributed buffer.
- NELLRTFIL
Actual number of elements in the RT file buffer.
- NEHPAGE
Flag for starting/not starting on a new page for each new BRF unit, NEHPAGE=1 when starting on a new page.
- NQS6
Constant=200D, scratch file buffer size.
- NVB02W
Number of words in transfer to/from segment file and scratch files; constant=200D.
- NULL
In initialization, no. of words to transfer to/from the RTL file from/to the RTL segment.
- OFAG
Location in the open file table entry - number of pages in a continuous file.
- OFTYP
Location in the open file table entry - file type.
- OLDCHAR
Used for saving one ASCII char.
- OPNT
Byte pointer for OSTring.
ND-60.072.02
Page 40¶
Technical Document¶
Parameters¶
| Symbol | Description |
|---|---|
| $.STRING | Address of old string containing text to output |
| $.UPP | Pointer to the parameter output file |
| $.UTDEV | Logical device number for general output from the RT!-LOADER |
| $.UTPFL | Logical device number of the output file |
| $.UGPF | Used by the ".LIST $COMMANDS" |
| $.ACCERR | Address of the text string "ERROR IN ACCESSING" |
| $.AGLLNK | Location in the core map entry - Pointer to the next entry in the core map for this segment |
| $.AGPHY$ | Location in the core map entry containing information to be put into the page index table |
| $.PARDEF | Flag telling which parameters have been skipped by the user. The RT!-LOADER will set in default parameter values for the skipped parameters if default values are available |
Skipped Parameters¶
- Bit 0 (P0D5): Parameter No. 1 is skipped
- Bit 1 (P1D5): Parameter No. 2 is skipped
- Bit 2 (P2D5): Parameter No. 3 is skipped
- Bit 3 (P3D5): Parameter No. 4 is skipped
- Bit 4 (P4D5): Parameter No. 5 is skipped
- Bit 5 (P5D5): Parameter No. 6 is skipped
$.PARDEF is reset for each call to GCOM, and it is updated for each call to GPARM/GPARM.
$.EARDGET: Parameter list used when accessing the scratch file$.PARHNG: Contains the parameter number in a command. PARHNG is updated for each call to GPARM/GPARM, and PARHNG is reset for each call to GCOM.$.PARRTF: In SINTRAN - Parameter list for accessing the RITFL file$.CMISGE;W,5: Program base (first address field of a UWF unit)$.FRA$ADR: Address of the CMISGE, parameter list for the WA1VE SEGMENT-BACK MONITOR call$.FRAUDR: Address of symbol to print now in the ".LIST COMMANDS".
Additional Addresses¶
| Address | Description |
|---|---|
| AFTER | The LIST command has been used after the LIST, FETCH or other command or after the symbolic address command has been used |
| $.RITBT | BRF (control byte for program priority (25 octal)) |
| $.PRMCALL | Address of the entry in resident core to enter when reading the RITFL file (Parameter list for WCALL) |
| $.RCWLOADR | Address of the start of the common area on SEG1 |
| $.DEWLOADR | Address of the start of the common area on SEG2 |
| $.O3Y1, PSY2, PSY3 | Locations used for comparing a symbol in SY1-SY5, PSY1 against a symbol in PSY1-PSY5 to see if this symbol is in SY1-SY5 or shall be printed now |
Memory and Pages¶
$.MWCALL: Address of the entry in resident core to enter when writing on the RITFL file (parameter list for WCALL)$.PWQWRA: Pointer to the array NORMAL, used by the command decoding routines$.PLLLWW: Lowest legal address on page index table 0$.PULLHW: Upper legal address on page index table 0
Bits in PARDEF¶
$20: Bit 0 in PARDEF (See PARDEF)$30: Bit 1 in PARDEF (See PARDEF)$40: Bit 2 in PARDEF (See PARDEF)$50: Bit 3 in PARDEF (See PARDEF)
ND-60.072.02
Page 41¶
Technical Descriptions¶
| Symbol | Description |
|---|---|
| REESGM | Location in RT description table entry, containing the segment number of the RT program's current reentrant segment |
| RTELSSIZE | Size of one RITABLE-TABLE element (7 locations) |
| RIPRMR | Parameter list used when accessing the input files |
| RHICSEG | Segment numbers used in the recall monitor call when entering the subroutine in resident core to read from the RITABLE file to the RITABLE buffer |
| RP | Bit 14 in the RCR register (read permitted) |
| RTFBL | In SINITRAN - block number to access on the RITABLE file |
| RTFIL | In SINITRAN - "Open file number" of the RITABLE file |
| RTIDSIZE | Size of one RITEDESCRIPTION table element |
| RTFBU | Address to start of RITABLE buffer on the RITABLE segment |
| GTFPAGE | In SINITRAN - first page in segment address area on page index table 1 |
| RTSEG | Segment number of RITABLE segment |
| RTPRESPAR | Parameter list used for reserve/release of the RITABLE file |
| RTLAGE | In SINITRAN - last page in segment address area on page index table 1 |
| RTLSEG | Segment number of RT loader |
| RTOF | Bit 14 in the RIT description table element |
| RTISTART | In SINITRAN - address of start of RT description table |
| VATVDA | (Real) working locations for the RT enter and leave subroutine(s) |
| SAVXM | Working location for the subroutines enter & leave |
| SORFIL | (Constants%040) File number of the scratch file |
| ECDBL | Block number used when accessing the current segment file |
| ECFPAR | Parameter list used when accessing the segment files |
| SECULNK | Location in the segment table entry link for the segment's inventory queue and which may be snapped out under fixed |
| EQLLVM | Lowest logical address legal to load into location in the RT description entry |
| EGH | Bit 0-7: 1st segment of RT program |
| SEDNLH | Bit 8-15: 2nd segment of RT program (constant LD%00Q, default lowest logical address of the 2nd new-segment (SEGNL2) |
| EGPH | Points to parameter string "Segment no.;" |
| SEGNL | First new-segment specified in a load operation |
| SEGN2 | Second new-segment specified in a load operation |
| SEGSIZ | Size of a segment-table entry (5 locations) |
| SGSITART | In SINITRAN - address of start of the segment table (end of RT description table) |
| SCTOT | Buffer containing the addresses of the segment files |
| SEDI | ST MARS |
| EQULM | Offer logical address legal to load into |
| SECULLM | Lower address of RTCORBAN area |
| SECUULM | Upper address of RTCORBAN area |
| SEGNL1V | Lowest address used on SEGNL1 |
| SEGNTYP | Segment type of the first new-segment (ND/DH & RING) |
| SEGCULM | Upper address used on SEGNL1 |
| SECULMM | Lowest address used on SEGNL2 |
| SEDZPTP | Segment type of the second new-segment (ND/DH & RING) |
| SECULMM | Upper address used on SEGNL2 |
NIB-60070202
Page 42¶
Technical Reference¶
Errors¶
- $ERRFL: Flag set equal one when any serious error is detected.
- No more loading is legal when this flag is set.
- $ERRFL is reset by the reset-loader command.
Segment Files¶
- SGFTLNVG: File number of the currently used segment file.
Segment Table¶
- GXADR: Pointer to address of entry No. 1 in the segment table.
- GCFTABLE: First locations mark if the respective segment file is used or not. Content equal 0 means segment file not defined.
- Location equal 1 means segment file is defined.
- The next locations contain the addresses of the respective segment file names.
Buffers¶
- SIZEF: Buffer containing the size in pages of the defined segment files.
- SKIPFL: Flag for skip/not skip BRF library units. Set if skip.
- SPACE: Constant – ASCII code for space.
- $RTFIL: Buffer containing the file name
<GSYSTEM>RTFIL.DATA. - $SYMBIND: Buffer containing the symbol
$RTENDin "BRF format".
Stack¶
- $TACKL: Current stack length, used in the reentrant load command.
- $TADPTR: Location in the RT description entry.
- Start address of RT program.
- $TATTRIBUTE: Location in the RT description entry.
- Bit 0-7: RT program priority.
- Bit 8-9: Protection ring.
- $TBES: Start of the loader stack.
- $TDELTA: Size of one element in the loader stack (15 octal).
- $TEND: End of the loader stack.
- $TPTNT: Pointer to current stack top.
CNZERO¶
| Bit | Description |
|---|---|
| $XCLC | 0 |
| $XCL1 | 0 |
| $XCLZ | 0 |
| $XCL | 0 |
| $X81 | 0 |
| $X32 | 0 |
Parameters¶
- $YMEMP: Pointer to the parameter file type :STMS.
Symbols¶
- $YLIBT2,SYS: Locations for unpacking packed symbols before printing them.
Logical Pages¶
| Description |
|---|
| $SLOGADR: First logical page and number of pages in the first new segment (SEGN1). Bit 0-7: First logical page in SEGN1. |
| Bit 8-15: Number of pages in SEGN1. |
Lengths¶
- $LILONG: Length of SEGN1 in pages.
- $IHADPR: Page address of the first new segment (SEGN1) on the segment file, relative to the start of the segment file.
Segment Information¶
- $ELGADR: First logical page and number of pages in the second new segment (SEGN2). Bit 0-7: First logical page in SEGN2.
- Bit 8-15: Number of pages in SEGN2.
- $ZLONG: Length of SEGN2 in pages.
- $EMADR: Page address of the second new segment (SEGN2) on the segment file, relative to the start of the segment file.
Tables¶
- $EHP: Bit 5 in flag in linking table element.
- TEMP=1 means symbol temporarily not available for loading.
- $GARB: Flag set to one when the linking table is expanded to use the scratch file for references to common labels.
NDE: B1:072.02
Page 43¶
Technical Page¶
| Label | Description |
|---|---|
%TREG |
T REGISTER FOR THE SUBROUTINES, SAVED IN STACK BY ENTER |
%USCRM |
IN SHMN MAIN - FIRST SEGMENT THE RT LOADER MAY USE |
%AREG |
WORKING LOCATION FOR THE SUBROUTINES NOT USING ENTER AND LEAVE |
%NRPTFLAG |
FLAG SET TO ONE WHEN THE RMTPFLD BUFFER IS CHANGED, THEN THE RMTPFLD BUFFER IS WRITTEN TO THE FILE RMTFL |
%JLINK |
IN THE EXIT-LDR COMMAND LOCATION IN THE RT DESCRIPTION ENTRY |
| USED AS QUEUE LINK IF RT PROGRAM IS IN THE EXECUTION QUEUE OR IN A WAITING QUEUE | |
%HHSEG |
SEGMENT NUMBERS USED IN THE MONITOR CALL. MCALL WHEN ENTERING THE SUBROUTINE IN RESIDENT CORE TO WRITE THE RMTFL BUFFER TO THE RMTFL FILE |
%NORCA |
CHARACTER STRING BUFFER |
%WP |
BIT 15 IN THE PCR REGISTER (WRITE PERMITTED) |
%WKMREG |
WORKING LOCATION USED BY THE SUBROUTINES NOT DALLING ENTER AND LEAVE |
%WMKNOWNP |
SAVES SYMBOLS WHILE READING/GRT INFORMATION AND CONTAINS THE NAME OF THE SYMBOLS WHILE SEARCHING FOR SYMBOLS WITH A SPECIFIED NAME IN THE LINKING TABLE OR IN THE RMTFL TABLE |
%XRCG |
X REGISTER FOR THE SUBROUTINES, SAVED IN STACK BY ENTER |
%XOFPN |
BUFFER CONTAINS THE NAME OF SEGMENT FILE NO. 0 |
%SCFN |
BUFFER CONTAINS THE NAME OF SEGMENT FILE NO. 1 |
%XCF2 |
BUFFER CONTAINS THE NAME OF SEGMENT FILE NO. 2 |
%XOF3 |
BUFFER CONTAINS THE NAME OF SEGMENT FILE NO. 3 |
%SUBSTSIZE |
SIZE OF COMMAND LINE BUFFER |
%ECHCOM |
FLAG FOR WATCHING/NOT WATCHING 5 CHARACTERS MAC-AO3-STMOEL |
%HXEHAR |
MAX CHARS ON ONE LINE |
%HASEN |
LDG. DEV. NO. OF SEMAPHORE TO RESERVE WHEN ACCESSING RMTFL FILE |
%ERHW1 |
FIRST OCTAL NUMBER TO USE IN A SERIOUS ERROR MESSAGE |
%ERHW2 |
SECOND OCTAL NUMBER TO USE IN A SERIOUS ERROR MESSAGE |
Page 44¶
SEND US YOUR COMMENTS!!!¶
Are you frustrated because of unclear information in this manual? Do you have trouble finding things? Why don't you join the Reader's Club and send us a note? You will receive a membership card-and an answer to your comments.
Please let us know if you * find errors * cannot understand information * cannot find information * find needless information
Do you think we could improve the manual by rearranging the contents? You could also tell us if you like the manual!!
HELP YOURSELF BY HELPING US!!¶
| Manual name: | Sintran III REAL TIME LOADER - SYSTEM DOCUMENTATION |
|---|---|
| Manual number: | ND-60.072.02 |
What problems do you have? (use extra pages if needed)
Do you have suggestions for improving this manual?
| Your name: | Date: | |
|---|---|---|
| Company: | Position: | |
| Address: |
What are you using this manual for?
Send to:
Norsk Data A.S.
Documentation Department
P.O. Box 4, Lindberg Gård
Oslo 10, Norway
Norsk Data's answer will be found on reverse side.
Page 45¶
Answer from Norsk Data¶
Answered by: _________
Date: __
Norsk Data A.S
Documentation Department
P.O. Box 25 BOGERUD
N - 0621 OSLO 6 • Norway
Page 46¶
Systems that put people first¶
ND