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

⟦9297f1ebf⟧ Wang Wps File

    Length: 34728 (0x87a8)
    Types: Wang Wps File
    Notes: CPS/SDS/029  ISSUE 2      
    Names: »1761A «

Derivation

└─⟦080c9775e⟧ Bits:30006085 8" Wang WCS floppy, CR 0131A
    └─ ⟦this⟧ »1761A « 

WangText



K…05…K…07…D…01…D…05…D…07…C…0c…C…0f…C…02…C C…07…B…0a…B…0d…B…01…B…05…B…07…A…0c…A…00…A…02…A…07…@…86…1
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          …02…
          
          
          
          
          
          
          
          
          
          
          …02…
          
          
          …02…
          
          
          
          
          
          
          
          

…02…CPS/SDS/029

…02…850501…02……02…
SYSTEM
 STATUS
 AND CONTROL
DETAILED
 DESIGN
 SPECIFICATION…02…ISSUE
 1…02…CAMPS








4.2.2.4.8.5.j P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲M̲M̲A̲N̲D̲ ̲T̲E̲R̲M̲I̲N̲A̲T̲E̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         Subsequent to the accept of the command entered:

         -   if ERROR; Display explanation of error-code and
             return to current format

         -   else display format and field data if actual

         -   set up waiting point for reception of key

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

         Refer figure 4.2.2.4.8.5j-1



         PROCEDURE COMMAND ̲TERMINATE (COMMAND: COMMAND ̲PARAM)

         INTERFACE ̲NO = FORMAT SPLIT

         ERROR ̲DISP EQ TRUE? - D̲I̲S̲P̲L̲A̲Y̲ ̲A̲N̲D̲ ̲R̲E̲T̲U̲R̲N̲

         FORMAT ̲ID = COMMAND ̲FORMAT ̲ID

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

         COMMAND ̲DATA ̲REQ EQ TRUE? - D̲I̲S̲P̲L̲A̲Y̲ ̲F̲I̲E̲L̲D̲S̲ ̲(̲C̲O̲M̲M̲A̲N̲D̲)̲

         FORMAT ̲ID NE COMMAND.CURRENT ̲MENU?

         INTERFACE ̲NO = COMMAND ̲SPLIT

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

         S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲

         END COMMAND.TERMINATE


























                 Figure 4.2.2.4.8.5 j -1



4.2.2.4.8.5.k P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲A̲N̲D̲ ̲R̲E̲T̲U̲R̲N̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The explanation of the error-code is displayed on the
         response line before the cursor is returned to the
         cursor position prior to the depressing of the command
         ̲key.

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

         Refer figure 4.2.2.4.8.5.k-1.



 PROCEDURE DISPLAY ̲AND ̲RETURN

 ERROR ̲CODE = PRINT ̲BUF.ID

 Convert error ̲code from ASCII to bin

 EQUIVALENCE(COMMAND ̲SPLIT ̲FIELDS.FIELD ̲OUT, REG:FIELD
 ̲LIST ̲INFO)

 REG.FIRST ̲FIELD = RESPONSE ̲FIELD

 REG.NUMBER ̲OF ̲FIELDS = 1

 REG.BYTE ̲LENGTH = RESPONSE ̲REG ̲SIZE

 O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲ (TEXT ̲ARR(ERROR ̲CODE), COMMAND ̲SPLIT
 ̲FIELDS)

 SAVE ̲CURSOR EQ TRUE? - SAVE ̲CURSOR = FALSE, INTERFACE
 ̲NO = FOR-
                                      MAT ̲SPLIT)

 EQUIVALENCE(COMMAND ̲SPLIT ̲FIELDS,FIELD ̲OUT,REQ:FIELD
 ̲LIST ̲INFO)

 REG.FIRST ̲FIELD = COMMAND ̲FIELD

 REG.NUMBER ̲OF ̲FIELDS = 2

 REG.BYTE ̲LENGTH = COMMAND ̲REC ̲SIZE + ID ̲REG ̲SIZE

 O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲(CLEAR ̲COMMAND ̲LINE, COMMAND ̲SPLIT ̲FIELDS)

 C̲U̲R̲S̲O̲R̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲ ̲S̲E̲T̲(COMMAND ̲SPLIT ̲FIELDS, COMMAND ̲FIELD)


 END DISPLAY ̲AND ̲RETURN














              Figure 4.2.2.4.8.5.k-1


4.2.2.4.8.5.l P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲F̲I̲E̲L̲D̲S̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲

         The field list and the output ̲buffer are filled out
         with the data to be sent to the unprotected fields
         of the format displayed.

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

         Refer figure 4.2.2.4.8.5.l-1



 PROCEDURE DISPLAY ̲FIELDS(COMMAND: COMMAND ̲PARAM)

 KEY ̲BUF.KEY = ID

 CASE COMMAND.FORMAT ̲ID OF:

     LXLN? - DATA ̲FIELDS = LTUX ̲LINE ̲FIELDS

             S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲       (LTUX ̲LINE ̲TABLE, KEY
                                ̲BUF, ALLMASK,
                                MP ̲BUF)(VALID ̲BUFFER)

             C̲O̲N̲V̲E̲R̲T̲ ̲L̲X̲L̲N̲ ̲R̲E̲C̲ (VALID ̲BUFFER, LXLN ̲BUFFER)

     LTUX?-  DATA ̲FIELDS = LTUX ̲FIELDS

             S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲       (LTUX ̲TABLE, KEY ̲BUF,
                                ALLMASK,
                                MP ̲BUF)(VALID ̲BUFFER)

             C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲X̲ ̲R̲E̲C̲ (VALID ̲BUFFER, LTUX.BUFFER)

     BSMX? - DATA ̲FIELDS = BSMX ̲FIELDS

             SEARCH ̲ENTRY       (BSM ̲X ̲TABLE, KEY ̲BUF,
                                ALLMASK,
                                TMP ̲BUF)(VALID ̲BUFFER)

             C̲O̲N̲V̲E̲R̲T̲ ̲B̲S̲M̲ ̲X̲ ̲R̲E̲C̲  (VALID ̲BUFFER, BSM ̲X
                                ̲BUFFER)

     LTLN? - DATA ̲FIELDS = LTU ̲LINE ̲FIELDS

             S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲       (LTU ̲LINE ̲TABLE, KEY
                                ̲BUF, ALLMASK,
                                TMP ̲BUF)(VALID ̲BUFFER)

             C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲L̲N̲ ̲R̲E̲C̲   (VALID ̲BUFFER, LTLN
                                ̲BUFFER)

     LTUU?-  DATA ̲FIELDS = LTU ̲FIELDS

             S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲       (LTU ̲TABLE, KEY ̲BUF,
                                ALLMASK,
                                TMP ̲BUF)(VALID ̲BUFFER)

             C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲ ̲R̲E̲C̲    (VALID ̲BUFFER, LTU ̲BUFFER)

 END CASE

 OUTPUT FIELDS (DATA ̲FIELDS, OUTPUT ̲BUFFER)

 END DISPLAY ̲FIELDS

              Figure 4.2.2.4.1.5.l-1


