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

⟦b24fd6bed⟧ Wang Wps File

    Length: 43795 (0xab13)
    Types: Wang Wps File
    Notes: CPS/SDS/025               
    Names: »1608A «

Derivation

└─⟦c333b847f⟧ Bits:30005811 8" Wang WCS floppy, CR 0118A
    └─ ⟦this⟧ »1608A « 

WangText

…09……00……00……00……00…(…0a……00……00…(…0b…(…0f…$ #…0b…#…00…#…05…"…08…"…0b…"…0e…"…00…" !…09…!…0c…!…0d…!…02…!…07… …0d… …86…1                                             …02…           …02…   …02…
                     

…02…CPS/SDS/025

…02…850401…02……02…
MESSAGE MANAGEMENT
DETAILED DESIGN SPECIFICATION…02…ISSUE 1…02…CAMPS








4.2.3.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             Refer source list.

         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             b1 )    ITS ̲FIRST
             b2 )    ITS ̲LAST
             b3 )    ITS ̲UNLOAD             (m)
             b4 )    ITS ̲CLEAR
             b5 )    ITS ̲FREE ̲SECTORS       (m)
             b6 )    ITS ̲THRESHOLD
             b7 )    ITS ̲ENABLE ̲THRESHOLD
             b8 )    ITS ̲WARNING ̲ENABLE     (m)
             b9 )    ITS ̲WARNING ̲PENDING    (m)
             b10)    CIF ̲CONTROL ̲BLOCK
             b11)    VIEW ̲CONTROL ̲BLOCK
             b12)    FIELD ̲DESCRIPTOR
                      STORAGE ̲STATUS        (m)
             b13)    ITS ̲BUF                (m)
             b14)    IO ̲BUF                 (m)

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

             None



4.2.3.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         E̲x̲t̲e̲r̲n̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         -   Read Block                     4.2.5.7.1
         -   Init Write Block               4.2.5.7.2
         -   Write Buffer                   4.2.5.7.4
         -   Release Buffer                 4.2.5.7.5
         -   Get Sequential                 4.2.5.7.8
         -   Get Random                     4.2.5.7.9
         -   Write ̲and release buffer       4.2.5.7.5.a
         -   Put Sequential                 4.2.5.7.10
         -   Put Random                     4.2.5.7.11
         -   Move Buffer                    4.2.5.7.14
         -   OCD Unload Update              4.2.4.7.7
         -   MMS ̲REPLY ̲CMD ̲LARGE            4.1.5.11
         -   Delete OCD                     4.2.4.7.5
         -   Impossible                     4.1.5.4



         a)  U̲n̲l̲o̲a̲d̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             It is checked that the CIF is permanent and has
             been checkpointed. If not, nothing is done. If
             a Store command has not been issued for the CIF,
             the OCD entry is deleted. Otherwise the CIF is
             packed and put into ITS , and OCD entry is updated,
             reflecting the unload.

             OCD must be reserved, and ITS ̲BUF and IO ̲BUF available
             at call. ITS ̲BUF and IO ̲BUF are released before
             return.

             Flowgram: Refer figure 4.2.3.4.2.5-1.

         b)  P̲a̲c̲k̲ ̲C̲I̲F̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Converts a CIF in STS to packed format, either
             in ITS or in a dump file. First the length of the
             packed CIF is determined. If the CIF shall be packed
             to a Dump File, the call parameter Maxlength specifies
             the maximum allowed CIF Length, and an error return
             with CC = File Full is made if CIF Length is too
             large. Otherwise Maxlength is zero, and CIF Length
             is then used in a call of CHECK ̲FREE ̲ITS to check
             that space is available in ITS.

             OCD must be reserved, and ITS ̲BUF and IO ̲BUF available
             at call. The buffers are released before return.

             Flowgram: None

         c)  W̲r̲i̲t̲e̲ ̲P̲a̲c̲k̲e̲d̲ ̲H̲e̲a̲d̲e̲r̲



             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             WRITE ̲PACKED ̲HEADER(CIFCB:        CIF ̲CONTROL ̲BLOCK,
                                 VCBCOUNT,
                                 FIELDCOUNT:   INTEGER,
                                 CIFLENGTH,
                                 START:        SECTOR ̲NUMBER)
                                (CC:           COMPLETION ̲CODE):
                                               ERROR ̲OK

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Initiates a write at sectornumber START in ITS
             ̲BUF.

             Outputs CIF header to ITS ̲buffer, updating ITS
             ̲BUF.REMAINING. The output is done by calling PUT
             ̲SEQUENTIAL in following steps:

             1)  Output CIFLENGTH, STATE and CIFCB.
             2)  Output VCBCOUNT, and all VCBs having storage
                 status true.  In the packed VCBs field references
                 of temporary fields are cleared.
             3)  Output FIELDCOUNT and all field descriptors
                 from field group one and onwards having storage
                 status true.

             OCD must be reserved and ITS ̲BUF available at call.
             ITS ̲BUF is still reserved for continued writing
             at return, except if an error occurred.

             Flowgram: None

         d)  P̲a̲c̲k̲ ̲F̲i̲e̲l̲d̲s̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲

             PACK ̲FIELDS(CIFCB:        CIF ̲CONTROL ̲BLOCK)
                        (CC:           COMPLETION ̲CODE): ERROR
                     ̲OK

             Reads fields from CIF into IO ̲BUF and outputs them
             into ITS ̲BUF by calling MOVE ̲FIELD ̲BUF ̲TO ̲CACHE.
             The fields read are those from group one and onwards,
             having storage status true. The operation may require
             several cycles in a loop with intervening WRITE
             ̲BUFFER and PREPARE ̲FIELD ̲BUFFER calls, if buffers
             are not large enough. The procedure releases IO
             ̲BUF and ITS ̲BUF.



             OCD must be reserved and IO ̲BUF available at call.
             ITS ̲BUF must be initiated for the write at call.

             Flowgram: Refer fig. 4.2.3.4.2.5-2

         e)  C̲h̲e̲c̲k̲ ̲F̲r̲e̲e̲ ̲I̲T̲S̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             CHECK ̲FREE ̲ITS(LENGTH:      SECTOR ̲NUMBER)

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Checks that a contiguous block of LENGTH sectors
             are available in ITS starting at UNLOAD pointer.
             If the pointer is near the top of ITS, it may be
             necessary to write an empty CIF to fill out the
             remaining space and then set Unload pointer to
             ITS ̲START. This is done using ITS ̲BUF.

             ITS threshold variables are updated.

             OCD must be reserved and ITS ̲BUF available at call.
             ITS ̲BUF is released before return.

             If space not available, IO ̲ERROR is called with
             
             CC = ITS ̲OVERFLOW.

             Flowgram: Refer figure 4.2.3.4.2.5-3.

         f)  D̲e̲t̲e̲r̲m̲i̲n̲e̲ ̲P̲a̲c̲k̲e̲d̲ ̲C̲I̲F̲ ̲L̲e̲n̲g̲t̲h̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             DETERMINE ̲PACKED ̲CIF ̲LENGTH
                     (CIFCB:              CIF ̲CONTROL ̲BLOCK)
                     (CIFLENGTH:          SECTORNUMBER,
                      VCBCOUNT,           
                      FIELDCOUNT:         INTEGER)

             Calculates the key figures for a CIF to be unloaded
             in the following way:

                 …86…1         …02…   …02…   …02…   …02…                    …02…   
                                   
             1)  Walk through the View List of the CIFCB.
                 If a VCB has storage status equal to true,
                 VCBCOUNT is incremented, and all fields of
                 the view are inspected. For each field belonging
                 to a permanent field group, the storage status
                 is set to true in field descriptor.

             2)  Walk through the address list of CIFCB, starting
                 with field group number one. For each field
                 descriptor having storage status equal to true,
                 FIELDCOUNT is incremented, and USED ̲LENGTH
                 is added to CIFLENGTH.

             3)  Add 2 x SIZE(PACKED ̲CIFCB) +
                     2 x SIZE(PACKED ̲VCB) x VCBCOUNT +
                     2 x SIZE(PACKED ̲FD) x FIELDCOUNT + 8
                 to CIFLENGTH. Then convert CIFLENGTH from bytecount
                 to sectorcount.

                 Flowgram: None

         g)  D̲e̲c̲r̲e̲a̲s̲e̲ ̲F̲r̲e̲e̲ ̲I̲T̲S̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             DECREASE ̲FREE ̲ITS(LENGTH:    SECTOR ̲NUMBER)

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Subtracts LENGTH from ITS ̲FREE ̲SECTORS. If it then
             becomes smaller than ITS ̲WARNING ̲THRESHOLD, and
             ITS ̲WARNING ̲ENABLE is true, the following is done:

             1)  ITS ̲WARNING ̲ENABLE is set to false.
             2)  If an MMS Threshold Warning operation is queued,
                 it is returned with warning type equal to ITS
                 ̲WARNING. Otherwise ITS ̲WARNING ̲PENDING is set
                 to true.

             Flowgram: None



         h)  M̲o̲v̲e̲ ̲F̲i̲e̲l̲d̲ ̲B̲u̲f̲f̲e̲r̲ ̲T̲o̲ ̲C̲a̲c̲h̲e̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             MOVE ̲FIELD ̲BUF ̲TO ̲CACHE (SOURCE ̲BUF,
                                      DEST ̲BUF: DISK ̲BUFFER)

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Moves contents of field buffer in Source disk buffer
             to the cache buffer in  destination buffer.

             If necessary destination disk buffer is written
             out by calling NEXT ̲DEST ̲DISK ̲BUF

             Flowgram: None


         i)  N̲e̲x̲t̲ ̲D̲e̲s̲t̲ ̲D̲i̲s̲k̲ ̲B̲u̲f̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             NEXT ̲DEST ̲DISK ̲BUF (O ̲BUF: DISK ̲BUFFER)

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Specified disk ̲buffer is written out and a new
             buffer initiated to next set of consecutive sectors.

             Flowgram: None



         PROCEDURE UNLOAD (CIFCB)

         CIFCB.FIELD ̲GROUP ̲TYPES EQ O OR
                                          ?
         CIFCB.CHECKPOINT ̲STATUS EQ O?

         CIFCB.STORE ̲TIME EQ O ?          DELETE ̲OCD(CIFCB.CIF
                                          ID)

         CASE PACK ̲CIF(CIFCB.ITS ̲UNLOAD,  0)(CIFLENGTH, CC):
                                          ERROR ̲OK
             ERROR?  IMPOSSIBLE

         END CASE

         CIF ̲REF = ITS ̲UNDLOAD

         ITS ̲UNLOAD = ITS ̲UNLOAD + CIFLENGTH

         OCD ̲UNLOAD ̲UPDATE(CIFCB.CIF ̲ID, CIF ̲REF, ITS ̲UNLOAD)

         RETURN

























           Figure 4.2.3.4.2.5-1 Unload Flowgram





     PROCEDURE PACK ̲FIELDS (CIFCB: CIF ̲CONTROL ̲BLOCK)
                             (CC:    INTEGER)

     "collect the marked field into field buffers and output
     them
     "via ITS buffer

     initialize IO ̲buf.fse-deser

                 -   CIFCB,

                 -   CHECK ̲BUF ̲SIZE = false

                 -   purpose = unload

                 -   fse ̲index = fse ̲rem = 0

     initialize IO ̲buf. fd ̲addr

                 -   fg  = 0

     LOOP

         prepare ̲field ̲buffer (10 ̲buf, read) (finish, CC)

         CC   OK ?   IMPOSSIBLE

         IO ̲BUF. SLE ̲COUNT  L  O ?

                         MOVE ̲FIELD ̲BUF ̲TO ̲CACHE(IO ̲BUF,
                         ITS ̲BUF)

                         RELEASE (IO ̲BUF)

         FINISH = TRUE ?   EXIT

     END ̲LOOP

     WRITE ̲AND ̲RELEASE ̲BUFFER (ITS ̲BUF) (CC)

     RETURN









           Figure 4.2.3.4.2.5-2 Pack-Fields


         PROCEDURE CHECK ̲FREE ̲ITS(LENGTH: SECTOR ̲NUMBER)



         ITS ̲UNLOAD LT ITS ̲CLEAR?

         L = ITS ̲LAST-ITS ̲UNLOAD + 1

         L GE LENGTH?

         DECREASE ̲FREE ̲ITS(L)

         Write empty CIF of length L at
         
                ITS ̲UNLOAD, using ITS ̲BUF

         ITS ̲UNLOAD = ITS ̲FIRST



         LENGTH GT ITS ̲FREE?           IMPOSSIBLE(INTERNAL ̲ERROR)

         DECREASE ̲FREE ̲ITS(LENGTH)

         RETURN



















                 CHECK FREE ITS FLOWGRAM
                   FIGURE 4.2.3.4.2.5-3




