DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Wang WCS documentation floppies

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Wang WCS documentation floppies

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦44654ad83⟧ Wang Wps File

    Length: 34766 (0x87ce)
    Types: Wang Wps File
    Notes: Spelunked
    Names: »~ORPHAN26.04«

Derivation

└─⟦507b19fd6⟧ Bits:30006135 8" Wang WCS floppy, CR 0282A
    └─ ⟦this⟧ »~ORPHAN26.04« 

WangText

eferring a local terminal 
 give the retrieval right to this terminal.

 The MRF record for the message is formed of the ex-
 tracted information together with the MTF address of 
 the firs sector of the message, the retrieval time 
 and the messag length from the MTCB
 
 The in-memory subset of the MRF(which is a part of the critical region SRS ̲CR) is
 updated with the record. If the in-memory subset of the MRF hereby gets full, a transfer
 to the MRF is performed. (The storage process
 awaittermination). (fig. 3.1-3).…86…W         …02…   …02…   …02…   …02…                             
              
 If the retrieval DTG of the message (obtained from the MTCB) is superior to the retrieval
 time of the last 
 stored message, update of the in-memory subset of the DTGF (which resi3̲1̲8̲2̲A̲…00…FIX/1153/PSP/0097
        …00…lbe                 …00…OK                  …00…SRS Subsystem PSP   …00…2̲0̲…00…1̲2̲…00…8̲2̲…00…1̲0̲…00…4̲1̲…00… ̲ ̲ ̲5̲…00…1̲2̲…00…
 ̲1̲7̲1̲6̲0̲…00…1̲7̲…00…0̲2̲…00…8̲3̲…00…0̲9̲…00…1̲0̲…00… ̲ ̲ ̲ ̲…00…07…00… ̲ ̲ ̲3̲72…00…1̲7̲…00…0̲2̲…00…8̲3̲…00…1̲3̲…00…1̲6̲…00…22…00…02…00…83…00…09…00…13…00…0282A…00… 87…00… ̲ ̲ ̲6̲…00…34…00…  408…00… ̲2̲0̲1̲37…00……11……00……02……00… @…00……10……00……01……10……05…'…10……11……01……80…*̲J̲…15……05……00……00……00……00……00……00……01…B
=̲…00……86……00……00……00……00……19……0a……00……00……19……0b……19… …18……08……18……0a……18……0d……18……00……18……05……18……06……17……0b……17……0d……17……0e……17…
…16……08……16……0b……16……0c……16……01……16……07……15……0b……15……00……15……06……14……08……14……0b……14……0e……14……0f……14……02……14…
…14… …14……06……14……07……13……08……13……0a……13……0b……13……0f……13……00……13……01……12……86…1                                             …02…            …02…    …02…            

…02…FIX/1153/PSP/0097

…02… OK/830216…02……02…
SRS Subsystem PSP
…02… OK/821216…02…FK 7809







       TABLE OF CONTENTS                               Page

   1 Scope ..........................................   1 
     1.1  Introduction ..............................   1 
     1.2 ABBREVIATIONS ..............................   1 
   2 APPLICABLE DOCUMENTS ...........................  2 
   3 MODULE SPECIFICATION ...........................   3 
     3.1 Functional capabilities ....................   3 
     3.2 Interface Description ......................  19 
     3.3 Processing .................................  20 
       3.3.1 STORAGE (Man module). .................  22 
       3.3.2 INIT ̲STORAGE ...........................  25 
       3.3.3 GET ̲QUEUE ̲ELEM .........................  28 
       3.3.4 TEST SPACE .............................  30
       3.3.5 DELETION ............................... 33
       3.3.6 PROCESS ̲MESS ...........................  39
       3.3.7 U ̲MRF ̲DTGF .............................  46 
       3.3.8 UPD ̲PARAM ..............................  52 
       3.3.9 DEL ̲Q ̲ELEM .............................  54 
       3.3.10  READ ̲MRF ̲REC ........................  56 
       3.3.11  READ ̲DTGF ̲ENT ........................  58 
       3.3.12  CALC ̲REC ̲FRGE ̲ON ̲MRF (Delete utility  
               Procedure) ...........................  60 
       3.3.13  CALCULATE ̲MTF ̲SPACE (DELET utility         
               procedre) ...........................  62 
       3.3.14  DECODE ̲BIN ̲H (PROCESS MESS utility         
               procedure) ...........................  64 
       3.3.15  DECODE ̲SICS (PROCESS Mess utility          
               procedure) ...........................  66 
     3.3.16  DECODE ̲AIG ̲M (PROCESS MESS utility         
               procedure) ...........................  68 
       3.3.17  GET ̲MEDE ̲NO (PROCESS ̲MESS utility          
               procedure) ...........................  70 
       3.3.18  UPD ̲TERM ̲BNIT ̲M (PROCESS ̲MESS tility      
               procedure) ...........................  70 …86…W   …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02…           
                                                                                           
                             
     3.4 DATA ORGANIZATION ..........................  72 
     3.5 Storage Allocation ........................  80 
     3.6 Performance Characteristics ................  80 
     3.7 Limitations ................................  80 
     3.8 Error Codes/Error Locations ................  80 
     3.9 Listing References .........................  83 

   4 Quality Assrance ..............................  84 

     4.1 Qualification Tests ........................  84 
     4.2 Other Quality Assurance Provisions .........  84 

   5 Preparations for Delivery ......................  85 

   6 Notes .........................................  86 

   7 Appendices .....................................  86 …86…W         …02…   …02…   …02…   …02…              
                                 
1  S̲c̲o̲p̲e̲

   This document contains a detailed product specification of the storage module SRS.


1.1   I̲n̲t̲r̲o̲d̲u̲c̲t̲i̲o̲n̲

   The SRS performs long time storage of narrative messages on the Hstorical Data Base, HDB.
   Further it maintains the retrieval catalog files DTSF and MRF, which are used by the retrieval
   system SRR.


1.2  A̲B̲B̲R̲E̲V̲I̲A̲T̲I̲O̲N̲S̲


   Ref DATA I/F MANUAL (ref I)…86…W         …02…   …02…   …02…   …02…                                          
   
2  A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲

   I   FIX/0100/MAN/0004        FIKS DATA I/F REFERENCE
   II    FIX/1256/PSP/0078        QACCESS MONITOR PSP
   III   FIX/1256/PSP/0066        MTCB MONITOR PSP
   I   FIX/1256/PSP/0057        LOG ̲JOUR MONITOR PSP
   V   FIX/1153/PSP/0097        SRS SUBMODULE PSP
   VI    FIX/1000/EWP/0080        FIKS S/W CONFIGURATION
                            CONTROL LIB.DESCR.DOC.
   VII   FIX/1200/PSP/0042        FIKS FILE GENERATOR PSP
   VIII  FIX/0000/TRP/0085        SYSTEM TEST REPORT 3010


3        M̲O̲D̲U̲L̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲


3.1      F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲c̲a̲p̲a̲b̲i̲l̲i̲t̲i̲e̲s̲

         The SRS is the interface to the HDB. It supports storage on the HDB, deletion of messages
         on the HDB and retrieval of message from the HDB.

         S̲t̲o̲r̲a̲g̲e̲

         All message categories (non control messages) are stored except for Special Handling Category
         messages.

         D̲e̲l̲e̲t̲i̲o̲n̲

         The SRS maintains the HDB by deletion of oldest messages.

         Deletion is performed when there is not spac available for storage of next message. At this
         event messages are deleted to insure

         1)  A preset amount of time for storage
         2)  A preset number of messages
         39  A preset amount of space for message text.


         S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲B̲l̲o̲c̲k̲ ̲D̲i̲a̲g̲r̲a̲m̲

         In figure 3.1-1 the SRS subsystem block diagram is found.
         Main events are marked with numbers

         1.  Processing of storage requests
         2.  Eventual updates o retrieval files
         3.  Retention  (deletion of messages)

         The subsystem has one input queue: SRS1-queue

         The queue is handled in a First in First out manner.
         When an element, representing a message to be stored is entered in the SRS1 queue.

         The torage Module verifies that space is available for the next message in the Historical
         Data Base, if space is not available a prescribed amount of space is obtained by deletion
         of oldest messages on the HDB (Retention, 3.). When space is available te in memory subset
         of the message retrieval files (DTGF and MRF) are updated with retrieval relevant information
         and a transfer of the message text is performed from the Input file to the Message Text File
         (1).
         The MTCB for the message is updated ith the MTF address and a HDB indicator flag.

         Whenever the in-memory subsets of the DTGF and/or MRF are full, a transfer to disc is made
         (2).

































                      Fig. 3.1-1, STORAGE MODULE, INTERFACE BLOCK DIAGRAM


         H̲D̲B̲ ̲s̲t̲r̲u̲c̲t̲u̲r̲e̲ ̲ ̲(̲f̲i̲g̲.̲ ̲3̲.̲1̲-̲2̲)̲

         Message retrieval is performed by reference to two message access files. The DTGF file is
         the primary access reference. Each entry in the DTGF file cntains the number of records offset
         from the beginning of the MRF file where the first message in or after the specified DTG
         is referenced.

         The entry number in the DTGF is calculated from the value of the DTG, the DTG corresponding
         to the oldest ntry in the file, entry number of oldest entry and number of entries in the
         file:

         Word offset on
          DTGF of DTG:̲ RM    ̲ ̲-̲D̲T̲G̲-̲B̲A̲S̲E̲-̲D̲T̲G̲         + word length
                            No. of entries on DTGF 
         of control block

         (DTG of oldest message on HDB   DTG    DTG of last  stored message).
         The entry of this offset is the record number of the first message stored in the interval
         DTG to DTG + 1 minute. If no messages were stored in this interval the entry contains the
         MRF number of the next store message. (fig. 3.1-2).


         The MRF file contains fixed length records of 
                     Retrieval DTG
                     Text address  (sector no. on MTF file)
                     Message length
                     Message id.
                     3 SIC's
                     Message classificatin
                     Action and info precedence
                     Terminal bit mask

































                               Fig. 3.1-2, HDB Logical Structure


         H̲D̲B̲ ̲l̲a̲y̲o̲u̲t̲

         The HDB is laid out with each of the three files as contiguous files.

         Updates of DTGF and MRF are performed as updates in an in memory subset of these files. Whenevr
         the in memory subset is full a transfer is made to the disc file.

         The DTGF consists of 43776 entries corresponding to 30 days storage. One entry exists for
         each minute independent of whether a messagae was stored or not.

         One entry in the DTGFis one word long. This
         word is the MRF record number of the first
         message in this DTG. If no message has re-
         trieval time equal to this DTG the DTGF entry is the MRF record number of the first message
         after this DTG.

         The MRF consists of 44800 ecords correspon-              ding to 44800 messages.
         One record contains:

         MSG - ID
         Retrieval DTG
         Message security class
         Bit mask with one bit per terminal
                 The bit is true if the corre-
                 sponding terminal has the
                 right to retrieve the message.