4.2.2.4.8.5.m P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲L̲X̲L̲N̲ ̲R̲E̲C̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The data from the LTUX ̲line record are converted to
         the ASCII characters use in the format fields.

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

         PROCEDURE CONVERT ̲LXLN ̲REC

         COUNT = 4

         EQUIVALENCE(VALID ̲BUFFER, REC: LTUX ̲LINE ̲REC)

         LXLN ̲BUFFER(COUNT..COUNT+1) = PRINT ̲BUFFFER.ID

         COUNT = COUNT + 8

         LXLN ̲BUFFER(COUNT) = DEV ̲TO ̲ASCII(REC.DEV ̲TYPE)

         COUNT = COUNT + 8

         LXLN ̲BUFFER(COUNT) = REC.ALPHABET + ASCONI

         COUNT = COUNT + 8

         LXLN ̲BUFFER(COUNT) = REC. SPEED + ASCONI

         COUNT = COUNT + 8

         LXLN ̲BUFFER(COUNT) = STATUS ̲1 ̲TO ̲ASCII(REC.STATUS)

         END CONVERT ̲LXLN ̲REC















4.2.2.4.8.5.n P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲X̲ ̲R̲E̲C̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The data from the LTUX ̲REC are:

         -   converted to ASCII chars

         -   Loaded into the LTUX ̲BUFFER

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

         PROCEDURE CONVERT ̲LTUX ̲REC (VALID ̲BUFFER, LTUX ̲BUFFER)

         COUNT = 4

         EQUIVALENCE (VALID ̲BUFFER ̲REC: LTUX ̲REC)

         LTUX ̲BUFFER (COUNT..COUNT + 1) = PRINT ̲BUFFER.ID

         COUNT = COUNT + 8

         LTUX ̲BUFFER (COUNT..COUNT + 1) = PRINT ̲BUFFER.ID

         COUNT = COUNT + 8

         LTUX ̲BUFFER (COUNT) = STATUS ̲TO ̲ASCII(REC.STATUS)

         END CONVERT ̲LTUX ̲REC











4.2.2.4.8.5.o P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲B̲S̲M̲X̲ ̲R̲E̲C̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The data from the BSMX ̲REC are:

         -   converted to ASCII characters

         -   loaded into the BSMX ̲BUFFER

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

         PROCEDURE CONVERT ̲BSMX ̲REC

         COUNT = 4

         EQUIVALENCE (VALID ̲BUFFER, REC: BSMX ̲REC)

         BSMX ̲BUFFER (COUNT ..COUNT + 1) = PRINT ̲BUFFER.ID

         COUNT = COUNT + 8

         BSM ̲X ̲BUFFER(COUNT) = STATUS ̲2 ̲TO ̲ASCII (REC.STATUS)

         END CONVERT ̲BSMX ̲REC







4.2.2.4.8.5.p P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲ ̲L̲I̲N̲E̲ ̲R̲E̲C̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The data from the LTU line record are:

         -   converted to ASCII characters

         -   loaded into the LTLN ̲BUFFER

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

         PROCEDURE CONVERT ̲LTU ̲LINE ̲REC (VALID ̲BUFFER, LTLN
         ̲BUFFER)

         COUNT = 4

         EQUIVALENCE (VALID ̲BUFFER, REC:LTU ̲LINE ̲REC)

         LTLN ̲BUFFER(COUNT..COUNT + 1) = PRINT ̲BUFFER.ID

         COUNT = COUNT + 8

         LTLN ̲BUFFER(COUNT) = DEV ̲TO ̲ASCII (REC.DEV ̲TYPE)

         COUNT = COUNT + 8

         LTLN ̲BUFFER (COUNT) = REC. SPEED + ASCON 1

         COUNT = COUNT + 8

         LTLN ̲BUFFER (COUNT) = STATUS ̲1 ̲TO ̲ASCII (REC.STATUS)

         END CONVERT ̲LTU ̲LINE ̲REC



4.2.2.4.8.5.q P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲ ̲R̲E̲C̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The data from the LTU ̲REC are

         -   converted to ASCII characters

         -   loaded into the LTU ̲BUFFER

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

         PROCEDURE CONVERT ̲LTU ̲REG

         COUNT = 4

         EQUIVALENCE (VALID ̲BUFFER, REG: LTU ̲REG)

         LTU ̲BUFFER (COUNT..COUNT + 1) = PRINT ̲BUFFER.ID

         COUNT = COUNT + 4

         LTU ̲BUFFER (COUNT) = REG.DEV ̲TYPE + ASCONI

         COUNT = COUNT + 4

         LTU ̲BUFFER (COUNT = STATUS ̲2 ̲TO ̲ASCII (REG.STATUS)

         END CONVERT ̲LTU ̲REG



4.2.2.4.8.5.r P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲A̲T̲A̲ ̲T̲E̲R̲M̲I̲N̲A̲T̲E̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         When data from the format split have been entered and
         accepted:

         -   the format split is cleaned

         -   current menu is displayed

         -   command split is cleaned

         -   cursor position in the command field

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

         PROCEDURE DATA ̲TERMINATE


         FORMAT ̲ID = COMMAND.CURRENT ̲HENV

         D̲I̲S̲P̲L̲A̲Y̲ ̲F̲O̲R̲M̲A̲T̲ (FORMAT ̲ID)

         INTERFACE ̲NO = COMMAND ̲SPLIT

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

         S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲

         PRINT = COMP

         PRINT ̲LOG = TRUE

         END ̲DATA ̲TERMINATE



4.2.2.4.9    Q̲U̲E̲U̲E̲ ̲I̲N̲F̲O̲R̲M̲

         The QUEUE ̲INFORM receives information of the VDU and
         ROP conditions, and START/CLOSE commands from WAMCO.



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

         The COPSY ̲INFORM module initializes/dismantles its
         connections to the VDU or ROP after receiving a command
         from WAMCO.



4.2.2.4.9.2 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)  QUEUE ̲INFORM (SD ̲REF, AP ̲REF)
                          (TERMINATE: BOOLEAN)

         b)  QUEUE ̲INFORM (R6, R2, R5)

         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  SO ̲REF
         R4  LINK

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

         R2  TERMINATE
         R6  SO ̲REF



