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

⟦c1eb838fa⟧ Wang Wps File

    Length: 48240 (0xbc70)
    Types: Wang Wps File
    Notes: CPS/SDS/041               
    Names: »2109A «

Derivation

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

WangText



!…08…!…0d…!…00…!…05… …09…
 …0a… …0f… …02… 
 …07……1e……0c……1d……00……1d……05……1d……07……1c……0a……1c……0f……1c……01……1c……07……1b……0a……1b……0b……1b……01……1b……02……1b……06……1b……07……1a……0c……1a……0d……86…1   
      
      
      
      
      
      
      …02…
      
     …02… 
  …02…    
    
#
…02…CPS/SDS/041

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








                        1̲ ̲ ̲G̲E̲N̲E̲R̲A̲L̲



1.1      P̲U̲R̲P̲O̲S̲E̲ ̲A̲N̲D̲ ̲S̲C̲O̲P̲E̲

         a)  The Printer Package Specification for the CAMPS
             project/4040 is written to fulfil the following
             objectives:

             1)  To provide a detailed definition of the Printer
                 Package function and Software architecture.

             2)  To provide user operational and development
                 personnel with details of the ongoing analysis.

             3)  To define in detail the interfaces with other
                 packages and to describe their facilities.

         b)  The Printer Package Specification defines the functions
             and software architecture of the package to a level
             sufficient for a programmer to start detailed design
             with a minimum of design effort.

             The Printer Package constitutes one of the building
             blocks of the TEP package.

             All Printer Package internal data and interfaces
             are defined within this document in detail. For
             a detailed data description of data external to
             the Printer package and interfaces to other packages
             refer the Database Design Document (CPS/DBD/001)and
             the relevant interface documents.





1.2      A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲ ̲A̲N̲D̲ ̲P̲R̲O̲J̲E̲C̲T̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲



1.2.1    A̲p̲p̲l̲i̲c̲a̲b̲l̲e̲ ̲D̲o̲c̲u̲m̲e̲n̲t̲s̲

         CAMPS System Requirement Specification
         CPS/210/SYS/0001

         User Procedures and Associated Formats
         CPS/230/ICD/001

         Supervisor Commands and Procedures
         CPS/230/ICD/0002

         CAMPS System Design Specification
         CPS/SDS/001

         Database Design Document
         CPS/DBD/001

         CAMPS Software Interface Control Document
         CPS/ICD/009

         Terminal Package Design Specification
         CPS/SDS/012



1.2.2    R̲e̲f̲e̲r̲e̲n̲c̲e̲ ̲D̲o̲c̲u̲m̲e̲n̲t̲s̲

         DOCUMENT NAME                        DOCUMENT NUMBER
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
         ̲ ̲ ̲ ̲ ̲ ̲

         CAMPS System Functions               CPS/SDS/024
         Message Management                   CPS/SDS/025
         System Status and Control            CPS/SDS/029
         Table Managment                      CPS/SDS/026
         Input/Output Control                 CPS/SDS/028
         Storage and Retrieval                CPS/SDS/030
         Statistics                           CPS/SDS/031
         Logging                              CPS/SDS/032
         Traffic Handling                     CPS/SDS/033
         Message Distribution                 CPS/SDS/034
         Supervisor VDU                       CPS/SDS/035
         Supervisor Printer                   CPS/SDS/036
         MDCO VDU                             CPS/SDS/037
         MSO VDU                              CPS/SDS/038
         USER VDU                             CPS/SDS/039
         OCR                                  CPS/SDS/040


1.3      T̲e̲r̲m̲s̲ ̲a̲n̲d̲ ̲A̲b̲b̲r̲e̲v̲i̲a̲t̲i̲o̲n̲s̲-



1.3.1    T̲e̲r̲m̲s̲

         All Local Constants and Types are declared in sec.
         4.1.4.  All Global Constants and Types are delared
         in CPS/DBD/001 sec. 4 (CAMPS Prefix File) and are catalogued
         in sec. 4.1.6.



1.3.2    A̲b̲b̲r̲e̲v̲i̲a̲t̲i̲o̲n̲s̲

         PRIP                     TEP: P̲r̲i̲nter P̲ackage
         PRIS                     P̲r̲inter S̲ubpackage
         UPCO                     U̲ser P̲rinter C̲o̲ntrol
         PROP                     P̲r̲inter O̲utp̲ut
         DEMCO                    D̲E̲vice M̲onitoring and C̲O̲ntrol
         CIF                      C̲amps I̲nformation F̲ile
         IMF                      I̲nternal M̲essage F̲ormat
         IIF                      I̲nternal I̲nformation F̲ormat
         BLE                      B̲uffer L̲ist E̲lement
         E                        E̲xtension
         MC                       M̲odule C̲omponent
         M                        M̲odule
         CP                       C̲ommon P̲rocedure


                2̲ ̲ ̲S̲U̲M̲M̲A̲R̲Y̲ ̲O̲F̲ ̲R̲E̲Q̲U̲I̲R̲E̲M̲E̲N̲T̲S̲



2.1      P̲A̲C̲K̲A̲G̲E̲ ̲D̲E̲S̲C̲R̲I̲P̲T̲I̲O̲N̲

         The P̲r̲i̲nter P̲ackage (PRIP) contains the software to
         support the print-functions required for

             Supervisor           Printers,
             Shared               Printers,
             Stand-alone          Printers.

         In connection with Supervisor printers PRIP has only
         a slave function. The S̲upervisor P̲ri̲nter P̲ackage (SPIP)
         supports the Supervisor Print functions and delegates
         the items for print to the Printer Package.
         At the Printer Package items will be queued in a priority
         based FIFO-manner before being processed.

         Items to be Processed can be:

         a)  Control Items:

                 Timeouts
                 DEMCO Commands
                 Log Acknowledges
                 FLASH Notifications

         b)  Print Items:

                 Messages
                 Comments
                 Message status Notifications
                 MSO/MDCO instructions
                 Service Messages
                 Reports
                 Statistics
                 Log records
                 System Information Extracts
                 Tables.

         The Printer Package converts and formats the data before
         printout. It also takes care of page accounting and
         document accounting.

         The Printer Package interfaces with other parts of
         the Terminal Package as well as other Packages of the
         CAMPS system.



         Fig. 2.1-1 shows the interface between the Printer
         Package, and the other TEP Packages:

             Supervisor Printer Package (SPRI)
             VDU User Package (VUP)

         Further fig. 2.1-1 shows the interfaces to the other
         CAMPS packages:

             System Status and Control     (SSC)
             CAMPS System Functions        (CSF)
             LOG Package                   (LOG)
             Message Distribution Package  (MDP)
             I/O Control                   (IOC)
             Storage and File Management   (FMS)
             Table Management Package      (TMP)

         The numbers on figure 2.1-1 refers to the following
         table:

         1.  Supervisor print items

         2.  User print items

         3.  DEMCO Commands and Command Completion Codes.

         4.  Timer requests/events,
             Queue handling, Access control

         5.  Final transaction Log information

         6.  Incoming/Outgoing Messages

         7.  Printout Data

         8.  MDCO MSO Print Items

         9.  Device profile data, Format execution data,
             Printer Parameters.


















































               FIG. 2.1-1…01…INFORMATION FLOW



