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

⟦2f15866b8⟧ Wang Wps File

    Length: 58861 (0xe5ed)
    Types: Wang Wps File
    Notes: Spelunked
    Names: »~ORPHAN66.00«

Derivation

└─⟦a5d18cecd⟧ Bits:30006104 8" Wang WCS floppy, CR 0164A
    └─ ⟦this⟧ »~ORPHAN66.00« 

WangText



A…08…A…0b…A…0c…A
@…08…@…0e…@…0f…@    @…07…?…08…?…09…?…0c…?…0f…?…02…?…07…>…09…>…0e…>…02…>…06…=…0a…=…0c…=…02…= =…05…<…0a…<…0c…<…01…< <…07…;…0a…;…0f…;
;…07…:…0c…:…01…:
9…08…9…0e…9…00…9…02…9…05……86…1
      
      
      
      
      
      
      
   …02…   
      
  …02…   …02… 
      
 

…02…CPS/SDS/035

…02…MSN/820514…02……02…
SUPERVISOR
 VDU 
DETAILED
 DESIGN
 SPECIFICATION…02……02…CAMPS







4.2.3    D̲i̲a̲l̲o̲g̲u̲e̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲



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̲

         This subpackage handles:

         -   output of data to VDU
         -   input of data from VDU
         -   validation of input data

         as shown n figure 4.2.3.1-1.

         The task is to transform data from the internal format
         to the format presented to the VDU user and vice versa.



4.2.3.1.1    O̲u̲t̲p̲u̲t̲ ̲o̲f̲ ̲D̲a̲t̲a̲

         On command the Dialogue Subpackage will select a format,
         transfer data from disk to mmory, perform the necessary
         conversion and transfer data to the VDU by call to
         the Format Handler (IOC). The functions are shown on
         figure 4.2.3.1-2.



4.2.3.1.2    I̲n̲p̲u̲t̲ ̲o̲f̲ ̲D̲a̲t̲a̲

         On command the Dialogue Subpackage will transfer data
         from the VDU tomemory, validate data and transfer data
         to disk (if valid). The functions are shown on figure
         4.2.3.1-3).



4.2.3.1.3    V̲a̲l̲i̲d̲a̲t̲i̲o̲n̲

         Validation is Syntax Validation of each data item and
         Semantic Validation for the whole format.

         Messages and commets are transferred to disk and requests
         are transferred to common data area.

         The functions are shown on figures 4.2.3.1-4 to 4.2.3.1-6.…86…1
                 …02…   …02…   …02…   …02…                                 
                  
4.2.3.1.4    D̲i̲s̲p̲l̲a̲y̲ ̲o̲f̲ ̲E̲r̲r̲o̲r̲ ̲C̲o̲d̲e̲s̲

         When errors are found during validation error codes
         are output in the margin area for the line containing
         the field in error and the field in errr is displayed
         in REVERSE VIDEO. If second or subsequent validation
         finds new errors the display of error codes is repeated
         and old error codes removed together with REVERSE VIDEO
         attributes. The functions are shown on figure 4.2.3.1-7.



4.2.3.1. E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

         This is analysis of the error condition and sending
         error information to SSC. The functions are shown on
         figure 4.2.3.1-8.





              Figure 4.2.3.1-1 to 4.2.3.1-8


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 generalized table driven
         mechanism for transformation of data from any internal
         format to any screen format and vice versa

         The table that contains the control information is
         the VUS ̲MMI ̲CONTROL ̲TABLE shown in figure 4.2.3.2-1.

         The MMI CONTROL TABLE contains the following fields:

         V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲:    Composed of:

         T̲Y̲P̲E̲:           This field is a bit mask:

         1:  F̲(̲F̲i̲x̲e̲d̲)̲:̲  The line is not repeatable.

         2:  R̲(̲R̲e̲p̲e̲a̲t̲)̲:̲ The line is repeatable. (From VDU) 
                        F ̲COUNT
                                                           
                        must be
                                                           
   = 1

         3:  A̲(̲A̲p̲p̲e̲n̲d̲)̲:̲ The line/field may be appended to  
                        FG ̲COUNT
                                                           
                        must be
                                                           
                        = 0

         4:  I̲I̲n̲p̲u̲t̲)̲:̲    The line/field may be input (all fields
                         in a group must be of the same type)

         5:  O̲(̲O̲u̲t̲p̲u̲t̲)̲:̲  The line/field may be output (all fields
                         in a group must be of the same type).

         6:  X̲(̲E̲x̲c̲e̲p̲t̲)̲:̲  The line/field shall be output when
                         format is output

         L̲I̲N̲E̲ ̲N̲O̲:̲

         This is the line number as defined on the screen format.

         I̲N̲C̲A̲R̲N̲A̲T̲I̲O̲N̲ ̲N̲O̲:̲

         This is the incarnation number as defined on the screen
         format. For non-repeatable lines the incarnation number
         equals 1. For repeatable lines the field contins either
         zero (in which case the actual number of incarnations
         are found via the ITEM COUNT in the MEMORY ADDRESS)
         or a number which is the initial number of repeats
         of the line.


         F̲I̲E̲L̲D̲ ̲N̲O̲:̲

         This is the field number as defined on the screen format.
         If the field is part of a field group the field number
         is the number of the field in the first occurrence
         of he group. If the field is repeated on the line,
         the field number is the number of the first occurrence
         of the field.

         F̲I̲E̲L̲D̲ ̲C̲O̲U̲N̲T̲:̲

         If the field is not part of a group this count is the
         number of occurrences of the field on the line. If
         the fieldis part of a group the count is the number
         of fields in the group.

         F̲I̲E̲L̲D̲ ̲G̲R̲O̲U̲P̲ ̲C̲O̲U̲N̲T̲:̲

         This is the number of field groups on the line.

         F̲I̲E̲L̲D̲ ̲S̲I̲Z̲E̲:̲

         This is the size (in characters) as defined on the
         screen format.

         M̲E̲M̲O̲R̲Y̲ ̲A̲D̲D̲R̲E̲S̲S̲:̲

         F̲I̲E̲L̲D̲ ̲N̲O̲

         If data are contained in a CIF this field contains
         the number of the CIF-Field in EMF, IMF or IIF. Otherwise
         the field contains zero.

         F̲I̲E̲L̲D̲ ̲S̲I̲Z̲E̲:̲

         This is the size (in bytes) of the field.

         F̲I̲E̲L̲D̲ ̲T̲Y̲P̲E̲:̲

         Fixed or variable.

         B̲A̲S̲E̲:̲

         If data re contained in a CIF this is the number of
         the CIF-field to where the POINTER to DATA ITEM is
         relative, otherwise the field contains zero.


         P̲O̲I̲N̲T̲E̲R̲ ̲T̲O̲ ̲D̲A̲T̲A̲ ̲I̲T̲E̲M̲:̲

         This is a pointer to the location where the start-address
         of the item is placed. The pointer is relative to BASE
         (unless BASE = 0 in which case it is absolte).

         B̲A̲S̲E̲:̲

         If data are contained in a CIF this is the number of
         the CIF-field to where the POINTER to ITEM COUNT is
         relative, otherwise the field contains zero.

         P̲O̲I̲N̲T̲E̲R̲ ̲T̲O̲ ̲I̲T̲E̲M̲ ̲C̲O̲U̲N̲T̲:̲

         This is a pointer to the location where the address
         of te item count is placed. The pointer is relative
         to BASE (unless BASE = 0 in which case it is absolute).

         D̲I̲S̲P̲L̲A̲Y̲ ̲M̲O̲D̲I̲F̲I̲C̲A̲T̲I̲O̲N̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲:̲

         This is the name of the procedure to be called when
         the data item shall be displayed. If the field contains
         ero no procedure is required to display the item.

         S̲Y̲N̲T̲A̲X̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲:̲

         This is the name of the procedure to be called when
         the data item shall be validated. If the field contains
         zero no validation is required, (This requires that
         CIF- nd IOC- buffers are shared).

         E̲R̲R̲ ̲N̲O̲:̲

         This is the error code to be used in case of validation
         error. The field contains zero if no validation error
         exists.

         *̲:̲

         If the POINTER TO DATA ITEM field or the POINTER TO
         ITEM COUNT field is updated duing display/validation
         this is indicated with asterisk.

         An example of use of the VDU ̲MMI ̲CONTROL ̲TABLE is shown
         on figure 4.2.3.2-2. For the specified VDU FORMAT LINE
         the figure shows the contents of the VUS ̲MMI ̲CONTROL
         ̲TABLE and the FIELD LIST.





                  Figure 4.2.3.2-1 to -2


         The structure of the IMF, EMF, and IIF together with
         the structure of the VUS ̲MMI ̲CONTROL ̲TABLE requires
         a dynamic buffer structure in order to maximize throughput
         and minimize meory consumption.

         This structure is shown in figure 4.2.3.2-3.

         It contains the following:

         -   ADM1 ̲BUF:

             This is the input buffer to hold the CIF-Administration
             field of the CIF to be displayed.

         -   ADM2 ̲BUF:

             This is the output buffer to hod the CIF-Administration
             field of the CIF written to.

         -   FORMAT ̲ID:

             This is the current format.

         -   CONTINUATION ̲FORMAT:

             This is the next format-part (this facilitates
             sectioning of formats and thus restructuring of
             the buffer layout for optmization purposes).

         -   INPUT ̲BUFFER ̲CTRL ̲GROUP:

             This gives the length of all buffers when used
             for input

         -   OUTPUT ̲BUFFER ̲CTRL ̲GROUP:

             This gives the length of all buffers when used
             for output.

         -   MMI ̲RECORD ̲COUNT:

             This is the number of ecord in the MMI ̲CONTROL
             ̲TABLE ̲SECTION.

         -   MMI ̲CONTROL ̲TABLE ̲SECTION:

             This is the section of the MMI ̲CONTROL ̲TABLE corresponding
             to the current format-part.


         -   FIELD ̲LIST:

             This is the field list used in connecion with the
             Format Handler (IOC)

         -   IOC ̲BUF:

             This is the buffer used by the Format Handler

         -   CIF ̲FIELDN ̲BUF:

             This i the buffer used for input/output of CIF-field
             N.

         In addition to these buffers two sets of error lists
         exist as shown in figure 4.2.3.2-4. Each list contains
         a margin area section and a field section to control
         display of error codes and change o field attributes.

         The structure of the software composing the Dialogue
         Subpackage is shown in figure 4.2.3.2-5 to 4.2.3.2-8.


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

         The internal flow is shown on HIPO diagrams 4.2.3.3-1
         to 4.2.3.3-6.





              Figure 4.2.3.2-3 to 4.2.3.2-8


Figure 4.2.3.3-1 -6…86…1         …02…   …02…   …02…   …02…   …02…                                
       
4.2.3.4  S̲V̲D̲I̲A̲ ̲M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲



4.2.3.4.1    D̲I̲A̲L̲O̲G̲U̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.3.4.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̲

         This module is the controlling module within the subpackag.
         It receives commands from SFCO and I/O-Completions
         via semaphore SVDIA ̲SEM. It calls upon the modules
         for input/output to/from the VDU and signals completion
         to semaphore SFCO ̲SEM.



4.2.3.4.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)  DIALOGU ̲CONTROL

         b)  DIALOGUE ̲CONTROL (R6)

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

         R6  LINK        destroyed

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

         R0 - R7         (destroyed)

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

         None.



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

         None.…86…1         …02…   …02…   …02…   …02…   …02…     …02…                  
                       
4.2.3.4.1.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̲

             CURSOR ̲RECORD                                       4.1.4

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

             N/A

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

             N/A



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

         The module performs the folowing tasks:

         -   analysis of operations received in SVDIA ̲SEM

         -   Calls modules and common procedures corresponding
             to the following commands:

             CLOSE
             CANCEL
             CLEAR ̲VDU
             INPUT ̲DATA
             OUTPUT ̲DATA
             OUTPUT ̲MENU
             OUTPUT ̲FORMAT
             L ̲INSERT
             L ̲DELTE

         -   Call modules corresponding to the I/O completions:

             VDU ̲DATA ̲OUTPUT
             VDU ̲DATA ̲INPUT


 D̲I̲A̲L̲O̲G̲U̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲

 LOOP FOREVER

     WAIT ̲OPSEM (SVDIA ̲SEM)(SVUP ̲OP): OK

     CASE SVUP ̲OP.OP ̲ID(1) OF SENDER ̲ID ̲TYPE

         SFCO ̲ID?    INCREMENT CMD ̲OP ̲CNT

                     OPLIST(CMD ̲OP ̲CNT)=SVUP ̲P

                     CASE SVUP ̲OP.CMD OF SVDIA ̲CMD ̲ANS
                     ̲TYPE

                         CLOSE?

                         CANCEL ̲I ̲O? C̲M̲D̲ ̲E̲X̲E̲C̲U̲T̲I̲O̲N̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲2̲)̲

                         OTHERWISE? CMD ̲OP ̲CNT GT 1?
                         
                                                                 S̲V̲U̲P̲
                                                                 ̲I̲N̲T̲E̲R̲N̲A̲L̲
                                                                 ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲
                                                                 ̲U̲P̲)̲
                                                  (4̲.̲1̲.̲5̲.̲2̲)̲

                               C̲M̲D̲ ̲E̲X̲E̲C̲U̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲2̲)̲

                     END CASE

         VDU ̲ID?     V̲D̲U̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲3̲)̲

         OTHERWISE?  S̲V̲U̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲

     END CASE

 END FOREVER LOOP

 END