4.2.3.4.3    D̲u̲m̲p̲ ̲M̲o̲d̲u̲l̲e̲



4.2.3.4.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The module takes care of dump of CIFs from STS and
         ITS to Dump Files on offline volumes.

         The module contains the command handling procedures:

         -   Init Dump, 
         -   Dump CIF Sequence,           
         -   Terminate Dump,              



4.2.3.4.3.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The module has 3 subpackage Interfaces:

         a)  Init Dump,                   refer 4.2.3.7.2
         b)  Dump CIF Sequence,           refer 4.2.3.7.3
         c)  Terminate Dump,              refer 4.2.3.7.4
         
         And 2 additional module interfaces:

         d)  C̲h̲e̲c̲k̲ ̲D̲u̲m̲p̲ ̲F̲i̲l̲e̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             CHECK ̲DUMP ̲FILE(FILE:        FILE ̲DESCRIPTOR)
                            (START,
                             LENGTH:      SECTOR ̲NUMBER,
                             DCB:         DEVICE ̲CONTROL ̲BLOCK
                             CC:          COMPLETION ̲CODE):
                                          ERROR ̲OK

             C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲:̲

             File not found
             Not Dump File
             Not Initiated




         e)  G̲e̲t̲ ̲S̲e̲g̲m̲e̲n̲t̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             GET ̲SEGMENT(SEGMENT:         SEGMENT ̲ID
                         DUMP ̲FILE ̲START: SECTOR ̲NUMBER)
                        (START,
                         LENGTH,
                         DIRECTORY:       SECTOR ̲NUMBER,
                         CC:              COMPLETION ̲CODE):
                                          ERROR ̲OK

             C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲

             Empty Segment



4.2.3.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         All components are procedures.

         a)  Init Dump, 
         b)  Dump CIF Sequence            
         c)  Terminate Dump,              
         d)  Initialize Dump File Header.

             Prepares a new Dump File by initializing the File
             Header, refer 4.2.3.1.1.4 b. This is done the first
             time an Init Dump command is issued for the file.

         e)  I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲ ̲D̲u̲m̲p̲ ̲V̲a̲r̲i̲a̲b̲l̲e̲s̲

             The control variables for a dump are initialized
             as part of the Init Dump command. 

         f)  D̲u̲m̲p̲ ̲t̲h̲e̲ ̲C̲I̲F̲

             Performs the dump of a CIF either from STS or ITS,
             depending upon the storage status of the CIF. 

         g)  D̲u̲m̲p̲ ̲P̲a̲c̲k̲e̲d̲ ̲C̲I̲F̲

             Performs the dump of a CIF from ITS. 

         h)  M̲a̲k̲e̲ ̲D̲i̲r̲e̲c̲t̲o̲r̲y̲ ̲E̲n̲t̲r̲y̲

             Updates a Dump Segment with a new entry. 



         i)  C̲h̲e̲c̲k̲ ̲D̲u̲m̲p̲ ̲V̲a̲r̲i̲a̲b̲l̲e̲s̲

             Checks that a Dump CIF Sequence command is legal.
             Refer

         j)  C̲h̲e̲c̲k̲ ̲D̲u̲m̲p̲ ̲F̲i̲l̲e̲

             Locates the specified file and checks that it has
             been initialized as a dump file. DUMP ̲FILE ̲HEADER
             ̲SIZE sectors are read into ITS ̲BUF, and remain
             there at return unless an error occurred.

             OCD must be reserved, and ITS ̲BUF available at
             call.

         k)  G̲e̲t̲ ̲S̲e̲g̲m̲e̲n̲t̲

             The specified segment is located in dump file,
             the header of which has been read into ITS ̲BUF
             before call. Checks that Dump File Label has been
             initialised, and that Segment is used.

             ITS ̲BUF is released before return.











                   Figure 4.2.3.4.3.3-1

                    Dump Control Flow