4.2.2.4.9.3 Q̲U̲E̲U̲E̲ ̲I̲N̲F̲O̲R̲M̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         The following components are contained in the QUEUE
         ̲INFORM module:

         -   QUEUE ̲INFORM
         -   CONTROL ̲TERMINALS
         -   CONTROL ̲WDP ̲VDU
         -   CONTROL ̲WDP ̲ROP

         Each of the components are implemented as a procedure.


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

         a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             START ̲CMI ̲RECORD       4.1.4.7
             WAMCO ̲COMMANDS ̲TO ̲CMI, 
             QEL ̲ATTRIBUTES,
             QEL:                   DBD.CSF

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

             SO ̲REF                 DBD.CSF

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

             PRINTER
             SUB ̲LOOP

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

             VAR WAMCO ̲ATTRIBUTES:  QEL ̲ATTRIBUTES



4.2.2.4.9.5 Q̲U̲E̲U̲E̲ ̲I̲N̲F̲O̲R̲M̲ ̲D̲e̲s̲i̲g̲n̲

         The procedures contained in the QUEUE ̲INFORM module
         are shown in figure 4.2.2.4.9.5-1.



4.2.2.4.9.5.a P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲Q̲U̲E̲U̲E̲ ̲I̲N̲F̲O̲R̲M̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The QEL ̲ATTRIBUTES are received and the SUBTYPE is
         used to call the subprocedures for initiate/dismantle
         the WDP ̲VDU and/or WDP ̲ROP.

         A reply is returned to the WAMCO and the input from
         the VDU is awaited. If close ̲down start ̲up from WAMCO
         is awaited.

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

         Refer figure 4.2.2.4.9.5a-1




         QUEUE INFORM
             START CMI WDP
             CONTROL WDP VDU
             CONTROL WDP ROP
             SEND SSC REPLY







                                      FIGURE 4.2.2.4.9.5-1
                             PROCEDURES OF THE QUEUE ̲INFORM MODULE


 PROCEDURE QUEUE ̲INFORM   (WAM ̲ATTRIBUTES: QEL ̲ATTRIBUTES,
                          QEL, QEL ̲REFERENCE,
 SUBLOOP = TRUE           SUBQUEUE: SUBQUEUE ̲INDEX)

 TERMINATE = FALSE        (TERMINATE: BOOLEAN)

 SUBQUEUE NE WAM ̲Q? -     S̲E̲N̲D̲ ̲G̲A̲R̲B̲L̲E̲ 

 EQUIVALENCE (WAM ̲ATTRIBUTES.HEADER, REQ: QEL ̲HEADER
 ̲TYPE)

 REG.MAINTYPE NE COMMANDS ̲FROM ̲SSC? - SEND ̲GARBLE(GIVE
 ̲
                                    UP,QERROR,CMIQ,QI)

 CASE REG.SUBTYPE OF

     START ̲UP ̲WAMCO? -    SUBLOOP = TRUE

                          S̲T̲A̲R̲T̲ ̲C̲M̲I̲ ̲W̲D̲P̲ (WAM ̲ATTRIBUTES,
                          QEL, CC)

     WDP ̲VDU ̲CONDITION?-  C̲O̲N̲T̲R̲O̲L̲ ̲W̲D̲P̲ ̲V̲D̲U̲ (WAM ̲ATTRIBUTES,QEL,CC)

     WDP ̲ROP ̲CONDITION?-  C̲O̲N̲T̲R̲O̲L̲ ̲W̲D̲P̲ ̲R̲O̲P̲ (WAM ̲ATTRIBUTES,QEL,CC)

     CLOSE ̲DOWN ̲WAMCO?    SUBLOOP = FALSE

                          CLOSE ̲CMI (WAM ̲ATTRIBUTES,
                          QEL, CC)

 END CASE

 WAM ̲ATTRIBUTES.OBJECT EQ BUFFER? -R ̲FLAG = BUFFER ̲R

 R ̲FLAG = QEL ̲R


 S̲E̲N̲D̲ ̲S̲S̲C̲ ̲R̲E̲P̲L̲Y̲ (R ̲FLAG, QEL, CC)

 (GIVE ̲UP,QERROR,SMLQ,QI)

 SUBLOOP EQ FALSE?

 CASE INIT ̲RECEIVE ̲FIRST ̲QEL(TRUE, WAMCO ̲IN, Q ̲OP)
                            (CC): ERROR ̲OK

     ERROR? - ANALYSE ̲ERROR (CC,0)

 END CASE

 END QUEUE ̲INFORM

             Figure 4.2.2.4.9.5.a - 1


4.2.2.4.9.5.b P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲T̲A̲R̲T̲ ̲C̲M̲I̲ ̲W̲D̲P̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The VDU splits are initialized to the FORMAT ̲HANDLER
         and the High Level menu is displayed.

         The WDP ̲ROP connection is "offered" if WDP ̲ROP is present.

         the IO waiting point is initialized.

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

         NA.



4.2.2.4.9.5.c P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲W̲D̲P̲ ̲V̲D̲U̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         If the WDP ̲VDU is reported up the COMMAND ̲SPLIT and
         the FORMATE ̲SPLIT "terminals" are initiated to the
         FORMAT ̲HANDLER, the HIGH ̲LEVEL menu is displayed and
         an "init ̲receive ̲control" is sent for the command split.
         If the WDP ̲VDU is reported down the terminals are removed.

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

         NA.



4.2.2.4.9.5 d P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲V̲D̲U̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         If FLAG equal up the VDU splits are initiated, (INIT
         ̲TERMINAL), the High Level menu is displayed and VDU
         input is awaited, else the VDU splits are "removed"
         and the waiting point cancelled.

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

         NA.





4.2.2.4.9.5.e P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲W̲D̲P̲ ̲R̲O̲P̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         If FLAG equals up the ROP Connection is "offered".

         Else the ROP connection is dismantled and the variable
         PRINTER is set FALSE.

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

         NA.



4.2.2.5  C̲o̲m̲m̲o̲n̲ ̲C̲M̲I̲ ̲D̲a̲t̲a̲