Figure 4.2.3.4.1-1…86…1         …02…   …02…   …02…   …02…      …02…  …02…                        
         
 C̲M̲D̲ ̲E̲X̲E̲C̲U̲T̲I̲O̲N̲

 CASE SVUP ̲OP.CMD OF SVDIA ̲CMD ̲ANS ̲TYPE

     CLOSE

     CANCEL ̲I ̲O? S̲T̲O̲P̲ ̲I̲N̲P̲U̲T̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲-̲1̲)̲

     CLEAR ̲VDU?  C̲L̲E̲A̲N̲ ̲U̲P̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲-̲1̲)̲

     INPUT ̲DATA? V̲D̲U̲ ̲D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲ ̲(̲N̲I̲T̲)̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲)̲

     OUTPUT ̲DATA?    OUTPUT ̲DATA ̲PT = VUS ̲OP.PARA2
                 V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲I̲N̲I̲T̲)̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲)̲

     OUTPUT ̲MENU?

     OUTPUT ̲FORMAT?  V̲D̲U̲ ̲F̲O̲R̲M̲A̲T̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲4̲)̲

     L ̲INSERT?   L ̲NO = CURSOR ̲RECORD.FIELD.LINE ̲NO

                 INC = CURSOR ̲RECORD.FIELD.IN ̲NO

                 CNT = SVUP ̲OP.PARA1

                            L̲I̲N̲E̲ ̲I̲N̲S̲E̲R̲T̲(̲F̲O̲R̲M̲A̲T̲ ̲I̲F̲C̲B̲,̲L̲ ̲N̲O̲,̲ ̲I̲N̲C̲,̲
                            ̲C̲N̲T̲)̲
                                                      (̲4̲.̲2̲.̲3̲.̲6̲.̲3̲-̲1̲)̲

             L ̲DELETE?      L ̲NO = CURSOR ̲RECORD.FIELD.LINE
                            ̲NO

                            INC =CURSOR ̲RECORD.FIELD.INC ̲NO

                            CNT = SVUP ̲OP.PARA1

                            L̲I̲N̲E̲ ̲D̲E̲L̲E̲T̲E̲(̲F̲O̲R̲M̲A̲T̲ ̲I̲F̲C̲B̲,̲L̲ ̲N̲O̲,̲ ̲I̲N̲C̲,̲
                            ̲C̲N̲T̲)̲
                                                      (̲4̲.̲2̲.̲3̲.̲6̲.̲4̲-̲1̲)̲

             OTHERWISE?        S̲V̲U̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲I̲V̲E̲ ̲U̲P̲)̲
                                                    (̲4̲.̲1̲.̲5̲.̲2̲)̲

         END CASE

         END




Figure 4.2.3.4.1-2…86…1         …02…   …02…   …02…   …02…      …02…  …02…                            
     
         V̲D̲U̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲

         CASE SVUP ̲OP.CMD OF VDU ̲ID ̲TYPE

             VDU ̲DATA ̲OUTPUT?  V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲C̲O̲N̲T̲)̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲)̲

             VDU ̲DATA ̲INPUT?   V̲D̲U̲ ̲D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲ ̲(̲C̲O̲N̲T̲)̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲)̲

             OTHERWISE?        S̲V̲U̲P̲ ̲I̲N̲T̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲
                                                    (̲4̲.̲1̲.̲5̲.̲2̲)̲

         END CASE

         END


































Figure 4.2.3.4.1-3…86…1         …02…   …02…   …02…   …02…      …02…  …02…                            
     
4.2.3.4.2    V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.3.4.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̲

         This module performs output to the VDU. It performs
         either initial or continued output:

         I̲n̲i̲t̲i̲a̲l̲:̲
         The module reads in the VUS ̲MMI ̲CONTROL ̲TABLE (via
         TMP), sets the output buffer structure, clears the
         format split, creates display buffers, initiates display
         of fields and associates completion of I/O to semaphore
         SVDIA ̲SEM.

         C̲o̲n̲t̲i̲n̲u̲e̲d̲:̲

         The mdule checks if the FIELD ̲LIST is full or if end
         of IOC ̲BUF is reached in which case display is performed
         as described above. If end of CIF ̲BUF is reached continued
         read from current CIF field and display is performed.
         If end of CIF field is reachedit is checked if continuation
         is required in which case read from CIF and display
         is performed as described above, otherwise completion
         is signalled to SFCO via SVDIA ̲SEM.



4.2.3.4.2.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)  VDU ̲DATA ̲OUTPUT (IITIAL ̲CONTINUED: BOOLEAN)

         b)  VDU ̲DATA ̲OUTPUT (R0, R6)

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

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R0  BOOLEAN        (destr.)
         R6  LINK           (destr.)

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

         R0-R7              (destr.)


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

         None



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



4.2.3.4.2.3.1 R̲E̲A̲D̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲S̲

         Sets up parameters for performing a READ ̲VIEW call.
         Parameters are setup based on informatin contained
         in the VUS ̲MMI ̲CONTROL ̲TABLE. If required the CIF ̲Administration
         field is included.



4.2.3.4.2.3.2 C̲R̲E̲A̲T̲E̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲B̲U̲F̲F̲E̲R̲S̲

         Creates a Field List and Buffer List for use by the
         Format Handler (IOC) based on the VUS ̲MMI ̲CONTROL ̲TABLE.


4.2.3.4.2.3.3 D̲I̲S̲P̲L̲A̲Y̲ ̲F̲I̲E̲L̲D̲S̲

         Sets up parameters for the Format Handler (IOC) and
         initiates output to the VDU.



4.2.3.4.2.3.4 R̲E̲A̲D̲ ̲S̲I̲N̲G̲L̲E̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲

         Set up parameters and performs READ ̲VIEW call.



4.2.3.4.2.3.5 M̲A̲R̲G̲I̲N̲ ̲D̲I̲S̲P̲L̲A̲Y̲

         Displays releant information in the margin corresponding
         to the current format.




4.2.3.4.2.3.6 C̲R̲E̲A̲T̲E̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲E̲L̲E̲M̲E̲N̲T̲

         Creates a single field list element and moves an IOC-record
         to the IOC ̲BUF.



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̲

             FORMAT ̲IFCB                                        4.1.4
             CURRENT ̲FORMAT                                     4.2.3.5
             MMI ̲HEAD ̲REC                                       4.2.3.5
             INITIAL                                            4.2.3.5
             VDU ̲SPLIT ̲FAILED       CPS/SDS/001
             END ̲OF ̲CIF ̲BUF                                     4.2.3.5
             FIELD ̲LIST ̲FULL        4.2.3.5
             END ̲OF ̲IOC ̲BU                                      4.2.3.5
             END ̲OF ̲CIF ̲FIELD       4.2.3.5
             MMI ̲PT                                             4.2.3.5
             EOMM                                               4.2.3.5
             ICBL ̲PT                                            4.2.3.5
             BIBL                                               4.2.3.5
             CIF ̲F ̲LIST                                         4.2.3.5
             EIBL                                               4.2.3.5
             BOCB                                               4.2.3.5
             EOCF                                               4.2.3.5
             FL ̲PT                                              4.2.3.5
             BOFL                                               4.2.3.5
             IOC ̲PT                                             4.2.3.5
             BOIB                                               4..3.5
             FIELD ̲LIST                                         4.2.3.5
             FIELD ̲LIST ̲LENGTH      4.2.3.5
             BUFFERS ̲SHARED                                     4.2.3.5
             FIXED                                              4.2.3.5
             EOFL                                               4.2.3.5
             EOIB                                               4.2.3.5
             F ̲BYTE ̲ADR                                         4.2.3.5
             NO ̲OF ̲FIELDS                                       CPS/DBD/001
             IOC ̲BLE                                            4.2.3.5
             INPUT ̲CIF                                          4.1.4…86…1
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                …02…
                                                                
                                                                
                                                                …02…
                                                                
                                                                
                                                                …02…
                                                                
                                                                
                                                                …02…
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                …02…
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                …02…
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             N/A

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

             BUFSIZE                                            INTEGER



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

         The module performs either initial output or continued
         output:

         I̲n̲i̲t̲i̲a̲l̲

         -   Reads in VS ̲MMI ̲CONTROL ̲TABLE (via TMP)

         -   Sets output buffer structure

         -   Clears format split

         -   Reads in CIF-Administration field

         -   Creates Display Buffers

         -   Initiates Fields Output

         -   Associates completion of Fields Output to semaphore
             SVDIA ̲SEM

C̲o̲n̲t̲i̲n̲u̲e̲d̲:̲

         -   checks end conditions:

             1.  End of CIF-buffer: Reads from current CIF-field

             2.  Field list full

             3.  End of IOC buffer.

                 In all three cases creation of display buffers,
                 initiation of Fields Output and association
                 of completionof I/O to semaphore SVDIA ̲SEM
                 is performed.


             4.  End of CIF-field.

                 If continuation format is specified in VUS
                 ̲MMI ̲CONTROL ̲TABLE a new VUS ̲MMI ̲CONTROL ̲TABLE
                 record is read (via TMP), buffer structure
                 set, CIF-fields read,display buffers created,
                 Fields Output initiated and association of
                 completion of I/O to semaphore SVDIA ̲SEM is
                 performed.

                 If continuation is not required completion
                 of output is signalled to semaphore SFCO ̲SEM.


 V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲
 INITIAL?    CURRENT ̲FORMAT = SVUP ̲OP.PARA1
             R̲E̲A̲D̲ ̲M̲M̲I̲ ̲C̲T̲R̲L̲ ̲T̲A̲B̲L̲E̲ ̲(̲C̲U̲R̲R̲E̲N̲T̲ ̲F̲O̲R̲M̲A̲T̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲3̲-̲1̲)̲
             S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲ ̲(̲O̲U̲T̲P̲U̲T̲)̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲6̲-̲1̲)̲
             C̲L̲E̲A̲R̲ ̲S̲P̲L̲I̲T̲ ̲(̲4̲2̲.̲3̲.̲6̲.̲1̲4̲-̲1̲)̲
             GET ̲FORMAT (FORMAT ̲IFCB, CURRENT ̲FORMAT)(CC):OK
             MMI ̲HEAD ̲REC.CIF ̲ACCESS? R̲E̲A̲D̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲S̲ ̲(̲A̲D̲M̲)̲
                                     (̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲4̲)̲
             C̲R̲E̲A̲T̲E̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲B̲U̲F̲F̲E̲R̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲6̲)̲
             D̲I̲S̲P̲L̲A̲Y̲ ̲F̲I̲E̲L̲D̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲8̲)̲
             VDU ̲OP.CMD = VDU ̲DATA ̲OUTPUT
             SSOCIATE (SVDIA ̲SEM, VDU ̲OP): OK
             INITIAL = FALSE
 CASE WAIT ̲SYSTEM ̲CALL (VDU ̲OP)(OUTRO,OUTR1,OUTR2, OUTR3,OUTR4)
                                               (CC): ERROR ̲OK
     ERROR? CASE ANALYZE ̲ERROR(CC, 1, VDU ̲SPLIT ̲FAILED):L1
                 L1? S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲S̲P̲L̲I̲T̲ ̲F̲A̲I̲L̲E̲)̲
                                     (̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲
     OK?     END CASE
 END CASE
 END ̲OF ̲CIF ̲BUF? READ ̲SINGLE ̲CIF ̲FIELD (4.2.3.4.2-9)
 FIELD ̲LIST FULL?
 END ̲OF ̲IOC ̲BUF? C̲R̲E̲A̲T̲E̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲B̲U̲F̲F̲E̲R̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲6̲)̲
                 D̲I̲S̲P̲L̲A̲Y̲ ̲F̲I̲E̲L̲D̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲8̲)̲
                 VDU ̲OP.CMD = VDU ̲DATA ̲OUTPUT
             ASSOCIATE (SVDIA ̲SEM, VDU ̲OP): OK
 END ̲OF ̲CIF ̲FIELD?   INCREMENT MMI ̲PT
                     S̲E̲T̲ ̲M̲E̲M̲O̲R̲Y̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲0̲-̲1̲)̲
 MMI ̲PT GT EOMM?     MMI ̲HEAD ̲REC.CONT ̲FORMAT ̲ID EQ ZERO?
                                     T̲E̲R̲M̲I̲N̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲3̲)̲
                     N̲E̲X̲T̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲2̲)̲
 V̲U̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
 END