4.2.3.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             Refer source list.

         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             b1) OPERATION           
             b2) CC                  (m)
             b3) IO ̲BUF              (m)
             b4) ITS ̲BUF             (m)
             b5) FIELD ̲DESCRIPTOR    (m)

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

         c1) VAR FREE ̲DUMP ̲SECTORS:        SECTOR ̲NUMBER
                 Number of free sectors in Dump File.

         c2) VAR NEXT ̲FREE ̲SECTOR:         SECTOR ̲NUMBER
                 Absolute number of next free sector in Dump
                 File.

         c3) VAR DUMP ̲FILE ̲START:          SECTOR ̲NUMBER
                 Absolute number of first sector in Dump File.

         c4) VAR SEGMENT ̲START:            SECTOR ̲NUMBER
                 Absolute number of first sector in current
                 Dump Segment.

         c5) VAR CURRENT ̲DIRECTORY ̲SECTOR: SECTOR ̲NUMBER
                 Absolute number of current sector of directory
                 in Dump Segment.

         c6) VAR SEGMENT ̲LENGTH:           INTEGER
                 Number of sectors in current Dump Segment.

         c7) VAR CURRENT ̲DIRECTORY ̲LOCATION:
                                           1..255
                 Offset of next free byte in Current Directory
                 Sector.

         c8) VAR SEGMENT ̲NUMBER:           SEGMENT ̲ID
                 Segment Id of current Dump Segment

         c8a)VAR DUMP ̲DEVICE:              POINTER
                 Pointer to DCB of Dump Device


         c8a)VAR DUMP ̲DEVICE: POINTER;
                 Pointer to DCB of dump device

         c9) VAR DUMP ̲IN ̲PROGRESS:         BOOLEAN
                 True, if a Dump has been initiated and not
                 yet terminated.

             INIT    DUMP ̲IN ̲PROGRESS = FALSE

         c10)VAR ERROR ̲IN ̲DUMP:            BOOLEAN
                 True, if an error has occurred during a Dump.
                 Then the Dump must be terminated.



