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

⟦a2d3b26e9⟧ Wang Wps File

    Length: 53848 (0xd258)
    Types: Wang Wps File
    Notes: Spelunked
    Names: »~ORPHAN64.00«

Derivation

└─⟦060f447e1⟧ Bits:30006194 8" Wang WCS floppy, CR 0460A
    └─ ⟦this⟧ »~ORPHAN64.00« 

WangText



>
=…0a…=…00…=…02…=
=…07…<…0f…<…06…;…0a…;…0b…;…0f…; ;…07…:…0d…:…02…9…08…9…09…9…0f…9
8…0a…8…0f…8…05…7…0b…7…00…7…06…6…0b…6…01…6 5…09…5…0d…5…02…4…08…4…0d…4…02…3…08…3…0d…3
2…08…2…0c…2…01…2…06…1…0a…1…00…1 0…08…0…0c…0…86…1
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        …02…
        
        
        
        
        
        
        
        
        
        
        …02…
        
        
        …02…
        
        
        
        
        
        
        
        

…02…CPS/SDS/039

…02…840601…02……02…
USER VDU
DETAILED
 DESIGN
 SPECIFICATION…02…ISSUE
 1…02…CAMPS








       4.2.3
         4.2.3.1 unctional Specification ........... 
                    
           4.2.3.1.1 Control of main flow (VDIA main 
                         
                     loop) ..........................
                         
           4.2.3.1.2 Interpretation of format control
                         
                     "programmes" ...................
                         
           .2.3.1.3  Input from/output to VDU (VDU
                     access method) .................
                         
           4.2.3.1.4 Read from/write to CIF (CIF     
                     
                     access method) .................
                         
           4.2.3.1.5 Read from/write to memory      
                     (memoryaccess method) ......... 
                        
           4.2.3.1.6 Read/write from sequences      
                     (sequence access method) .......
                         
           4.2.3.1.7 Validation and conversion. .....
                         
           4.2.3.1.8 Error handling (Errl.) .........
                         
           4.2.3.1.9 Hadling of dynamic memory     
                     (memory management) ............
                         
         4.2.3.2 Software Structure .................
                     
           4.2.3.2.1 Main Components of VDIA ........
                         
           4.2.3.2.2 VDU Format and Associated Contro
                         
           4.2.3..3  Format Model and VDU Field Type 
                         
           4.2.3.2.4 Format Control Programme (FCP) .
                         
           4.2.3.2.5 VDIA Data Layout ...............
                         

         4.2.3.3 Data Flow, Control Structure .......
                     
         4.2.3.7 Subpackage Interface .............. 
                    
           4.2.3.7.1 UFCO VDIA UFCO INTERFACE .......
                         
           4.2.3.7.2 VDIA USPR VDIA Interface .......
                         
           4.2.3.4.1 VDIA MAIN ......................
                         
             4.2.3.4.1.1 VDIA Main Loop Specification
                             
               4.2.3.4.1.1.1 Functiona Specification 
                  
               4.2.3.4.1.1.3 Module Components ......
                   
               4.2.3.4.1.1.2 Data Description .......
                   

             4.2.3.4.1.2 Stack Error Specification ..
                 
               4.2.3.4.1.2.1 Functional Specification
                   
               4.2.3.4.1.2.2 Mdule Interface ....... 
                  
               4.2.3.4.1.2.3 Module components ......
                   

             4.2.3.4.1.3 Long Exit Specification ....
                 
             4.2.3.4.1.4 Wait Vdu I O Specification .
                 

           4.2.3.4.2 Format Program Interpreter .....
                         
             4.2..4.2.1  Format Control Programme    
                          
                         Interpreter Main spec. .....
                             
               4.2.3.4.2.1.1 Functional Specification
                   
               4.2.3.4.2.1.2 Module Interface .......
                   
               4.2.3.4.2.1.3 Module Components ......
                   
               4.2..4.2.1.4 Data Description ....... 
                  
               4.2.3.4.2.1.5 Module Design ..........
                   

             4.2.3.4.2.2 Format Control Programme    
                 
                         Interpreter Input Spec. ....
                             
               4.2.3.4.2.2.1 Functional Specification
                   
               42.3.4.2.2.2 Module Interface ....... 
                  
               4.2.3.4.2.2.3 Module Components ......
                   
               4.2.3.4.2.2.4 Data Description .......
                   
               4.2.3.4.2.2.5 Module Design ..........
                   

             4.2.3.4.2.3 Format Control Programme    
              
                       Interpreter Disp spec. .....  
                         
               4.2.3.4.2.3.1 Functional Specification
                   
                             (Module Design) ........
                                 
               4.2.3.4.2.3.2 Module Interface .......
                   
               4.2.3.4.2.3.3 Module Components ......
                   
               4..3.4.2.3.4 Data Description ....... 
                  
               4.2.3.4.2.3.5 Module Design ..........
                   

             4.2.3.4.2.4 Format Control Programme    
             
                         Contr Specification ........
                             
               4.2.3.4.2.4.1 Functional Specification
                   
                           (Module Design) ........  
                             
               4.2.3.4.2.4.2 Module Interface .......
                   
               4.2.3.4.2.4.3 Module Components ......
                   
               4.2.3.4.2.4.4 Data Description .......
                   
               4.2.3.4.2.4.5 Module Design ..........
                   

             4.2..4.2.5 Format Control Programme     
                         Seq Specification ..........
                             
               4.2.3.4.2.5.1 Functional Specification
                   
                             (Module Design) ........
                                 
               4.2.3.4.2.5.2 Module Interface .......
                   
               4.2.3.4.2.5. Module Components ...... 
                  
               4.2.3.4.2.5.4 Data Description .......
                   
               4.2.3.4.2.5.5 Module Design ..........
                   

             4.2.3.4.2.6 Format Control Programme    
             
                         M̲i̲s̲c̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ .........
                             
               4.2.3.4.2.6.1Functional Specification 
                  
               4.2.3.4.2.6.2 Module Interface .......
                   
               4.2.3.4.2.6.3 Module components ......
                   
               4.2.3.4.2.6.4 Data Description .......
                   
               4.2.3.4.2.6.5 Module Design ..........
                   

             4.2.3.42.7 Format Control Programme Aux 
                
                         Specification ..............
                             
               4.2.3.4.2.7.1 Functional Specification
                   
               4.2.3.4.2.7.2 Module Interface .......
                   

           4.2.3.4.3 VDU Access Method ..............
                         
             4..3.4.3.1 Vdu Access Method Main     
                         Specification ..............
                             
               4.2.3.4.3.1.1 Functional Specification
                   
               4.2.3.4.3.1.2 Module interface .......
                   
               4.2.3.4.3.1.3 Module Components ......
                   
               4.2.34.3.1.4 Data Description ....... 
                  

             4.2.3.4.3.2 Vdu Access Method Model   
                         Specification                                                                                                                          4.2.3.4.3.2.1
                                                                                                                                                                Functional
                                                                                                                                                                Specification
                                                                                                                                                                ...
                                                                                                                                                                
                                                                                                                                                                
                                                                                                                                                                
                                                                                                                                                                
                                                                                                                                                                
               4.2.3.4.3.2.2 Module Interface .......
                   
               4.2.3.4.3.2.3 Module Compoents ...... 
                  
               4.2.3.4.3.2.4 Data Description .......
                   

             4.2.3.4.3.3 Vdu Access Method Io   
                         Specification ..............
                             
               4.2.3.4.3.3.1 Functional Specification
                   
               4.2.3.4.3.3.2 Module Interface ...... 
                  
               4.2.3.4.3.3.3 Module Components ......
                   
               4.2.3.4.3.3.4 Data Description .......
                   

             4.2.3.4.3.4 Vdu Access Method Errl   
                         Specification ..............
                             
               4.2.3.4.3.4.1 Functional Specification
                  
               4.2.3.4.3.4.3 Module Components ......
                   
               4.2.3.4.3.4.4 Data Description .......
                   

           4.2.3.4.4 Cif Access Method ..............
                         
             4.2.3.4.4.1 Cif Access Method     
                         Specification ..............
                             
             4.2.3.4.4.1.1 Functional Specification  
               
               4.2.3.4.4.1.2 Module Interface .......
                   
               4.2.3.4.4.1.3 Module Components ......
                   
               4.2.3.4.4.1.4 Data Description .......
                   

           4.2.3.4.5 Memory Access Method - Mem Ac.  
                        
             4.2.3.4.5.1 Memory Access Method    
                         Specification ..............
                             
               4.2.3.4.5.1.1 Functional Specification
                   
               4.2.3.4.5.1.2 Module Interface .......
                   
               4.2.3.4.5.1.3 Module Components ......
                  
               4.2.3.4.5.1.4 Data Description .......
                   

           4.2.3.4.6 Field Sequence Access Method    
                     Seq Acc ........................
                         
             4.2.3.4.6.1 Sequence Access Method    
                         Specification ..............
                             
               42.3.4.6.1.1 Functional Specification 
                  
               4.2.3.4.6.1.4 Data Description .......
                   

           4.2.3.4.7 Memory Management (Mem-Man) ....
                         
             4.2.3.4.7.1 Memory Management     
                         Specification ..............
                             
               4.2.3.47.1.1 Functional Specification 
                  
               4.2.3.4.7.1.2 Module Interface .......
                   
               4.2.3.4.7.1.3 Module Components ......
                   
               4.2.3.4.7.1.4 Data Description .......
                   

             4.2.3.4.8.1 Common Modules .............
                 
             4.2.3.4.8.1.1 Functial Specification    
              
                             Copy ...................
                                 
               4.2.3.4.8.1.2. Module Interface ......
                   
               4.2.3.4.8.1.3 Module Components  .....
                   
               4.2.3.4.8.1.4 Data Description .......
                   
               42.3.4.8.2.1 Functional Specification 
                  
                             Get Mhi ................
                                 
               4.2.3.4.8.2.2 Module Interface .......
                   
               4.2.3.4.8.2.3 Module Components ......
                   
               4.2.3.4.8.2.4 Data Description .......
                   
               4..3.4.8.3.1 Functional Specification 
                  
                             Vdia Com ...............
                                 
               4.2.3.4.8.3.2 Module Interface .......
                   …86…1         …02…   …02…   …02…   …02…               
                                          