Figure 4.2.3.4.2-1 (Cont.)…86…1 …02…   …02…   …02…   …02…   …02…   …02…      …02…        …02…                           
 N̲E̲X̲T̲ ̲F̲O̲R̲M̲A̲T̲

 CURRENT ̲FORMAT = MMI ̲HEAD ̲REC. CONT ̲FORMAT ̲ID

 R̲E̲A̲D̲ ̲M̲M̲I̲ ̲C̲T̲R̲L̲ ̲T̲A̲B̲L̲E̲ ̲(̲C̲U̲R̲R̲E̲N̲T̲ ̲F̲O̲R̲M̲A̲T̲)̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲3̲-̲1̲)̲

 S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲ ̲(̲O̲U̲T̲P̲U̲T̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲6̲-̲1̲)̲

 R̲E̲A̲D̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲S̲ ̲(̲N̲ ̲A̲D̲M̲)̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲4̲)̲

 C̲R̲E̲A̲T̲E̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲B̲U̲F̲F̲E̲R̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲6̲)̲

 VDU ̲OP.CMD = VDU ̲DATA ̲OUTPUT

 D̲I̲S̲P̲L̲A̲Y̲ ̲F̲I̲E̲L̲D̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲8̲)̲

 ASSOCIATE (SVDIA ̲SEM, VDU ̲OP): OP

 END






























 Figure 4.2.3.4.2-2…86…1 …02…   …02…   …02…   …02…   …02…   …02…      …02…        …02…                           
 T̲E̲R̲M̲I̲N̲A̲T̲E̲

 S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲O̲K̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

 END








































 Figure 4.2.3.4.2-3…86…W …02…   …02…   …02…   …02…   …02…   …02…      …02…        …02…                           
 R̲E̲A̲D̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲S̲
 BUF ̲SIZE = 0
 ICBL ̲PT = BIBL
 ADM?    BUF ̲SIZE = SIZE (ADM1 ̲BUF)
         BUFFER = BAM1
         CIF ̲F ̲LIST.NO ̲OF ̲ELEM = 1
         CIF ̲F ̲LIST.ELEM(1).F ̲GROUP ̲ID = 1
         CIF ̲F ̲LIST.ELM(1).F ̲BYTE ̲ADR = 0
         CIF ̲F ̲LIST.ELEM(1).REC ̲LENGTH = SIZE (ADM1 ̲BUF)
         READ ̲VIEW(BUF ̲SIZE,CIF ̲F ̲LIST,INPUT ̲CIF,BUFFER)
                                          (CIF ̲F ̲LIST,CC): ERROR ̲OK
 CIF ̲F ̲LIST.NO ̲OF ̲ELEM = 0
 LOOP UNTIL ICBL ̲PT GT EIBL
     EUIVALENCE (MMI ̲HEAD ̲REC.INPUT ̲BUFFER ̲CTRL ̲GROUP.
                 CIF ̲BUF ̲LEN ̲ARRAY (ICBL ̲PT), BUF ̲LEN: INTEGER)
     BUF ̲LEN=0?  INCREMENT ICBL ̲PT
     BUFFER = BOCB (ICBL ̲PT)
     ICBL ̲PT = EIBL + 1
 END LOOP
 ICBL ̲PT = BIBL
 LOOP UNTIL ICBL ̲PT GT EIBL
     EQUIVALENCE (MI ̲HEAD ̲REC.INPUT ̲BUFFER ̲CTRL ̲GROUP.
                  CIF ̲BUF ̲LEN ̲ARRAY(ICBL ̲PT), BUF ̲LEN: INTEGER)
     BUF ̲LEN = 0?
     BUF ̲SIZE = BUF ̲SIZE + BUF ̲LEN
     INCREMENT CIF ̲F ̲LIST.NO ̲OF ̲ELEM
     CIF ̲F ̲IST.ELEM(CIF ̲F ̲LIST.NO ̲OF ̲ELEM).F ̲GROUP ̲ID = ICBL ̲PT+1
     CIF ̲F ̲LIST.ELEM(CIF ̲F ̲LIST.NO ̲OF ̲ELEM).F ̲BYTE ̲ADR = 0
     CIF ̲F ̲LIST.ELEM(CIF ̲F ̲LIST. NO ̲OF ̲ELEM).REC ̲LENGTH=BUF ̲LEN
     INCREMENT ICBL ̲PT
 END LOOP

 (CONTINUED)
 Figure 4.2.3.4.2-4…86…2 …02…   …02…   …02…   …02…   …02…   …02…      …02…        …02…                           
 R̲E̲A̲D̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲S̲      (Continued)
 READ ̲VIEW(BUF ̲SIZE, CIF ̲F ̲LIST, INPUT ̲CIF, BUFFER)
                                       (CIF ̲F ̲LIST, CC):ERROR ̲OK
 ICBL ̲PT = BIBL
 LOOP UNTIL IBL ̲PT GT EIBL
     EOCF (ICBL ̲PT) = CIF ̲F ̲LIST.ELEM(ICBL ̲PT).REC ̲LENGTH
 END LOOP
 END































Figure 4.2.3.4.2-5…86…1 …02…   …02…   …02…   …02…   …02… …02…        …02…        …02…                         
     
         C̲R̲E̲A̲T̲E̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲B̲U̲F̲F̲E̲R̲S̲

         FL ̲PT = BOFL

         IOC ̲PT = BOIB

         C̲L̲E̲A̲R̲ ̲(̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲,̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲L̲E̲N̲G̲T̲H̲,̲ ̲0̲)̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲5̲)̲

         LOOP UNTIL MMI ̲PT GT EOMM

             S̲E̲T̲ ̲M̲M̲I̲ ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲7̲-̲1̲)̲
             S̲E̲T̲ ̲M̲E̲M̲O̲R̲Y̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲0̲-̲1̲)̲

             S̲E̲T̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲9̲-̲1̲)̲

             INC EQ ZERO?                                        INC
                                                                 =
                                                                 CNT

                                                                  L̲I̲N̲E̲
                                                                  ̲I̲N̲S̲E̲R̲T̲
                                                                  ̲(̲F̲O̲R̲M̲A̲T̲
                                                                  ̲I̲F̲C̲B̲,̲L̲
                                                                  ̲N̲O̲,̲0̲,̲C̲N̲T̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲3̲-̲1̲)̲

             C ̲INC = 1

             LOOP UNTIL C ̲INC GT INC

             BUFFERS ̲SHARED?  C̲R̲E̲A̲T̲E̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲E̲L̲E̲M̲ ̲(̲4̲2̲.̲3̲.̲4̲.̲2̲-̲7̲)̲

                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 FIELD
                                                                 ̲LIST
                                                                 ̲FULL?
                                                                 
                                                                 
                                                                 EXIT

                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 END
                                                                 ̲OF
                                                                 ̲CIF
                                                                 ̲FIELD?
                                                                 
                                                                 EXIT

                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 END
                                                                 ̲OF
                                                                 ̲CIF
                                                                 ̲BUF?
                                                                 
                                                                 
                                                                 
                                                                 EXIT

             I ̲TYPE = FIXED?  FG ̲COUNT EQ ZERO? F̲I̲E̲L̲D̲ ̲R̲E̲P̲E̲A̲T̲
             ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲6̲-̲1̲)̲

                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 F̲I̲E̲L̲D̲
                                                                 ̲G̲R̲O̲U̲P̲
                                                                 ̲R̲E̲P̲E̲A̲T̲
                                                                 ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲7̲-̲1̲)̲

             S̲E̲T̲ ̲I̲O̲C̲ ̲R̲E̲C̲ ̲A̲D̲D̲R̲E̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲8̲-̲1̲)̲

             IOC ̲PT + BYTE ̲COUNT GT EOIB-3?          END ̲OF
             ̲IOC ̲BUF = TRUE

             C̲R̲E̲A̲T̲E̲ ̲D̲I̲S̲P̲ ̲R̲E̲C̲ ̲(̲V̲A̲R̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲5̲-̲1̲)̲       EXIT

             END ̲OF ̲CIF ̲FIELD?   EXIT

             END ̲OF ̲CIF ̲BUF?     EXIT

             INCREMENT INC

             END LOOP
         INCREMENT MMI ̲PT
         END LOOP
  END                 Figure 4.2.3.4.2-6…86…1 …02…   …02…   …02…   …02…   …02… …02…    
    …02…        …02…                              
         C̲R̲E̲A̲T̲E̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲E̲L̲E̲M̲

         S̲E̲T̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲9̲-̲1̲)̲

         S̲E̲T̲ ̲I̲O̲C̲ ̲R̲E̲C̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲8̲-̲1̲)̲

         IOC ̲L ̲NO = L ̲NO

         IOC ̲INC = CURRENT ̲INC

         IOC ̲F ̲NO = F ̲NO

         INCREMENT FLPT

         FL ̲PT GT EOFL? FIELD ̲LIST ̲FULL = TRUE

         FIELD ̲LIST ̲FULL = FALSE

         IOC ̲PT + BYTE ̲COUNT GE EOCF (I ̲PT ̲BASE)? END ̲OF ̲CIF
         ̲FIELD = TRUE

         END ̲OF ̲CIF ̲FIELD = FALSE

         IOC ̲PT + BYTE ̲COUNT GT EOIB-3?                          END
                                                                 ̲OF
                                                                 ̲CIF
                                                                 ̲BUF
                                                                 =
                                                                 TRUE

                                                                    CIF
                                                                    ̲F
                                                                    ̲LIST.ELEM
                                                                    (I
                                                                    ̲P
                                                                    ̲BASE)

         END ̲OF ̲CIF ̲BUF = FALSE                                   F
                                                                  ̲BYTE
                                                                  ̲ADR
                                                                  =
                                                                  CIF
                                                                  ̲F
                                                                  ̲LIST

                                                                    ELEM
                                                                    (I
                                                                    ̲PT
                                                                    ̲BASE).F
                                                                    ̲BYTE
                                                                    ̲ADR

                                                                    -
                                                                    (BOIB
                                                                    -
                                                                    IOC
                                                                    ̲PT)

         END














Figure 4.2.3.4.2-7…86…1 …02…   …02…   …02…   …02…   …02… …02…        …02…        …02…                         
     
         D̲I̲S̲P̲L̲A̲Y̲ ̲F̲I̲E̲L̲D̲S̲

         NO ̲OF ̲FIELDS = FL ̲PT - BOFL

         BYTE ̲LENGTH = IOC ̲PT - BOIB

         IOC ̲BLE.BYTE ̲SIZE = BYTE ̲LENGTH

         CASE INIT FIELDS ̲OUTPUT (FORMAT ̲IFCB, FIELD ̲LIST, IOC
         ̲BLE,
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  NO
                                                                  ̲OF
                                                                  ̲FIELDS,
                                                                  BYTE
                                                                  ̲LENGTH,VDU
                                                                  ̲OP)
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    (CC):
                                                                    ERROR
                                                                    ̲OK

             ERROR?  CASE ANALYSE ̲ERROR (CC, 1, VDU ̲SPLIT ̲FAILED):
                     L1

                     L1?                                         S̲I̲G̲N̲A̲L̲
                                                                 ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲
                                                                 ̲S̲E̲M̲,̲
                                                                 ̲S̲P̲L̲I̲T̲
                                                                 ̲F̲A̲I̲L̲E̲D̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

                     END CASE

             OK?


         END CASE

         END




















Figure 4.2.3.4.2-8…86…1 …02…   …02…   …02…   …02…   …02… …02…        …02…        …02…                         
     
         R̲E̲A̲D̲ ̲S̲I̲N̲G̲L̲E̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲

         BUF ̲SIZE = MMI ̲HEAD ̲REC.INPUT ̲BUFFER ̲CTRL ̲GROUP.CIF
         ̲BUF ̲LEN.ARRAY
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    (I
                                                                    ̲PT
                                                                    ̲BASE)

         CIF ̲F ̲LIST.NO ̲OF ̲ELEM = 1

         CIF ̲F ̲LIST.ELEM(1). ̲GROUP ̲ID = I ̲PT ̲BASE

         READ ̲VIEW(BUF ̲SIZE, CIF ̲F ̲LIST, INPUT ̲CIF,BUFFER)
                                             (CIF ̲F ̲LIST, CC):ERROR
 ̲OK

         EOCF(I ̲PT ̲BASE) = CIF ̲F ̲LIST.ELEM(I ̲PT ̲BASE).REC ̲LENGTH

         END

































Figur 4.2.3.4.2-9…86…1         …02…   …02…   …02… …02…        …02…        …02…                        
      
4.2.3.4.3    V̲D̲U̲ ̲D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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̲

         This module inputs from VDU. It performs either initial
         or continued input:

         I̲n̲i̲t̲i̲a̲l̲:̲

         The modle clears buffers, sets input buffer structure,
         sets parameters for call of Format Handler (IOC), initiates
         Fields Input and associates completion of I/O to semaphore
         SVDIA ̲SEM.

         C̲o̲n̲t̲i̲n̲u̲e̲d̲:̲

         The module calls the modules SYNTAX ̲VALIDATION, SEMANTI
         ̲VALIDATION and possibly DISPLAY ̲ERROR ̲CODES. It writes
         data to CIF (if required), sets up parameters for call
         of Format Handler (IOC), initiates Fields Output and
         associates completion of I/O to semaphore SVDIA ̲SEM.
         When input is complete the CIF-dministration field
         is written to disk and a response to SFCO signalled
         to semaphore
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  SFCO
                                                                  ̲SEM.



4.2.3.4.3.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)  VDU ̲DATA ̲INPUT (INITIAL ̲CONTINUED: BOOLEAN)

         b)  VDU ̲DATA ̲INPUT (R0 R6)

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

         R0  BOOLEAN Destr.
         R6  LINK                                                Destr.

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

         R0-R7                                                   Destr.

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

         None.…86…1         …02…   …02…   …02… …02…        …02…        …02…            
                       
4.2.3.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲



4.2.3.4.3.3.1 F̲I̲N̲D̲ ̲F̲I̲R̲S̲T̲ ̲F̲I̲E̲L̲D̲

         Searches by means of the VUS ̲MMI ̲CONTROL ̲TABLE for
         the first field to be input from the VDU.