4.2.3.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         E̲x̲t̲e̲r̲n̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         -   Read Block                   4.2.5.7.1
         -   Init Write Block             4.2.5.7.2
         -   Init Update Block            4.2.5.7.3
         -   Write Buffer                 4.2.5.7.4
         -   Release Buffer               4.2.5.7.5
         -   Get Sequential               4.2.5.7.8
         -   Get Random                   4.2.5.7.9
         -   Put Sequential               4.2.5.7.10
         -   Put Random                   4.2.5.7.11
         -   Move Buffer                  4.2.5.7.14
         -   Find CIF                     4.2.3.4.5.2 b
         -   Close CIF                    4.1.5.3
         -   Reserve OCD                  4.1.5.7
         -   Release OCD                  4.1.5.8
         -   Check Passivation            4.2.2.7.13
         -   Pack CIF                     4.2.3.4.2.2 b

         a)  I̲n̲i̲t̲ ̲D̲u̲m̲p̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Performs the Init Dump Command. It is checked,
             that specified Dump File is open and is a legal
             Dump File. The Dump File Header is read, and if
             no dumps have been performed previously to the
             file, the File Header is initialized.



             Finally the Dump Control Variables are initialized,
             and reply is returned. If an error is discovered,
             a CC is returned, and Terminate Dump shall then
             not be called.

             OCD is reserved during the command, and ITS ̲BUF
             is used. 

             Flowgram: Refer figure 4.2.3.4.3.5-1

         b)  D̲u̲m̲p̲ ̲C̲I̲F̲ ̲S̲e̲q̲u̲e̲n̲c̲e̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Performs the Dump CIF Sequence command. It is checked
             that a Dump has been initiated, and that Dump File
             is still open. The specified CIF ̲IDs are processed
             one by one. OCD is reserved during processing of
             each CIF ̲ID, and released in between in order to
             allow other commands in parallel with this one.
             ITS ̲BUF is used during each cycle.

             If a CIF is passive in STS, it is made active before
             the dump of it. This is done by FIND ̲CIF procedure.
             After dump of the CIF it is checked if it shall
             be made passive again.

             Flowgram: Refer figure 4.2.3.4.3.5-2.

         c)  T̲e̲r̲m̲i̲n̲a̲t̲e̲ ̲D̲u̲m̲p̲

             Performs the Terminate Dump command. It is checked
             that a Dump has been initiated and that Dump File
             is still open. The current Dump Segment is terminated
             by moving its directory to end of the segment.
             Then the Dump File Header is updated.

             OCD is reserved, and ITS ̲BUF used during the command.

             Flowgram: Refer figure 4.2.3.4.3.5-3

         d)  I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲ ̲D̲u̲m̲p̲ ̲F̲i̲l̲e̲ ̲H̲e̲a̲d̲e̲r̲

             Called by Init Dump.

             Initializes the Header of an empty Dump File.



             OCD must be reserved and ITS ̲BUF available at call.

             ITS ̲BUF is released before return.

             Flowgram: Refer figure 4.2.3.4.3.5-4.

         e)  I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲ ̲D̲u̲m̲p̲ ̲V̲a̲r̲i̲a̲b̲l̲e̲s̲

             Called by Init Dump. Initializes the Dump Control
             Variables specified in 4.2.3.4.3.4 c1) - c9) from
             Dump File Header.

             OCD must be reserved and ITS ̲BUF available at call.

             ITS ̲BUF is released before return.

             Flowgram: Refer figure 4.2.3.4.3.5-5.

         f)  D̲u̲m̲p̲ ̲t̲h̲e̲ ̲C̲I̲F̲

             Called by Dump CIF Sequence. Performs the actual
             dump of a CIF depending upon its storage status
             as specified at call.

             OCD must be reserved and ITS ̲BUF available at call.

             ITS ̲BUF is released before return.

             Flowgram: Refer figure 4.2.3.4.3.5-6

         g)  D̲u̲m̲p̲ ̲P̲a̲c̲k̲e̲d̲ ̲C̲I̲F̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             DUMP ̲PACKED ̲CIF(CIFREF:      SECTOR ̲NUMBER)
                            (CIF ̲LENGTH:  SECTOR ̲NUMBER,
                             CC:          COMPLETION ̲CODE):
                                          ERROR ̲OK

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             The packed CIF at sector number CIFREF in ITS is
             moved to sector number NEXT ̲FREE ̲SECTOR in Dump
             File.



             It is checked that CIF ̲LENGTH is not greater than
              FREE ̲DUMP ̲SECTORS.

             IO ̲BUF and ITS ̲BUF are used,  and released before
             return.

             OCD must be reserved at call.

             Flowgram: None

         h)  M̲a̲k̲e̲ ̲D̲i̲r̲e̲c̲t̲o̲r̲y̲ ̲E̲n̲t̲r̲y̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             MAKE ̲DIRECTORY ̲ENTRY(CIF:                CIF ̲ID,
                                  CIF ̲ADDRESS:        SECTOR
                     ̲NUMBER)
                                 (CC COMPLETION ̲CODE)):ERROR
                     ̲OK

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Makes a new directory entry and updates the sector
             specified by CURRENT ̲DIRECTORY ̲SECTOR at CURRENT
             ̲DIRECTORY ̲LOCATION. The latter is then increased
             by entry length. If it was the last entry at the
             sector, a new sector is allocated by:

             -   CURRENT ̲DIRECTORY ̲SECTOR = CURRENT ̲DIRECTORY
                 ̲SECTOR-1

             -   CURRENT ̲DIRECTORY ̲LOCATION = 2

             -   FREE ̲DUMP ̲SECTORS = FREE ̲DUMP ̲SECTORS-1

             -   SEGMENT ̲LENGTH = SEGMENT ̲LENGTH + 1

             ITS ̲BUF is used for the update and released before
             return.

             If FREE ̲DUMP ̲SECTORS LT 0, error return with CC
             =                                                           DUMP
                                                                         ̲FILE
                                                                         ̲FULL

             Flowgram: None



         i)  C̲h̲e̲c̲k̲ ̲D̲u̲m̲p̲ ̲V̲a̲r̲i̲a̲b̲l̲e̲s̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Checks that Dump File specified in Operation is
             open, and that Dump Variables allow a Dump CIF
             Sequence i.e. DUMP ̲IN ̲PROGRESS equal FALSE and
             ERROR ̲IN ̲DUMP equal TRUE.

             Flowgram: None

         j)  C̲h̲e̲c̲k̲ ̲D̲u̲m̲p̲ ̲F̲i̲l̲e̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Checks that the specified file is a dump file.
             Dump File Header is read in.

         k)  G̲e̲t̲ ̲S̲e̲g̲m̲e̲n̲t̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Locates specified dump segment in file. Checks
             that the Segment has been used for storing CIF's.




         PROCEDURE INIT DUMP

         RESERVE ̲OCD
         DUMP ̲INPROGREE EQ TRUE?               CC = ILLEGAL ̲DUMP
         CASE CHECK ̲DUMP ̲FILE(OPERATION.DUMP ̲REF)
                             (DUMP ̲FILE ̲START, LENGTH, CC):
                                               ERROR ̲OK

             ERROR?
         END CASE
         READ DUMP ̲FILE ̲LABEL EQ MMS ̲DUMP ̲FILE ̲LABEL?
         RELEASE ̲BUFFER(ITS ̲BUF)

         CASE INITIALIZE ̲DUMP ̲FILE ̲HEADER
                      (DUMP ̲FILE ̲START, LENGTH)
                      (CC):  ERROR ̲OK
             ERROR?
         END CASE
                                               RELEASE ̲BUFFER
                                               (ITS ̲BUF)
         INITIALIZE ̲DUMP ̲VARIABLES
         Put into reply: SEGMENT ̲NUMBER
         CC = OK

         RELEASE ̲OCD
         RETURN




                                     DUMP MODULE COMPONENTS
                                     FIGURE 4.2.3.4.3.5-1 


         PROCEDURE DUMP ̲CIF ̲SEQUENCE

         CASE CHECK ̲DUMP ̲VARIABLES( )(CC): ERROR ̲OK
             ERROR?
         END CASE
         NO ̲OF ̲CIFS = OPERATION.NUMBER
         DUMP LOOP
             NO ̲OF ̲CIFS EQ 0?  CC = OK, ((EXIT
             Get next CIF ̲ID, DECREMENT(NO ̲OF ̲CIFS)
             CASE FIND ̲CIF(CIF ̲ID)
                          (CIFREF, ST, LOCK): ERROR ̲OK
                 ERROR?    CC = NOT ̲FOUND
                           ERROR ̲IN ̲DUMP = TRUE ((EXIT
             END CASE
             CASE DUMP ̲THE ̲CIF(CIFREF, ST)(CIF ̲ADDRESS, CC):
                                                                   ERROR
                                                                   ̲OK
                 ERROR?
             END CASE
             CASE MAKE ̲DIRECTORY ̲ENTRY(CIF ̲ID, CIF ̲ADDRESS)(CC):
                                                                   ERROR
                                                                   ̲OK
                 ERROR?
             END CASE
             CASE ST OF
                 STS?   CHECK ̲PASSIVATION(CIFREF, LOCK)
                 ITS?   RELEASE ̲OCD
             END CASE
             ERROR ̲IN ̲DUMP EQ TRUE? ((EXIT
         END DUMP LOOP
         RETURN
















                   FIGURE 4.2.3.4.3.5-2
                DUMP CIF SEQUENCE FLOWGRAM



         PROCEDURE TERMINATE ̲DUMP

         DUMP ̲IN ̲PROGRESS EQ FALSE?    CC = NOT ̲INITIATED
         ERROR ̲IN ̲DUMP EQ TRUE?        CC = DUMP ̲ERROR
         RESERVE ̲OCD
         CASE CHECK ̲DUMP ̲FILE(OP.DUMP ̲REF)(START,LENGTH, CC):
                                        ERROR ̲OK
             ERROR?
         END CASE
         Update Dump File using ITS ̲BUF:
             Move Directory Sectors to Next Free Sector,
             Move Dump Variables to Dump File Header:
                 CURRENT ̲TIME to DUMP ̲TIME
                 FREE ̲DUMP ̲SECTORS to FREE ̲SECTORS
                 NEXT ̲FREE ̲SECTOR to NEXT ̲FREE ̲SECTOR
                 SEGMENT ̲NUMBER + 1 to NEXT ̲SEGMENT
                 SEGMENT ̲START, SEGMENT ̲LENGTH to SEGMENT ̲                DESCRIPTOR(SEGMENT ̲NUMBER)   Error
                                                                                                       during
                                                                                                       update?
         End update by releasing ITS ̲BUF
         CC = OK

         RELEASE ̲OCD

         DUMP ̲IN ̲PROGRESS = FALSE
         RETURN

                                      Figure 4.2.3.4.3.5-3
                                    Terminate Dump Flowgram



         PROCEDURE INITIALIZE ̲DUMP ̲FILE ̲HEADER
                     (START, LENGTH)(CC): ERROR ̲OK

         CASE INIT ̲WRITE ̲BLOCK(START,
                               DUMP ̲FILE ̲HEADER ̲SIZE)
                              (ITS ̲BUF, CC): ERROR ̲OK

             ERROR? -EXITNO = ERROR

         END CASE

         Put into ITS ̲BUF:

             DUMP ̲FILE ̲LABEL = MMS ̲DUMP ̲FILE ̲LABEL
             DUMP ̲TIME = 0,
             FREE ̲SECTORS = LENGTH-DUMP ̲FILE ̲HEADER ̲SIZE,
             NEXT ̲FREE ̲SECTOR = DUMP ̲FILE ̲HEADER ̲SIZE,
             NEXT ̲SEGMENT = 1,
             ALL SEGMENT ̲DESCRIPTORS = 0

         CASE WRITE ̲BUFFER(ITS ̲BUF)(CC): ERROR ̲OK

             ERROR?   EXITNO = ERROR

         END CASE

         EXITNO = OK

         RELEASE ̲BUFFER(ITS ̲BUF)

         

         RETURN(EXITNO)


                   Figure 4.2.3.4.3.5-4
           Initialize Dump File Header Flowgram



         PROCEDURE INITIALIZE ̲DUMP ̲VARIABLES: ERROR ̲OK;

             Read DUMP ̲FILE ̲HEADER in ITS ̲BUF,
             and move following variables:

                 FREE ̲SECTORS to FREE ̲DUMP ̲SECTORS,

                 NEXT ̲FREE ̲SECTOR to NEXT ̲FREE ̲SECTOR

                 NEXT ̲SEGMENT to SEGMENT ̲NUMBER


             RELEASE ̲BUFFER(ITS ̲BUF)

             CURRENT ̲DIRECTORY ̲SECTOR = NEXT ̲FREE ̲SECTOR 
                                       + FREE ̲DUMP ̲SECTORS-1

             CURRENT ̲DIRECTORY ̲LOCATION = 2

             DECREMENT(FREE ̲DUMP ̲SECTORS)

             SEGMENT ̲START = NEXT ̲FREE ̲SECTOR

             SEGMENT ̲LENGTH = 1

             DUMP ̲IN ̲PROGRESS = TRUE

             ERROR ̲IN ̲DUMP = FALSE



             RETURN



                   Figure 4.2.3.4.3.5-5
            Initialize Dump Variables Flowgram



         PROCEDURE DUMP ̲THE ̲CIF(CIFREF:        CIF ̲REFERENCE,
                                ST:            STORAGE ̲STATUS)
                               (CIF ̲ADDRESS:   SECTOR ̲NUMBER,
                                CC:            COMPLETION ̲CODE):
                                               
                                               ERROR ̲OK

         CASE ST OF

             STS?  CASE PACK ̲CIF(CIFREF, NEXT ̲FREE ̲SECTOR,
                                 FREE ̲DUMP ̲SECTORS)
                                (CIF ̲LENGTH, CC): ERROR ̲OK

                     ERROR?

                   END CASE

             ITS?  CASE DUMP ̲PACKED ̲CIF(CIFREF)
                                       (CIF ̲LENGTH, CC): ERROR
                                       ̲OK

                     ERROR?

                   END CASE

         END CASE

         CIF ̲ADDRESS = NEXT ̲FREE ̲SECTOR

         Subtract CIF ̲LENGTH from FREE ̲DUMP ̲SECTORS

         Add CIF ̲LENGTH to NEXT ̲FREE ̲SECTOR

         Add CIF ̲LENGTH to SEGMENT ̲LENGTH

         CC = OK                       ERROR ̲IN ̲DUMP = TRUE

         EXITNO = OK                   EXITNO = ERROR



         RETURN(EXITNO)


                   Figure 4.2.3.4.3.5-6
                  Dump the CIF Flowgram



4.2.3.4.4    C̲l̲e̲a̲r̲ ̲M̲o̲d̲u̲l̲e̲



4.2.3.4.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The Clear module handles the Clear command.

         The Clear command has a Clear Time parameter, and the
         command shall delete CIFs in ITS having Store Time
         less than or equal to Clear Time. This is done in the
         following way:

         ITS is read sequentially from Clear Pointer. The process
         will stop on two criteria:

         -   Unload Pointer is reached

         -   A CIF is read with Store Time greater than Clear
             Time.

         For each CIF read the corresponding OCD entry is deleted,
         and the Unload Pointer is positioned to next CIF in
         ITS. The space occupied by the CIF is released, and
         this may cause update of the boolean ITS Warning Enable.

         In order to enable recovery of Clear Pointer it is
         written to the ITS Control Block each time Maxclearcount
         CIFs have been read, and at end of the command.



4.2.3.4.4.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The module has two subpackage interface:

         a)  Clear                          Refer 4.2.3.7.5



4.2.3.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         All components are procedures. The modules b), c) and
         d) are subcomponents of the Clear Procedure.




         a)  Clear   
         b)  Write Clear Pointer
         c)  Update ITS Clear
         d)  Increase Free ITS 