4.2.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̲

   To fulfil the task of VDIA, which is mainly to transform
   data from internal format to the format presented on
   the VDU and visa versa, the followig functions should
   be implemented in the subpackage:

   - control of main flow (VDIA main loop)
   - interpretation of format control "programmes"
   - input from/output to VDU (VDIA access method)
   - Read from/write to CIF (CIF access method)
   - Read fom/write to memory (memory access method)
   - Read from/write to sequence (sequence access method)
   - Validation and conversion (Display, Syntax and semantic)
   - Error handling (Errl.)
   - Handling of dynamic memory (memory management)



4.2.3.1.1 C̲n̲t̲r̲o̲l̲ ̲o̲f̲ ̲m̲a̲i̲n̲ ̲f̲l̲o̲w̲ ̲(̲V̲D̲I̲A̲ ̲m̲a̲i̲n̲ ̲l̲o̲o̲p̲)

   VDIA main loop receives commands in the activation
   semaphore and control the main flow of the execution
   of the commands.



4.2.3.1.2  I̲n̲t̲e̲r̲p̲r̲e̲t̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲f̲o̲r̲m̲a̲t̲ ̲c̲o̲n̲t̲r̲o̲l̲ ̲"̲p̲r̲o̲g̲r̲a̲m̲m̲e̲s̲"

   This module performs the exeution of the format control
   programme connected to the format displayed on the
   screen. Each format, which contains fields, has an
   associated format control programme.



4.2.3.1.3  I̲n̲p̲u̲t̲ ̲f̲r̲o̲m̲/̲o̲u̲t̲p̲u̲t̲ ̲t̲o̲ ̲V̲D̲U̲ ̲(̲V̲D̲U̲ ̲a̲c̲c̲e̲s̲s̲ ̲m̲e̲t̲h̲o̲d̲)

   Performs all input an output to the VDU. This module
   is responsible for conversion between addressing on
   the VDU (line, incornation and field number) and internal
   adddressing (field type, field replica)



4.2.3.1.4  R̲e̲a̲d̲ ̲f̲r̲o̲m̲/̲w̲r̲i̲t̲e̲ ̲t̲o̲ ̲C̲I̲F̲ ̲(̲C̲I̲F̲ ̲a̲c̲c̲e̲s̲s̲ ̲m̲e̲t̲h̲o̲d̲)

   The CIF ccess method performs read/write of data which
   is/shall be stored in CHAMPS INTERNAL FORMAT (CIF).




4.2.3.1.5    R̲e̲a̲d̲ ̲f̲r̲o̲m̲/̲w̲r̲i̲t̲e̲ ̲t̲o̲ ̲m̲e̲m̲o̲r̲y̲ ̲(̲m̲e̲m̲o̲r̲y̲ ̲a̲c̲c̲e̲s̲s̲ ̲m̲e̲t̲h̲o̲d̲)

         The memory access method accesses data in memory records.



4.2.3.1.6    R̲e̲a̲d̲/̲w̲r̲i̲t̲e̲ ̲f̲r̲o̲m̲ ̲s̲e̲q̲u̲e̲n̲c̲e̲s̲ ̲(̲s̲e̲q̲u̲e̲n̲c̲e̲ ̲a̲c̲c̲e̲s̲s̲ ̲m̲e̲t̲h̲o̲)

         The sequence access method makes it possible to read
         and write sequences of data by use of CIF access method
         or memory access method.



4.2.3.1.7    V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲c̲o̲n̲v̲e̲r̲s̲i̲o̲n̲.

         This is merely an interface to the subpackage User
         Procedures, whichis a collection of display, syntax
         and sematic procedures. The USPR subpackage is connected
         to the FCO subprocess.



4.2.3.1.8    E̲r̲r̲o̲r̲ ̲h̲a̲n̲d̲l̲i̲n̲g̲ ̲(̲E̲r̲r̲l̲.̲)

         During validation this module collects errors and displayes
         these when validation of format is inished.



4.2.3.1.9    H̲a̲n̲d̲l̲i̲n̲g̲ ̲o̲f̲ ̲d̲y̲n̲a̲m̲i̲c̲ ̲m̲e̲m̲o̲r̲y̲ ̲(̲m̲e̲m̲o̲r̲y̲ ̲m̲a̲n̲a̲g̲e̲m̲e̲n̲t̲)̲

         The purpose of memory management module is to implement
         the necessory dynamic memory allocation for buffers
         in VDIA.



4.2.3.2  S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The Dialogue Subpackage is a interpreter which is able
         to activate procedures (belonging to a FCO subpackage)
         for transformation of data in internal format to a
         screen format and visa versa. Only conversion and validation
         procedure belongs to the FCO subpackage while storage,display
         and other general functions is implemented in the VDIA
         subpackage.




4.2.3.2.1    M̲a̲i̲n̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲ ̲o̲f̲ ̲V̲D̲I̲A̲

         VDIA is a service coroutine used by "UFCO-like" control
         coroutines (SFCO, DIFCO, SEFCO, UFCO) for transfer
         and convertion of data between the VD and CIF/memory.
         The function of VDIA is controlled by operation buffers
         sent to the activation semaphore.









































                    FIGURE 4.2.3.2.1-1
           DEPICTS THE MAIN COMPONENTS OF VDIA








         The components of VDIA may be grouped into the following
         categories:

         M̲a̲i̲n̲ ̲L̲o̲o̲p̲ ̲a̲n̲d̲ ̲F̲o̲r̲m̲a̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲

         Receives commmands in the activation semaphore and
         control the main flow of te execution of commands.

         F̲i̲e̲l̲d̲ ̲S̲e̲q̲u̲e̲n̲c̲e̲ ̲A̲c̲c̲e̲s̲s̲,̲ ̲M̲e̲m̲o̲r̲y̲ ̲A̲c̲c̲e̲s̲s̲ ̲a̲n̲d̲ ̲C̲I̲F̲ ̲A̲c̲c̲e̲s̲s̲

         Performs  storage and retrieval of data stored internalty
         in the CAMPS system.

         V̲D̲U̲ ̲A̲c̲c̲e̲s̲s̲ ̲M̲e̲t̲h̲o̲d̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

         Performs all input and output to the VD. Performs conversion
         between addressing on the VDU (line and field number)
         and internal addressing (field type, field replica).

         M̲e̲m̲o̲r̲y̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

         Dynamic allocation and deallocation of memory areas
         used as i/o buffers etc.

         "P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲"̲

         Proedures for syntactic and semantic valication of
         input data from the VDU and procedures for conversion
         to displayed format for output data to be shown on
         the VDU.





4.2.3.2.2    V̲D̲U̲ ̲F̲o̲r̲m̲a̲t̲ ̲a̲n̲d̲ ̲A̲s̲s̲o̲c̲i̲a̲t̲e̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲D̲a̲t̲a̲

         The complicated VDIA operations (data input and output)
         require that a f̲o̲r̲m̲a̲t̲ has been specified to VDIA by
         an output format commnd. A format is the combination
         of a scheme of data on the VDU, a scheme of corresponding
         data on disk or in memory, and the transformation between
         the two schemes. A format is represented by three pieces
         of control data:

         F̲o̲r̲m̲a̲t̲ ̲H̲a̲n̲d̲l̲e̲r̲'̲s̲ ̲F̲o̲r̲m̲a̲t̲
         Used by the format handler to generate the fixed part
         of the VDU picture and to define and control the active
         input-output fields.

         V̲D̲I̲A̲ ̲F̲o̲r̲m̲a̲t̲ ̲M̲o̲d̲e̲l̲

         Used by the VDU Access Method module in VDIA in order
         to identify the data types for the field on the VDU
         and to generate and maintain error codes on the picture.

         V̲D̲I̲A̲ ̲F̲o̲r̲m̲a̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲P̲r̲o̲g̲r̲a̲m̲m̲e̲

         Used by the Format Control Module in VDIA in order
         to control the execution of the operation. The control
         programme is written in a special macrocode. It is
         interpreted by the format control module. Each instruction
         is convented into a call of a procedure using the parametres
         specified in the instruction.



