top - download
⟦9cfd6038c⟧ Wang Wps File
Length: 70366 (0x112de)
Types: Wang Wps File
Notes: CPS/SDS/038
Names: »1657A «
Derivation
└─⟦83a6a53dc⟧ Bits:30006111 8" Wang WCS floppy, CR 0176A
└─ ⟦this⟧ »1657A «
WangText
B…06…B…07…A…0d…A
@…08…@…0e…@ @…07…?…08…?…0a…?…0b…?…00…?…05…>…08…>…0a…>…0e…>…01…>…05…=…08…=…0e…=…00…= =…06…<…08…<…0b…<…0e…<…02…<…07…;…09…;…0c…;…0e…;…01…; :…0a…:…0e…:…01…:…05…9…09…9…0b…9…0e…9…01……86…1
…02…
…02…
…02…
…02…CPS/SDS/038
…02…JHH/820514…02……02…
MSO VDU
DETAILED
DESIGN
SPECIFICATION…02……02…CAMPS
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 M̲e̲s̲s̲a̲g̲e̲ ̲S̲e̲r̲v̲i̲c̲e̲ ̲V̲D̲U̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲(̲S̲E̲V̲C̲O̲)̲
This subpackage is the controlling subpackage within
the package. The control is exercised by issue of commands
and reception of responses.
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 subpackage contains the following functions:
- Initialization
- TEMCO Command Processing
- Flash Item Control
- Timer Event Processing
- VDU Header Control
- SEFCO Control
- Error Reporting
Figure 4.2.1.1-1 presents the functional breakdown.
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲1̲.̲1̲-̲1̲
4.2.1.1.1 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲(̲1̲.̲0̲)̲
a) Initialize MSOS Data (1.1)
Performs initialization of common data for the
subpackages within MSOS.
b) Initialize SEVCO Data (1.2)
Performs initialization of common data for the
modules within the SEVCO subpackage.
4.2.1.1.2 T̲E̲M̲C̲O̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲
a) Process START USER CMD (2.1)
This command is received after a successful SIGN
ON procedure has taken place and SEVCO takes action
and starts SEFCO.
b) Process STOP USER CMD (2.2)
This command is received after SIGN OFF and SEVCO
takes action and stops SEFCO.
c) Process BLOCK TERMINAL CMD (2.3)
This command is received when the terminal has
been blocked (by supervisor or as a result of a
failed SIGN ON procedure or security interrogation)
and SEVCO informs SEFCO.
d) Process CLOSE DOWN CMD (2.4)
This command informs MSOS that a system close down
procedure is to take place and SEVCO informs SEFCO.
e) Send Response to TEMCO (2.5)
For each TEMCO command a corresponding command
to SEFCO exists and to each SEFCO command a corresponding
completion response exists. When SEVCO has received
the expected completion response from SEFCO an
acknowledge to the TEMCO command is sent to TEMCO.
4.2.1.1.3 F̲l̲a̲s̲h̲ ̲I̲t̲e̲m̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲3̲.̲0̲)̲
a) I̲n̲t̲e̲r̲p̲r̲e̲t̲ ̲F̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲1̲)̲
Analyses the flash notification from the common
CMD queue to determine the precedence and which
queue the flash item is in (Incoming- or Outgoing-
queue).
Flash queue fields update is started.
b) I̲n̲t̲e̲r̲p̲r̲e̲t̲ ̲F̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲2̲)̲
Analyses the flash-notification from the command
queue to determine the precedence and which queue
the flash item is in (Incoming- or Outgoing- queue).
Flash queue fields update is started.
c) I̲n̲t̲e̲r̲p̲r̲e̲t̲ ̲A̲n̲t̲i̲f̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲3̲)̲
Analyses the antiflash notification from the command
queue to determine the precedence and in which
queue the flash item was in.
Flash queue fields update is started.
d) D̲i̲s̲t̲r̲i̲b̲u̲t̲e̲ ̲F̲l̲a̲s̲h̲ ̲A̲n̲t̲i̲f̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲4̲)̲
Flash notification from common command queue and
antiflash notification from command queue is distributed
to up to 3 other MSO positions.
4.2.1.1.4 T̲i̲m̲e̲r̲s̲ ̲E̲v̲e̲n̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲4̲.̲0̲)̲
a) Interpret Timeout (4.1)
Analyses timeout to determine whether it is a periodic
timeout or other timeouts.
4.2.1.1.5 V̲D̲U̲ ̲H̲e̲a̲d̲e̲r̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲5̲.̲0̲)̲
a) Update Date/Time Field (5.1)
Maintains the Date/Time Field in the VDU-header
when a periodic timeout occurs.
b) PERIODIC Q-Status UPDATE (5.2)
Maintains the queue length fields in the VDU-header.
c) FLASH ̲Q ̲Status Update (5.3)
Updates the queue status line when flash items
arrive or returned to common queues.
d) Invert and Bell
Inverts the queue field in which the flash item
is in and rings the bell.
e) Display VDU-Header (5.3)
Updates the VDU-header display.
4.2.1.1.6 S̲E̲F̲C̲O̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲6̲.̲0̲)̲
a) Send CMD to SEFCO (6.1)
Controls SEFCO by sending commands.
b) Process Command Completion from SEFCO (6.2)
Interprets and reacts upon acknowledge from SEFCO.
c) Process MSO Mode Change (6.3)
Reacts upon information from SEFCO that the current
user mode (i.e. incoming service, outgoing service,
response) has changed.
4.2.1.1.7 E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲i̲n̲g̲ ̲(̲7̲.̲0̲)̲
a) Queue Error Reporting (7.1)
Reports to SSC that an unexpected Queue element
has been received.
b) Internal Error Handling (7.2)
Reports to SSC that an unexpected response has
been received from SEFCO or from monitor procedures
called.
4.2.1.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
The software structure is shown on figure 4.2.1.2-1.
SEVCO consists of one coroutine containing 7 modules
and 14 common procedures.
4.2.1.2.1 S̲E̲V̲C̲O̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲1̲.̲0̲)̲
This is the module containing the mainloop of SEVCO.
The module contains the MSOS initialization functions,
receives and processes items arriving in the MSOS ̲CMDQ,
and MSOS ̲CCMDQ, receives and reacts upon INIT ̲SEFCO
response, MSOS and reports queue errors and internal
errors to SSC.
The following component procedure is contained in this
module:
a) MSOS Init
Initializes the MSOS common data and SEVCO data.
4.2.1.2.2 T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲2̲.̲0̲)̲
This module analyses TEMCO commands, performs start
user actions (after sign on), sends commands to SEFCO
and reports reception of unexpected queue elements
to SSC.
The following component procedures are contained in
this module:
a) MSO Connection (2.1)
Reads the START ̲CMD queue elements buffer and transfers
the data to MSO ̲INIT ̲AREA.
Issues a call to TMP in order to get terminal profile,
and transfers the data to MSO ̲INIT ̲AREA.
b) Init Terminal (2.2)
Open for message stream between VDU and process.
c) Request Periodic Timeout (2.3)
Requests timer monitor to send timeout every minute.
4.2.1.2.3 F̲l̲a̲s̲h̲ ̲Q̲u̲e̲u̲e̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲(̲3̲.̲0̲)̲
This module interprets the flash notification to determine
which queue the flash item has arrived at and the precedence
of the item (superflash and flash), distributes flash
notification to up to 3 other MSO positions, updates
VDU header queue fields, inverts appropriate flash
queue fields, rings the bell displays the VDU header
and reports reception of unexpected queue element in
the MSOS ̲CCMDQ.
4.2.1.2.4 T̲i̲m̲e̲r̲ ̲E̲v̲e̲n̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲4̲.̲0̲)̲
This module interprets the timeout to determine whether
it is a periodic- or other. For periodic timeouts the
date/time field and queue length fields in the VDU
header are updated and the VDU header displayed. If
unexpected queue elements are found this is reported
to SSC.
4.2.1.2.5 S̲E̲F̲C̲O̲ ̲R̲e̲s̲p̲o̲n̲s̲e̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲5̲.̲0̲)̲
This module reacts upon SEFCO responses and sends acknowledge
of TEMCO commands to TEMCO and reports queue error
and internal error to SSC. The follwoing module component
is contained in this module:
The following module components are contained in this
module
a) Remove VDU
Closes message stream between VDU and process
b) Cancel Call
Cancels outstanding system calls.
4.2.1.2.6 I̲n̲t̲e̲r̲n̲a̲l̲ ̲F̲l̲a̲s̲h̲ ̲(̲6̲.̲0̲)̲
This module analyses flash notification received in
the command queue and sets up the condition to call
upon common procedures in order to update queue status
lines and display the updated VDU header. Queue errors
are reported to SSC.
4.2.1.2.7 I̲n̲t̲e̲r̲n̲a̲l̲ ̲A̲n̲t̲i̲f̲l̲a̲s̲h̲ ̲(̲7̲.̲0̲)
This module analyses antiflash notification, (which
is received in the command queue) and sets up the condition
to call upon common procedures in order to update queue
status line and display the updated VDU header.
Queue errors are reported to SSC.
4.2.1.2.8 C̲o̲m̲m̲o̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲ ̲
For description of the 14 common procedures refer section
4.2.1.6.
Figure 4.2.1.2-1
4.2.1.3 D̲a̲t̲a̲f̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲ ̲W̲i̲t̲h̲i̲n̲ ̲S̲E̲V̲C̲O̲
An overview of the dataflow through SEVCO is shown
on diagrams 4.2.1.3-1 to 4.
The call structure within SEVCO is shown on figure
4.2.1.3-5 identifying all calls between modules and
common procedures.
Fig. 4.2.1.3-1 to -5
4.2.1.4 S̲E̲V̲C̲O̲ ̲M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.1.4.1 S̲E̲V̲C̲O̲ ̲C̲o̲n̲t̲r̲o̲l̲
4.2.1.4.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module is the controlling module within the subpackage.
It interprets the startup parameters delivered in the
variable START ̲UP when the subprocess is started and
activates initialization or restart accordingly. It
initializes the MSOS data areas, sends a initialize
command to SEFCO, and when a completion code is received
from SEFCO it initiates reception from the MSOS ̲CMDQ
and MSOS ̲CCMDQ. It associates the reception from the
command queues to the operation semaphore MSOS ̲S1 and
waits for the semaphore. It analyses the input from
the semaphore to identify:
SSC-commands
Flash-Notification
Periodic timeouts
Antiflash Notificaton
SEFCO responses
and calls appropriate modules
4.2.1.4.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEVCO ̲Control
b) SEVCO ̲Control (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0-R7 Destroyed
4.2.1.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.1.4.1.3.1 M̲S̲O̲S̲ ̲I̲N̲I̲T̲
Initializes the MSOS-data areas and SEVCO-data areas.
4.2.1.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QELEMENT MAIN ̲TYPE refer CPS/DBD/001
SEVCO ̲CMD ̲TYPE refer 4.1.4
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
QEL ̲ATTRIBUTES refer CPS/DBD/001
QEL ̲REFERENCE refer CPS/BDB/001
IDENT ̲TYPE refer 4.1.4
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
INIT ̲SEFCO ̲CMD refer 4.1.4
INIT ̲SEFCO ̲CC refer 4.1.4
RESTART ̲SEFCO ̲CMD refer 4.1.4
RESTART ̲SEFCO ̲CC refer 4.1.4
CCMD ̲QEL ̲ATTR (m) refer 4.2.1.5
CMD ̲QEL ̲ATTR (m) refer 4.2.1.5
INT ̲ERROR ̲INF (m) refer 4.1.4
CCMD ̲QEL refer 4.2.1.5
CMD ̲QEL refer 4.2.1.5
START ̲FLAG refer 4.2.1.5
SEVCO ̲OP (m) refer 4.1.4
CMD ̲OP (m) refer 4.1.4
CCMD ̲OP (m) refer 4.1.4
MSOS ̲S1 (m) refer 4.1.4
BEGIN ̲FLAG (m) refer 4.2.1.5
CLOSE ̲DOWN ̲CC ̲FLAG refer 4.2.1.5
START ̲UP refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR.RESTART BOOLEAN
4.2.1.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The module performs the following tasks:
- Interprets the START ̲UP ̲ACTIVE ̲TYPE and sends a
INIT ̲SEFCO CMD or RESTART ̲SEFCO CMD accordingly.
- Initializes MSOS data- and SEVCO data areas.
- Sets up RECEIVE ̲FIRST ̲QEL call to MSOS ̲CMDQ, and
MSOS ̲CCMDQ, associates the call to MSOS ̲S1, signals
SEFCO and waits for MSOS ̲S1.
- Analyses input ot MSOS ̲CMDQ and MSOS ̲CCMDQ and
calls the modules:
TEMCO ̲CMD ̲PROCESSING
FLASH ̲QUEUE ̲MONITORING
TIMER ̲EVENT ̲PROCESSING
INTERNAL ̲FLASH
INTERNAL ̲ANTIFLASH
SEFCO ̲RESPONSE PROCESSING
accordingly
SEVCO CONTROL
START ̲UP EQ START? RESTART = FALSE
START ̲UP EQ RESTART? RESTART = TRUE
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)
M̲S̲O̲S̲ ̲I̲N̲I̲T̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲.̲3̲.̲1̲)̲
RESTART EQ TRUE? MOVE RESTART ̲SEFCO ̲CMD TO SEVCO ̲OP.CMD
MOVE INIT ̲SEFCO ̲CMD TO SEVCO ̲OP.CMD
S̲I̲G̲N̲A̲L̲ ̲S̲E̲F̲C̲O̲ ̲(̲ ̲4̲.̲2̲.̲1̲.̲6̲.̲1̲)̲
A̲W̲A̲I̲T̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲-̲2̲)
END SEVCO ̲CONTROL
Figure 4.2.1.4.1-1
AWAIT ̲INPUT
WAIT ̲OPSEM(MSOS ̲S1)(MSOS ̲OP): OK
CASE MSOS ̲OP.ID (1) OF IDENT ̲TYPE
SEFCO ̲IDENT? S̲E̲F̲C̲O̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲6̲)̲
FOREVER ̲LOOP:
WAIT ̲OPSEM(MSOS ̲S1)(MSOS ̲OP):OK
CASE MSOS ̲OP.ID ̲ID(1) OF IDENT ̲TYPE
CMDQ ̲IDENT? M̲S̲O̲S̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲-̲4̲)̲
CCMDQ ̲IDENT? M̲S̲O̲S̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲-̲3̲)
SEFCO ̲IDENT? S̲E̲F̲C̲O̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
CLOSE ̲DOWN ̲CC ̲FLAG EQ TRUE? EXIT FOREVER ̲LOOP
END FOREVER ̲LOOP
CLOSE ̲LOOP
WAIT ̲OPSEM(MSOS ̲S1)(MSOS ̲OP):OK
END CLOSE ̲LOOP
END AWAIT ̲INPUT
Figure 4.2.1.4.1-2
MSOS ̲CCMD ̲QEL ̲PROCESSING
CASE WAITSYS ̲CALL(CCMD ̲OP)(CCMD ̲QEL ̲ATTR, SUBQUEUE,
(CCMD ̲QEL,CC):ERROR ̲OK
ERROR? ANALYSE ̲ERROR(CC,0)
OK? CASE CCMD ̲QEL ̲ATTR.HEADER.MAINTYPE OF QELEMENT
MAIN ̲TYPE
FLASH
NOTIFICATION? F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲M̲O̲N̲I̲T̲O̲-̲
R̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲3̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END CASE
END MSOS ̲CCMD ̲QEL ̲PROCESSING
Figure 4.2.1.4.1-3
MSOS ̲CMD ̲QEL ̲PROCESSING
CASE WAIT ̲SYSCALL(CMD ̲OP)(CMD ̲QEL ̲ATTR,SUBQUEUE,CMD
̲QEL, CC): ERROR ̲OK
ERROR? ANALYSE ̲ERROR (CC,0)
OK? CASE CMD ̲QEL ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN
̲TYPE
SSC ̲CMD? T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲2̲)̲
FLASH -
NOTIFICATION? BEGIN FLAG
EQ = TRUE? I̲N̲T̲E̲R̲N̲A̲L̲ ̲F̲L̲A̲S̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲6̲)̲
D̲I̲S̲M̲ ̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
TEP ̲
INTERNAL? BEGIN ̲FLAG
EQ = TRUE? I̲N̲T̲E̲R̲N̲A̲L̲ ̲A̲N̲T̲I̲F̲L̲A̲S̲H̲
̲(̲4̲.̲2̲.̲1̲.̲4̲.̲7̲)̲
D̲I̲S̲M̲ ̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
TIMEOUT? BEGIN ̲FLAG
EQ = TRUE? TIMER ̲EVENT P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
̲(̲4̲.̲2̲.̲1̲.̲4̲.̲4̲)̲
D̲I̲S̲M̲ ̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
END CASE
END CASE
Figure 4.2.1.4.1-4
4.2.1.4.2 T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲
4.2.1.4.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module analyses TEMCO commands, performs necessary
actions and sends appropriate commands to SEFCO.
4.2.1.4.2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TEMCO ̲CMD ̲PROCESSING
b) TEMCO ̲CMD ̲PROCESSING (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0-R7 Destroyed
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.1.4.2.3.1 M̲S̲O̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲
Reads the USER ̲START ̲ID RECORD (received with START
̲USER cmd from TEMCO) on to INIT ̲AREA.
4.2.1.4.2.3.2 I̲N̲I̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
Opens for message stream between VDU and process.
4.2.1.4.2.3.3 R̲E̲Q̲U̲E̲S̲T̲ ̲P̲E̲R̲I̲O̲D̲I̲C̲ ̲T̲I̲M̲E̲O̲U̲T̲
Sets up 1 minute periodic timeout by request to Timer
Monitor.
4.2.1.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
REQUEST ̲TIME ̲RELATIVE ̲TYPE refer CPS/DBD/001
SSC ̲COMMAND ̲SUBTYPE refer CPS/DBD/001
QERROR ̲INF ̲TYPE refer 4.1.4
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
SEVCO ̲CMD ̲TYPE refer 4.1.4
QEL ̲ATTRIBUTES ̲TYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
USER ̲START ̲ID refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MSOS ̲S1 refer 4.1.4
MSO ̲INIT ̲AREA (m) refer 4.1.4
QERROR ̲INF (m) refer 4.1.4
TERMINAL ̲PROFILE refer CPS/DBD/001
USER ̲CONNECTION refer CPS/DBD/001
HEADER ̲IFCB refer 4.1.4
CMD ̲QEL ̲ATTR refer 4.2.1.5
SEVCO ̲OP (m) refer 4.1.4
BEGIN ̲FLAG (m) refer 4.2.1.5
MSOS ̲CMDQ refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR MSOS ̲REQUEST ̲TIMEOUT: REQUEST ̲TIME ̲RELATIVE
̲TYPE
VAR CONT ̲FLAG: BOOLEAN
CONST BUF ̲SIZE = SIZE (START ̲UP ̲BUFFER)
CONST TIME ̲Q = 1
4.2.1.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module performs the following tasks:
- Interprets TEMCO commands.
- Reads the terminal profile and sets up data from
it in MSOS common data area.
- Sets up user connection in MSO common data area.
- Initializes and displays VDU header
- Requests periodic 1 minute timeout
- Send appropriate commands to SEFCO
TEMCO ̲CMD ̲PROCESSING
SET BEGIN ̲FLAG = FALSE
CASE CMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF SSC ̲COMMAND ̲SUBTYPE
START ̲USER? SET BEGIN ̲FLAG = TRUE
M̲S̲O̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲2̲.̲3̲.̲1̲)̲
I̲N̲I̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲2̲.̲3̲.̲2̲)̲
G̲E̲T̲ ̲D̲A̲T̲E̲ ̲T̲I̲M̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲9̲)̲
Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲
R̲E̲Q̲U̲E̲S̲T̲ ̲P̲E̲R̲I̲O̲D̲I̲C̲ ̲T̲I̲M̲E̲O̲U̲T̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲2̲.̲3̲.̲3̲)̲
MOVE START ̲SEFCO ̲CMD TO SEVCO ̲OP.CMD
STOP ̲USER? MOVE ̲SEFCO ̲CMD TO SEVCO ̲OP.CMD
BLOCK ̲TERMINAL? MOVE BLOCK ̲SEFCO ̲CMC TO SEVCO ̲OP.CMD
CLOSE ̲DOWN? MOVE CLOSE ̲DOWN ̲SEFCO ̲CMD TO SEVCO
̲OP.CMD
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
SET CONT ̲FLAG = TRUE
END CASE
CONT FLAG = EQ TRUE?
S̲I̲G̲N̲A̲L̲ ̲S̲E̲F̲C̲O̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲)̲
D̲I̲S̲M̲ ̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲U̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲)̲
SET CONT ̲FLAG = FALSE
END TEMCO ̲CMD ̲PROCESSING
Figure 4.2.1.4.2-1
MSO ̲CONNECTION
CASE READ BUFFER (CMD ̲QEL, INIT ̲AREA,START ̲
OFFSET)(BUF ̲SIZE):
ERROR ̲OK
ERROR? ANALYSE ̲ERROR(CC,0)
OK? CALCULATE MAX ̲CLASSIFICATION and SPECIAL
̲HANDLING ̲DESIGNATOR FROM ACCESS ̲PROFILE
UPDATE INIT ̲AREA. MAX ̲CLASS
UPDATE INIT ̲AREA. SPECIAL ̲HANDLING ̲INSTRUCTION
END CASE
D̲I̲S̲M̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)
END MSO ̲CONNECTION
Figure 4.2.1.4.2.3-1
INIT TERMINAL
HEADER ̲IFCB
CASE FORMAT ̲INIT ̲TERMINAL (HEADER ̲IFCB)
FILESYSTEM NAME, CONT ̲ID, DATA ̲ID)
(CC): ERROR ̲OK
ERROR? ANALYSE ERROR (CC,0)
OK
END CASE
CASE FORMAT ̲INIT ̲TERMINAL (HEADER ̲IFCB
FILESYSTEM ̲NAME,CONT ̲ID, DATA ̲ID)
(CC): ERROR ̲OK
ERROR? ANALYSE ̲ERROR (CC,0)
OK?
END CASE
END
Figure 4.2.1.4.2.3-2
REQUEST ̲PERIODIC ̲TIMEOUT
MSOS ̲REQUEST ̲TIMEOUT.TIMEOUT ̲KIND = K ̲RELATIVE
MSOS ̲REQUEST ̲TIMEOUT.TIME ̲OUT = MODULUS
MSOS ̲REQUEST ̲TIMEOUT.FORMAT = INTERVAL
MSOS ̲REQUEST ̲TIMEOUT.QUEUE.MAIN = MSOS ̲CMDQ
MSOS ̲REQUEST ̲TIMEOUT.QUEUE.SUB = TIME ̲Q
MSOS ̲REQUEST ̲TIMEOUT.EVENT ̲ID = MSO ̲PERIODIC
CASE REQUEST ̲TIMEOUT (MSOS ̲REQUEST ̲TIMEOUT)(CC):
ERROR ̲OK
ERROR? ANALYSE ̲ERROR(CC;0)
OK?
END CASE
END REQUEST ̲PERIODIC ̲TIMEOUT
Figure 4.2.1.4.2.3-3
4.2.1.4.3 F̲l̲a̲s̲h̲ ̲Q̲u̲e̲u̲e̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲
4.2.1.4.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module analyses flash notification from the common
command queue to determine precedence and queue (where
flash item can be found).
It performs the actions:
- Updates, inverts and displays queue length field
- Sounds bell
- Sets up conditions for distribution of flash notification
4.2.1.4.3.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) FLASH ̲QUEUE ̲MONITORING
b) FLASH ̲QUEUE ̲MONITORING (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0-R7 Destroyed
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
FLASH ̲NOTIF ̲SUBTYPE refer CPS/DBD/001
QUEUE ̲ERROR ̲TYPE refer 4.1.4
QEL ̲REFERENCE refer CPS/DBD/001
SEND ̲PARAMS refer CPS/DBD/001
QEL ̲ATTRIBUTES refer CPS/DBD/001
MSO ̲QUEUE ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MSOS ̲SEND ̲PARAMS (m) refer 4.1.4
Q ̲POINTER (m) refer 4.2.4
PREC ̲POINTER (m) refer 4.2.1.5
CCMD ̲QEL ̲ATTR refer 4.2.1.5
CCMD ̲QEL refer 4.2.1.5
QERROR ̲INF (m) refer 4.1.4
BEGIN ̲FLAG refer 4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
FLASH ̲ITEM ̲ARRIVED ̲FLAG: BOOLEAN
4.2.1.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module performs the following tasks:
- Analyses CCMD ̲QELs to determine precedence and
the queue in which the item can be found
- Updates and displays VDU Header
- Inverts queue length fields and rings bell
- Dismantles Flash Notification QEL
FLASH ̲QUEUE ̲MONITORING
CASE CCMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF FLASH ̲NOTIF ̲SUBTYPE
SUPERFLASH ̲
ITEM ̲ARRIVED? SET PREC.POINTER = SUPERFLASH
SET MSOS ̲SPEND ̲PARAMS.MAINTYPE=FLASH
NOTIFICATION
SET MSOS ̲SEND ̲PARAMS SUBTYPE=SUPERFLASH
SET FLASH ̲ITEM ̲ARRIVED ̲FLAG = TRUE
FLASH ̲
ITEM ̲ARRIVED? SET PREC ̲POINTER = FLASH
SET MSOS ̲SEND ̲PARAMS.MAINTYPE=
FLASHNOTIFICATION
SET MSOS ̲SEND ̲PARAMS.SUBTYPE=FLASH
SET FLASH ̲ITEM ̲ARRIVED ̲FLAG=TRUE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
FLASH ̲ITEM ̲ARRIVED ̲FLAG EQ FALSE?
CASE CCMD ̲QEL ̲ATTR.HEADER.FLAGS OF MSO ̲QUEUE ̲TYPE
INC? SET MSOS ̲SEND ̲PARAMS.HEADER.FLAGS
= INC
SET Q ̲POINTER = INCQ
OUT? SET MSOS ̲SEND ̲PARAMS.HEADER.FLAGS
= OUT
SET Q ̲POINTER = OUTQ
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
SET FLASH ̲ITEM ̲ARRIVED ̲FLAG = FALSE
END CASE
FLASH ̲ITEM ̲ARRIVED ̲FLAG EQ TRUE? F̲L̲A̲S̲H̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲3̲.̲5̲-̲2̲)̲
END FLASH ̲QUEUE ̲MONITORING
Figure 4.2.1.4.3-1
FLASH ̲ACTION
BEGIN ̲FLAG EQ FALSE ?
F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲
I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲0̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲
SET FLASH ̲ITEM ̲ARRIVED ̲FLAG = FALSE
S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲7̲)̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲6̲)̲
D̲I̲S̲M̲ ̲(̲C̲C̲M̲D̲ ̲Q̲E̲L̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
END FLASH ̲ACTION
Figure 4.2.1.4.3-2
4.2.1.4.4 T̲i̲m̲e̲r̲ ̲E̲v̲e̲n̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲
4.2.1.4.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module analyses the timeout QEL to determine whether
it is a periodic one in which case update and display
of VDU header is performed, or others in which case
an erroneous timeout has been received and the error
is reported.
4.2.1.4.4.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) TIMER ̲EVENT ̲PROCESSING
b) TIMER ̲EVENT ̲PROCESSING (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 Destroyed
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
None
4.2.1.4.4.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QUEUE ̲ERROR ̲TYPE refer 4.1.4
QEL ̲REFERENCE refer CPS/DBD/001
QEL ̲ATTRIBUTES refer CPS/DBD/001
TIMEOUT ̲SUBTYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
CMD ̲QEL refer 4.2.1.5
CMD ̲QEL ̲ATTR refer 4.2.1.5
QERROR ̲INF (m) refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
TIMER ̲EVENT ̲PROCESSING
CASE CMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF TIMEOUT ̲SUBTYPE
TIMEOUT ̲EVENT? CASE CMD ̲QEL ̲ATTR.FLAGS OF
MSO ̲PERIODIC? G̲E̲T̲ ̲D̲A̲T̲E̲ ̲T̲I̲M̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲9̲)̲
Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲
(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲
(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲
D̲I̲S̲M̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
OTHERWISE?T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
TIMEOUT ̲CANCELLED? D̲I̲S̲M̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
OTHERWISE? M̲S̲O̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
END TIMER ̲EVENT ̲PROCESSING
Figure 4.2.1.4-1
4.2.1.4.5 S̲E̲F̲C̲O̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.1.4.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module receives completion codes from SEVCO and
sends corresponding completion to TEMCO. Further it
distributes flash and antiflash notifications on command
from SEFCO, updates and displays queue status line.
4.2.1.4.5.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEFCO ̲RESPONSE ̲PROCESSING
b) SEFCO ̲RESPONSE ̲PROCESSING (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 Destroyed
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
4.2.1.4.5.3.1 R̲E̲M̲O̲V̲E̲ ̲V̲D̲U̲
Closes the message stream between VDU and process.
4.2.1.4.5.3.2 C̲a̲n̲c̲e̲l̲ ̲C̲a̲l̲l̲
Cancel outstanding system call when SEFCO completion
are STOP ̲SEFCO ̲CC, BLOCK ̲SEFCO ̲CC, or CLOSE ̲DOWN ̲SEFCO.CC.
4.2.1.4.5.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TEP ̲INTERNAL ̲SUBTYPE refer CPS/DBD/001
QELEMENT ̲MAIN ̲TYPE refer CPS/DBD/001
INT ̲ERROR ̲TYPE refer 4.1.4 MSOS
̲CO
̲OP refer
4.1.4
SEND ̲PARAMS refer CPS/DBD/001
QEL ̲REFERENCE refer CPS/DBD/001
SEVCO ̲CMD ̲TYPE refer 4.1.4
SEFCO ̲CC ̲TYPE refer 4.1.4
FLASH ̲NOTIF ̲SUBTYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
CCMO ̲QEL refer 4.2.1.5
CMD ̲QEL refer 4.2.1.5
PREC ̲POINTER (m) refer 4.2.1.5
Q ̲POINTER (m) refer 4.1.4
CURRENT ̲MODE refer 4.1.4
MSOS ̲SEND ̲PARAM (m) refer 4.1.4
VDU ̲SPLIT ̲FLAG (m) refer 4.1.4
HEADER ̲IFCB refer 4.1.4
FORMAT ̲IFCB refer 4.1.4
INT ̲ERROR ̲INF (m) refer 4.2.4
CLOSE ̲DOWN ̲CC ̲FLAG (m) refer 4.2.1.5
SEVCO ̲OP (m) refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR OK ̲FLAG BOOLEAN
4.2.1.4.5.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Commands and completion codes received from SEFCO are
analysed, and a command acknowledge is sent to SSC
to the appropriate commands.
On request from SEFCO flash or antiflash notification
is sent to other MSOs command queue and a queue field
update and display is initiated.
SEFCO ̲RESPONSE ̲PROCESSING
CASE SEVCO ̲OP.CMD OF SEFCO ̲CC ̲TYPE
INIT ̲SEFCO ̲CC SET OK ̲FLAG = FALSE
RESTART ̲SEFCO ̲CC SET OK ̲FLAG = FALSE
START ̲SEFCO ̲CC SET OK ̲FLAG = TRUE
BLOCK ̲SEFCO ̲CC
STOP ̲SEFCO ̲CC SET OK ̲FLAG = TRUE
R̲E̲M̲O̲V̲E̲ ̲V̲D̲U̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲5̲.̲1̲)̲
C̲A̲N̲C̲E̲L̲ ̲C̲A̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲3̲.̲2̲)̲
CLOSE ̲DOWN ̲SEFCO ̲CC SET ̲OK ̲FLAG = TRUE
SET CLOSE ̲DOWN ̲CC ̲FLAG = TRUE
R̲E̲M̲O̲V̲E̲ ̲V̲D̲U̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲5̲-̲5̲)̲
C̲A̲N̲C̲E̲L̲ ̲C̲A̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲3̲.̲2̲)̲
MSO ̲MODE ̲CHANGE? Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲
SEND NOTIFICATION? D̲I̲S̲T̲R̲I̲B̲U̲T̲E̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲5̲-̲2̲)
SEND ANTINOTIFICATION? D̲I̲S̲T̲R̲I̲B̲U̲T̲E̲ ̲A̲N̲T̲I̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲5̲-̲3̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
S̲E̲T̲ ̲P̲A̲R̲A̲M̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲-̲2̲)
END SEFCO ̲RESPONSE ̲PROCESSING
Figure 4.2.1.4.5-1
SET ̲PARAM
OK FLAG = EQ FALSE
SET MSOS ̲SEND ̲PARAMS.HEADER.MAINTYPE = ACK
SET MSOS ̲SEND ̲PARAMS.HEADER.SUBTYPE = TEP ̲ACK
VDU ̲SPLIT ̲FLAG = EQ TRUE? SET MSOS ̲SEND ̲PARAMS.HEADER.FLAG
= 2
SET MSOS ̲SEND ̲PARAMS.FLAG = 0
CASE SEND ̲REPLY (MSOS ̲SEND ̲PARAMS, CMD ̲QEL)
(MSOS ̲SEND ̲PARAMS, CC): ERROR ̲OK
ERROR? ANALYSE ̲ERROR (CC,0)
OK? SET OK ̲FLAG = FALSE
END CASE
SET VDU ̲SPLIT ̲FLAG = FALSE
END SET ̲PARAM
Figure 4.2.1.4.5-2
DISTRIBUTE ̲NOTIFIC
SET PREC ̲POINTER = SEVCO ̲OP.PARA
CURRENT ̲MODE EQ INCO ̲MODE? Q ̲POINTER = INCQ
CURRENT ̲MODE EQ OUTG ̲MODE? Q ̲POINTER = OUTQ
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
MSOS ̲SEND ̲PARAMS HEADER-MAINTYPE = FLASH ̲NOTIFICATION
CASE PREC ̲POINTER OF PRECEDENCE ̲TYPE
SUPERFLASH? MSOS ̲SEND ̲PARAMS.HEADER.SUBTYPE=
SUPERFLASH ̲ITEM ̲ARRIVED
FLASH? MSOS ̲SEND ̲PARAMS-HEADER ̲SUBTYPE =
FLASH ̲ITEM ̲ARRIVED
O̲T̲H̲E̲R̲W̲I̲S̲E̲?̲ ̲T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
Q ̲POINTER EQ INCQ? MSOS ̲SEND ̲PARAMS.HEADER.FLAG
=INCOMING ̲MSO
MSOS ̲SEND ̲PARAMS.HEADER.FLAG =OUTGOING ̲MSO
S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲7̲)
F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲
I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲0̲)
END DISTRIBUTE ̲NOTIFICE
Figure 4.2.1.4.5-3
DISTRIBUTE ANTINOTIFIC
SET PREC ̲POINTER = SEVCO ̲OP.PARA
CURRENT ̲MODE EQ.INCO ̲MODE? Q ̲POINTER = INC Q
CURRENT ̲MODE EQ OUTG ̲MODE? Q ̲POINTER =OUTQ
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
MSOS ̲SEND ̲PARAMS.HEADER.MAINTYPE =TEP ̲INTERNAL
MSOS ̲SEND ̲PARAMS.HEADER-SUBTYPE = ANTIFLASH ̲NOTIFICATION
CASE PREC ̲POINTER OF PRECEDENCE ̲TYPE
SUPERFLASH? MSOS ̲SEND ̲PARAMS.HEADER.FLAG=SUPERFLASH
̲
ITEM ̲ARRIVED
FLASH? MSOS ̲SEND ̲PARAMS.HEADER-FLAG =FLASH ̲ITEM
̲
ARRIVED
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)
END CASE
Q ̲POINTER EQ INCQ? MSOS ̲SEND ̲PARAMS.HEADER.FLAG =
INCOMING ̲MSO
MSOS ̲SEND ̲PARAMS.HEADER.FLAG ̲OUTGOING ̲MSO
S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲7̲)
F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲
R̲E̲M̲O̲V̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲8̲)
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)
END DISTRIBUTE ̲ANTINOTICATION
Figure 4.2.1.4.5-4
REMOVE ̲VDU
CASE REMOVE ̲TERMINAL(HEADER ̲IFCB)(CC): ERROR ̲OK
ERROR? ANALYSE ̲ERROR(CC,0)
OK? CASE REMOVE ̲TERMINAL(FORMAT ̲IFCB)(CC): ERROR
̲OK
ERROR? ANALYSE ̲ERROR(CC,0)
OK?
END CASE
END CASE
Figure 4.2.1.4.5.5-5
4.2.1.4.6 I̲N̲T̲E̲R̲N̲A̲L̲ ̲F̲L̲A̲S̲H̲
4.2.1.4.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module analyses flash notification from the command
queue and sets up the condition to call upon procedures
in order to update queue status line, display the updated
VDU header and ring the bell.
4.2.1.4.6.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INTERNAL ̲FLASH
b) INTERNAL ̲FLASH(R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0-R7 Destroyed
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
None
4.2.1.4.6.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MSO ̲QUEUE ̲TYPE refer CPS/DBD/0001
PRECEDENCE ̲TYPE refer CPS/DBD/001
QUEUE ̲ERROR ̲TYPE refer 4.1.4 QEL
̲REFERENCE refer
CPS/DBD/001
QEL ̲ATTRIBUTES refer CPS/DBD/001
Q ̲POINTER ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
CMD ̲QEL refer 4.2.1.5
CMD ̲QEL ̲ATTR refer 4.2.1.5
Q ̲POINTER (m) refer 4.1.4
PREC ̲POINTER (m) refer 4.2.1.5
QERROR ̲INF (m) refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR FAIL ̲FLAG: BOOLEAN
4.2.1.4.6.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The precedence of the flash notification is identified.
Calls upon common procedures, in order to update queue
status line, display the updated queue status line,
and to ring the bell are issued.
INTERNAL ̲FLASH
SET FAIL ̲FLAG = FALSE
CASE CMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF FLASH ̲NOTIF ̲SUBTYPE
SUPERFLASH ITEM ̲ARRIVED? MOVE SUPERFLASH TO PREC ̲
POINTER
CASE CMD ̲QEL ̲ATTR.HEADER.FLAG OF
INC? MOVE INCQ TO Q ̲POINTER
OUT? MOVE OUTQ TO Q ̲POINTER
OTHERWISE? SET FAIL ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲
(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
FLASH ITEM ̲ARRIVED? MOVE FLASH TO PREC ̲POINTER
CASE CMD ̲QEL ̲ATTR.HEADER.FLAG OF
MSO ̲
QUEUE ̲TYPE
INC? MOVE INCQ TO Q ̲POINTER
OUT? MOVE OUTQ TO Q ̲POINTER
OTHERWISE? SET FAIL ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲
(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? SET FAIL ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
CONT (4.2.1.4.6-2)
Fig. 4.2.1.4.6-1…86…1 …02… …02… …02… …02… …02… …02… …02…
CONT
FAIL ̲FLAG =EQ TRUE?
F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲
I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲0̲)̲
DISPLAY ̲VDU ̲HEADER (4.2.1.6.4)
D̲I̲S̲M̲ ̲C̲M̲D̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲1̲.̲6̲.̲5̲)̲
SET FAIL ̲FLAG = FALSE
END INTERNAL ̲FLASH
Figure 4.2.1.4.6-2
4.2.1.4.7 I̲n̲t̲e̲r̲n̲a̲l̲ ̲A̲n̲t̲i̲f̲l̲a̲s̲h̲
4.2.1.4.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module analyses antiflash notification received
in the command queue, and sets up the conditions to
call upon common procedures in order to update queue
status line, display the updated VDU header and possibly
remove previously inverted queue line fields.
4.2.1.4.7.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INTERNAL ̲ANTIFLASH
b) INTERNAL ̲ANTIFLASH (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 Destroyed
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
None
4.2.1.4.7.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TEP ̲INTERNAL ̲SUBTYPE refer CPS/DBD/001
MSO ̲QUEUE ̲TYPE refer CPS/DBD/001
FLASH ̲NOTIF ̲SUBTYPE refer CPS/DBD/001
QUEUE ̲ERROR ̲TYPE refer 4.1.4
QEL ̲REFERENCE refer CPS/DBD/001
QEL ̲ATTRIBUTES refer CPS/DBD/001
Q ̲POINTER ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
PREC ̲POINTER (m) refer 4.2.1.5
CMD ̲QEL refer 4.2.1.5
CMD ̲QEL ̲ATTR refer 4.2.1.5
QERROR ̲INF(m) refer 4.1.4
Q ̲POINTER (m) refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR FAILURE ̲FLAG: BOOLEAN
4.2.1.4.7.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The precedence of the antiflash notification is identified.
The actual queue is identified. Call upon common procedures
is issued in order to update queue status line, display
the updated queue status line and to remove the inversion
of the queue field in case the last item is removed.
INTERNAL ̲ANTIFLASH
SET FAILURE ̲FLAG = FALSE
CASE CMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF TEP ̲INTERNAL
̲SUBTYPE
ANTIFLASH? CASE CMD ̲QEL.HEADER.FLAG OF FLASH
̲NOTIF ̲SUBTYPE
SUPERFLASH ̲ITEM ̲
ARRIVED? MOVE
SUPERFLASH
TO
PREC
̲POINTER
CASE CMD ̲QEL ̲ATTR.HEADER.FLAG
OF
INC?
Q
̲POINTER
=
INCQ
OUT?
Q
̲POINTER
=
OUTQ
OTHERWISE?
SET
FAILURE
̲FLAG
=
TRUE
T̲E̲P̲
̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲
(4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
FLASH ̲ITEM ̲
ARRIVED? MOVE FLASH TO PREC
̲POINTER
CASE CMD ̲QEL ̲ATTR.HEADER.FLAG
OF
MSO ̲QUEUE ̲TYPE
INC? Q ̲POINTER
= INCQ
OUT? Q ̲POINTER
= OUTQ
OTHERWISE? SET FAILURE
̲FLAG = TRUE
T̲E̲P̲
̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲
(̲4̲.̲1̲.̲5̲.̲1̲)
END CASE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
SET FAILURE ̲FLAG = TRUE
END CASE
U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲7̲-̲2̲)̲
END INTERNAL ̲ANTIFLASH
Figure 4.2.1.4.7-1
UPDATE
FAILURE ̲FLAG EQ FALSE?
F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲
R̲E̲M̲O̲V̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲8̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲
D̲I̲S̲M̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲1̲.̲6̲.̲5̲)̲
SET FAILURE ̲FLAG = FALSE
END UPDATE
Figure 4.2.1.4.7-2
4.2.1.5 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
BUFFER ̲LIST ̲ELEMENT refer CPS/DBD/001
TIME ̲TYPE refer CPS/DBD/001
CLASSIFICATION ̲TYPE refer CPS/DBD/001
QEL ̲REFERENCE refer CPS/DBD/001
QEL ̲ATTRIBUTES refer CPS/DBD/002
IDENT ̲TYPE refer 4.1.4
CO ̲CMD ̲TYPE refer 4.1.4
COROUTINE ̲SEMAPHORE refer CPS/DBD/001
FIELD ̲DESCRIPTOR ̲TYPE refer CPS/DBD/001
QUEUE ̲ATTRIBUTES refer CPS/DBD/001
FIELDS ̲ATTR refer CPS/DBD/001
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
F ̲DTG ̲TYPE refer CPS/DBD/001
QERROR ̲INF ̲TYPE refer 4.1.4
INT ̲ERROR ̲TYPE refer 4.1.4
SEND ̲PARAMS refer CPS/DBD/001
QEUEUE ̲REFERENCE refer CPS/DBD/001
IOC ̲HEADER ̲TYPE refer CPS/DBD/001
TWO ̲CHAR refer CPS/DBD/001
b) S̲E̲V̲C̲O̲ ̲C̲O̲M̲M̲O̲N̲ ̲T̲Y̲P̲E̲S̲
None
c) S̲E̲V̲C̲O̲ ̲L̲O̲C̲A̲L̲ ̲D̲A̲T̲A̲
VAR CMD ̲QEL,CCMD ̲QEL: QEL ̲REFERENCE
VAR CMD ̲QEL ̲ATTR,CCMD ̲QEL ̲ATTR: QEL ̲ATTRIBUTES
VAR FIELD ̲DESCRIP: FIELD ̲DESCRIPTOR
̲TYPE
VAR Q ̲ATTR: QUEUE ̲ATTRIBUTES ̲
VAR NEW ̲ATTR: FIELDS ̲ATTR
̲TYPE
VAR PREC ̲POINTER: PRECEDENCE
̲TYPE
VAR BEGIN ̲FLAG BOOLEAN
VAR START ̲FLAG: BOOLEAN
VAR CLOSE ̲DOWN ̲CC ̲FLAG: BOOLEAN
INIT CLOSE ̲DOWN ̲CC ̲FLAG = FALSE
VAR VDU ̲HEADER ̲FIELD = ARRAY (1..MAX ̲HEADER ̲FIELDS)
OF FIELD ̲DESCRIPTOR ̲TYPE
VDU ̲HEADER ̲BLE = BUFFER ̲LIST
̲ELEMENT
CONST MAX ̲HEADER ̲FIELDS = 12
HEADER ̲SPLIT = 1
QUEUE ̲LINE ̲NO = 2
CLASS ̲LINE ̲NO = 1
TIME ̲LINE ̲NO= 1
HEADER ̲INCARNATION ̲NO = 1
CLASS ̲FIELD ̲NO = 2
TIME ̲FIELD ̲NO = 3
SUPER ̲FLASH ̲FIELD ̲NO = 1
FLASH ̲FIELD ̲NO = 2
IMMEDIATE ̲FIELD ̲NO = 3
SUPER ̲PRIORITY ̲FIELD ̲NO = 4
PRIORITY ̲FIELD ̲NO = 5
ROUTINE ̲FIELD ̲NO = 6
INCQ ̲FIELD ̲NO = 7
OUTQ ̲FIELD ̲NO = 8
RESPQ ̲FIELD ̲NO = 9
USERQ ̲FIELD ̲NO = 10
INIT VDU ̲HEADER ̲FIELD:
VDU ̲HEADER ̲BLE.KIND = LOWER ̲BYTE
VDU ̲HEADER ̲BLE.LINK = NIL
INIT VDU ̲HEADER ̲FIELD(1). LINE =CLASS ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(1). INCARNARION =HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(1). FIELD = CLASS ̲FIELD
̲NO
VDU ̲HEADER ̲FIELD(2). LINE = TIME ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(2). INCARNATION =HEADER ̲INCARNATION
VDU ̲HEADER ̲FIELD(2). FIELD = TIME ̲FIELD
̲NO
VDU ̲HEADER ̲FIELD(3). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(3). INCARNATION =HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(3). FIELD = SUPER ̲FLASH
̲FIELD ̲NO
VDU ̲HEADER ̲FIELD(4). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(4). INCARNATION =HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(4). FIELD = SUPER ̲FLASH
̲FIELD NO
VDU ̲HEADER ̲FIELD(5). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(5). INCARNATION =HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(5). FIELD = IMMEDIATE
̲FIELD ̲NO
VDU ̲HEADER ̲FIELD(6). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(6). INCARNATION =HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(6). FIELD = SUPER ̲PRIORITY
̲FIELD ̲
NO
VDU ̲HEADER ̲FIELD(7). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(7). INCARNATION =HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(7). FIELD = PRIORITY
̲FIELD ̲NO
VDU ̲HEADER FIELD(8). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(8). INCARNATION =HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(8). FIELD = ROUTINE ̲FIELD
̲NO
VDU ̲HEADER ̲FIELD(9). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(9). INCARNATION =HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(9). FIELD = INCQ ̲FIELD
̲NO
VDU ̲HEADER ̲FIELD(10). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(10). INCARNATION=HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(10). FIELD = OUTQ ̲FIELD
̲NO
VDU ̲HEADER ̲FIELD(11). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(11). INCARNATION=HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(11). FIELD = RESPQ ̲FIELD
̲NO
VDU ̲HEADER ̲FIELD(12). LINE = QUEUE ̲LINE
̲NO
VDU ̲HEADER ̲FIELD(12). INCARNATION= HEADER ̲INCARNATION
̲NO
VDU ̲HEADER ̲FIELD(12). FIELD = USERQ ̲FIELD
̲NO
4.2.1.6 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲
4.2.1.6.1 S̲I̲G̲N̲A̲L̲ ̲S̲E̲F̲C̲O̲
4.2.1.6.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure signals the operation semaphore MSOS
̲S1.
4.2.1.6.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SIGNAL ̲SEFCO
b) SIGNAL ̲SEFCO (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.1.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
IDENT ̲TYPE refer 4.1.4
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MSOS ̲S2 refer 4.1.4
SEVCO ̲OP (m) refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.2.1.6.1-1
S̲I̲G̲N̲A̲L̲ ̲S̲E̲F̲C̲O̲
MOVE SEVCO ̲IDENT TO SEVCO ̲OP.OP ̲ID(1)
SIGNAL ̲OPSEM(MSOS ̲S2, SEVCO ̲OP): OK
END
Fig. 4.2.1.6.1-1
4.2.1.6.2 F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲
4.2.1.6.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure reaches the queue length
of INCQ, OUTQ, RESPQ and USERQ, and depending
on the operating mode the content of the
precedence fields are set.
4.2.1.6.2.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) FLASH ̲QUEUE ̲FIELDS ̲UPDATE
b) FLASH ̲QUEUE ̲FIELDS ̲UPDATE (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.2.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
INTERNAL ̲ERROR ̲TYPE refer 4.1.4 CURRENT
̲MODE
̲TYPE refer
4.1.4
Q ̲POINTER ̲TYPE refer
4.1.4
QUEUE ̲REFAERENCE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
Q ̲REFERENCE (m) refer 4.1.4
INT ̲ERROR ̲INF (m) refer 4.1.4
CURRENT ̲MODE refer
4.1.4
PREC ̲POINTER refer
4.2.1.5
Q ̲POINTER refer 4.1.4
VDU ̲HEADER ̲AREA (m) refer 4.1.4
Q ̲ATTR (m) refer 4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.2.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
The appropriate main queue length is measured.
Depending on queue concerned and the
current mode of operation, the content
of the precedence fields in the queue
status line is measured.
FLASH ̲QUEUE ̲FIELDS ̲UPDATE
CASE Q ̲POINTER OF Q ̲POINTER ̲TYPE
INCQ ? MOVE Q ̲POINTER TO Q ̲REFERENCE. MAINQ
MOVE NULL TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU
̲HEADER.AREA.IN
PREC ̲POINTER EQ FLASH ? - SET VDU
̲HEADER ̲AREA.PREC2 = 0
SET VDU ̲HEADER ̲AREA.PREC1 = 0
CASE CURRENT ̲MODE OF CURRENT ̲MODE
̲TYPE
INCO ̲MODE ? G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲
OUTG ̲MODE ?
INTERACTIVE ̲MODE,
RESP ̲MODE? G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲
̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲
MOVE OUTQ TO Q ̲REFERENCE.MAINQ
G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲
OTHERWISE ? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲
̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
OUTQ ? R̲E̲P̲E̲A̲T̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲-̲2̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲
̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
END FLASH ̲QUEUE ̲FIELDS ̲UPDATE
Fig. 4.2.1.6.2-1
REPEAT
MOVE Q ̲POINTER TO Q ̲REFERENCE.MAINQ
MOVE NULL TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.OUT
PREC ̲POINTER EQ FLASH ? - SET VDU ̲HEADER ̲AREA.PREC2
= 0
SET VDU ̲HEADER ̲AREA.PREC1 = 0
CASE CURRENT ̲MODE OF CURRENT ̲MODE ̲TYPE
INCO ̲MODE ?
OUTG ̲MODE ? G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲
INTERACTIVE ̲MODE,
RESP ̲MODE ? G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲
MOVE INCQ TO Q ̲REFERENCE.MAINQ
G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲
OTHERWISE ? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
Fig. 4.2.1.6.2-2
4.2.1.6.3 Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲
4.2.1.6.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure reads the queue length
of INCOMING QUEUE, OUTGOING QUEUE, USER
QUEUE, RESPONSE QUEUE, and sets precedence
and main queue fields in accordance with
current mode.
4.2.1.6.3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) QUEUE ̲FIELDS ̲UPDATE
b) QUEUE ̲FIELDS ̲UPDATE (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.1.6.3.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
INTERNAL ̲ERROR ̲TYPE refer 4.1.4 CURRENT
̲MODE
̲TYPE refer
4.1.4
Q ̲POINTER ̲TYPE refer
4.1.4
QUEUE ̲REFERENCE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
INT ̲ERROR ̲INF (m) refer 4.1.4
Q ̲REFERENCE (m) refer 4.1.4
CURRENT ̲MODE refer
4.1.4
VDU ̲HEADER ̲AREA (m) refer 4.1.4
Q ̲ATTR (m) refer 4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.1.6.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Depending on the current user mode, the
mainqueue length and the precedence fields
are measured. If the user is operating
in response mode, the content of the precedence
levels from the INCQ nad OUTQ are added.
The measured sizes are stored in VDU
̲HEADER ̲AREA, ready for the display procedure
to take over.
QUEUE ̲FIELDS ̲UPDATE
CASE CURRENT ̲MODE OF CURRENT ̲MODE ̲TYPE
INCO ̲MODE ? MOVE INCQ TO Q ̲REFERENCE.MAINQ
MOVE NULL TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
̲AREA.IN
SET VDU ̲HEADER AREA.PREC1 = 0
SET VDU ̲HEADER ̲AREA.PREC2 = 0
SET VDU ̲HEADER ̲AREA.PREC3 = 0
SET VDU ̲HEADER ̲AREA.PREC4 = 0
SET VDU ̲HEADER ̲AREA.PREC5 = 0
SET VDU ̲HEADER ̲AREA.PREC6 = 0
G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲2̲)̲
MOVE OUTQ TO Q ̲REFERENCE.MAINQ
MOVE NULL TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
MOVE Q.ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
̲AREA.OUT
G̲E̲T̲ ̲U̲S̲E̲R̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲4̲)̲
MOVE RESPQ TO Q ̲REFERENCE.MAINQ
MOVE NULL TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
OUTG ̲MODE? O̲U̲T̲Q̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲-̲2̲)̲
RESP ̲MODE?
INTERACTIVE ̲MODE ? R̲E̲S̲P̲Q̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲-̲3̲)̲
OTHERWISE ? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
Fig. 4.2.1.6.3-1
OUTQ ̲UPDATE
MOVE OUTQ TO Q ̲REFERENCE.MAINQ
MOVE NULL TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
MOVE Q ̲ATTR.QUQUE ̲LENGTH TO VDU ̲HEADER ̲AREA.OUT
SET VDU ̲HEADER ̲AREA.PREC1 = 0
SET VDU ̲HEADER ̲AREA.PREC2 = 0
SET VDU ̲HEADER ̲AREA.PREC3 = 0
SET VDU ̲HEADER ̲AREA.PREC4 = 0
SET VDU ̲HEADER ̲AREA.PREC4 = 0
SET VDU ̲HEADER ̲AREA.PREC5 = 0
G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲2̲)̲
MOVE INCQ TO Q ̲REFERENCE.MAIN
MOVE NULL TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.IN
G̲E̲T̲ ̲U̲S̲E̲R̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲4̲)̲
MOVE RESPQ TO Q ̲REFERENCE.MAINQ
MOVE 2 TO Q ̲REFERENCE.SUBQ
GET QUEUE LENGTH (4.2.1.6.11)
MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.RESP
END OUTQ ̲UPDATE
Fig. 4.2.1.6.3-2
RESPQ ̲UPDATE
MOVE INCQ TO Q ̲REFERENCE.MAINQ
MOVE NULL TO Q.REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.IN
SET VDU ̲HEADER ̲AREA.PREC1 = 0
SET VDU ̲HEADER ̲AREA.PREC2 = 0
SET VDU ̲HEADER ̲AREA.PREC3 = 0
SET VDU ̲HEADER ̲AREA.PREC4 = 0
SET VDU ̲HEADER ̲AREA.PREC5 = 0
SET VDU ̲HEADER ̲AREA.PREC6 = 0
G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲2̲ ̲)̲
MOVE OUTQ TO Q ̲REFERENCE.MAINQ
G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲2̲)̲
MOVE NULL TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.OUT
G̲E̲T̲ ̲U̲S̲E̲R̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲4̲)̲
MOVE RESPQ TO Q ̲REFERENCE.MAINQ
MOVE 2 TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.RESP
END RESPQ ̲UPDATE
Fig. 4.2.1.6.3-3
4.2.1.6.4 D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲
4.2.1.6.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure displays the VUD header split by
calling the Format Handler of IOC with the VDU
header data array as input.
4.2.1.6.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DISPLAY ̲VDU ̲HEADER
b) DISPLAY ̲VDU ̲HEADER (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.4.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
FLAG ̲BYTE ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
HEADER ̲IFCB refer 4.1.4
VDU ̲SPLIT ̲FLAG (m) refer 4.1.4
CURRENT ̲CLASS refer 4.1.4
VDU ̲HEADER ̲AREA (m) refer 4.1.4
VDU ̲HEADER ̲FIELD refer 4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VDU ARRAY : ARRAY (1....VDU ̲ARRAY ̲SIZE) OF CHAR
CONST VDU ̲ARRAY ̲SIZE = 88 CHAR
TIM= IOC ̲HEAD + 1
PRECED 1= CLASS I + IOC ̲HEAD+CLASS ̲LENGTH
PRECED 2= PRECED 1 + IOC ̲HEAD+PRECQ ̲LENGTH
PRECED 3= PRECED 2 + IOC ̲HEAD+PRECQ ̲LENGTH
PRECED 4= PRECED 3 + IOC ̲HEAD+PRECQ ̲LENGTH
PRECED 5= PRECED 4 + IOC ̲HEAD+PRECQ ̲LENGTH
PRECED 6= PRECED 5 + IOC ̲HEAD+PRECQ ̲LENGTH
IQ = PRECED 6 + IOC ̲HEAD+PRECQ ̲LENGTH
OQ = IQ + IOC ̲HEAD + PRECQ ̲LENGTH
RESP.Q = OQ + IOCH̲HEAD + PRECQ ̲LENGTH
USERQ = RESPONSEQ + IOC ̲HEAD+PRECQ ̲LENGTH
IOC ̲HEAD= 3
TIM ̲LENGTH = 14
CLASS ̲LENGTH = 18
PRECQ ̲LENGTH = 2
INIT VDU ̲ARRAY(TIM-3) ="RS"
VDU ̲ARRAY(TIM-2) = TIM ̲LENGTH + 3
VDU ̲ARRAY(TIM-1) = DATA ̲FLAG
VDU ̲ARRAY(CLASS I-3) ="RS"
VDU ̲ARRAY(CLASS I-2) = CLASS ̲LENGTH+3
VDU ̲ARRAY(CLASS I-1) = DATA ̲FLAG
VDU ̲ARRAY(PRECED1-3) ="RS"
VDU ̲ARRAY(PRECED1-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(PRECED1-1) = DATA ̲FLAG
VDU ̲ARRAY(PRECED2-3) ="RS"
VDU ̲ARRAY(PRECED2-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(PRECED2-1) = DATA ̲FLAG
VDU ̲ARRAY(PRECED3-3) = "RS"
VDU ̲ARRAY(PRECED3-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(PRECED3-1) = DATA ̲FLAG
VDU ̲ARRAY(PRECED4-3) ="RS"
VDU ̲ARRAY(PRECED4-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(PRECED4-1) = DATA ̲FLAG
INIT VDU ̲ARRAY(PRECED5-3) ="RS"
VDU ̲ARRAY(PRECED5-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(PRECED5-1) = DATA ̲FLAG
VDU ̲ARRAY(PRECED6-3) ="RS"
VDU ̲ARRAY(PRECED6-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(PRECED6-1) = DATA ̲FLAG
VDU ̲ARRAY(IQ-3) ="RS"
VDU ̲ARRAY(IQ-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(IQ-1) = DATA ̲FLAG
VDU ̲ARRAY(OQ-3) ="RS"
VDU ̲ARRAY(OQ-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(OQ-1) = DATA ̲FLAG
VDU ̲ARRAY(RESPQ-3) ="RS"
VDU ̲ARRAY(RESPQ-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(RESPQ-1) = DATA ̲FLAG
VDU ̲ARRAY(USERQ-3) ="RS"
VDU ̲ARRAY(USERQ-2) = PRECQ ̲LENGTH+3
VDU ̲ARRAY(USERQ-1) = DATA ̲FLAG
4.2.1.6.4.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Current classification is inserted in VDU ̲HEADER ̲AREA.
"Illegal" precedences are suppressed and a call to
Format Handler is issued.
DISPLAY ̲VDU ̲HEADER
MOVE CURRENT ̲CLASS TO VDU ̲HEADER ̲AREA.CLASS
MOVE NULL TO VDU ̲HEADER ̲AREA.PREC1
MOVE NULL TO VDU ̲HEADER ̲AREA.PREC4
MOVE VDU ̲HEADER ̲AREA.TIME TO VDU ̲ARRAY (TIM)
MOVE VDU ̲HEADER ̲AREA.CLASS TO VDU ̲ARRAY(CLASSI)
MOVE VDU ̲HEADER ̲AREA.PREC1 TO VDU ̲ARRAY(PRECED1)
MOVE VDU ̲HEADER ̲AREA.PREC2 TO VDU ̲ARRAY(PRECED2)
MOVE VDU ̲HEADER ̲AREA.PREC3 TO VDU ̲ARRAY(PRECED3)
MOVE VDU ̲HEADER ̲AREA.PREC4 TO VDU ̲ARRAY (PRECED4)
MOVE VDU ̲HEADER ̲AREA.PREC5 TO VDU ̲ARRAY(PRECED5)
MOVE VDU ̲HEADER ̲AREA.PREC6 ATO VDU ̲ARRAY(PRECED6)
MOVE VDU ̲HEADER ̲AREA.IN TO VDU ̲ARRAY (IQ)
MOVE VDU ̲HEADER ̲AREA.OUT TO VDU ̲ARRAY (OQ)
MOVE VDU ̲HEADER ̲AREA.RESP TO VDU ̲ARRAY (RESPONSEQ)
MOVE VDU ̲HEADER ̲AREA. USER TO VDU ̲ARRAY (USERQ)
CASE FIELDS ̲OUTPUT(HEADER ̲IFCB,VDU ̲HEADER
̲FIELD,
VDU ̲ARRAY,MAX ̲HEADER ̲FIELDS,
VDU ̲ARRAY ̲SIZE)(CC):ERROR ̲OK
ERROR? CASE ANALYSE ERROR(CC,1,VDU ̲SPLIT
̲FAILED):(L1)
L1? SET VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK?
END CASE
END DISPLAY ̲VDU ̲HEADER
Fig. 4.2.1.6.4-1
4.2.1.6.5 S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲
4.2.1.6.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure issues an init receive
call to the command queue and associates
semaphore and queue.
4.2.1.6.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲RECEIVE ̲CMD ̲QEL
b) SET ̲RECEIVE ̲CMD ̲QEL (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.5.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QUEUE ̲REFERENCE refer CPS/DBD/001
QEL ̲ATTRIBUTES refer
CPS/DBD/001
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
COROUTINE ̲SEMAPHORE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MSOS ̲CMDQ refer 4.1.4
CMD ̲OP refer
4.1.4
CMD ̲QEL ̲ATTR refer
4.2.1.5
MSOS ̲S1 refer
4.1.4
Q ̲REFERENCE(m) refer
4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.5.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer fig. 4.2.1.6.5-1
SET ̲RECEIVE ̲CMD ̲QEL
Q ̲REFERENCE. MAINQ = MSOS ̲CMDQ
Q ̲REFERENCE. SUBQ = 1
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,Q ̲REFERENCE,CMD
̲QEL ̲ATTR,CMD ̲OP)
(CC):
ERROR
̲OK
ERROR ? ANALYSE ̲ERROR (CC.0)
OK ?
END CASE
ASSOCIATE (MSOS ̲S1, CMD ̲OP) OK
END SET ̲RECEIVE ̲CMD ̲QEL
Fig. 4.2.1.6.5-1
4.2.1.6.6 S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲
4.2.1.6.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure issues an init receive
call to the command queue and associates
semaphore and queue.
4.2.1.6.6.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲RECEIVE ̲CCMD ̲QEL
b) SET ̲RECEIVE ̲CCMD ̲QEL (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.6.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QUEUE ̲REFERENCE refer CPS/DBD/001
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
COROUTINE ̲SEMAPHORE refer 4.1.4
QEL ̲ATTRIBUTES
refer
CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
Q ̲REFERENCE
refer
4.1.4
MSOS ̲S1
refer
4.1.4
CCMD ̲OP
refer
4.1.4
CCMD ̲QEL ̲ATTR.
refer
4.2.1.5
MSOS ̲CCMDQ refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.6.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer Fig. 4.2.1.6.6-1
SET ̲RECEIVE ̲CCMD ̲QEL
Q ̲REFERENCE.MAINQ = MSOS ̲CCMDQ
Q ̲REFERENCE SUBQ = 1
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,Q ̲REFERENCE,CCMD
̲QEL ̲ATTR,
CCMD ̲OP)(CC):
ERROR ̲OK
ERROR ? ANALYSE ̲ERROR (CC, 0)
OK ?
END CASE
ASSOCIATE (MSOS ̲S1, CCMD ̲OP): OK
END SET ̲RECEIVE ̲CCMD ̲QEL
Fig. 4.2.1.6.6-1
4.2.1.6.7 S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲
4.2.1.6.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure sends queue elements to
other MSOs command queues.
4.2.1.6.7.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲NOTIFIC
b) SEND ̲NOTIFIC (R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.7.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
INTERNAL ̲ERROR ̲TYPE refer 4.1.4 SEND
̲PARAMS
refer
CPS/DBD/001
QUEUE ̲REFERENCE refer CPS/DBD/001
MSOS ̲MSOS ̲CMD ̲Q ̲GROUP
refer
CPS/DBD/001
MSOS ̲SUBPROCESS ̲GROUP ̲CAP refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MSOS ̲SEND ̲PARAMS: refer 4.1.4
INT ̲ERROR ̲INF (m) refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR MSO ̲NO INTEGER
VAR QNAMES: QUEUE ̲REFERENCE
CONST Q1 = MSOS ̲MSOS ̲G ̲CMDQ SHIFTLL8+MSOS
̲MSOS ̲G ̲
CMDQ1
CONST Q2 = MSOS ̲MSOS ̲G ̲CMDQ SHIFTLL8+MSOS
̲MSOS ̲G ̲
CMDQ2
CONST Q3 = MSOS ̲MSOS ̲G ̲CMDQ SHIFTLL8+MSOS
̲MSOS ̲G ̲
CMDQ3
4.2.1.6.7.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
A loop is entered and the receiving queue's
names are used one by one in the SEND
call.
SEND ̲NOTIFIC
SEND MSO ̲NO = 1
QNAMES SUBQ = 1
LOOP
CASE MSO ̲NO OF
1? QNAMES.MAINQ = Q1
2? QNAMES.MAINQ = Q2
3? QNAMES.MAINQ = Q3
OTHERWISE ? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲
̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
CASE SEND (MSOS ̲SEND ̲PARAMS, NIL, QNAMES)
(MSOS ̲SEND ̲PARAMS, CC): ERROR ̲OK
ERROR ? CASE ANALYSE ̲ERROR (CC, 1, BLOCKED
̲QUEUE): (L1)
L1 ?
END CASE
OK ?
END CASE
INCREMENT MSO ̲NO
MSO ̲NO GE 4? EXIT LOOP
END LOOP
END SEND ̲NOTIFIC
Fig. 4.2.1.6.7-1
4.2.1.6.8 R̲E̲M̲O̲V̲E̲
4.2.1.6.8.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure measures the length of
item queued in INCQ or OUTQ with precedence
flash or above and if the number in zero,
the main queue field is re-inverted.
4.2.1.6.8.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) REMOVE
b) REMOVE (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.8.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
FIELD ̲DESCRIPTOR ̲TYPE refer
4.1.4
FIELD ̲ATTRIBUTES ̲TYPE refer
CPS/DBD/001
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
Q ̲POINTER ̲TYPE refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
VDU ̲SPLIT ̲FLAG (m) refer 4.1.4
VDU ̲HEADER ̲AREA refer 4.1.4
Q ̲POINTER refer 4.1.4
HEADER ̲IFCB refer
4.1.4
FIELD ̲DESCR (m) refer 4.2.1.5
NEW ̲ATTR (m) refer
4.2.1.5
INT ̲ERROR ̲INF (m) refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR INVERT ̲FLAG BOOLEAN
CONST OUTQ ̲FIELD ̲NO = 8
CONST QUEUE ̲LINE ̲NO = 2
CONST INCQ ̲FIELD ̲NO = 7
4.2.1.6.8.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
For the actual queue, the sum of items
with precedence flash or above is measured
and new field attributes are set up.
A call to Format Handler is issued.
REMOVE
CASE Q ̲POINTER OF Q ̲POINTER ̲TYPE
INCQ ? VDU ̲HEADER ̲AREA.PREC1 +
VDU ̲HEADER ̲AREA.PREC2 GT 0? SET INVERT
̲FLAG = FALSE
MOVE "INCQ ̲FIELD ̲NO" TO FIELD ̲DESCRIP.FIELD
̲NO
MOVE "QUEUE ̲LINE ̲NO" TO FIELD ̲DESCRIP.LINE
̲NO
MOVE NULL TO FIELD ̲DESCRIP.INCARNATION
̲NO
MOVE NULL NEW ̲ATTR
SET INVERT ̲FLAG = TRUE
OUTQ? VDU ̲HEADER ̲AREA.PREC2 +
VDU ̲HEADER ̲AREA.PREC1 GT 0? SET INVERT
̲FLAG = FALSE
MOVE "OUTQ ̲FIELD ̲NO" TO FIELD ̲DESCRIP.FIELD
̲NO
MOVE "QUEUE ̲LINE ̲NO" TO FIELD ̲DESCRIP.LINE
̲NO
MOVE NULL TO FIELD ̲DESCRIP.INCARNATION
̲NO
MOVE NULL TO NEW ̲ATTR
SET INVERT ̲FLAG = TRUE
OTHERWISE ? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
INVERT ̲FLAG EQ FALSE ?
CASE CHANGE ̲FIELD ̲ATTR(HEADER ̲IFCB,FIELD
̲DESCRIP,
NEW ̲ATTR)(CC): ERROR
̲OK
ERROR ? CASE ANALYSE ̲ERROR (CC,1,VDU
̲SPLIT ̲FAILED):(L1)
L1? SET VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK ?
END CASE
END REMOVE
Fig. 4.2.1.6.8-1
4.2.1.6.9 G̲E̲T̲ ̲D̲A̲T̲E̲ ̲T̲I̲M̲E̲
4.2.1.6.9.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure reads current date and
time by calling Timer Monitor.
4.2.1.6.9.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲DATE ̲TIME(TIME)
b) GET ̲DATE ̲TIME (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.9.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TIME ̲TYPE ref. CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
VDU ̲HEADER ̲AREA (m) ref. 4.1.4
F ̲DTG ̲TIME ref. CPS/DBD/001
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.9.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer fig. 4.2.1.6.9-1
GET ̲DATE ̲TIME
CASE READ ̲TIME (F ̲DTG ̲TYPE)(VDU ̲HEADER ̲AREA.TIME,CC)(ERROR
̲OK)
ERROR ? ANALYSE ̲ERROR (CC, 0)
OK ?
END CASE
END GET ̲DATE ̲TIME
Fig. 4.2.1.6.9-1
4.2.1.6.10 I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲
4.2.1.6.10.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure changes attributes of fields
to be inverted (corresponding to queue
where flash items have arrived). Also
the bell on the VDU is sounded.
4.2.1.6.10.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INVERT ̲AND ̲BELL
b) INVERT ̲AND ̲BELL (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.16.10.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
FIELD ̲DESCRIPTOR ̲TYPE refer
CPS/DBD/001
FIELD ̲ATTRIBUTES ̲TYPE refer
CPS/DBD/001
Q ̲POINTER ̲TYPE refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
HEADER ̲IFCB refer
4.1.4
Q ̲POINTER refer 4.1.4
INT ̲ERROR ̲INF (m) refer 4.1.4
FIELD ̲DESCRIP (m) refer 4.2.1.5
VDU ̲SPLIT ̲FLAG (m) refer 4.1.4
HEADER ̲INCARNATION ̲NO refer
4.2.1.5
QUEUE ̲LINE ̲NO refer
4.2.1.5
INCQ ̲FIELD ̲NO refer
4.2.1.5
OUTQ ̲FIELD ̲NO refer
4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.10.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
The concerned queue is determined and
two calls are issued to Format Handler;
CHANGE ̲FIELD ̲ATTRIBUTES and SEND ̲CONTROL.
INVERT AND BELL
CASE Q ̲POINTER OF Q ̲POINTER ̲TYPE
INCQ? MOVE INCQ ̲FIELD ̲NO TO FIELD ̲DESCRIP.FIELD
̲NO
OUTQ ? MOVE OUTQ ̲FIELD ̲NO TO FIELD ̲DESCRIP.FIELD
̲NO
OTHERWISE ? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
MOVE QUEUE ̲LINE ̲NO TO FIELD ̲DESCRIP.LINE ̲NO
MOVE HEADER ̲INCARNATION ̲NO TO FIELD ̲DESCRIP.INCARNATION
̲NO
CASE CHANGE ̲FIELD ̲ATTR(HEADER ̲IFCB, FIELD
̲DESCRIP,
REVERSE ̲VIDEO)(CC):
ERROR ̲OK
ERROR ? CASE ANALYSE ̲ERROR (CC, 1, VDU
̲SPLIT ̲FAILED):(L1)
L1 ? SET VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK ?
END CASE
VDU ̲SPLIT ̲FLAG EQ TRUE?
CASE SEND ̲CONTROL (HEADER ̲IFCB, BELL): ERROR
̲OK
ERROR ? CASE ANALYSE ̲ERROR (CC, 1)(VDU
̲SPLIT ̲FAILED):(L2)
L2 ? S̲E̲T̲ ̲V̲D̲U̲ ̲S̲P̲L̲I̲T̲ ̲F̲L̲A̲G̲ ̲=̲ ̲T̲R̲U̲E̲
END CASE
OK ?
END CASE
END INVERT AND BELL
Fig. 4.2.1.6.10-1
4.2.1.6.11 G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲
4.2.1.6.11.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure measures the length of
queued item in a specific queue.
4.2.1.6.11.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲QUEUE ̲LENGTH
b) GET ̲QUEUE ̲LENGTH (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
T̲o̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲
None
4.2.1.6.11.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MSOS ̲SUBPROCESS ̲SINGLE ̲CAP refer
CPS/DBD/001
QUEUE ̲ATTRIBUTES refer CPS/DBD/001
Q ̲POINTER ̲TYPE
refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
Q ̲ATTR (m) refer 4.2.1.5
Q ̲REFERENCE refer
4.1.4
MSOS ̲IMQ refer 4.1.4
MSOS ̲OMQ refer 4.1.4
MSOS ̲ARRQ refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
CONST VUS ̲ARRQ = MSOS ̲VUS ̲ARRQ
VUS ̲RECVQ= MSOS ̲VUS ̲RECQ
VUS ̲RELSQ= MSOS ̲VUS ̲RELQ
4.2.1.6.11.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
In order to get queue length, a call is
issued and a max. limit is set if the
queue length exceeds 99.
GET ̲QUEUE ̲LENGTH
CASE Q ̲REFERENCE.MAIN OF Q ̲POINTER ̲TYPE
INCQ? Q ̲REFERENCE.MAINQ =MSOS
̲IMQ
OUTQ? O ̲REFERENCE.MAINQ =MSOS
̲OMQ
RESPQ? Q ̲REFERENCE.MAINQ =MSOS ̲ARRSQ
USER ̲RESP ̲Q? Q ̲REFERENCE.MAINQ =VUS
̲ARRQ
USER ̲RELS ̲Q? Q ̲REFERENCE.MAINQ =VUS
̲RELSQ
USER ̲RELS ̲Q? Q ̲REFERENCE.MAINQ =VUS
̲RECVQ
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
CASE GET ̲QUEUE ̲ATTRIBUTES (Q ̲ATTR,Q ̲REFERENCE)
(CC):ERROR ̲OK
ERROR? ANALYSE ̲ERROR(CC,0)
OK? Q ̲ATTR ̲QUEUE ̲LENGTH LE 100?
SET Q ̲ATTR.QUEUE ̲LENGTH =99
END CASE
END GET ̲QUEUE ̲LENGTH
Fig. 4.2.1.6.11-1
4.2.1.6.12 G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲
4.2.1.6.12.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure measures the number of
items on each precedence level and stores
the result in VDU ̲HEADER ̲AREA.
4.2.1.6.11.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲TOTAL ̲PREC
b) GET ̲TOTAL ̲PREC (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.12.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QUEUE ̲REFERENCE refer CPS/DBD/001
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
PRECEDENCE ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
Q ̲REFERENCE (m) refer 4.1.4
VDU ̲HEADER ̲AREA (m) refer 4.1.4
INT ̲ERROR ̲INF (m) refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR Q ̲VAR INTEGER
4.2.1.6.12.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
A loop is entered and each precedence
is measured one by one. The result is
stored in VDU ̲HEADER ̲AREA.
GET ̲TOTAL ̲PREC
SET Q ̲VAR = 1
LOOP
CASE Q ̲VAR OF
1? MOVE SUPERFLASH TO Q ̲REFERENCE.SUBQ
2? MOVE FLASH TO Q ̲REFERENCE.SUBQ
3? MOVE IMMEDIATE TO Q ̲REFERENCE.SUBQ
4? MOVE SUPER PRIORITY TO Q ̲REFERENCE.SUBQ
5? MOVE PRIORITY TO Q ̲REFERENCE.SUBQ
6? MOVE ROUTINE TO Q ̲REFERENCE.SUBQ
OTHERWISE T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
CASE Q ̲VAR OF
1? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
̲AREA.PREC1
2? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
̲AREA.PREC2
3? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
̲AREA.PREC3
4? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
̲AREA.PREC4
5? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
̲AREA.PREC5
6? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
̲AREA.PREC6
OTHERWISE ? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲
̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
END CASE
INCREMENT Q ̲VAR
Q ̲VAR GE 7? EXIT LOOP
END LOOP
Fig. 4.2.1.6.12-1
4.2.1.6.13 G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲
4.2.1.6.13.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure measures the number of
items queued with precedence flash or
above.
4.2.1.6.13.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲PREC ̲LENGTH
b) GET ̲PREC ̲LENGTH (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.13.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QUEUE ̲REFERENCE refer CPS/DBD/001
INTERNAL ̲ERROR ̲TYPE refer CPS/DBD/001
PRECEDENCE ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
PREC ̲POINTER refer
4.2.1.5
VDU ̲HEADER ̲AREA (m) refer 4.1.4
Q ̲ATTR (m) refer 4.2.1.5
Q ̲REFERENCE (m) refer 4.1.4
INT ̲ERROR ̲INF (m) refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.13.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
The number of items queue with the specific
precedence (Flash or Superflash) is measured
and the result is stored in VDU ̲HEADER
̲AREA.
GET PREC ̲LENGTH
MOVE PREC ̲POINTER TO Q ̲REFERENCE.SUBQ
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
CASE PREC ̲POINTER OF PRECEDENCE ̲TYPE
SUPERFLASH? MOVE Q ̲ATTR.QUEUE ̲LENGTH TO
VDU ̲HEADER ̲AREA PREC1
FLASH ? MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU
̲HEADER ̲AREA.PREC2
OTHERWISE ? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
END GET PREC ̲LENGTH
Fig. 4.2.1.6.13-1
4.2.1.6.14 G̲E̲T̲ ̲U̲S̲E̲R̲Q̲ ̲L̲E̲N̲G̲T̲H̲
4.2.1.6.14.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 procedure measures the total queue
length (RECV + RELS + RESP) in the associated
User process.
4.2.1.6.14.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
a) GET ̲USERQ ̲LENGTH
b) GET ̲USERQ ̲LENGTH (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.14.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
QUEUE ̲REFERENCE refer CPS/DBD/001
MSOS ̲SUBPROCESS ̲SINGLE ̲CAP refer
CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
VDU ̲HEADER ̲AREA (m) refer 4.1.4
Q ̲REFERENCE (m) refer 4.1.4
INT ̲ERROR ̲INF (m) refer 4.1.4
Q ̲ATTR refer
4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR USER ̲Q ̲NO INTEGER
CONST USER ̲RESP ̲Q = MSOS ̲VUS ̲ARRQ
CONST USER ̲RELS ̲Q = MSOS ̲VUS ̲RELQ
CONST USER ̲RECV ̲Q = MSOS ̲VUS ̲RECQ
4.2.1.6.14.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
A loop is entered and each user queue
length is measured one by one and
the sum is stored in VDU ̲HEADER ̲AREA.
GET ̲USERQ ̲LENGTH
SET VDU ̲HEADER ̲AREA.USER = 0
SET USER ̲Q ̲NO = 1
LOOP
CASE USER ̲Q ̲NO OF
1? MOVE USER ̲RESP ̲Q TO Q ̲REFERENCE.MAINQ
MOVE 2 TO Q ̲REFERENCE.SUBQ
2? MOVE USER ̲RELS ̲Q TO Q ̲REFERENCE.MAINQ
MOVE NULL TO Q ̲REFERENCE.SUBQ
3? MOVE USER ̲RECV ̲Q TO Q ̲REFERENCE.MAINQ
MOVE NULL TO Q ̲REFERENCE.SUBQ
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲
̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
̲AREA.USER
INCREMENT USER ̲Q ̲NO
USER ̲Q ̲NO GE 4? EXIT LOOP
END LOOP
END GET ̲USERQ ̲LENGTH
Fig. 4.2.1.6.14-1
4.2.1.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
4.2.1.7.1 S̲E̲V̲C̲O̲-̲S̲E̲F̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
The following commands are sent from SEVCO
to SEFCO via operation semaphore MSOS-S2.
INIT ̲SEFCO ̲CMD
RESTART ̲SEFCO ̲CMD
START ̲SEFCO ̲CMD
STOP ̲SEFCO ̲CMD
BLOCK ̲SEFCO ̲CMD
CLOSE ̲DOWN ̲SEFCO ̲CMD
4.2.1.7.2 The following completion codes are sent
from SEFCO to SEVCO via operation semaphore
MSOS ̲S1:
INIT ̲SEFCO ̲CC
RESTART ̲SEFCO ̲CC
START ̲SEFCO ̲CC
STOP ̲SEFCO ̲CC
BLOCK ̲SEFCO ̲CC
CLOSE ̲DOWN ̲SEFCO ̲CC
The following notifications is sent from
SEFCO TO ̲SEVCO
MSO ̲MODE ̲CHANGE
SEND ̲NOTIFICATION
SEND ̲ANTINOTIFICATION