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

⟦cc5a2fcbc⟧ Wang Wps File

    Length: 25718 (0x6476)
    Types: Wang Wps File
    Notes: CPS/SDS/039               
    Names: »1561A «

Derivation

└─⟦945185ab2⟧ Bits:30005808 8" Wang WCS floppy, CR 0113A
    └─ ⟦this⟧ »1561A « 

WangText



…1d……05……1d……06……1c……0c……1c……01……1c……06……1c……07……1b……0b……1b……00……1b……02……1b…
…1b…    …1b……05……1b……06……86…1
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    …02… 
     
     
     
     
     …02…
     
    …02… 
     
     
     
    

…02…CPS/SDS/039

…02…820104…02……02…
USER VDU
DETAILED
 DESIGN
 SPECIFICATION  CAMPS








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

         The V̲DU D̲i̲a̲logue (VDIA) subpackage has the responsibility
         for input of formats from the VDU and output of formats
         to the VDU. Furthermore, VDIA performs the validation
         of data entered in the VDU format area.



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̲

         The following functions are included in this subpackage
         (ref. figures 4.2.3.1-1 to 8):

         -   output of data                                      
                                                                  - input
                                                                    of
                                                                    data
         -   validation of data
















































             FIG. 4.2.3.1-1 to FIG. 4.2.3.1-8


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

         When demanded by UFCO, VDIA will output data to the
         VDU VIA THE FORMAT HANDLER: A command is received via
         semaphore S3 telling which format is to be displayed.

         If an empty format shall be displayed, then VDIA will
         demand that the format handler outputs the requested
         format.

         If a message shall be displayed, then VDIA will demand
         the format handler to output the requested format.
         VDIA will then transfer the referenced message from
         disk to memory and build up a field list and a buffer
         list. Then the format handler will be asked to transfer
         the data to the VDU. This procedure will be repeated
         until all data are transferred to the VDU.

         If, before a completion code is received from the format
         handler, a stop output command is received from UFCO
         via semaphore S3, then the System Call Monitor function
         CANCEL will be called. Upon receipt of the completion
         code, VDIA will clear local memory and send a clear
         VDU command to the format handler. Thereby VDIA will
         return the referenced CIF and a completion code to
         UFCO via semaphore S2.


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

         When commanded by UFCO, VDIA will input data from the
         VDU via the format handler. A command telling which
         format to be input from and a reference to the CIF
         where the data shall be stored are received via semaphore
         S3.

         VDIA will then ask the format handler to transfer data
         from the VDU to main memory.



         Upon completion, VDIA will go through the field list
         and buffer list and store the received data in the
         referenced CIF. The data will be stored in the internal
         message format (IMF). If input data are from a request
         format, then the data will be put into a buffer. The
         procedure will be repeated until all data are transferred
         from the VDU.

         If before a completion code is received from the format
         handler, a stop input command is received from UFCO
         via semaphore S3, then the system call monitor function
         CANCEL will be called. Upon reception of a completion
         code, VDIA will clear local memory and send a clear
         VDU command to the format handler. Thereafter, VDIA
         will return a completion code to UFCO via semaphore
         S2.



4.2.3.1.3    V̲a̲l̲i̲d̲a̲t̲e̲ ̲D̲a̲t̲a̲

         The validation performed by VDIA can be grouped in
         the following events:

         -   Syntax validation

         -   Semantic validation

         -   display of error codes.



4.2.3.1.3.1  S̲y̲n̲t̲a̲x̲ ̲v̲a̲l̲i̲d̲a̲t̲i̲o̲n̲

         The syntax validation concerns both the messages/comments
         and the requests

             Further discussion is TBD





4.2.3.1.3.2  S̲e̲m̲a̲n̲t̲i̲c̲ ̲v̲a̲l̲i̲d̲a̲t̲i̲o̲n̲

         The semantic validation is performed when the hold
         message/comments or request has been syntax validated.

         Further discussion is TBD.