4.2.3.2.3    F̲o̲r̲m̲a̲t̲ ̲M̲o̲d̲e̲l̲ ̲a̲n̲d̲ ̲V̲D̲U̲ ̲F̲i̲e̲l̲d̲ ̲T̲y̲p̲e̲

         The VDIA Format Models are generated byuse of the offline
         Format Model Generator Utility. This utility programme
         takes a text file (as preponed by use of the Text Editor
         Utility (generating the Format Handler's Format). In
         fact, exactly the same input text file is used for
         both generato utilities. This file is called the F̲o̲r̲m̲a̲t̲
         ̲S̲o̲u̲r̲c̲e̲ ̲F̲i̲l̲e̲. This file contains various types of graphic
         information (fixed texts, size and position of fields,
         video attributes and input/output attributes for the
         fields) and beside that a symbolic name efining the
         V̲D̲U̲ ̲F̲i̲e̲l̲d̲ ̲T̲y̲p̲e̲ for each field where VDIA can perform
         input or output.




         For each VDU Field Type the fields having this type
         are numbered 1,2,.... according to their order of appearance
         on the VDU picture. This F̲i̲e̲l̲d̲ ̲R̲e̲p̲l̲i̲c̲a̲ ̲N̲u̲m̲b̲e̲r̲ together
         with the VD Field Type uniquely determines the field.
         The pair of integers,

         VDU Field Type, Replica

         are used internally in VDIA as field identification.
         Line number and field number inside the line are used
         solely by the VDU Access and Error Message Handlng
         Modules.



4.2.3.2.4    F̲o̲r̲m̲a̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲P̲r̲o̲g̲r̲a̲m̲m̲e̲ ̲(̲F̲C̲P̲)̲

         To a VDU format belongs a separate FCP for each VDIA
         operation which can be executed using the format (OUTPUT
         DATA, OUTPUT FORMAT, INPUT DATA). The FCP is prepared
         by use of a FCP Conventor tility. The input to the
         utility is a text file where the FCP instructions are
         written in symbolic form (ref. appendix        ).

         The main elements in the FCP programming language are
         the following:

         A̲c̲c̲e̲s̲s̲ ̲t̲o̲ ̲C̲I̲F̲ ̲f̲i̲e̲l̲d̲s̲ ̲o̲r̲ ̲f̲i̲e̲l̲d̲s̲ ̲i̲n̲ ̲m̲e̲m̲o̲r̲y̲ ̲r̲e̲c̲o̲r̲s̲.

         This is done by use of standard variables in the language.
         When a CIF field variable is referenced the necessary
         i/o is automatically executed. There is a fixed number
         of memory records references by symbolic names M1,
         M2,...... in the FCP. Soe of these records may belong
         to "UFCO" i.e. the address of the memory record is
         transferred to VDIA in the operation buffer from UFCO.

         I̲n̲p̲u̲t̲ ̲f̲r̲o̲m̲ ̲V̲D̲U̲ ̲a̲n̲d̲ ̲s̲y̲n̲t̲a̲c̲t̲i̲c̲ ̲v̲a̲l̲i̲d̲a̲t̲i̲o̲n̲

         The FCP allows bundle input of several fields of the
         same type to beprocessed in one batch by the syntax
         validation procedure. The syntax procedure calls the
         procedure STORE FIELD in order to store the converted
         values in CIF




4.2.3.2.5    V̲D̲I̲A̲ ̲D̲a̲t̲a̲ ̲L̲a̲y̲o̲u̲t̲

         For efficient reasons, VDIA data are separated into
         two sections:

         - VDIA ̲VAR         is he VDIA coroutine record and
                            contains the actual data. It may
                            be located anywhere in the process.

         - VDIA ̲POINTERS    is a set of pointers to subrecords
                            of VDIA ̲VAR. Its purpose is to facilitate
                            fast addressing of data in VDIA
                            ̲VAR. It must be locatedjust after
                            COMONVAR in the process.

         As VDIA ̲POINTERS is located at a f̲i̲x̲e̲d̲ address, the
         addresses of the separate pointers can be defined as
         constants in the VDIA code, even if VDIA is not linked
         to the data modules of the process.

         Definitions f types, constant addresses and variables
         are scetched in the following. As an example, the address
         of FCP interpreter data is loaded into R5 by the swell
         statement:

             INTEGER = R5, P ̲FCPI














































                    FIGURE 4.2.3.2.5-1
                     VDIA ̲DATA LAYOUT


Definition of VDIA Pointer Record located just after COMONVAR:

TYPE

   VDIA ̲PT = RECORD

             DISPLAY                            LOCATION
                                                OF ISPLAY
                                                PROCEDURE
                                                ENTRY
             SYNTAX                             LOCATION
                                                OF SYNTAX
                                                PROCEDURE
                                                ENTRY
             SEMAN                              LOCATION
                                                OF SEMATICS
                                                PROCEDURE
                                                ENTRY
             S2                                 UFCO ACTIVATION
                                                SEM
             S3                                 VDIA ACTIVATION
                                                SEM

             INT ̲ERR                            LOCATION
                                                OF TEP
                                                ̲INT ̲ ERROR
                                                ROUTINE
             Q ̲ERR:       INTEGER;              LOCATION
                                                OF QUEUE
                                                ERROR
                                                ROUTINE

             STACK:       STACK ̲CONTROL ̲BLOCK;  VDIA STACK
                                                CONTROL

             GLOBAL                             GLOBAL
                                                VDIA DATA
             MAIN                               MAIN LOOP
             CAM                                CIF ACCESS
             FSAM                               FSAM DESCRIPTOR
             MEMREC                             MEMORY
                                                REC. DESOR
             MEM ̲MANAG                          MEMORY
                                                MANAGEMENT
             FCPI                               FCP INTERPRETER
             MODEL                              FORAT
                                                MODEL
             ERROR ̲LIST                         ERROR
                                                LIST
             FORMAT  ̲IF                         VDU I/C
                                                INFO

                                                POINTERS
                                                TO VARIABLES
                                                IN FCO
             ITEM                               ITEM RECORD
             VIEW ̲ATTR:   INTEGER;              VIEW ATTRIBUTES

             TEST ̲SAVE:   INTEGER;              FOR TEST
                                                PURPOSES

   END;



V̲D̲I̲A̲ ̲P̲R̲O̲C̲E̲S̲S̲ ̲D̲A̲T̲A̲ ̲A̲R̲E̲A̲         POINTED TO BY VDIA ̲POINTERS:

VAR

   VDIA ̲VAR:RECORD             VDIA VARIABLES

           GLOBAL:           GLOBAL ̲DATA;                        POINTED
                                                                 TO
                                                                 BY
                                                                 P
                                                                 ̲GLOBAL

           MAIN:             MAIN ̲LOOP ̲DATA;
           POINTED TO BY P ̲MAIN

           CAM:              CAM;
           POINTED TO BY P ̲CAM

           CAM ̲FIELD ̲ARRAY:  ARRAY (1..MAX ̲NO ̲OF ̲MF ̲FIELDS)
                             OF FIELD;
           POINTED TO BY     CAM. FIELDS   ARRAY CONTROL BLOCK

           FSAM:             ARRAY ̲CONTROL ̲BLOCK;
           POITED TO BY P ̲FSAM

           SEQUENCES:        ARRAY (1..VDIA ̲NO ̲OF ̲SEQ)
                             OF SEQ ̲DESCR;
           POINTED TO BY FSAM ARRAY CONTROL BLOCK

           MEMREC:           ARRAY ̲CONTROL ̲BLOCK;
           POINTED TO BY P ̲MEMREC

           MEM ̲ARRAY:        ARRAY (0..VDIA ̲NO ̲OF ̲MEM ̲RECS)
                             OF MEM ̲REC;

           MEM ̲MANAG:        MMA;
           POINED TO BY P ̲MMA

           SLICE ̲ARRAY:      ARRAY (1..VDIA ̲NO ̲OF ̲SLICES)
                             OF SLICE ̲DESCRIPTOR;

           FCPI:             FCPI ̲REC;
           POINTED TO BY P ̲FCPI

           BUNDLE ̲ARRAY:     ARRAY (0..VDIA ̲NO ̲OF ̲BUNDLES)
                             OF BUNDLE ̲DESCR;

           STORAGE ̲TYPES:    ARRAY (0..VDIA ̲NO ̲OF ̲STORAGE ̲TYPES)
                             OF STOAGE ̲TYPE;


          MODEL:         MODEL ̲REC;
          POINTED TO BY P ̲MODEL

          ERROR ̲LIST:    ERR ̲REC;
          POINTED TO BY P ̲EER ̲LIST

          FORMAT ̲IF:     FORMAT ̲IF ̲REC;
          POINTED TO BY P ̲FORMAT ̲IF;

          VDU ̲BUFFER:    ARRAY (1..VDIA ̲VDU ̲UF ̲SIZE) OF INTEGER;
          MAINTAINED BY VDU I/O

          STACK:         ARRAY (1..VDIA ̲STACK ̲SIZE) OF INTEGER;
          CONTROLLED BY STACK CONTROL BLOCK, POINTED TO BY P
          ̲STACK

          WORKSP:        ARRAY (1..VDIA ̲WORK SIZE) OF INTEGER;
          MAINTAINED BY MEMORY MANAGEMENT

    END;        DIA ̲VAR




DEFINITIONS OF CONSTANT ADDRESSES FOR VDIA POINTERS

THE TYPE   VDIA ̲PT   IS DEFINED IN THE TEP PREFIX:

CONST
  T ̲START          =   ADDR ̲OF ̲COMONVAR + COMONVARSIZE;

  P ̲DISPLAY        =   ADDRESS   (PT ̲START  VDIA ̲PT.DISPLAY);
  P ̲SYNTAX         =   ADDRESS   (PT ̲START  VDIA ̲PT.SYNTAX);
  P ̲SEMAN          =   ADDRESS   (PT ̲START  VDIA ̲PT.SEMAN);
  P ̲S2             =   ADDRESS   (PT ̲START  VDIA ̲PT.S2);
  P ̲S3             =   ADDRESS   (PT ̲TART  VDIA ̲PT.S3);
  P ̲TEP ̲INT ̲ERR    =   ADDRESS   (PT ̲START  VDIA ̲PT.INT
                                 ̲ERR);
  P ̲Q ̲ERR          =   ADDRESS   (PT ̲START  VDIA ̲PT.Q
                                 ̲ERR);

  P ̲STACK          =   ADDRESS   (PT ̲START  VDIA ̲PT.STACK);
  P ̲GLOBAL         =   ADDRESS   (PT ̲START  VDIA ̲PT.GLOBAL);
  P ̲MAIN           =   ADDRESS   (PT ̲START  VDIA ̲T.MAIN);
  P ̲CAM            =   ADDRESS   (PT ̲START  VDIA ̲PT.CAM);
  P ̲FSAM           =   ADDRESS   (PT ̲START  VDIA ̲PT.FSAM);
  P ̲MEMREC         =   ADDRESS   (PT ̲START  VDIA ̲PT.MEMREC);
  P ̲MMA            =   ADDRESS   (PT ̲START  VDIA ̲PT.MEM
                                 ̲MANAG);
  P ̲FCPI           =   ADDRESS   (PT ̲START  VDIA ̲PT.FCPI);
  P ̲MODEL          =   ADRESS    (PT ̲START  VDIA ̲PT.MODEL);
  P ̲ERR ̲LIST       =   ADDRESS   (PT ̲START  VDIA ̲PT.ERROR
                                 ̲LIST);
  P ̲FORMAT ̲IF      =   ADDRESS   (PT ̲START  VDIA ̲PT.FORMAT
                                 ̲IF);
  
  P ̲ITEM           =   ADDRESS   (PT ̲START  VDIA ̲PT.ITEM);
  P ̲VIEW ̲ATTR      =   ADDRESS   (PT ̲START  VDIA ̲PT.VIEW
                                 ̲ATTR);

  P ̲TESTSAVE       =   ADDRESS   (PT ̲START  VDIA ̲PT.TEST
                                 ̲SAVE);




         I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲V̲D̲I̲A̲ ̲d̲a̲t̲a̲

         Initialization of data is stated in the VDIA ̲DAT.S
         module. Every pointer is initialized e.g. the pointer
         to data for main loop:

             VDIA ̲POINTERS.MAIN= ADDRESS (VDIA ̲VAR.MAIN);

         Main loop data now can be accessed by use of the pointer.
         An example of data access to data could be:

             P ̲MAIN  INTEGER = R5;

         R5 now contains the start address for main loop data.

             R5  MAIN ̲LOOP ̲DATA. CURRENT ̲COMMAD = R0;

         R0 now contains an information from main loop data.

         Further initialization is performed, please refer the
         source list VDIA ̲DAT.S



4.2.3.3  D̲a̲t̲a̲ ̲F̲l̲o̲w̲,̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         In order to understand the interfaces for VDIA some
         knowledge of he internal structure of VDIA - as given
         below - is needed.

         Format Control, Format Model and Format are data tables.
         Format Control is a sort of programme which is interpreted
         by VDIA. For complicated VDIA operations (e.g. input
         and output) mostlogic is actually found in the Format
         Control Programme, which is loaded early in the operation.


         Interfaces are shown by bold lines af follows:

         1)  Semaphore Operation interface between Requesting
             Coroutine and VDIA.

         2)  I/O Interface to fields on the VDU. The interface
             goe via the Format Handler and uses the Format
             Model as well as the Format.

         3)  I/O Interface to internal data storage.

         4)  The semaphore operation contains pointers to data
             records. These pointers are accessible from Format
             Control. In many cases te actual record structure
             is only known by the Requeste and Format Control
             and not by the VDIA programme who merely acts as
             a mailman.

         5)  Call of display, syntax and semantics procedures
             are controlled by Format Control.

         6)  The display, syntax nd semantics procedures use
             various service routines in VDIA - in particular
             for storing data in location determined by Format
             control.

         7)  The procedures may directly access data in some
             of the memory records without involving Format
             Control (theaddress of the record is given as parametre
             in the call of the procedure). This is used e.g.
             by the semantic validation of "user" formats.

         8)  The procedures are after compilation linked with
             the requestor code (and not with VDIA). The procedures
             ay therefore directly access data in the requestor.












































                     FIGURE 4.2.3.3-1
                VDIA AND ITS SURROUNDINGS







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