4.2.2.5.1    G̲e̲n̲e̲r̲a̲l̲ ̲D̲a̲t̲a̲

         VAR AP ̲REF =            (IO ̲OP, Q ̲OP)
             DATA ̲TYPE =         (FUNCTION ̲KEYS, COMMANDS, DATA)
             ACCEPT:             BOOLEAN
             INFO:               INFO ̲TYPE
             ERROR ̲DISP:         BOOLEAN
             KEY:                KEY ̲TYPE
             IN ̲BUFFER =         ARRAY (1..90) OF BYTE
             VALID ̲BUFFER =      ARRAY (1..20) OF INTEGER
             VALID ̲1 ̲BUFFER =    ARRAY (1..10) OF INTEGER
             VALID ̲2 ̲BUFFER =    ARRAY (1..50) OF INTEGER
             VALID ̲3 ̲BUFFER =    ARRAY (1..10) OF INTEGER
             INTERFACE ̲NO =      FORMAT ̲SPLIT, COMMAND ̲SPLIT
                                 ref. IOC.FORMAT ̲HANDLER
             FLAG =              OK..VOLUME ̲FAILED
             subset of SSC Completion Codes.

         TYPE  IN ̲BUFFER:            BUFFER
               BUFFER:               ARRAY (1..1) OF INTEGER
               SEND ̲BUFFER:          BUFFER
               INFO ̲TYPE =           (TRUE ̲INF, FALSE ̲INF, KEY
                                     ̲ER, CMD ̲ER, DATA ̲ER, START
                                     ̲UP, NO ̲CONTROL)

         CONST COMMAND ̲FIELDS =
               RESPONSE ̲FIELD =
               ID ̲FIELD =
               ID ̲REC ̲SIZE =
               RESPONSE ̲REC ̲SIZE =
               COMMAND ̲REC ̲SIZE =

         TYPE  KEY ̲TYPE =            (ENTER ̲K, CANCEL ̲K, CMD
                                     ̲KEY)



4.2.2.5.2      C̲o̲m̲m̲a̲n̲d̲ ̲D̲a̲t̲a̲

         VAR   COMMAND ̲TABLE =       ARRAY (1..NO ̲OF ̲COMMANDS)
                                     OF COMMAND ̲PARAM



         TYPE  COMMN ̲PARAM =

                   RECORD
                       COMMAND:      LONG
                       FORMAT ̲ID:    FORMAT ̲TYPE;
                       CURRENT ̲MENU: FORMAT ̲TYPE;
                       FIELD ̲LIST:   POINTER;
                       DATA ̲REQ:     BOOLEAN;
                       ID ̲CHECK:     BOOLEAN;
                       ID ̲MAX:       INTEGER
                       WAIT ̲TIME:    0..MAX ̲WAIT
                       SIZE:         INTEGER
                   END



4.2.2.5.3      F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲S̲ ̲D̲a̲t̲a̲

         VAR   COMMAND ̲SPLIT ̲FIELDS= ARRAY (1..7) OF FDT
               LTUX ̲LINE ̲FIELDS =    ARRAY (1..19) OF FDT
               LTUX ̲FIELDS =         ARRAY (1..7) OF FDT
               BSMX ̲FIELDS =         ARRAY (1..5) OF FDT
               LTU ̲LINE ̲FIELDS =     ARRAY (1..9) OF FDT
               LTU ̲FIELDS =          ARRAY (1..7) OF FDT
               DISK ̲DRIVE ̲FIELDS =   ARRAY (1..6) OF FDT
               VOLUME ̲FIELDS =       ARRAY (1..8) OF FDT
               START ̲ACTIVE ̲FIELDS=  ARRAY (1.. ) OF FDT
               CLOSE ̲DOWN ̲FIELDS =   ARRAY (1..6) OF FDT
               SWITCH ̲OVER ̲FIELDS =  ARRAY (1.. ) OF FDT
               START ̲STANDBY ̲FIELDS= ARRAY (1..9) OF FDT
               ADJUST ̲TIME ̲FIELDS =  ARRAY (1..6) OF FDT
               LOAD ̲MODI ̲FIELDS =    ARRAY (1..12) OF FDT
               SET ̲TRACE ̲FIELDS =    ARRAY (1..6) OF FDT
               DELETE ̲CIF ̲FIELDS =   ARRAY (1..2) OF FDT
               PRINT ̲CON ̲FIELDS =    ARRAY (1..7) OF FDT
               PRINT ̲SW ̲FIELDS =     ARRAY (1..4) OF FDT
               ERROR ̲FIELDS =        ARRAY (1..3) OF FDT
               TERMINATE ̲OPERATOR ̲
               ONLY ̲FIELDS =         ARRAY (1..2) OF FDT

         The field lists are used for interface to the operator
         VDU via the Format Handler

         TYPE  FIELDS

                   RECORD
                       FIELD ̲IN:     FIELD ̲LIST ̲INFO;
                       FIELD ̲OUT:    FIELD ̲LIST ̲INFO;
                       FIELD ̲LIST:   FIELD ̲LIST.TYPE;
                   END;


               FIELD ̲LIST ̲INFO =

                   RECORD
                       FIRST ̲FIELD,
                       NUMBER ̲OF ̲FIELDS
                       BYTE ̲LENGTH: INTEGER
                   END

         TYPE  FDT:                  FIELD ̲LIST ̲TYPE

         TYPE  FIELD ̲LIST ̲TYPE=      ARRAY (1..1) OF FIELD ̲DESCRIPTOR
                                     ̲TYPE

         TYPE  FIELD ̲DESCRIPTOR ̲TYPE =

                   RECORD
                       LINE ̲NO,
                       INCARNATION ̲NO,
                       FIELD ̲NO:     INTEGER;
                   END;



4.2.2.6  C̲o̲m̲m̲o̲n̲ ̲C̲M̲I̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲



4.2.2.6.1      L̲O̲G̲



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

         Send a report to the WDP ̲ROP.



