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

⟦bfa9a6f85⟧ Wang Wps File

    Length: 26068 (0x65d4)
    Types: Wang Wps File
    Notes: Spelunked
    Names: »~ORPHAN67.08«

Derivation

└─⟦9270f92d5⟧ Bits:30006106 8" Wang WCS floppy, CR 0167A
    └─ ⟦this⟧ »~ORPHAN67.08« 

WangText



C…05…B…08…B…0a…B…0d…B…00…B
B             A…08…A…0c…A…02…A
A             A…05…A…06…@…09…@…0b…@…0d…@…00…@…01…@…02…@…05…@…07…?…0a…?…0c…?…0d…?…0e…?…0f…?…00…?
?…05…?…07…>…0a…>…0e…>…05…=…09…=…0d…=…0f…=
<…08…<…0a…<…0e……86…1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 …02…
 
 
 
 
 
 
 
 
 
 
 …02…
 
 
 …02…
 
 
 
 
 
 
 
 

…02…CPS/SDS/041

…02…831205…02……02…
PRINTER
 
 
 
 
 
 
 
DETAILED
 DESIGN
 SPECIFICATION…02…ISSUE
 1…02…CAMPS







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

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

             Ref. PRT ̲DATA

             PRINT ̲ITEM ̲QEL ̲ATTR,

             PRINT ̲ITEM ̲QEL ̲REF: Ref. sec. 4.2.l.5



4.2.1.6.9.4 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲D̲e̲s̲i̲g̲n̲

         Ref. fig. 4.2.l6.9 - 1 


  REPLY ̲TO ̲SPIP (COMPL ̲CODE)

       WITH PRIS ̲SEND ̲PARAMS DO 

          SET  .HEADER.FLAG       = COMPL ̲CODE 

          SET  .INFORMATION ̲TYPE = TRUE

          SET  .CHECKP ̲STATUS     = FALSE

          SET  .PROFILE           = 0

       SET     .HEADER.MAINTYPE   = ACK

          SET  .HEADER.SUBTYPE    = PRIS PRINT REPLY
                                   

          SET  .HEADER.INF        = PRINT ̲ITEM ̲QEL ̲ATTR.
                                    HEADER.INF

          SET  .INFORMATION (1)   = PRINT ̲ITEM ̲QEL ̲REF

          SET  .INFORMATION (2)   = REMAINING ̲SOURCE
                                  ̲BUF-
                                    FER ̲SPACE
          SET  .INFORMATION (3)   = 0

       END ̲WITH

       CASE    SEND ̲REPLY(PRIS ̲SEND ̲PARAMS,NIL,
                    PRINT ̲ITEM ̲QEL ̲REF)
                    (CC):ERROR ̲OK

          ERROR?-                 ANALYZE ̲ERROR(CC,0):OK

          OK?

       END ̲CASE

  END






Fig. 4.2.1.6.9-…86…1         …02…   …02…   …02…   …02…               …02…                   
        
4.2.1.6.10 C̲H̲E̲C̲K̲ ̲V̲I̲E̲W̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

  The procedure checks if an open view exists pertinent
  to the current item.  In case there is, it willbe closed.
  If FILE ̲IN ̲PROGRESS is true, then SYIB ̲TAB ̲FILE is
  closed.



4.2.1.6.10.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) CHECK ̲VIEW
       b) CHECK ̲VIEW (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̲

  R6   LINK

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

  R0 - R7                         DESTROYED

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

  NONE



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

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

  Ref. PRT ̲DATA



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

       Ref. Code…86…1  …02…    …02…     …02…     …02…               …02…  …02…  
          …02…   …02…               
CHECK ̲VIEW

  VIEW ̲OPEN ̲FLAG EQ TRUE?         CASE CLOSE ̲VIEW
                                                                  (PRINT
                                                                  ̲ITEM
                                                                  ̲QEL
                                                                  ̲REF)
                                                                  (CC):
                                                                  ERROR
                                                                  ̲OK

                                                                 ERROR? ANALYZE
                                                                        ̲ERROR
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  (CC,0):OK

                                                                 OK?

                                  END ̲CASE

               SET VIEW ̲OPEN ̲FLAG = FALSE

  




  END

























                 Fig. 4.2.1.6.10-1


4.2.1.6.11 R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲S̲S̲C̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         The procedure sends a reply to SSC with the specified
         completion value. It is used upon completion f SSC-commands.



4.2.1.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̲s̲

         a)  REPLY TO SSC (COMPLETION VALUE: SSC COMPL: TYPE)
         b)  REPLY TO SSC (R0, R6)

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

         R0      COMPLETION ̲VALUE    (DEST)
         R6  LINK                    (DEST)

         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.1.6.11.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

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

         Ref. PRT ̲DATA



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

         Ref. Code