4.2.3.1.3.3  D̲i̲s̲p̲l̲a̲y̲ ̲o̲f̲ ̲E̲r̲r̲o̲r̲ ̲C̲o̲d̲e̲s̲

         If, during validation of a format, errors are found,
         then an error code is stored in an error list together
         with an identification of the field in which the error
         was found. After validation, the error list is sent
         to the VDU via the format handler. These error codes
         will be displayed in the left hand margin. Furthermore,
         the fields in error will be highlighted.



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

         The dialogue subpackage consists of one coroutine with
         semaphore S3 as the main waiting point. The software
         structure of VDIA is shown in figure 4.2.3.2-1.

         The input from S3 will either be a command from UFCO
         or a completion code from the format handler.

         Each command will constitute a main function and is
         implemented as a procedure.

         A brief description of each procedure is given below:















































          …01…FIG.4.2.3.2-1…01…VDIA Software Structure


         a)  Initialization Of VDIA

             The format handler is initialized and the VDU splits
             are defined both for the header area and the format
             area.

         b)  Stop input/output

             Stop input/output, clear VDU and clear local memory.

         c)  Clear up

             Clear VDU

         d)  Start insert lines

             A specified number of lines are inserted in a format

         e)  Start delete lines. A specified number of lines
             are deleted in a format

         f)  Start VDU input

             -   Messages are read from the VDU and stored in
                 a CIF

             -   Requests are read from the VDU

         g)  Start VDU output format

             Outputs an empty format to the VDU

         h)  Start VDU output msg.

             Output a msg. from CIF to VDU

         i)  Start append

             A specified number of lines from a secondary CIF
             are inserted behind the text field on the VDU

         j)  Insert

             A completion code from the format handler is analysed
             and a corresponding completion code is sent to
             UFCO coroutine.



         k)  DELETE

             As insert in (j)

         l)  VDU data output

             Output a msg. from CIF to VDU in bites of 512 bytes
             at the time.

         m)  VDU data input

             -   Messages are read from the VDU and stored in
                 a CIF

             -   Requests are read from the VDU and sent to
                 the UFCO coroutine.

         n)  Validation

             The syntax validation is performed both for requests,
             messages and comments.

         o)  Semantic validation

             The semantic validation is performed both for requests,
             messages and comments.

         p)  Message handling instruction

             The message handling instruction codes and plaindress
             descriptions are displayed on the VDU.

         q)  Display error-codes

             Outputs error codes and inverse vidio the fields
             in error.

         r)  Build M-MON Record

             Calculates and creates the parameters to get a
             msg. cut up in peaces to fit the CIF-buffers. Only
             used to get the msg. from CIF to local memory.

         s)  Build field and buffer list.

             Creates the parameters to get a msg. in peaces
             sent in VDU-buffers from local memory to VDU.


4.2.3.3  D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲ ̲w̲i̲t̲h̲i̲n̲ ̲V̲D̲I̲A̲



4.2.3.3.1    D̲a̲t̲a̲ ̲F̲l̲o̲w̲

         The HIPO diagrams overleaf shows the data flow caused
         by the VDIA Subroutine.



4.2.3.3.2    C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         The control logic of VDIA is shown in a Module-free
         refer fig. 4.2.3.3.2-1.















































            Diag.Id: 4.2.3.3-1…01…START/STOP VDIA















































            Diag.ID: 4.2.3.3-2…01…OUTPUT MESSAGE















































             Diag.ID: 4.2.3.3-3…01…INPUT MESSAGE















































          Diag.ID: 4.2.3.3-4…01…INSERT/DELETE LINES















































                     FIG. 4.2.3.3.2-1


