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

⟦eb18f0e07⟧ Wang Wps File

    Length: 48553 (0xbda9)
    Types: Wang Wps File
    Notes: CPS/SDS/041               
    Names: »1490A «

Derivation

└─⟦e8bc85b7f⟧ Bits:30005802 8" Wang WCS floppy, CR 0105A
    └─ ⟦this⟧ »1490A « 

WangText



:   :…05…:…06…:…07…9…0a…9…0c…9…0f…9…00…9
8…09…8…0c…8…0e…8    8…06…7…09…7…0b…7…0f…7…00…7 7…06…6…0a…6…0c…6…0f…6…02…6…07…5…0b…5…0e…5…0f…5…02…5…05…4…08…4…09…4…0c…4…0f…4…02…4…05…4…06…3…08…3…0b…3…86…1
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               …02…
               
               
               
               
               
               
               
               
               
               
               …02…
               
               
               …02…
               
               
               
               
               
               
               
               

…02…CPS/SDS/041

…02…KS /811201…02……02…
PRINTER
DETAILED
 DESIGN
 SPECIFICATION…02……02…CAMPS








4.2.1.3  D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         The following HIPO-diagram and flowgrams show the Data
         Flow and Control Logic of UPCO.






















                HIPO Diagrams 4.2.1.3.1-5


















































Fig. 4.2.1.3-1 UPCO Module tree without common procedures

















































  Fig. 4.2.1.3-2 UPCO Module tree with common procedures

























4.2.1.4  U̲P̲C̲O̲ ̲M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲



4.2.1.4.1    U̲P̲C̲O̲ ̲M̲a̲i̲n̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         The responsibility of this module is to receive all
         input items that are associated with semaphore PRIS-S1,
         and to process the ones that arrives in the Print Queue.



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

         UPCO-MAIN

         The module is a SWELL Submodule, which is only called
         by the Coroutine Monitor.



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

             N/A



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

             TBD





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

         Items received in the semaphore PRIS ̲S1 are analysed

         System Call and
         Print Queue items are processed by this
                         module

         Command Queue- and
         PROP-items are processed by other modules.

         Unexpected items will invoke the error reporting module,
                          which handles all internal errors.

         The module design is described in the flowgrams on
         the follwoing pages.


 UPCO-MAIN

   SET ACTIVE ̲FLAG=FALSE



   RECEIVE ̲CMD (4.2.1.6.7   )



   FOREVER LOOP

      WAIT ̲OPSEM (PRIS ̲S1)(OPERATION   ): OK

      CASE   OPERATION.ID         OF :

         CMD ̲Q ̲ITEM?   P̲R̲O̲C̲E̲S̲S̲ ̲ ̲C̲M̲D̲ ̲Q̲ ̲I̲T̲E̲M̲(̲4̲.̲2̲.̲1̲.̲4̲.̲2̲
 ̲ ̲)

         SYSCALL?      P̲R̲O̲C̲E̲S̲S̲ ̲ ̲S̲Y̲S̲C̲A̲L̲L̲(̲ ̲2̲ ̲ ̲ ̲)̲

         PRINT ̲Q ̲ITEMS?  P̲R̲O̲C̲E̲S̲S̲ ̲P̲R̲I̲N̲T̲ ̲Q̲ ̲I̲T̲E̲M̲(̲ ̲ ̲ ̲3̲

         PROP ̲ITEM?    P̲R̲O̲C̲E̲S̲S̲ ̲P̲R̲O̲P̲ ̲I̲T̲E̲M̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲ ̲
 ̲)̲

         OTHERWISE?         E̲R̲R̲O̲R̲-̲R̲E̲P̲ ̲ ̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲3̲
 ̲)

      END CASE

   END FOREVER LOOP

     END
















                Fig. 4.2.1.4.1.5-1


 PROCESS ̲SYSCALL



     R̲E̲C̲E̲I̲V̲E̲-̲C̲M̲D̲ (4.2.1.6.7)



   END






































                Fig. 4.2.1.4.1.5-2


 PROCESS ̲PRINT ̲Q ̲ITEM


    PRINTER ̲BUSY ̲FLAG EQ TRUE?    
                               PRINTER ̲ERROR ̲FLAG EQ
                               TRUE?
                                                   RETURN
                                                   ̲ITEM(
                                                   
                                                   
                                                   
                                                   
                                                   )
                               CHECK ̲SUB ̲QC(-4)

    SET PRINTER ̲BUSY ̲FLAG = TRUE


    CASE RECEIVE ̲FIRST ̲QEL  (WAIT: = TRUE,PRIS ̲PRINT
 ̲Q)

                     (INPUT ̲ATTR,QEL,SUBQUEUE,CC) :ERROR
 OK

       ERROR?      ANALYSE ̲ERROR (CC,[):OK



       OK?   S̲A̲V̲E̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲ (4.2.1.6.3)

             P̲R̲I̲N̲T̲I̲N̲G̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲ (4.2.1.4.a)


     END CASE

















   END



                Fig. 4.2.1.4.1.5-3


 CHECK ̲SUB ̲Q



     CASE   OPERATION.ITEM ̲NAME OF:


        MAIN ̲Q?  ITEM ̲PREEMPTED ̲FLAG EQ FALSE? E̲R̲R̲O̲R̲
 ̲R̲E̲P̲(̲ ̲ ̲ ̲ ̲)̲
                                                   
       (4.2.1.4.13)
                   CASE RECEIVE ̲FIRST ̲QEL (WAIT:=TRUE,PRIS
 ̲PRINT ̲Q)

                                   (INPUT ̲ATTR,SUBQUEUE,CC):ERROR
 ̲OK

                      ERROR?   ANALYSE ̲ERROR(CC,0):
 

                      OK?   S̲A̲V̲E̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲ (4.2.1.6.3)

                            P̲R̲I̲N̲T̲I̲N̲G̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲ (4.2.1.4.9)

                    END CASE

          PREC1?

          FLASH?   "PRINTING ̲SYIE ̲TAB-FLAG EQ FALSE?
 E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲)̲
                                                   
          (4.2.1.4.13)
                    U̲P̲C̲O̲ ̲P̲R̲E̲E̲M̲P̲T̲ ̲D̲E̲S̲T̲O̲R̲E̲ ̲(̲P̲R̲E̲E̲M̲P̲T̲)̲ (4.2.1.4.7)


    STAT?

      SYIE ̲TAB?  CASE RECEIVE ̲FIRST-QEL(WAIT:=TRUE,PRIS
 ̲PRINT ̲Q.SUBQUEUE)

                                    (INPUT ̲ATTR,SUBQUEUE,CC):ERROR
 ̲OK

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

                    OK?     S̲A̲V̲E̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲ (4.2.1.6.3)

                            P̲R̲I̲N̲T̲I̲N̲G̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲(4.2.1.4.9)

                  END CASE

      OTHERWISE?      E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲ ̲)̲ (4.2.1.4.13)



    END CASE

  END                 ,Fig. 4.2.1.4.1.5-4


4.2.1.4.2    P̲r̲o̲c̲e̲s̲s̲ ̲C̲M̲D̲ ̲Q̲ ̲I̲t̲e̲m̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲



4.2.1.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 the items arriving in the Command
         Queue.

         Stop,Close and Resume-DEMCO Commands,
         Timeouts and Log-Acknowledges are processed
                     by this module

         Start DEMCO-Command and
         FLASH Notifications are processed by other modules.

