BackbuttonSegment Dictionary

 

The Segment Dictionary contains references to Code and Data Segments located in either the MCP Stack or the program's CodeFile.

A Compiler constructs a skeleton Segment Dictionary in which each entry contains a Tag Byte, a Flag Byte and a 6 Byte Word Value.

When a program is initiated, the D[1] Stack is created and a Read with Tags of the skeleton Segment Dictionary is performed from the CodeFile to initialize it.

A Dynamic Compiler creates additional Segment Dictionary entries in the D1ADDITION Array passed to the DYN_COMPILER.

On a B6700, the D[1] Stack is limited by the 13 bit SIRWDELTA field to 8191 entries.

On Delta architecture machines, the D[1] Stack is limited by the 16 bit SIRWDELTA field  to 65535 entries.

The first Segment Dictionary entry is overwritten by the MCP with the MSCW of the D[1] Stack, and should not be used by a Compiler.

The second entry may contain a Data Descriptor for the Line Dictionary (LineInfo).

The Segment Dictionary is shared between multiple invocations of the same program, and therefore should only contain reentrant Code and Data.

The compilers typically store Read Only Value Arrays, static Truthsets and TranslateTables in the Segment Dictionary.

In SETUP_D1STACK at 15782920, the skeleton D1 Stack is searched for any PCWs, which are then converted to the new format.

The Segment Dictionary must be contained in one Disk Area. If the default AreaSize of 504 Sectors is insufficient, the AreaSize can be increased to a multiple of 504 Sectors. See PLE 17990233 Invalid Tags In Segment Dictionary.