3 SIC's


         Message address on MTF. It is an offset 
                 in sectors from the beginning 
                 of the MTF.

         Message length.

         Action and info precedence

         The MTF file consists of 110309 contiguos sectors (+ 1 sector reserved for control information).
         The messages are stored on the MTF starting on a sector boundary. This gives a wanted space
         of 25% in average (the space at end of one message until next sector boundary). The capacity
         is the 44795 messages of average length (ref. I, chap. 11.2).

         A detailed description of the files MTF, MRF and DTGF is found in ref. I, chap. 11.2.

         M̲e̲s̲s̲a̲g̲e̲ ̲S̲t̲o̲r̲a̲g̲e̲ ̲a̲n̲d̲ ̲D̲e̲l̲e̲t̲i̲o̲n̲

         Message Storage is initiated by placing an entry in the SRS storage quee that points to a
         Message Transition
         Control Block. Each MTCB is time stamped by the MDS subsystem with the retrieval time (DTGF
         entry) and they must be entered sequentially.

         The processing is as follows:

         The storage process calls QACCESS andthe MTCB 
         monitor to get the first element in the storage 
         queue.
         The storage process tests if space is available for the message on the HDB. This means


         At least the length of the message
         free on MTF
         One record free on MRF
         If the DTG of the message to be stored is 
         superior to the DTG of the last message stored on the HDB, thestorage process tests
         if space is available on the DTGF for DTG
         entries from the DTG of the last message to
         DTG of current message.

         If one or more of the three tests shows, that space
          is not available deletion is performed (see below).

         Wheever space is available the storage processing
         continues as follows:

         The message file (the message as referenced by the MTCB) is copied to the MTF starting in
         the begin-
         ning of the first free sector. See fig. 3.1-3.

































                                   Fig 3.1-3, MESSAGE STORAGE


         In the copy processing eventually all of the message is in memory (not all at one instant).
         While in memory 
         all information for the MRF is extracted.
         This means:

             Copy    MSG ̲ID                                         Security class
                     SIC's
         from the message

         Read address numbers (ANO's) and AIG's together 
         with originator ID and generate the bit mask in-
         dicating terminals with retrieval right:
         originator ANO and TO and INFO
         ANO's are scanned. Those eferring a local terminal 
         give the retrieval right to this terminal.

         The MRF record for the message is formed of the ex-
         tracted information together with the MTF address of 
         the firs sector of the message, the retrieval time 
         and the messag length from the MTCB
 
         The in-memory subset of the MRF(which is a part of the critical region SRS ̲CR) is updated
         with the record. If the in-memory subset of the MRF hereby gets full, a transfer to the MRF
         is performed. (The storage process
         awaittermination). (fig. 3.1-3).…86…W         …02…   …02…   …02…   …02…                                     
              
         If the retrieval DTG of the message (obtained from the MTCB) is superior to the retrieval
         time of the last 
         stored message, update of the in-memory subset of the DTGF (which resies in the critical
         region SRS ̲CR)takes place. This means an update of all entries corresponding to DTG's since
         the DTG of the last stored message. All these entries get updated with the MRF record number
         of the present message. Whenever in this proess the in-memory subset of the DTGF gets full
         transfer is made to the DTGF (fig. 3.1-3).

         The MTCB of the message is updated with 
         o   MTF address
         o   Indicator that the message is on HDB
         by call to the MTCB monitor.

         The queue element (and the MCB) is released via call
         to QACCESS. If the storage process was the last 
         referencing the input file the MTCB monitor will delete the file.

         A system message is sent to the subsystem MDS. The message tells that the narrative message
         it had queue to SRS now is stored on HDB and that MDS can continue its processing of the
         message.
         When SRS has received a system answer from MDS the critical region SRS ̲CR is copied to the
         checkpoint file SRS ̲CHECKP on FIXHEAD.
         The SRS now calls QACCESS to gt the next element in the storage queue for processing as described
         above.
         If no queue element was found the storage process goes into a wait for signal that a queue
         element has been entered in an empty queue.


         Deletion of oldest messages is intitiated whenever no room available as outlined above. Deletion
         is performed so that:

             a.  A given timespan is available for message
                 storage. his means, that messages shall be
                 deleted to get a new value for the DTG of
                 the oldest message. The entries from DTG (oldest) to DTG (newest) are the occupied
                 entries.

                 Number of free entries =
                 Total number if entries - (entries from
             DTG (oldest) to DTG (newest).

                 The number of free entries shall be superior to 
                 the number of entries required to cover the given timespan.

             b.  A given number of records free on MRF for storage of new messages. Messages shall
                 be deleted so hat the required number of records are free on the MRF.

             c.  A given amount of space on the message text file.
                 Messages shall be deleted so that the given amount of text space is available on
                 the MTF.



         Deletion is performed as follows:

             1.  Calculate the MRF record number to fulfil condition b. The determined record may
                 correspond to a message which is not the first for a givenDTG. To obtain this the
                 MRF record is read to obtain the retrieval DTG of the message. This value + one minute
                 is defined as the new value for the DTG of the oldest message.

             2.  A test is performed to see if condition a. is fulfilled. If not the TG of the oldest
                 message is incremented to fulfil condition a.

             3.  With the present value for the DTG of the oldest message the offset in the DTGF is
                 calculated and the corresponding entry is read: The DTGF entry gives the MRF record
                 number. ThisMRF record is read. From the MTF address of the oldest message as defined
                 here and the MTF address of the first free part in the MTF the amount of free space
                 is calculated. If the calculated space does not fulfil condition c. a search is started
                 unil condition c. is fulfilled.

                 The search starts by calculating the remaining number of messages to be deleted to
                 fullfil condition c. (Remaining messages = (space required - space free)/18 sectors).…86…W
                         …02…   …02…   …02…   …02…                                           
                 The number of messages is added to the present value 'oldest MRF record number '.
                 The MRF record is read and the MTF address is extracted. With this value of 'oldest
                 MTF sector'the space free on MTF is calculated. If condition c. is not fulfilled
                 the search is repeated.

                 To get the correct relationship between MRF number and DTG entry the retrieval DTG
                 in the calculated 'oldest MRF record' is extracted and defined as odest DTG after
                 deletion. The DTG entry is read from DTSF file and the entry is defined as the MRF
                 record of oldest message after deletion. The MRF record is read and the MTF address
                 is extracted and the value defined as first sector of oldest messae on HDB after
                 deletion.

             4.  The first sector of DTGF, MRF and MTF (the control sectors) are updated to reflect
                 deletion.
                                             Deletion completed.

         S̲R̲S̲ ̲R̲E̲C̲O̲V̲E̲R̲Y̲

         After each storage of a message the critical region SRS ̲CR which contains all necessary pointers
         for a restart)
         Is copied to the checkpoint file SRS ̲CHECKP.

         When the SRS process is loaded and started (at cold start or recovery) the SRS ̲CHECKP. file
         is copied to SRS ̲CR and pointers and variables in SRS ̲pocess is reconstructed.
         The SRS i now ready to serve its input queue.


         At disc initialization time (or at corruption of HDB) the generator PRESET ̲HDB has to be
         run.
         The generator presets variables and pointers in SRS-CHECKUP to indicate an empty HDB
         A detailed product description of PRESET ̲HDB is found in, ref. VII.


3.2      I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Interface data:         ref. I, chap. 7.1.1.1.

         Input queues:           SRS1-queue (first in, first out)
         Output queues:          None

         I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲t̲o̲ ̲o̲h̲e̲r̲ ̲s̲u̲b̲s̲y̲s̲t̲e̲m̲s̲:̲

         SRS ̲MDS: MDS requests storage of a message by 
                  enqueueing a MTCB index in SRS1-queue.

         SRS ̲MDS: When a storage of a message is completed an 
                  AMOS message is sent to MDS.
         MDS-SRS: An answer is returned to MDS.

         Critical egion access:
             SRS Read and updates critical region SRS ̲CR

         File access:
             IMF, PDB:                 via MTCB monitor (read)
             RDF:                      via RDF monitor (read)
             MTF,MRF,DTGF,SRS ̲CHECK P: Via IOS (read, write)


3.3      P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲

         This chapter contains a detailed 'as build' description of the subsystem SRS. Each procedure
         is presented by a brief description and a HIPO chart. Pointers, variabes, buffers and constants
         are described in chapter 3.4.

         Figure 3.3-1 shows an overview block diagram of the subsystem.

         The STORAGE box represents the main module, from which the procedures are called.

         The procedures again call a number of utiity procedures (the smallest boxes) and monitors
         (boxes with double sides).

         A detailed description the data referenced in the input/output blocks of the HIPO charts
         is found in chap. 3.4.

































                            Fig. 3.3-1, Module block diagram of SRS


3.3.1    S̲T̲O̲R̲A̲G̲E̲ ̲(̲M̲a̲i̲n̲ ̲m̲o̲d̲u̲l̲e̲)̲.̲

         FUNCTION:

                     After call of INIT ̲STORAGE an endless loop is entered. The loop is only excited
                     in case of a fatal error or a removal of the process.
                     After processing of a message all update pointers are copied to the critical
                     region SRS ̲CR (which is also accessed by the Retrieval submodule (SRR), and the
                     entire region (containing DTGF incore part, MRF incore part and pointers) is
                     stored on disc file SRS ̲CHECKP.

































                         STORAGE Mainmodule, HIPO Chart , Fig. 3.3.1-1

































                          STORAGE Mainmodule, HIPO chart, Fig 3.3.1.-1


3.3.2    I̲N̲I̲T̲ ̲S̲T̲O̲R̲A̲G̲E̲

         REGISTERS:       R6: LINK

         FUNCTION: File discriptions are found for directories
                   MOVEHEAD and FIXHEAD and files, MRF, DTGF,
                   MTF, RDF and SRS ̲CHECKP.
         The MTCB monitor is initiated and the local mede id found.
         SRS ̲CHECKP file is copied into critical region SRS ̲CR and pointers and variables are recovered.
         The procedure is called once after start/restart and is then never used.

































                            INIT ̲STORAGE, HIPO Chart, Fig. 3.3.3.2-1

































                             INIT ̲STORAGE, HIPO Chart, Fig, 3.3.2-2


3.3.3    G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲E̲L̲E̲M̲

         REGISTERS:          R6:  LINK

         FUNCTION:   The SRS1-queue is served by call of MON QACCESS. If the queue is empty the process
                     waits in 10 sec or until a signa is received and then it tries again.

                     If a queue element is found, the corresponding MTCB is read and placed in the
                     buffer MTCBWKSP.

































                            SET ̲QUEUE ̲ELEM, HIPO Chart., Fig. 3.3.3


3.3.4    T̲E̲S̲T̲ ̲S̲P̲A̲C̲E̲

         Registers:  RG: LINK

         Function:

             The DTG extracted from the MTCB (which was time stamped by MDS subsystem) is converted
             from seconds to minutes.  As the messags must arrive to the SRS1-queue in a cronological
             order, it is tested if the DTG of the current message is older than the DTG of the previous
             stored message, if not, the message cannot be handled by SRS and MON ERROR is called,
             requesting a switchoer.

             TEST ̲SPACE is always called before processing of a message to determine whether a deletion
             is necessary or not beofre storage.

         To avoid a deletion. 3 criterias must be fulfilled:

         1.  at least 256 entries (words) must be free on DTGF file
2.       at least 16 records (8 words each) must be free on MRF file
         3.  at least the number of sectors required to store the current message must be free on
             MTF

         If all criterias are fulfilled the flag F ̲SPACE is set to true…86…1         …02…   …02…   …02…   …02…       
                                            …86…1         …02…   …02…   …02…   …02…                                  
                 …86…1         …02…   …02…   …02…   …02…                                           
3.3.5    D̲e̲l̲e̲t̲i̲o̲n̲

         Registers   R6: LINK

         Function:

         DELETE is called if the TEST ̲SPACE procedure returns with the flag F ̲SPACE as false.
         The deletion is done by changing the values f the filepointers (pointers to oldest entries)
         Deletion on MRF, DTGF and MTF are done until 3 criterias are fulfilled:

             1.  at least 300 records free on MRF
             2.  at least 576 entries free on DTGF
             3.  at least 568 sectors free on MTF

         If the spce left on MRF file is less than specified in criteria 1, a new "oldest record no",
         MRF ̲REC is calculated.  The DTG corresponding to this record no. is found by extracting the
         DTG of the found MRF record.  As it is shown in fig. 3.1-2 several MRF rcords can contain
         identical DTG…08…s (i.e. messages stores within the same minute). Therefore to get the correct
         relationship between the new "OLDEST DTG" and the new "oldest record no" the entry of the
         DTG (containing the MRF record no. of the first essage of this DTG) is read from DTGF file.
         The result of this is the 2 pointers DTGS and MRF ̲REC (which are the new pointers of oldest
         MRF rec and oldest DTG with criterion 1 fulfilled).

         If the new DTG does not fulfill criterion 2 a new DTG is alculated and its corresponding
         MRF record no. is read in DTGF file.

         The MTF sector no. which fulfills criterion 3 is found by iteration:

         The MRT ̲REC record is read and MTF address is extracted and stored in MTF ̲SECTOR (which now
         is a quess of oldest MTF sector").  The free MTF space is calculated and if less than required
         in criterion 3, a new MRF record is calculated.  The MTF address is extracted from the new
         MTF record and the MTF space free is again calculated.  This iteration contiues until criterion
         3 is fulfilled.


         The new pointers to oldest entries on DTGF, MRF and
         MTF are updated and copied to critical region SRS ̲CR.

         The same pointers are copied to the control records
         on the files MRF, DGF and MTF.

         Deletion is now done and the processing of the message
         which caused the deletion can continue…86…1         …02…  
         …02…   …02…   …02…                                           …86…1
                 …02…   …02…   …02…   …02…                                 
                  …86…1         …02…   …02…   …02…   …02…                      
                             …86…1         …02…   …02…   …02…   …02…           
                                        …86…1         …02…   …02…   …02…   …02…
                                                   
3.3.6    PROCESS ̲MESS
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         REGISTERS:  R6: LINK

         Function:

         The message being processed is copied from its temporary
         media (PDB or IMF file) into a SRS buffer and from
         tere into the next free area on MTF file.  While the
         message is copied (and parts of it is present in the
         incore buffer MTF ̲BUF) retrieval relevant information
         i.e. message id and SIC…08…s) is extracted and the MRF
         record is generated.  Additional infomation is extracted
         from MTCB and placed in the MRF record.

         A bitmap representing the terminals which were addressed
         is generated from the address list and placed in MRF
         record.…86…1         …02…   …02…   …02…   …02…                        
                           …86…1         …02…   …02…   …02…   …02…             
                                      …86…1         …02…   …02…   …02…   …02…  
                                                 …86…1         …02…
           …02…   …02…   …02…                                          
         …86…1         …02…   …02…   …02…   …02…                               
                    …86…1         …02…   …02…   …02…   …02…                    
                               …86…1         …02…   …02…   …02…   …02…         
                                          
3.3.7    U ̲MRF ̲DTGF
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R6: LINK

         Function:

         The MRF record generated in PROCESS ̲MESS is stored
         in the incore part of MRF file (the upper part of critical
         regon SRS ̲CR).

         If the incore MRF buffer (which can contrin 16 records)
         is full, or the space free on MRF file is equal to
         the present size of MRFincore part, it is copied to
         MRF file.

         The number of minutes since last stored message is
         calculateed nd each corresponding entry in the incore
         part of the DTGF file (the lower part of critical region
         SRS ̲CR) is updated with the MRF record number of the
         message being processed.

         Whenever the incore DTGF buffer is full or its size
         equals the space ree on disc file, the buffer is copied
         to DTGF file…86…1         …02…   …02…   …02…   …02…                   
                                …86…1         …02…   …02…   …02…   …02…        
                                           …86…1         …02…   …02…   …02…
           …02…                                           …86…1    
             …02…   …02…   …02…   …02…                                     
              …86…1         …02…   …02…   …02…   …02…                          
                         …86…1         …02…   …02…   …02…   …02…               
                                    
3.3.8    UPD ̲PARAM
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R6: LINK

         Function:

         File pointers and pointers to incore buffers are updated
         and copied to critical region SRS ̲C…86…1         …02…   …02…  
         …02…   …02…                                           …86…1   
              …02…   …02…   …02…   …02…                                    
               
3.3.9    DEL ̲Q ̲ELEM
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R6: LINK

         Function:

         The MTCB representing the message is updated with MTF
         sector address and the HDB indicator flag.

         The file is reeased and the queue element is deleted.

         A message indicating that the storage is completed
         is sent to MDS and an answer from MDS (which have been
         waiting since it placed the element in the SRS1-queue)
         is awaited…86…1         …02…   …02…   …02…   …02…                     
                              …86…1         …02…   …02…   …02…   …02…          
                                         
3.3.10   READ ̲MRE ̲REC
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers   R4:  in: MRF record no
                         out:Ref. (DTG)

                     R5:  in: None
                         out: Ref. (MTF sector no.)

                     R6:  LINK

         Function:

         To xtract the DTG and MTF address from the specified
         MRF record.

         If the record is in the incore part of MRF the information
         is read from SRS ̲CR, else it is read from MRF file.…86…1
                 …02…   …02…   …02…   …02…                                 
                  …86…1         …02…   …02…   …02…   …02…                      
                             
3.3.11   READ ̲DTGF ̲ENT
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R4:  in: Ref (DTG)
                         out: MRF record no.

                     R6:  LINK

         Function:

         The offset of the specified DTG is found either in
         DTF income file (SRS ̲CR) or DTGF file and its entry
         (a MRF record no.) is delivered…86…1         …02…   …02…   …02…   …02…
                                                   …86…1       
          …02…   …02…   …02…   …02…                                        
           
3.3.12   CALC ̲RECS ̲FRGE ̲ON ̲MRF (Delete utility Procedure)
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:   R0:   in: NONE
                           out: Records free

         Function:

         Noof records between oldest and newest MRF record on
         MRF file is calculated…86…1         …02…   …02…   …02…   …02…         
                                          …86…1         …02…   …02…   …02… 
          …02…                                           
3.3.13   CALCULATE ̲MTF ̲SPACE (DELET utility procedure)
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R6:  LINK

         Function:

         Number of sectors between MTF ̲SECTOR and frst sector
         of oldest message is calculated…86…1         …02…   …02…   …02…   …02…
                                                   …86…1       
          …02…   …02…   …02…   …02…                                        
           
3.3.14   DECODE ̲BIN ̲H (PROCESS MESS utility procedure)
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R6:  LINK

         Function:

         From binary header (which now is present i MTF ̲BUF)
         the address list offset and SIC is extracted.

         A SIC offset = 0 indicates that no 316…08…s exists.
         As the SIC-offset is not the actual offset of the first
         SIC, a correction is added…86…1         …02…   …02…   …02…   …02…     
                                              …86…1         …02…   …02…
           …02…   …02…                                           
3.3.15   DECODE ̲SICS (PROCESS MESS utility procedure)
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R6:  LINK

         Function:

         The SIC area of the message has been copied o SIC ̲BUF
         by PROCESS ̲MESS.
         DECODE ̲SICS extract the delimiters (/) and copy them
         to the MRF record of the message…86…1         …02…   …02…   …02…  
         …02…                                           …86…1      
           …02…   …02…   …02…   …02…                                       
            
3.3.16   DECODE ̲AIG ̲M (PROCESS MESS utility procedure)
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R6:  LINK

         Function:

         The AIG bitmap (in BUFFER 1) is decoded ad bits indicating
         local terminals are detected and invoked in BIT ̲MAS…86…1
                 …02…   …02…   …02…   …02…                                 
                  …86…1         …02…   …02…   …02…   …02…                      
                             
3.3.17   GET ̲MEDE ̲NO (PROCESS ̲MESS utility procedure)
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R2:  in: Mede id
                         out: Mask number in AIG Mask

                     R6:  INK

         Function:

         The mede id is converted to an AIG mask pointer (1-8)



3.3.18   UPD ̲TERM ̲BIT ̲M (PROCESS ̲MESS utility procedure)
…0e…          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
…0f…
         Registers:  R0:   in:  terminal number
                          out:     -       -
                     R6:  LINK

         Function:

         The bit in BIT ̲MASK representing the requested terminal
         number is set…86…1         …02…   …02…   …02…   …02…                  
                                 …86…1         …02…   …02…   …02…   …02…       
                                            
3.4      D̲A̲T̲A̲ ̲O̲R̲G̲A̲N̲I̲Z̲A̲T̲I̲O̲N̲

         The file SRS1 ̲EXP.S contains declarations of all variables
         buffers and arrays which define the data area (Process)
         of the STORAGE subsystem.
         The file HDB ̲CNST.S contains all constants used in
         the STORAGE subsystem.  The same file defines the constants
         of the RETRIEVAL subsystem and it is therefore placed
         in the directory FIX ̲PREFIX.D in main directory.

         Besides the Process area the SRS also access te critical
         region SRS ̲CR. (This region is a common data area used
         by SRS, SRR and ESP. The region is read and updated
         by SRS and inspected by SRR and ESP)

         The SRS ̲CR consists of a DTGF buffer (incore part of
         DTGF file), MRF buffer (incore part ofMRF file) and
         a parameter list. (see fig. 3.4-1)

         Each word in the DTGF buffer belongs to a specific
         DTG (which can be calculated from the DTG pointers)
         and it contains a MRF record number.  When the buffer
         is full it is copied to DTGF file and DT ̲IND, which
         is a pointer to the next free word in the buffer, is
         preset.

         The MRF buffer contains up to 16 MRF records each of
         8 words (see fig. 3.4-2). When the buffer is full it
         is copied to MRF file and MRF ̲IND, which is a pointer
         to next free ecord in the buffer, is preset…86…1      
           …02…   …02…   …02…   …02…                                       
            …86…1         …02…   …02…   …02…   …02…                            
                       …86…1         …02…   …02…   …02…   …02…                 
                                  …86…1         …02…   …02…   …02…   …02…      
                                             …86…1         …02…   …02… 
          …02…   …02…                                           …86…1  
               …02…   …02…   …02…   …02…                                   
                …86…1         …02…   …02…   …02…   …02…                        
                           
3.5.     S̲t̲o̲r̲a̲g̲e̲ ̲A̲l̲l̲o̲c̲a̲t̲i̲o̲n̲

         Program Size:    2107 words, Page 0

         Process Size:    1322 words, Page 1 or 2



3.6      P̲e̲r̲f̲o̲r̲m̲a̲n̲c̲e̲ ̲C̲h̲a̲r̲a̲c̲t̲e̲r̲i̲s̲t̲i̲c̲s̲

         N/A



3.7      L̲i̲m̲i̲t̲a̲t̲i̲o̲n̲s̲

         The storage cpacity is 30 days of average message traffic.



3.8      E̲r̲r̲o̲r̲ ̲C̲o̲d̲e̲s̲/̲E̲r̲r̲o̲r̲ ̲L̲o̲c̲a̲t̲i̲o̲n̲s̲

         see attached lis…86…1         …02…   …02…   …02…   …02…               
                                    …86…1         …02…   …02…   …02…   …02…    
                                               …86…1         …02…  
         …02…   …02…   …02…                                           
3.9      L̲i̲s̲t̲i̲n̲g̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         Ref. chap. 5




4        Q̲u̲a̲l̲i̲t̲y̲ ̲A̲s̲s̲u̲r̲a̲n̲c̲e̲



4.1      Q̲u̲a̲l̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲T̲e̲s̲t̲s̲

         Ref. (S10, test report)



4.2      O̲t̲h̲e̲r̲ ̲Q̲u̲a̲l̲i̲t̲y̲ ̲A̲s̲s̲u̲r̲a̲n̲c̲e̲ ̲P̲r̲o̲v̲i̲s̲i̲o̲n̲s̲

         N/A




5        P̲r̲e̲p̲a̲r̲a̲t̲i̲o̲n̲s̲ ̲f̲o̲r̲ ̲D̲e̲l̲i̲v̲e̲r̲y̲

         Command files used in generation of the object code
         (SRS.CR0,SRS.CR1,SRS.CP,SRS.L0,SRS.L1) can be found
         in FIXLIB source directory for SRS (ref.VI)

         eneration of object code file:

         .   Copy the source directory of the actual SRS version
             into a work directory.
         .   Activate the command file  SRS.CR0
         .     -       -    -       -   SRS.CP
         .     -       -    -       -   SRS.L0

         The object code ready fo installation will then be
         found in the file SRS.C

         L̲i̲s̲t̲i̲n̲g̲s̲

         By activating the command file SRS.PP all source code
         and link output file is printed.




6        N̲o̲t̲e̲s̲

         N/A



7        A̲p̲p̲e̲n̲d̲i̲c̲e̲s̲

         N/