4.2.1.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̲a̲t̲i̲o̲n̲:

         a)  PROCESS ̲CMD ̲Q ̲ITEM

         b)  PROCESS ̲CMD ̲Q ̲ITEM(R6):OK

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

         R0 - R17      DESTROYED

         Fatal Errors:    NONE



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

         N/A



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

         TBD


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

         The module receives the CMD-Q items and analyses them
         by testing the QEL-Attributes and the internal flags.
          The most important actions taken by this module are
         : invoking other modules, sending commands to PROP,
         requesting timeouts and manipulating the flags.

         The following flowgrams describe how.


 PROCESS ̲CMD ̲Q-ITEM

      SET PENDING ̲INIT ̲RECEIVE ̲CMD = FALSE ̲

      CASE RECEIVE ̲FIRST ̲QEL(WAIT:=TRUE,PRIS ̲CMD ̲Q)

                (INPUT ̲ATTR,INPUT ̲QEL,SUBQUEUE,CC):ERROR
 ̲OK

          ERROR?    ANALYSE ̲ERROR(CC, ):OK

          OK? CASE INPUT ̲ATTR.MAINTYPE OF:

                DEMCO ̲CMD?   SAVE DEMCO CMD REFERENCES
                             CASE ATTRIBUTES.SUBTYPE
 OF:


                                START ̲SAD? U̲P̲C̲O̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲A̲T̲I̲O̲N̲(4.2.1.4.3)
                                STOP ̲SAD?  S̲T̲O̲P̲ ̲P̲R̲I̲N̲T̲I̲N̲G̲
 (  2  )
                                CLOSE ̲SAD? C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲
 ̲P̲R̲O̲C̲( 3  )
                                RESUME?    R̲E̲S̲U̲M̲E̲ ̲P̲R̲O̲C̲
 ( 4  )
                                OTHERWISE? E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲
 ̲ ̲ ̲)(4.2.1.4.13)

                              END CASE

                TIME OUT?        A̲N̲A̲L̲Y̲S̲E̲ ̲T̲I̲M̲E̲O̲U̲T̲(̲ ̲ ̲5̲
 ̲ ̲)̲


                FLASH ̲NOTIFICATION? A̲N̲A̲L̲Y̲S̲E̲ ̲F̲L̲A̲S̲H̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲(̲4̲.̲2̲.̲1̲.̲4̲.̲4̲)̲


                ACK? ̲ATTR.SUBTYPE EQ LOG ̲COLLECT ̲ACK?
 ̲P̲R̲O̲C̲ ̲L̲O̲G̲ ̲A̲C̲K̲(-6)

                  E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲ ̲ ̲ ̲)̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲3̲)̲

                  R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲(4.2.1.6.7)

                OTHERWISE?    E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲ ̲ ̲)̲(4.2.1.11.13)

                              R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲7̲)̲


            END CASE

            D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲I̲T̲E̲M̲ ̲(̲I̲N̲P̲U̲T̲ ̲Q̲E̲L̲,̲I̲N̲P̲U̲T̲ ̲A̲T̲T̲R̲)(4.2.1.6.5)


      END CASE

    END                  Fig. 4.2.1.4.2.5-1


 STOP ̲PRINTING


      ACTIVE ̲FLAG EQ FALSE?       E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲ ̲)̲(̲4̲.̲2̲.̲1̲.̲7̲.̲1̲3̲
 ̲ ̲)̲

      SET ACTIVE ̲FLAG = FALSE


      C̲M̲D̲ ̲T̲O̲ ̲P̲R̲O̲P̲(̲A̲R̲A̲N̲D̲O̲N̲)̲(̲4̲.̲2̲.̲1̲.̲6̲.̲6̲)̲

    END


































                Fig. 4.2.1.4.2.5-2


 CLOSE ̲DOWN ̲PROC


     ACTIVE ̲FLAG EQ FALSE?

     CLOSE ̲DOWN ̲FLAG ̲EQ ̲TRUE?       E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲)̲(4.2.1.4.13
 )


     SET CLOSE ̲DOWN ̲FLAG = TRUE

     PRINTER ̲BUSY ̲FLAG EQ FALSE?

     CLOSE ̲DOWN ̲TIME ̲LIMIT EQ 0?     C̲M̲D̲ ̲T̲D̲ ̲P̲R̲O̲P̲(̲A̲B̲A̲N̲D̲O̲N̲)(4.2.1.6.6)



    CASE REQUEST ̲TIMEOUT (PRIS ̲CMD ̲Q,CLOSE ̲DOWN ̲TIMEOUT,
                       CLOSE ̲DOWN ̲TIME ̲LIMIT)
                       (CC): ERROR ̲OK

       ERROR?      ANALYSE ̲ERROR(CC,  ): OK

       OK?         R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲(4.2.1.6.7)

   END CASE


 END

















                Fig. 4.2.1.4.2.5-3


 RESUME ̲PROC



     PRINTER ̲ERROR ̲FLAG EQ FALSE?

     ACTIVE ̲FLAG EQ FALSE?             E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲T̲B̲D̲
 ̲)(4.2.1.4.13)


     SET PRINTER ̲ERROR ̲FLAG = FALSE



     C̲M̲D̲ ̲T̲D̲ ̲P̲R̲O̲P̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(4.2.1.6.6 )



     R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ (4.2.1. 6.7)



   END























                Fig. 4.2.1.4.2.5-4


 ANALYSE ̲TIMEOUT


       ACTIVE ̲FLAG NE TRUE?   R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲(4.2.1.6.7)


       CASE INPUT ̲ATTR.FLAGS OF:

          PREEMPTION ̲TIMEOUT?    PREEMPTION ̲CONTROL
 ̲FLAG EQ FALSE?

                                                   R̲E̲C̲E̲I̲V̲E̲
 ̲C̲M̲D̲(4.2.1.6.7)

                                 SET PREEMPTION ̲CONTROL
 ̲FLAG=FALSE


                                 U̲P̲C̲O̲ ̲P̲R̲E̲E̲M̲P̲T̲ ̲R̲E̲S̲T̲O̲R̲E̲(̲P̲R̲E̲E̲M̲P̲T̲)(4.2.1.4.7)












          CLOSE ̲DOWN ̲TIMEOUT?   SET ACTIVE ̲FLAG = FALSE

                                C̲M̲D̲ ̲T̲D̲ ̲P̲R̲O̲D̲(̲A̲B̲A̲N̲D̲O̲N̲)̲(̲4̲.̲2̲.̲1̲.̲6̲
 ̲ ̲6̲

          OTHERWISE?   E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲)(4.2.1.4.13)   R̲E̲C̲E̲I̲V̲E̲
 ̲C̲M̲D̲(4.2.1.6.7)



        END CASE





      END "ANALYSE TIMEOUT"


                Fig. 4.2.1.4.2.5-5


 PROC ̲LOG ̲ACK

      R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ (4.2.1.6.7)

  END








































                  4.2.1.4.2.5-6


4.2.1.4.3    U̲P̲C̲O̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲A̲T̲I̲O̲N̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         This module is called by the PROCESS-CMD-Q-ITEM-module
         and takes care of the initializing actions connected
         with UPCO.  It gets the appropriate system parameters,
         connects the subprocess to the printer and the Format
         File, initializes some of the variables and invokes
         PROP by sending an INITIALIZE ̲PROP CMD.



4.2.1.4.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)  UPCO ̲INITIALIZATION : OK

         b)  UPCO ̲INITIALIZATION (R6):OK

         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

         Return Registers:

         R0 - R7                            DESTROYED

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



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

         N/A





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

         TBD



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

         It is checked whether the initialization has already
         taken place or not.  If positive the command is ignored
         and an error analysis will take place.

         The various test arrays are initialized by reading
         in the data from the Pring Format File.


 UPCO ̲INITIALIZATION


     ACTIVE ̲FLAG EQ TRUE?           E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲)̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲3̲)̲

                                    R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲(̲4̲.̲2̲.̲1̲.̲6̲.̲7̲
 ̲)̲








     CASE PRINTER ̲TYPE OF:

        LOW ̲SPEED?     G̲E̲T̲ ̲L̲O̲W̲ ̲S̲P̲E̲E̲D̲ ̲P̲R̲I̲N̲T̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲
 ̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲ ̲)̲

        MEDIUM ̲SPEED?  G̲E̲T̲ ̲M̲E̲D̲I̲U̲M̲ ̲S̲P̲E̲E̲D̲ ̲P̲R̲I̲N̲T̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲)̲


      END CASE


      GET PRINTER ̲CONN FROM QEL INFO FIELD

      ACCEPT ̲PRINTER ̲CONNECTION

      CASE LOOKUP(DIRECTORY,PFF ̲NAME)
                 (PF ̲FILE ̲DESCRIPTOR, CC):ERROR ̲OK

            ERROR?   ANALYSE ̲ERROR(CC,O):OK

            OK?

      END CASE

      R̲E̲A̲D̲ ̲P̲F̲F̲ ̲I̲N̲D̲E̲X̲ ̲A̲N̲D̲ ̲T̲E̲X̲T̲ ̲A̲R̲R̲A̲Y̲S̲ ̲(̲ -2  )

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


 END



                Fig. 4.2.1.4.3.5-1


 READ ̲PFF ̲INDEX ̲AND ̲TEXT-̲ARRAYS


     SET   PFF ̲BLE.KIND = HIGH ̲BYTE

     SET   PFF ̲BLE.LINK =  NIL

     SET   PFF ̲BLE.ADDRESS =   ADDRESS(FDB)

     SET   PFF ̲BLE.BYTE ̲SIZE =  SIZE(FDB)


     SET   PFF ̲ADDRESS.FIRST ̲BYTE = PFF ̲INDEX ̲ADDR

     SET   PFF ̲ADDRESS.BYTE ̲COUNT = SIZE (FDB)


     R̲E̲A̲D̲ ̲P̲F̲F̲ ̲D̲A̲T̲A̲ (        )







     TRANSFER ̲VALUES ̲FROM ̲FDB ̲TO ̲ARRAYS








   END





                Fig. 4.2.1.4.3.5-2