4.2.3.4.4.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer source list.

         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             b1) ITS ̲BUF               (m)
             b2) ITS ̲CLEAR             (m)
             b3) ITS ̲FIRST
             b4) ITS ̲LAST
             b5) ITS ̲FREE ̲SECTORS      (m)
             b6) ITS ̲ENABLE ̲THRESHOLD  
             b7) ITS ̲WARNING ̲ENABLE    (m)

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

             None



4.2.3.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             E̲x̲t̲e̲r̲n̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             -   Reserve OCD           4.1.5.7
             -   Release OCD           4.1.5.8
             -   Read Block            4.2.5.7.1
             -   Get Sequential        4.2.5.7.8
             -   Init Write Block      4.2.5.7.2
             -   Put Random            4.2.5.7.11
             -   Write Buffer          4.2.5.7.4
             -   Release Buffer        4.2.5.7.5
             -   Delete OCD            4.2.4.7.5
             -   Impossible            4.1.5.4



         a)  C̲l̲e̲a̲r̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer 4.2.3.4.4.1. In order to allow other commands
             to be executed in parallel, OCD and ITS ̲BUF are
             released each time a CIF has been read from ITS.

             Flowgram: Refer figure 4.2.3.4.4.5-1.

         b)  W̲r̲i̲t̲e̲ ̲C̲l̲e̲a̲r̲p̲o̲i̲n̲t̲e̲r̲

             PROCEDURE WRITE ̲CLEARPOINTER

             Update ITS Control Block with current value of
             ITS ̲CLEAR. ITS ̲BUF is used for the update.

             Flowgram: None

         c)  U̲p̲d̲a̲t̲e̲ ̲I̲T̲S̲ ̲C̲l̲e̲a̲r̲

             PROCEDURE UPDATE ̲ITS ̲CLEAR(LENGTH:     SECTOR ̲NUMBER)

             Adds LENGTH to ITS ̲CLEAR, taking a possible wrap-around
             into account.

             Flowgram: None

         d)  I̲n̲c̲r̲e̲a̲s̲e̲ ̲F̲r̲e̲e̲ ̲I̲T̲S̲

             PROCEDURE INCREASE ̲FREE ̲ITS.(LENGTH:    SECTOR
             ̲NUMBER)

             Adds LENGTH to ITS ̲FREE ̲SECTORS. If it then becomes
             greater than ITS ̲ENABLE ̲THRESHOLD, ITS ̲WARNING
             ̲ENABLE is set TRUE.

             Flowgram: None



         PROCEDURE CLEAR

         CLEARCOUNT = MAXCLEARCOUNT
         CLEAR LOOP
             RESERVE ̲OCD
             ITS ̲CLEAR EQ ITS ̲UNLOAD?   EXIT
             CASE READ ̲BLOCK(ITS ̲CLEAR,1)(ITS ̲BUF, CC): ERROR ̲OK

                 ERROR?      IMPOSSIBLE(CC)

             END CASE
             GET ̲SEQUENTIAL(ITS ̲BUF, CIFLENGTH, 1)
             GET ̲SEQUENTIAL(ITS ̲BUF, CIFSTATE, 1)
             CIFSTATE EQ EMPTY?    RELEASE ̲BUFFER(ITS ̲BUF)
             GET ̲SEQUENTIAL(ITS ̲BUF, CIFCB, CIFCBLENGTH)
             RELEASE ̲BUFFER(ITS ̲BUF)
             CIFCB.STORE ̲TIME GE OPERATION.STORE ̲TIME?   EXIT
             DELETE ̲OCD(CIFCB.CIF ̲ID)
             UPDATE ̲ITS ̲CLEAR(CIFLENGTH)
             DECREMENT(CLEARCOUNT) NE 0?
             CLEARCOUNT = MAXCLEARCOUNT
             WRITE ̲CLEARPOINTER

             INCREASE ̲FREE ̲ITS(CIFLENGTH)
             RELEASE ̲OCD

         END CLEAR LOOP
         WRITE ̲CLEARPOINTER
         RELEASE ̲OCD
              CC = OK
         RETURN

                              Figure 4.2.3.4.4.5-1 Clear Flowgram



4.2.3.4.5    R̲e̲t̲r̲i̲e̲v̲e̲ ̲M̲o̲d̲u̲l̲e̲



4.2.3.4.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The module performs the Retrieve Command. Retrieval
         may be from online or offline disk as specified in
         the type parameter of the command.

         Online retrieval may take place from either ITS or
         STS, depending upon the CIF Storage Status recorded
         in OCD Entry. Retrieval from STS requires that the
         CIF is made active. If it was not already active, it
         is made passive again after retrieval.

         In any case the retrieval will result in a copy in
         STS of that part of the CIF specified by the View Id.



4.2.3.4.5.2 ̲M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The module has the following subpackage interface:

         a)  Retrieve                       Refer 4.2.3.7.6

         b)  Copy Fields                    Refer 4.2.3.7.8

         and one additional interface:

         c)  F̲i̲n̲d̲ ̲C̲I̲F̲

             C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             FIND ̲CIF(NAME:            CIF ̲ID,
                      VERS:            CIF ̲VERSION)
                     (REF:             CIF ̲REFERENCE,
                      STORAGE:         STORAGE ̲STATUS,
                      LOCK:            LOCK ̲POINTER):ERROR ̲OK