4.2.3.4  M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.3.4.1    V̲D̲U̲-̲M̲A̲I̲N̲-̲M̲O̲D̲U̲L̲E̲



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 controls the distribution of incoming jobs
         from UFCO and VDU ̲IO to the other modules in the subpackage.



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)  VDIA ̲MAIN
         b)  VDIA ̲MAIN(R6)

         The procedure is a submodule which is only called by
         the Coroutine Monitor.

         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                   (DEST)

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

         RO - R7                    (DEST)



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

             N/A


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̲

             UFCO ̲VDIA ̲CMD ̲TYPE            refer 4.1.4
             IDENT ̲TYPE                       -"-
             VDIA ̲UFCO ̲CC ̲TYPE                -"-
             VDU ̲CMD ̲TYPE                     -"-
             USER ACTION TYPE              refer CPS/DBD/001

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

             VDU ̲OP                        refer 4.1.4
             UFCO ̲OP                          -"-
             VDU ̲CMD ̲TYPE                  refer 4.2.3.5
             VUS ̲S2                        refer 4.1.4
             VDIA ̲CC ̲OP                       -"-
             CURSOR ̲RECORD ̲1                  -"-
             FORMAT ̲IFCB                      -"-

         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̲

         Commands and acknowledgement are received in semaphore
         three. They are distinguished to be either UFCO cmd's
         or VDU acknowledgement.

         The structure for both input and output performance
         on VDU is beginning with a UFCO-cmd and the following
         module is the upstart and the first cmd to the VDU.
         The modules activated after a VDU acknowledgement is
         the rest to accomplish the UFCO cmd.


 DIA ̲START ̲LOOP





    START LOOP

         WAIT ̲OPSEM (VUS-S3) (VUS ̲OP) : OK

         CASE VUS ̲OP. IDENT OF

             UFCO ̲IDENT? - U̲F̲C̲O̲ ̲C̲M̲D̲ ̲E̲X̲E̲C̲U̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲2̲

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


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


         END CASE


    END START LOOP





















                 FIG. 4.2.3.4.1-1


 UFCO ̲CMD ̲EXECUTION

 CASE UFCO ̲OP.CMD OF


    VDIA ̲CLOSE ̲DOWN?

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

    VDIA ̲CLEAR ̲VDU?             C̲L̲E̲A̲R̲ ̲O̲P̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲5̲)̲

    VDIA ̲SUSPEND?

    VDIA ̲INPUT ̲FORMAT?          SET VALIDATION ̲REQ =
                                FALSE

                                SET MSG ̲INPUT ̲PENDING
                                ̲TRUE

                                S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲8̲)̲

    VIDA ̲INPUT ̲REQ?             SET REQ ̲INPUT ̲PENDING
                                = TRUE
                                SET VALIDATION ̲REQ =
                                TRUE
                                S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲8̲)̲

    VDIA ̲INPUT ̲MSG?             SET MSG ̲INPUT ̲PENDING
                                = TRUE
                                SET VALIDATION ̲REQ =
                                TRUE
                                S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲8̲
    VDIA ̲OUTPUT ̲FORMAT?         S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲F̲O̲R̲M̲A̲T̲
                                ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲)̲

    VDIA ̲OUTPUT ̲MSG?            S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲P̲U̲T̲ ̲M̲S̲G̲
                                ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲)̲

    VDIA ̲APPEND?                S̲T̲A̲R̲T̲ ̲A̲P̲P̲E̲N̲D̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲4̲)̲

    VDIA ̲INSERT?                S̲T̲A̲R̲T̲ ̲I̲N̲S̲E̲R̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲6̲

    VDIA ̲DELETE?                S̲T̲A̲R̲T̲ ̲D̲E̲L̲E̲T̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲7̲)̲

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


 END CASE

 MOVE UFCO CMD TO VDU ̲OPERATION


 END



                 FIG. 4.2.3.4.1-2


 CASE    VDU ̲OP.CMD OF



    FORMAT ̲TO ̲VDU?              V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲5̲)̲

    FIELDS ̲TO ̲VDU?              V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲5̲)̲

    FIELDS ̲FROM ̲VDU?            V̲D̲U̲ ̲D̲A̲T̲A̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲9̲)̲

    LINES ̲INSERTED?             I̲N̲S̲E̲R̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲8̲)̲

    LINES ̲DELETED?              D̲E̲L̲E̲T̲E̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲1̲-̲9̲)̲

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


 END CASE



























                 FIG. 4.2.3.4.1-3


 STOP ̲INPUT ̲OUTPUT


    PENDING TRANSACTION? - CASE SYS ̲CANCEL(VDU ̲OP)(CC):
    ERROR OK

                                ERROR?  ANALYSE ̲ERROR
                                (CC,0)

                                OK?

                           END CASE

                           CASE SYS ̲WAIT(VDU ̲OP)(CC):
                          ERROR ̲OK

                                ERROR? - ANALYSE ̲ERROR(CC,0)

                                OK?

                           END CASE

    CLEAR (LOCAL MEMORY)

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

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

                     L1? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
                     ̲CC ̲OP.CMD

                  END CASE 

         OK? -   CASE UFCO ̲OP.CMD OF

                     VDIA ̲CLOSE ̲DOWN? - MOVE VDIA ̲CLOSE
                     ̲DOWN ̲CC TO
                                        VDIA ̲CC ̲OP.CMD

                     VDIA ̲CANCEL? - MOVE VDIA ̲CANDEL
                     CC TO ̲
                                    VDIA ̲CC ̲OP.CMD

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

                 END CASE

    END CASE

    SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP) : OK


 END

                 FIG. 4.2.3.4.1-4


 CLEAN UP


    CLEAR (BUFFER)

    CASE     SEND ̲CONTROL (FORMAT ̲IFCBS, CLEAR SPLIT)(CC):ERROR
             ̲OK

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

                     L1? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
                     ̲CC ̲OP.CMD

         OK?     VDIA ̲CLEAR ̲VDU ̲CC TO VDIA ̲CC ̲OP.CMD


    END CASE

    SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP): OK


 END

























                 FIG. 4.2.3.4.1-5


 START ̲INSERT





 CASE INIT ̲INSERT ̲LINES (FORMAT ̲IFCB, LINE NO, INCAR,LINES,VDU
 ̲OP)
                          (CC): ERROR ̲OK

    ERROR? - ANALYZE ̲ERROR(CC,0)

    OK? - ASSOCIATE(VUS ̲S3, VDU ̲OP): OK



 END CASE





























                 FIG. 4.2.3.4.1-6


 START DELETE





    CASE INIT ̲DELETE ̲LINES (FORMAT ̲IFCB, LINE NO, INCAR,LINES,
    VDU ̲OP)
                          (CC): ERROR OK

         ERROR? - ANALYZE ̲ERROR(CC,0)

         OK? - ASSOCIATE(VUS ̲S3, VDU-OP): OK

    END CASE































                 FIG. 4.2.3.4.1-7


 INSERT

    CASE SYS ̲WAIT(VDU ̲OP)(CC):  ERROR ̲OK

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

                          L1 -  MOVE INSERT ̲NOT ̲ALLOWED
                                ̲CC TO 
                                VDIA ̲CC ̲OP ̲CMD

                          L2 -  MOVE SPLIT ̲FAILED ̲CC
                                TO
                                VDIA ̲CC ̲OR CMD


                     END CASE

         OK?         UPDATE FORMAT DESCRIPTOR

                     UPDATE VALIDATION ̲TABLE

                     MOVE LINES ̲INSERTED ̲CC ̲TO ̲VDIA
                     ̲CC ̲UP ̲CMO

    END CASE

    SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP) : OK


 END



















                 FIG. 4.2.3.4.1-8


 DELETE

    CASE SYS ̲WAIT(VDU ̲OP)(CC): ERROR ̲OK

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

                 L1? - MOVE DELETE ̲NOT ̲ALLOWED ̲CC TO
                 VDIA ̲CC ̲OP.CMD

                 L2? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
                 ̲CC ̲OP.CMD


                 END CASE

         OK?     UPDATE FORMAT ̲DESCRIPTOR

                 UPDATE VALIDATION ̲TABLE

                 MOVE LINES ̲DELETED ̲CC TO VDIA ̲CC ̲OP.CMD

    END CASE

    SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP): OK


 END



















                 FIG. 4.2.3.4.1-9