REPLY ̲TO ̲SSC(COMPLETION VALUE)

  WITH PRIS SEND PARAMS DO

     SET  .INFORMATION TYPE      =FALSE 

     SET  .CHECKP ̲STATUS         =FALSE

     SET  .PROFILE               =0

     SET  .HEADER.MAINTYPE       =ACK

     SET  .EADER.SUBTYPE         =TEP ̲ACK

     SET  .HEADER.FLAGS          =COMPLETION ̲VALUE

  END ̲WITH

  CASE SEND ̲REPLY                (PRIS ̲SEND ̲PARAMS,NIL,INPUT
                                 ̲QEL)
                                 (CC):ERROR ̲OK

     ERROR?-ANALYZE ̲ERROR(CC,0):OK

     OK?

  END ̲CASE

END

















Fig. 4.2.1.6.11-1…86…1         …02…   …02…   …02…   …02…               …02…                  
         
4.2.1.6.12       C̲A̲N̲C̲E̲L̲ ̲P̲R̲I̲N̲T̲Q̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

  If an INIT ̲RECEIVE ̲FIRST ̲QEL from PRIS ̲PRINTQ is pending
  then it will be cancelled.



4.21.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̲s̲

  a) CANCEL ̲PRINTQ ̲RECEIVE
  b) CANCEL ̲PRINTQ ̲RECEIVE(R6)

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

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

  R6      LINK   (DEST)

  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.1.6.12.3 D̲a̲t̲a̲ ̲ ̲D̲a̲t̲a̲ ̲D̲e̲s̲c̲i̲p̲t̲i̲o̲n̲s̲

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

  Ref. PNT ̲DATA


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

  Ref Code…86…1         …02…   …02…   …02…   …02…   …02…           …02…         
                       
CANCEL ̲PRINTQ ̲RECEIVE

  CASE CANCEL ̲SYSTEM ̲CALL(PRIS ̲PRINTQ ̲OP)(CC):ERROR ̲OK

     ERROR?-     ANALYZE ̲ERROR(CC,0):OK

     OK?- CASE WAIT ̲SYSTEM ̲CALL (PRIS ̲PRINTQ ̲OP)
                      (ATTRQEL,SUBQUEUE,CC):ERROR ̲OK
                    ERROR?- CASE ANALYZE ̲ERROR(CC,1,CANCELLED)
                                                   :(CANC
                     ̲PQR)

                                CANC ̲PQR?-

                            END ̲CASE

                    OK?-         R̲E̲T̲U̲R̲N̲ ̲I̲T̲E̲M̲ (QEL)(4.2.1.6.4)

          END ̲CASE

  END ̲CASE

END























Fig. 4.2.1.6.12-…86…1         …02…   …02…   …02…   …02…               …02…                  
         
4.2.1.7   S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.2.1.7.1 U̲P̲C̲O̲ ̲P̲R̲O̲P̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

  Ref. sec. 4.1.7.3.2.1


4.2.1.7.2 P̲R̲O̲P̲ ̲U̲P̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

  Ref. sec. 4.1.7.3.2.2



4.2.2     P̲r̲i̲n̲t̲e̲r̲ ̲O̲u̲t̲p̲u̲t̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲
  The P̲r̲inter O̲utp̲ut (PROP) coroutine is performing the
  actions in connection with formattting and output of
  the text to be printed.

  PROP is controlled by the other coroutine (UPCO).



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

  The following functions ar performed by this sub-package
  (ref.fig.4.2.2-1):

  UPCO Control Functions
  Command Completion and Error Report functions

  Format Control

  Printout…86…1         …02…   …02…   …02…   …02…               …02…        
                    




Fig. 4.2.2-1…86…1         …02…   …02…   …02…   …02…               …02…                    
       
4.2.2.1.1 U̲P̲C̲O̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲ ̲(̲1̲.̲0̲)̲

  The UPCO Command Execution functions carry out execution
  of the commands issued by UPCO.

  a) Initialize (1.1)

     The Initialize command isissued for initialisation
     of PROP,s working area, i.e. variables and buffers.
      A CC-Report is to be sent to UPCO, ref. sec. 4.2.2.1.2.c.

  b) C̲o̲m̲m̲e̲n̲c̲e̲ ̲(̲1̲.̲2̲)̲

     Upon receipt of a Commence-CMD, PROP will start
     printing the current item.

  c) Abandon 1.3)

     The Abondon Print Command will cause the printing
     actions to be stopped immediately.  All outstanding
     I/O requests will be canncelled and the working
     area will be cleared.

     Completion will be reported to UPCO, ref. sec. 4.2.2.1.2.c.

  d) E̲P̲E̲A̲T̲ ̲(̲1̲.̲4̲)̲

     The Repeat Command causes the printout of the current
     item to be repeate

  e) P̲r̲e̲e̲m̲p̲t̲ ̲(̲1̲.̲5̲)̲

     Printout of the current item will be stopped.  Completion
     will be reported to UPCO, ref. sec. 4.2.2.1.2.c…86…1
             …02…   …02…   …02…   …02…               …02…               
                