4.2.3.7.1    U̲F̲C̲O̲ ̲V̲D̲I̲A̲ ̲U̲F̲C̲O̲ ̲I̲N̲T̲E̲R̲F̲A̲C̲E̲

         S̲E̲M̲A̲P̲H̲O̲R̲E̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲I̲N̲T̲E̲R̲F̲A̲C̲E̲

         In its idle state VDIA waits for the activation semaphore
         S3. When a semaphore peration is received, VDIA executes
         the command specified. When command execution is completed
         VDIA updates the operation:

             Sender Coroutine 1d:  Changed to VDIA id
             PARA 1:               Completion code
             PARA 2, PARA 3        Pointer to VDIA rsult data

         and signals the operation to the requestor activation
         semaphore S2. Upon this VDIA returns to the idle state
         waiting for the next operation to be send to S3.

         Execution of commands involving i/o to the VDU are
         relative time consuming ad VDIA will spend most of
         the time waiting for completion of VDU i/o. If the
         requestor sends a further operation to the semaphore
         S3 (e.g. while the execution of the previous operation
         is in progress), VDIA kills the current command execution
         as fat as posible. The (old) operation is returned
         to semaphore S2 with an "error" completion code and
         VDIA continues immediately executing the new command.
         The VDU is left with undefined data so the intervening
         operation should contain a command resetting the VDU
         (like "select menu" or "clear VDU")

         Note, that all operations send to semaphore S3 are
         returned to semaphore S2 - and in the same sequence
         as they are received.

         The figure on next page lists the commands recognized
         by VDIA:









         O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲T̲O̲ ̲V̲D̲I̲A̲          A̲N̲S̲W̲E̲R̲ ̲F̲R̲O̲M̲ ̲V̲D̲I̲A̲


C̲O̲M̲M̲N̲D̲ ̲ ̲ ̲ ̲ ̲ ̲P̲A̲R̲A̲ ̲1̲ ̲ ̲ ̲ ̲P̲A̲R̲A̲ ̲2̲ ̲ ̲ ̲P̲A̲R̲A̲ ̲3̲ ̲ ̲ ̲P̲A̲R̲A̲ ̲1̲ ̲ ̲ ̲ ̲ ̲ ̲P̲A̲R̲A̲ ̲2̲ ̲ ̲P̲A̲R̲A̲
 ̲3̲
1.
START ̲VDIA % Format % lmit   % FF ̲     Completion
 ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲         1d       Area      Handle      Code
2.
SUSPEND                                Completion
                                       Code
CLOSE ̲DOWN                              -"-
DISPLAY ̲MENU        %Format
           1d                           -"-
CLEAR ̲VDU                               -"-
C̲A̲N̲E̲L̲ ̲1̲0̲ ̲ ̲                              -"-
3.
OUTPUT ̲FORM.        %Format  % M1      % M2         -"-    % M3  %
                                                                 M4
           1d
O ̲FORMAT ̲
AND ̲DATA   %format  % M1     % M2       -"-        % M3    % M4
 ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲  1d
4.
INPUT ̲DATA          % M1     % M2       -"-        % M3    % M4
APPEND              % M1                -"-
(SUSPEND)           % M1     % M2       -"-        % M3    % M4
COPY ̲CIF            COPY
                    TYE                 -"-

L ̲INSERT   Line              %Cursor
           Count             Record     -"-
L ̲DELETE   Line              %Cursor
           Count             Record     -"-

INSERT ̲
GROUP                         -"-       -"-
DELETE ̲
GROUP                         -"-       -"-