4.2.3.4.3.3.2 W̲R̲I̲T̲ ̲A̲D̲M̲

         Sets up parameters and performs WRITE ̲VIEW call.



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̲

             INITIAL                                             4.2.3.5
             ADM2 ̲BUF                                             4.2.3.5
             ADM2 ̲BUF ̲LENGTH                                     4.2.3.5
             FIELD ̲LIST                                           4.2.3.5
             FIELD ̲LIST ̲LENGTH                                   4.2.3.5
             CURRENT ̲FORMAT                                       4.2.35
             SEQ.REC.VDIA.FORMAT                                 4.1.4
             INPUT                                                4.2.3.5
             INITIAL                                             4.2.3.5
             FORMAT ̲IFCB                                          4.1.4
             IOC ̲BLE                                             4.2.3.5
             FIRST ̲FIELD                                          4.2.3.5
             NO ̲OF ̲FIELDS                                         4.2.3.5
             VAL ̲ERR                                             4.2.3.5
             ERR ̲LIST ̲FULL                                        4.2.3.5
             VDU ̲SPLIT ̲FAILED                                    CPS/DBD/001
             BUFFERS ̲SHARED                                       42.3.5
             CIF ̲BUF ̲PT                                           4.2.3.5
             BOCB                                                 4.2.3.5
             MMI ̲PT                                              4.2.3.5
             EOMM                                                 4.2.3.5
             MMI ̲CTRL ̲REC                                         4.2.3.5
             IOC ̲PT                                              4.2.3.5
             CIF ̲F ̲LIST                                           4.2.3.5
             OUTPUT ̲CIF                                           4.1.4…86…1
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  …02…
                                                                  
                                                                  
                                                                  …02…
                                                                  
                                                                  
                                                                  …02…
                                                                  …02…
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  …02…
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  …02…
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             N/A

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

             BUF ̲SIZE



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

         The module performs either initial input or continued
         input:

         I̲n̲i̲t̲i̲a̲l̲:̲

         -   Clears ADM2 ̲BUF and ield List

         -   Sets input buffer structure

         -   Sets parameters for the Format Handler (IOC)

         -   Initiates Fields Input

         -   Associates completion of I/O to semaphore SVDIA
             ̲SEM

         C̲o̲n̲t̲i̲n̲u̲e̲d̲:̲

         -   Calls SYNTAX ̲VALIDATION

         -   Calls SEMANTIC ̲VALIDATION

         -Writes data to CIF

         -   Calls DISPLAY ̲ERROR ̲CODES

         -   Writes Administration field to CIF

         -   Sets parameter for the Format Handler (IOC)

         -   Initiates Fields Input

         -   Associates completion of I/O to semaphore SVDIA
             ̲SEM

         -   Responds to SFCO upon comletion of input by signaling
             semaphore SFCO ̲SEM…86…1 …02…   …02…   …02…   …02…   …02… …02…        …02…     
               …02…                           
         V̲D̲U̲ ̲D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲

         INITIAL?    C̲L̲E̲A̲R̲ ̲(̲A̲D̲M̲2̲ ̲B̲U̲F̲,̲ ̲A̲D̲M̲2̲ ̲B̲U̲F̲ ̲L̲E̲N̲G̲T̲H̲,̲ ̲0̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲5̲)̲

                     C̲L̲E̲A̲R̲ ̲(̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲,̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲L̲E̲N̲G̲T̲H̲,̲ ̲0̲)̲
                     ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲5̲)̲

                     C̲L̲E̲A̲R̲ ̲(̲B̲O̲C̲B̲(̲1̲)̲,̲ ̲E̲O̲C̲B̲(̲M̲A̲X̲ ̲N̲O̲ ̲O̲F̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲S̲)̲        -̲
                                                                       ̲B̲O̲C̲B̲(̲1̲)̲,̲0̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲5̲)̲

                     CURRENT ̲FORMAT = SEQ.REC.VDIA ̲FORMAT

                     S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲ ̲(̲I̲N̲P̲U̲T̲)̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲6̲-̲1̲)̲

                     S̲E̲T̲ ̲F̲H̲ ̲P̲A̲R̲A̲M̲ ̲(̲I̲N̲I̲T̲I̲A̲L̲)̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲3̲)̲

                     CASE INIT FIELDS ̲INPUT (FORMAT ̲IFCB, IOC
                     ̲BLE,
                                                                   
                                                                   
                                                                   
                                                                   FIRST
                                                                   ̲FIELD,
                                                                   NO
                                                                   ̲OF
                                                                   ̲FIELDS
                                                                   VDU
                                                                   ̲OP)
                                                                   
                                                                   
                                                                   
                                                                   (CC,SO
                                                                   ̲REF):
                                                                   ERROR
                                                                   ̲OK

                                                                 ERROR?
                                                                 
                                                                 ANALYSE
                                                                 ̲ERROR
                                                                 (CC,0)

                                                                 OK?
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 VDU
                                                                 ̲OP.CMD
                                                                 =
                                                                 VDU
                                                                 ̲DATA
                                                                 ̲INPUT
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 ASSOCIATE
                                                                 (SVDIA
                                                                 ̲SEM,
                                                                 VDU
                                                                 ̲OP):
                                                                 OK

                     END CASE

                     VAL ̲ERR = ERR ̲LIST ̲FULL = FALSE

                     INITIAL = FALSE                       
                       RETURN

         CASE WAIT ̲SYSTEM ̲CALL(VDU ̲OP)(OUTR0,OUTR1,OUTR2,OUTR3,OUTR4)
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    (CC):ERROR
                                                                    ̲OK

             ERROR?  CASE ANALYSE ̲ERROR (CC,1,VDU ̲SPLIT ̲FAILED):L1

                     L1?  S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲S̲P̲L̲I̲T̲ ̲F̲A̲I̲L̲E̲D̲)̲
                                                (̲4̲.̲2̲.̲3̲.̲6̲.̲2̲.̲3̲-̲4̲)̲

                     END CASE

             OK?


         END CASE

         Continued              4.2.3.4.3-1…86…1 …02…   …02…   …02…   …02…   …02… …02… 
               …02…        …02…                                  
         V̲D̲U̲ ̲D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲       continued

         BUFFERS ̲SHARED?  CIF ̲BUF ̲PT(I ̲PT ̲BASE) = BOCB (I ̲PT
         ̲BASE) +
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   BYTES
                                                                   ̲TRANSFERRED

                                                                 
                                                                 C̲H̲E̲C̲K̲
                                                                 ̲F̲I̲N̲A̲L̲
                                                                 ̲C̲A̲L̲L̲
                                                                 ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲0̲-̲1̲)̲

                                                                 
                                                                 E̲E̲C̲
                                                                 ̲V̲A̲L̲
                                                                 ̲P̲R̲O̲C̲(̲V̲A̲L̲
                                                                 ̲P̲R̲O̲C̲,̲
                                                                 ̲R̲E̲A̲D̲
                                                                 ̲I̲T̲E̲M̲
                                                                 ̲P̲T̲,̲
                                                                 ̲I̲T̲E̲M̲
                                                                 ̲L̲E̲N̲G̲T̲H̲,̲
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 W̲R̲I̲T̲E̲
                                                                 ̲I̲T̲E̲M̲
                                                                 ̲P̲T̲)̲(̲I̲T̲E̲M̲
                                                                 ̲L̲E̲N̲G̲T̲H̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲1̲-̲1̲)̲:̲O̲K̲

                                                                 
                                                                 W̲R̲I̲T̲E̲
                                                                 ̲C̲I̲F̲
                                                                 ̲B̲U̲F̲
                                                                 ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲2̲-̲1̲)̲

         S̲Y̲N̲T̲A̲X̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲5̲)̲

         MMI ̲PT GT EOMM OR ERR ̲LIST ̲FULL? S̲E̲M̲A̲N̲T̲I̲C̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲
                                                                    (̲C̲U̲R̲R̲E̲N̲T̲
                                                                    ̲F̲O̲R̲M̲T̲)̲
                                                                    ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲6̲)̲

                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   VAL
                                                                   ERR?
                                                                   D̲I̲S̲P̲L̲A̲Y̲
                                                                   ̲E̲R̲R̲O̲R̲
                                                                   ̲C̲O̲D̲E̲S̲
                                                                    4̲.̲2̲.̲3̲.̲4̲.̲7̲)̲

                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   W̲R̲I̲T̲E̲
                                                                   ̲A̲D̲M̲
                                                                   ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲8̲)̲

                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   S̲I̲G̲N̲A̲L̲
                                                                   ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲
                                                                   ̲S̲E̲M̲,̲
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                    S̲E̲M̲A̲N̲
                                                                    ̲V̲A̲L̲
                                                                    ̲R̲E̲S̲U̲L̲T̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲
                                                                    
                                                                    
                                                                    R̲E̲T̲U̲R̲N̲

         C̲L̲E̲A̲R̲ ̲(̲F̲I̲E̲L̲D̲ L̲I̲S̲T̲,̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲L̲E̲G̲T̲H̲,̲ ̲0̲)̲(̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲5̲)̲

         S̲E̲T̲ ̲F̲H̲ ̲P̲A̲R̲A̲M̲ ̲(̲C̲O̲N̲T̲)̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲3̲)̲

         CASE INIT FIELDS ̲INPUT (FORMAT ̲IFCB, IOC ̲BLE, FIRST
         ̲FIELD,
                                                                    NO
                                                                    ̲OF
                                                                    ̲FIELDS,
                                                                    VDU
                                                                    ̲OP)
                                                                    (CC,SO
                                                                    ̲REF):
                                                                    ERROR
                                                                    ̲OK

             ERROR? ANALYSE ̲ERROR (CC,0)

             OK?    VDU ̲OP.CMD = VDU ̲DATA ̲INPUT
                ASSOCIATE (SVDIA ̲SEM, VDU ̲OP): OK

         END CASE

         END





Figure 4.2.3.4.3-2…86…1 …02…   …02…   …02…   …02…   …02… …02…        …02…        …02…                          
     
         S̲E̲T̲ ̲F̲H̲ ̲P̲A̲R̲A̲M̲

         INITIAL?                                                  MMI
                                                                   ̲PT
                                                                   =
                                                                   BOMM

         F̲I̲N̲D̲ ̲F̲I̲R̲S̲T̲ ̲F̲I̲E̲L̲D̲ ̲(̲C̲O̲N̲T̲)̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲5̲)̲ F̲I̲N̲D̲ ̲F̲I̲R̲S̲T̲ ̲F̲I̲E̲L̲D̲
         ̲(̲I̲N̲I̲T̲)̲
                                                   (̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲5̲)̲

         F̲I̲N̲D̲N̲O̲ ̲O̲F̲ ̲F̲I̲E̲L̲D̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲4̲)̲

         END





































Figure 4.2.3.4.3-3…86…W …02…   …02…   …02…   …02…   …02… …02…        …02…        …02…                          
      
         F̲I̲N̲D̲ ̲N̲O̲ ̲O̲F̲ ̲F̲I̲E̲L̲D̲S̲

         NO ̲OF ̲FIELDS = CHAR ̲COUNT = 0
         LOOP UNTIL MMI ̲PT GT EOMM
         S̲E̲T̲ ̲M̲M̲I̲ ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲7̲-̲1̲)̲
         F ̲TYPE EQ FIXED?                                        FG
                                                                 ̲COUNT
                                                                 EQ
                                                                 ZERO?
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 NO
                                                                 ̲OF
                                                                 ̲FIELDS
                                                                 =      NO
                                                                        ̲OF
                                                                        ̲FIELDS
                                                                        =
                                                                        NO
                                                                        ̲OF
                                                                        ̲FIELDS
                                                                        
                                                                        
                                                                        NO
                                                                        ̲OF
                                                                        ̲FIELDS
                                                                        +
                                                                  
                                                                  
                                                                  
                                                                  INCxF
                                                                  ̲COUNT
                                                                  x
                                                                  FG
                                                                  ̲COUNT
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  INC
                                                                  x
                                                                  F
                                                                  ̲COUNT
                                                                  LG
                                                                  ̲COUNT
                                                                  =
                                                                  F
                                                                  ̲COUNT
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  CHAR
                                                                  ̲COUNT=CHAR
                                                                  ̲COUNT+
                                                                  LOOP
                                                                  UNTIL
                                                                  LG
                                                                  ̲COUNT
                                                                  EQ
                                                                  ZERO
                                                                  
                                                                  INCxF
                                                                  ̲COUNTx(F
                                                                  ̲SIZE+3)
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  CHAR
                                                                  ̲COUNT
                                                                  =
                                                                  CHAR
                                                                  ̲COUN
                                                                  +
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  INCxF
                                                                  ̲COUNT
                                                                  x
                                                                  FG
                                                                  ̲COUNTx(F
                                                                  ̲SIZE+3)
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  DECREMENT
                                                                  LG
                                                                  ̲COUNT
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  INCREMENT
                                                                  MMI
                                                                  ̲PT
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  EQUIVALENCE
                                                                  (MMI
                                                                  ̲CTRL
                                                                  ̲TABLE
                                                                  (MMI
                                                                  ̲PT)
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  F
                                                                  ̲SIZE:
                                                                  MMI
                                                                  ̲CTRL
                                                                  ̲REC.FIELD
                                                                  ̲SIZE)
                                                                  END
                                                                  LOOP
         LOOP UNTIL C ̲ING GT INC
             LOOP UNTL C ̲L ̲NO NE L ̲NO
                 IOC ̲PT + F ̲SIZE+3 GT EOIB?   EXIT
                 CHAR ̲COUNT = CHAR ̲COUNT + F ̲SIZE+3
                 IOC ̲PT = IOC ̲PT + CHAR ̲COUNT
                 C ̲F ̲NO = F ̲NO
                 INCREMENT MMI ̲PT, NO ̲OF ̲FIELDS
                 S̲E̲T̲ ̲M̲M̲I̲ ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲7̲-̲1̲)̲
             END LOOP
             INCREMENT C ̲INC
         END OOP
             INCREMENT MMI ̲PT
         END LOOP
         END