2.2      P̲A̲C̲K̲A̲G̲E̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲S̲

         This section outlines the functions to be performed
         by PRIP.



2.2.1    M̲a̲i̲n̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲(̲N̲o̲r̲m̲a̲l̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲)̲

         The main functions implemented by PRIP are

         1.  Formatting and printout

         2.  Document accounting

         3.  Preemption Control



2.2.1.1  F̲o̲r̲m̲a̲t̲t̲i̲n̲g̲ ̲a̲n̲d̲ ̲P̲r̲i̲n̲t̲o̲u̲t̲

         Some of the items queued for print contains binary
         data which will have to be converted into a displayable
         form before being printed.

         The items do not contain all of the data to be printed.
         The predefined part of it is contained in the Print
         Format File (PFF) and must be merged with the variable
         part to form the complete text.

         The formatting also includes placing of the text so
         that a nice layout is obtained. Ref. also sec. 2.2.1.2
         below.

         When the text has been formatted, it will be output
         to the printer.



2.2.1.2  D̲o̲c̲u̲m̲e̲n̲t̲ ̲A̲c̲c̲o̲u̲n̲t̲i̲n̲g̲

         Document Accounting is to be carried out as stated
         in the SRS sec. 3.2.3.7.2. The layout of the document
         accounting is outlined in figure 2.2.1-1 and figure
         2.2.1-2.



         Figure 2.2.1-1 explains the contents of the document
         control number, while figure 2.2.1-2 shows the page
         layout.



2.2.1.3  P̲r̲e̲e̲m̲p̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲

         When items with Flash Precedence are queued for print
         they shall start being executed within a specified
         time limit unless the printer process already executes
         a Flash item.

         If the item being executed is of precedence lower than
         flash and it cannot be completed within the time limit,
         it shall be preempted. Processing of the preempted
         item shall be resumed right after the preemption causing
         item has been finished.

         The preemption time limit is set by the Supervisor.








                        2 FIGURER



2.2.2    F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲R̲e̲s̲p̲o̲n̲s̲i̲b̲i̲l̲i̲t̲i̲e̲s̲



2.2.2.1  S̲t̲a̲r̲t̲,̲ ̲S̲t̲o̲p̲,̲ ̲C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲,̲ ̲R̲e̲s̲u̲m̲e̲

         PRIP performs the above functions on command from DEMCO.

         a)  Start:

             Initializes and starts the printing actions. Also
             the Print Format Handler is initialized. Upon completion
             a report will be sent to DEMCO.

         b)  Stop:

             Immediately stops the printing actions. The items,
             that is currently processed, will be returned to
             its queue for later processing.

             Completion is reported to DEMCO.

         c)  Close Down:

             Stops the printing actions after a specified time.
             Is used to terminate the processing in an ordered
             manner. Completion is reported to DEMCO.

         d)  Resume:

             Is used to resume printing actions after printer
             errors.





2.2.2.2  C̲h̲e̲c̲k̲p̲o̲i̲n̲t̲i̲n̲g̲ ̲a̲n̲d̲ ̲R̲e̲c̲o̲v̲e̲r̲y̲

         Checkpointing is performed by calling the SAVE-function
         (CSF) at appropriate points, that is when print out
         of an item has been completed. The queue element will
         be dismantled.

         On recovery some of the items queued for print may
         have a flag set indicating suspected duplication. In
         that case it shall be indicated on the document.



2.2.2.3  E̲r̲r̲o̲r̲ ̲D̲e̲t̲e̲c̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

         PRIP is designed so that errors are detected at an
         early stage. 

         All detected errors, i.e. System Call errors, Queue
         errors, internal software errors, etc, are handled
         by using the CSF procedures ANALYZE ̲ERROR and SEND
         ̲GARBLE.



2.2.2.4  I̲n̲t̲e̲g̲r̲i̲t̲y̲ ̲o̲f̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲

         The error detection and error handling functions described
         in section 2.2.2.3 ensures that errors are detected
         and handled properly.

         Single and minor software errors do not decrease system
         throughput. Only severe errors cause major recovery
         or invoke operator intervention.






2.2.2.5  D̲a̲t̲a̲ ̲C̲o̲l̲l̲e̲c̲t̲i̲o̲n̲



2.2.2.5.1    L̲o̲g̲

         A final log record shall be generated on interruption
         or completion of printing item types with document
         accounting.

         The log record shall contain the following fields:

         a)  Device designator
         b)  Transaction serial number
         c)  Format identification
         d)  Log time
         e)  Item reference identification
         f)  Exit cause
         g)  Classification
         h)  Special handling category
         i)  Start time of transaction
         j)  System Print Control Number
         k)  Special Handling Print Control no. (if applicable)



2.2.2.5.2    S̲t̲a̲t̲i̲s̲t̲i̲c̲s̲

         NA.



2.2.2.5.3    R̲e̲p̲o̲r̲t̲s̲

         When completing printout of

         Messages, Service Messages, or Comments,

         a Delivery Status report shall be generated and sent
         to UMAM.

         The contents of this report is:

             Item Ref. ID
             "From SCD" or "From PLA#"
             DTG
             Status Code
             Logical Device Designator 


2.3      C̲H̲A̲R̲A̲C̲T̲E̲R̲I̲S̲T̲I̲C̲S̲



2.3.1    T̲i̲m̲i̲n̲g̲

         The package must be able to meet the requirements to
         message processing (CPS/210/SYS/001 sec. 3.4):

         Whenever pre-emption applies the time from receipt
         of end-of-message to the availability of first character
         for output shall never exceed 15 seconds including
         time to discontinue transmission of pre-empted message.



2.3.2    T̲h̲r̲o̲u̲g̲h̲p̲u̲t̲

         The printer shall be able to operate at a speed corresponding
         to 0.7 erlang of the maximum speed (240 char/sec) i.e.
         0.7 x 240 = 168 char/sec.



2.3.3    F̲l̲e̲x̲i̲b̲i̲l̲i̲t̲y̲

         The design shall ensure that changes to formats and
         format tolerances can be implemented with ease to faciliate
         improvement of the document layout quality and useability.

         Addition of new formats is straight forward, but software
         to support the new functions will probably need to
         be developed.



2.3.4    A̲c̲c̲u̲r̲a̲c̲y̲

         Time shall be accurate within +/- 500 ms.

         All other data shall be exact.


2.3.5    P̲r̲i̲n̲t̲e̲r̲ ̲P̲a̲p̲e̲r̲ ̲C̲h̲a̲r̲a̲c̲t̲e̲r̲i̲s̲t̲i̲c̲s̲

         The Printer Paper can be roll paper with "infinite"
         length or fan fold paper with a format length of 11
         inches. With normal line density this gives 66 lines
         per page.

         The maximum number of PLY's is 5.


                      3̲ ̲E̲N̲V̲I̲R̲O̲N̲M̲E̲N̲T̲



3.1      E̲Q̲U̲I̲P̲M̲E̲N̲T̲

         The equipment environment of this package is the CR80D
         Computer.



3.2      S̲O̲F̲T̲W̲A̲R̲E̲



3.2.1    S̲y̲s̲t̲e̲m̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         PRIP's system software environment consists of the
          following components:

         -   DAMOS
         -   CAMPS System Functions
         -   Storage and File Management
         -   I/O Control Software
         -   Table Management Package
         -   System Status and Control