4.2.1.4.4    A̲n̲a̲l̲y̲s̲e̲ ̲F̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.1.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 analyses the derived FLASH Notification
         and the status of the Printer Subnprocess and determines
         the actions to be taken.



4.2.1.4.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)  ANALYSE ̲FLASH ̲NOTIFICATION OK

         b)  ANALYSE ̲FLASH ̲NOTIFICATION (R6):OK

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

         R0 - R17                 DESTROYED

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

         NONE.


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

         N/A



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

         TBD



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

         If the Printer is out of action the arrived FLASH item
         and a notification are sent to MDCO.

         If the subprocess is already executing a FLASH-item,
         the notification will be ignored.

         If the Subprocess is not executing a FLASH item a preemption
         timeout will be requested.  If the request is rejected
         alternative actions are taken.

         The following flowgrams illustrates the module logic.


  …02…ANALYSE ̲FLASH ̲NOTIFICATION

      CASE ATTRIBUTES.SUBTYPE OF:

         SUPERFLASH ̲I ̲A? SET SUBQ ̲INDEX = PREC ̲1
         FLASH ̲I ̲A?      SET SUBQ ̲INDEX= FLASH

                ACTIVE ̲FLAG EQ FALSE?

                PRINTER ̲ERROR ̲FLAG EQ TRUE?



                                   F̲L̲A̲S̲H̲ ̲I̲T̲E̲M̲S̲ ̲T̲O̲ ̲M̲D̲C̲O̲(4.2.1.4.8)



                PRINTER ̲BUSY ̲FLAG EQ FALSE?   E̲R̲R̲O̲R̲
 ̲R̲E̲P̲(̲ ̲ ̲ ̲)(4.2.1.4.13)

                EXECUTING ̲FLASH ̲FLAG EQ TRUE?

                PRINTING ̲SYIE ̲TAB ̲FLAG EQ TRUE?

              CASE PRINTER ̲TYPE OF:

                   LOW ̲SPEED? G̲E̲T̲ ̲L̲O̲W̲ ̲S̲P̲E̲E̲D̲ ̲P̲R̲I̲N̲T̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲(
     )

                   MEDIUM ̲SPEED?  G̲E̲T̲ ̲M̲E̲D̲I̲U̲M̲ ̲S̲P̲E̲E̲D̲ ̲P̲R̲I̲N̲T̲
 ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲(  )

                END CASE

                SET PREEMPTION ̲DELAY ̲LIMIT= PREEMPT
 ̲DELAY

                R̲E̲Q̲U̲E̲S̲T̲ ̲P̲R̲E̲E̲M̲P̲T̲I̲O̲N̲ ̲T̲I̲M̲E̲O̲U̲T̲( -2  )






         O̲T̲H̲E̲R̲W̲I̲S̲E̲?̲   E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲T̲B̲D̲)̲(̲4.2.1.4.13)

 END ̲CASE

 R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲(4.2.1.6.7)

END "ANALYSE FLASH NOTIFICATION"
                Fig. 4.2.1.4.4.5-1


 REQUEST ̲PREEMPTION ̲TIMEOUT


     CASE REQUEST ̲TIMEOUT(PRIS ̲CMD ̲Q, PREEMPTION ̲TIMEOUT,
                         PREEMPTION ̲DELAY ̲LIMIT)(CC):ERROR
 ̲OK


        ERROR?  CASE ANALYSE ̲ERROR(CC,2,TIMEOUT ̲CLAIM
 ̲EXEEDED,
                                        OTHER ̲ERRORS):(ER1,ER2)


                   ER1? U̲P̲C̲O̲ ̲P̲R̲E̲E̲M̲P̲T̲ ̲R̲E̲S̲T̲O̲R̲E̲(̲P̲R̲E̲E̲M̲P̲T̲)(4.2.1.4.7)


                   ER2?              F̲L̲A̲S̲H̲ ̲I̲T̲E̲M̲S̲ ̲T̲O̲
 ̲M̲D̲C̲O̲(4.2.1.4.8)

                                     E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲T̲B̲D̲)̲(4.2.1.4.13)

                                     R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲(4.2.1.6.7)



                END CASE


        OK?     SET PREEMPTION ̲CONTROL ̲FLAG=TRUE

                R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲(4.2.1.6.7)





 END ̲CASE






                Fig. 4.2.1.4.4.5-2


4.2.1.4.5    P̲R̲O̲C̲E̲S̲S̲ ̲P̲R̲O̲P̲ ̲I̲T̲E̲M̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         The module analyses the various items received from
         PROP.

         Error-, PROP ̲INITIALILZE CC-and ABANDON ̲CC-reports
         are processed by this module, while PREEMPT ̲CC-and
         PRINT ̲COMPLETE-reports are processed by other modules.



4.2.1.4.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)  PROCESS ̲PROP ̲ITEM:OK

         b)  PROCESS ̲PROP ̲ITEM(R6):OK

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

         R0 - R7    DESTROYED

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

         None



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

         N/A





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

         TBD





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

         The OPERATION.ITEM ̲NAME is tested in order to determine
         the PROP item type.

         If an error is reported, eventual FLASH-items awaiting
         execution are sent to MDCO and the PRINTER ̲ERROR ̲FLAG
         is set.  Destinction is made between PAPER ̲LOW and
         other errors.  If PAPER ̲LOW occurs the subprocess weill
         wait for a RESUME and from DEMCO.

         Initialize ̲CC will cause initialization of flags, reporting
         to DEMCO and opening for receipt of print items.

         Abandon ̲CC will cause all open views connected with
         this subprocess to be closed and all QEL's owned by
         the subprocess to be returned to the queue.
         Finally DEMCO is notified.


 PROCESS ̲PROP ̲ITEM



      CASE OPERATION.ITEM ̲NAME OF:

          CONNECTION ̲ERROR?

          PROP ̲ERROR?

          PAPER ̲LOW?         P̲R̲O̲C̲ ̲P̲R̲O̲P̲ ̲E̲R̲R̲O̲R̲ ̲R̲E̲P̲(  2
  )


          PROP ̲INITIALIZE ̲CC?   P̲R̲O̲C̲ ̲P̲R̲O̲P̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲
 ̲C̲C̲(  4  )



          ABANDON ̲CC?           P̲R̲O̲C̲ ̲A̲B̲A̲N̲D̲O̲N̲ ̲C̲C̲(  5
  )



          PREEMPT ̲CC?           P̲R̲I̲N̲T̲I̲N̲G̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲(4.2.1.4.9)



          PRINT ̲COMPLETE ̲REP?  P̲R̲O̲C̲ ̲P̲R̲I̲N̲T̲ ̲C̲O̲M̲P̲L̲E̲T̲E̲ ̲R̲E̲P̲(4.2.1.4.6)









          OTHERWISE?       E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲ ̲)̲(4.2.1.4.13)


      END






                Fig. 4.2.1.4.5.5-1


 PROC ̲PROP ̲ERROR ̲REP



      SET PREEMPTION ̲CONTROL ̲FLAG = FALSE



      F̲L̲A̲S̲H̲ ̲I̲T̲E̲M̲S̲ ̲T̲O̲ ̲M̲D̲C̲O̲(4.2.1.4.8  )


      SET PRINTER ̲ERROR ̲FLAG = TRUE


      CASE OPERATION.ITEM ̲NAME OF:

         PROP ̲ERROR?    E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲ ̲)̲(4.2.1.4.13)


         CONNECTION ̲ERROR?  P̲R̲O̲C̲ ̲C̲O̲N̲N̲ ̲E̲R̲R̲ ̲R̲E̲P̲(  4  )


         PAPER ̲LOW?         P̲R̲O̲C̲ ̲P̲A̲P̲E̲R̲ ̲L̲O̲W̲ ̲R̲E̲P̲(  3 
 )


       END ̲CASE


       PENDING ̲INIT ̲RECEIVE ̲CMD EQ FALSE?   R̲E̲C̲E̲I̲V̲E̲
 ̲C̲M̲D̲(̲4.2.1.6.7)



 END











                Fig. 4.2.1.4.5.5-2


 PROC ̲PAPER ̲LOW ̲REP



      SET PRINTER ̲ERROR ̲FLAG = TRUE



 END







































                Fig. 4.2.1.4.5.5-3


 PROC ̲PROP ̲INITIALIZE ̲CC





     SET ACTIVE ̲FLAG = TRUE


     SET PRINTER ̲ERROR ̲FLAG        = FALSE

     SET PREEMPTION ̲CONTROL ̲FLAG   = FALSE

     SET ITEM ̲PREEMPTED ̲FLAG       = FALSE

     SET PRINTER ̲BUSY ̲FLAG         = FALSE

     SET AWAITING ̲CIF ̲FLAG         = FALSE

     SET CLOSE ̲DOWN ̲FLAG           = FALSE

     SET EXECUTING ̲FLASH ̲FLAG      = FALSE









    S̲E̲N̲D̲ ̲R̲E̲P̲ ̲T̲O̲ ̲D̲E̲M̲C̲O̲(̲4̲.̲2̲.̲1̲.̲6̲.̲9̲ ̲)̲


    R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲(4.2.1.6.7  )

    R̲E̲C̲E̲I̲V̲E̲ ̲P̲R̲I̲N̲T̲ ̲Q̲ ̲(̲M̲A̲I̲N̲ ̲)(4.2.1.6.8)