4.2.2.1.2.       C̲o̲m̲m̲a̲n̲d̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲
                 ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲(̲2̲.̲0̲)̲

  These functions handle the reception and sending of
  completion and error report.

  a) P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲o̲f̲ ̲I̲O̲C̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲o̲d̲e̲s̲ ̲(̲2̲.̲1̲)̲

     When printout data is delivered to the Printer Handler
     it will respond with a Completion Code.  The Completion
     Code will contain information about possible printer
     errors. Two kinds of printer errors can occur:
     1) Paper Low
     2) Conection Error.

  b) S̲e̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲U̲P̲C̲O̲ ̲(̲2̲.̲2̲)̲

     Upon detection of an I/O error, a report will be
     sent to UPCO.

  c) S̲e̲n̲d̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲U̲P̲C̲O̲ ̲(̲2̲.̲3̲)̲

     Completion of some of the UPCO commands is to be
     reported back, ref. sec. 4.2..1.1.a,c,f.

  d) S̲e̲n̲d̲ ̲P̲r̲i̲n̲t̲ ̲C̲o̲m̲p̲l̲e̲t̲e̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲U̲P̲C̲O̲ ̲(̲2̲.̲4̲)̲

     On completion of item printout, UPCO will be notified.
     


4.2.2.1.3 F̲o̲r̲m̲a̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲3̲)̲

  Format Control takes care of the interface to the PRINTER
  Format Handler.…86…1         …02…   …02…   …02…   …02…               …02… 
                           
4.2.2.1.4 P̲r̲i̲n̲t̲o̲u̲t̲ ̲(̲4̲.̲0̲)̲

     The printout functions carries out the actual Text-conversion,-formatting
     and -output by using the PRINTER FORMAT HANDLER.

  a) C̲o̲n̲v̲e̲r̲t̲ ̲D̲a̲t̲a̲ ̲F̲o̲r̲ ̲O̲u̲t̲p̲u̲t̲ ̲4̲.̲1̲)̲

     This function is responsible for converting the
     data so that it can be printed.

  b) L̲o̲a̲d̲ ̲C̲o̲n̲v̲e̲r̲t̲e̲d̲ ̲D̲a̲t̲a̲ ̲I̲n̲t̲o̲ ̲O̲u̲t̲p̲u̲t̲ ̲B̲u̲f̲f̲e̲r̲ ̲(̲4̲.̲2̲)̲

     When the data has been converted this function loads
     it into a buffer for Output.

  c)      P̲R̲E̲P̲A̲R̲E̲ ̲H̲e̲a̲d̲e̲r̲/̲T̲r̲a̲i̲e̲r̲ ̲I̲n̲f̲o̲.̲ ̲(̲4̲.̲3̲)̲

     The Page Header/Trailer information, which is partly
     produced by UPCO is prepared and handed over to
     the PRINTER FORMAT HANDLER.

  d) O̲u̲t̲p̲u̲t̲ ̲B̲u̲f̲f̲e̲r̲ ̲(̲4̲.̲4̲)̲

     This function delivers the Output buffer to The
     Printer Handler for outpu.



4.2.2.2   P̲R̲O̲P̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲.̲

     The software structure of PROP is shown in Fig 4.2.2.3-4
     and fig. 4.2.2.3-5 (call structure).

     A functional description of each module is given
     in sec. 4.2.2.4.

  PROP consists of four main parts:

     1)   VPO command processing - down by ANALYSE ̲UPCO
          ̲CMD,

     2)   Cansellation of outstanding IO calls - done
          by CANCEL ̲OUTSTANDING ̲IO ̲S,

     3)   IO completion processing - done by PROC ̲IO
          ̲CC,

     4)   Fetching, conversion, formatting and output
          of data - done by ATA ̲CONVERSION ̲OUTPUT and
          underlying modules. The call structure for
          these modules is shown in fig. 4.2.2.3-4.…86…1
                  …02…   …02…   …02…   …02…               …02…          
                          




Fig. 4.2.2.2-1 P̲R̲O̲P̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲…86…1         …02…   …02…   …02…   …02…               …02…        
                   
Fig 4.2.2.2-2 D̲A̲T̲A̲ ̲C̲O̲N̲V̲E̲R̲S̲I̲O̲N̲ ̲O̲U̲T̲P̲U̲T̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲…86…1         …02…   …02…   …02…   …02…               …02…   
                        
4.2.2.3   D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲







Fig 4.2.2.3-1 - 4…86…1         …02…   …02…   …02…   …02…               …02…                     
      
4.2.2.4  P̲R̲O̲P̲ ̲M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲



4.2.2.4.1    P̲R̲O̲P̲ ̲M̲A̲I̲N̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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


         PROP ̲MAIN contains the PROP ̲MAIN ̲LOOP.  It waits at
         Semaphore PRS ̲S2, and takes appropriate actions upon
         reception of input items.

         The module is only called by the Coroutine Monitor.