3.2.2    D̲e̲v̲e̲l̲o̲p̲m̲e̲n̲t̲ ̲S̲u̲p̲p̲o̲r̲t̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         Development software is standard DAMOS and TOS (Terminal
         Operating System) resident in a single CR80D configuration.



3.3      I̲N̲T̲E̲R̲F̲A̲C̲E̲S̲


3.3.1    E̲x̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Ref. CPS/230/ICD/0001 and CPS/230/ICD/0002





3.3.2    P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



3.3.2.1  M̲e̲s̲s̲a̲g̲e̲ ̲D̲i̲s̲t̲r̲i̲b̲u̲t̲i̲o̲n̲ ̲(̲M̲D̲P̲)̲

         Comments, Incoming Messages
         and locally distributed
         Outgoing Messages will be queued for print at PRIP
         by MDP

3.3.2.2  L̲o̲g̲ ̲a̲n̲d̲ ̲A̲c̲c̲o̲u̲n̲t̲a̲b̲i̲l̲i̲t̲y̲ ̲(̲L̲O̲G̲)̲

         Log records generated by PRIP shall be queued to LOG.
         PRIP then receives an acknowledge from LOG.



3.3.2.3  S̲y̲s̲t̲e̲m̲ ̲S̲t̲a̲t̲u̲s̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲S̲S̲C̲)̲

         PRIP shall execute the following DEMCO (SSC software)
         commands:

         Start SAD, Stop SAD, Close Down and Resume.

         Completion of Start SAD, Stop SAD and Close Down commands
         shall be reported to DEMCO.



3.3.2.4  T̲a̲b̲l̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲(̲T̲M̲P̲)̲

         Table Management will be requested to deliver information
          about the appropriate device profile, furthermore
         Print Accounting Table, MMI Control Table, Special
         Handling Table, Channel Table, Terminal Table and Response
         Text table are accessed.



3.3.2.5  C̲A̲M̲P̲S̲ ̲S̲y̲s̲t̲e̲m̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲(̲C̲S̲F̲)̲

         CSF contains the Queue Monitor. The coroutine monitor,
         the System Call Monitor, the Message Monitor and Utility
         Functions.





3.3.2.6  I̲n̲p̲u̲t̲ ̲O̲u̲t̲p̲u̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲I̲O̲C̲)̲

         The formatted print data is output to the printer by
         IOC. IOC also takes care of aborting print actions
         when required. The interface to IOC is done via system
         calls.



3.3.2.7  T̲e̲r̲m̲i̲n̲a̲l̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲(̲T̲E̲P̲)̲

         PRIP interfaces with other parts of TEP.

         The interfaces are described in CPS/DBD/001.



3.4      F̲U̲N̲C̲T̲I̲O̲N̲S̲ ̲M̲A̲I̲N̲T̲A̲I̲N̲E̲D̲ ̲B̲Y̲ ̲O̲T̲H̲E̲R̲ ̲P̲A̲C̲K̲A̲G̲E̲S̲

         Security key control is performed by SSC.





                     4̲ ̲P̲A̲C̲K̲A̲G̲E̲ ̲D̲E̲S̲I̲G̲N̲



4.1      P̲A̲C̲K̲A̲G̲E̲ ̲O̲V̲E̲R̲V̲I̲E̲W̲

         The P̲r̲i̲nter P̲ackage consists of a number of processes.
         Each process consists of four Printer Subprocesses,
         that handles the printout of the queued items.

         The P̲r̲i̲nter S̲ubprocess (PRIS) is able to handle items
         for stand alone/shared-printers as well as working
         as slave for the Supervisor Print Process (SPIP).

         An overview of PRIS is shown in fig. 4.1-1

         P̲r̲i̲nter S̲ubprocess (PRIS) consists of two subpackages
         (coroutines):

         a)  UPCO (U̲ser P̲rinter C̲o̲ntrol) which reacts upon Commands
             from SSC and Flash notifications in the CMD queue,
             and receives items for print in the PRINT queue.
             It controls the other coroutine.

         b)  PROP (P̲r̲inter O̲utput) which reacts upon commands
             from UPCO and Printer Control Signals from IOC.
             It performs the actual printing

         The format for printout is obtained by the Print Format
         Handler.

         PRIS has two main queues:

         The command Queue and the Print Queue. The Print Queue
         is divided into 10 subqueues.

         This structure is used because it makes it easier to
         control the mutual priorities of the different items,
         commands and notifications, which are queued for the
         subprocess. The queues are further described in table
         4.1-a.



         M̲a̲i̲n̲-̲ ̲o̲r̲ ̲S̲u̲b̲-̲ ̲Q̲u̲e̲u̲e̲ ̲N̲a̲m̲e̲ ̲ ̲ ̲d̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲/̲c̲o̲n̲t̲e̲n̲t̲s̲

         CMD                        Commands, Flash Notifications,
                                    Timer Events, Log Acknowledges

         REPORTS                    Reports

         FLASH                      Flash Items

         IMMEDIATE                  Immediate items

         PRIORITY                   Priority items

         ROUTINE                    Routine items

         STATISTICS                 Stastistics print

         LOG                        Log records

         SYIE + TABLE               System Information
                                    Extracts and Table print.

         PREC 1,                    Added for flexibility
         PREC 2                     reasons














              T̲a̲b̲l̲e̲ ̲4̲.̲1̲-̲a̲ ̲Q̲u̲e̲u̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲





















                       FIGURE 4.1-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̲

         This section contains an analysis of the main functions
         to be performed by the Printer Package.

         The analysis is carried out to a level where subfunctions
         with self-contained implementation considerations may
         be isolated, thereby reducing the complexity to be
         grasped at one time.

         Furthermore, the aim of the analysis is to identify
         precisely concurrency and priorities of subfunctions.

         The analysis does not include the package functions
         derivable from the functional responsibilities described
         in section 2.2.2. These functions will be analysed
         and described for each identified subfunction in section
         4.2 of this document.

         In fig. 4.1.1-1 an overview of the PRIP functions is
         shown. This first level breakdown represents a simple
         grouping of the requirements outlined in section 2
         and of the requirements stated in ref. 2.

         The box marked DEMCO CONTROL FUNCTIONS reflects the
         fact that the functions are totally controlled by the
         DEMCO part of the SSC Software. Thus PRIP shall contain
         functions necessary to respond to and execute such
         controlling commands.

         In the following subsections, each of the functions
         shown in the boxes of fig. 4.1.1-1 will be broken down
         into subfunctions.

























                      F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲1̲-̲1̲


4.1.1.1  P̲r̲i̲n̲t̲o̲u̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲

         These Functions takes care of the administrative part
         of the printing actions i.e. selecting the appropriate
         items to be printed, fetching accounting information,
         interruption of printout execution etc.



4.1.1.1.1    D̲E̲M̲C̲O̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

         In fig. 4.1.1-2 an overview of the DEMCO control functions
         is depicted. DEMCO, which is a part of System Status
         and Control, has the superior control of the Printer
         ̲Package, and therefore the control function has the
         highest priority within PRIS.

         The S̲t̲a̲r̲t̲ function is activated when it is wished to
         start a printer device.

         The S̲t̲o̲p̲ function interrupts the printing action immediately.
         It is used at disconnection of the device.

         The R̲e̲s̲u̲m̲e̲ function will resume printer actions interrupted
         by paper out. 

         The C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲ is used when it is wished to close down
         the system in an ordered manner.
