Figure 4.2.3.4.3-4…86…W …02…   …02…   …02…   …02…   …02… …02…        …02…        …02…                          
     
         F̲I̲N̲D̲ ̲F̲I̲R̲S̲T̲ ̲F̲I̲E̲L̲D̲

         INITIAL?    LOOP UNTIL MMI ̲PT GT EOMM
                                                                 S̲E̲T̲
                                                                 ̲M̲M̲I̲
                                                                 ̲V̲D̲U̲
                                                                 ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲
                                                                 ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲7̲-̲1̲)̲
                                                                 F
                                                                 ̲TYPE
                                                                 EQ
                                                                 INPUT?
                                                                 
                                                                 C
                                                                 ̲L
                                                                 ̲NO
                                                                 =
                                                                 L
                                                                 ̲NO
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   C
                                                                   ̲INC
                                                                   =
                                                                   1
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   
                                                                   C
                                                                   ̲F
                                                                   ̲N
                                                                   =
                                                                   1
                                                                 INCREMENT
                                                                 MMI
                                                                 ̲PT
                                                                 INITIAL
                                                                 ̲CALL
                                                                 =
                                                                 TRUE
                     END LOOP
         S̲E̲T̲ ̲M̲M̲I̲ ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲7̲-̲1̲)̲
         LOOP UNTIL MMI ̲PT GT EOMM
     F ̲TYPE EQ INPUT?   FG ̲COUNT EQ ZERO?    C ̲F ̲O LT
                        F ̲NO?
                                                INCREMENT
                                     C ̲F ̲NO
     INCREMENT MMI ̲PT                           INITIAL
                                     ̲CALL = FALSE
     INITIAL ̲CALL = TRUE                     C ̲INC LT
                                     INC?
                                                INCREMENT
                                     C ̲INC
     SET ̲MMI ̲VDU ̲ADDRESSES
     (4.2.3.6.7-1)                              C ̲F
                                     ̲N = 1
                                                INITIAL
                                     ̲CALL = FALSE
                                             INCREMENT
                                     MMI ̲PT
     C ̲L ̲NO = L ̲NO                           INITIAL
                                     ̲CALL = TRUE
                                             S̲E̲T̲ ̲M̲M̲I̲
                                     ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲
                                                   
                                      (̲4̲.̲2̲.̲3̲.̲6̲.̲7̲-̲1̲)̲
     C ̲INC = 1                               C ̲L ̲NO
                                     = L ̲NO
      ̲F ̲NO = 1                               C ̲INC =
                                     1
                                             C ̲F ̲NO
                                     = 1
                        C ̲F ̲NO LT F ̲COUNTxFG ̲COUNT?
                        INCREMENT C ̲F ̲NO
                                                   
                                     INCREMENT MMI ̲PT
                                                   
                                     INITIAL ̲CALL=TRUE
                        C ̲INC LT INC?     INCREMENT
                        C ̲INC
                        INCREMENTMMI ̲PT  C ̲F ̲NO = 1
                        INITIAL ̲CALL =    INITIAL ̲CALL
                        = FALSE
                                  TRUE
                        S̲E̲T̲ ̲M̲M̲I̲ ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲7̲-̲1̲)̲
                        C ̲L ̲NO = L ̲NO
                        C ̲INC = 1
                        C ̲F ̲NO = 1

 END LOOP
 CONTINUE
Figure 4.2.3.4.3-5…86…1 …02…   …02…   …02…   …02…   …02… …02…    …02…            …02…                      
         
 F̲I̲N̲D̲ ̲F̲I̲R̲S̲T̲ ̲F̲I̲E̲L̲D̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲D̲)̲

 FIRST ̲FIELD.IOC ̲LINE ̲NO = C ̲L ̲NO

 FIRST ̲FIELD.IOC ̲INC ̲NO = C ̲INC

 FIRST ̲FIELD.IOC ̲FIELD ̲NO = C ̲F ̲NO + MAX ̲NO ̲OF ̲MARGIN
 ̲FIELDS

 SAVE ̲MMI ̲PT = MI ̲PT

 END




































Figure 4.2.3.4.3-6…86…1 …02…   …02…   …02…   …02…   …02… …02…    …02…            …02…                      
         
 W̲R̲I̲T̲E̲ ̲A̲D̲M̲

 BUF ̲SIZE = SIZE (ADM2 ̲BUF)

 CIF ̲F ̲LIST.NO ̲OF ̲ELEM = 1

 CIF ̲F ̲LIST.ELEM(1).F ̲GROUP ̲ID = 1

 CIF ̲F ̲LIST.ELEM(1).F ̲BYTE ̲ADR = 0

 CIF ̲F ̲LIST ̲ELEM (1). REC ̲LENGTH = UF ̲SIZE

 CASE WRITE ̲VIEW (BUF ̲SIZE, CIF ̲F ̲LIST, OUTPUT ̲CIF,
 ADM2 ̲BUF)

                        (CIF ̲F ̲LIST, CC): ERROR ̲OK

     ERROR? A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲0̲,̲C̲C̲)̲

     OK?

 END CASE

 END
























Figure 4.2.3.4.3-7…86…1         …02…   …02…   …02… …02…    …02…            …02…                  
         
4.2.3.4.4    V̲D̲U̲ ̲F̲O̲R̲M̲A̲T̲ ̲O̲U̲T̲P̲U̲T̲



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̲

 This module outputs a format (possibly including data)
 to the VDU. it reads in the appropriate VUS ̲MMI ̲CONTROLTABLE,
 sets output buffer structure, clears the format split,
 creates output buffers for the Format Handler (if required)
 and displays the format.



4.2.3.4.4.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)  VDU ̲FORMAT ̲OUTPUT

 b)  VDU ̲FORMAT ̲OUTPUT (R)

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

 R6  LINK          destr.

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

 R0-R7             destr.

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

 None



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

 None




4.2.3.4.4.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̲

             CURRENT ̲FORMAT          4.2.3.5
             OUTPUT                  4.2.3.5
             FORMAT ̲IFCB             4.1.4
             FL ̲PT                   4.2.3.5
             BOFL                    4.2.3.5
             IOC ̲PT                  4.2.3.5
             BOIB                    4.2..5
             FIELD ̲LIST              4.2.3.5
             FIELD ̲LIST ̲LENGTH       4.2.3.5
             MMI ̲PT                  4.2.3.5
             EOMM                    4.2.3.5
             IOC ̲BLE                 4.2.3.5
             VDU ̲SPLIT ̲FAILED        CPS/DBD/001

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

             N/A.

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

             N/A



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

         The module performs as follow:

         -   Reads in the VUS ̲MMI ̲CONTROL ̲TABLE record corresponding
             to the current format

         -   Sets output buffer structure

         -   Clears split

         -   Calls Format Handler to get format

         -   Creates Field List and Buffer List based on VUS
             ̲MMI ̲CTRL ̲TABLE

         -   Insets lines for repeatable fields corresponding
             to actual output

         -   Displays data fields by call to Format Handler

         -   Outputs remaining part of format…86…1         …02…   …02… 
              …02… …02…    …02…            …02…                           
         V̲D̲U̲ ̲F̲O̲R̲M̲A̲T̲ ̲O̲U̲T̲P̲U̲T̲

         CURRENT ̲FORMAT = SVUP ̲OP.PARA1

         R̲E̲A̲D̲ ̲M̲M̲I̲ ̲C̲T̲R̲L̲ ̲T̲A̲B̲L̲E̲ ̲(̲C̲U̲R̲R̲E̲N̲T̲ ̲F̲O̲R̲M̲A̲T̲)̲ ̲4̲.̲2̲.̲3̲.̲6̲.̲1̲3̲-̲1̲)̲

         S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲ ̲(̲O̲U̲T̲P̲U̲T̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲6̲-̲1̲)̲

         C̲L̲E̲A̲R̲ ̲S̲P̲L̲I̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲4̲-̲1̲)̲

GET ̲FORMAT (FORMAT ̲IFCB, CURRENT ̲FORMAT)(CC): OK

         C̲R̲E̲A̲T̲E̲ ̲F̲O̲R̲M̲A̲T̲ ̲B̲U̲F̲F̲E̲R̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲4̲-̲2̲)̲

         D̲I̲S̲P̲L̲A̲Y̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲4̲-̲3̲)̲

         END






























                    Figure 4.2.3.4.4-1


         C̲R̲E̲A̲T̲E̲ ̲F̲O̲R̲M̲A̲T̲ ̲B̲U̲F̲F̲E̲R̲S̲

         FL ̲PT = BOFL

         IOC ̲PT = BOIB

         C̲L̲E̲A̲R̲ ̲(̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲,̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲L̲E̲N̲G̲T̲H̲,̲ ̲0̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲5̲)̲

         LOOP UNTIL MMI ̲PT GT EOMM

             S̲E̲T̲ ̲M̲M̲I̲ ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲7̲-̲1̲)̲

             S̲E̲ ̲M̲E̲M̲O̲R̲Y̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲0̲-̲1̲)̲

             S̲E̲T̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲9̲-̲1̲)̲

             F ̲TYPE NE EXCEPT?

             INC EQ ZERO?   INC = CNT

                            L̲I̲N̲E̲ ̲I̲N̲S̲E̲R̲T̲ ̲(̲F̲O̲R̲M̲A̲T̲ ̲I̲F̲C̲B̲,̲ ̲L̲ ̲N̲O̲,̲0̲,̲C̲N̲T̲)̲
                                                   (̲4̲.̲2̲.̲3̲.̲6̲.̲3̲-̲1̲)̲

             C ̲CNT = 1

             LOOP UNTIL C ̲INC GT INC

             FG ̲COUNT EQ ZERO?  F̲I̲E̲L̲D̲ ̲R̲E̲P̲E̲A̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲6̲-̲1̲)̲

                 F̲I̲E̲L̲D̲ ̲G̲R̲O̲U̲P̲ ̲R̲E̲P̲E̲A̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲7̲-̲1̲)̲

                 INCREMENT INC

             END LOOP

             INCREMENT MMI ̲PT

         END LOOP

         END







                    Figure 4.2.3.4.4-2


 D̲I̲S̲P̲L̲A̲Y̲ ̲F̲O̲R̲M̲A̲T̲

 NO ̲OF ̲FIELDS = FL ̲PT - BOFL

 BYTE ̲LENGTH  = IOC ̲PT - BOIB

 CASE FIELDS ̲OUTPUT (FORMAT ̲IFCB, FIELD ̲LIST, IOC ̲BLE,
                    NO ̲OF ̲FIELDS, BYTE ̲LENGTH)(CC):
                   ERROR ̲OK
     ERROR?  CASE ANALYSE ̲ERROR (CC, 1, VDU ̲SPLIT ̲FAILED):
     L1

                 L1?  S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲S̲P̲L̲I̲T̲ ̲F̲A̲I̲L̲E̲D̲)̲
                                     (̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

             END CASE

     OK?

 END CASE

 CASE FORMAT ̲OUTPUT (FORMAT ̲IFCB)(CC): ERROR ̲OK

     ERROR?  CASE ANALYSE ̲ERROR (CC,1,VU ̲SPLIT ̲FAILED):L1

             L1?  S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲S̲P̲L̲I̲T̲ ̲F̲A̲I̲L̲E̲D̲)̲
                                     (̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

             END CASE

     OK?


 END CASE

 S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲O̲K̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

 END







Figure 4.2.3.4.4-3…86…1         …02…   …02…   …02… …02…    …02…            …02…                  
         
4.2.3.4.5    S̲Y̲N̲T̲A̲X̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲



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̲

 This module scans through the Field List and Buffer
 List and based on the VUS ̲MMI ̲CONTROL ̲TABLE calls the
 apprpriate validation procedure for each field, moving
 data to output buffer. The Error List is updated if
 appropriate.



4.2.3.4.5.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)  SYNTAX ̲VALIDATION

 b)  SYNTAX ̲VALIDATION (R6)

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

 C̲a̲l̲l̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

 R6  LINK          Destr.

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

 R0-R7             Destr.

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

 None



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

 None.






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̲

             FL ̲PT                   4.2.3.5
             BOFL                    4.2.3.5
             IOC ̲PT                  4.2.3.5
             BOIB                    4.2.3.5
             MMI ̲PT                  4.2.3.5
             SAVE ̲MMI ̲PT             4.2.3.5
             FIXED                   4.2.3.5
         CIF ̲BUF ̲PT                  4.2.3.5
             BOCB                    4.2.3.5
             VAL ̲ERR                 4.2.3.5
             ERR ̲LIST ̲FULL           4.2.3.5
             OLD ̲ERROR ̲LIST          4.2.3.5
             NE ̲PT                   4.2.3.5
             BOEL                    4.2.3.5
             OE ̲PT                   4.2.3.5
             EOEL                    4.2.3.5
             BNEL                    4.2.3.5
             ENEL                    4.2.3.5
             EOMM                    4.2.3.5
             INITIAL ̲CALL            4.2.3.5                      FINAL
                                                                  ̲CALL  4.2.3.5

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

             N/A

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

             BOER                    INTEGER
             ER ̲PT                   INTEGER
             EOER                    INTEGER



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

         This module performs syntax validation on input data
         from VDU:

         -   Scans through Field List and Buffr List

         -   Calls appropriate validation procedure

         -   Updates Error List (old or new)


 S̲Y̲N̲T̲A̲X̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲

 FL ̲PT = BOFL

 IOC ̲PT = BOIB

 MMI ̲PT = SAVE ̲MMI ̲PT

 S̲E̲T̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲9̲-̲1̲)̲

 L̲O̲O̲P̲ ̲U̲N̲T̲I̲L̲ ̲I̲O̲C̲ ̲L̲ ̲N̲O̲ ̲E̲Q̲ ̲Z̲E̲R̲O̲

     S̲E̲T̲ ̲M̲M̲I̲ ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲7̲-̲)̲

     S̲E̲T̲ ̲M̲E̲M̲O̲R̲Y̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲0̲-̲1̲)̲

     READ ̲ITEM ̲PT = IOC ̲PT

     ITEM ̲LENGTH = I ̲SIZE

     I ̲TYPE = FIXED?  FG ̲COUNT = ZERO? WRITE ̲ITEM ̲PT
     = IOC ̲F ̲NO x
                                                   
                                     I ̲SIZE + I ̲PT

                      WRITE ̲ITEM ̲PT = "(IOC ̲F ̲NO/F ̲COUNT)"
                   + I ̲PT

     RITE ̲ITEM ̲PT = CIF ̲BUF ̲PT (I ̲PT ̲BASE) + I ̲SIZE

     WRITE ̲ITEM ̲PT GT EOCB (I ̲PT ̲BASE)? W̲R̲I̲T̲E̲ ̲C̲I̲F̲ ̲B̲U̲F̲(̲I̲
     ̲P̲T̲ ̲B̲A̲S̲E̲)̲
                                                  (̲4̲.̲2̲.̲3̲.̲6̲.̲1̲2̲-̲1̲)̲

     C̲H̲E̲C̲K̲ ̲F̲I̲N̲A̲L̲ ̲C̲A̲L̲L̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲8̲-̲1̲)̲

     CASE E̲X̲E̲C̲ ̲V̲A̲L̲ ̲P̲R̲O̲C̲ ̲(̲V̲A̲L̲ ̲P̲R̲O̲C̲,̲ ̲R̲E̲A̲D̲ ̲I̲T̲E̲M̲ ̲P̲T̲,̲ ̲I̲T̲E̲M̲
     ̲L̲E̲N̲G̲T̲H̲
             W̲R̲I̲T̲ ̲I̲T̲E̲M̲ ̲P̲T̲)̲(̲I̲T̲E̲M̲ ̲L̲E̲N̲G̲T̲H̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲9̲-̲1̲)̲:̲
             ̲E̲R̲R̲O̲R̲ ̲O̲K̲

         ERROR?  U̲P̲D̲A̲T̲E̲ ̲E̲R̲R̲O̲R̲ ̲L̲I̲S̲T̲ ̲(̲I̲O̲C̲ ̲L̲ ̲N̲O̲,̲ ̲I̲O̲C̲ ̲I̲N̲C̲,̲
                 ̲I̲O̲C̲ ̲F̲ ̲N̲O̲,̲
                                              ̲E̲R̲R̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲4̲-̲1̲)̲

                 VAL ̲ERR = TRUE

                 ERR ̲LIST ̲FULL?   EXIT

         OK?

     END CASE

 Continued              "()" means iteger division rounded
 up