END

                Fig. 4.2.1.4.5.5-4


 PROC ̲ABANDON ̲CC



         C̲H̲E̲C̲K̲ ̲V̲I̲E̲W̲(4.2.1.6.10  )



         DOC ̲ACC ̲APP ̲FLAG EQ TRUE?  T̲R̲A̲N̲S̲A̲C̲T̲I̲O̲N̲ ̲A̲C̲C̲(̲A̲B̲A̲N̲D̲O̲N̲)̲(4.2.1.4.12)


         R̲E̲T̲U̲R̲N̲ ̲I̲T̲E̲M̲(̲P̲R̲I̲N̲T̲ ̲I̲T̲E̲M̲ ̲Q̲E̲L̲ ̲R̲E̲F̲)̲(4.2.1.6.4)



         ITEM ̲PREEMPTED ̲FLAG EQ FALSE?


         U̲P̲C̲O̲ ̲P̲R̲E̲E̲M̲P̲T̲ ̲R̲E̲S̲T̲O̲R̲E̲(̲R̲E̲S̲T̲O̲R̲E̲)̲(4.2.1.4.7)


         C̲H̲E̲C̲K̲ ̲V̲I̲E̲W̲  (4.2.1.6.10)


         DOC ̲ACC ̲APP ̲FLAG EQ TRUE?  T̲R̲A̲N̲S̲A̲C̲T̲I̲O̲N̲ ̲A̲C̲C̲(̲A̲B̲A̲N̲D̲O̲N̲)̲(4.2.1.4.12)


         R̲E̲T̲U̲R̲N̲ ̲I̲T̲E̲M̲ ̲(̲P̲R̲I̲N̲T̲ ̲I̲T̲E̲M̲ ̲Q̲E̲L̲ ̲R̲E̲F̲)̲(4.2.1.6.4)

         F̲L̲A̲S̲H̲ ̲I̲T̲E̲M̲S̲ ̲T̲O̲ ̲M̲D̲C̲O̲(̲4.2.1.4.8)

         DISCONNECT ̲PFF ̲AND ̲PRINTER

         CLOSE ̲DOWN ̲FLAG EQ TRUE ̲?  SET CLOSE ̲DOWN ̲FLAG
         = FALSE

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


     END






                Fig. 4.2.1.4.5.5-5


 PROC ̲CONN ̲ERR ̲REP



      C̲H̲E̲C̲K̲ ̲V̲I̲E̲W̲(4.2.1.6.10)


      DOC ̲ACC ̲APP EQ TRUE?   T̲R̲A̲N̲S̲A̲C̲T̲I̲O̲N̲ ̲A̲C̲C̲(̲C̲O̲N̲ ̲E̲R̲R̲)(4.2.1.4.12)


      R̲E̲T̲U̲R̲N̲ ̲I̲T̲E̲M̲(̲P̲R̲I̲N̲T̲ ̲I̲T̲E̲M̲ ̲Q̲E̲L̲ ̲R̲E̲F̲)(4.2.1.6.4)


      ITEM ̲PREEMPTED ̲FLAG EQ FALSE?


      U̲P̲C̲O̲ ̲P̲R̲E̲E̲M̲P̲T̲ ̲R̲E̲S̲T̲O̲R̲E̲(̲R̲E̲S̲T̲O̲R̲E̲)̲(4.2.1.4.7)


      C̲H̲E̲C̲K̲ ̲V̲I̲E̲W̲(4.2.1.6.10)


      DOC.ACC ̲APP ̲FLAG ̲EQ TRUE?  T̲R̲A̲N̲S̲A̲C̲T̲I̲O̲N̲ ̲A̲C̲C̲(CON
 ̲ERR)(4.2.1.4.12)


      R̲E̲T̲U̲R̲N̲ ̲I̲T̲E̲M̲(̲P̲R̲I̲N̲T̲ ̲I̲T̲E̲M̲ ̲Q̲E̲L̲ ̲R̲E̲F̲)(4.2.1.6.4)


      F̲L̲A̲S̲H̲ ̲I̲T̲E̲M̲S̲ ̲T̲O̲ ̲M̲D̲C̲O̲(4.2.1.4.8)

      CLOSE ̲DOWN ̲FLAG EQ TRUE?   SET CLOSE ̲DOWN ̲FLAG
 =  FALSE



      SET ACTIVE ̲FLAG = FALSE



 END





                Fig. 4.2.1.4.5.5-4


4.2.1.4.6    P̲R̲O̲C̲ ̲P̲R̲I̲N̲T̲ ̲C̲O̲M̲P̲L̲E̲T̲E̲ ̲R̲E̲P̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         The module determines - and carries out some of - the
         actions to be taken when PROP notifies of print completion.



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

         a)  PROC ̲PRINT ̲COMPLETE ̲REP

         b)  PROC ̲PRINT ̲COMPLETE ̲REP(R6): OK

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

         R0 - R7        DESTROYED

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

         None



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

         N/A





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

         TBD


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

         At first it is checked whether any further copies of
         the items are to be printed or not.

         If not, cleaning up and appropriate accounting are
         carried out.  Otherwise PROP is ordered to print a
         copy more.
         If an item is preempted it will be checked if there
         are any FLASH-items awaiting printout.  In case there
         is at least one, the first of them will be activated.


 PROC ̲PRINT ̲COMPLETE ̲REP



     DECREMENT COPY ̲COUNTER


     COPY ̲COUNTER GT 0  ?    C̲M̲D̲ ̲T̲O̲ ̲P̲R̲O̲P̲(̲C̲O̲M̲M̲E̲N̲C̲E̲)̲(4.2.1.6.6)



     C̲H̲E̲C̲K̲ ̲V̲I̲E̲W̲(4.2.1.6.10)


     DOC ̲ACC ̲ADD ̲FLAG EQ TRUE?   T̲R̲A̲N̲S̲A̲C̲T̲I̲O̲N̲ ̲A̲C̲C̲(̲C̲O̲M̲P̲L̲E̲T̲E̲)̲(4.2.1.4.12)

     SET SUBQ = MAIN

     PRINT ̲ITEM ̲QEL ̲REF.SUBQUEUE ̲EQ STAT?

     PRINT ̲ITEM ̲QEL ̲REF.SUBQUEUE EQ SYIE ̲TAB? C̲H̲E̲C̲K̲
 ̲Q̲E̲L̲ ̲F̲L̲A̲G̲S̲(  2  )



    D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲I̲T̲E̲M̲(̲P̲R̲I̲N̲T̲ ̲I̲T̲E̲M̲ ̲Q̲E̲L̲.̲R̲E̲F̲)̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲

       "ITEM ̲QEL ̲ATTR IS KEPT"

    ITEM ̲PREEMPTED ̲FLAG EQ TRUE?   C̲H̲E̲C̲K̲ ̲F̲L̲A̲S̲H̲ ̲Q̲(  3
  )


    SUBQ EQ MAIN?  SET PRINTER ̲BUSY ̲FLAG = FALSE


    R̲E̲C̲E̲I̲V̲E̲ ̲P̲R̲I̲N̲T̲ ̲Q̲ ̲(̲S̲U̲B̲Q̲)(4.2.1.6.8)




 END



                Fig. 4.2.1.4.6.5-1


 CHECK ̲QEL ̲FLAGS



       ITEM ̲QEL ̲ATTR.FLAGS AND LAST ̲CIF NE LAST ̲CIF?


            CASE SEND ̲REPLY(        REPLY ̲PARAMS,
                             ITEM ̲QEL ̲REF       ,
                             ITEM-QEL-REF       )
                             (    REPLY ̲PARAMS,
                               CC):  ERROR ̲OK
               ERROR?   ANALYSE ̲ERROR(CC, 0 ):  OK
               OK?      SET SUBQ = ITEM ̲QEL ̲REF.SUBQUEUE
                        SET AWAITING ̲CIF ̲FLAG = TRUE



            END CASE



 END






















                Fig. 4.2.1.4.6.5-2


 CHECK ̲FLASH ̲Q


   CASE RECEIVE ̲FIRST ̲QEL (WAIT:=FALSE;PRIS ̲PRINT ̲Q.PREC1)
                            (INPUT ̲ATTR,QEL,SUBQUEUE,CC):
 ERROR ̲OK
        ERROR?  CASE ANALYSE ̲ERROR(CC,1,SUBQUEUE ̲EMPTY):(L4)

                   L4?

                END CASE

                CASE RECEIVE ̲FIRST ̲QEL(WAIT=FALSE,
                                      PRIS ̲PRINTQ.FLASH)
                                      (INPUT ̲ATTR,QEL,SUBQUEUE,CC)
                                      :ERROR ̲OK


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

                            END CASE


                            R̲E̲S̲T̲A̲R̲T̲ ̲P̲R̲E̲E̲M̲P̲T̲E̲D̲ ̲I̲T̲E̲M̲S̲(̲
  4  )



                   OK?        S̲A̲V̲E̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲ (4.2.1.6.3)

                              P̲R̲I̲N̲T̲I̲N̲G̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲(4.2.1.4.9)


                 END CASE


        OK?      S̲A̲V̲E̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲(4.2.1.6.3)

                 P̲R̲I̲N̲T̲I̲N̲G̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲(̲4̲.̲2̲.̲1̲.̲4̲.̲9̲)̲

        END CASE

 END


                Fig. 4.2.1.4.6.5-3


 RESTART ̲PREEMPTED ̲ITEM


      U̲P̲C̲O̲ ̲P̲R̲E̲E̲M̲P̲T̲ ̲R̲E̲S̲T̲O̲R̲E̲(̲R̲E̲S̲T̲O̲R̲E̲)(4.2.1.4.7)

      PRINTING ̲SYIE ̲TAB ̲FLAG EQ TRUE?


                      SET SUBQ = PRINT ̲ITEM ̲QEL ̲ATTR.SUBQUEUE


                      R̲E̲C̲E̲I̲V̲E̲ ̲P̲R̲I̲N̲T̲ ̲Q̲(̲S̲U̲B̲Q̲)(4.2.1.6.8
 )





      C̲M̲D̲ ̲T̲O̲ ̲P̲R̲O̲P̲ ̲(̲R̲E̲S̲T̲A̲R̲T̲)(4.2.1.6.6)



    END
























                Fig. 4.2.1.4.6.5-4