F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲1̲-̲2̲…86…1         …02…   …02…   …02…   …02…            …02…                 …02…         
   
4.1.1.1.2    F̲l̲a̲s̲h̲ ̲Q̲u̲e̲u̲e̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲

         If the printer is temporarily not functioning e.g.
         because of paper out, the arriving Flash items are
         sent to MDCO.

         Under normal circumstances the arriving flash items
         will activate Preemption Control (ref. sec. 4.1.1.1.3)



4.1.1.1.3    P̲r̲e̲e̲m̲p̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲

         The subfunctions of Preemption Control is depicted
         in fig. 4.1.1-3.

         Preemption Control is invoked by  arrival of Flash
         items while printing items with priority lower than
         Flash.

         When Preemption Control is activated it initiates a
         timout request.

         If it is not possible to finish the current item within
         the specified maximum delay time, then p̲r̲e̲e̲m̲p̲t̲i̲o̲n̲ ̲s̲h̲a̲l̲l̲
         b̲e̲ ̲a̲c̲t̲i̲v̲a̲t̲e̲d̲.


         If the printer is temporarily stopped, e.g. because
         of paper out, then Flash items will be sent to MDCO
         ref. sec. 4.1.1.1.2

         After printer-errors DEMCO ̲Functions will resume the
         printing actions. 

         When the preemption causing item has been printed,
         the R̲e̲s̲t̲a̲r̲t̲ ̲P̲r̲i̲n̲t̲ Function will restart printing of
         the preempted item.

         Restart point for all items at the beginning of the
         current copy.























                      F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲1̲-̲3̲



4.1.1.1.4    O̲u̲t̲p̲u̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲

         The functional breakdown of Output Control is depicted
         in fig. 4.1.1-4. These functions are used to control
         the printout execution.

         Get Access to CIF and Give Up Access to CIF are used
         in connection with accessing the print-data pointed
         to by the received queue-elements.

         Copy Control keeps accounts of the printed no. of copies
         and provides that the right amount is printed.

         Start Print is used when a new item or extra copies
         of an old item is to be printed.

         Abandon Print interrupts the current printing action,
         and returns the queue-element to its place in the queue.

         The E̲x̲c̲e̲p̲t̲i̲o̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲ is used when an a printer error
         occurs. The Subprocess will wait for a DEMCO R̲e̲s̲u̲m̲e̲
         Command.






















                      F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲1̲-̲4̲





4.1.1.1.5    D̲o̲c̲u̲m̲e̲n̲t̲ ̲A̲c̲c̲o̲u̲n̲t̲i̲n̲g̲

         These functions are fetching and computing relevant
         parameters/information used in document accounting
         and Page Header-/Trailer-s. Ref. fig. 4.1.1-5.





























                      F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲1̲-̲5̲




4.1.1.1.6    T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲ ̲A̲c̲c̲o̲u̲n̲t̲i̲n̲g̲

         This is for the Printer Package limited to Log record
         and Delivery Status Report generation, which is only
         to be carried out after printing of Service Messages,
         Messages and Comments.

         The contents of the Log records are:

         a)  Device designator
         b)  Transaction serial number
         c)  Format identification
         d)  Log time
         e)  Item reference identification
         f)  Exit cause
         g)  Classification
         h)  Special handling category
         i)  Start time of transaction
         j)  System Print Control Number
         k)  Special Handling Print Control Number

         The contents of the Delivery Status Reports are:

         a)  Item Ref. ID
         b)  "From SCD" or "From PLA#"
         c)  DTG
         d)  Status Code
         e)  Logical Device Designator

         The Subfunctions are depicted in fig. 4.1.1-6.























                      F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲1̲-̲6̲





4.1.1.2  P̲r̲i̲n̲t̲o̲u̲t̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲

         This part of the main functions carries out the actual
         printing actions.



4.1.1.2.1    F̲o̲r̲m̲a̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲

         Format Control is carrying out the necessary interface
         actions between the Printer Process and the PRINT FORMAT
         HANDLER (IOC Software).

         I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲  variables, buffers and Print Format Handler.

         G̲e̲t̲ ̲F̲o̲r̲m̲a̲t̲  obtains the format via the Print Format
                     Handler.

         Cf. figure 4.1.1-7
































                      FIGURE 4.1.1-7





4.1.1.2.2    P̲r̲i̲n̲t̲o̲u̲t̲

         These functions are together providing the printer
         device (via IOC) with the data to be printed.

         I̲n̲p̲u̲t̲ ̲D̲a̲t̲a̲ ̲F̲r̲o̲m̲ ̲C̲I̲F̲/̲B̲U̲F̲F̲E̲R̲ ̲F̲I̲L̲E̲ transfers the data
         from the CIF referenced by the Queue element or from
         the buffer connected with the Queue element to the
         source buffer used by the conversion functions.

         C̲o̲n̲v̲e̲r̲t̲ ̲D̲a̲t̲a̲ ̲F̲o̲r̲ ̲O̲u̲t̲p̲u̲t̲ is producing the output data
         for the printer. It is converting data from the Source
         Buffer. Line-and page-accounting is also carried out.

         O̲u̲t̲p̲u̲t̲ ̲D̲a̲t̲a̲ ̲T̲o̲ ̲P̲r̲i̲n̲t̲e̲r̲ takes care of transferring the
         converted data to the printer via IOC. This also includes
         reception of completion codes, error codes and printer-control
         signals from IOC.

         The last two functions are mainly carried out by The
         Print Format Handler.

         Ref. figure 4.1.1-8




































                      FIGURE 4.1.1-8







4.1.2    S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         In this section the software structure of PRIP will
         be described. The allocation of functions onto processes
         and coroutines will be explained, based on the analysis
         performed in section 4.1.1.

         Figure 4.1.2-1 shows the mapping of functions onto
         processes and coroutines.



4.1.2.1  P̲R̲I̲P̲ ̲P̲r̲o̲c̲e̲s̲s̲e̲s̲

         The P̲r̲i̲nter P̲ackage consists of a number of P̲r̲i̲nter
         S̲ubprocesses, each subprocess corresponding to one
         device. A subprocess is a set of coroutines to which
         a common ACCESS PROFILE can be associated. The ACCESS
         PROFILE contains information on which objects (e.g.a
         queue) a process or a subprocess may gain access to.



4.1.2.1.1    P̲R̲I̲S̲ ̲S̲u̲b̲ ̲P̲r̲o̲c̲e̲s̲s̲

         a) The P̲r̲i̲nter S̲ubprocess controls the printout of
         different items on a printer (via IOC). This is happening
         under supervision of DEMCO (SSC-software). PRIS thus
         has the following responsibilities:

             - DEMCO Command Execution
             - Control and Execution of Item-Printout
             - Transaction Accounting
             - Preemption Control
             - Document Accounting

         In figure 4.1-1 an overview of PRIS is depicted.

         b) The Queue-structure of PRIS is described in sec.
         4.1 (table 4.1-a).
































                      FIGURE 4.1.2-1







4.1.2.2. P̲R̲I̲P̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲

         The characteristics of the coroutine software component
         type is described in CPS/SDS/024 - sec. 2.2.1.5 and
         thus it shall not be repeated here.



