top - download
⟦ce8c4ed79⟧ Wang Wps File
Length: 43865 (0xab59)
Types: Wang Wps File
Notes: PIP SUBSYSTEM PSP
Names: »3054A «
Derivation
└─⟦dfa2fde64⟧ Bits:30006137 8" Wang WCS floppy, CR 0266A
└─ ⟦this⟧ »3054A «
WangText
…1d……00……00……00……00…7…02……00……00…7
7…07…6…0b…6…0d……15……09……15……0d……15……00……15……02……15……06……14……09……14……0c……14……0f……14……02……14…
…14……06……13……08……13……0a……13……0d……13……00……13……01……13……05……13……07……12……0a……12……0e……12……01……12…
…12……06……11……09……11……0c……11……86…1 …02… …02… …02…
…02…FIX/1152/PSP/0075
…02…APE/821108…02……02…#
PIP SUBSYSTEM PSP
…02……02…FK 7809
Li̲s̲t̲ ̲o̲f̲ ̲C̲o̲n̲t̲e̲n̲t̲s̲ P̲a̲g̲e̲
1. SCOPE 1
1.1 Introduction 1
1.2 Abbreviations 1
2. APPLICABLE DOCUMENTS 2
2.1 System Software 2
2.2 FIKS Documentation 3
3. MODULE SPECIFICATION 5
3.1 Functional Capabilities 5
3.2 Interface Description 7
3.2.1 General Description of the Interface 7
3.2.2 Format of AMOS Message/Answer to/from PIP 11
3.3 Processing 15
3.3.1 PIP Main Flow 15
3.3.2 PIP Initializing 17
3.3.3 Activating Events 18
3.3.3.1 Signals 18
3.3.3.2 Logon/Logoff-messages 19
3.3.3.3 Print Request (Teleprinter) 20
3.3.3.4 Special Handling Printrequest 20
3.3.3.5 TIMER-answer 21
3.3.3.6 IO-Completion 22
3.3.4 Sequence Initializing 23
3.3.5 Sequences 25
3.3.5.1 Narrative Messages 26
3.3.5.2 Transaction Log 28
3.3.5.3 Message Journal 29
3.3.5.4 Message Log 30
P̲a̲g̲e̲
3.3.5.5 Coordination Printout 31
3.3.5.6 Remarks 32
3.3.5.7 Messages in Preparation 33
3.3.5.8 Special Handling Printout 34
3.3.6 Sequence Finish 35
3.3.7 Common Routines 36
3.3.7.1 Reading of Files 36
3.3.7.2 Formatting of TEXT-BUFFER 38
3.3.7.3 Printing of TEXT-BUFFER 41
3.3.7.4 Check of Classification 44
3.3.8 Error Handling 45
3.3.9 Checkpointing 47
3.4 Data Organization 48
3.4.1 External Data Structures 49
3.4.2 Internal Data Structures 50
3.4.3.1 Page Format 52
3.4.3.2 Acceptance & Retrieval -DTG Format 54
3.4.3.3 Coordination Printout Format 55
3.4.3.4 Message Log Format 56
3.4.3.5 Transaction Log Format 57
3.4.3.6 Message Journal Log Format 58
3.5 Storage Allocation 59
3.6 Performance Characteristics 60
3.7 Limitations 61
3.8 Error Locations 62
3.9 Listing Reference 64
P̲a̲g̲e̲
4. QUALITY ASSURANCE 65
4.1 Qualification Tests 65
4.2 Other Quality Assurance Provisions 65
5. PREPARATION FOR DELIVERY 66
6. NOTES 67
6.1 Module Generations 67
6.2 Node/MEDE-versions 68
7. APPENDICES 69
1. S̲C̲O̲P̲E̲
This document is Product Specification for the Printer Interface application software in
the FIKS-system.
1.1. I̲n̲t̲r̲o̲d̲u̲c̲t̲i̲o̲n̲
The document is made out after the implementation af PIP was done. The document is primary
meant to be used by those who is going to maintain the PIP. Therefore the intension with
this document is to describe the functions and procedures in the PIP-process in general view
and to explain the reasons why they are implemented as they are.
Some procedures which are rather simple and easily can be understood by inspection of source
listings may not be described in every detail. Capital letters have been used to emphasize
keywords used in other documents or in the source listing.
1.2 A̲b̲b̲r̲e̲v̲i̲a̲t̲i̲o̲n̲s̲
Refer to FIKS Data Interface Reference FIX/0100/MAN/0004, sec. 1.2
2. A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲.
2.1 S̲y̲s̲t̲e̲m̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲.̲
1) CR80 AMOS Kernel,
Product Specification, CSS/302/PSP/0008
2) CR80 AMOS I/O System,
Product Specification, CSS/006/PSP/0006
3) CR80 DMA Link Driver,
Product Specification, CSS/006/PSP/0002
4) CR80 AMOS File Management System,
System Product Specification, CSS/920/SPS/0001
5) CR80 AMOS FMS Command Controller,
Product Specification, CSS/920/PSP/0046
6) CR80 AMOS FMS Disk Cache Manager,
Product Specification, CSS/920/PSP/0047
7) CR80 AMOS FMS File Manager,
Product Specification, CSS/920/PSP/0048
8) CR80 Disk Driver,
Product Specification, CSS/006/PSP/0005
9) CR80 TDX Driver,
Product Specification, CSS/314/PSP/0013.
2.2 F̲I̲K̲S̲ ̲D̲o̲c̲u̲m̲e̲n̲t̲a̲t̲i̲o̲n̲.̲
10) FIKS System PSP,
FIX/1000/PSP/0038
11) FIKS Data Interface Refference,
FIX/0100/MAN/0004
12) Checkpoint Subsystem,
FIX/1100/PSP/0041
13) Convert DTG Monitor,
FIX/1256/PSP/0039
14) Error Switchover Process,
FIX/1105/PSP/0046
15) LCFH Monitor,
FIX/1256/PSP/0055
16) Log Action Monitor,
FIX/1256/PSP/0056
17) Log Journal Monitor,
FIX/1256/PSP/0057
18) MES Submodule,
FIX/1351/PSP/0060
19) MDS Subsystem,
FIX/1152/PSP/0062
20) MTCB Monitor,
FIX/1256/PSP/0066
21) PURGE Procedure,
FIX/1200/PSP/0077
22) QACCESS Procedure,
FIX/1256/PSP/0078
23) SAF Subsystem,
FIX/1155/PSP/0088
24) Test HDB Monitor,
FIX/1256/PSP/0102
25) TIMER Subsystem,
FIX/1200/PSP/0105
26) SRR Subsystem,
FIX/1153/PSP/0096
3. M̲O̲D̲U̲L̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲C̲a̲p̲a̲b̲i̲l̲i̲t̲i̲e̲s̲.̲
The purpose of the PIP-process is in the Node/MEDE for all terminals to control and make
the following logical printouts.
1. Narrative Messages.
- Printing of ordinary messages at receivers terminal after they have been transmitted
through the FIKS-network.
2. Message in Preparation.
- Listing of messages while they are in the preparation phase at senders terminal.
3. Coordination Printout.
- List of messages prepared at a terminal (the originator) at an other terminal (the
coordinator) together with coordinator identification text and originators remarks.
4. Remarks.
- Coordinators remarks.
- Release remarks.
- Statistics.
5. Message Log.
- A Log of messages newly stored on HDB.
6. Message Journal.
- A logging of message processing.
7. Transaction Log.
- Logging of LOGON, LOGOFF, security interrogation events.
The control functions are concerned about if it is allowed to do the printouts. I.e. the
PIP is responsible for.
1. Printouts is only done at a logged on terminal or when a printrequest is issued.
2. The classifiction of the terminaloperator is high enough.
3. Special handling printouts is finished within a certain limit after they are requested
started.
3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
3.2.1 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲O̲v̲e̲r̲v̲i̲e̲w̲.̲
Interface Data: ref. (10)
Refer fig. 3.2.1 General View.
S̲y̲s̲t̲e̲m̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
1. FMS-system via IO-system
2. TDX-system via IO-system
3. Kernel, use of AMOS-message functions and critical region operations.
F̲I̲K̲S̲ ̲A̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
1̲.̲ ̲ ̲U̲s̲e̲ ̲o̲f̲ ̲F̲I̲K̲S̲ ̲m̲o̲n̲i̲t̲o̲r̲
1. QACCESS
2. MTCB
3. CONVDTG
4. LOG-JOURNAL
5. TEST-HDB
6. LCFH
2̲.̲ ̲ ̲U̲s̲e̲ ̲o̲f̲ ̲F̲I̲K̲S̲-̲c̲r̲i̲t̲i̲c̲a̲l̲ ̲r̲e̲g̲i̲o̲n̲s̲
1. CONFIG, Configuration table
2. CLASS1, Classification Text (short)
3. CLASS2, Classification text (long)
4. XTCBCR, Terminal control black.
3̲.̲ ̲ ̲I̲n̲p̲u̲t̲ ̲q̲u̲e̲u̲e̲s̲.̲
Printer queues. I.e. one set of input queues per printer with precedence Z, Y, O, LP,
P, M, R.
O̲u̲t̲p̲u̲t̲ ̲q̲u̲e̲u̲e̲s̲.̲
DT-queue.
PURGE-queue.
4̲.̲ ̲ ̲F̲I̲K̲S̲-̲m̲o̲d̲u̲l̲e̲s̲.̲
1. MDS-process.
MDS enqueing into the printer queues.
2. MES-module.
1. MES enqueing into LP-queue for listing of prepared messages.
2. AMOS-message from MES concerning printrequests (ordinary/special handling). AMOS
answer is returned.
3. ITM-module.
AMOS-message from ITM concerning Logon/Logoff. AMOS answer is returned.
4. CHECKP-process.
Use of AMOS messages/answers when checkpointing.
5. TIMER-process.
Use of AMOS messages/answers at special handling timeout test and delay before recovery.
6. SFS/SAF-modules.
Enqueing into DT-queue.
7. PURGE-process.
Enqueing into PURGE-queue.
8. SRR-process.
Message Log print request enqueued into LP-queue.
9. Journal-process.
Message Journal print request into LP-queue.
10. SEND-REPORT-monitor.
Transaction Log print request into LP-queue.
5̲.̲ ̲ ̲F̲I̲L̲E̲S̲.
1. HDB, IMF- and PDB-files via MTCB-monitor.
2. MLF-file at printout of Message Log.
3. MJF-file at printout of Message Journal.
3.2.2 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲A̲M̲O̲S̲ ̲M̲e̲s̲s̲a̲g̲e̲/̲A̲n̲s̲w̲e̲r̲ ̲t̲o̲/̲f̲r̲o̲m̲ ̲P̲I̲P̲.̲
The messages send to PIP and answers send from PIP shall observe the following format
M̲e̲s̲s̲a̲g̲e̲s̲
Word 1 Message code
2 Terminal No. = logical no of the
3 affected printer.
4
5
A̲n̲s̲w̲e̲r̲s̲
Word 1 Message code Equal to that in
2 Terminal no. the received
3 message
4
5 Completion code = code describing
how the implied
request completed.
3.2.2.1 L̲o̲g̲o̲n̲/̲L̲o̲g̲o̲f̲f̲ ̲o̲f̲ ̲P̲r̲i̲n̲t̲e̲r̲s̲
When a printer is logged on/off then a message from ITM is issued with message codes as follows:
Logon = 1
Logoff = 2
An answer is returned from PIP with the same format. Completion code is not updated.
3.2.2.2 P̲r̲i̲n̲t̲ ̲R̲e̲q̲u̲e̲s̲t̲ ̲f̲r̲o̲m̲ ̲T̲e̲l̲e̲p̲r̲i̲n̲t̲e̲r̲
Prior to printout on a teleprinter, in RXTX mode, the PIP shall receive a message from MES
with
m̲e̲s̲s̲a̲g̲e̲ ̲c̲o̲d̲e̲ ̲=̲ ̲4̲.
An answer is returned. The possible completion code can be:
0: Printout is finished
1: Printout refused due to no queue entry
2: Printout refused due to too low terminal classification.
3.2.2.3 P̲r̲i̲n̲t̲ ̲r̲e̲q̲u̲e̲s̲t̲ ̲o̲f̲ ̲S̲p̲e̲c̲i̲a̲l̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲
Prior to printout of a special handling message, PIP shall receive a message with
m̲e̲s̲s̲a̲g̲e̲ ̲c̲o̲d̲e̲ ̲=̲ ̲5̲,̲
from MES indicating that the special handling authentication procedure succeded.
An answer is returned. The possible completion codes can be:
0: Printout is finished
1: Printout refused due to no queue entry
2: Printout refused due to too low terminal classification
3: Printout refused due to timeout (The time from the request was received by PIP has exceeded
10 min. and the printout has not yet started).
3.3 P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲
3.3.1 P̲I̲P̲ ̲M̲a̲i̲n̲ ̲F̲l̲o̲w̲
The main processing of the PIP is described in overview in figure 3.3.1.
PIP passes through an initializing phase. After this events delivered by AMOS is awaited.
Those events initialize some kind of printout - a SEQUENCE.
This sequence involves IO-operations. When an IO-operations is started, the processing concerning
the sequence is temporary suspended until the operation terminates. Then the processing is
resumed until a new IO-operation is started etc.
In this way the PIP is able to printout sequences on every printer at the same time without
interferring processing for the different printers.
3.3.2 P̲I̲P̲ ̲i̲n̲i̲t̲i̲a̲l̲i̲z̲i̲n̲g̲
After PIP has been started by the ESP-process the initializing phase is executed. This include:
1. The last used page number is fetched via the checkpoint mechanism. Refer to sec. 3.3.9.
2. Loglines to the VDU-ROP's and teleprinters are created by call of the LFCH-monitor, ref.
(15).
3. A 'clean printer' procedure is executed for every VDU-ROP. This is done to ensure that
any old data in the VDU-LTUX's is squeezed out. It is done by printing binary zeros -
invisible when printed.
A timeout condition when doing this, may be caused by data, originating from other processes,
being 'stucked' in the LTUX. Therefore in this case the dummy print shall be attempted
at least 3 times before give up.
3.3.3 A̲c̲t̲i̲v̲a̲t̲i̲n̲g̲ ̲E̲v̲e̲n̲t̲s̲
3.3.3.1 S̲i̲g̲n̲a̲l̲
An AMOS-signal delivered to PIP will always mean that one or more entries into an empty printerqueue
has been done. Consequently one or more printers not active for the moment may need service.
To be sure that the signal is interpretted correct all possibilities for starting a printout
at every terminal shall be utilized.
3.3.3.2 L̲o̲g̲o̲n̲/̲L̲o̲g̲o̲f̲f̲ ̲-̲m̲e̲s̲s̲a̲g̲e̲s̲
An AMOS-messge in accordance with the layout given in sec. 3.2.2.1 is delivered to PIP.
The PRINTER-MODE is up-dated:
Logon: AUTOMATIC
Logoff: NOT AUTOMATIC
AUTOMATIC means that when an entry into the printerqueues is done, then the corresponding
printsequence will be printed automatically.
The NOT AUTOMATIC mode is used in connection with teleprinters. They need a PRINT-REQUEST
before they start a print sequence.
In case of LOGON it is attempted to start a printout. This will ensure that any message already
in the printerqueues will be printed.
3.3.3.3 P̲r̲i̲n̲t̲r̲e̲q̲u̲e̲s̲t̲
An AMOS-message in accordance with the layout given in sec. 3.2.2.2 is delivered to PIP.
This means that a printout sequence shall be started (or attempted to). The result of this
shall later on be returned.
3.3.3.4 S̲p̲e̲c̲i̲a̲l̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲P̲r̲i̲n̲t̲r̲e̲q̲u̲e̲s̲t̲
An AMOS-message in accordance with the layout given in sec. 3.2.2.3 is delivered to PIP.
This means that a special handling message printout shall be started (or attempted to).
A timer is started by using the TIMER-process - ref. (25). This shall be used to test if
the special handling printout is started within 10 minutes.
The result of how the printout sequence was passed is returned later on.
3.3.3.5 T̲I̲M̲E̲R̲-̲a̲n̲s̲w̲e̲r̲
The only answers that can be delivered to PIP is from the TIMER-process - ref. (25).
These answers will indicate that a timeout condition is fulfilled.
There are 2 cases to consider:
1. Timeout on a special handling printout request. This can be ignorred if printout concerning
the request is started (or finished) else special handling timeout completion is returned
in the answer on the request (ref. 3.3.3.4).
2. Runout of delay in connection with LOCAL-FIX-UP after an error refer to 3.3.8 Error Handling.
3.3.3.6 I̲O̲-̲C̲o̲m̲p̲l̲e̲t̲i̲o̲n̲
When an earlier started IO-operation, ref. sec. 3.3.1, finishes, the information about this
is returned from the IO-system ref. (2).
This includes an operation refference OP-REF, which is used to identify the operation.
Based on the data stored when the operation was started, it is possible to continue processing
for the printsequence, which the operation was part of.
3.3.4 S̲e̲q̲u̲e̲n̲c̲e̲ ̲I̲n̲i̲t̲i̲a̲l̲i̲z̲i̲n̲g̲
When an event, indicating that a printout can be started, occurs -
Signal,
Logon,
Printrequests,
Finish of another sequence,
then the following procedure is followed:
1. It is checked that the printer is available, i.e.
Printer is not already printing (PRINTER-NOT-IDLE)
and
Printer is logged on (VDU-ROP-PRINTER-MODE is AUTOMATIC)
or
Printrequest is received (Teleprinter)
or
Special handling printrequest is received.
If not then the procedure is terminated with cause PRINTER-NOT-AVAILABLE.
2. It is checked if there are any elements in the printerqueues (special handling printqueue)
by attempting to read from the queues. If not, then the procedure is terminated with
cause
NO-QUEUE-ENTRY (Ordinary)
NO-SH-QUEUE-ENTRY (Special Handling)
3. It is checked if the printout is allowed by doing CLASSIFICATION-CHECK, ref. sec. 3.3.7.4.
If not, then the procedure is terminated with cause:
PRINT-NOT-ALLOWED.
If this checking succeeds, then the printout is started and the state of the printer is set
to:
PRINTER-NOT-IDLE.
3.3.5 S̲e̲q̲u̲e̲n̲c̲e̲s̲
The processing in PIP is split into different print sequences reflecting the different functional
capabilities. Which sequence to be executed is determined by the entries in the printerqueues.
These are accessed via the QACCESS-monitor, ref. (22). On basis of the MTCB-index returned
on MTCB is read via the MTCB-monitor - ref. (20).
Depending upon what type of MTCB is read the different sequences is settled. These are described
in the following.
3.3.5.1 N̲a̲r̲r̲a̲t̲i̲v̲e̲ ̲M̲e̲s̲s̲a̲g̲e̲s̲
Printout of narrative messages is started by enqueing a REAL MTCB into the PIP-queues.ref(11),
sec. 7.1.1, case 5,6,12
The classification of the message is found in the MTCB (.CLASS). After having done CLASSIFICATION
CHECK (3.3.7.4) and formatting of HEADER and TAIL (ref. 3.4.3.1) then message file is opened
via the MTCB-monitor.
First part of the message is then read. This part contains a BINARY HEADER, ref. (11), sec.
10.1.2.1, which is not going to be printed. It holds the acceptance DTG used in the printing
of ACCEPTANCE & RETRIEVAL-DTG later on, ref. 3.4.3.2. It also holds the offset to the ANO-list,
which is neither to be printed.
A refference to the MESSAGE ID, which is a part of the SIGNAL-HEADER, ref. (11) sec. 10.4.2.2,
is fetched from binary header.
Via this refference message-id is stored to be used in the MESSAGE JOURNAL-LOG (PRINT-STARTED)
ref (17).
Now the printing can be done. This is started on a new page using the standard routines.
Reading next part of message file inte TEXT-BUFFER (ref. 3.3.7.1) is alternated with printing
the content (ref. 3.3.7.3).
Before each printoperation, it is tested, in case that a HDB-file is used, that the content
still exists. Ref (24).
When the whole message has been printed ACCEPTANCE & RETRIEVAL-DTG is formatted and printed
at the bottom of the last page, ref. 3.4.3.2. Retrieval DTG is fetched from the REAL ̲MTCB
(.WORD6).
3.3.5.2 T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲ ̲L̲o̲g̲
This sequence is started by an PSEUDO MTCB catogory/subcategory = 3/1 in the LP-queue. ref
(11) fig. 7.1.2.3-1.
This MTCB contains information of eventype, number of affected terminal and USER-ID of involved
user. ref(16).
These items are formatted as stated in sec. 3.4.3.5 - Transaction Log Format. The principles
specified in sec. 3.3.7.2 is used. The DTG is fetched from QACCESS time tag.
No CLASSIFICATION-CHECK is done.
3.3.5.3 M̲e̲s̲s̲a̲g̲e̲ ̲J̲o̲u̲r̲n̲a̲l̲
This sequence is started by a PSEUDO MTCB entry in the LP-queue of category/subcategory=
3/2. ref (11), fig. 7.1.2.3-3.
The classification 'NATO UNCLASSIFIED' is used at CLASSIFICATION CHECK and at HEADER of TAIL-formatting.
The Message Journal File (MJF), ref (11), sec. 11.11 is used to retrieve the earlier done
loggings (MJF-records) from.
The MTCB contains the number of first and last record in the MJF-file, that is to be read,
edit and printed. The records are read into a buffer MESSAGE-JOURNAL-BUFFER (MJB) and formatted
into the TEXT-BUFFER in one operation. This will ensure that the MJB-buffer can be used as
common buffer for all printers.
Only loggings of type 'Message printout strated' is printed.
3.3.5.4 M̲e̲s̲s̲a̲g̲e̲ ̲L̲o̲g̲
This printout sequence is stared by a PSEUDO MTCB entry in the LP-queue of category/subcategory
= 3/3. ref. (11), fig. 7.1.2.3.5.
The classification 'NATO UNCLASSIFIED' is used at CLASSIFICATION-CHECK and at HEADER and
TAIL-formatting.
The Message Log File (MLF), ref (26), is used to retrieve the logging records from.
The MTCB contains the number of records in the file. All these records are read and edit
in accordance to the layout specified in 3.4.3.4. The records are read into a specific buffer
MESSAGE-LOG-BUFFER (MLB) and edit into the TEXT-BUFFER (ref. 3.8.3) in one operation. This
will ensure that the MLB-buffer can be used as common buffer for all printers.
When printout is finished the MESSAGE-LOG-FLAG ref(11), sec. 5.1. is cleared, to enable Message
Log printout at other printers.
3.3.5.5 C̲o̲o̲r̲d̲i̲n̲a̲t̲i̲o̲n̲ ̲P̲r̲i̲n̲t̲o̲u̲t̲
This printout secquence is started by a PSEUDO MTCB of category/subcategory = 4/0 in the
LP-queue. Ref (11), fig. 7.1.2.4-1.
This MTCB contains a MTCB-index referring to a REAL MTCB, which points to a message, that
is in the preparation pool. This message is printed. Before the message text (ref. 3.4.3.1),
a COORDINATORS ̲IDENTITY-text is printed and afterwards a ORIGINATORS ̲REMARK-text is printed
(ref. 3.4.3.3). These texts are read from the MTCB-File associated with the PSEUDO MTCB.
Offsets, lengths of the texts are contained in the PSDEUDO MTCB.
The classification code used at CLASSIFICATION ̲CHECK and formatting of HEADER & TAIL is fetched
from the REAL.MTCB (.CLASS).
When printout is finished the PSEUDO ̲MTCB is updated. (.BYTE1 is sat to 1̲).…86…W …02…
…02… …02… …02…
3.3.5.6 R̲e̲m̲a̲r̲k̲s̲
This printout sequence is started by a PSEUDO-MTCB entry of category = 4/2 in the LP-queue,
ref(11), fig. 7.1.2.4-3.
The content of the MTCB-file, which the PSEUDO-MTCB is pointing at, is printed only using
PAGE-FORMAT. ref(3.4.3.1).
No CLASSIFICATION-CHECK is done.
3.3.5.7. M̲e̲s̲s̲a̲g̲e̲s̲ ̲i̲n̲ ̲P̲r̲e̲p̲a̲r̲a̲t̲i̲o̲n̲.̲
This printout is started by a PSEUDO MTCB entry of category/subcategory = 4/5 in the Lp-queue.
ref.(11), fig 7.1.2.4-6.
This MTCB contains a MTCB-index of a REAL MTCB, pointing on a message in the preparation
pool. This message is printed in the ordinary Narrative Message format ref. 3.3.5.1.
No ACCEPTANCE/RETRIEVAL DTG is printed
The classification code used at CLASSIFICATION-TEST and formatting of HEADER & TAIL is fetched
from the REAL MTCB (CLASS).
When printout is finished STATUS OF MESSAGE ref.(11) sec. 7.1.1.1., case 1 is updated to
'IN PREPARATION POOL'. I.e. right byte of WORD7 in the REAL MTCB is sat to O.
3.3.5.8. S̲p̲e̲c̲i̲a̲l̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲P̲r̲i̲n̲t̲o̲u̲t̲.̲
This printout sequence is started by an entry in the special handling gueue and a special
handling print-request. ref. sec. 3.3.3.4.
The sequence is passed just as described in sec. 3.3.5.1. - Narrative Messages with the following
modifications.
After printout is finished the TEXT-BUFFER used is cleared, i.e. overwritten with spaces.
At printing of ACCEPTANCE & RETRIEVAL-DTG the RETRIEVAL-DTG is cleared (does not exist).
3.3.6. S̲e̲q̲u̲e̲n̲c̲e̲ ̲F̲i̲n̲i̲s̲h̲
When a sequence is terminated-printing refused or finished - then some common actions has
to be done.
If the printout was completed then the queueelement read at start must be deleted. In case
of special handling printout a PURGE-flag is returned. The MTCB is enqueued to PURGE. ref.
(21).
All files used must be closed/released.
If the sequence was initialized by a print request (ref. 3.3.3.(3+4)) then an AMOS-answer
with proper completion code shall be returned.
Printout of next sequence shall be attempted
3.3.7. C̲o̲m̲m̲o̲n̲ ̲R̲o̲u̲t̲i̲o̲n̲e̲s̲
3.3.7.1. R̲e̲a̲d̲i̲n̲g̲ ̲o̲f̲ ̲F̲i̲l̲e̲s̲
This section describes the principles used when reading from the file-system (FMS-ref.(4))
into the TEXT ̲BUFFER colocated to each printer.
The files are always read in a sequential manner and in sections as close to the size of
TEXT-BUFFER as possible in order to minimize the number of fileaccesses. The scheme used
is illustrated in fig. 3.3.7.
The variables that is used to manage this is defined in the following:
FILE-BASE: Startadress of logical file
(offset in database)
FILE-OFFSET: Offset in logical file -
where to start readoperation
FILE-END: Length of logical file.
READ-OFFSET:Startaddress in TEXT-BUFFFER
of "read in"-data. This will normally be o.
READ-END: Stopadress in TEXT-BUFFER of "read in"-data.
BYTE-COUNT: Number of transferred bytes.
After a readoperation have been done the next one is prepared by:
Next FILE-OFFSET:= Old FILE ̲OFFSET + BYTE ̲COUNT
3.3.7.2. F̲o̲r̲m̲a̲t̲t̲i̲n̲g̲ ̲o̲f̲ ̲T̲E̲X̲T̲-̲B̲U̲F̲F̲E̲R̲
This section describes the principles used at those occacions where data has to be formatted
before they are printed from the TEXT-BUFFER as.
ACCEPTANCE & RETRIEVAL-DTG ref. 3.3.5.1.
TRANSACTION-LOG ref. 3.3.5.2.
MESSAGE-JOORNAL-LOG ref. 3.3.5.3.
MESSAGE-LOG ref. 3.3.5.4.
At these cases, data items are to be collected from different places and may be edited before
they can be put together in a record (one or more lines) in the TEXT-BUFFER, ready to be
printed. A 'EDIT RECORD' is used as a stage between the enterring in the buffer. When this
is filled, it is transferred to the TEXT-BUFFER.
In this way the buffer can be filled with several records in an easy controlled mannner This
is illustrated in fig. 3.3.7.2.
3.3.7.3. P̲r̲i̲n̲t̲i̲n̲g̲ ̲o̲f̲ ̲T̲E̲X̲T̲-̲B̲U̲F̲F̲E̲R̲
This section describes the principles used when printing from the TEXT-BUFFER.
The buffer has been filled either by reading data directly (ref.3.3.7.1.) or when records
was edited (ref. 3.3.7.2.) into it. The data is formatted ready to be printed except for
PAGE-FORMATTING (ref. 3.4.3.1.).
To do this it is necessary to keep track with how many lines of a page, that have been printed.
This is done by counting the "new line"-caracters. If this indicates that a PAGE-EJECT shall
take place, then the printout of TEXT-BUFFER is split up in different printout operations.
Between these, other printouts, from TAIL & HEADER-BUFFER implementing the page format, is
done. The scheme used is illustrated in fig. 3.3.7.3.
The variables that is used to manage this scheme is defined and explained in the following.:
READ-OFFSET: Startaddress of first printout operation
ref. 3.3.7.1. + 3.3.7.2.
READ-END: Stopaddress of last printout operation.
ref. 3.3.7.1. + 3.3.7.2.
PRINT-OFFSET: Startaddress of a printout operation
PRINT-END: Stopaddress of a printout operation
(determined when counting lines.)
LINE-COUNT: Number of lines already printed on a
page. Equal to the number of new line
characters.
After one printoperation have been done the next one is prepared by.
Next PRINT-OFFSET= OLD PRINT-END:
3.3.7.4. C̲h̲e̲c̲k̲ ̲o̲f̲ ̲C̲l̲a̲s̲s̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Before a printsequence is started it is tested if the classification of the operator at
the printer is high enough. This classification is fetched from the terminal control block
TCB, ref.(11), sec. 7.2.
This classification shall at least be as big as that one associated with the printsequence
( e.g. message classification). If this check fails the following is done.
1. A pseudo MTCB ref.(11), fig. 7.1.2.14-4 with reason 'Terminal has too low classification'
is created via MTCB-monitor and enquenced via QACCESS into the supervisor DT-queue.
2. Message Journal Log: 'Delivered to DT-queue' ref. (17)
3. Completion 'Classification Mismatch' return upon a possible PRINT-REQUEST ref. 3.3.3.(3
+ 4).
4. Printout sequence terminated with cause: PRINT-NOT-ALLOWED ref. 3.3.4.
3.3.8. E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲
Every errorcondition discovered by the PIP-process is reported by call of MON(ERROR) ref.(1).
If PIP is allowed to continue processing as in the case of LOCAL-FIX-UP and IGNORE errors,
then the following actions is taken.
If the error was a resource error (# 907, # 801, # 805) or printer timeout (# 607), then
the processing for the affected printer is delayed (1 minute). This delay is implemented
by use of the TIMER-PROCESS ref.(25).
A 'clean up' of the processing is done. I.e. the situation, as it was before the printsequence
going on was started, is restablished.
If special handling printout was going on, then a SH-timeout situation is simulated, and
SH-TIMEOUT completion is returned ref. 3.3.3.5.
After runout of delay, the processing is resumed. The erroneous printsequence will be restarted
from the beginning. In case of printer timeout, a 'clean printer'- procedure (ref. 3.3.2.)
will be executed before restart.
3.3.9. C̲h̲e̲c̲k̲p̲o̲i̲n̲t̲i̲n̲g̲
The PIP-process does the folowing checkpointing by use of the CHECKPOINT-MECHANISM. ref.(12).
1. When NARRATIVE MESSAGE printout is finished, deletion from printerqueue is checkpointed.
2. When enquening to DT is done (ref. 3.3.7.4.) then this event is checkpointed.
3. When a special handling message is enqueued to PURGE, ref. (3.3.6.) then this event is
checkpointed. (Transferring from printerqueue)
4. Upon each termination of a print sequence, the last used page number is checkpointed
5. At PIP-initializing point, and after a printer timeout ref. 3.3.8, then the last used
page number is retrieved from the earlier checkpoints.
3.4. D̲a̲t̲a̲ ̲ ̲O̲r̲g̲a̲n̲i̲z̲a̲t̲i̲o̲n̲
This section deals with FIKS data structures used by the PIP-process.
These can be devided into two categories, -external data, which is defined and described
in FIKSDATA REFFERENCE MANUAL, ref.(11), and internal data, which is only used by the PIP-process.
3.4.1. E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲s̲t̲r̲u̲c̲t̲u̲r̲e̲s̲
The following external structures shall be known by the maintainer of PIP.
1. System software structures. -AMOS events, Io-user-data structures. ref. (1) + (2).
2. FIKS QUEUES, ref. (11), sec.6.
3. MTCB, FIKS message control blocks, ref. (11) sec. 7.1.
4 TCB, Terminal Control Blocks, ref. (11) sec. 7.2.
5. FIKS Message Format ref.(11), sec. 10
6. Checkpoint AMOS-messages, ref. (11)
7. FIKS File Layout. HDB AND PDB-files,
Message Journal File, ref.(11), sec. 11.1.2., 11.2, 11.11.
Message Log File, ref. (26) + ref (11), sec. 11.1.2.5
3.4.2. I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲s̲
Internal data structures in the PIP-process is only concerned with the PIP process data.
For each logical,printer in the Node/MEDE, there is a PRINTER-RECORD. This contains data
items that is exclusively used at the processing of a single printer. One area, independent
of number of printers, is used to manage the service of different printers or as buffers
common for all printers. The content and definition of the items is described where they
are accessed in section 3 - Processing. It is noticed that with this structurre, the total
size of the PIP-process area will depend on which Node/MEDE-version it is.
3.4.3. P̲r̲i̲n̲t̲o̲u̲t̲ ̲F̲o̲r̲m̲a̲t̲s̲
In principle every printout is done line by line on an endless paper roll. When data leaves
the PIP-process for being printed it must obey the following line format.
ST BC TEXT NL
where:
ST = start byte character = #1E
BC = byte count of textstring +1
NL = new line character = #0A
The messages/remarks sent to PIP for printout will obey this format i.e. no line formatting
is necessary when printing these. When PIP generates textstrings by itself then this line
formatting must be done.
3.4.3.1 P̲a̲g̲e̲ ̲F̲o̲r̲m̲a̲t̲
PIP is responsible for formatting of every printout into pages. This shall be done using
the format defined in fig. 3.4.3.1. As there is no form control or tabulate functions available,
the formatting must be done by keeping track of the linenumber and printerhead position (from
left most).
It is seen that 47 lines of printout form a page. This will with linespace 1 1/2 correspond
to A4-format. 34 lines may contain textinformation (message text).
Each page is started with a HEADER. This contains the PAGE-ID, composed of the TERMINAL-ID
and a pagenumber. This will be independent of any system initializing, switchover, errorcondition
etc. and forever increasing.
3.4.3.2 A̲c̲c̲e̲p̲t̲a̲n̲c̲e̲ ̲&̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲-̲D̲T̲G̲ ̲F̲o̲r̲m̲a̲t̲
In case of narrative printout acceptance and retrieval time shall be printed on buttom of
the last page ref. 3.3.5.1. This shall be done using the following format.
Message Text (last page)
line no position
o 17
36 ACCEPTANCE TIME: DDHHMMZ MMM YY
37 RETRIEVAL TIME: DDHHMMZ MMM YY
Text strings Edit DTG's
The format of the DTG's is that obtained from Convert DTG. ref (13).
3.4.3.3 C̲o̲o̲r̲d̲i̲n̲a̲t̲i̲o̲n̲ ̲P̲r̲i̲n̲t̲o̲u̲t̲ ̲F̲o̲r̲m̲a̲t̲
Refer to 3.3.5.5.
line no.
04 COORDINATORS ̲IDENTY ̲text
(one or more lines)
Empty line
Message text
Empty line
ORIGINATOR REMARKS
(one or more lines)
3.4.3.4 M̲e̲s̲s̲a̲g̲e̲ ̲L̲o̲g̲ ̲F̲o̲r̲m̲a̲t̲
Refer to 3.3.5.4.
line no. position
0 18 26 41 47
04 MESSAGE LOG
06 RETRIEVAL-DTG MSG-ID..SIC..SIC..SIC..PREC...CLASS
08 DDHHMMZ.MMM.YY XXX999..XXX..XXX..XXX..X......XXXXX
09 DDHHMMZ.MMM.YY XXX999..XXX..XXX..XXX..X......XXXXX
DTG formatted via convert DTG.
Precedence code converted to ASCII-char.
Classification code translated to short Classification text (CLASS2).
3.4.3.5 T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲ ̲L̲o̲g̲ ̲F̲o̲r̲m̲a̲t̲
Refer to 3.3.5.2.
line no. Position
0 4 19 28 32
04 LOG.DDHHMMZ.MMM.YY.XXXXXXXX.TID.USID
05 LOG.DDHHMMZ.MMM.YY.XXXXXXXX.TID.USID
DTG formatted
via Convert DTG.
Eventtype translated.
1: LOGON..S
2: LOGON..U
3: LOGOFF.S
4: LOGOFF.U
5: SECINT.U
Terminal ID
User ID
3.4.3.6 M̲e̲s̲s̲a̲g̲e̲ ̲J̲o̲u̲r̲n̲a̲l̲ ̲L̲o̲g̲ ̲F̲o̲r̲m̲a̲t̲
Refer for 3.3.5.3.
line no. position
0
04 JOUR.DDHHMMZ.MMM.YY.TEXT.MSG-ID.TID
05 JOUR.DDHHMMZ.MMM.YY.TEXT.MSG-ID.TID
1 2 3 4 5
1) Fixed test
2) DTG formatted via Convert DTG
3) Translation of logging type code ref. (17)
1. MERE, Message released
2. MDTQ, Message delivered to Terminal queue
3. MDDT, Message delivered to DT-queue
4. RQDP, Retrieve request for display
5. RQPR, Retrieve request for printout
6. RQDB, Retrieve request for distribution
7. DIRM, Distribution of retrieved message
8. RQRA, Retrieve request for readdressing
9. SHDT, SH-message delivered to terminal queue
10. PRNT, Message print out started.
4) Message ID
5) Terminal ID
3.5 S̲t̲o̲r̲a̲g̲e̲ ̲A̲l̲l̲o̲c̲a̲t̲i̲o̲n̲
P̲r̲o̲g̲r̲a̲m̲ ̲S̲i̲z̲e̲
The size of the PIP-program part depends sligthly on the number of printers to be served.
For an average Node/MEDE the memory claim is about
2800 words.
P̲r̲o̲c̲e̲s̲s̲ ̲S̲i̲z̲e̲
The size of the PIP-process part consist of two parts. One fixed part containing the data
common for all printers and one variable part proportional with the number of printers installed
at the specific Node/MEDE.
The memory claim is approcimately given by
1080 + No-of-printers x 485 words.
3.6 P̲e̲r̲f̲o̲r̲m̲a̲n̲c̲e̲ ̲C̲h̲a̲r̲a̲c̲t̲e̲r̲i̲s̲t̲i̲c̲s̲
The performance of the PIP-process, i.e. its ability to printout messages, is primary limited
by the speed of the printers (low level speed output). Therefore no special considerations
have been done about the performance characteristics.
It has been noticed while testing, that the CPU-time consumption done by the PIP-process
is not very much compared with the rest of the processes in the FIKS-system.
3.7 L̲i̲m̲i̲t̲a̲t̲i̲o̲n̲s̲
Depending upon which Node/MEDE the PIP-process is generated for, it is only able to handle
a limited number of printers.
Below is a list of these:
Node/MEDE Max. no. of printer
A 13
B 12
E 26
F 27
H 17
K 25
L 18
N 9
By a easy made modification of the PIP-process it will be able to handle until 30 printers.
Exspanding the numbers further will cost a little more effort.
3.8 E̲r̲r̲o̲r̲ ̲L̲o̲c̲a̲t̲i̲o̲n̲s̲
L̲A̲B̲E̲L̲ ̲ ̲ ̲ ̲ ̲ ̲R̲a̲i̲s̲e̲n̲ ̲b̲y̲ ̲(̲c̲a̲l̲l̲ ̲o̲f̲)̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲C̲o̲m̲m̲e̲n̲t̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
0 Inconsistence in date Error code will be #7FFF
(should never happen)
11 MON (IO,WAITOPERATIONS) At error code #0607 the print sequence going on is restarted
after 1 minuter
12 Completion error from
TIMER-process
21 MON (IO, GETROOT) MOVHEAD
22 MON (IO, GETROOT) FIXHEAD
23 MON (LCFH) Creation of Log lines to the TDX-system
24 'Cleaning up printer' In initializing phase and at local fixup after printer timeout
(#0607)
51 MON (TESTHDB)
59 MON (LOG-JOURNAL)
61 MON (IO, INITREADBYTES) From File-system - messages + remarks
62 MON (IO, READBYTES) From File-system - message Log + journal
71 MON (IO, INITAPPENDBYTES) To TDX-system
91 MON (Convert DTG)
100 MON (MTCB, INIT)
101 MON (MTCB, CREATE) When enqueing to DT (1)
102 MON (MTCB, RESERVE) General
103 MON (MTCB, RESERVE) Of messages
104 MON (MTCB, RELEASE) General
105 MON (MTCB, RELEASE) Of messages
106 MON (MTCB, WRITE) At coordination printout + enqueing to DT
107 MON (MTCB, WRITE) At list of prepared messages
L̲A̲B̲E̲L̲ ̲ ̲ ̲ ̲ ̲ ̲R̲a̲i̲s̲e̲n̲ ̲b̲y̲ ̲(̲c̲a̲l̲l̲ ̲o̲f̲)̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲C̲o̲m̲m̲e̲n̲t̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
108 MON (MTCB, READ)
109 MON (MTCB, GETFILE) Of message
111 MON (QACCESS, READ-GROUP)
112 MON (QACC.,READ-NON-DESTR) Specat handling
115 MON (QACCESS, DELETE)
116 MON (QACCESS, WRITE) To DT-queue (1)
117 MON (QACCESS, WRITE) To PURGE-queue (1)
121 MON (REGION, RCOPYN) CLASS 1
123 MON (REGION, RCOPYN) CLASS 2
125 MON (IO, LOOKUP) MLF-file
126 MON (IO, LOOKUP) MJF-file
128 MON (IO, DISMANTLE) MLF + MJF-files
200 MON (MTCB, GETFILE) Of remarks
201 MON (MTCB, RELEASEFILE) Of messages
202 MON (MTCB, RELEASEFILE) Of remarks
221 MON (REGION, RENTER) Of CONFIG
222 MON (REGION, RLEAVE) Of CONFIG
223 MON (REGION, RPUT) Of CONFIG
N̲o̲t̲e̲:
When it is possible to locate the error to a specific printer, it is done by adding the logical
printer number muliplied by 1000 to the error label. E.g. error label 7108 (decimal value)
means:
Error after call of MON(MTCB,READ) when serving printer No. 7
(1) At errors #0801, #0805, #0907 (resource errors, local fixup) the following is done. Processing
for the affected printer is suspended in 1 minute.Then the processing is resumed from
the point where the error occured.
3.9 L̲i̲s̲t̲i̲n̲g̲ ̲R̲e̲f̲f̲e̲r̲e̲n̲c̲e̲
Source listings and linker lists may be obtained from FIXLIB. Ref. to SCCLDD.
4. Q̲U̲A̲L̲I̲T̲Y̲ ̲A̲S̲S̲U̲R̲A̲N̲C̲E̲
4.1 Q̲u̲a̲l̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲ ̲T̲e̲s̲t̲s̲
The PIP has been module tested.
Refer to TEST REPORT FOR PIP, FIX/1203/TRP/0022.
At the test 'Dual N/M Integration' focusing on special the PIP-process was done.
Refer to Test Report for I150 Dual N/M Integration, FIX/1000/TRP/0006.
4.2 O̲t̲h̲e̲r̲ ̲Q̲u̲a̲l̲i̲t̲y̲ ̲A̲s̲s̲u̲r̲a̲n̲c̲e̲ ̲P̲r̲o̲v̲i̲s̲i̲o̲n̲s̲
In many tests done in connection with the FIKS-system printouts have been done. In this way
the PIP-process has proven that it is capable to fulfill its functions.
5. P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲ ̲F̲O̲R̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
Do as stated in file 'INFORMATION' in the last delivery of the PIP-directory to FIXLIB.
6. N̲O̲T̲E̲S̲
6.1 M̲o̲d̲u̲l̲e̲ ̲G̲e̲n̲e̲r̲a̲t̲i̲o̲n̲
The PIP is compiled as a single process (one mainmodule) by means of the SWELL compiler CSS/415
and linked by means of the AMOS Linker CSS/416, Refer to:
SWELL 80, Reference Manual,
CSS/415/RFM/0002
CR80 AMOS, SWELL Compiler, Users Manual,
CSS/415/USM/0047
CR80 AMOS, Linker, Reference Manual,
CSS/416/RFM/0003
CR80 AMOS, Linker, Users Manual,
CSS/416/USM/0048.
By using the commond files as stated in the INFORMATION-file in the last FIXLIB-delivery
of PIP it is possible to generate all or a single PIP-Node/MEDE-version.
6.2 N̲o̲d̲e̲/̲M̲E̲D̲E̲-̲v̲e̲r̲s̲i̲o̲n̲s̲
The only thing which distinguish one Node/MEDE-version from another is the number of printers
to be served.
The different PIP-processes are compiled with the same source input files, except for one
file which only contains the Node/MEDE ID declaration. In this way an updating of PIP shall
be done only at one place independent of version.
The different PIP-processes are linked with the same parameters except for those declaring
the use of IO-resources. Those are collected in a separate Node/MEDE linker parameterfile.
The coherence between these and the number of printers (NOP) is given by:
FILE ̲DESCRIPTORS (FDS) = NOP * 2.5 + 6
IO ̲CONTROL ̲BLOCKS (IOCBS) = NOP
TRANSFER ̲ELEMENTS (TLES) = NOP * 4
MESSAGES (MESSAGES) = NOP * 2
7. A̲P̲P̲E̲N̲D̲I̲C̲E̲S̲
None.