4.2.2.4.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̲s̲

         a)  PROP ̲MAIN
         b)  PROP ̲MAIN (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̲

         R6 LNK                      (DEST)

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

         R0 - R7                     (DEST)

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

         None 



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

         N/A




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

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

         Ref. PRT ̲DATA



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

         In the MAIN ̲LOOP, it is checked whether the arrived
         items are legal or not.
         
         All leal UPCO Commands are executed by the ANALYZE
         ̲UPCO ̲CMD module while IO Completions are processed
         by PROC ̲IO ̲CC…86…1         …02…   …02…   …02…   …02…               …02…   
                                

         PROP ̲MAIN 



             PROP ̲MAIN ̲LOOP

                 WAIT ̲OPSEM (PRIS ̲S2) (PROP ̲OP) : OK
                 



                 CASE PROP 0P. ID OF:

                     UCO ̲CMD?                                    A̲N̲A̲L̲Y̲S̲E̲
                                                                 ̲U̲P̲C̲O̲
                                                                 ̲C̲M̲D̲
                                                                 (4.2.2.4.2)

                     PROP ̲IO ̲CC?     P̲R̲O̲C̲ ̲I̲0̲ ̲C̲C̲ ( -
                                     2)


                     OTHERWISE?   E̲R̲R̲O̲R̲ R̲E̲P̲ ̲(̲P̲R̲O̲P̲,̲C̲O̲N̲,̲I̲N̲T̲)̲(4.1.5.1)

                 END ̲CASE


             END PROP ̲MAIN ̲LOOP

         END





















Fig. 4.2.2.4.l-1…86…1…02… …02…      …02…   …02…   …02…   …02…      …02…        …02…                    
       
         PROC ̲IO-CC

             DECREMENT OUTSTANDING ̲IO-S

             CASE WAIT ̲SYSTEM ̲CALL (PROP ̲OP) (CC) :ERROR
             ̲OK

                 ERROR? CASE ANALYZE ̲ERROR (CC,3, CONNECTION
                 ̲FAILED,

                                              PRITER
                            ̲STATUS ̲ERROR,
                                                                 
                                                                 
                                                                 CANCELLED
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 )

                                                                 :(IO
                                                                 ̲ERR1,IO
                                                                 ̲ERR2,IO
                                                                 ̲ERR3)
                 
                              IO ̲ERR1? - C̲O̲N̲N̲ ̲E̲R̲R̲ ̲A̲C̲T̲I̲O̲N̲S̲
                            ̲(̲-̲3̲)̲

                              IO ̲ERR2? - P̲A̲P̲E̲R̲ ̲L̲O̲W̲
                            ̲A̲C̲T̲I̲O̲N̲S̲(̲-̲4̲)̲

                              IO ̲ERR3?

                        END ̲CASE


                 OK?  END ̲OF ̲ITEM ̲FLAG EQ FASE?


                            AWAITING ̲DATA ̲FLAG EQ TRUE?

                            D̲A̲T̲A̲ ̲C̲O̲N̲V̲E̲R̲S̲I̲O̲N̲ ̲O̲U̲T̲P̲U̲T̲
                            ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲)̲


                      OUT ̲STANDING ̲IO ̲S GT 0?

                      R̲E̲P̲ ̲T̲O̲ ̲U̲P̲C̲O̲ ̲(̲P̲R̲I̲N̲T̲ ̲C̲O̲M̲P̲L̲E̲T̲E̲ ̲R̲E̲P̲)̲
                     ̲(̲4̲.̲2̲.̲2̲.̲6̲.̲1̲)̲

             END ̲CASE

         END











Fig. 4.2.2.4.l - 2 …86…1         …02…   …02…   …02…   …02…                               
            


  C̲O̲N̲N̲ ̲E̲R̲R̲ ̲A̲C̲T̲I̲O̲N̲S̲

         C̲A̲N̲C̲E̲L̲ ̲O̲U̲T̲S̲T̲A̲N̲D̲I̲N̲G̲ ̲I̲O̲ ̲S̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲)̲

         R̲E̲P̲ ̲T̲O̲ ̲U̲P̲C̲O̲ ̲(̲C̲O̲N̲N̲ ̲E̲R̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲1̲)̲

  END






































               Figure 4.2.2.4.1-3




         PAPER ̲LOW ̲ACTIONS

             C̲A̲N̲C̲E̲L̲ ̲O̲U̲T̲S̲T̲A̲N̲D̲I̲N̲G̲ ̲I̲O̲ ̲S̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲)̲

             R̲E̲P̲ ̲T̲O̲ ̲U̲P̲C̲O̲(̲P̲A̲P̲E̲R̲ ̲L̲O̲W̲)̲ ̲(̲4̲.̲2̲.̲2̲.̲6̲.̲3̲)̲

         END







































                    Figure 4.2.2.4.1-4


4.2.2.4.2  ̲A̲N̲A̲L̲Y̲S̲E̲ ̲U̲P̲C̲O̲ ̲C̲M̲D̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲t̲a̲i̲o̲n̲



4.2.2.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 Module analyses UPCO-Commands received via PRIS-S2
         and executes them.