4.1.2.2.1    P̲R̲I̲S̲-̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲

         The P̲r̲i̲nter S̲ubprocess consists of two coroutines:

             -the U̲ser P̲rinter C̲o̲ntrol Coroutine (UPCO)
             -the P̲r̲i̲nter O̲utp̲ut Coroutine (PROP)

4.1.2.2.1.1 U̲s̲e̲r̲ ̲P̲r̲i̲n̲t̲e̲r̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         UPCO is the coroutine that indirectly controls the
         printing actions of the allocated printer, and thus
         it controls the other coroutine (PROP)

         UPCO is responsible for
             a)  the execution of commands received from DEMCO
                 e.g. Close Down, Start SAD, Stop SAD, Resume.
             b)  preemption control and activation.
             c)  transaction accounting
             d)  controlling of PROP in order to print the queued
                 items.
             e)  selection of information used for document
                 accounting

         As UPCO is the controlling coroutine within PRIS it
         must be assigned higher priority than PROP, meaning
         that if both UPCO and PROP are ready to run UPCO will
         be executing first.



4.1.2.2.1.2 P̲r̲i̲n̲t̲e̲r̲ ̲O̲u̲t̲p̲u̲t̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         PROP is carrying out the actual printing i.e. formatting
         and output of the formatted print data.

         It is controlled by commands from UPCO and reacts upon
         completion- or error- codes from IOC. In case of print-completion
         or -errors, reports are sent to UPCO.


         PROP accesses the Print Format Handler where description
         information for each format is stored.

         References to print data are supplied by UPCO.



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

         In the preceding subsections of section 4.1.2, the
         processes and coroutines of PRIP have been isolated,
         and the functions to be performed by these software
         components identified.

         The software structure for each component (i.e. coroutine)
         will be outlined in the following subsections. The
         description of the software structure will mainly be
         in the form of software structure charts and references
         should be made to the functional specification given
         in section 4.1.1. The denotation used in section 4.1.1
         has as far as possible been used in the software structure
         charts, with the purpose of highlighting the close
         relationship. Thus the identification of programme
         tasks is given in narrative English and not as programme
         or procedure names.



4.1.2.3.1    U̲P̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The software structure of the User Printer Control
         Coroutine is outlined in fig. 4.1.2-2 through fig.
         4.1.2-6.

         Control Logic is described in sec. 4.1.3  and 4.2.1.



4.1.2.3.2    P̲R̲O̲P̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The software structure of the user printer control
         coroutine is outlined in fig. 4.1.2-7 through fig.
         4.1.2-11.

         Control logic is described in sec. 4.1.3 and 4.2.2.





























                             














          F̲r̲a̲ ̲F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲2̲-̲2̲ ̲t̲i̲l̲ ̲F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲2̲-̲1̲1̲




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

         This section describes the Data flow between the PRIS
         Coroutines and the Control Logic used to synchronize
         the execution of the functions allocated to them.



4.1.3.1  P̲R̲I̲S̲ ̲I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲y̲n̲c̲h̲r̲o̲n̲i̲z̲a̲t̲i̲o̲n̲

         The two coroutines within PRIS synchronize as shown
         on fig. 4.1-1.

         The general principle is that a running coroutine is
         allowed to run until it issues a wait operation. Then
         the coroutine with highest priority ready to run is
         started. A coroutine is ready to run when an event
         for which it has issued a wait instruction takes place.

         UPCO waits for the S1 Semaphore. S1 is associated with
         the Cmd Queue and either the main Print Queue or one
         or several of its subqueues.

         Thus as soon as an element is sent to one of the associated
         queues, UPCO is ready to run.

         In the CMD Queue UPCO receives DEMCO commands, Flash
         Notifications and Timer events. The print Queue  receives
         items for print.

         S1 is also signalled by PROP when it wants to deliver
         completion  - or error-codes to UPCO.

         UPCO has the higher priority of the two PRIS-Coroutines
         and it controls PROP by sending commands to it and
         signalling S2.

         PROP is waiting for S2. S2 is signalled by UPCO as
         described above. The coroutine monitor signals S2 in
         order to indicate completion of Printer Output system
         calls initiated by PROP .

         As mentioned above S1 will be signalled on delivery
         of Completion and Error Reports to UPCO.





4.1.3.2  N̲o̲r̲m̲a̲l̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲F̲l̲o̲w̲ ̲(̲M̲a̲j̲o̲r̲ ̲T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲s̲)̲

         This section contains the functional flow for a typical
         major transaction:

             1. Start Up (Start SAD DEMCO CMD)
             2. Print of item stored in a CIF
             3. Stop (Stop SAD DEMCO CMD)

         The following HIPO diagrams illustrates the flow.





            FIG. 4.1.3-1-2-3-4-5-6-6a-7-8-9-10








4.1.4    C̲O̲M̲M̲O̲N̲ ̲P̲A̲C̲K̲A̲G̲E̲ ̲D̲A̲T̲A̲

         REF PRT ̲DATA.S or PRT ̲DATA.PC



4.1.5    C̲o̲m̲m̲o̲n̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲



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



4.1.5.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 reports internally detected software
         errors to SSC.