4.2.1.4.7    U̲P̲C̲O̲ ̲P̲R̲E̲E̲M̲P̲T̲ ̲R̲E̲S̲T̲O̲R̲E̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         The Module takes care of saving appropriate variables
         pertinent to an item which is to be preempted.  It
         inputs the preemption-causing item and orders PROP
         to make preemption.

         The Module also restores the status of an earlier preempted
         item.



4.2.1.4.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)  UPCO ̲PREEMPT ̲RESTORE
                      (PROCEDURE:PRESTORE ̲SWITCH)

         b)  UPCO ̲PREEMPT ̲RESTORE(PROCEDURE=  R1,R6):OK

         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          Procedure indicator (DESTROYED)

         R6         LINK

         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.14.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         N/A





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

         TBD





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

         The module cosists of two procedures, one for preempting
         and one for restoring.  The choice between them is
         based on the call-parameter PROCEDURE.

         The preempting procedure stores the appropriate variable
         values in a set of local variables.  A preemption command
         to PROP is issued.

         The restoring procedure restores the values of the
         earlier saved variables.


 UPCO ̲PREEMPT ̲RESTORE (PROCEDURE)




      CASE PROCEDURE OF:



         PREEMPT?   U̲P̲C̲O̲ ̲P̲R̲E̲E̲M̲P̲T̲ (  2  )


         RESTORE?    U̲P̲C̲O̲ ̲R̲E̲S̲T̲O̲R̲E̲ (  3  )

         OTHERWISE?   E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲)̲(4.2.1.4.143)



      END CASE



 END






















                Fig. 4.2.1.4.7.5-1


 UPCO ̲PREEMPT


      SET ITEM ̲PREEMPTED ̲FLAG = TRUE


      SAVE     ITEM ̲QEL.REF


      SAVE     ITEM ̲QEL ̲ATTR


      SAVE VIEW ̲OPEN ̲FLAG


      SAVE COPY ̲COUNTER

      SAVE DOC ̲ACC ̲APP ̲FLAG

      SAVE DOCUMENT ̲ACC ̲VARIABLES


      SAVE AWAITING ̲CIF ̲FLAG


      SAVE PRINTING ̲SYTE ̲TAB ̲FLAG

      SAVE PRINT ̲ITEM ̲CATEGORY


      CASE  RECEIVE ̲FIRST ̲QEL (WAIT:=TRUE,PRIS ̲PRINT
 ̲Q)
                       (INPUT.ATTR,QEL,SUBQUEUE,CC):ERROR
 ̲OK
         ERROR?     ANALYSE ̲ERROR(CC,   ): OK
         OK?        S̲A̲V̲E̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲ (4.2.1.6.3)

                    C̲M̲D̲ ̲T̲O̲ ̲P̲R̲O̲P̲(̲P̲R̲E̲E̲M̲P̲T̲)(4.2.1.6.6)



      END CASE


 END

                Fig. 4.2.1.4.7.5-2


 UPCO-RESTORE



     SET ITEM ̲PREEMPTED ̲FLAG = FALSE


     SET     ITEM ̲QEL ̲REF = PREEMPT ̲ITEM ̲QEL ̲REF

     SET     ITEM ̲QEL ̲ATTR = PREEMPT ̲ITEM ̲QEL ̲ATTR

     SET  VIEW ̲OPEN ̲FLAG   = PREEMPT ̲VIEW ̲OPEN ̲FLAG

     SET    COPY COUNTER   = PREEMPT ̲COPY ̲COUNTER

     SET    DOC ̲ACC ̲APP ̲FLKAG = DOC ̲ACC ̲APP ̲FLAG


     RESTORE DOC ACC VARIABLES


     SET AWAITING ̲CIF ̲FLAG = PREEMPT ̲AWAITING ̲CIF ̲FLAG

     SET PRINTING ̲SYIE ̲TAB ̲FLAG = PREEMPT ̲PRINTING ̲SYIE
 ̲TAB ̲FLAG

     SET PRINT ̲ITEM ̲CATEGORY    = PREEMPT ̲PRINTITEM.CATEGORY







 END











                Fig. 4.2.1.4.2.5-3


4.2.1.4.8    F̲L̲A̲S̲H̲ ̲I̲T̲E̲M̲S̲ ̲T̲O̲ ̲M̲D̲C̲O̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲



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

         The module searches the FLASH Queues and sends eventual
         FLASH-items to MDCO.



4.2.1.4.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)  FLASH ̲ITEMS ̲TO ̲MDCO

         b)  FLASH ̲ITEMS ̲TO ̲MDCO(R6):OK

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

         R0 - R7             DESTROYED

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

         None



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





4.2.1.4.8.3.1 C̲H̲E̲C̲K̲ ̲P̲R̲E̲V̲I̲O̲U̲S̲

         If the previous item was a report it is returned to
         its queue.  Else it is sent to the MDCO-Queue.  The
         subqueue will be of the same level as the level from
         where the item was received.  Flowgram is depicted
         in Fig. 4.2.1.4.8.5.