4.2.3.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         All components are procedures:

         a)  Retrieve
         b)  Retrieve Online
         c)  Retrieve Offline
         d)  Retrieve from STS
         e)  Find CIF
         f)  Unpack
         g)  Unpack Field Descriptors
         h)  Generate Retrieved CIFCB
         i)  Unpack Views
         j)  Unpack Fields
         k)  Generate Retrieve Field Info
         l)  Move Retrieved Fields
         m)  Search Directory
         n)  Move Sectors
         o)  Move Fields to Copy
         p)  Copy Fields
         q)  Transfer Block



4.2.3.4.5.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             Refer source list.

         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             b1) OPERATION                     (m)
             b2) CC                            (m)
             b3) ATTRIBUTES                    (m)
             b4) CIF ̲CONTROL ̲BLOCK             (m)
             b5) VIEW ̲CONTROL ̲BLOCK
             b6) FIELD ̲DESCRIPTOR
             b7) ITS ̲BUF                       (m)
             b8) IO ̲BUF                        (m)
             b9) NUMBER ̲OF ̲RETRIEVE ̲CALLS      (m)

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

             None










                                      Figure 4.2.3.4.5.3-1

                                     Retrieve Control flow



4.2.3.4.5.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         E̲x̲t̲e̲r̲n̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         -   Open CIF                          4.1.5.2
         -   Close CIF                         4.1.5.3
         -   Reserve OCD                       4.1.5.7
         -   Release OCD                       4.1.5.8
         -   Read Block                        4.2.5.7.1
         -   Init Write Block                  4.2.5.7.2
         -   Init Update Block                 4.2.5.7.3
         -   Read Fields                       4.2.5.7.6
         -   Init Write Fields                 4.2.5.7.7
         -   Write Buffer                      4.2.5.7.4
         -   Release Buffer                    4.2.5.7.5
         -   Get Sequential                    4.2.5.7.8
         -   Put Sequential                    4.2.5.7.10
         -   Get Random                        4.2.5.7.9
         -   Put Random                        4.2.5.7.11
         -   Move Buffer                       4.2.5.7.14
         -   Put Attributes                    4.2.2.4.5.2 c
         -   Check Dumpfile                    4.2.3.4.3.2 d
         -   Get Segment                       4.2.3.4.3.2 e
         -   Check Passivation                 4.2.2.7.13
         -   Search OCD                        4.2.4.7.4
         -   Read Checkpoint                   4.2.4.7.13
         -   Check CIF Status                  4.2.4.7.15
         -   Activate CIF                      4.2.4.7.8
         -   Impossible                        4.1.5.4



         a)  R̲e̲t̲r̲i̲e̲v̲e̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Performs the command Retrieve. Online or offline
             retrieval determined by type parameter in command.

             Flowgram: Refer figure 4.2.3.4.5.5-1

         b)  R̲e̲t̲r̲i̲e̲v̲e̲ ̲O̲n̲l̲i̲n̲e̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Finds the CIF and determines if it shall be retrieved
             from ITS or STS. OCD is reserved during retrieval.
             ITS Buffer and IO Buffer must be available at call.

             Flowgram: Refer figure 4.2.3.4.5.5-2

         c)  R̲e̲t̲r̲i̲e̲v̲e̲ ̲O̲f̲f̲l̲i̲n̲e̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Retrieves a CIF from the dump file and dump segment
             specified in command.

             OCD is reserved during retrieval.

             ITS Buffer and IO Buffer must be available at call.

             Flowgram: Refer figure 4.2.3.4.5.5-3

         d)  R̲e̲t̲r̲i̲e̲v̲e̲ ̲f̲r̲o̲m̲ ̲S̲T̲S̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Retrieves a CIF from STS by making a copy of a
             CIF already in STS.

             Flowgram: Refer figure 4.2.3.4.5.5-4.

         e)  F̲i̲n̲d̲ ̲C̲I̲F̲





             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Searches in OCD a CIF identified by name, and returns
             a reference to the CIF either in STS or in ITS.
             If the CIF is passive in STS, it is made active,
             and opened. OCD is reserved at return. The reason
             for the loop is that the CIF might be about to
             be made passive caused by another command. If so,
             it must be searched again in OCD.

             Flowgram: Refer figure 4.2.3.4.5.5-5.

         f)  U̲n̲p̲a̲c̲k̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Unpacks a CIF from ITS or a dump file and generates
             a partial copy of the CIF in STS.

             Flowgram: Refer figure 4.2.3.4.5.5-6.

         g)  U̲n̲p̲a̲c̲k̲ ̲F̲i̲e̲l̲d̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲o̲r̲s̲

             PROCEDURE UNPACK ̲FIELD ̲DESCRIPTORS(VCB)(CC): ERROR
             ̲OK

             Read sequentially through ITS ̲BUF the Field Descriptors
             of the packed CIF. Three Data Structures are initialized
             during this scan:

             -   Field Information of ATTRIBUTES
             -   Field Sequence of IO ̲BUF for later write of
                 the fields of the generated CIF
             -   Field Sequence of ITS ̲BUF for later read of
                 fields from packed CIF

             For each Field Reference of VCB the following is
             done:

             -   If REFERENCE ̲STATUS = NOT ̲REFERENCED or FIELD
                 ̲ID = 0, FIELD ̲STATUS is set to NOT ̲EXISTING
                 in Field Information for corresponding group,
                 and the field group is bypassed in packed CIF.



             -   Otherwise:

                 FIELD ̲STATUS is set to NEW-FIELD, and the Field
                 Descriptor of the packed CIF is located. Its
                 USED ̲LENGTH is inserted as ALLOCATED ̲LENGTH
                 in Field Information, and as LENGTH in Field
                 Sequence of IO ̲BUF and ITS ̲BUF.

             The sector number of field contents is inserted
             as OFFSET in Field Sequence of ITS ̲BUF. The Field
             Group and Field Id are inserted in Field Sequence
             of IO ̲BUF, and OFFSET is set to zero.

             -   In any case PERMANENT is set false and WRITE
                 ̲
                 ACCESS true in Field Information.

             In case of an IO error, ITS ̲BUF is released, and
             error return is taken.

             Flowgram: None

         h)  G̲e̲n̲e̲r̲a̲t̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲e̲d̲ ̲C̲I̲F̲C̲B̲

             Generates a CIFCB with VCB and Fields according
             to contents of Attributes.

             Flowgram: Refer figure 4.2.3.4.5.5-7

         i)  U̲n̲p̲a̲c̲k̲ ̲V̲i̲e̲w̲s̲

             PROCEDURE UNPACK ̲VIEWS( )(CC): ERROR ̲OK

             Read sequentially through ITS ̲BUF the VCBs of the
             packed CIF, until a VCB is found with View ID =
             OPERATION.VIEW ̲ID.  Error return if not found or
             if IO error occurs. In that case ITS ̲BUF is released.

             Flowgram: None

         j)  U̲n̲p̲a̲c̲k̲ ̲F̲i̲e̲l̲d̲s̲

             PROCEDURE UNPACK ̲FIELDS(CIFCB)(LOCK, CC): ERROR
             ̲OK

             Opens the CIF described by CIFCB. Then moves field
             contents, one field at a time, from packed CIF
             to fields of CIFCB, as described in IO ̲BUF.FIELD
             ̲SEQUENCE. The sectornumbers and lengths of the
             fields in packed CIF are found in ITS ̲BUF.FIELD
             ̲SEQUENCE. Upon termination, IO ̲BUF and ITS ̲BUF
             are released.



             In case of an IO error, CC is set, and CIFCB is
             removed by calling DELETE ̲CIF ̲FROM ̲STS and REMOVE
             ̲
             CIFCB. Finally CIF is closed by calling CLOSE ̲CIF.

             Flowgram: None

         k)  G̲e̲n̲e̲r̲a̲t̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲e̲ ̲F̲i̲e̲l̲d̲ ̲I̲n̲f̲o̲

             PROCEDURE GENERATE ̲RETRIEVE ̲FIELD ̲INFO(CIFCB, VCB)

             Same function as Unpack Field Descriptors except
             that the source is an active CIF.

             Prepares creation of a retrieved CIF in STS by
             initializing the following three data structures:

             -   ATTRIBUTES.FIELD ̲INFORMATION
                 Shall describe the permanent fields referenced
                 by VCB.

             -   IO ̲BUF.FIELD ̲SEQUENCE
                 Shall describe fields of the new CIF

             -   ITS ̲BUF.FIELD ̲SEQUENCE
                 Shall describe the fields to be moved.

             For details refer to procedure UNPACK ̲FIELD ̲
             DESCRIPTORS.

             Flowgram: None

         l)  M̲o̲v̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲e̲d̲ ̲F̲i̲e̲l̲d̲s̲

             PROCEDURE MOVE ̲RETRIEVED ̲FIELDS(OLD ̲VCB, CIFCB1,
             CIFCB2)

             The FIELD ̲SEQUENCE described by ITS ̲BUF belonging
             to CIFCB1 is moved to the FIELD ̲SEQUENCE described
             by IO ̲BUF, belonging to CIFCB2. The following IO
             procedures are used:

             -   GET ̲FIELD ̲DESCRIPTOR
             -   NEXT ̲ADDR ̲ELEMENT
             -   MOVE ̲SECTORS

             Flowgram: None



         m)  S̲e̲a̲r̲c̲h̲ ̲D̲i̲r̲e̲c̲t̲o̲r̲y̲

             PROCEDURE SEARCH ̲DIRECTORY (NAME:        CIF ̲ID,
                                         VERS:        CIF ̲VERSION,
                                         LAST ̲SECTOR: SECTOR
                                                      ̲NUMBER)
                                        (CIF ̲REF:     SECTOR
                                                      ̲NUMBER,
                                         CC:          COMPLETION
                                                      ̲CODE):
                                                      ERROR
                                                      ̲OK

             Uses ITS ̲BUF to search the specified dump segment
             directory for an entry with NAME. The start of
             the packed CIF is returned. ITS ̲BUF is released
             before return.

             Completion Codes: Not Found

             Flowgram: None

         n)  C̲o̲p̲y̲ ̲F̲i̲e̲l̲d̲s̲

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Source and destination CIF are made available for
             a copy. It is checked that USED ̲LENGTH of all the
             referenced fields of destination VIEW are zero.
             If not, error return. It is checked that the access
             profile of the involved CIFS are identical, if
             not, error return. Then fields are moved by calling
             MOVE ̲FIELDS ̲TO ̲COPY. Finally attributes of the
             destination CIF are updated and the CIFS are closed.

             F̲l̲o̲w̲g̲r̲a̲m̲: None.

         o)  M̲o̲v̲e̲ ̲F̲i̲e̲l̲d̲s̲ ̲t̲o̲ ̲C̲o̲p̲y̲

             MOVE ̲FIELDS ̲TO ̲COPY (SOURCE ̲CIFCB, DEST ̲CIFCB)

             N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲

             For each field with FIELD ̲STATUS equal to INCLUDED
             ̲FROM ̲PREDECESSOR the contents of SOURCE ̲CIFCB are
             moved to dest ̲CIFCB. The following procedures are
             used:

             -   GET ̲FIELD ̲DESCRIPTOR
             -   NEXT ̲ADDR ̲ELEMENT
             -   MOVE ̲SECTORS

             F̲l̲o̲w̲g̲r̲a̲m̲: None



         p)  M̲o̲v̲e̲ ̲S̲e̲c̲t̲o̲r̲s̲

             PROCEDURE MOVE ̲SECTORS (SECTOR,
                                     SOURCE ̲SECTOR,
                                     DEST ̲SECTOR: SECTOR ̲NUMBER)

             The specified no. of sectors in STS are moved from
             source to destination.

             OCD must be reserved at call.

             Flowgram: None

         q)  T̲r̲a̲n̲s̲f̲e̲r̲ ̲B̲l̲o̲c̲k̲

             PROCEDURE TRANSFER ̲BLOCK (SECTOR,
                                       COUNT: SECTOR ̲NUMBER)
                                      (BYTES ̲REMAINING: INTEGER)

             Transfer a contiguous block of data from ITS or
             dump file to field of CIF currently under retrieval.



         PROCEDURE RETRIEVE

         INCREMENT(NUMBER ̲OF ̲RETRIEVE ̲CALLS)

         CASE OPERATION.RETRIEVE ̲TYPE

             ONLINE?  RETRIEVE ̲ONLINE( )(CIFCB, VCB, LOCK, CC)

             OFFLINE? RETRIEVE ̲OFFLINE ( )(CIFCB, VCB, LOCK,
             CC)



         END CASE

         CC NE OK?

         COMPUTE ̲OBJ ̲REF(VCB ̲POOL)(INDEX OF VCB)

         Put into reply: CIFCB.PROFILE,
                         Index of VCB

         PUT ̲ATTRIBUTES(VCB)

         CLOSE ̲CIF(LOCK)



         RETURN

















                   Figure 4.2.3.4.5.5-1
                    Retrieve Flowgram



         PROCEDURE RETRIEVE ̲ONLINE(                     )
                                  (CIFCB:      CIF ̲CONTROL ̲BLOCK,
                                   VCB:        VIEW ̲CONTROL
                                               ̲BLOCK,
                                   LOCK:       LOCK ̲DESCRIPTOR,
                                   CC:         COMPLETION ̲CODE)

         CASE FIND ̲CIF(OPERATION.CIF ̲ID)(CIF ̲REF, ST, LOCK):
         ERROR ̲OK

             ERROR?  CC = NOT ̲FOUND

         END CASE

         CASE ST

             STS?  RETRIEVE ̲FROM ̲STS(CIF ̲REF, LOCK)
                                    (CIFCB, VCB, LOCK, CC)



             ITS?  UNPACK(CIF ̲REF)(CIFCB, VCB, LOCK, CC)

                   RELEASE ̲OCD


         END CASE


         RETURN














                   Figure 4.2.3.4.5.5-2
                 Retrieve Online Flowgram




         PROCEDURE RETRIEVE ̲OFFLINE( )(CIFCB, VCB, LOCK, CC)

         RESERVE ̲OCD

         CASE CHECK ̲DUMPFILE(OPERATION.DUMP ̲REF)
                            (START, LENGTH, CC): ERROR ̲OK

             ERROR?

         END CASE

         CASE GET ̲SEGMENT(OPERATION.SEGMENT)
                         (START, LENGTH, DIRECTORY, CC): ERROR
                     ̲OK

             ERROR?       CC = NOT FOUND

         END CASE

         CASE SEARCH ̲DIRECTORY(OPERATION.CIF ̲ID, DIRECTORY)
                              (CIF ̲REF, CC): ERROR ̲OK

             ERROR?       CC = NOT FOUND

         END CASE

         UNPACK(CIF ̲REF)(CIFCB, VCB, LOCK, CC)



         RELEASE ̲OCD

         RETURN












                   Figure 4.2.3.4.5.5-3
                Retrieve Offline Flowgram




         PROCEDURE RETRIEVE ̲FROM ̲STS(OLDCIFCB, OLD LOCK)
                                    (CIFCB, VCB, LOCK, CC)



         Move from OLDCIFCB to ATTRIBUTES:

             ACCESS ̲PROFILE, SECURITY ̲PROFILE, CIF ̲ID

         Search OLDCIFCB.VIEW ̲LIST for VCB with

             VCB.VIEW ̲ID EQ OPERATION.VIEW ̲ID

             Not found or VCB.STORAGE ̲STATUS NE TRUE?

                                                  CC = NOT ̲FOUND

                                                  CLOSE ̲CIF(OLDLOCK)

         GENERATE ̲RETRIEVE ̲FIELD ̲INFO(OLDCIFCB, VCB)

         GENERATE ̲RETRIEVED ̲CIFCB( )(CIFCB, VCB)

         OPEN ̲CIF(CIFCB, FALSE)(LOCK, DUMMY)

         MOVE ̲RETRIEVED ̲FIELDS(OLDCIFCB, CIFCB)

         CHECK ̲PASSIVATION(OLDCIFCB, OLDLOCK)

         CC = OK

         RETURN












                   Figure 4.2.3.4.5.5-4
                Retrieve from STS Flowgram



         FIND ̲CIF    (NAME:       CIF ̲ID,
                      VERS:       CIF ̲VERSION)
                     (REF:        CIF ̲REFERENCE,
                      STORAGE:    STORAGE ̲STATUS,
                      LOCK:       LOCK ̲DESCRIPTOR): ERROR ̲OK

         FIND ̲CIF LOOP

             RESERVE ̲OCD

             CASE SEARCH ̲OCD(NAME)(ENTRY): ERROR ̲OK

                 ERROR?     EXITNO = ERROR;  RELEASE ̲OCD;  
                 EXIT

             END CASE

             REF = ENTRY.CIF ̲REFERENCE; STORAGE = ENTRY.STORAGE
             ̲
                                                        STATUS

             STORAGE EQ ITS?  EXITNO = OK;    EXIT

             READ ̲CHECKPOINT(ENTRY)(IO ̲BUF)

             CASE CHECK ̲CIF ̲STATUS(IO ̲BUF)(REF): ERROR ̲OK

                 ERROR?  ACTIVATE ̲CIF( )(REF)

             END CASE

             RELEASE ̲BUFFER (IO ̲BUF)

             RELEASE ̲OCD

             CASE OPEN ̲CIF(REF, TRUE)(LOCK, CC): ERROR ̲OK

                 OK?   EXITNO = OK;    EXIT

             END CASE

         END FIND ̲CIF LOOP

         RETURN(EXITNO)



                   Figure 4.2.3.4.5.5-5
                    Find CIF Flowgram



         PROCEDURE UNPACK(CIFREF:              SECTOR ̲NUMBER)
                         (CIFCB, VCB, LOCK, CC): ERROR ̲OK;

         CASE READ ̲BLOCK (CIFREF)(ITS BUF): ERROR ̲OK

             ERROR?

         END CASE

         Read CIFLENGTH and CIFCB by GET ̲SEQUENTIAL

         Move from CIFCB to ATTRIBUTES:

             ACCESS ̲PROFILE, SECURITY ̲PROFILE, CIF ̲ID.

         CASE UNPACK ̲VIEWS( )(CC): ERROR ̲OK

             ERROR?

         END CASE

         UNPACK ̲FIELD ̲DESCRIPTORS


         GENERATE ̲RETRIEVED ̲CIFCB( )(CIFCB, VCB)


         CASE UNPACK ̲FIELDS(CIFCB)(LOCK, CC): ERROR ̲OK

             ERROR?  DELETE ̲CIF ̲FROM ̲STS
                     LOCK   0 ?   REMOVE ̲CIFCB (CIFCB)
                                  CLOSE ̲CIF(CIFCB)

                     DELETE ̲CIFCB(CIFCB)

         END CASE

         CC = OK

         RETURN




                   Figure 4.2.3.4.5.5-6
                     Unpack Flowgram




         PROCEDURE GENERATE ̲RETRIEVED ̲CIFCB(NEW ̲SEGM)(CIFCB,
         VCB)

         CASE GENERATE ̲CIFCB(NEW ̲SEGM)(CIFCB, CC): ERROR ̲OK

             ERROR?   IMPOSSIBLE(CC)

         END CASE



         Initialize CIFCB with:

             Access Profile, Security Profile, CIF ̲ID

             from ATTRIBUTES. RETRIEVE ̲STATUS = TRUE



         VCB = CIFCB.VIEW ̲LIST.FIRST

         VCB.VIEW ̲ID = OPERATION.VIEW ̲ID

         RETURN





















                   Figure 4.2.3.4.5.5-7
            Generate Retrieved CIFCB Flowgram




