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