4.2.1.4.8.3.2 S̲E̲N̲D̲ ̲T̲O̲ ̲M̲D̲C̲O̲

         Sends specified QEL to the specified MDCO-Subqueue.




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

         TBD





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

         The module consists mainly of a Loop which is run through
         twice.  Once for each of the subqueues PREC1 and FLASH.
          All FLASH items met are sent to MDCO together with
         a FLASH-Notification.  Other items are returned to
         the queue.


 FLASH ̲ITEMS ̲TO ̲MDCO




      SET SUBQ ̲INDEX = PREC1


      LOOP


         C̲L̲E̲A̲N̲Q̲( -2  )


         SUBQ-INDEX EQ FLASH?    EXIT LOOP


         SET SUBQ ̲INDEX = FLASH




      END ̲LOOP



 END


















                Fig. 4.2.1.4.8.5-1


 CLEAN ̲Q

     CASE  RECEIVE ̲FIRST ̲QEL(WAIT: = FALSE;PRIS ̲PRINT
 ̲Q.SUBQ ̲INDEX )
                       (INPUT ̲ATTR,INPUT ̲QEL,SUBQUEUE,CC):ERROR
 ̲OK
        ERROR?  CASE ANALYSE ̲ERROR(CC,1,SUBQUEUE ̲EMPTY):(1)

                   L1?

                 END CASE

        OK?  LOOP

               SET PREVIOUS ̲QEL = INPUT ̲QEL

               SET PREVIOUS ̲ATTR = INPUT ̲ATTR

                 CASE RECEIVE ̲NEXT ̲QEL (PREVIOUS ̲QEL)
                         (INPUT ̲QEL,INPUT ̲ATTR,CC):ERROR
 ̲OK
                  ERROR? ̲CASE ANALYSE ̲ERROR(CC,1,SUBQUEUE
 ̲EMPTY):
                                           (ER1)
                            ER1?

                         ENDCASE         E̲X̲I̲T̲ ̲L̲O̲O̲P̲


                  OK?


                END CASE

                C̲H̲E̲C̲K̲ ̲P̲R̲E̲V̲I̲O̲U̲S̲ (  3  )

            END LOOP


            C̲H̲E̲C̲K̲ ̲P̲R̲E̲V̲I̲O̲U̲S̲ (  3  )




 END CASE

END

                Fig. 4.2.1.4.8.5-2


 CHECK ̲PREVIOUS


     PREVIOUS.ATTR.MAINTYPE EQ REPORT?


                        RETURN ̲ITEM (PREVIOUS ̲QEL)(CC):OK



     S̲E̲N̲D̲ ̲T̲D̲ ̲M̲D̲C̲O̲ ̲(̲P̲R̲E̲V̲I̲O̲U̲S̲ ̲Q̲E̲L̲,̲       S̲U̲B̲Q̲ ̲I̲N̲D̲E̲X̲)(
  4  )



     D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲I̲T̲E̲M̲(̲P̲R̲E̲V̲I̲O̲U̲S̲ ̲Q̲E̲L̲,̲      PREVIOUS ̲ATTR)(4.2.1.6.5)




 END























                Fig. 4.2.1.4.8.5-3


 SEND ̲TO ̲MDCO (QEL,SUBQ ̲INDEX)



     CASE  SEND(MDCO ̲SEND ̲PARAMS,
                QEL,
                MDOS ̲MDQ.SUBQ ̲INDEX)
                (MDCO ̲SEND ̲PARAMS,CC) : ERROR ̲OK


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


        OK?


     END CASE


     CASE  SEND(FLASH ̲NOT ̲SEND ̲PARAMS,

                 NIL

                 MDOS ̲CCMDQ         )

                 (FLASH ̲NOT ̲SEND ̲PARAMS): ERROR ̲OK



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



        OK?


     END CASE



 END



                 Fig. 4.2.1.8.5-4


4.2.1.4.9    P̲R̲I̲N̲T̲I̲N̲G̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         The Module takes care of the necessary preparations
         to be made before printout of an item can begin.
         The Print parameters are read.  For CIF    items the
         view is opened and the administration field is read.

         If appropriate Document Accounting Preparations (separate
         module) are carried out.



4.2.1.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)  PRINTING ̲PREPARATIONS

         b)  PRINTING ̲PREPARATIONS(R6):OK

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

         R0 - R7           DESTROYED

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

         NONE



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





4.2.1.4.9.3.1 R̲E̲A̲D̲ ̲A̲D̲M̲I̲N̲I̲S̲T̲R̲A̲T̲I̲O̲N̲ ̲F̲I̲E̲L̲D̲

         The procedure reads in the administration field of
         the IMF or IF by a READ ̲VIEW ̲request (see flowgram).





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

         TBD.





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

         The print parameters are determined by calling the
         common procedure GET ̲LOW ̲SPEED ̲PAINT ̲PARAMETERS or
         GET ̲MEDIUM ̲SPEED ̲PAINT ̲PARAMETERS.
         The PRINT ̲ITEM ̲CATEGORY is determined by a separate
         module and is used to destinguish between the different
         item types.


 PRINTING ̲PREPARATIONS


      CASE PRINTER ̲TYPE OF:

         LOW ̲SPEED?   G̲E̲T̲ ̲L̲O̲W̲ ̲S̲P̲E̲E̲D̲ ̲P̲R̲I̲N̲T̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲(4.2.1.6.2)
         MEDIUM ̲SPEED?  G̲E̲T̲ ̲M̲E̲D̲I̲U̲M̲ ̲S̲P̲E̲E̲D̲ ̲P̲R̲I̲N̲T̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲(4.2.1.6.1)

      END ̲CASE

      SUBQUEUE EQ PREC1?

      SUBQUEUE EQ FLASH?    SET PRINTING ̲FLASH ̲FLAG
 = TRUE

      SET PRINTING ̲FLASH FLAG = FALSE

      SUBQUEUE EQ SYIE ̲TAB? SET PRINTING ̲SYIE ̲TAB ̲FLAG
 = TRUE

                            RECEIVE ̲PRINT ̲Q(PREC1)(4.2.1.6.8)

                            RECEIVE ̲PRINT ̲Q ̲(FLASH)(4.2.1.6.8)

      SET PRINTING ̲SYIE ̲TAB ̲FLAG = FALSE

      D̲E̲T̲E̲R̲M̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲ ̲I̲T̲E̲M̲ ̲C̲A̲T̲E̲G̲O̲R̲Y̲ (4.2.1.4.10)

      CASE PRINT ̲ITEM ̲PRINT ̲ITEM ̲CATEGORY CATEGORY OF:

         SINGLE ̲QEL?

         BUFFER ̲ITEM?  C̲M̲D̲ ̲T̲O̲ ̲P̲R̲O̲P̲(̲C̲O̲M̲M̲E̲N̲C̲E̲)(4.2.1.6.6)

                       SET COPY ̲COUNTER = 1

         IMF ̲ITEM?  U̲P̲C̲O̲ ̲P̲R̲C̲ ̲I̲M̲F̲ ̲I̲T̲E̲M̲ (  2   )

         IIF ITEM?  U̲P̲C̲O̲ ̲P̲R̲C̲ ̲I̲I̲F̲ ̲I̲T̲E̲M̲  (  3  )

         NOT ̲FOR ̲PRINT?   E̲R̲R̲O̲R̲ ̲R̲E̲P̲ ̲(̲ ̲ ̲ ̲ ̲)̲(4.2.1.4.13)

                          R̲E̲C̲E̲I̲V̲E̲ ̲P̲R̲I̲N̲T̲ ̲Q̲ (4.2.1.6.8)

                          D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲I̲T̲E̲M̲ (PRINT ̲ITEM
 ̲QEL ̲REF,
                                          PRINT ̲ITEM
 ̲QEL ̲ATTR)
                                          (4.2.1.6.5)

   END CASE

 END                  Fig. 4.2.1.4.9.5-1



 UPCO ̲ARC ̲IMF ̲ITEM







      CASE OPEN ̲VIEW(PRINT ̲ITEM ̲QEL ̲REF)
                    (CC):ERROR ̲OK


         ERROR?    ANALYSE ̲ERROR(CC,   ):OK

         OK?

      END CASE

      R̲E̲A̲D̲ ̲A̲D̲M̲I̲N̲I̲S̲T̲R̲A̲T̲I̲O̲N̲ ̲F̲I̲E̲L̲D̲(  4  )

      DOC ̲ACC ̲APP ̲FLAG EQ FALSE?   SET COPY ̲COUNTER=1

      D̲O̲C̲U̲M̲E̲N̲T̲ ̲A̲C̲C̲O̲U̲N̲T̲I̲N̲G̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲ (4.2.1.4.11)




      C̲M̲D̲ ̲T̲O̲ ̲P̲R̲O̲P̲ ̲(̲C̲O̲M̲M̲E̲N̲C̲E̲)̲(4.2.1.6.6)









 END







                Fig. 4.2.1.4.9.5-2


 UPCO ̲PRC ̲IIF ̲ITEM







      SET COPY ̲COUNTER = 1





      CASE OPEN ̲VIEW (PRINT ̲ITEM ̲QEL ̲REF)(CC):ERROR
 ̲OK

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

         OK?

      END CASE

      R̲E̲A̲D̲ ̲A̲D̲M̲I̲N̲I̲S̲T̲R̲A̲T̲I̲O̲N̲ ̲F̲I̲E̲L̲D̲(  4  )




      C̲M̲D̲ ̲T̲O̲ ̲P̲R̲O̲P̲ ̲(̲C̲O̲M̲M̲E̲N̲C̲E̲)̲ (4.2.1.6.6)









 END







                Fig. 4.2.1.4.9.5-3


 READ ̲ADMINISTRATION ̲FIELD




     CASE READ ̲VIEW (PRIS ̲SOURCE ̲BUFFER LENGTH,

                     ADMINISTRATION ̲FIELD     ,

                     PRINT ̲ITEM ̲QEL ̲REF       ,

                     PRIS ̲SOURCE ̲BUFFER       )

                     (CC):ERROR-OK



        ERROR?          ANALYSE ERROR(CC, 0 ):OK


        OK?

    






















                Fig. 4.2.1.4.9.5-4