4.2.3.5  C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲

         Refer MMS ̲PREFIX.S



4.2.3.6  C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

         N/A



4.2.3.7  S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.2.3.7.1    S̲t̲o̲r̲e̲

         F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         The procedure performs the STORE command. Operation
         must contain the command parameters at call. REPLY
         and CC are updated. Referenced CIF is reserved during
         processing. No Disk Accesses.

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         STORE

         C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲

         illegal view reference
         none existing CIF
         store not allowed



4.2.3.7.2    I̲n̲i̲t̲ ̲D̲u̲m̲p̲

         F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The procedure performs the INIT DUMP Command. Operation
         must contain the command parameters at call.
         Reply and CC are updated. OCD is reserved, and ITS
         Buffer used during processing. Disk Access to Dump
         File on Offline Volume.

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         INIT ̲DUMP



         C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲

         illegal dump
         not dumpfile
         DCM error codes



4.2.3.7.3    D̲u̲m̲p̲ ̲C̲I̲F̲ ̲S̲e̲q̲u̲e̲n̲c̲e̲

         F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The procedure performs the DUMP CIF SEQUENCE Command.
         Operation must contain the command parameters at call.
         REPLY and CC are updated. OCD is reserved, and ITS
         Buffer and IO Buffer are used. They are, however, released
         each time a single CIF has been dumped, in order to
         allow other commands to be processed in parallel. Disk
         Access to STS, ITS and Dump File, and to OCD.

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         DUMP ̲CIF ̲SEQUENCE

         C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲

         not dumpfile
         not initiated
         dump error
         DCM error codes