4.2.2.6.1.2 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)    LOG

         b)    LOG (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


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

             TYPE  PRINT ̲TYPE = (INI, COMP, CANC, SYS, NOT ̲AC)
                   

             TYPE  PRINT ̲BUFFER ̲TYPE =

                       RECORD
                           HEADER:     ARRAY (1..4) OF BYTE
                           COMMAND:    ARRAY (1..4) OF CHAR
                           ID:         ARRAY (1..4) OF CHAR
                           ACTION:     ARRAY (1..4) OF CHAR
                           TIME:       ARRAY (1..14) OF CHAR
                       END

             VAR   
                   PRINT:              PRINT ̲TYPE
                   PRINT ̲LOG:          BOOLEAN
                   PRINT ̲BUFFER        PRINT ̲BUFFER ̲TYPE

             INIT  PRINT = COMP



4.2.2.6.1.4 L̲O̲G̲ ̲D̲e̲s̲i̲g̲n̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         A log of either the "control initiated" or "control
         terminate" is sent to the WDP ̲ROP. The log contains
         the time of day DTG ̲TYPE.

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

         Refer figure 4.2.2.6.1.4-1.



         PROCEDURE LOG

         CASE PRINT OF:

             INI?  -   PRINT ̲BUFFER.ACTION = 'INITIATED'

             COMP? -   PRINT ̲BUFFER.ACTION = 'COMPLETED'

             CANC? -   PRINT ̲BUFFER.ACTION = "SYSTEM TERMINATED"

             NOT ̲AC? - PRINT ̲BUFFER ̲ACTION = 'NOT ACCEPTED'


         END CASE

         CASE READ ̲TIME (SYSTEM ̲TIME)(PRINT ̲BUFFER.DATE):ERROR
         ̲OK

              ERROR?

              OK?

         END CASE

         CASE APPEND ̲BYTES(FDIR, FILADD, BLE ̲1)(CC): ERROR ̲OK

              ERROR? ANALYZE ̲ERROR(CC,PAPER ̲OUT)

                     PRINTER = FALSE

              OK?

         END CASE

         PRINT ̲LOG = FALSE

         END LOG










                    Fig. 4.2.2.6.1.4-1



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



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

         Get the specified format from the operator format file
         and display it.



4.2.2.6.2.2 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)  DISPLAY ̲FORMAT (FORMAT ̲ID: FORMAT ̲ID ̲TYPE)

         b)  DISPLAY ̲FORMAT (R2, R6)

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

         R2            Pointer FORMAT ̲ID
         R6  LINK



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

             INTERFACE ̲NO      4.2.2.5.1

             FORMAT ̲ID         4.2.2.5.2

         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.2.6.2.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲F̲O̲R̲M̲A̲T̲ ̲I̲D̲)̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         To display a new format the following steps are taken:

         -   clear format split

         -   get data from format file

         -   output format

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

         PROCEDURE DISPLAY ̲FORMAT (FORMAT ̲ID)

         ER ̲CC = FALSE

         CASE SEND ̲CONTROL (INTERFACE ̲NO, CLEAR ̲SPLIT)
                           (CC): ERROR ̲OK

              ERROR?-CASE ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED)OF
                        VDU ̲SPLIT ̲FAILED?  ER ̲CC = TRUE

                     END CASE

         END CASE ̲CONTROL

         ER ̲CC EQ TRUE?

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

              ERROR?-CASE ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED)OF
                        VDU ̲SPLIT ̲FAILED? ER ̲CC = TRUE

                     END CASE

         END CASE

         ER ̲CC EQ TRUE?

         CASE OUTPUT ̲FORMAT (INTERFACE ̲NO) (CC): ERROR ̲OK

              ERROR? CASE ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED)
             OF
                             VDU ̲SPLIT ̲FAILED? ER ̲CC = TRUE

                       END CASE

         END CASE

         END DISPLAY ̲FORMAT


4.2.2.6.3    I̲N̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲



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

         Input of the unprotected fields of the format.



4.2.2.6.3.2 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)  INPUT ̲FIELDS (FIELDS)

         b)  INPUT ̲FIELDS (R1, 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̲

         R1            Pointer FIELDS

         R6  LINK



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

             BLE           DBD
             FIELDS        4.2.2.5.3
             INTERFACE ̲NO  4.2.2.5.1

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

             FIELDS.FIELD ̲IN
             FIELDS.FIELD ̲LIST

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

             VAR   BLE ̲1:  BLE





4.2.2.6.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The procedure sets up the parameters to be used to
         defined input from the WDP ̲VDU via the Format Handler
         for the:

         -   Command split, the command split field list is
             used for setting up the parameters.

         -   Format Split, the field list specified in the command
             table is used for setting up the parameters.

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

         Ref. Fig. 4.2.2.6.3.4.-1






 PROCEDURE INPUT ̲FIELDS

 ER ̲CC = FALSE

 INTERFACE ̲NO EQ COMMAND ̲SPLIT? - FIELDS = COMMAND ̲SPLIT
 ̲FIELDS


 NUMBER ̲OF ̲FIELDS = FIELDS.FIELD ̲IN.NUMBER ̲OF ̲FIELDS

 FIRST ̲FIELD = FIELDS.FIELD ̲IN.NUMBER ̲OF ̲FIELDS

 CASE ̲INIT ̲FIELDS ̲INPUT    (INTERFACE ̲NO, BLE ̲1, FIRST
                           ̲FIELD,
                           NUMBER ̲OF ̲FIELDS, IO ̲OP)(CC):ERROR
                           ̲OK

      ERROR? CASE ANALYSE ̲ERROR(CC,!,VDU ̲SPLIT ̲FAILED)
     OF
                  VDU ̲SPLIT ̲FAILED? - ER ̲CC = TRUE

             END CASE

 END CASE

 END INPUT ̲FIELDS





























                Fig. 4.2.2.6.3.4-1


4.2.2.6.4    O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲



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

         Output data to the specified fields on the VDU.



4.2.2.6.4.2 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)  OUTPUT ̲FIELDS          (OUTPUT ̲BUFFER: BYTE ̲ARR,
                                    FIELD ̲LISTS: FIELDS

         b)  OUTPUT ̲FIELDS (R1, R3, 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̲

         R1          Pointer output buffer
         R3          Pointer FIELD ̲LIST
         R6  LINK



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

         VAR  BLE ̲2:                BLE
         TYPE BLE
                 RECORD
                     KIND:          INTEGER
                     LINK:          POINTER
                     ADDRESS:       POINTER
                     BYTE ̲SIZE:     INTEGER
                 END

         INIT BLE ̲2=                0, NIL





4.2.2.6.4.4 D̲e̲s̲i̲g̲n̲ ̲O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The procedure outputs the number of fields specified
         in the FIELD list info fields.

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

         Refer figure 4.2.2.6.4.4-1


         PROCEDURE OUTPUT ̲FIELDS (FIELD ̲LISTS: FIELDS,
                                 OUTPUT ̲BUFFER: BYTE ̲ARR)

         ER ̲CC = FALSE

         EQUIVALENCE (FIELD ̲LIST, REG1: FIELDS)

         EQUIVALENCE (REG1.FIELDS ̲OUT, REG2: FIELD ̲INFO)

         NUMBER ̲OF ̲FIELDS = REG2.NUMBER ̲OF ̲FIELDS

         FIRST ̲FIELD = REG2.FIRST ̲FIELD

         BYTE ̲LENGTH = REG2.BYTE ̲LENGTH

         BLE ̲2.BYTE ̲SIZE = BYTE ̲LENGTH

         BLE ̲2.LINK EQ NIL?

         EQUIVALENCE (BLE ̲2, LINK, REG: BLE)

         BYTE ̲LENGTH = BYTE ̲LENGTH + REG.BYTE ̲LENGTH


         FIRST ̲FIELD % = REG1.FIELD ̲LIST(FIRST ̲FIELD)

         BLE ̲2.ADDRESS = OUTPUT ̲BUFFER%

         CASE FIELDS ̲OUTPUT (INTERFACE ̲NO, FIRST ̲FIELD%, BLE2%,
                            NUMBER ̲OF ̲FIELDS; BYTE ̲LENGTH)

                            (CC): ERROR ̲OK

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

                       VDU ̲SPLIT ̲FAILED? - ER ̲CC = TRUE

                       END CASE


         END CASE

         END OUTPUT ̲FIELDS









                   Figure 4.2.2.6.4.4-1


4.2.2.6.5     C̲u̲r̲s̲o̲r̲ ̲P̲o̲s̲i̲t̲i̲o̲n̲ ̲S̲e̲t̲



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

         Position the cursor in the specified field of the format.



4.2.2.6.5.2 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)   CURSOR ̲POSITION ̲SET   (FIELD ̲LISTS: FIELDS, 
                                    FIELD ̲NO: INTEGER)

         b)   CURSOR ̲POSITION ̲SET (R)

         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̲

         R1   FIELD ̲NO
         R3          Pointer FIELD ̲LISTS
         R6   LINK



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

              FIELD ̲LISTS           4.2.2.5.3

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

              FIELD ̲LISTS.FIELD ̲LIST (FIELD ̲NO).LINE ̲NO

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

              NA