Figure 4.2.3.4.5-1  (1/2)…86…1 …02…   …02…   …02…   …02…   …02… …02…    …02…            …02…                
           
 S̲Y̲N̲T̲A̲X̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲          (continued)


     I ̲TYPE = VARIABLE?  CIF ̲BUF ̲PT (I ̲PT ̲BASE) = CIF
     ̲BUF ̲PT
                                     (I ̲PT ̲BASE) + ITEM
                                     ̲LENGTH

     INCREMENT FL ̲PT

     S̲E̲T̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲(̲4̲.̲2̲.̲3̲.̲6̲.̲9̲-̲1̲)̲

     F̲I̲N̲D̲ ̲M̲M̲I̲ ̲E̲N̲T̲R̲Y̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲5̲-̲3̲)̲

     S̲E̲T̲ ̲I̲O̲C̲ ̲R̲E̲C̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲8̲-̲1̲)̲

     IOC ̲PT = IOC ̲PT + BYTE ̲COUNT

 END LOOP

 END


























Figure 4.2.3.4.5-2…86…1 …02…   …02…   …02…   …02…   …02… …02…    …02…            …02…                    
       
 F̲I̲N̲D̲ ̲M̲M̲I̲ ̲E̲N̲T̲R̲Y̲

 LOOP UNTIL MMI ̲PT GT EOMM

     L ̲NO EQ IOC ̲L ̲NO?  FG ̲COUNT EQ ZERO?  INITIAL ̲CALL=FALSE
                                             EXIT

     INCREMENT MMI ̲PT   LOOP UNTIL MMI ̲PT GT EOMM

                         "(IOC ̲F ̲NO/F ̲COUNT)" EQ F ̲NO?
                          EXIT

                          INCREMENT MMI ̲PT

                        END LOOP

 END LOOP


 INITIAL ̲CALL = TRUE

 END






















      "()" means integer division rounded up.



Figure 4.2.3.4.5-3…86…1         …02…   …02…   …02… …02…    …02…            …02…                  
         
4.2.3.4.6    S̲E̲M̲A̲N̲T̲I̲C̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲



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

 This module performs semantic validation corresponding
 to the format. The validation is based on data set
 upby the syntax validation procedures.



4.2.3.4.6.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)  SEMANTIC ̲VALIDATION (FORMAT: FORMAT ̲ID ̲TYPE)

 b)  SEMANTIC ̲VALIDATION (R0, R6)

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

 C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

 R0  Pointer to Current Format   detr.
 R6  LINK                        destr.

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

 R0-R7

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

 None



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

 None.



4.2.3.4.6.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̲

     CURRENT ̲FORMAT     4.2.3.5


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

             N/A

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

             N/A



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

         This module calls the semantic validation procedure
         corresponding to the specified format.



         S̲E̲M̲A̲N̲T̲I̲C̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲

         CASE CURRENT ̲FORMAT OF FORMAT ̲TYPE

             PRPF?      S̲E̲M̲A̲N̲ ̲V̲A̲L̲ ̲P̲R̲P̲R̲

             PRAP?      S̲E̲M̲A̲N̲ ̲V̲A̲L̲ ̲P̲R̲A̲P̲

             PRAS?      S̲E̲M̲A̲N̲ ̲V̲A̲L̲ ̲P̲R̲A̲S̲
             .
             .
             .


             SUPN?      S̲E̲M̲A̲N̲ ̲V̲A̲L̲ ̲S̲U̲P̲N̲

         END CAS

         END
































4.2.3.4.7    D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲C̲O̲D̲E̲S̲



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

         This module displays error codes in the margin of the
         format on the VDU. The error codes correspond to the
         erors found by the validation procedures. Previously
         displayed error codes are removed. Fields in error
         are displayed in REVERSE VIDEO and for fields previously
         displayed in REVERSE VIDEO this effect is removed.



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

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

         a)  DISPLAY ̲ERROR ̲CODES

         b)  DISPLAY ̲ERROR ̲CODES (R6)

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

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R6  LINK                    Destr.

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

         R0-R7                       Destr.

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

         None



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



4.2.3.4.7.3.1 D̲I̲S̲P̲ ̲E̲R̲R̲ ̲C̲O̲E̲

         Displays one error code in the margin by call to Format
         Handler (IOC)




4.2.3.4.7.3.2 C̲H̲A̲N̲G̲E̲ ̲A̲T̲T̲R̲

         Changes field attributes to/from REVERSE ̲VIDEO.



4.2.3.4.7.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̲

             OLD ̲ERROR ̲LIST          4.2.3.5
             BOEL                    4.2.3.5
             EOEL       4.2.3.5
             BNEL                    4.2.3.5
             ENEL                    4.2.3.5
             FL ̲PT                   4.2.3.5
             BOFL                    4.2.3.5
             IOC ̲PT                  4.2.3.5
             BOIB                    4.2.3.5
             FORMAT ̲IFCB             4.1.4
             FIELD ̲LIST              4.2.3.5
             IOC ̲BLE                 4.2.3.5
             VDU ̲SPLIT ̲FAILED        CPS/DBD/001

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

             N/A

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

         O ̲PT           INTEGER
             N ̲PT                    INTEGER
             OEND                    INTEGER
             OEND                    INTEGER
             EEND                    INTEGER



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

         This module displayes the Old Error List or the NEW
         ERROR LIST and changes field attributes to/from REVERSE
         ̲VIDEO.


 D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲C̲O̲D̲E̲S̲

 OLD ̲ERROR ̲LIST?   O ̲PT = BNEL

 O ̲PT = BOEL       OEND = ENEL

 OEND = EOEL       N ̲PT = BOEL

 N ̲PT = BNEL       NEND = EOEL

 NEND = ENEL

 S̲E̲T̲ ̲E̲R̲R̲ ̲L̲I̲S̲T̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲.̲6̲.̲1̲1̲-̲1̲)̲

 OEND GT NEND? EEND = OEND

 EEND = NEND

 FL ̲PT = BOFL

 IOC ̲PT = BOIB

 LOOP UNTIL O ̲PT GT EEND

     S̲E̲T̲ ̲F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲5̲.̲9̲-̲1̲)̲

     S̲E̲T̲ ̲I̲O̲C̲ ̲R̲E̲C̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲8̲-̲1̲)̲

     O ̲L ̲NO LT N ̲L ̲NO?  B̲L̲A̲N̲K̲ ̲I̲N̲V̲E̲R̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲-̲2̲)̲

                        INCEMENT O ̲PT

     O ̲L ̲NO EQ N ̲L ̲NO?  C̲H̲A̲N̲G̲E̲ ̲I̲N̲V̲E̲R̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲-̲3̲)̲

     D̲I̲S̲P̲L̲A̲Y̲ ̲I̲N̲V̲E̲R̲T̲
     (̲4̲.̲2̲.̲3̲.̲4̲.̲6̲-̲4̲)̲      INCREMENT O ̲PT

     INCREMENT N ̲PT     INCREMENT N ̲PT

     INCREMNT FL ̲PT

     INCREMNT IOC ̲PT

     S̲E̲T̲ ̲E̲R̲R̲ ̲L̲I̲S̲T̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲1̲1̲-̲1̲)̲

 END LOOP

 OLD ̲ERROR ̲LIST  OLD ̲ERROR ̲LIST = FALSE

 END                      Figure 4.2.3.4.7-1…86…1      
   …02…   …02…   …02… …02…    …02…            …02…                         
  
 B̲L̲A̲N̲K̲ ̲I̲N̲V̲E̲R̲T̲

 IOC ̲L ̲NO = O ̲L ̲NO

 IOC ̲INC = O ̲INC

 IOC ̲F ̲NO = 1

 START ̲BYTE = HEX 1E

 BYTE ̲COUNT = 0

 TYPE = 1

 NO ̲OF ̲FIELDS = 1

 BYTE ̲LENGTH = 3

 D̲I̲S̲P̲ ̲E̲R̲R̲ ̲C̲O̲D̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲5̲)̲

 IOC ̲F ̲NO = O ̲F ̲NO

 FIELD ̲ATTR = 0

 C̲H̲A̲N̲G̲E̲ ̲A̲T̲T̲R̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲-̲6̲)̲

 END




















Figure 4.2.3.4.7-2…86…1         …02…   …02…   …02… …02…    …02…            …02…                  
         
 C̲H̲A̲N̲G̲E̲ ̲I̲N̲V̲E̲R̲T̲

 IOC ̲L ̲NO =  N ̲L ̲NO

 IOC ̲INC = N ̲INC

 IOC ̲F ̲NO = 1

 START ̲BYTE = HEX 1E

 BYTE ̲COUNT = 3

 TYPE = 1

 DATA = N ̲ERR

 NO ̲OF ̲FIELDS = 1

 BYTE ̲LENGTH = 6

 D̲I̲S̲P̲ ̲E̲R̲ ̲C̲O̲D̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲-̲5̲)̲

 IOC ̲F ̲NO = O ̲F ̲NO

 FIELD ̲ATTR = 0

 C̲H̲A̲N̲G̲E̲ ̲A̲T̲T̲R̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲-̲6̲)̲

 IOC ̲F ̲NO = N ̲F ̲NO

 FIELD ̲ATTR = BIT ̲2

 C̲H̲A̲N̲G̲E̲ ̲A̲T̲T̲R̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲-̲6̲)̲

 END













Figure 4.2.3.4.7-3…86…1         …02…   …02…   …02… …02…    …02…            …02…                  
         
 D̲I̲S̲P̲L̲A̲Y̲ ̲I̲N̲V̲E̲R̲T̲

 IOC ̲L ̲NO =  N ̲L ̲NO

 IOC ̲INC = N ̲INC

 IOC ̲F ̲NO = 1

 START ̲BYTE = HEX 1E

 BYTE ̲COUNT = 3

 TYPE = 1

 DATA = N ̲ERR

 NO ̲OF ̲FIELDS = 1

 BYTE ̲LENGTH = 6

 D̲I̲S̲P̲ ̲E̲R̲ ̲C̲O̲D̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲-̲5̲)̲

 IOC ̲F ̲NO = N ̲F ̲NO

 FIELD ̲ATTR = BIT ̲2

 C̲H̲A̲N̲G̲E̲ ̲A̲T̲T̲R̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲-̲6̲)̲

 END




