4.1.5.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)  ERROR ̲REP (ERROR ̲TYPE:PRIS ̲ERROR ̲IDENT ̲TYPE,
             USER ̲ACTION:PRIS ̲USER ̲ACT ̲TYPE,
             SUBPACKAGE ̲SW ̲CONF ̲NO, MODULE ̲SW ̲CONF ̲NO,
             PROCEDURE ̲NO, CALL ̲NO:INTEGER,
             QEL ̲REF:QRL ̲REFERENCE)

         b)  ERROR ̲REP (R0, R1, R2, R3, R4, R5, R7, 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̲

         Ro                         ERROR ̲TYPE
         R1                         USER ̲ACTION
         R2                         SUBPACKAGE ̲SW ̲CONF ̲NO
         R3                         MODULE ̲SW ̲CONF ̲NO
         R4                         PROCEDURE ̲NO
         R5                         CALL ̲NO
         R7                         QEL ̲REF
         R6                         LINK

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

         All registers are destroyed



4.1.5.1.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̲:̲

         N/A

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

         N/A

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

         PRIS ̲GARBLE ̲PARAMS:GARBLE ̲PARAMS;



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

         The Procedure uses the SEND ̲GARBLE - Procedure. The
         parameters are set according to the error parameters.

         Ref. fig. 4.1.5.1-1.


ERROR ̲REP

    CASE R1  OF

       CON?-     R1:=CONTINUE

       GUP?      R1:=GIVE ̲UP

    OTHERWISE ̲SET  R1 =GIVE ̲UP

    WITH PRISE ̲GARBLE ̲PARAMS DO:

             :USER ̲ACTION            := R1

             .ERROR ̲INFO  1          := R6

             .ERROR ̲INFO  2          := R2

             .ERROR ̲INFO  3          := R3

             .ERROR ̲INFO  4          := R4

             .ERROR ̲INFO  5          := R5

             CASE RO OF

                 INT?    .ERROR ̲TYPE     := INTERNAL

                       R2                := NIL

                 QER?    .ERROR ̲TYPE     := QERROR

                       R2:=          R7

             OTHERWISE  ERROR ̲TYPE   := INTERNAL

                        USER ̲ACTION  := GIVE ̲UP

                        R2           := NIL

         END WITH

         SEND ̲GARBLE (PRIS ̲GARBLE ̲PARAMS, R2)

         END


                      FIG. 4.1.5.1-1


4.1.5.2  S̲E̲T̲ ̲D̲A̲T̲A̲ ̲R̲E̲C̲ ̲P̲T̲



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

         Determines the address of the current data record,
         stores the value in DATA ̲REC ̲PT and returns with the
         value in R5, R4 and R6;



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

         (R4; "- R   data-rec-pt
          R5; "- R   data-rec-pt
          R6);"C : LINK ---- R: DATA ̲REC ̲PT
          R0-R3, R7 KEPT



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

         local data: ref code
         global data: ref PRT ̲DATA



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

         Ref code





4.1.5.3  P̲R̲T̲ ̲I̲N̲T̲ ̲T̲O̲ ̲A̲S̲C̲I̲I̲



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

         The procedure converts integer an integer to ASCII
         with the requested number of digits. If the number
         of significant digits is smaller than the requested
         number, then '0's are filled in. If the number of significant
         digits is larger than the requested number, and the
         requested number is not 0, the ASCII value will be
         set to '*'s. If the requested number of digits is 0,
         then only the significant digits will be output - though
         if the integer value is 0 then a single digit (0) will
         be output.

         If R1 is NIL then R2 is supposed to contain the value
         to be convented.



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

         (R1; "C K READ ̲ADDRESS
          R2; "C K READ ̲BYTE ̲OFFSET / VALUE
          R3; "C R INPUT ITEM LENGTH / OUTPUT ITEM LENGTH
          R4; "C K OUTPUT ̲ADDRESS
          R5; "C K OUTPUT ̲BYTE ̲OFFSET
          R7; "C D REQUESTED NO OF DIGITS
          R6); "C D LINK

         "R0 IS KEPT



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

         local data: Ref Code



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

         Ref Code


4.1.5.4  R̲E̲S̲E̲T̲ ̲S̲T̲A̲C̲K̲



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

         The procedure sets the STACK ̲INDEX of the current COROUTINE
         ̲RECORD to STACK ̲BOTTOM + 1



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

         (R5); "C D LINK
         "ALSO R4 and R7 are destroyed.



4.1.5.4.3    D̲a̲t̲a̲

         global: Ref PRT ̲DATA



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

         Ref. Code



4.1.5.5  P̲u̲s̲h̲



4.1.5.5.1    F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲i̲g̲n̲

         The procedure decrements the STACK ̲INDEX of the current
         PRIS ̲COROUTNE ̲RECORD and pushes the specified value
         on the stack.



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

         (R6 ;"C D VALUE to be pushed on stack
          R5); "C D LINK
         "ALSO R4 and R7 are destroyed.





4.1.5.5.3    D̲a̲t̲a̲

         local data: ref code
         global data: ref PRT ̲DATA



4.1.5.5.4    D̲e̲s̲i̲g̲n̲

         ref. code



4.1.5.6  P̲O̲P̲



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

         The procedure pops the value from the current PRIS
         ̲
         COROUTINE ̲RECORD.STACK referenced be STACK ̲INDEX. Afterwards
         the STACK ̲INDEX is incremented.



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

         (R6 ; "C D VALUE to be popped from stack
          R5); "C D LINK
         Also R4 and R7 are destroyed.



4.1.5.6.3    D̲a̲t̲a̲

         local: ref code
         global: ref PRT ̲DATA



4.1.5.6.4    D̲e̲s̲i̲g̲n̲

         Ref. Code





4.1.5.7  P̲R̲I̲S̲ ̲I̲N̲I̲T̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         PRIS ̲INIT is the first procedure called when a printer
         process is started. It calls the PRE ̲INITIALIZATION
         procedure and performs initilization of coroutined,
         semaphores, operations PRINTER ̲HANDLER and variable.



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



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

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

         Call Registers:
         R0   START UP ̲Type          : START ̲UP ̲ACTIVE ̲TYPE
         R1   Process ̲Type           : ROP ̲S..OCR ̲S
         R2   FIRST ̲SUBPRC ̲ND        : SUBPROCESS ̲INDEX
         R3   NO ̲OF ̲SUBPROVESSES     : SUBPROCESS ̲INDEX
         R4   0



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

         Ref. PRT ̲DATA and PRT ̲PREFIX.



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

         First the start up type is validated. Then initialization
         if the following is carried out:

             Printer Handler
             Coroutine Monitor
             UPCO Coroutine
             PROP Coroutine
             Semaphones
             Operations

             The last 4 is initiated once per subprocess.

         At last the first UPCD is started up.

         Ref. Code.



4.1.5.8  C̲L̲E̲A̲R̲



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

         This procedure clears specified area by overwriting
         with specified character.



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

         (R0; "Pointer
          R1; "Length
          R2; "Character
          R6);"Link
          R2, R3, R4 and R6 are destroyed.



4.1.5.8.3    D̲a̲t̲a̲

         N/A



4.1.5.8.4    D̲e̲s̲i̲g̲n̲

         Ref. Code.



4.1.5.9  I̲N̲I̲T̲ ̲P̲H̲



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

         The procedure initializes the printer Handler and looks
         up the format file.



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

         (R6) C D LINK
         all registers are destroyed.





4.1.5.9.3    D̲a̲t̲a̲

         global: ref. CPS ̲DATA
                      PRT ̲DATA



4.1.5.9.3    D̲e̲s̲i̲g̲n̲

         Ref. Code



4.1.5.10 P̲R̲T̲ ̲M̲O̲V̲E̲ ̲W̲



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

         The procedure moves the no of words specified by R3
         from the address pointed to by R4 to the destination
         pointed to by R5.



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

         (R3 ; "C D NO OF WORDS TO BE MOVED
          R4 ; "C D FROM ̲POINTER
          R5 ; "C D TO ̲POINTER
          R7 ; "- K
          R6); "C D LINK



4.1.5.10.3   D̲a̲t̲a̲

         N/A



4.1.5.10.4   D̲e̲s̲i̲g̲n̲

         Ref. Code





4.1.5.11 G̲E̲T̲ ̲O̲P̲ ̲R̲E̲C̲



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

         The procedure finds a free PRT ̲COROUTINE ̲OPERATION.
         When no operation is free the procedure ERROR ̲REP is
         called 

         This operation pool is only used in the local communication
         between UPCO and PROP. The same pool is used for all
         four subprocesses.



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

         R5 - R Pointer to a PRT ̲COROUTING ̲OPERATION RECORD
         R6 CD LINK
         R3 KEPT



4.1.5.11.3   D̲a̲t̲a̲

         N/A



4.1.5.11.4   D̲e̲s̲i̲g̲n̲

         Ref. Code.



4.1.5.12 R̲E̲L̲ ̲O̲P̲ ̲R̲E̲C̲



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

         The procedure releast a PRT ̲COROUTINE ̲RECORD.
         The procedure ERROR ̲REP is called when the operation
         can't be found.





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

         R5 C K Pointer to PRT ̲COROUTINE ̲OPERATION
         R6 C D LINK
         R3 KEPT



4.1.5.12.3   D̲a̲t̲a̲

         N/A



4.1.5.12.4   D̲e̲s̲i̲g̲n̲

         Ref. Code.



4.1.6    G̲l̲o̲b̲a̲l̲ ̲D̲a̲t̲a̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲

         Ref. CPS ̲PREFIX and CPS ̲DATA.



4.1.7    I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.1.7.1  E̲x̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Two external interfaces exists: Low Speed Printer Interface,
         Medium Speed Printer Interface.



4.1.7.2  P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         The section numbers below refer to CAMPS Software Interface
         Control Document (CPS/ICD/009)

         PRI    -CSF    sec. 3.2 and 4.3.2
         PRI    -IOC    sec. 3.5
         PRI    -TMP    sec. 4.1
         PRI    -SSC    sec. 4.2
         PRI    -MDP    sec. 5.2
         PRI    -LOG    sec. 5.4
         PRI    -TEP    sec. 5.7








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



4.1.7.3.1    P̲r̲o̲c̲e̲s̲s̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         None



4.1.7.3.2    C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.1.7.3.2.1 F̲r̲o̲m̲ ̲U̲P̲C̲O̲ ̲t̲o̲ ̲P̲R̲O̲P̲

         INITIALIZE ̲PROP

             The command is used during initialization of the
             proces.

         COMMENCE ̲PRINT

             - is used to request a copy of the current item
             to be printed.

         REPEAT ̲PRINT

             - as COMMENCE ̲PRINT - but will not cause the same
             initial actions - is used when more than one copy
             of an item is wanted.

         PREEMPT ̲PRINT

             - is used to stop the current print actions in
             order to print a FLASH item.

         ABANDON ̲PRINT

             - as for PREEMPT ̲PRINT, but is used when the printer
             is stopped or closed.





4.1.7.3.2.2 F̲r̲o̲m̲ ̲P̲R̲O̲P̲ ̲t̲o̲ ̲U̲P̲C̲O̲

         CONNECTION ̲ERROR

             indicates that a connectionerror has occured (e.g.
             the key has been turned off) during printing actions.

         PAPER ̲LOW

             indicates that the printer has run out of paper
             or that the paper motion is not working.

         PROP ̲INITIALIZE ̲CC

             the response to a INITIALIZE ̲PROP command.

         ABANDON ̲CC

             the response to a ABANDON ̲PRINT command. A parameter
             indicates whether the current printaction was complete
             or not.

         PREEMPT ̲CC

             as above for a PREEMPT ̲PRINT command

         PRINT ̲COMPLETE ̲REP

             indicates that the requested copy has been printed.
 
         The coroutine communication is done by operations and
         semaphores.

         The calling coroutine puts its identification in the
         first word of the operation-user field and the command.or
         report-id in the second word. 





4.2      S̲U̲B̲P̲A̲C̲K̲A̲G̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲S̲



4.2.1    U̲s̲e̲r̲ ̲P̲r̲i̲n̲t̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲

         The U̲ser P̲rint C̲ontrol (UPCO) coroutine controls the
         printout of queued items performed by PROP (P̲r̲inter
         O̲utp̲ut). UPCO is controlled by DEMCO via Commands.



4.2.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 following functions are included in this subpackage
         (refer fig. 4.2.1.1-1):

             DEMCO command execution 
             Flash notification processing
             Print item processing
             I/O-Error report processing
             CC ̲Report processing
             Timeout event processing














































        F̲r̲a̲ ̲F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲1̲.̲1̲-̲1̲ ̲t̲i̲l̲ ̲F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲1̲.̲1̲-̲7̲




4.2.1.1.1    D̲E̲M̲C̲O̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲

         The DEMCO command execution functions are those which
         directly involve the SSC package.

         a)  S̲t̲a̲r̲t̲ ̲(̲S̲A̲D̲)̲ ̲ ̲(̲1̲.̲1̲)̲
             
             Initialize the printing actions by sending an Initialize
             command to PROP and initializing the working area.
             The Printer connection is accepted. A   CC ̲report
             is sent to DEMCO.

         b)  S̲t̲o̲p̲ ̲(̲S̲A̲D̲)̲ ̲ ̲ ̲(̲1̲.̲2̲)̲

             Stops the printing actions immediately. An Abandon
             command is sent to PROP and the working area will
             be cleaned up. A CC-report is sent to DEMCO.

         c)  C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲ ̲(̲1̲.̲3̲)̲

             There are two types of CLOSE DOWN commands : Initial
             and final.
             The "initial" tells the process to close down after
             processing of the current print item. The "final"
             orders the process to close down immediately.

         d)  R̲e̲s̲u̲m̲e̲ ̲ ̲ ̲(̲1̲.̲4̲)

             If the printing has been stopped due to a printer
             error (e.g. paper out), IOC notifies DEMCO when
             the printer is functioning again. DEMCO then issues
             a Resume command to PRIS. UPCO receives it and
             resumes the printing actions.