4.2.2.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)  ANALYZE ̲UPCO ̲CMD 
         B)  ANALYZE ̲UPCO ̲CMD  (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̲ ̲

         R7 LINK                       (Dest.)

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

         All Registers are Destroyed 

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

         None 



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

         N/A…86…1         …02…   …02…   …02…   …02…                            
                       




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

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

         Ref. PRT ̲DATA



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

         The Commands are distinguished by the ITEM ̲NAME field
         of the actual operation. 

The Module mainly operates on data shared with UPCO.…86…1      
   …02…   …02…   …02…   …02…                                           

ANALYZE ̲UPCO ̲CMD

   CASE PROP ̲OP.ITEM ̲NAME OF:

      INITIALIZE ̲PROP? -----P̲R̲O̲P̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲A̲T̲I̲O̲N̲ ( - 2
         )

      COMENCE?              S̲T̲A̲R̲T̲ ̲P̲R̲I̲N̲T̲ ̲A̲C̲T̲I̲O̲N̲S̲ ( - 3
                        )

      CONTINUE?             C̲O̲N̲T̲I̲N̲U̲E̲ ̲P̲R̲I̲N̲T̲I̲N̲G̲ ̲  ( - 4
                        )

      PREEMPT?              P̲R̲E̲E̲M̲P̲T̲ ̲P̲R̲I̲N̲T̲I̲N̲G̲    ( - 5
                        )

      ABANDON?              A̲B̲A̲N̲D̲O̲N̲ ̲P̲R̲I̲N̲T̲I̲N̲G̲ ̲   ( - 6
                        )

      OTHERWISE?            E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲P̲R̲O̲P̲,̲C̲O̲N̲,̲I̲N̲T̲)̲ 4.1.5.1)

   END ̲CASE

END

























Fig. 4.2.2.4.2 - 1 …86…1   …02…     …02…   …02…   …02…   …02…                                  
         …02… 
   PROP ̲INITIALIZATION


      …02…P̲R̲I̲N̲T̲ ̲S̲T̲A̲R̲T̲ ̲U̲P̲ ̲M̲E̲S̲S̲A̲G̲E̲


         SET PREEMPTION ̲FLAG = FALSE 

         SET OUTSTANDING ̲IO ̲S = 0








         R̲E̲P̲ ̲T̲O̲ ̲U̲P̲C̲O̲ ̲(̲P̲R̲O̲P̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲ ̲C̲C̲)̲ (4.2.2.6.1)



   END
























Fig. 4.2.2.4.2 - 2 …86…1   …02…     …02…   …02…   …02…   …02…                                  
         …02… 
   START ̲PRINT ̲ACTIONS

      SET INITIAL = TRUE 

      D̲A̲T̲A̲ ̲C̲O̲N̲V̲E̲R̲T̲I̲O̲N̲ ̲O̲U̲T̲P̲U̲T̲ (4.2.2.4.4.)

   END






































Fig. 4.2.2.4.2 - 3 …86…1   …02…     …02…   …02…   …02…   …02…                                  
         …02… 
   CONTINUE ̲PRINTING 

      SET AWAITING ̲DATA ̲FLAG = FALSE 

      D̲A̲T̲A̲ ̲C̲O̲N̲V̲E̲R̲S̲I̲O̲N̲ ̲O̲U̲T̲P̲U̲T̲ (4.2.2.4.4)

   END








































Fig. 4.2.2.4.2 - 5 …86…1   …02…     …02…   …02…   …02…   …02…                                  
         …02… 
   PREEMPT ̲PRINTING 

      C̲A̲N̲C̲E̲L̲ ̲O̲U̲T̲S̲T̲A̲N̲D̲I̲N̲G̲ ̲I̲O̲ ̲S̲  (4.2.2.4.3 )

      S̲E̲N̲D̲ ̲R̲E̲P̲ ̲T̲O̲ ̲U̲P̲C̲O̲ ̲(̲P̲R̲E̲E̲M̲P̲T̲ ̲C̲C̲)̲ (4.2.2.6.1)

   END








































Fig. 4.2.2.4.2 - 6…86…1   …02…     …02…   …02…   …02…   …02…                                   
        …02… 
   ABANDON ̲PRINTING 



      C̲A̲N̲C̲E̲L̲ ̲O̲U̲T̲S̲T̲A̲N̲D̲I̲N̲G̲ ̲I̲O̲ ̲S̲ (4.2.2.4.3)






      R̲E̲P̲ ̲T̲O̲ ̲U̲P̲C̲O̲ ̲(̲A̲B̲A̲N̲D̲O̲N̲ ̲C̲C̲)̲ (4.2.2.6.1)






   END




























Fig. 4.2.2.4.2 - 7…86…1         …02…   …02…   …02…   …02…                                 
          
4.2.2.4.3    C̲A̲N̲C̲E̲L̲ ̲O̲U̲T̲S̲T̲A̲N̲D̲I̲N̲G̲ ̲I̲O̲ ̲S̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.2.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 cancels pending system calls initiated by
   PROP.