ADAI P3 ̲
INPUT               % M1     % M2       -"-        % M3    % M4
ADAI P3    %Format
OUTPUT     1d       % M1     % M2       -"-        % M3    % M4




         The symbols M1, M2, M3 and M4 denated memory records.
         The records M1 and M2 are allocated by the Requestor
         before the command is send while the records M3 and
         M4 are allocated by he Format Control Programme during
         command execution. The VDIA programme does n̲o̲t̲ access
         the data in these records but acts merely as a mailman
         between Requestor and Format Control by copying the
         addresses from and to the semaphore operation. The
         sructure of the memory records is therefore a interface
         between Requestor and Format Control and will in fact
         not be the same for all formats.

         The VDIA Programme has 3 basic operational states:

         A̲.̲ ̲V̲D̲U̲ ̲a̲n̲d̲ ̲O̲p̲e̲r̲a̲t̲o̲r̲ ̲U̲n̲d̲e̲f̲i̲n̲e̲d̲

         The initial state o VDIA. only the START VDIA command
         is meaningful. VDIA is returned to this state by the
         CLOSE DOWN command.

         B̲.̲ ̲V̲D̲U̲ ̲a̲n̲d̲ ̲O̲p̲e̲r̲a̲t̲o̲r̲ ̲D̲e̲f̲i̲n̲e̲d̲ ̲-̲ ̲N̲o̲ ̲A̲c̲t̲i̲v̲e̲ ̲F̲o̲r̲m̲a̲t̲

         The idle state for a terminal in use. The following
         internal variables in VDIA are define 

             IFCB for Format Handler   (VDU split identification)
             Logical Terminal Number
             Classification
             Special Handling

         The commands of categories (2) and (3) are meaningful
         in this state. The state is reached by any of the commands:

         START ̲VDIA DISPLAY ̲MENU, CLEAR ̲VDU, CANCEL ̲10.

         Also this state is reached if VDIA is interrupted during
         command execution by an extra operation send to the
         activation semaphore.

         C̲.̲ ̲A̲c̲t̲i̲v̲e̲ ̲F̲o̲r̲m̲a̲t̲

         This state is achieved by any of the commands in category(3)
         (i.e. OUTPUT FORMAT or OUTPUT FORMAT AND DATA). In
         this state all commands of categories (2), (3) and
         (4) are meaningful.


         C̲o̲m̲m̲a̲n̲d̲s̲

         S̲T̲A̲R̲T̲ ̲V̲D̲I̲A̲:    VDIA state is changed from A to B by
                        means of the parametres in the operation,
                        and the mnu specified by Format 1d is
                        displayed. Used by operator log-in.

         C̲L̲O̲S̲E̲D̲O̲W̲N̲      Return VDIA to state A. Used by operator
                        log-out.

         D̲I̲S̲P̲L̲A̲Y̲ ̲M̲E̲N̲U̲   The menu specified by Format id is displayed.
                        VDIA gets state B.

         C̲L̲E̲A̲R̲ ̲V̲D̲U̲      The VDU format area is cleare. VDIA
                        gets state B.

         C̲A̲N̲C̲E̲L̲ ̲I̲1̲0̲:    VDIA gets state B without operations
                        on the VDU. Used for fast cancel of
                        VDU input/output.

         O̲U̲T̲P̲U̲T̲ ̲F̲O̲R̲M̲A̲T̲: Outputs the format specified by Format
                        Id and executes the associated Format
                        Control Programme for OutputFormat.
                        VDIA gets state C Usually the neat operation
                        will be an input data.

         OUTPUT FORMAT
         A̲N̲D̲ ̲D̲A̲T̲A̲:      Outputs the format specified by Format
                        Id and executes the associated Format
                        Control Programme for Output Data. VDIA
                        gets state C.

         I̲N̲P̲U̲T̲-̲D̲A̲T̲A̲:    oads the Format Control Programme (FCP)
                        for Input Data belonging to the current
                        format and executes the FCP. VDIA remains
                        in state C.

         S̲U̲S̲P̲E̲N̲D̲:       Same function as Input Data, just another
                        function code.




         L̲I̲N̲E̲-̲I̲N̲S̲E̲R̲T̲:   The cursor must be placed in a repeatable
                        line. The command inserts the specified
                        number of line copies with empty input
                        fields after the cursor line. An error
                        compleion code is returned in the semaphore
                        operation if the insertion is not possible.
                        VDIA remains in state C after the insertion
                        has been performed.

         L̲I̲N̲E̲ ̲D̲E̲L̲E̲T̲E̲:   The cursor must be placed in a repeatable
                        line. The specified number of lines
                        starting t cursor line are deleted.
                        The command can not delete all lines
                        of the type pointed to. An error completion
                        code is returned in the semaphore operation
                        of the deletion is not possible. VDIA
                        remains in state C after the insertion
                        has been performed.


         C̲O̲M̲M̲A̲N̲D̲-̲S̲U̲F̲F̲I̲X̲:

         The command field of the semaphore operation sent to
         VDIA in S3 is structured into two subfields:

                     - Command Code

                     - Command Suffix



         The command sufix describes special actions to be performed
         by VDIA in connection with execution of the command,
         such as cleaning up after a previous transaction.

         The porrible values of command suffix are defined in
         the type VDIA ̲COMMAND ̲SUFFIX in TEP prefix

When the semaphore operation is returned from VDIA to the semaphore
 S2, the command suffix field will be zero.





         T̲Y̲P̲E̲:

         VDIA ̲COMMAND ̲SUFFIX=

             (CONTINUE ̲TRANS,             new command within
                                          same transaction
             NEW ̲TRANS ̲NO ̲CIF,            first ommand in a
                                          new transaction without
                                          CIF access.
             NEW ̲TRANS ̲CIF);              first command in a
                                          new transaction with
                                          CIF access.



4.2.3.7.2    V̲D̲I̲A̲ ̲U̲S̲P̲R̲ ̲V̲D̲I̲A̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The interface between VDIA and USPR is mainly a location
         which is stored in VDIA pointers.The locations should
         be stored during start up of the process. VDIA activates
         the USPR procedure by using the ENTER instruction.

         When the ENTER instruction has been performed VDIA
         will have set up data, as described below, in the registers.

         D̲I̲S̲L̲A̲Y̲

         This module consists of a main procedure, which contains
         a case for switching to a set of different display
         procedures. Each procedure is able to convert data
         from internal representation to a format which can
         be displayed on the VDU.

         The rgister convertions are:

         R0  C   K       Display procedure reference (case label)
         R1  C   K       VDU field type
         R3  C           Data length in bytes
                 R       Displayed data length in bytes
         R4  C   K       Pointer to ata, which shall be converted
         R5  C   K       Pointer to output data
         R6  C           Link



         S̲Y̲N̲T̲A̲X̲

         This module consists of a main procedure, which contains
         a case for switching to a set of different syntax procedures.
         Each procedure is able to validate one kind of inpu
         from the VDU and store in the internal data format.
         

         The register conventions are:

         R0  C                              Syntax procedure
                                            reference (case
                                            label)
                       R                    Result:   OK, NOT
                                            ̲ON
         R1  C         K                    Pointer to of field
                                            bundle
         R4  C         K                    Pointer to memory
                                            record 1 M.1
                                            (Account)
R5       C   K         Pointer to memory record 3 M.3
                                            (Semantic record)
         R6  C         -                    Link

         a field bundle is a record with the layout depicted
         below.

         FIELD ̲BUNDLE = RECORD

             F ̲TYPE                         VDU FIELD TYPE
             REPLICA                        REPLICA WITHIN FIELD
                                            TYPE OF FIRST FIELD
                                            IN BNDLE
             COUNT                          NUMBER OF FIELDS
                                            IN BUNDLE CONTAINING
                                            DATA
             F ̲SIZE:   INTEGER;             VDU FIELD SIZE.
                                            FOR
                                            VARIABLE FIELDS
                                            IT
                                            IS MAX SIZE
             FIELDS    ARRAY(FIELD ̲ONE  
                       FIELD ̲ONE) OF
                       INTEGER;             POINTERS TO THE
                                            FIELDS. THERE IS
                                            A 
                                            POINTER T EACH 
                                            FIELD IN THE BUNDLE

         END;



         S̲E̲M̲A̲N̲T̲I̲C̲

         This module consists of a main procedure, which contains
         a case for switching to a set of different semantic
         procedures. Each procedure is able to perform a semantic
         vaidation  of a whole VDU format.

         The register conventions are:

         R0  C         Format number (From last 3 digits in
                       format name)
                 R     Result: OK, NOT ̲OK
         R4  C   -     Pointer to memory record 1 (M.1)
         R5  C   -     Pointer to memory record 3 (M.3)
         R6  C   -     Link



4.2.3.4.1   V̲D̲I̲A̲ ̲M̲A̲I̲N̲

        The VDIA MAIN module contains the main loop for the
        VDIA coroutine, with the main waiting point for communication
        with UFCO. Furthermore the module contains a procdure
        with waiting point for VDU I/O completion.