4.2.3.4.2    S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲F̲O̲R̲M̲A̲T̲



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̲

         The right format is fetched from the format handler
         package and sent to the VDU with a transaction id.



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

         b)  START ̲VDU ̲OUTPUT ̲FORMAT (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                        (DEST)

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

         R0 - R7                        (DEST)


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

             N/A



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

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

                 FORMAT-ID                     refer 4.1.4

                 TRANSACTION ̲ID                  -"-

                 VALIDATION ̲TABLE              refer 4.2.3.5

                 FORMAT ̲DISPLAY ̲TABLE            -"-

                 VDU ̲OP ̲IDENTIFIER ̲NAME          -"-

                 FORMAT ̲IFCB                   refer 4.1.4

                 TMP ̲RECORD                      -"-

                 VDIA ̲IO ̲PARAMETER             refer 4.2.3.5

                 FORMAT ̲OUTPUT ̲PENDING           -"-


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

                 None


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

         Usually the Format-display-table will be used to get
         a msg. from Cif to VDU and the Validation table to
         get the msg. from VDU to Cif, but when it only concerns
         a Format to display the Validation-Table will be called
         if the Table also is neaded to the input-transaction.


 START ̲VDU ̲OUTPUT ̲FORMAT


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

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

                 LI? MOVE SPLIT ̲FAILED ̲CC TO VDIA ̲CC
                 ̲OP.CMD

                     SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP):
                     OK

         OK? -   M̲A̲I̲N̲ ̲S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲2̲-̲2̲)̲


       END CASE


 END



























                 FIG. 4.2.3.4.2-1


 MAIN ̲START ̲VDU ̲OUTPUT ̲FORMAT

       CASE GET ̲FORMAT (FORMAT ̲IFCB, FORMAT ̲ID)(CC):ERROR
       ̲OK

             ERROR? - ANALYSE ̲ERROR(CC,0)

             OK?

       END CASE

       BUILD TMP RECORD

       CASE TMP ̲SEARCH (DISPLAY ̲TABLE)(CC):ERROR ̲OK

         ERROR? -    ANALYSE ̲ERROR(CC,0)

         OK?

       END CASE

       B̲U̲I̲L̲D̲ ̲F̲I̲E̲L̲D̲ ̲A̲N̲D̲ ̲B̲U̲F̲F̲E̲R̲ ̲L̲I̲S̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲)̲

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

                 L1? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
                 ̲CC ̲OP.CMD

                       SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC
                     ̲OP):OK

         OK? - SET FORMAT ̲OUTPUT ̲PENDING = TRUE

               MOVE FORMAT ̲TO ̲VDU TO VDU ̲OP.CMD


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

                 ERROR? - ANALYZE ̲ERROR(CC,O)

                 OK? - ASSOCIATE (VUS ̲S3, VDU ̲OP): OK

             END CASE


 END

                 FIG. 4.2.3.4.2-2