Figure 4.2.3.4.7-4…86…1         …02…   …02…   …02… …02…    …02…            …02…                   
          
 D̲I̲S̲P̲ ̲E̲R̲R̲ ̲C̲O̲D̲E̲

 CASE FIELDS ̲OUTPUT (FORMAT ̲IFCB, FIELD ̲LIST, IOC ̲BLE,
                     NO ̲OF ̲FIELDS, BYTE ̲LENGTH)(CC):
                                      ERROR ̲OK

     ERROR?  CASE ANALYZE ̲ERROR (C, 1,VDU ̲SPLIT ̲FAILED):L1

                 L1?   S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲ ̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲S̲P̲L̲I̲T̲
                 ̲F̲A̲I̲L̲E̲D̲)̲
                                                   
  (̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

               END CASE

     OK?

 END CASE

 END




























Figure 4.2.3.4.7-5…86…1         …02…   …02…   …02… …02…    …02…            …02…                   
          
 C̲H̲A̲N̲G̲E̲ ̲A̲T̲T̲R̲

 CASE CHANGE ̲FIELD ̲ATTR (FORMAT ̲IFCB, IOC ̲FIELD ̲LIST,
                     FIELD ̲ATTR)(CC): ERROR ̲OK

     ERROR?  CASE ANALYZE ̲ERROR (CC, 1,VDU ̲SPLIT ̲FAILED):L1

                 L1?   S̲I̲G̲N̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲S̲P̲L̲I̲T̲ ̲F̲A̲I̲L̲E̲D̲)̲
                                   (̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

               END CASE

     OK?

 END CASE

 END




























Figure 4.2.3.4.7-6…86…1         …02…   …02…     …02…  …02…  …02…  …02…  …02…             …02…             
        
4.2.3.5  C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲

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

     N/A

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

     N/A

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

     TYPE    BUF ̲CTRL ̲REC ̲TYPE =

             RECORD
                 FIELD ̲LIST ̲LENGTH:  INTEGER
                 OC ̲BUFFER ̲LENGTH:   INTEGER
                 CIF ̲BUF ̲LEN ̲ARRAY:  CIF ̲BUF ̲LEN ̲ARRAY
                                     ̲TYPE
             END;

     TYPE    CIF ̲BUF ̲LEN ̲ARRAY ̲TYPE =

         ARRAY (1..MAX ̲NO ̲OF ̲CIF ̲FIELDS - 1) OF INTEGER

     VAR MMI ̲HEAD ̲REC =

             RECORD
                 FORMAT ̲ID           FORMAT ̲ID ̲TYPE
                 CONT ̲FORMAT ̲I       FORMAT ̲ID ̲TYPE
                 INPUT ̲BUFFER ̲CTRL ̲
                 GROUP               BUF ̲CTRL ̲REC ̲TYPE
                 OUTPUT ̲BUFFER ̲CTRL ̲
                 GROUP               BUF ̲CTRL ̲REC ̲TYPE
                 MAX ̲NO ̲OF ̲MARGIN ̲
                 FIELDS INTEGER
                 CIF ̲ACCESS          BOOLEAN
                 MMI ̲REC ̲COUNT       INTEGER
             END;


             TYPE  MMI ̲CTRL ̲REC =

                      RECORD
                         FIELD ̲TYPE           MMI ̲FIELD ̲TYPE
                         LINE ̲NO              INTEGER
                         INC ̲COUNT            INTEGER
                         FIELD ̲NO             INTEGER
                         FIELD ̲COUNT          INTEGER
                         FIELD ̲GROUP ̲COUN     INTEGER
                         FIELD ̲SIZE           INTEGER
                         CIF ̲FIELD ̲NO         INTEGER
                         ITEM ̲SIZE            INTEGER
                         ITEM ̲TYPE            MMI ̲ITEM ̲TYPE
                         ITEM ̲PT ̲BASE         INTEGER
                         DATA ̲ITEM ̲PT         INTEGER
                         ITEM ̲COUNT ̲BASE      INTEGER
                         ITEM ̲COUNT ̲PT        INTEGER
                         DISPLAY ̲PROCEDURE    DISPLA ̲PROCEDURE
                                              ̲TYPE
                         VALIDATION ̲PROCEDURE VALIDATION ̲PROCEDURE
                                              ̲TYPE
                         ERROR ̲CODE           ERROR ̲CODE ̲TYPE
                      END;

             TYPE  MMI ̲FIELD ̲TYPE             (FIXED, REPEATABLE,
                                              APPENDABLE, INPUT,
                                              OUTPUT, EXCEPT)

             TYPE  MMI ̲ITEM ̲TYPE              (FIXED, VARIABLE)

             VAR   MMI ̲CTRL ̲TABLE=

                   ARRAY(1..MAX ̲MMI ̲CTRL ̲TABLE ̲SIZE) OF MMI
                   ̲CTRL ̲REC

             VAR   FIRST ̲FIELD =

                      RECORD
                         IOC ̲LINE ̲NO          INTEGER
                         IOC ̲INC ̲NO           INTEGER
                         IOC ̲FIELD ̲NO         INTEGER
                      END;

             VAR   IOC ̲FIELD ̲LIST =

                      ARRAY (1..END ̲OF ̲BUFFER ̲AREA)OF INTEGER;

             VA IOC ̲BUF =

                      ARRAY (1..END ̲OF ̲BUFFER ̲AREA) OF INTEGER;


             TYPE  IOC.HEADER ̲TYPE =

                      RECORD
                         START ̲BYTE           BYTE
                         BYTE ̲COUNT           BYTE
                         TYPE                 BYTE
                      END;

             VAR   IOC ̲REC =

                      RECORD
                         IOC ̲HEADER           IOC ̲HEADER ̲TYPE
                         IOC ̲DAT              ARRAY (1..BYTE
                                              ̲COUNT) OF CHAR
                      END;

             VAR   IOC ̲BLE                    BUFFER ̲LIST ̲ELEMENT
                                              ̲TYPE

             TYPE  F ̲LIST ̲ELEM =

                      RECORD
                         F ̲GROUP ̲ID           NO ̲OF ̲FIELDS
                         F ̲BYTE ̲ADR           INTEGER
                         REC ̲LENGTH           INTEGER
                      END;

             VAR   CIF ̲F ̲LIST =

                      RECORD
                         NO ̲OF ̲ELE            INTEGER
                         ELEM                 ARRAY (1..MAX
                                              ̲NO ̲OF ̲CIF ̲FIELDS)
                                              OF F ̲LIST ̲ELEM
                      END;

             VAR   CIF ̲BUF (1..N) =

                      ARRAY (1..END ̲OF ̲BUFFER ̲AREA) OF INTEGER;

             VAR   ADM1 ̲BUF =

                      ARRAY (1..EAM1) OF INTEGER;

             VAR   ADM2 ̲BUF =

                      ARRAY(1..EAM2) OF INTEGER;


             TYPE  ERRL ̲REC =

                      RECORD
                         MARGIN ̲LINE ̲NO       INTEGER
                         MARGIN ̲INC ̲NO        INTEGER
                         MARGIN ̲ERR ̲CODE      INTEGER
                         ERR ̲FIELD ̲NO         INTEGER
                      END;

             VAR   ERR ̲LIST =

                      ARRA (1..2 x MAX ̲NO ̲OF ̲VAL ̲ERR) OF ERRL
                      ̲REC;

             VAR   KEY ̲LIST =

                      RECORD
                         INFO                 INTEGER
                         LINK                 POINTER
                         KEY                  FORMAT ̲ID ̲TYPE
                      END;

             VAR   MMI ̲TMP ̲PARAM              TMP ̲PARAM ̲TYPE;

             VAR   BAM1                       INTEGER
                   ADM1 ̲PT                    INTEGER
                   EAM1                       INTEGER
                   BA2                        INTEGER
                   ADM2 ̲PT                    INTEGER
                   EAM2                       INTEGER
                   BIBL                       INTEGER
                   ICBL ̲PT                    INTEGER
                   EIBL                       INTEGER
                   BOBL                       INTEGER
                   OCBL ̲PT                    INTEGER
                   EOBL                       INTEGER
                   BOMM                       INTEGER
                   MMI ̲PT                     INTEGER
                   EOMM                       INTEGER
                   BOFL                       INTEGER
             FL ̲PT          INTEGER
                   EOFL                       INTEGER
                   BOIB                       INTEGER
                   IOC ̲PT                     INTEGER
                   EOIB                       INTEGER
                   FIELD ̲LIST ̲LENGTH          INTEGER
                   IOC ̲BUF ̲LENGTH             INTEGER


             VAR   BOCB=

                      ARRAY (1..MAX ̲NO ̲OF ̲CIF ̲FIELDS-1) OF INTEGER;

                   EOCB =

                      ARRAY (1..MAX ̲NO ̲OF ̲CIF ̲FIELDS-1) OF INTEGER;

                   CIF ̲BUF ̲PT =

                      ARRAY (1..MAX ̲NO ̲OF ̲CIF ̲FIELDS1) OF INTEGER;

                   EOCF =

                      ARRAY (1..MAX ̲NO ̲OF ̲CIF ̲FIELDS-1) OF INTEGER;

             VAR   BOEL                       INTEGER
                   OE ̲PT                      INTEGER
                   EOEL                       INTEGER
                   BNEL                       INTEGER
                   NE ̲PT                      INTEGER
                   ENEL                       INTEGER

             VAR   CIF ̲BUF ̲LENGTH =

                      ARRAY (1..MAX ̲NO ̲OF ̲CI ̲FIELDS-1) OF INTEGER;

             VAR   BUFFERS ̲SHARED             BOOLEAN
                   INPUT                      BOOLEAN
                   MMI ̲HEAD ̲SIZE              SIZE(MMI ̲HEAD
                                              ̲REC)
                   MMI ̲SECTION ̲SIZE           INTEGER
                   CTRL ̲REC ̲SIZE              SIZE(MMI ̲CTRL
                                              ̲REC)
                   CURRENT ̲FORMAT             FORMAT ̲ID ̲TYPE
                   END ̲OF ̲CIF ̲FIELD           BOOLEAN
                   END ̲OF ̲CIF ̲UF              BOOLEAN
                   F ̲BYTE ̲ADR                 INTEGER
                   FIXED                      BOOLEAN
                   OUTPUT                     BOOLEAN
                   ADM                        BOOLEAN
                   INITIAL                    BOOLEAN
                   FIELD ̲LIST ̲FULL            BOOLEAN
                   END ̲OF ̲IOC ̲BUF             BOOLEAN
                   ADM1 ̲BUF ̲LENGTH            INTEGER
                   ADM2 ̲BUF ̲LENGTH            INTEGER
                   VAL ̲ERR                    BOOLEAN
                   SAVEMMI ̲PT                 INTEGER
                   OLD ̲ERROR ̲LIST             BOOLEAN
                   INITIAL ̲CALL               BOOLEAN
                   FINAL ̲CALL                 BOOLEAN…86…1     
                                                 …02…   …02…     …02…  …02…
                                               …02…  …02…  …02…        
                                                   …02…        
                                                          
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̲



4.2.3.6.1    S̲T̲O̲P̲ ̲I̲N̲P̲U̲T̲ ̲O̲U̲T̲P̲U̲T̲



4.2.3.6.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̲

         Cancels outstanding system call and clears buffers.



4.2.3.6.1.2 n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

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

         a)  STOP ̲INPUT ̲OUTPUT

         b)  STOP ̲INPUT ̲OUTPUT (R6)

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

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R6  LINK           Destr.

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

         R0-R7              Destr.

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

         None



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

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

             SFCO ̲SEM                         4.1.4


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

             VDU ̲SPLIT ̲FAILED                 CPS/DBD/001
             CANCELLED

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

             N/A



4.2.3.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. figure 4.2.3.6-1.



 S̲T̲O̲P̲ ̲I̲N̲P̲U̲T̲ ̲O̲U̲T̲P̲U̲T̲

 CMD ̲OP ̲CNT LT 2?  S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲O̲K̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

 CANCEL ̲SYSCALL (VDU ̲OP): O

 CASE WAIT ̲SYSTEM ̲CALL(VDU ̲OP)(OUTRO, OUTR1, OUTR2,
 OUTR3, OUTR4)
                                              (CC):
                                              ERROR
                                              ̲OK

     ERROR? CASE ANALYZE ̲ERROR(CC, 2, SPLIT ̲FAILED,
     CANCELLED):L1,L2

                L1?

                L2?

             END CASE 

     OK?

 END CASE

 S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲O̲K̲)̲(̲4̲.̲2̲3̲.̲6̲.̲2̲3̲-̲1̲)̲


 C̲L̲E̲A̲N̲ ̲U̲P̲ ̲(̲4̲.̲2̲.̲3̲.̲6̲.̲3̲-̲1̲)̲

 END



















Figure 4.2.3.6.1-1…86…1         …02…   …02…   …02…   …02…              …02…                  
          
4.2.3.6.2    C̲L̲E̲A̲N̲ ̲U̲P̲



4.2.3.6.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̲

 Clears the format split and clears buffers.



4.2.3.6.2.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

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

 a)  CLEAN ̲UP

 b)CLEAN ̲UP (R6)

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

 C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

 R6  LINK          Destr.

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

 R0-R7             Destr.

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

 None



4.2.3.6.2.3 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̲

     FORMAT ̲IFCB   4.1.4
     IOC ̲PT        4.2.3.5
     BAM1          4.2.3.5
     BAM2          4.23.5
     EAM1          4.2.3.5
     EAM2          4.2.3.5


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

             CLEAR ̲THE ̲SPLIT        CPS/DBD/001
             VDU ̲SPLIT ̲FAILED       CPS/DBD/001
             MAX ̲NO ̲OF ̲CIF ̲FIELDS   CPS/DBD/001

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

             N/A



4.2.3.6.2.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. figre 4.2.3.6.2-1.



 C̲L̲E̲A̲N̲ ̲U̲P̲

 CASE SEND ̲CONTROL (FORMAT ̲IFCB, CLEAR ̲THE ̲SPLIT): ERROR
 ̲OK

     ERROR? CASE ANALYZE ̲ERROR (CC, 1, DU ̲SPLIT ̲FAILED):L1

             L1?   S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲S̲P̲L̲I̲T̲ ̲F̲A̲I̲L̲E̲D̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

             END CASE

     OK?


 END CASE

 C̲L̲E̲A̲R̲ ̲(̲%̲I̲O̲C̲ ̲P̲T̲,̲ ̲E̲O̲C̲B̲(̲M̲A̲X̲ ̲N̲O̲ ̲O̲F̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲S̲)̲-̲I̲O̲C̲ ̲P̲T̲,̲
 ̲0̲)̲

 C̲L̲E̲A̲R̲ ̲(̲%̲B̲A̲M̲1̲,̲ ̲E̲A̲M̲1̲ ̲-̲ ̲B̲A̲M̲1̲,̲ ̲0̲)̲

 C̲L̲E̲A̲R̲ ̲(̲%̲B̲A̲M̲2̲,̲ ̲E̲A̲M̲2̲ ̲-̲ ̲B̲A̲M̲2̲,̲ ̲0̲)̲

 E̲N̲D̲



