4.2.2.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) CANCEL ̲OUTSTANDING IO ̲S
   b) CANCEL ̲OUTSTANDING ̲IO ̲S  (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̲

   All register are Destroyed.

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

   None. 



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

   N/A



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

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

   Ref. PRT ̲DATA


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

         The module checks OUTSTANDING ̲IO ̲S order to determine
         whether a System IO Call is pending or not. If there
         is, it will be cancelled by using the coroutie Monitor
         Procedure

         C ̲CANCEL ̲SYSTEM ̲CALL. …86…1    …02…    …02…   …02…   …02…   …02…          
           …02…                             

         CANCEL ̲OUTSTANDING ̲IO ̲S 

             OUTSTANDING-̲IO ̲S EQ 0?

             SET OP ̲POINTER = PRIS ̲PROP ̲IO ̲OP

             CASE OP ̲POINTER.STATUS OF

                 PENDING?- CANCEL ̲SYSTEM ̲CALL (OP ̲POINTER)

                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  
                                                                  (C):ERROR
                                                                  ̲OK

                 IN ̲SEMAPHORE,

                 DONE ?

                 OTHERWISE ? - ERROR ̲REP(PROP,CON,INT)(4.1.5.1)

             END ̲CASE

         END

























Fig. 4.2.2.4.3-1…86…1    …02…    …02…   …02…   …02…   …02…             …02…                         
    
4.2.2.4.4    D̲A̲T̲A̲ ̲C̲O̲N̲V̲E̲R̲S̲I̲O̲N̲ ̲O̲U̲T̲P̲U̲T̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.2.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 module controls and executes the conversion, formatting
         and output of data. 



4.2.2..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) DATA ̲CONVERSION ̲OUTPUT 
         b) DATA ̲CONVERSION ̲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̲

         All registers are Destroyed.

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

         None. 



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



4.2.2.4.4.3.1 R̲E̲A̲D̲ ̲M̲M̲I̲ ̲C̲T̲R̲L̲ ̲T̲A̲B̲L̲E̲ ̲

         Reads in (from TMP) the section of the table corresponding
         to CURRENT ̲FORMAT. 





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

         Set buffer structure corresponding to MMI ̲CTRL ̲TABLE
         section.  



4.2.2.4.4.3.3 ̲R̲E̲A̲D̲ ̲C̲I̲F̲ ̲F̲I̲E̲L̲D̲                                      
         Reads in the fields (from CIF) correspondingto buffer
         structure. 



4.2.2.4.4.3.4 I̲N̲S̲E̲R̲T̲ ̲R̲E̲P̲E̲A̲T̲E̲D̲ ̲L̲I̲N̲E̲S̲

         Informs the Printer Handler about lines to be repeated.



4.2.2.4.4.3.5 O̲U̲T̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲

         Calls Printer Format Handler (IOC) in order to format
         and output the data collected in 10C buffe.



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

         Reads in a field from CIF (field currently referenced
         by I ̲PT ̲BASE). 



4.2.2.4.4.3.7 C̲H̲E̲C̲K̲ ̲O̲U̲T̲P̲U̲T̲ ̲C̲O̲N̲D̲I̲T̲I̲O̲N̲

         If convenient the procedure will take care off reading
         in new data from view or file while the rinter Handler
         is outputting data.…86…1         …02…   …02…   …02…   …02…            
                                       
4.2.2.4.4.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

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

         Ref. PRT ̲DATA

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

         The processing of print items is split into two mainparts:

         A̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲R̲e̲p̲o̲r̲t̲ ̲P̲r̲i̲n̲t̲ is erformed by the module APPL
         ̲REP ̲OUTP. The principle of this is that the first arriving
         report causes reservation of a whole page for report
         print by GET ̲FORMAT and INSERT ̲LINE ̲GROUP calls. Then
         the first report is printed by FIELDS ̲OUTPUT calls
         witout issuing an OUTPUT ̲FORMAT call afterwards (which
         would cause the page to be shipped). Instead the next
         print item is awaited. If the next item is a report
         it will be printed on the same page etc. (until the
         page is full). If the next item was no a report then
         an OUTPUT ̲FORMAT call is issued in order to Ship Page
         and clean up before next item is processed.

         P̲r̲i̲n̲t̲ ̲o̲f̲ ̲o̲t̲h̲e̲r̲ ̲i̲t̲e̲m̲ ̲t̲y̲p̲e̲s̲ is controlled by DATA ̲CONVERSION
         ̲OUTPUT. Thise control states can occur: FORMAT ̲INITIAL,
         INITIAL and CONTINED.

         F̲O̲R̲M̲A̲T̲ ̲I̲N̲I̲T̲I̲A̲L̲ ̲s̲t̲a̲t̲e̲ is indicated by that both booleans
         PRT ̲INIT ̲FORMAT and INITIAL are TRUE. It is actual
         when the first part of the first copy of an item is
         to be printed.

         Either the QEL data, the buffer data, the VIEW Administration
         datais read in.

         The Header and Trailer information is prepared.

         A GET ̲FORMAT call is issued.

         The MMI Table data for the current item and the administration
         data is worked through in order to determine the count's
         of repeatable fields and lines. Pssible extra lines
         or line groups are inserted by INSERT ̲LINES or INSERT
         ̲LINE-GROUP call. All line insertions must take place
         before the first Fields Output call because of the
         page numbering.

         All other actions are the same as for INITIAL state.


         I̲N̲I̲T̲I̲A̲L̲ ̲s̲t̲a̲t̲e̲ is when INITIAL is true but PRT ̲INIT
         ̲FORMAT is false. This state is actual when the first
         part of an item is to be printed and the format and
         the administration datais already read in.

         First the buffer structure is set, the possible VIEW
         ̲or File date is read, the data is converted, moved
         and meryed into the IOC-buffer that consists of IOC
         records, the FIELD ̲LIST is built up, the data is outputted
         by a FIELDSOUTPUT call and at last additional data
         is read in if appropriate.

         C̲O̲N̲T̲I̲N̲U̲E̲D̲ ̲s̲t̲a̲t̲e̲ is indicated by that both PRT ̲INIT
         ̲FORMAT and INITIAL or FALSE.

         In this state the printing actions are continued after
         previous calls of FIELDS ̲OUTPUT. It is cheked whether
         more data should be read in, if a new entry from the
         MMI ̲TABLE is needed or if the printing is to be finished
         by an OUTPUT ̲FORMAT call.