4.2.3.4.3    S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲M̲E̲S̲S̲A̲G̲E̲



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

         The module calls the right format in where the message
         shall stay. It finds out how many of the different
         incarantions there shall be and modifies the format
         to fit the msg. Then the message can be fetched and
         be displayed on VDU.



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)  START ̲VDU ̲OUTPUT ̲MSG 

         b)  START ̲VDU ̲OUTPUT ̲MSG (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                 (DEST)

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

         R0 - R7                      (DEST)



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

             N/A


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̲

             None

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

             FORMAT ̲ID                         refer 4.1.4

             TRANSACTION ̲ID                      -"-

             FORMAT ̲IFCB                         -"-

             TMP ̲RECORD                          -"-

             FORMAT ̲DISPLAY ̲TABLE              REFER 4.2.3.5

             VDIA ̲M ̲MON ̲PARAMETER                -"-

             VDIA ̲IO ̲PARAMETER                   -"-

             VDIA ̲ADMINISTRATION ̲LOCATION        -"-

             VOLUME ̲ARRAY(M)                     -"-

             BEG ̲ADDR(M)                         -"-

             END ̲ADDR(M)                         -"-


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

             VAR MSG ̲OUTPUT ̲PENDING:           BOOLEAN

             VAR LINE:                         INTEGER

             VAR INCAR:                        INTEGER

             VAR NO ̲OF ̲LINES:                  INTEGER


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

         The structure of this module is based upon the Format
         Display Table. The common package procedure Build TMP
         is called to handle the Table. The Table contains pointers
         to the administration field and addresses to the VDU:

         Comparing the format with data from the administration
         field the format is modified to fit the message for
         display.

         Only the corrected format is sent for display in this
         start module.


 START ̲VDU ̲OUTPUT ̲MSG


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

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

                     L1? MOVE SPLIT ̲FAILED ̲CC TO VDIA
                     ̲CC ̲OP.CMD

                         SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC
                     ̲OP)

         OK? -   M̲A̲I̲N̲ ̲S̲T̲A̲R̲T̲ ̲V̲D̲U̲ ̲O̲U̲T̲P̲U̲T̲ ̲M̲S̲G̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲2̲


         END CASE


 END



























                 FIG. 4.2.3.4.3-1


 MAIN ̲START ̲VDU ̲OUTPUT ̲MSG

      BUILD TMP RECORD

      CASE TMP ̲SEARCH(FORMAT ̲DISPLAY TABLE)(CC): ERROR
      ̲OK

         ERROR? - ANALYSE ̲ERROR(CC,0)
         OK?

      END CASE

      G̲E̲T̲ ̲A̲N̲D̲ ̲S̲A̲V̲E̲ ̲A̲D̲M̲I̲N̲I̲S̲T̲R̲A̲T̲I̲O̲N̲ ̲F̲I̲E̲L̲D̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲3̲)̲

      CASE GET ̲FORMAT(FORMAT ̲IFCB, FORMAT ̲ID)(CC): ERROR
      ̲OK

         ERROR? - ANALYSE ̲ERROR (CC,0)
         OK?

      END CASE

      E̲X̲T̲E̲N̲D̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲3̲-̲4̲)̲

      VDU ̲FAILED EQ TRUE?

      B̲U̲I̲L̲D̲ ̲F̲I̲E̲L̲D̲ ̲A̲N̲D̲ ̲B̲U̲F̲F̲E̲R̲ ̲L̲I̲S̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲)̲

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

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

                    L1? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
                 ̲CC.OP.CMD

                          SIGNAL ̲OPSEM(VUS ̲S2, VDIA
                     ̲CC ̲OP): OK

                  END CASE

         OK?     SET MSG ̲OUTPUT ̲PENDING = TRUE

                 MOVE FIELDS ̲TO ̲VDU TO VDU ̲OP.CMD

                 CASE ̲INIT ̲OUTPUT ̲FORMAT(FORMAT ̲IFCB,VDU
                 ̲OP)
                                     (CC):ERROR ̲OK
                    ERROR? - ANALYSE ̲ERROR (CC,0)
                    OK? - ASSOCIATE (VUS ̲S3, VDU ̲OP)
         : OK

                 END CASE

      END CASE
                 FIG. 4.2.3.4.3-2


 GET AND SAVE ADMINISTRATION ̲FIELD


      CASE GET ̲VIEW ̲ATTRIBUTES(VIEW ̲ATTRIBUTES, VIEW
      ̲REF)(CC):
                                               ERROR
                                               ̲OK

         ERROR? -    ANALYSE ̲ERROR(CC,0)

         OK?

      END CASE

      CIF FIELDS NEEDED, SEE FORMAT ̲DISPLAY ̲TABLE

      SET FLAG = TRUE IN VOLUME ̲ARRAY(F1,F2,F3,F4,F5,F6,F7,F8,
                                               F9, F10)

      BEG ̲ADDR (0, F1)

      END ̲ADDR (300, F1)

      BUILD VDIA ̲M ̲MON ̲PARAMETERS((V ̲SIZE,V ̲VIEW,V ̲LIST,V
      ̲BUFFER)

      CASE READ ̲VIEW ("ADMINISTRATION FIELD" 
                     SIZE,LIST,VIEW,BUFFER)
                     (CC) ERROR ̲OK

         ERROR? - ANALYSE ̲ERROR(CC,0)

         OK?


      END CASE


      SAVE ADMINISTRATION FIELD

 END







                 FIG. 4.2.3.4.3-3


 EXTEND FORMAT

 LOOP

    PARAMETER SIZE IN FORMAT ̲DISPLAY ̲TABLE

    POINTER COUNTER IN FORMAT ̲DISPLAY ̲TABLE

    COMPARE EQUAL ELEMENT IN CIF WITH FORMAT

    EQ?

    CIF GT FORMAT? ̲CASE INSERT ̲LINES(FORMAT ̲IFCB,NO,INCAR,LINES)
                                  (CC): ERROR ̲OK
             ERROR? - CASE ANALYSE ̲ERROR(CC,2,INSERT
             ̲NOT ̲ALLOWED
                                  VDU ̲SPLIT ̲FAILED)(L1,
                                  L2)

                 L1? - MOVE INSERT ̲NOT ALLOWED ̲CC TO
                 VDIA ̲CC ̲OP.CMD
                 L2? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
                 ̲CC ̲OP.CMD

                     END CASE

                     SET VDU ̲FAILED = TRUE

                     SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP):
                     OK
             OK?

         END CASE

    CASE DELETE ̲LINES(FORMAT,IFCB,N0,INCR,LINES)(CC):ERROR
    ̲OK

         ERROR? - CASE ANALYSE ̲ERROR(CC,2,DELETE NOT
         ALLOWED
                            VDU ̲SPLIT ̲FAILED):(L1,L2)
                     L1? - MOVE DELETE ̲NOT ALLOWED ̲CC
                     TO VDIA ̲CC ̲OP.CMD
                     L2? - MOVE SPLIT ̲FAILED ̲CC TO VDIA
                     ̲CC ̲OP.CMD

                 END CASE

                 SET VDU ̲FAILED = TRUE

                 SIGNAL ̲OPSEM(VUS ̲S2, VDIH ̲CC ̲OP)
         OK?

    END CASE
    TABLE FINISH?    EXIT LOOP

 END LOOP
                 FIG. 4.2.3.4.3-4