Figure 4.2.3.6.2-1…86…1         …02…   …02…   …02…   …02…              …02…                  
          
4.2.3.6.3    L̲I̲N̲E̲ ̲I̲N̲S̲E̲R̲T̲



4.2.3.6.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̲

 Insert number of lines specified after line/incarnation
 specified.



4.2.3.6.3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

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

 a)  LINE ̲INSERT (SPLIT: SPLIT ̲TYPE
                  LINE:  LINE ̲NUMBER ̲TYPE
                  INC:   INCARNATION ̲NUMBER ̲TYPE)

 b)  LINES ̲INSERT (R0, R1, R2, R6)

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

 C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

 R0: SPLIT ̲TYPE         destr.
 R1: LINE ̲NUMBER ̲TYPE     destr.
 R2: INCARNATION ̲NUMBER ̲TYPE     destr.
 R6: LINK               destr.

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

 R0-R7                  destr.

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

 None.



4.2.3.6.3.3 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̲

     FORMAT ̲IFCB   4.1.4
     L ̲NO          4.2.3.5
     INC           4.2.3.5
     CNT           .2.3.5


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

             VDU ̲SPLIT ̲FAILED       CPS/DBD/001
             INSERT ̲NOT ̲ALLOWED     CPS/DBD/001

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

             N/A



4.2.3.6.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. figure 4.2.3.6.3-1.



 L̲I̲N̲E̲ ̲I̲N̲S̲E̲R̲T̲

 CASE INSERT ̲LINES (FORMAT ̲IFCB, L ̲NO, INC, CNT)(CC):
 ERROR ̲OK

     ERROR? CASE ANALYSE ̲ERROR (C, 2, VDU ̲SPLIT ̲FAILED)
                               INSERT ̲NOT ̲ALLOWED):L1,
                               L2

                   L1?   S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲S̲P̲L̲I̲T̲
                   ̲F̲A̲I̲L̲E̲D̲)̲
                                              (̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

                   L2?   S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲E̲R̲R̲O̲R̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

             END CASE

     OK?


 END CASE



























igure 4.2.3.6.3-1…86…1         …02…   …02…     …02…  …02…  …02…  …02…  …02…              …02…             
        
4.2.3.6.4    L̲I̲N̲E̲ ̲D̲E̲L̲E̲T̲E̲



4.2.3.6.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̲

 Deletes number of lines specified after line/incarnation
 specified.



4.2.3.6.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

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

 a)  LINE ̲INSERT (SPLIT: SPLIT ̲TYPE
                LINE:    LINE ̲NUMBER ̲TYPE
                INC:     INCARNATION ̲NUMBER ̲TYPE)

 b)  LINE ̲INSERT (R0, R1, R2, R6)

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

 C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

 R0: SPLIT ̲TYPE             Destr.
 R1: LINE ̲NUMBER ̲TYPE    Destr.               R2:                   INCARNATION
                                                                    ̲NUMBER
                                                                    ̲TYPE Destr.
 R6: LINK                      Destr.

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

 R0-R7                      Destr.

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

 None



4.2.3.6.4.3 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̲

     FORMAT ̲IFCB            4.1.4
     L ̲NO                      4.2.3.5
     INC                    4.2.3.5
     CNT                    4..3.5


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

             VDU ̲SPLIT ̲FAILED                 CPS/DBD/001
             DELETE ̲NOT ̲ALLOWED               CPS/DBD/001

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

             N/A



4.2.3.6.4.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. figure 4.2.3.6.4-1.



 L̲I̲N̲E̲ ̲D̲E̲L̲E̲T̲E̲

 CASE DELETE ̲LINES (FORMAT ̲IFCB, L ̲NO, INC, CNT)(CC):
 ERROR ̲OK

     ERROR? CASE ANALYSE ̲ERROR(CC, 2, VDU ̲SPLIT ̲FAILED)
                               DELETE ̲NOT ̲ALLOWED)::L1,
                               L2

                   L1?   S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲S̲P̲L̲I̲T̲
                   ̲F̲A̲I̲L̲E̲D̲)̲
                                              (̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

                   L2?   S̲I̲G̲N̲A̲L̲ ̲S̲F̲C̲O̲(̲S̲F̲C̲O̲ ̲S̲E̲M̲,̲ ̲E̲R̲R̲O̲R̲)̲(̲4̲.̲2̲.̲3̲.̲6̲.̲2̲3̲-̲1̲)̲

             END CASE

     OK?


 END CASE




























Figure 4.2.3.6.4-1…86…1         …02…   …02…     …02…  …02…  …02…  …02…  …02…              …02…            
         
4.2.3.6.5    C̲L̲E̲A̲R̲



4.2.3.6.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̲

 Clears specified area by overwriting with specified
 character.



4.2.3.6.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

 C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
 a)  CLEAR (POINTER:  POINTER ̲TYPE
          LENGTH:     INTEGER
          CHAR:       CHARACTER)

 b)  CLEAR (R0, R1, R2, R6)

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

 C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

 R0: POINTER ̲TYPE     destr.
 R1: INTEGER             destr.
 R2: CHARACTER           destr.
 R6: LINK                   destr.

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

 R0-R7

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

 None



4.2.3.6.5.3 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̲

     N/A


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

             N/A

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

             N/A



4.2.3.6.5.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. Functional Specification.



4.2.3.6.6    S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲



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

         Sets up pointers to buffers according to VUS ̲MMI ̲CONTROL
         ̲TABLE ̲HEADER. Call parameter specifies whether to use
         input of output buffer control sets.



4.2.3.6.6.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

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

         a)  SET ̲BUFFER ̲STRUCTURE (INPUT ̲OUPUT: BOOLEAN)

         b)  SET ̲BUFFER ̲STRUCTURE (R0, R6)

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

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R0: BOOLEAN           destr.
         R6: LINK              destr.

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

         R0-R7                 destr.

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

         None…86…1         …02…   …02…     …02…  …02…  …02…  …02…  …02…              …02…      
                       
4.2.3.6.6.3 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̲

             FIELD ̲LIST ̲LENGTH                4.2.3.5
             INPUT ̲BUFFER ̲CTRL ̲GROUP          4.2.3.5
             EOFL                             4.2.3.5
             BOFL                             4.2.3.5
             IOC ̲BUF ̲LENGTH                   4.2..5
             BOIB                             4.2.3.5
             ICL ̲PT                           4.2.3.5
             BIBL                             4.2.3.5
             BOCB                             4.2.3.5
             EOIB                             4.2.3.5
             EIBL                             4.2.3.5
             CIF ̲BUF ̲LENGTH                   4.2.3.5
             EOCB                             4.2.3.5
             OUTPUT ̲BUFFER ̲CTRL ̲GROUP         4.2.3.5
             BUFFERS ̲SHARED                   4.2.3.5
             CIF ̲F ̲LIST        4.2.3.5
             IOC ̲BLE                          4.2.3.5
             MMI ̲PT                           4.2.3.5
             INPUT                            4.2.3.5
             MMI ̲SECTION ̲SIZE                 4.2.3.5
             CTRL ̲REC ̲SIZE                    4.2.3.5
             MMI ̲REC ̲COUNT                    4.2.3.5

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

             N/A

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

             N/A



4.2.3.6.6.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Refer figure4.2.3.6.6.-1


S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲
INPUT?   FIELD ̲LIST ̲LENGTH = INPUT ̲BUFFER ̲CTRL ̲GROUP.BUFFER ̲CTRL ̲REC ̲
                                            TYPE.FIELD ̲LIST ̲LENGTH
     EOFL = BOFL + FIELDLIST ̲LENGTH
     IOC ̲BUF ̲LENGTH = INPUT ̲BUFFER ̲CTRL ̲GROUP.BUFFER ̲CTRL ̲REC ̲
                                          TYPE.IOC ̲BUFFER ̲LENGTH
     BOIB = EOFL+1
     EOIB = BOIB + IOC ̲BUF ̲LENGTH
     ICBL ̲PT = BIBL
     BOCB (ICBL ̲PT) = EOIB + 1
     LOOP UNTIL ICBL ̲PT GT EIBL
         CIF ̲BUF ̲LNGTH(ICBL ̲PT) = INPUT ̲BUFFER ̲CTRL ̲GROUP
                                   BUFFER ̲CTRL ̲REC ̲TYPE.
                                     CIF ̲BUF ̲LEN ̲ARRAY(ICBL ̲PT)
         EOCB (ICBL ̲PT) =
         BOCB(ICBL ̲PT) +
         CIF ̲BUF ̲LENGTH (ICBL ̲PT)
         INCREMENT ICBL ̲PT
         BOCB (ICBL ̲PT)=EOC (ICBL ̲PT - 1) + 1
     END LOOP
 FIELD ̲LIST ̲LENGTH = OUTPUT ̲BUFFER ̲CTRL ̲GROUP.BUFFER ̲CTRL ̲REC ̲TYPE.
                                                   FIELD ̲LIST ̲LENGTH
 EOFL = BOFL + FIELD ̲LIST ̲LENGTH
 IOC ̲BUF ̲LENGTH = OUTPUT ̲BUFFER ̲CTRL ̲GROUP.BUFFE ̲CTRL ̲REC ̲TYPE.
   BOIB = EOFL + 1                                 IOC ̲BUFFER ̲LENGTH
 EOIB = BOIB + IOC ̲BUF ̲LENGTH
 ICBL ̲PT = BIBL
 MMI ̲HGAD ̲REC.CIF ̲ACCESS?  BOCB(ICBL ̲PT) = EOIB+1
 BOCB (ICBL ̲PT) = OUTPUT ̲DATA ̲PT
 LOOP UNTIL ICBL ̲PT GT EIBL
     CIF ̲UF ̲LENGTH(ICBL ̲PT) = OUTPUT ̲BUFFER ̲CTRL ̲GROUP.BUFFER ̲CTRL ̲
                               REC ̲TYPE.CIF ̲BUF ̲LEN ̲ARRAY (ICBL ̲PT)
     EOCB (ICBL ̲PT) = BOCB (ICBL ̲PT) +CIF ̲BUF ̲LENGTH (ICBL ̲PT)
     INCREMENT ICBL ̲PT
     BOCB (ICBL ̲PT)  = EOCB (ICBL ̲PT-1) + 1
 END LOOP       (contiued)                  Figure 4.2.3.6.6-1…86…1 …02…   …02…   …02…   …02…     …02…  …02…  …02…  …02…  …02…   
           …02…                     
 S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲        /continued

 BUFFERS ̲SHARED = FALSE

 ICBL ̲PT = BIBL

 LOOP UNTIL ICBL ̲PT GT EIBL

     CIF ̲F ̲LIST.F ̲LIST ̲ELEM.F ̲BYTE ̲ADR = 0

     BOCB (ICBL ̲PT) LE BOIB  BUFFERS ̲SHARED = TRUE

 END LOOP

 IOC ̲BLE.ADDRESS = BOIB

 MMI ̲PT = BOMM

 MMI ̲SECTION ̲SIZE = CTRL ̲REC ̲SIZE x MMI ̲REC ̲COUNT

 END


























 Figure 4.2.3.6.6-2…86…1         …02…   …02…     …02…  …02…  …02…  …02…  …02…              …02…                  
4.2.3.6.7    S̲E̲T̲ ̲M̲M̲I̲ ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲



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

 Sets up addresses to the VDU address part of the VUS ̲MMI ̲CONTROL ̲TABLE.



4.2.3.6.7.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲

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

 a)  SET ̲MMI ̲VDU ̲ADDRESSES

 b)  SET ̲MMI ̲VDU ̲ADDRESSES (R6)

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

 C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

 R6  LINK                      Destr.

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

 R0-R7                      Destr.

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

 None.



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

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

     MMI ̲CTRL ̲TABLE         4.2.3.5
     MMI ̲PT                 4.2.3.5

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

     N/A


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

             N/A



4.2.3.6.7.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Refer 4.2.3.6.7-1


         S̲E̲T̲ ̲M̲M̲I̲ ̲V̲D̲U̲ ̲A̲D̲D̲R̲E̲S̲S̲E̲S̲

         EQUIVALENCE (MMI ̲CTRL ̲TABLE(MMI ̲PT),
                       F ̲TYPE: MMI ̲CTRL ̲REC.FIELD ̲TYPE)

         EQUIVALENCE (MMI ̲CTRL ̲TABLE(MMI ̲PT),
                       L ̲NO: MMI ̲CTRL ̲REC.LINE ̲NO)

         EQUIVALENCE MMI ̲CTRL ̲TABLE(MMI ̲PT),
                       INC: MMI ̲CTRL ̲REC.INC ̲COUNT)

         EQUIVALENCE (MMI ̲CTRL ̲TABLE(MMI ̲PT),
                       F ̲NO: MMI ̲CTRL ̲REC.FIELD ̲NO)

         EQUIVALENCE (MMI ̲CTRL ̲TABLE(MMI ̲PT),
                       F ̲COUNT: MMI ̲CTRL ̲REC.FIELD ̲COUNT)

         EQUIVALENCE (MMI ̲CTRL ̲TABLE(MMI ̲PT),
                       FG ̲COU