4.2.1.4.10   D̲E̲T̲E̲R̲M̲I̲N̲E̲ ̲P̲R̲I̲N̲T̲ ̲I̲T̲E̲M̲ ̲C̲A̲T̲E̲G̲O̲R̲Y̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.1.4.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 Module that is called by the PRINTING ̲PREPARATIONS
         Module determines which category (Single QEL, Buff,
         IMF or IIF) the print item belongs to.
         Additionally it determines whether document accounting
         is appropriate for the item in question and finally
         the Print Format File index is found.



4.2.1.4.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)  DETERMINE ̲PRINT ̲ITEM ̲CATEGORY

         b)  DETERMINE ̲PRINT ̲ITEM ̲CATEGORY(R6):OK

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

         R0 - R7   DESTROYED

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

         NONE


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

         TBD



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

         TBD


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

         TBD


4.2.1.4.11   D̲O̲C̲U̲M̲E̲N̲T̲ ̲A̲C̲C̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.1.4.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 module carries out the necessary preparations in
         order to perform Document Accounting during printout
         of an item.  the module is called by the PRINTING ̲PREPARATIONS
         Module.



4.2.1.4.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)  DOCUMENT ̲ACC ̲PREPARATIONS

         b)  DOCUMENT ̲ACC ̲PREPARATIONS(R6):OK

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

         R0 - R7       DESTROYED

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

         NONE


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

         TBD



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

         TBD


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

         Preliminary Description:

         DETERMINE CLASSIFICATION

         DETERMINE TRANSACTION ID

         GET SYSPRINT CONTROL NO

         GET START ̲OF ̲TRANSMISSION ̲TIME AND CONVERT IT TO DTG
         ̲FORMAT

         DETERMINE SPEC ̲HANDLING CONTROL NO IF APPROPRIATE

         DETERMINE NO OF COPIES

         IF APPROPRIATE INSERT 'SUSPECTED DUPLICATION' TEXT

         COMPUTE NO OF PAGES

         GET 'FROM SCD 'OR' FROM PLA ̲REF' AND DTG FROM ADM ̲FIELD
         AND STORE IT FOR USE IN TRANSACTION ACCOUNTING.





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



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

         This Common Module takes care of the final transaction
         accounting, which is required for Comments, Messages
         and Service Messages.  The transaction accounting consists
         of generation and sending of Log records and Delivery
         Status Reports.



4.2.1.4.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)  TRANSACTION ̲ACCOUNTING (EXIT ̲CAUSE)

         b)  TRANSACTION ̲ACCOUNTING(EXIT ̲CAUSE=  R1,R6):OK

         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                          (EXIT ̲CAUSE ̲(DESTROYED)

         R6      LINK  (DESTROYED)

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

         R0 - R7           DESTROYED

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

         NONE





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

         TBD



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

             T̲B̲D̲





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

         TBD

         Preliminary description:

         BEGIN

         DETERMINE ̲FORMAT ̲IDENTIFICATION


         DETERMINE ̲STATUS CODE

         GET  END ̲OF ̲TRANSACTION ̲TIME


         RESERVE ̲BUFFER


         WRITE BUFFER            "LOG RECORD BUFFER CONTENTS:


                                    DEVICE ̲DESIGNATOR,
                                    TRANSACTION ̲SERIAL ̲NO,
                                    FORMAT ̲IDENTIFICATION,
                                    START ̲OF ̲TRANSACTION ̲TIME,
                                    ITEM ̲QEL ̲REF
                                    EXIT CAUSE,
                                    ITEM ̲QEL ̲ATTR, PROFILE,
                                    END ̲OF ̲TRANSACTION ̲TIME
                                    SYSTEM ̲PRINT ̲CONTROL ̲NUMBER,
                                    SPECIAL ̲HANDLING ̲PRINT ̲CONTROL ̲NO"


         SEND "REQUEST"(BUFFER)     "TO LOG PACKAGE
         RESERVE BUFFER             "FOR DELIVERY STATUS REPORT"
         WRITE BUFFER               "CONTENTS: ITEM ̲QEL ̲REF,
                                    SCD OR PLA,
                                    DTG, STATUS ̲CODE,
                                    DEVICE ̲DESIGNATOR.

         SEND BUFFER TO UMAM ̲REQ ̲QUEUE

         END


4.2.1.4.13       E̲R̲R̲O̲R̲-̲R̲E̲P̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.1.4.13.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 Error-Reporting Common Module handles all errors
         detected in UPCO and PROP, except those in connection
         with system calls, that are handled directly by the
         ANALYSE ̲ERROR procedure. The ERROR ̲REP is not a Common
         Package Procedure, because errors detected in PROP
         are reported to UPCO, which takes action on them.



4.2.1.4.13.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)  ERROR ̲REP(ERROR ̲ID, PROCEDURE ̲ID)
         b)  ERROR ̲REP(ERROR ̲ID =  R1, PROCEDURE ̲ID=  R2,R6):OK

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

         R1                           ERROR ̲ID (DESTROYED)
         R2                           PROCEDURE ̲ID (DESTROYED)
         R6      LINK

         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.4.13.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             TBD



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



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

             TBD

                 "The module mainly uses the
                 SEND ̲GARBLE procedure for its purposes.





4.2.1.5      C̲o̲m̲m̲o̲n̲ ̲U̲P̲C̲O̲ ̲D̲a̲t̲a̲

             "FLAGS"

             ACTIVE ̲FLAG,
             PRINTER ̲ERROR ̲FLAG,
             PREEMPTION ̲CONTROL ̲FLAG,
             ITEM ̲PREEMPTED ̲FLAG,
             PRINTER ̲BUSY ̲FLAG,
             AWAITING ̲CIF ̲FLAG,
             CLOSE ̲DOWN ̲FLAG,
             EXECUTING ̲FLASH ̲FLAG,
             PENDING ̲INIT ̲RECEIVE ̲CMD,
             PRINTING ̲S?? ̲TAB ̲FLAG,
             DOC ̲ACC ̲APP,
             VIEW ̲OPEN ̲FLAG:          BOOLEAN;


         "CONNECTIONS and File Names"

         PRINTER ̲CONNECTION,

         PF ̲FILE ̲DESCRIPTOR           :CONNECTION ̲TYPE;

         PFF ̲NAME                     :FILE ̲????TYPE";

         DIRECTORY                    :DIRECTORY ̲TYPE;

         "BLE's"

         UPCO ̲BLE1,

         UPCO ̲BLE2,

         UPCO ̲BLE3,

             .

             .

         UPCO ̲BLEN                    :BLE ̲TYPE;

         PFF ̲ADDRESS                  :FILE ̲ADDRESS ̲TYPE;





4.2.1.6  C̲o̲m̲m̲o̲n̲ ̲U̲P̲C̲O̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲



4.2.1.6.1    G̲E̲T̲ ̲M̲E̲D̲I̲U̲M̲ ̲S̲P̲E̲E̲D̲ ̲P̲R̲I̲N̲T̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲ ̲S̲P̲E̲C̲.̲



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

         The procedure gets the Medium Speed Print Parameters
         by issuing a System Call. The Parameters are stored
         in common PRIS variables.



4.2.1.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)  GET ̲MEDIUM ̲SPEED ̲PRINT ̲PARAMETERS
         b)  GET ̲MEDIUM ̲SPEED ̲PRINT ̲PARAMETERS (R6): OK

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

         R0-R7       DESTROYED

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

         NONE





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

         PRIS Global Data:

         NO ̲OF ̲LINES ̲PER ̲PAGE:        INTEGER;
         NO ̲OF ̲LINES ̲BETWEEN ̲PAGES:   INTEGER;
         PREEMPTION ̲DELAY ̲LIMIT:      PREEMPT ̲DELAY ̲TYPE;



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

             N/A