4.2.1.1.2    F̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲2̲.̲0̲)̲

         The Flash notification execution functions are activated
         when a Flash notification is received in the command
         queue.

         a)  S̲e̲n̲d̲ ̲Q̲u̲e̲u̲e̲ ̲E̲l̲e̲m̲e̲n̲t̲ ̲t̲o̲ ̲M̲D̲C̲O̲ ̲(̲2̲.̲1̲)̲

             This function is used when the processing is stopped
             e.g. because of paper out on the printer.

         b)  S̲e̲t̲ ̲T̲i̲m̲e̲r̲ ̲(̲2̲.̲2̲)̲

             If an item of precedence lower than Flash is being
             printed when a Flash notification arrives, a timer
             will be started by a call to Timer Monitor (CSF).
             The processing of the current item will be continued.


4.2.1.1.3    P̲r̲i̲n̲t̲ ̲I̲t̲e̲m̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲3̲.̲0̲)̲

         These functions are carried out when processing an
         item from the print queue.

         a)  G̲e̲t̲ ̲A̲c̲c̲e̲s̲s̲ ̲t̲o̲ ̲C̲I̲F̲ ̲F̲I̲L̲E̲ ̲(̲3̲.̲1̲)̲

             If the item to be printed is contained in a CIF,
             the printer process must get access to it via Message
             Monitor. If it is a Table or Systeminformation
             print item then SYIE ̲TAB ̲FILE is opened.

         b)  D̲o̲c̲u̲m̲e̲n̲t̲ ̲A̲c̲c̲o̲u̲n̲t̲i̲n̲g̲ ̲(̲3̲.̲2)̲

             Document Accounting shall be carried out as stated
             in the SRS sec. 3.2.3....7.2 and sec. 2.2.1.2 of
             this document.

             The document accounting functions has the responsibility
             of fetching and determining the parameters and
             information that is to be printed on top of each
             page.

             F̲e̲t̲c̲h̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲ ̲(̲3̲.̲2̲.̲1̲)̲

             Fetches the various system parameters e.g. System
             Print Control Number.

             C̲o̲m̲p̲u̲t̲e̲ ̲N̲u̲m̲b̲e̲r̲ ̲o̲f̲ ̲C̲o̲p̲i̲e̲s̲ ̲(̲3̲.̲2̲.̲2̲)̲

             Computes the number of copies that are to be printed.

             S̲e̲t̲ ̲P̲a̲g̲e̲ ̲H̲e̲a̲d̲e̲r̲ ̲(̲3̲.̲2̲.̲3̲)̲

             Stores the Page-Header information in the common
             data area so it is available for PROP at printout.



         c)  C̲o̲p̲y̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲3̲.̲3̲)̲

             It is the responsibility of the copy control function
             that the current item is printed out in the right
             number of copies.

         d)  S̲e̲n̲d̲ ̲C̲o̲m̲m̲e̲n̲c̲e̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲t̲o̲ ̲P̲R̲O̲P̲ ̲(̲3̲.̲4̲)̲

             The function is used in order to let PROP print
             a copy of the current item.

         e)  P̲r̲i̲n̲t̲ ̲C̲o̲m̲p̲l̲e̲t̲e̲ ̲R̲e̲p̲o̲r̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲3̲.̲5̲)̲

             Is activated when PROP has finished processing
             a copy of the current item.

         f)  G̲i̲v̲e̲ ̲U̲p̲ ̲A̲c̲c̲e̲s̲s̲ ̲t̲o̲ ̲C̲I̲F̲ ̲(̲3̲.̲6̲)̲

             This function is activated if the item is contained
             in a CIF and its processing is completed or it
             has been abandoned.

         g)  T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲ ̲A̲c̲c̲o̲u̲n̲t̲i̲n̲g̲ ̲(̲3̲.̲7̲)̲

             Generates and sends log records to LOG ref. sec.
             2.2.2.6 and 4.1.1.1.6, and Status reports to UMAM.