DATA ̲CONVERSION ̲OUTPUT

 ITEM EQ APPLICATION ̲REPORT?  APPL ̲REP ̲OUTP(4.2.2.4.9)

 INITIAL EQ TRUE?  PROC ̲INITIAL-2)

 END ̲OF ̲CIF ̲BUF EQ TRUE AND BUFFERS ̲SHARED=TRUE?

     CASE PRINT ̲ITEM ̲CATEGORY OF

        VIEW ̲TIME?  READ ̲SINGLE CIF FIELD(4.2.2.4.4.3.6)

        FILE ̲ITEM?  R ̲CONT ̲F ̲DAT(4.2.2.4.13.3.4)

     END

 END ̲OF ̲CIF ̲BUF EQ TRUE OR FIELD ̲LIST ̲FULL=TRUE

     OR ENDOF ̲IOC ̲BUF EQ TRUE?

     CREATE ̲PRINT ̲BUFFERS(3.2.2.4.5)

     OUTPUT ̲BUFFER(4.2.2.4.4.3.5)

     CHECK ̲OUTPUT ̲CONDITION(4.2.2.4.4.3.7)

 END OF MMI ENTRY?

     CONT ̲FORMAT ̲ID EQ [?   4 more mmi ENTRIES?

        END ̲OF ̲ITEM FLAG:=TRUE

        OUTPUT ̲FORMAT

     CURREN ̲FORMAT:=CONT ̲FORMAT ̲ID

     READ ̲MMI ̲CTRL ̲TABLE(4.2.2.4.4.3.1)

     SET ̲BUFFERR̲STRUCTURE(4.2.2.4.4.3.2)

     CASE ̲PRINT ̲ITEM ̲CATEGORY OR

        VIEW ̲ITEM? ̲READ ̲CIF ̲FIELDS(4.2.2.4.4.3.3)

        FILE ̲ITEM? ̲R ̲FIRST ̲F ̲DAT(4.2.2.4.13.3.3)

     END


     SET ̲MEMORY ̲ADDR(4.2.2.6.2)

     CREATE ̲PRINT ̲BUFFERS(4.2.2.4.5)

     OUTPUT ̲BUFFER(4.2.2.4.4.3.5)

     CHECK ̲OUTPUT ̲CONDITION(4.2.2.4.4.3.7)

 ERROR ̲REP(4.1.5.1)

END

FIG 4.2.2.4.4.51…86…1         …02…   …02…   …02…   …02…                                 
          


PROC ̲INITIAL

 RESET FLAGS

 READ ̲MMI ̲CTRL ̲TABLE(4.2.2.4.4.3.1)

 PRT ̲INIT ̲FORMAT EQ TRUE?

     CASE PRINT ̲ITEM ̲ATEGORY OF

         QEL ̲ITEM? ̲COPY QEL ̲ATTR TO ADM1-BUF

         BUFFER ̲ITEM? ̲COPY BUFFER DATA TO ADM1-BUF

         VIEW ̲ITEM? ̲READ ̲VIEW ̲ADM(4.2.2.4.10)

         FILE ̲ITEM? ̲READ ̲FILE ̲ADM(4.2.2.4.13.3.1)

     END

     PREPARE ̲HEADER ̲TRAILER ̲BUFFER(4.2.2.4.8)

     GET FORMAT
     INSERT ̲REPEATED ̲LINES(4.2.2.4.4.3.4)

     PRT ̲INIT ̲FORMAT:=FALSE

 SET ̲BUFFER STRUCTURE(4.2.2.4.4.3.2)

 CASE PRINTR̲ITEM ̲CATEGORY OR

     VIEW ̲ITEM? ̲READ ̲CIF ̲FIELDS(4.2.2.4.4.3.3)

     FILE ̲ITEM? ̲R ̲FIRST ̲F ̲DAT (4.2.2.4.13.3.3)

 END

 SET ̲MEMORY ̲ADDR(42.2.6.2)

 CREATE ̲PRINT ̲BUFFERS(4.2.2.4.5)

 OUTPUT ̲BUFFER(4.2.2.4.4.3.5)

 CHECK ̲OUTPUT ̲CONDITION(4.2.2.4.4.3.7)

 INITIAL:=FALSE

END

FIG 4.2.2.4.4.5-2…86…1 …02…   …02…   …02…   …02…   …02…   …02…   …02…   …02…   …02…   …02…   …02…   …02…                
   
D̲A̲T̲A̲ ̲C̲O̲N̲V̲E̲R̲S̲I̲O̲N̲ ̲O̲U̲T̲P̲U̲T̲

 INITIAL?    CURRENT ̲FORMAT = EXEC. SUBFORMAT ̲ARR  (FORMAT
             ̲INDEX)

         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̲.̲2̲.̲4̲.̲4̲
         ̲-̲)̲

         S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲.̲ ̲-̲)̲

         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̲.̲2̲.̲4̲.̲4̲-̲5̲)̲

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

         C̲R̲E̲A̲T̲E̲ ̲P̲R̲I̲N̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲.̲ ̲-̲ ̲6̲

         O̲U̲T̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲ ̲-̲7̲)̲

         ASSOCIATE  (PRIS ̲S2, OPERATION ̲PT) : OK

         INITIAL = FALSE

 END ̲OF ̲CIF ̲BUF? MMI ̲HEAD ̲REC.CIF ̲ACCESS EQ FALSE? R̲E̲Q̲
 ̲M̲O̲R̲E̲ ̲D̲A̲T̲A̲ 
                                        (-l9)

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

 FIELD ̲LIST ̲FULL?

 END ̲OF ̲IOC ̲BUF?C̲R̲E̲A̲T̲E̲ ̲P̲R̲I̲N̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲6̲)̲

             O̲U̲T̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲7̲)̲

             ASSOCIATE (PRIS ̲S2, OPERATION ̲PT) : 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̲.̲2̲.̲4̲.̲4̲.̲-̲1̲2̲)̲

 MMI ̲PG GT EOMM?  MMI ̲HEAD ̲REC. CONT ̲FORMAT ̲ID EQ ZERO?
             C̲H̲E̲C̲K̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲-̲2̲ ̲o̲)̲

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

 E̲R̲R̲O̲R̲ ̲R̲E̲P̲ ̲(̲P̲R̲O̲P̲,̲ ̲G̲U̲P̲,̲ ̲I̲N̲T̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

END
Fig. 4.2.2.4.4-1…86…1   …02…        …02…    …02…     …02…              …02…                   
           
N̲E̲X̲T̲ ̲F̲O̲R̲M̲A̲T̲

 CURRENT ̲FORMAT = MMI ̲HED ̲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̲.̲2̲.̲4̲.̲4̲.̲ ̲-̲3̲

 S̲E̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲S̲T̲R̲U̲C̲T̲U̲R̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲.̲-̲4̲)̲

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

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

 O̲U̲T̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲.̲ ̲-̲ ̲7̲ ̲

 A̲S̲S̲O̲C̲I̲T̲E̲ ̲(̲P̲R̲I̲S̲ ̲S̲2̲,̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲P̲T̲)̲ ̲:̲ ̲O̲K̲