4.2.1.6.2    G̲E̲T̲ ̲L̲O̲W̲ ̲S̲P̲E̲E̲D̲ ̲P̲R̲I̲N̲T̲E̲R̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲ ̲S̲P̲E̲C̲.̲

         Equivalent to 4.2.1.6.1

         (GET ̲MEDIUM ̲SPEED ̲PRINT ̲PARAMETERS)



4.2.1.6.3    S̲A̲V̲E̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         The procedure transfers the values of the Input ̲QEL
         Reference and the Input ̲QEL Attributes to the corresponding
         variables pertinent to the current print item.





4.2.1.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)  SAVE ̲REFERENCES
         b)  SAVE ̲REFERENCES (R6):    OK

         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 - R7     DESTROYED

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

         NONE





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

         PRIS GLOBAL DATA

         INPUT ̲QEL ̲REF,
         PRINT ̲ITEM ̲QEL ̲REF:          QEL ̲REFERENCE;

         INPUT ̲QEL ̲ATTR,
         PRINT ̲ITEM ̲QEL ̲ATTR:         QEL ̲ATTRIBUTES;



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

             N/A





4.2.1.6.4        R̲E̲T̲U̲R̲N̲ ̲I̲T̲E̲M̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         The procedure returns the specified QEL to its appropriate
         QUEUE by calling the Q- monitor-procedure RETURN.



4.2.1.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)  RETURN ̲ITEM (QEL: QEL ̲REFERENCE)
         b)  RETURN ̲ITEM (QEL =  R2, R6): OK

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

         R2                           QEL (DESTROYED)
         R6      LINK

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

             N/A



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

             N/A





4.2.1.6.5        D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲I̲T̲E̲M̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

             The Procedure determines the item type (Single-QEL,
             Buffer, View) and issues the appropriate system
             call in order to dismantle the item.



4.2.1.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)  DISMANTLE ̲ITEM(QEL ̲REFERENCE,
                     QEL ̲ATTR: QEL ̲ATTRIBUTES)
             b)  DISMANTLE ̲ITEM(QEL =  R2),
                                      ADDRESS(ATTRIBUTES)= R3,
                                      R6): OK

             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̲

             R2                       QEL (DESTROYED)
             R3                       POINTER TO ATTRIBUTES
                                      (DEST)
             R6      LINK

             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̲

             NONE



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

             N/A



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

 DISMANTLE ̲ITEM(QEL, ATTRIBUTES)

     …02…CASE ATTRIBUTES.OBJECT OF:

             VIEW?-CASE SAVE ̲VIEW(TRUE,1,QEL)(CC):ERROR
             ̲OK

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

                     OK?

                 END CASE

             BUFFER?  - CASE DISMANTLE ̲BUFFER(QEL)(CC):ERROR
                     ̲OK

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

                     OK?

                 END CASE

             SINGLE ̲QEL?         DISMANTLE(QEL)(CC):OK









         END CASE


 END


4.2.1.6.6        C̲M̲D̲ ̲T̲O̲ ̲P̲R̲O̲P̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

             The procedure issues the specified command
             to PROP by setting PRIS ̲UPCO ̲CMD ̲OP, ITEMNAME
             to the Command Id and Signalling the operation
             semaphore PRIS ̲S2.



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

             a)  CMD ̲TO ̲PROP (CMD:UPCO ̲CMD ̲TYPE)
             b)  CMD ̲TO ̲PROP (CMD =  R1, R6):  OK

             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                  COMMAND IDENTIFICATION(DEST)
             R6      LINK

             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̲

             N̲O̲N̲E̲



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

             "PRIS GLOBAL DATA:"

             PRIS ̲UPCO ̲CMD ̲OP:   OPERATION ̲SEMAPHORE;



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

             N/A


4.2.1.6.7    RECEIVE ̲CMD          Specification



4.2.1.6.7    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 initiates a 'Receive-First-QEL
         from
         PRIS ̲CMD ̲Q' call and associates the operation
         with PRIS ̲S1. It also indicates that an Init
         Receive Cmd QEL call is pending.



4.2.1.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)  RECEIVE ̲CMD
             b)  RECEIVE ̲CMD(R6):OK

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

             R0 - R7 DESTROYED

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

             NONE



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

             "UPCO GLOBAL Variable
             PENDING ̲INIT ̲RECEIVE ̲CMD:     BOOLEAN;


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

 RECEIVE ̲CMD


     SET PENDING ̲INIT ̲RECEIVE ̲CMD = TRUE

     CASE INIT RECEIVE ̲FIRST ̲QEL (WAIT: = TRUE,

                                 PRIS ̲CMD ̲Q,

                                 PRIS ̲CMD ̲Q ̲OP)

                                 (CC) ̲ ERROR ̲OK

         ERROR?      ANALYSE ̲ERROR(CC, O) OK


         OK?         ASSOCIATE(PRIS ̲S1,PRIS ̲CMD ̲Q.OP)

                                      (CC):    OK


     END ̲CASE



 END


4.2.1.6.8    R̲E̲C̲E̲I̲V̲E̲ ̲P̲R̲I̲N̲T̲ ̲Q̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         The procedure initiates a Receive First QEL
         from the specified subqueue in PRIS ̲PRINT ̲Q.

         The possible subqueues are:
         "Main", PREC 1, FLASH, STAT and SYTE ̲TAB.



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

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

         a)  RECEIVE ̲PRINT ̲Q's (SUBQUEUE)
         b)  RECEIVE ̲PRINT ̲Q(SUBQUEUE =  R1,R6): OK

         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          SUBQUEUE              DESTROYED
         R6      LINK                      DESTROYED

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

         R0 - R7     DESTROYED

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

         NONE


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

             UPCO Common Data


             PRIS ̲PRINT ̲Q ̲OP,
             PRIS ̲PREC1 ̲OP,
             PRIS ̲FLASH ̲OP,
             PRIS ̲STAT ̲OP,
             PRIS ̲SYIE ̲TAB ̲OP:   PRIS ̲COROUTINE ̲OPERATION;


             PRIS ̲PRINT ̲Q ̲ATTR,
             PRIS ̲PREC1 ̲ATTR,
             PRIS ̲FLASH ̲ATTR,
             PRIS ̲STAT ̲ATTR,
             PRIS ̲SYTE ̲TAB ̲ATTR: QEL ̲ATTRIBUTES;


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

 RECEIVE ̲PRINT ̲Q(SUBQUEUE)


     CASE SUBQUEUE OF :

         MAIN?   SET OPERATION = PRIS ̲PRINT.Q ̲OP

         PREC1?  SET OPERATION = PRIS ̲PREC1 ̲OP


         FLASH?  SET OPERATION = PRIS ̲FLASH=OP


         STAT?   SET OPERATION = PRIS ̲STAT ̲OP


         SYIE ̲TAB?-  SET OPERATION = PRIS ̲SYIE ̲TAB ̲OP


         OTHERWISE?              E̲R̲R̲O̲R̲ ̲R̲E̲P̲(̲ ̲ ̲ ̲ ̲)̲(4.2.1.4.13)



 END CASE

 CASE INIT RECEIVE ̲FIRST ̲QEL

                     (WAIT: = TRUE, PRIS ̲PRINT ̲Q.SUBQUEUE,
                     OPERATION)
                     (CC): ERROR ̲OK


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

     OK?


     END CASE


 END


4.2.1.6.9    S̲E̲N̲D̲ ̲R̲E̲P̲ ̲T̲O̲ ̲D̲E̲M̲C̲O̲ ̲S̲e̲p̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

             The procedure uses the SEND ̲REPLY mechanism
             to inform DEMCO of START, STOP and CLOSE
             ̲DOWN Command Completion.



4.2.1.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)  SEND ̲REP ̲TO ̲DEMCO
             b)  SEND ̲REP ̲TO ̲DEMCO (R6): OK

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

             R0 - R7             DESTROYED

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

             NONE



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

             UPCO Common Data:

             DEMCO ̲CMD ̲QEL ̲REF,

             DEMC ̲CMD ̲QEL ̲ATTR



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

             N/A


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 will be 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): OK

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

             "UPCO Common Data:

             VIEW ̲OPEN ̲FLAG:     BOOLEAN;

             ITEM ̲QEL ̲REF:       QEL ̲REFERENCE;



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

             Ref. Fig. 4.2.1.6.10


 CHECK ̲VIEW


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


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


                                 OK?



                                 END CASE


                                 SET VIEW ̲OPEN ̲FLAG
                                 = FALSE



     END






















                 FIG. 4.2.1.6.10