4.2.3.7.4    T̲e̲r̲m̲i̲n̲a̲t̲e̲ ̲D̲u̲m̲p̲

         F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The procedure performs the TERMINATE DUMP Command.
         Operation must contain command parameters at call.
         REPLY and CC are updated. OCD is reserved and ITS Buffer
         is used. Disk Access to Dump File.





         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         TERMINATE ̲DUMP

         C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲

         not initiated
         dump error
         not dumpfile
         DCM error codes


4.2.3.7.5    C̲l̲e̲a̲r̲

         F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The procedure performs the CLEAR command. Operation
         must contain command parameters at call. REPLY and
         CC are updated. OCD is reserved, and ITS Buffer is
         used. They are, however, released between each CIF
         cleared, in order that other commands can be processed
         in parallel. Disk accesses to ITS and OCD.

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         CLEAR



4.2.3.7.6    R̲e̲t̲r̲i̲e̲v̲e̲

         F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The procedure performs the RETRIEVE command. Operation
         must contain command parameters at call. REPLY and
         CC are updated. OCD is reserved, and ITS Buffer and
         IO Buffer are used. Disk accesses to STS, ITS, Dump
         File and OCD.

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         RETRIEVE

         C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲

         view not found
         offline retrieval
         not dumpfile
         empty segment





4.2.3.7.7    U̲n̲l̲o̲a̲d̲

         F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The procedure unloads a CIF from STS to ITS, and updates
         OCD accordingly if applicable. Unload is performed,
         only if the CIF is permanent, has been checkpointed,
         and has been subject to at least one Store command.
         If the first two conditions but not the latter are
         fulfilled, the OCD entry is deleted.

         OCD and CIF must be reserved at call. They are not
         released by the procedure. ITS Buffer and IO Buffer
         used during processing. Disk Accesses to ITS, STS and
         OCD.

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         UNLOAD(CIFCB:                      CIF ̲CONTROL ̲BLOCK)



4.2.3.7.8    C̲o̲p̲y̲ ̲F̲i̲e̲l̲d̲s̲

         The procedure performs the COPY ̲FIELDS command. REPLY,
         CC and ATTRIBUTES are updated.

         OCD is reserved, ITS ̲BUF and IO ̲BUF are used.

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         COPY ̲FIELDS

         C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲C̲o̲d̲e̲s̲

         Copy not allowed