4.2.3.4.4    S̲T̲A̲R̲T̲ ̲A̲P̲P̲E̲N̲D̲



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

         The append cmd causes the lines or hold messages from
         another CIF to be displayed in the text field after
         the message displayed on the VDU.



4.2.3.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)  START ̲APPEND
         b)  START ̲APPEND(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                (DEST)

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

         R0 - R7  destroyed



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

             N/A



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̲

             None



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

             APPEND ̲CIF ̲REF                    refer 4.1.4

             FORMAT ̲IFCB                         -"-

             VDU ̲OP ̲IDENTIFIER ̲NAME              -"-

             VALIDATION TABLE (M)              refer 4.2.3.5

             VDIA ̲M ̲MON ̲PARAMETER (M)            -"-

             VDIA ̲ID ̲PARAMETER                   -"-

             END ̲ADDR (M)                        -"-

             VOLUME ARRAY (M)                    -"-

             MSG ̲OUTPUT ̲PENDING                  -"-

             VDIA ̲CIF ̲LOCATION                   -"-


         c)  L̲O̲C̲A̲L̲ ̲D̲A̲T̲A̲

             VAR:

             LINE NO, INCAR, LINES:            INTEGER

             LINE, TO ̲LINE ̲NO                  INTEGER

             OFFSET ̲OF ̲TEXT FIELD:             INTEGER; ADDRESS

             LINE ̲COUNTER:                     INTEGER


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

         From the first CIF. the line and line numbers that
         shall be appended are fetched. From the append-Cif
         the Text line no is checked to set if the lines exist
         or the hold message shall be appended to the first
         text on VDU.

         The reading process from CIF. is starting with the
         first line in Text field and only when the right line
         not has been read it will be displayed on VDU.

         If more than one CIF. buffer-transport is neaded to
         fetch the text lines the VDU ̲DATA ̲OUTPUT ̲MODULE will
         take over, read from CIF. and display on VDU.


 START APPEND

    CASE READ ̲VIEW"LINE NO,LINES"(SIZE,LIST,VIEW,BUFFER)(CC):ERROR
    ̲OK

         ERROR? - ANALYSE ̲ERROR(CC,0)

         OK?

    END CASE

    CASE READ ̲VIEW"TEXT LINES,TEXT OFFSET"(SIZE,LIST,VIEW,BUFFER)(CC):
                                               ERROR
                                               ̲OK
         ERROR? -    ANALYSE ERROR(CC,0)

         OK?

    END CASE

    CHECK AND CALCULATE NO OF LINES

    CASE INSERT ̲LINES(FORMAT ̲IFCB,LINE ̲NO,INCAR,LINES)(CC)
    ̲ERROR ̲OK

      ERROR? - CASE ANALYSE ̲ERROR(CC,2,INSERT ̲NOT ALLOWED,
                     VDU ̲SPLIT ̲FAILED):        (L1,
                                               L2)
                  L1? - MOVE INSERT ̲NOT ̲ALLOWED ̲CC TO
                 VDIA CC ̲OP.CMD
                  L2? - SPLIT ̲FAILED ̲CC TO VDIA CC ̲OP.CMD

             END CASE

                 SIGNAL ̲OPSEM(VUS ̲S2, VDIA ̲CC ̲OP)(CC):
                 OK
       OK?   UPDATE VALIDATION TABLE (TEXT ̲(LINE,INCAR,FIELD)

             S̲T̲A̲R̲T̲ ̲A̲P̲P̲E̲N̲D̲ ̲R̲E̲A̲D̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲4̲-̲2̲

             B̲U̲I̲L̲D̲ ̲F̲I̲E̲L̲D̲ ̲A̲N̲D̲ ̲B̲U̲F̲F̲E̲R̲ ̲L̲I̲S̲T̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲7̲)̲
             MOVE FIELDS ̲TO ̲VDU TO VDU ̲OP.CMD
             CASE INIT ̲FIELDS ̲OUTPUT(FORMAT ̲IFCB,FIELD
             LIST,BLE,
                                               
             NO ̲OF FIELDS, BYTE LENGTH, VDU ̲OP)(CC):
                    ERROR ̲OK
                 ERROR? - ANALYZE ̲ERROR(CC,0)
                 OK? -       ASSOCIATE(VUS ̲S3, VDU ̲OP):
                 OK
                 END CASE

         SET MSG ̲OUTPUT ̲PENDING = TRUE

    END CASE