4.2.3.4.1.1 V̲D̲I̲A̲ ̲M̲a̲i̲n̲ ̲L̲o̲o̲p̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲




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

        VDIA Main Loop contains the initial entry point for
        the VDIA coroutine.

        When VDIA Main Loop has received an oeration from UFCO
        it will initiate the appropriate function.

        If the command ca      read/write to the VDU, Main
        Loop will load the FCP associated to format, which
        is given in the operation and the command. Then it
        will start interpreting of the FP.




         At other commands it will start initiate function in
         other modules of VDIA. Depending on completion codes
         from the interpretation of the FCP or execution of
         functions in other VDA modules the Main Loop will send
         answer to UFCO.

         Execution of commands which are extensions to VDIA
         Main Loop, are called with the following conventions:

         R0  -   R             Completion code (internal VDIA
                               value)
         R1  C   -             Parametre 1 from operation
         R2  C   R   Parametre 2 from operation
         R3  C   R             Parametre 3 from operation
         R5  C   -             Command code
         R6  C   -             Link



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



         PROCEDURE N̲E̲W̲ ̲S̲T̲A̲T̲E̲

         (R2     C    K    COMMAND COD
          R3     C         VDIA STATE
                      R    NEW STATE   CR -1 FOR ILLEGAL
          R6)    C         LINK

         COMPUTES NEW STATE FROM OLD STATE AND COMMAND CODE.
         IF THE COMMAND IS ILLEGAL A STATE OF  -1 IS RETURNED.


         PROCEDURE E̲R̲R̲O̲R̲ ̲S̲T̲A̲T̲E̲

         (R0          R    COMPLETION CODE FOR ANSWER TO FCO
          1      C         COMPLETION CODE (INTERNAL VDIA)
          R2     C    K    COMMAND CODE
          R3     C         VDIA STATE
                      R    NEW STATE
          R6)    C         LINK




         COMPUTES  THE STATE TO BE USED AFTER COMMAND TERMINATED
         IN ERROR.
         CALLS RESET FUNCTIONS IF REQUIRED.
         COMPUTES THE ERROR CODE TO BE USED IN THE ANSWER TO
         FCO.


         PROCEDURE M̲O̲V̲E̲ ̲O̲R̲M̲A̲T̲ ̲I̲D̲

         (R1     C    K    %FORMAT ID
          R6)    C         LINK

         MOVES FORMAT ID TO GLOBAL DATA. EXTRACTS THE FORMAT
         NUMBER FROM THE LAST THREE DIGITS IN THE FORMAT ID
         AND STORES THE VALUE IN GLOBAL DATA.


         PROCEDURE R̲E̲A̲D̲ ̲F̲O̲R̲M̲A̲T̲

         (R1     C         BYTE COUNT
          R2     C    K    BYTE OFFET IN FILE (15: 0)
          R3     C    K    BYTE OFFSET IN FILE (31:16)
          R4     C    K    % DESTINATION
          R6)    C         LINK

         READS A SPECIFIED PART OF THE VDIA CONTROL FILE WHICH
         CONTAINS MODELS AND FCPS FOR ALL USER FORMATS. BYTE
         COUNT (R1) SPECIFIES THE AMOUT TO BE INPUT, BYT OFFSET
         (R23) SPECIFY START POSITION IN FILE, WHILE DESTINATION
         (R4) IS A WORD ADDRESS.


         PROCEDURE I̲N̲S̲T̲A̲L̲L̲ ̲R̲E̲C̲ ̲P̲A̲R̲T̲

         (R2  C       WANTED PART: INS ̲MOD ̲OUT: MODEL AND FCP
                      ̲OUT
                                  INS ̲IN     : FCP-IN
          R4      R   % MEMORY BUFFER
          R6  C       LINK

         RELEASES MEMORY BUFFER(S) USED FOR THE MENTIONED PURPOSE.
         RESERVES A MEMORY BUF BY CALL OF "GET ̲ALL ̲MEMORY" AND
         INPUTS THE REQUESTED PART OF FCP ̲FILE RECORD (FOR CURRENT
         FORMAT).
         NOE: THE VARIABLES IN MAIN ̲LOOP ̲DATA:
               MODEL ̲START, FCP ̲START, FCP ̲SIZE ARE NOT UPDATED.
                                                    ***




         PROCEDURE U̲P̲D̲A̲T̲E̲ ̲I̲T̲E̲M̲S̲

         (R6) C       LINK

         "PRIMARY ̲ITEM" AND "SECONDARY ̲ITEM" ARE MOVED FROM
         FCO DATA TO VDIA GLOBAL VARIABLES.


         PROCEDURE D̲E̲F̲I̲N̲E̲ ̲M̲1̲ ̲M̲2̲

         (R2  C   K   ADDRESS OF MEMORYRECORD 1
          R3  C   K   ADDRESS OF MEMORY RECORD 2
          R6) C       LINK

         CALLS "DEFINE ̲MEMREC" IN ORDER TO DEFINE THAT MEMORY
         RECORDS M1 M2 HAVE THE ADDRESSES SPECIFIED.


         PROCEDURE G̲E̲T̲ ̲M̲3̲ ̲M̲4̲

         (R2      R   ADDRESS OF MEMORY RECORD M3
          R3      R   ADDRESS OF MEMORY RECOD M4
          R6) C       LINK

         CALLS THE FUNCTION "GET ̲MEMREC ̲ATTR" IN ORDER TO FIND
         THE ADDRESSES OF MEMORY RECORDS M3 M4.



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

   TYPE MAIN ̲LOOP ̲DATA = RECORD

        VDIA CONTROL FILE DESCRIPTOR:

        CONTROL ̲FDCB                   FDCB INDEX FOR
                                       FILE
        NO ̲OF ̲RECORDS                  NO OF RECORDS IN
                                       FILE
        MODEL ̲MX                       MAX WORD SIZE OF
                                       MODEL
        FCP ̲OUT ̲MAX                    MAX WORD SIZE OF
                                       FCP ̲OUT
        FCP ̲IN ̲MAX                     MAX WORD SIZE OF
                                       FCP ̲IN
        CTRL ̲REC ̲SIZE:     INTEGER     RECORD SIZE IN
                                       BYTES

        MODEL AND FCP CONTROL INFO

        MODEL ̲START                    START ADDR FOR
                                       MODEL
        FCP ̲START                      START ADDR FOR
                                       FCP                                                                A
                                                                                                          ZERO
                                                                                                          INDICATES
                                                                                                          THAT
                                                                                                          NO
                                       BUFFER IS ALLOCATED.
        FCP ̲SIZE:          INTEGER     SIZE IN WORDS ON
                                       FCP BUFFER

        COMMAND AND STATE

        CURRENT ̲COMMAND                CURRENT COMMAND
                                       CODE
        PREVIOUS ̲COMMAND               PREVIOUS COMMAND
                                       CODE
        COMMAND ̲SUFFIX                 CURRENT COMMAND
                                       SUFFIX

   CIF ̲ACCESS                          COMMAND USES CIF
                                       ACCESS

        CURRENT ̲OPERATION              POINTERS SEMAPHORE
                                                                                              NEXT
                                                                                              ̲OPERATION:  INTEGER                   OPERATIONS
                                                                                                                                    RECEIVED
                                                                                                                                    FROM
                                                                                                                                    FCO.

                                       LONG EXIT:
        LONG ̲EXIT ̲RETURN               RETURN ADDRESS
        LONG ̲EXIT ̲STACKPT              STACK POINTER

        VDIA ̲STATE:        INTEGER     STAT

   END

   P ̲MAIN POINTS TO A RECORD OF THIS TYPE





4.2.3.4.1.2 S̲t̲a̲c̲k̲ ̲E̲r̲r̲o̲r̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

    CALLED IN THE ERROR EXIT FOR STACK OVERFLOW AS FOLLOWS:

    SWITCH CSP ( (P ̲STACK =  R0)  INTEGER, (SIZE (WORK)
    ) =  R7)
         ERROR ̲OK TO
         ERROR: STACK ̲ERROR (R6)

    END

    THE PROCEDURE CALLS TEP ̲INT ̲ERROR. THE REGISTERS MUST
    CORRESPOND TO THE ORDER SEQUENCE ABOVE.



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

         C̲a̲l̲l̲ ̲sp̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  STACK ̲ERROR
         b)  STACK ̲ERROR (R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲c̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

         R6   LINK    destroyed

             (R0  see description above)
             (R7  see description above)

         R̲e̲t̲u̲r̲n̲ ̲r̲e̲g̲i̲s̲t̲e̲r̲s̲


         F̲a̲t̲a̲l̲ ̲e̲r̲r̲o̲r̲s̲

         Stack overflow  (always)


4.2.3.4.1.2.3 M̲o̲d̲u̲l̲e̲ ̲c̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         None.



4.2.3.4.1.3 L̲o̲n̲g̲ ̲E̲x̲i̲t̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲


         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 JUMPS BACK TO MAIN LOOP WITH SPECIFIED
         COMPLETION CODE. THE LINK REGISTER IS DUMMY AS THE
         PROCEDURE ILL NEVER RETURN TO CALLER.

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

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

         a)  LONG ̲EXIT
         b)  LONG ̲EXIT (R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲c̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

         R0      completion code (kept)
         R6      Link            (destroyed)

         R̲e̲t̲u̲r̲n̲ ̲r̲e̲g̲i̲s̲t̲e̲r̲s̲

         R2      Para 2 in answer operation
         R3      Para  in answer operation

         F̲a̲t̲a̲l̲ ̲e̲r̲r̲o̲r̲s̲

         None.



4.2.3.4.1.4 W̲a̲i̲t̲ ̲V̲d̲u̲ ̲I̲ ̲O̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲


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

         CALLS ASSOCIATE IN ORDER TO ASSOCIATE THE OPERATION
         TO THE VDIA ACTIVATION SEMAPHORE S3 - AND WAITS FOR
         THE SEMAPHORE.

         IF THE SAMEOPERATION IS RECEIVED BACK ON WAIT THE FOLLOWING
         IS DONE:
         WAIT ̲SYSTEM ̲CALL   IN ORDER TO GET RESULT OF FORMAT
         ̲HANDLER I-O
         IF RESULT = OK THE RETURN TO CALLER 
         ELSE  LONG ̲EXIT.

         IF ANOTHER OPERATION IS RECEIVED IN  S3 THE RECEIVED
         OPERATION POINER IS STORED IN NEXT ̲OPERATION; THE CURRENT
         FORMAT ̲HANDLER OPERATION IS CANCELLED, AND A LONG ̲EXIT
         IS MADE WITH COMPLETION CODE = COMMAND ̲INTERRUPTION.


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

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

         a)  WAIT ̲VDU ̲I ̲O (RET ̲SYS ̲0,
                           RET ̲SYS ̲1,
                           RET ̲SYS ̲2,
                           RET ̲SYS ̲3,
                           RET ̲SYS ̲4,
                           SEM ̲PTR: INTEGER)
         b)  WAIT ̲VDU ̲I ̲O(R0, R1, R2, R3, R4, R5, R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲c̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

         (R0   -     R       RETURN FROM WAIT ̲SYSTEM ̲CALL
          R1   -     R       RETURN FROM WAIT ̲SYSTEM ̲CALL
          R2   -     R       RETURN FROM WAIT ̲SYSTEM ̲CLL
          R3   -     R       RETURN FROM WAIT ̲SYSTEM ̲CALL
          R4   -     R       RETURN FROM WAIT ̲SYSTEM ̲CALL
          R5   C     K       POINTER TO SEMAPHORE OPERATION
          R6)  C     -       LINK

         F̲a̲t̲a̲l̲ ̲e̲r̲r̲o̲r̲s̲

         Errors from format handler (exept VDU ̲SPLIT ̲FAILED,
         insert and delete not allowed).



4.2.3.4.2   F̲o̲r̲m̲a̲t̲ ̲P̲r̲o̲g̲r̲a̲m̲ ̲I̲n̲t̲e̲r̲p̲r̲e̲t̲e̲r̲

            The Format Programme Interpreter executes the Format
            Control Programme under control of VDIA Main Loop.

            FCP is a variable length byte string, which mut have
            been read into a memory area by Main Loop before FCI
            is activated.

            When activated from Main Loop, FCI scans the FCP sequentially
            and executes the commands one by one. When an END command
            or the physical end of FCP is reached, whatever occus
            first, FCI returnes to Main Loop.





4.2.3.4.2.1  Format Control Programme Interpreter Main




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

         INTERPRETATE THE LOADED SEGMENT OF THE FORMAT ̲CONTROL
         ̲PROGRAMME (FCP).
         THE FCP I CONSIDERED AS A BYTE ̲ARRAY, WITH COMMANDS
         (INSTRUCTION ̲CODES) ON BYTE ̲BOUNDARY. PARAMETRES TO
         THE COMMAND (IF ANY) ARE PACKED IMMEDIATELY BEHIND
         THE COMMAND. FIRST BYTE IS ASSUMED TO BE A COMMAND.
         INTERPRETATION IS TERMINATED WHEN A EXIT ̲COMMAND R
         LIMIT OF THE BYTE ̲ARRAY IS REACHED.
         THE COMPLETION CODE IS BASED ON VALIDATION RESULTS
         FROM SYNTAX/SEMANTIC PROCEDURE.



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


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

         a)  FCPI ̲MAIN (COMMAND,
                        FCP ̲PT,
                        MAX ̲INDEX: INTEGER
                       CC:        INTEGER

         b)  FCPI ̲MAIN (R0, R1, R4, R5, R6)


         R̲e̲g̲i̲s̲t̲e̲r̲ ̲c̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

         R1          Command from FCO
         R4          Pointer to first word in loades FCP segment
         R5          Max number of FCP bytes (-1) to be interpreted
         R6          Kept

         R̲e̲t̲u̲r̲n̲ ̲r̲e̲g̲i̲s̲t̲e̲r̲s̲

         R0          Cmpletion codes
         R1 - R5     Kept
         R6          Destroyed
         R7          Kept

         F̲a̲t̲a̲l̲ ̲e̲r̲r̲o̲r̲s̲

         (see appendix XX)



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

         PROCEDURE

         EVALUATE ̲CMD
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲ ̲ ̲ ̲ ̲

         (
          R1     -   R   FCP ̲COMMAND: FCP ̲CMD
          R5     C   K   % FCPI ̲DESCR
          R6 -   -   LINK
         )   SKIP ̲EXEC

         Narrative (Functional):
         Auxilliary procedure. Determines if command is to be
         skipped or executed. Further the trailing parametres
         (if any) are moved to word boundary. Programme-Counters
         (current, next) are updated.


         PROCEURE

         INSTR ̲LENGTH
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲ ̲ ̲ ̲ ̲

         (
          R3     C   R   INSTRUCTION CODE / INSTRUCTION LENGTH
          R6     -   -   LINK
         )

         Narrative (Functional):
         Auxilliary procedure that returns the instruction length
         (in bytes, includng the instr. code) corresponding
         to the specified instruction code.

         Narrative (Design):
         The procedure contains an inline table of instruction
         ̲lengths.
         Note:
         The table are ordered according to the scalar ̲type
         FCP ̲CMD!
         The inline table must bechecked manually, when FCP
         ̲CMD is changed!

          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

         Local PROCEDURE
         GET ̲LENGTH ( INSTR ̲LENGTH  INTEGER R6 )

         Narrative: This is a dummy procedure used to fetch
         one word from an inline table



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

         VDIA pointers
         VDIA data



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

         As the length of parametres are uniquely related to
         the command, update of the PROGRAMME ̲OUNTER (PT) may
         be done before branching to "EXECUTE COMMAND". Data
         from FCPI ̲MAIN to the underlying layer of "EXECUTE"
         -procedures (one to each command) is handed over via
         a FCPI ̲DESCRIPTOR (stacked). Data from "EXECUTE"-procedures
         to FCPI ̲MAIN ar handed-over via a flag-array (static
         located by linker) or - if "EXECUTE"-procedure concerns
         if, repeat, until, while, endwhile or exit commands
         - via FCPI ̲DESCRIPTOR.

         The FCPI ̲DESCRIPTOR contains mainly: index to CURRENT/NEXT
         ̲COMMAND, LOOP ̲CONTOL and parametres.

         These parametres are, for further SWELL ̲PROCESSING,
         moved to word boundary. No jump-forward is implemented,
         i.e. a WHILE ̲LOOP is bypassed by repeated skips of
         single commands until the ENDWHILE ̲COMMAND is reached.
         While..endwhle loops should not be nested (no run-time
         check). Repeat...until loops can be nested to a level
         determined by constant defined in "FCP ̲PREFIX".
         However, a WHILE ̲LOOP may be nested within a REPEAT
         ̲LOOP (or visa versa).