4.2.2.6.5.4 D̲e̲s̲i̲g̲n̲ ̲C̲u̲r̲s̲o̲r̲ ̲P̲o̲s̲i̲t̲i̲o̲n̲ ̲S̲e̲t̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The cursor is positioned in the field specified.

         Number of lines to be displayed above the cursor is
         read in the field descriptor.

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

         Refer figure 4.2.2.6.5.4-1.



    PROCEDURE CURSOR ̲POSITION ̲SET (FIELD ̲LISTS: FIELDS,
                        FIELD ̲NO: INTEGER)

    ER ̲CC = FALSE

    EQUIVALENCE(FIELD ̲LISTS.FIELD ̲LIST(FIELD ̲NO),
                                                                 REG:FIELD
                                                                 ̲DESCRIPTOR
                                                                 ̲TYPE)

    LINES ̲ABOVE = REG.LINE ̲NO

    CASE SET ̲CURSOR ̲POSITION (INTERFACE ̲NO, REG, LINES
    ̲ABOVE)
                            (CC): ERROR ̲OK


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

                  VDU ̲SPLIT ̲FAILED? - ER ̲CC = TRUE

              END CASE



    END CASE

    END CURSOR ̲POSITION ̲SET




























              Figure 4.2.2.6.5.4-1


4.2.2.6.6    S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲



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

         Initiates the waiting point for receiving function
         ̲keys.



4.2.2.6.6.2 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̲s̲

         a)  SET ̲RECEIVE ̲CONTROL

         b)  SET ̲RECEIVE ̲CONTROL (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



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

             DATA ̲TYPE             4.2.2.5.1

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

             DATA ̲TYPE             (m)

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

             N/A.



4.2.2.6.6.4 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The set ̲receive ̲control procedure initiates th IO waiting
         point for reception of a function key.



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

     PROCEDURE SET ̲RECEIVE ̲CONTROL

     ER ̲CC = FALSE

     CASE INIT ̲RECEIVE ̲CONTROL (INTERFACE ̲NO, IO ̲OP)(CC):ERROR
     ̲OK

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

                        VDU ̲SPLIT ̲FAILED? - ER ̲CC = TRUE

                   END CASE


     END CASE

     DATA ̲TYPE = FUNCTION ̲KEYS

     END SET ̲RECEIVE ̲CONTROL





4.2.2.6.7    C̲l̲e̲a̲n̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲S̲p̲l̲i̲t̲



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

         The command field, the id field and the response field
         are cleared and the cursor is positioned in the command
         field.



4.2.2.6.7.2 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)  CLEAN ̲COMMAND ̲SPLIT

         b)  CLEAN ̲COMMAND ̲SPLIT (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



4.2.2.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̲f̲e̲r̲e̲n̲c̲e̲

             COMMAND ̲SPLIT ̲FIELDS
             BLE ̲2                 4.2.2.6.4.3

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

             BLE ̲2 ̲LINK            (m)

             COMMAND ̲SPLIT ̲FIELDS.FIELDS ̲OUT

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

             VAR  BLE ̲3:           BLE
             INIT BLE ̲3 =          0, NIL, ADDRESS ̲RESPONSE
                                   ̲BUFFER, RESPONSE ̲REG ̲SIZE




4.2.2.6.7.4 D̲e̲s̲i̲g̲n̲ ̲C̲l̲e̲a̲n̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲S̲p̲l̲i̲t̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The clean ̲command ̲line buffer and the clear ̲response
         ̲line ̲buffer are limited by BLE ̲2 and BLE ̲3 before the
         format handler is requested to output the data.

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

         Refer figure 4.2.2.6.7.4-1.



   PROCEDURE CLEAN ̲COMMAND ̲SPLIT

   BLE ̲2.LINK = BLE ̲3%

   EQUIVALENCE(COMMAND ̲SPLIT ̲FIELDS.FIELDS.OUT, REG:FIELD
   ̲INFO)

   REG.NUMBER ̲OF ̲FIELDS = 3

   REG.BYTE ̲LENGTH = COMMAND ̲REG ̲SIZE + ID ̲REG ̲SIZE

   REG.FIRST ̲FIELD = COMMAND ̲FIELD

   O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲ (COMMAND ̲SPLIT ̲FIELDS, CLEAR ̲COMMAND
   ̲LINE ̲BUFFER)


   BLE ̲2.LINK = NIL

   C̲U̲R̲S̲O̲R̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲ ̲S̲E̲T̲ (COMMAND ̲SPLIT ̲FIELDS, COMMAND
   ̲FIELD)

   END CLEAN ̲COMMAND ̲SPLIT


























                Figure 4.2.2.6.7.4-1


4.2.2.6.8    S̲e̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲R̲e̲q̲u̲e̲s̲t̲



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

         Request COPSY (CFH) to execute the control specified
         by the control record sent.

         The control request is subject to Time out.



4.2.2.6.8.2 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)  SEND ̲CONTROL ̲REQUEST      (INFO: BOOLEAN, SIZE,
                                       WAIT ̲TIME: INTEGER)
                                       FLAG

         b)  SEND ̲CONTROL ̲REQUEST      R0, R4, 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  SIZE
         R4  INFO
         R1  WAIT ̲TIME
         R6  LINK
         R3          Pointer to SEND ̲BUFFER

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

         R0  FLAG



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

             SEND ̲PARAMS               (CSF.QMON)
             QUEUE ̲REFERENCE           (CSF.QMON)
             WAIT ̲TIME                 4.2.2.5.1



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

             SEND ̲PARAMS ̲INFO          (m)

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

             N/A



4.2.2.6.8.4 D̲e̲s̲i̲g̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲R̲e̲q̲u̲e̲s̲t̲



