Skip to content

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:

  1. The RT Loader segment.

    Segment number 4, protection ring number 2, page table 0, virtual address area: 1000008 - 1737778.

  2. The RTFIL segment.

    Segment number 8, protection ring 2, page table 2, virtual address area: 0 - 777778.

  3. 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:
    1. ALL RT PROGRAM NAMES (DEFINED AND DECLARED)
    2. ALL SYMBOLS (ENTRIES) ON SEGMENT NO. 0
    3. 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 $RTEND in "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