4.2.3.4.2.2 Format Contro Programme Interpreter Input 
           S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲








4.2.3.4.2.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲(̲M̲o̲d̲u̲l̲e̲ ̲d̲e̲s̲i̲g̲n̲)̲

         X̲ ̲I̲N̲I̲T̲ ̲B̲U̲N̲D̲

         Narrative (Functional):
         Executes the FCP ̲INSTRUCTION INIT ̲BUNDLE. Ie. 
         Initializes a bundle. Mandatory for urther processing
         of specified bundle.

         Narrative (Design):
         Unpacks trailing parametres to command. Unpacked parametres
         are re-arranged for call of auxilliary procedure INIT
         ̲BUNDLE.

         X̲ ̲I̲N̲P̲ ̲F̲I̲E̲L̲D̲

         Narrative (Functional):
         Executes the FCP ̲INSTRUTION INPUT ̲FIELD. Ie. a single
         field of specified VDU ̲TYPE from the VDU. The field
         is validated by specified SYNTAX ̲PROCEDURE, which uses
         specified variable when storing results.
         Flag VDU ̲RES is updated.

         Narrative (Design):
         A special bundle (BUDLE ̲ZERO, not accessable from FCP)
         is SET ̲UP ro the SYNTAX ̲PROCEDURE.

         X̲ ̲I̲N̲P̲ ̲N̲X̲T̲

         Narrative (Functional):
         Executes the FCP ̲INSTRUCTION INPUT ̲NEXT. Ie. a single
         field of specified VDU ̲TYPE from the VDU. The field
         is validated by specified SYNTAX ̲ROCEDURE, which stores
         results in specified sequence.
         Flag VDU ̲RES is updated.

         Narrative (Design):
         A special bundle (BUNDLE ̲ZERO, not accessable from
         FCP) is SET ̲UP for the SYNTAX ̲PROCEDURE.









         X̲ ̲I̲L̲P̲ ̲N̲X̲T̲ ̲B̲U̲N̲D̲

         Narrative (Functional):
         Executes the FCP ̲INSTRUCTION INPUT ̲NEXT ̲BUNDLE. The
         bundle in concern must have been initialized.
         The next bundle of VDU ̲TYPE is input fom VDU and inserted
         into bundle. If bundle did not become full, no more
         action is taken. Otherwise, if bundle did become full,
         the field(s) is (are) validated and results stored
         into Flag VDU ̲RES is updated. Sequence.
         Note: No resources are relase. Consequently, this command
         should never be the last concerning specified bundle
         (refer X ̲FLUSH ̲BUND).

         X̲ ̲I̲N̲P̲ ̲S̲E̲Q̲.

         Narrative (Functional):
         Executes the FCP ̲INSTRUCTION INPUT ̲SEQUENCE. Equivalent
         to repeated calls of INPUT ̲NEXT until all fields4̲7̲9̲4̲A̲…00…CPS/SDS/039
                      …00…vhn                 …00…HDK              
           …00…4.2.3               …00…0̲2̲…00…0̲4̲…00…8̲4̲…00…1̲1̲…00…4̲6̲…00… ̲ ̲3̲9̲…00…2̲5̲…00…1̲2̲7̲7̲4̲6̲…00…09…00…10…00…84…00…15…00…50…00…
            …00…01…00…     7…00…0̲9̲…00…1̲0̲…00…8̲4̲…00…1̲4̲…00…5̲1̲…00…10…00…10…00…84…00…11…00…42…00…0460A…00… 71…00… ̲ ̲4̲1̲…00…52…00… 1288…00…1̲3̲4̲6̲4̲7…00……09……00……01……00……11……02……00……10……00……01……10…F'…10……11…
