Section 6.1

Documents

6.1.0  General

A document is a set of data (instructions and/or numbers etc.)  This data can be required or be produced by a program.  Each document has a name which is considered part of the document and it may have some form of terminating mark.

The name of a document consists of not fewer than 2 and not more than 8 components.  If the document is on paper tape, cards or a line printer each component is separated from the next by solidus and if on magnetic tape each component is stored in a word.  A component can have up to 8 characters; the characters allowed are, letters, digits and . (point).  + (plus) as a component (it can’t be the first or second) is allowed and indicates that the document is composite.  VS as a component is allowed.  It is advisable to have as a component the date on which the document was created.

The purpose of each set of data having a name is to ensure that a program uses the correct set of data and it does this by requesting a specific document by its name.  Each new document created is given a name.

In a 'document request name' when requesting a document it is allowed to use - (minus) in place of a component (it can't be the first or second) which means "don't care what this component is" and if no further components follow the - (minus) then this means "don’t care what further components are".  In a "document name" which is to be stored or output it is allowed to use * (asterisk) in place of a component (it can't be the first or the second) which causes Basic Input Routine to store or output today's date as this component.  This is the date as stored by the 150/12 instruction.  Character VS is allowed but when read by Basic Input Routine it is ignored and each component is stored in a word with the characters right-justified.

A document can be simple or composite.  A composite document is a collection of documents.  The name of a composite document has + (plus) as one of its components and each document on a composite document has its own name.  A simple document contains that document only.

Unless Basic Input Routine, a semi-built-in routine or an Orion Library routine is to read a document, there is no restriction on the layout of a document, otherwise the layout of the document must obey certain rules.

If Basic Input Routine is to search a composite document for a requested document then the layout of the composite document must be such that the names of the documents have in common the components which precede the component + (plus).

For example, if the composite document's name is B/A/+ then the first two components of the documents' names are B/A

6.1.1  Magnetic Tape Documents

The name of the document is held in Block 0.   It is advisable to follow the last block of information on any tape by the non-sequentially addressed block.

6.1.1.1   Composite Magnetic Tape Documents to be read by Basic Input Routine a semi-built-in routine or an Orion Library Utility routine.

(a)   Each document of the composite document is made up of a number of blocks.  Each document must start with a new block, i.e. no block can contain parts of two different documents.

If pre-addressed tape is used the single-word block addressed markers will intervene.

(b)   The first document is a list of the names of the documents (including itself) on the tape.  This document is read to find out whether a specific document is on the tape.  The name of this document must have the component DOCULIST and it occupies the position of the + (plus).  For example, if the composite document's name is B/A/+ then the name of the list document is B/A/DOCULIST.  If the component following the + (plus) is the date on which the composite document was created then the component following DOCULIST will be this date.

The order of the names in the list document must be the same as that of the documents on the composite document.

(c)   The first block of every document is a 9 word block which contains in the last 8 words, the name of the document.  This block is known as the name block and will be read by Basic Input Routine when searching for a specific document.

(d)   Length of Blocks

(i)   If the mentioned routines are to read the document itself, then the length of each block must be less than 130 words; otherwise the block length is unrestricted.

(ii)   One word blocks are only allowed on pre-addressed tapes.  These are the block address markers.

(iii)   The list document which will be read by the mentioned routines contains the names of the documents (including itself) set out in consecutive groups of 8 words.  A block of this document must have length (8n + 1) words where 0 < n 16.  Thus no block may have part of a name at the end of it and the rest of the name at the beginning of the next.  The names must be in the order as that of the documents on the tape.

(e)   The first word of each block must have

(i)   D0 set to 1 if the block is a name block, otherwise D0 is 0.

(ii)   D1 set to 1 if the block is the last block of the document, otherwise D1 to 0.

(iii)   The l.s. 15 bits set to the binary integer   > 1 which is the length of the block.  This length is only needed for blocks which are to be read by the mentioned routines.

(f)   If the document is to be read by a semi-built-in routine the second word of the first block of information (i.e. the first block after the name block) must contain, in the modifier half, the length of the drum required by the semi-built-in routine.

(g)   If the document is to be read by Basic Input Routine then the document must end with a Basic Input Directive (this directive is part of the document) e.g. END or ENTER etc.  (Note: USE and PROCESS directives must be the last information of a block since Basic Input Routine after carrying out the required action returns to read the next block.)

(h)   Some Orion Library Utility routines use the non-sequentially addressed block and so if these routines are to read the composite document then this block must follow the last block of information.

6.1.1.2  Simple Magnetic Tape Documents to be read by the mentioned routines

  (i)  The blocks of information follow Block 0, i.e. there is no name block.

 (ii)  Each block must be less than 130 words long.

(iii)  The first word of each block will have D0=0 and D1=0 unless it is the last block in which case D1 will be 1.

       The l.s. 15 bits will contain the length of the block as a binary integer.

(iv)  The second word of the first block will contain the drum length in its modifier half if a semi-built-in routine is to read the document.

 (v)   If to be read by Basic Input Routine then it must end with a Basic Input directive.

(vi)   Some Orion Utility routines use the non-sequentially addressed block and so this block must follow the last block of information.

6.1.2  Documents on paper tape and cards

Most documents on these media will be simple documents.  The first line i.e. card for cards (excluding run out etc.) will be the DOCUMENT directive with the name of the document.  It is advisable to terminate a document with some terminating mark.

All documents to be read by Basic Input Routine or a semi-built-in or an Orion Utility Routine must finish with a terminating directive, for example END, ENTER, READ etc.  The format of a document to be read by Basic Input Routine is defined in 7.1.  For a document to be read by Symbolic Input Routine the format is defined in 7.2.

Basic and Symbolic Routines do not recognise composite documents on paper tape or cards.

6.1.3  Conventions for distinguishing various versions and forms of documents on the System tape

The document request name given in the specification gives only the invariant components.  The next component gives the form (i.e.  language)

either BIN means binary and map (see 7.3)

or CHA means characters (i.e. Basic Input Language - see 7.1.)

The next component gives the date.

If there is a semi-built-in form of the document available then the third component must be different from the third component in other forms and this must be given in the specification,

the fourth component will be SEMI, and

the fifth component is the date.

Example

Document request name.

ORION/SYSTEM/COMPILER/SYMBOLIC/-

Name of Character form

ORION/SYSTEM/COMPILER/SYMBOLIC/CHA/18NOV63

Name of binary and map form

ORION/SYSTEM/COMPILER/SYMBOLIC/BIN/20NOV63

Semi-built-in name

SYMBOLIC

Name of semi-built-in form

ORION/SYSTEM/SYMBOLIC/SEMI/1JUL64