END






























Fig. 4.2.2.4.4 - 2 …86…1   …02…        …02…    …02…     …02…              …02…                   
             …02…
R̲E̲A̲D̲ ̲M̲M̲I̲ ̲C̲T̲R̲L̲ ̲T̲A̲B̲L̲E̲

 MMI ̲TMP ̲PATAM.TABLE ̲ID = VUS ̲MMI ̲CONTROL ̲TABLE

 MMI ̲TMP ̲PARAM.FUNCTION = SEARCH ̲PRIMARY ̲KEY

 MMI ̲TMP ̲PARAM.MASK ̲1 = 0

 MMI ̲TMP ̲PARAM.ENTRY = 0

 MMITMP ̲PARAM.BUFFER ̲1 0 KEY ̲LIST

 MMI ̲TMP ̲PARAM.COUNT = 1

 MMI ̲TMP ̲PARAM.BUFFER ̲2 = MMI ̲HEAD ̲REC

 MMI ̲TMP ̲PARAM.BUFFER ̲2 LENGTH = MMI ̲HEAD ̲SIZE +
              MAX ̲SECTION ̲SIZE * CTRL ̲REC ̲SIZE

 MMI ̲TMP ̲PARAM.MASK ̲2 = BIT ̲0 + BIT ̲1

 KEY ̲LIST.INFO = 0

 KEYLIST.LINK = 0

 KEY ̲LIST.FORMAT ̲ID = CURRENT ̲FORMAT

 CASE SEARCH ̲PRIMARY ̲KEY (MMI ̲TMP ̲PARAM) (CC): ERROR
 ̲OK

    ERROR?-ANALYZE ̲ERROR (CC,0)

    OK?

 END CASE

 EOMM = MMI ̲REC ̲COUNT * CTRL ̲REC ̲SIZE + 1

 BOFL = EOMM + 1

END




                Figure 4.2.2.4.-3



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 +FIELD ̲LIST ̲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 ̲LENGT(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)=EOCB (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.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 ̲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




   ND LOOP    

   (continued)     

Figure 4.2.2.4.4-4…86…1   …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.2.4.4-4 continued…86…1   …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
   CIF ̲F ̲LIST.NO ̲OF ̲ELEM = 0

   ADM?          BUF ̲SIZE = SIZE (ADM1 ̲BUF)
            CIF ̲F ̲LIST.ELEM(1).F ̲GROUP ̲ID = 1
            CIF ̲F ̲LIST.ELEM(1).F ̲BY