…80…*̲…8a…7       …00……00……00……00……00……00……01…8
j…01……86……00……00……00……00…3…02……00……00…3
2…0d…2…07…1…00…1…06…0…0c…0…01…0  0…05…/…09…/…01….…08….…0d….…0e….…02….…07…-…0a…-…00…-…05…,…0b…,…0c…,…02…+…08…+…0f…+                                       *…0a…*…00…*…86…1
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 …02…
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 …02…
                                                                 
                                                                 
                                                                 …02…
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 

…02…CPS/SDS/039

…02…840601…02……02…#
USER VDU
DETAILED DESIGN SPECIFICATION…02…ISSUE 1…02…CAMPS








       4.2.3 VDU Dialogue(VDIA) .................... 
                
         4.2.3.1 Functional Specification ...........
                     
           4.2.3.1.1 Control of main flow (VDIA main 
                         
                     loop) ..........................
                         
           4.2.3.1.2 Interpretation of format control
                         
                   "programmes" ...................  
                     
           4.2.3.1.3 Input from/output to VDU (VDU
                     access method) .................
                         
           4.2.3.1.4 Read from/write to CIF (CIF     
                     
                     access method) .................
                         
           4.2.3.1.5 Rea from/write to memory      
                     (memory access method) .........
                         
           4.2.3.1.6 Read/write from sequences      
                     (sequence access method) .......
                         
           4.2.3.1.7 Validation and conversion. .....
                         
           4.2.3.1.8 Error hanling (Errl.) ......... 
                        
           4.2.3.1.9 Handling of dynamic memory     
                     (memory management) ............
                         

         4.2.3.2 Software Structure .................
                     
           4.2.3.2.1 Main Components of VDIA ........
                         
           4.2.3.2.2 VD Format and Associated
                     CONTROL Data ...................
                         
           4.2.3.2.3 Format Model and VDU Field Type 
                         
           4.2.3.2.4 Format Control Programme (FCP) .
                         
           4.2.3.2.5 VDIA Data Layout ...............
                         

         4.2.3.3 Data low, Control Structure ....... 
                    
         4.2.3.3.1 Subpackage Interface .............
                       
           4.2.3.3.1.1 UFCO VDIA UFCO INTERFACE .....
                           
           4.2.3.3.1.2 VDIA USPR VDIA Interface .....
                           

         4.2.3.4 Module Specification ...............
                    
           4.2.3.4.1 VDIA MAIN ......................
                         
             4.2.3.4.1.1 VDIA Main Loop Specification
                             
               4.2.3.4.1.1.1 Functional Specification
                   
               4.2.3.4.1.1.3 Module Components ......
                   
               4.2.3.4.1.1.2 Data Description ...... 
                  

             4.2.3.4.1.2 Stack Error Specification ..
                 
               4.2.3.4.1.2.1 Functional Specification
                   
               4.2.3.4.1.2.2 Module Interface .......
                   
               4.2.3.4.1.2.3 Module components ......
                   

             4.2.3.4.1.3 Long Exit Spcification .... 
                
             4.2.3.4.1.4 Wait Vdu I O Specification .
                 


           4.2.3.4.2 Format Program Interpreter .....
                         
             4.2.3.4.2.1 Format Control Progamme
                         Interpreter Main spec. .....
                             
               4.2.3.4.2.1.1 Functional Specification
                   
               4.2.3.4.2.1.2 Module Interface .......
                   
               4.2.3.4.2.1.3 Module Components ......
                   
               4.2.3.4.2.1.4 Data Description ...... 
                  
               4.2.3.4.2.1.5 Module Design ..........
                   

             4.2.3.4.2.2 Format Control Programme
                         Interpreter Input Spec. ....
                             
               4.2.3.4.2.2.1 Functional Specification
                   
               4.2.3.4.2.2.2 Module Interface .......
                                 4.2.3.4.2.2.3 Module
                                 Components ......   
                                  
               4.2.3.4.2.2.4 Data Description .......
                   
               4.2.3.4.2.2.5 Module Design ..........
                   

             4.2.3.4.2.3 Format Control Programme
                         Interpreter Disp spec. .....
                             
             4.2.3.4.2.3.1 Functional Specification  
               
                             (Module Design) ........
                                 
               4.2.3.4.2.3.2 Module Interface .......
                   
               4.2.3.4.2.3.3 Module Components ......
                   
               4.2.3.4.2.3.4 Data Description .......
                   
             4.2.3.4.2.3.5 Module Design ..........  
               

             4.2.3.4.2.4 Format Control Programme
                         Contr Specification ........
                             
               4.2.3.4.2.4.1 Functional Specification
                   
                             (Module Design) ........
                                 
               4.2.3.4.2.4. Module Interface ....... 
                  
               4.2.3.4.2.4.3 Module Components ......
                   
               4.2.3.4.2.4.4 Data Description .......
                   
               4.2.3.4.2.4.5 Module Design ..........
                   

             4.2.3.4.2.5 Format Control Programme
                         Seq Specfication .......... 
                            
               4.2.3.4.2.5.1 Functional Specification
                   
                             (Module Design) ........
                                 
               4.2.3.4.2.5.2 Module Interface .......
                   
               4.2.3.4.2.5.3 Module Components ......
                   
               4.2.3.4.2.5.4 Data escription ....... 
                  
               4.2.3.4.2.5.5 Module Design ..........
                   

             4.2.3.4.2.6 Format Control Programme    
             
                         Misc Specification .........
                             
               4.2.3.4.2.6.1 Functional Specification
                   
               4.2.3.4.2.6.2 ModuleInterface ....... 
                  
               4.2.3.4.2.6.3 Module components ......
                   
               4.2.3.4.2.6.4 Data Description .......
                   
               4.2.3.4.2.6.5 Module Design ..........
                   


             4.2.3.4.2.7 Format Control Programme Aux
                 
                         Specification ............. 
                            
               4.2.3.4.2.7.1 Functional Specification
                   
               4.2.3.4.2.7.2 Module Interface .......
                   

           4.2.3.4.3 VDU Access Method ..............
                         
             4.2.3.4.3.1 Vdu Access Method Main     
                         Specification ............. 
                            
               4.2.3.4.3.1.1 Functional Specification
                   
               4.2.3.4.3.1.2 Module interface .......
                   
               4.2.3.4.3.1.3 Module Components ......
                   
               4.2.3.4.3.1.4 Data Description .......
                   

             4.2.3.4.3.2 Vdu Access Method Mdel   
                         Specification ..............
                             
           4.2.3.4.3.2.1 Functional Specification ...
               
               4.2.3.4.3.2.2 Module Interface .......
                   
               4.2.3.4.3.2.3 Module Components ......
                   
               4.2.3.4.3.2.4 Data Description ...... 
                  

             4.2.3.4.3.3 Vdu Access Method Io   
                         Specification ..............
                             
               4.2.3.4.3.3.1 Functional Specification
                   
               4.2.3.4.3.3.2 Module Interface .......
                   
               4.2.3.4.3.3.3 Module Components ......
                  
               4.2.3.4.3.3.4 Data Description .......
                   

             4.2.3.4.3.4 Vdu Access Method Errl   
                         Specification ..............
                             
               4.2.3.4.3.4.1 Functional Specification
                   
               4.2.3.4.3.4.3 Module Components ......
                   
             4.2.3.4.3.4.4 Data Description .......  
               

           4.2.3.4.4 Cif Access Method ..............
                         
             4.2.3.4.4.1 Cif Access Method     
                         Specification ..............
                             
               4.2.3.4.4.1.1 Functional Specification
                   
               .2.3.4.4.1.2 Module Interface ....... 
                  
               4.2.3.4.4.1.3 Module Components ......
                   
               4.2.3.4.4.1.4 Data Description .......
                   

           4.2.3.4.5 Memory Access Method - Mem Acc. 
                         
             4.2.3.4.5.1 Memory Access Method    
                       Specification ..............  
                         
               4.2.3.4.5.1.1 Functional Specification
                   
               4.2.3.4.5.1.2 Module Interface .......
                   
               4.2.3.4.5.1.3 Module Components ......
                   
               4.2.3.4.5.1.4 Data Description .......