4.2.1.1.4    E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲4̲.̲0̲)̲

         These functions are involved upon receipt of error
         reports from PROP or by detecting errors within UPCO.

         a)  S̲e̲t̲ ̲P̲r̲i̲n̲t̲e̲r̲ ̲E̲r̲r̲o̲r̲ ̲S̲t̲a̲t̲u̲s̲ ̲(̲4̲.̲1̲)̲

         b)  S̲e̲n̲d̲ ̲F̲l̲a̲s̲h̲ ̲I̲t̲e̲m̲s̲ ̲t̲o̲ ̲M̲D̲C̲O̲ ̲(̲4̲.̲2̲)̲

             If there are any items with Flash priority or above
             queued for print, when the print processing is
             stopped, they must be sent to MDCO.

         c)  A̲w̲a̲i̲t̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲F̲r̲o̲m̲ ̲D̲E̲M̲C̲O̲ ̲(̲4̲.̲4̲)̲

             In case of paper low on the printer a Resume command
             is awaited. If a connection error has occured a
             STOP command is awaited.



4.2.1.1.5    C̲o̲m̲m̲a̲n̲d̲ ̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲ ̲R̲e̲p̲o̲r̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲5̲.̲0̲)̲

         Command Completion Report Processing functions are
         activated upon receipt of Command Completion Reports
         from PROP.

         a)  S̲e̲n̲d̲ ̲C̲C̲ ̲R̲e̲p̲o̲r̲t̲ ̲t̲o̲ ̲D̲E̲M̲C̲O̲ ̲(̲5̲.̲1̲)̲

             If required DEMCO shall be notified of the command
             completion.

         b)  R̲e̲t̲u̲r̲n̲ ̲Q̲u̲e̲u̲e̲ ̲E̲l̲e̲m̲e̲n̲t̲ ̲t̲o̲ ̲Q̲u̲e̲u̲e̲ ̲(̲5̲.̲2̲)̲

             If the current item has been abandoned, it shall
             be returned to the Queue.

         c)  G̲i̲v̲e̲ ̲U̲p̲ ̲A̲c̲c̲e̲s̲s̲ ̲T̲o̲ ̲C̲I̲F̲ ̲(̲5̲.̲3̲)̲

             If the current item has been abandoned or the printout
             is completed the CIF must be closed.



         d)  S̲t̲a̲r̲t̲ ̲P̲r̲i̲n̲t̲i̲n̲g̲ ̲o̲f̲ ̲F̲l̲a̲s̲h̲ ̲I̲t̲e̲m̲ ̲(̲5̲.̲4̲)̲

             When the previous item is preempted, processing
             of the Flash item can begin.



4.2.1.1.6    T̲i̲m̲e̲o̲u̲t̲ ̲E̲v̲e̲n̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲6̲)̲

         This function processes timeout events originally initiated
         by Preemption Control (sec. 4.2.1.1.2-c).




4.2.1.2  U̲P̲C̲O̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The software structure of UPCO is shown in Fig. 4.2.1.2-1
         through Fig. 4.2.1.2-4

         In the following a functional description of each module
         is given.

         1)  U̲P̲C̲O̲ ̲M̲A̲I̲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.

         2)  P̲R̲O̲C̲E̲S̲S̲ ̲C̲M̲D̲ ̲Q̲ ̲I̲T̲E̲M̲

             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.



         3)  U̲P̲C̲O̲ ̲I̲N̲I̲T̲I̲A̲L̲I̲Z̲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 reads the appropriate
             system parameters, connects the subprocess to the
             printer and the Format Handler, initilizes some
             of the variables and invokes PROP by sending an
             INITIALIZE ̲PROP ̲CMD.

         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̲

             The module analyses the arrived FLASH Notification
             and the status of the Printer Subprocess and determines
             the actions to be taken.

         5)  P̲R̲O̲C̲E̲S̲S̲ ̲P̲R̲O̲P̲ ̲I̲T̲E̲M̲

             The module analyses the various items received
             from PROP.

         6)  P̲R̲I̲N̲T̲ ̲C̲O̲M̲P̲L̲E̲T̲E̲ ̲A̲C̲T̲I̲O̲N̲S̲

             The module determines and carries out some of the
             actions to be taken when a printing action has
             been completed.

         7)  U̲P̲C̲O̲ ̲P̲R̲E̲E̲M̲P̲T̲ ̲R̲E̲S̲T̲O̲R̲E̲

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

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

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

             The module searches the FLASH queue and sends possible
             FLASH-items to MDCO.


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

             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. For file items the SYIE ̲TAB ̲FILE
             is opened.

         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̲

             The Module that is called by the PRINTING ̲PREPA-
             RATIONS Module determines which category (Single
             QEL, Buffer View or File) the print item belongs
             to.

         11) D̲O̲C̲U̲M̲E̲N̲T̲ ̲A̲C̲C̲ ̲P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲

             Initially it determines whether document accounting
             is appropriate for the item in question, the appropriate
             FORMAT ̲ID is found by reading the entry from the
             PRINT ̲ACCOUNTING ̲TABLE.

             If wanted the module carries out the necessary
             preparations in order to perform Document Accounting
             during printout of the current item. The module
             is called by the PRINTING PREPARATIONS Module.

         12) T̲R̲A̲N̲S̲A̲C̲T̲I̲O̲N̲ ̲A̲C̲C̲O̲U̲N̲T̲I̲N̲G̲

             This 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.

         13) C̲L̲E̲A̲N̲ ̲I̲T̲E̲M̲

             The module stops executing of an item in a proper
             manner. It controls that views are closed and that
             transaction accounting is carried out.

         14) A̲B̲A̲N̲D̲O̲N̲ ̲A̲C̲T̲I̲O̲N̲S̲

             The module is used when the printing actions are
             to be abandoned in a proper manner. The current
             print item(s) are either returned to the print
             queue or dismantled.

         15) R̲E̲P̲L̲ ̲D̲I̲S̲M̲ ̲R̲E̲T̲

             This module is used for the cleaning up functions
             mentioned above.





              Figures 4.2.1.2-1 - 4.2.1.2-4