4.2.2.6.8.4.a P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲R̲E̲Q̲U̲E̲S̲T̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         If the control record to be sent exceeds 4 integers
         a buffer is reserved for the control record.

         The SEND ̲PARAMS are sent to the configuration handler
         in COPSY.

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

         Refer figure 4.2.2.6.8.4-1


 PROCEDURE CONTROL ̲REQUEST (INFO: INFO ̲TYPE, SIZE: INTEGER
                           SEND ̲BUFFER: BUFFER
 MY ̲REF = NIL              WAIT ̲TIME: INTEGER)(R ̲FLAG:FLAG
 ̲D)

 INFO EQ TRUE?

 CASE RESERVE ̲BUFFER (BUFFER ̲SIZE, CMI ̲QUEUE ̲REF)
                     (BUFFER ̲REF, CC): ERROR ̲OK

     ERROR? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (CC)


 END CASE

 MY ̲REF = BUFFER ̲REF

 CASE WRITE ̲BUFFER   (BUFFER ̲REF, SEND ̲BUFFER, SIZE,
                     0)
                     (SIZE; CC): ERROR ̲OK

     ERROR? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (CC)

     OK?

 END CASE

 S̲E̲T̲ ̲C̲F̲H̲ ̲C̲O̲P̲S̲Y̲ ̲P̲A̲R̲A̲M̲S̲ (COMMAND, INFO)(SEND ̲PARAMETER)

 CASE SEND ̲REQUEST(SEND ̲PARAMETER, MY ̲REF, CFH ̲QUEUE,
 MY ̲CFH ̲QUEUE
                  (CC): ERROR ̲OK

     ERROR? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (CC)


 END CASE

 T̲I̲M̲E̲ ̲O̲U̲T̲ ̲(̲W̲A̲I̲T̲ ̲T̲I̲M̲E̲)̲

 W̲A̲I̲T̲ ̲A̲N̲S̲W̲E̲R̲ ()(FLAG)

 END CONTROL ̲REQUEST





               Figure 4.2.2.6.8.4-1


4.2.2.6.8.4.b P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲T̲ ̲C̲M̲I̲ ̲C̲O̲P̲S̲Y̲ ̲P̲A̲R̲A̲M̲S̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         Loads the sent parameter record for sending the control
         message to the CFH in COPSY

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

         PROCEDURE SET ̲CMI ̲COPSY ̲PARAMS (
                                       COMMAND: COMMAND ̲PARAMS
                                       INFO: INFO ̲TYPE
                                       SEND ̲BUFFER: BUFFER)
                                       (SEND ̲PARAMETERS: SEND
                                       ̲PARAMETERS)

         EQUIVALENCE(SEND ̲PARAMETER,REG: SEND ̲PARAMS)

         REG.INFORMATION = INFO

         REG.CHECKP ̲STATUS = FALSE

         REG.PROFILE = 0

         REG.HEADER.MAIN ̲TYPE = CMI ̲COMMAND ̲L

         REG.HEADER.SUB ̲TYPE = COMMAND.FORMAT ̲ID

         INFO EQ FALSE?

         REG.HEADER.INF = SEND ̲BUFFER (1)

         REG.INFORMATION (1..3) = SEND ̲BUFFER (2..4)


         REG.PROFILE ̲MASK = 0

         END ̲SET ̲CMI ̲COPSY ̲PARAMS





4.2.2.6.9    T̲i̲m̲e̲ ̲O̲u̲t̲



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

         Request the Timer Monitor for a time out in TIME seconds.



4.2.2.6.9.2 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)  TIME ̲OUT (WAIT ̲TIME)

         b)  TIME ̲OUT (R1, 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̲

         R1: WAIT ̲TIME

         R6: LINK



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

             WAIT ̲TIME                 4.2.2.5.1

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

             WAIT ̲TIME

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

             TYPE    REQUEST ̲TIME (CSF.TIMMON)

             VAR     TIME ̲PARAM: REQUEST ̲TIME

             INIT    TIME ̲PARAM = CMI ̲Q, TIME ̲Q, ONCE, SECONDS

             VAR     NEXT: BOOLEAN



4.2.2.6.9.4 D̲e̲s̲i̲g̲n̲ ̲T̲i̲m̲e̲ ̲O̲u̲t̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The Request time is loaded with the specified wait-time
         and sent to the Time Monitor.

         Before the request is sent the TIM ̲Q subqueue is cleaned
         for possible outstanding timeouts.

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

         Refer figure 4.2.2.6.9.4-1.



 PROCEDURE TIME ̲OUT (WAIT ̲TIME: INTEGER)

 CASE RECEIVE ̲FIRST ̲QEL (FALSE, TIME ̲PARAM.QUEUE)
                        (ATTRIBUTES, QEL, SUBQUEUE,
             CC):ERROR ̲OK

     ERROR?  ANALYSE ̲ERROR (CC, 1,SUB ̲QUEUE ̲EMPTY)(SUB
     ̲QUEUE ̲EMPTY)

             NEXT = FALSE


 END CASE

 LOOP

     NEXT EQ FALSE?  EXIT

     CASE DISMANTLE (QEL)(CC):ERROR ̲OK

          ERROR?  ANALYSE ̲ERROR (CC,0)


     END CASE

     CASE RECEIVE ̲NEXT ̲QEL(QEL)(QEL, ATTRIBUTES, CC):ERROR
     ̲OK

          ERROR?  ANALYSE ̲ERROR (CC, 1,SUBQUEUE ̲EMPTY)

                  NEXT = FALSE

          OK? - NEXT = OK

     END CASE

 END LOOP

 TIME ̲PARAM.TIME.PERIOD = WAIT ̲TIME

 CASE REQUEST ̲TIMEOUT (TIME ̲PARAM)(CC): ERROR ̲OK

      ERROR? - ANALYSE ̲ERROR (CC,0)


 END CASE

 END TIME…01…FIGURE 4.2.2.6.9.4-1


4.2.2.6.10   W̲a̲i̲t̲ ̲A̲n̲s̲w̲e̲r̲s̲



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

         Waits for answers sent to the CMI queue and sent thereafter
         the answer is returned to the caller of the procedure.



4.2.2.6.10.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲

         a)  WAIT ̲ANSWERS()(FLAG)

         b)  WAIT ̲ANSWERS (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̲

         R6  LINK

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

         R0  FLAG



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

             QUEUE ̲REFERENCE     4.2.2.6.8.3
             TIME ̲PARAMS         4.2.2.6.9.3 c
             ATTRIBUTES

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

             SUB ̲QUEUE
             FLAG

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

             NA





4.2.2.6.10.4 D̲e̲s̲i̲g̲n̲ ̲W̲a̲i̲t̲ ̲A̲n̲s̲w̲e̲r̲s̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         Receive first queue element sent to the CMI ̲Q.

         The FLAG is set according to the queue element received
         (time ̲out, ok, validation not ok, execution not ok)

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

         Ref. Figure 4.2.2.6.10.4-1.



 PROCEDURE WAIT ̲ANSWERS()(FLAG: FLAG ̲D)

 FLAG = EMPTY

 CASE RECEIVE ̲FIRST ̲QEL          (TRUE, WAIT ̲QUEUE)
                 (ATTRIBUTES, QEL, SUB ̲QUEUE):
                 ERROR ̲OK

     ERROR? - ANALYSE ̲ERROR (CC,0)

     OK?


 END CASE

 SUB ̲QUEUE EQ TIM ̲Q? FLAG = TIME ̲ER

                            SEND ̲GARBLE(CONTINUE,
                            COM ̲TIMEOUT, ERROR ̲INF)

 CANCEL ̲TIME ̲OUT(TIME ̲PARAM)(CC): ERROR ̲OK

 EQUIVALENCE (ATTRIB, REG: ATTRIBUTES)

 REG.HEADER.MAINTYPE EQ ACM AND REG.HEADER.SUBTYPE EG
 SSC ̲ACK?

 SEND ̲GARBLE (CONTINUE, Q ̲ERROR, ERROR ̲INF)

 FLAG = GARB


 FLAG EQ EMPTY? - FLAG = ATTRIB.HEADER.FLAG


 END WAIT ̲ANSWERS












              Figure 4.2.2.6.10.4-1


4.2.2.6.11   E̲R̲ ̲R̲E̲C̲



4.2.2.6.11.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 pointers for the fields on which the attributes
         are to be changed. Sets up pointer to the error fields
         in the margin area in which error codes is to be displayed.

         Stores the error codes.



4.2.2.6.11.2 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)  ER ̲REC (COMMAND: COMMAND ̲PARAM, ER ̲FIELD ̲NO,
                     TEXT ̲NO: INTEGER)(NOE: INTEGER)

         b)  ER ̲REG (R5, R0, R3, 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  ER ̲FIELD ̲NO
         R3  TEXT ̲NO
         R5          Pointer COMMAND (kept)
         R6  LINK

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

         R3 = NOE



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

             COMMAND             4.2.2.4.2.4.c

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

             COMMAND.FIELD ̲LIST



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

             VAR  ERRORS: ERROR ̲REC
             VAR  NOE, NOTEXT, LINE: INTEGER
             TYPE ERROR ̲REC

                      RECORD
                          NOE,
                          NOTEXT,
                          FIRST ̲FIELD,
                          DIS ̲CODE,
                          ATTRIBUT,
                          TEXT ̲NO: INTEGER
                      END

             INIT ERROR = 0,0



4.2.2.6.11.4 E̲R̲ ̲R̲E̲C̲ ̲D̲e̲s̲i̲g̲n̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         If the first error set cursor position else sets pointer
         to error-code field if first error found on this line
         sets pointer to the field in errors for changing attributes.

         Returns the number of errors found.

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

         Refer figure 4.2.2.6.11.4-1



     PROCEDURE ER.REC (COMMAND: COMMAND ̲PARAM, ER ̲FIELD
     ̲NO,
                      TEXT ̲NO: INTEGER)(NOE)

     NOE = ERRORS.NOE

     NOTEXT = ERRORS.NOTEXT

     NOE EQ 0? - LINE = 0

                ERRORS.FIRST ̲FIELD = ER ̲FIELD ̲NO - 1

     NOE = NOE + 1

     ERRORS.ATTRIBUT(NOE) = ER ̲FIELD ̲NO

     EQUIVALENCE (COMMAND. FIELD ̲LIST. FIELD ̲LIST (ER ̲FIELD
     ̲NO)
                          REG: FIELD ̲DESCRIPTOR ̲TYPE)

     REG.LINE ̲NO EQ LINE?

     LINE = REG.LINE ̲NO

     NOTEXT = NOTEXT + 1

     ERRORS.DIS ̲CODE (NOTEXT) = ER ̲FIELD ̲NO

     ERRORS.TEXT - NO (NO TEXT) = TEXT ̲NO

     ERRORS.NOTEXT = NOTEXT

     ERRORS.NOE = NOE

     END ER ̲REC














                Figure 4.2.2.6.11.4-1


4.2.2.6.12   S̲e̲a̲r̲c̲h̲ ̲N̲e̲x̲t̲ ̲R̲e̲c̲o̲r̲d̲



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

         Requests TMP to deliver a number (N) of records starting
         with the one specified by the primary key.



4.2.2.6.12.2 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)  SEARCH ̲NEXT ̲RECORDS (TABLE ̲ID: TABLE ̲TO ̲TYPE
                                 NO: PRIMARY ̲KEY
                                 NUMBER: INTEGER)
                                 (TMP ̲BUFFER: BUFFER)

         b)  SEARCH ̲NEXT ̲RECORD (R0, R1, R2, R3, 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  TABLE ̲ID
         R1  NO
         R2           Pointer TMP ̲BUFFER (kept)
         R3  NUMBER   number of records requested
         R6  LINK



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

             NA

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

             NA

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

             VAR  SECOND ̲TMP ̲REC: TMP ̲PARAM
             TYPE TMP ̲PARAM ref. TMP
             INIT SECOND ̲TMP ̲REC.BUFFER2 = MAX ̲BUFF ̲SIZE
             INIT SECOND ̲TMP ̲REC.FUNCTION=SEARCH ̲NEXT ̲PRIMARY
                  ̲KEY


4.2.2.6.12.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲A̲R̲C̲H̲ ̲N̲E̲X̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲

         N̲a̲r̲r̲a̲t̲i̲v̲e̲

         The TMP is requested for N numbers of records next
         to the one specified.

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

         Refer 4.2.2.6.12.4-1



 PROCEDURE SEARCH ̲NEXT ̲RECORDS  (TABLE ̲ID: TABLE ̲ID
                                ̲TYPE,
                                KEY: PRIMARY ̲KEY, NUMBER:INTEGER)
                                (OUTPUT ̲BUFFER: BUFFER)

 EQUIVALENCE (SECOND ̲TMP ̲REC, REG: TMP ̲PARAM)

 REG.TABLE ̲ID = TABLE ̲ID

 REG.OUTPUT ̲BUFFER = OUTPUT ̲BUFFER

 REG.ENTRY = KEY - 1


 CASE SEARCH ̲NEXT ̲PRIMARTY ̲KEY (TMP ̲REC ̲1(CC): ERROR
 ̲OK

      ERROR? ANALYSE ̲ERROR (CC,0)

      OK?

 END CASE

 END SEARCH ̲NEXT ̲RECORDS

























              Figure 4.2.2.6.12.4-1


4.2.2.7  S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Refer 4.1.7