END…01…FIG. 4.2.3.4.4-1…86…1 …02…  …02…    …02…   …02…   …02…   …02…               
          …02…                       
 START APPEND READING

 VOLUME ̲ARRAY = (0,0,0,0,1,0,0,0,0,0) "TEXT FIELD"

 END ̲ADDR = (0, F5)

 LOOP

    B̲U̲I̲L̲D̲ ̲M̲ ̲M̲O̲N̲ ̲R̲E̲C̲O̲R̲D̲ ̲(̲4̲.̲2̲.̲3̲.̲4̲.̲6̲)̲

    CASE READ ̲VIEW (SIZE, LIST, APPEND ̲CIF ̲REF,BUFFER)

                     (CC): ERROR ̲OK

         ERROR? -    ANALYZE ̲ERROR(CC,0)

         OK?

 …02…END CASE

    COUNT INCOMING LINES

    LINE ̲COUNT GE START ̲APPEND ̲LINE ̲NO?        EXIT
                                               LOOP


 END LOOP




 END














                 FIG. 4.2.3.4.4-2


4.2.3.4.5    V̲D̲U̲ ̲D̲A̲T̲A̲ ̲O̲U̲T̲P̲U̲T̲



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̲

         A completion code from the VDU will activate this module
         when either a format or a part from a message has been
         sent for display on the VDU.

         When it only concerns a Format a completion will be
         sent to the UFCO coroutine. When it concerns a msg.
         from cif the module will either terminate the displaying
         procedure if all the contents of Cif is displayed or
         continue the displaying procedure..



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)  VDU ̲DATA ̲OUTPUT
         b)  VDU ̲DATA ̲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                   (DEST)

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

         R0 - R7                   (DEST)