top - download
⟦af7825e6b⟧ Wang Wps File
Length: 39953 (0x9c11)
Types: Wang Wps File
Notes: CPS/SDS/029, ISSUE 2
Names: »1737A «
Derivation
└─⟦20fb15aa2⟧ Bits:30006084 8" Wang WCS floppy, CR 0130A
└─ ⟦this⟧ »1737A «
WangText
3…00……00……00……00……16……0a……00……00……16……0b……16……00……16……02……16……06……15……08……15……0a……15……0c……15……0d……15……0f……15……02……15… …15……07……14……0a……14……0d……14……02……14……05……13……09……13……0d……13……01……13……86…1 …02… …02… …02…
…02…CPS/SDS/029
…02…850501…02……02…
SYSTEM STATUS AND CONTROL
DETAILED DESIGN SPECIFICATION…02…ISSUE 1…02…CAMPS
4.2.4 E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲a̲n̲d̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲D̲e̲s̲p̲a̲t̲c̲h̲e̲r̲
The Error Handler and Command Despatcher consists of
the two packages:
- Command Despatcher (CMD)
- System Error Handler (SEH)
In 4.2.4.1 - 4.2.4.6 the CMD is described meanwhile
SEH is described in 4.2.4.7-4.2.4-12.
C̲o̲m̲m̲a̲n̲d̲ ̲D̲e̲s̲p̲a̲t̲c̲h̲e̲r̲ ̲C̲M̲D̲
4.2.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲o̲f̲ ̲C̲M̲D̲
Command Despatcher Functions CMD are decomposed as
defined in fig. 4.2.4.1-1
4.2.4.1.1 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲
CMD awaits a start command from CFH. Thereafter it
initializes different service system and variables.
4.2.4.1.2 S̲e̲r̲v̲e̲ ̲I̲n̲p̲u̲t̲
During operation CMD receives commands from:
- MMON in the synchronization element SYSE
- IOC in the synchronization element DEVICE ̲SE
- CMI in the queue SYQ
- SUPERVISOR in the queue SYQ
- TEP in the queue SYQ
- TIMEOUTs in the queue SYQ
and error reported from IOC in the synchronilization
element DEVICE ̲SE via the OPERATION ̲SEMAPHORE CMD ̲OS
CMD
INITIALIZATION
SERVE ̲INPUT
DESPATCH INCOMING REPORTS
DESPATCH MMON COMMANDS
DESPATCH CMI TCP SUPERVISOR COMMAND
DESPATCH TIMEOUTS
CHANGE ATOMAL PRINTER
CLOSE DOWN
ERROR FIX UP
FIGURE 4.2.4.1-1
CMD FUNCTION DECOMPOSITION
4.2.4.1.3 D̲e̲s̲p̲a̲t̲c̲h̲ ̲I̲n̲c̲o̲m̲i̲n̲g̲ ̲R̲e̲p̲o̲r̲t̲s̲
4.2.4.1.3.1 D̲e̲s̲p̲a̲t̲c̲h̲ ̲M̲M̲O̲N̲-̲C̲o̲m̲m̲a̲n̲d̲s̲
MMON-command in despatch to TEMCO.
4.2.4.1.3.2 D̲e̲s̲p̲a̲t̲c̲h̲ ̲I̲O̲C̲-̲E̲v̲e̲n̲t̲
IOC-reports concerning WDP is sent of WAMCO.
IOC-command is despatch to TEMCO and DEMCO.
IOC ̲error reports is sent to CFH.
4.2.4.1.3.2.1 D̲e̲s̲p̲a̲t̲c̲h̲ ̲C̲M̲I̲,̲ ̲S̲u̲p̲e̲r̲v̲i̲s̲o̲r̲ ̲a̲n̲d̲ ̲T̲E̲P̲-̲C̲o̲m̲m̲a̲n̲d̲s̲
Depending on the command it is sent to CFH, TEMCO,
DEMCO or CEMCO.
4.2.4.1.3.2.2 D̲e̲s̲p̲a̲t̲c̲h̲ ̲T̲i̲m̲e̲o̲u̲t̲s̲
Depending on the EVENT ̲ID timeouts are sent to CFH
and SEH.
4.2.4.1.4 C̲h̲a̲n̲g̲e̲ ̲A̲t̲o̲m̲a̲l̲ ̲P̲r̲i̲n̲t̲e̲r̲
If a Supervisor command is ATOMAL ̲PRINTER ̲CHANGE CMD
calls a module to perform this.
4.2.4.1.5 C̲l̲o̲s̲e̲-̲D̲o̲w̲n̲ ̲o̲f̲ ̲C̲M̲D̲
When CMD has received a close-down command from CFH
it empties SYQ-SYSE and DEVICE ̲SE and despatches the
incoming reports. When this is done it signals to
CFH ̲S and wait for SYQ.
4.2.4.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲ ̲o̲f̲ ̲C̲M̲D̲
CMD is implemented in one coroutine CMD consists of
the modules:
- CMD ̲MAINPRG
- INIT ̲CMD
- SERVE ̲INPUT
- DESPATCH ̲MMON ̲COMMAND
- DESPATCH ̲SYQ ̲EVENT
- DESPATCH ̲IOC ̲EVENT
- CHANGE ̲ATOMAL ̲PRINTER
and the common procedures:
- INIT ̲SYS ̲CALL
- SEND ̲TO ̲TDC
- ERROR ̲CMD
For software structure of CMD see fig. 4.2.4.2-1
CMD ̲MAIN PRG
INIT ̲CMD
SERVE ̲INPUT
DESPATCH ̲MMON ̲COMMAND
DESPATCH ̲SYQ ̲EVENT
DESPATCH ̲IOC ̲EVENT
CHANGE ̲ATOMAL ̲PRINTER
SEND ̲TO ̲TDC
INIT ̲SYS ̲CALL
ERROR ̲CMD
FIGURE 4.2.4.2-1
SOFTWARE STRUCTURE OF CMD
4.2.4.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲ ̲i̲n̲ ̲C̲M̲D̲
For data flow see fig. 4.2.4.3-1. The dotted box around
CMD-OS indicates that CMD associates the waiting call
on SYSE, DEVICE ̲SE and SYQ to CMD ̲OS.
For Control Logic see fig. 4.2.4.3-2.
figure 4.2.4.3-1
CMD ̲MAINPRG
SERVE ̲INPUT
DESPATCH ̲MMON ̲COMMAND
SEND ̲TO ̲TDC
DESPATCH CMI SUPERVISOR TEP COMMAND
SEND ̲TO ̲TDC
DESPATCH IOC EVENT
SEND ̲TO ̲TDC
CHANGE ̲ATOMAL PRINTER
INIT ̲SYS ̲CALL
INIT ̲CMD
INIT ̲SYS ̲CALL
FIGURE 4.2.4.3-2
CONTROL LOGIC FOR CMD
4.2.4.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲C̲M̲D̲
4.2.4.4.1 C̲M̲D̲ ̲M̲A̲I̲N̲P̲R̲G̲
4.2.4.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̲
Initializes the coroutine. Serves the input. If a close-down
is started and CMD-OS is empty it signals to CFH ̲S
and awaits on SYQ.
4.2.4.4.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
N/A
4.2.4.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
- CMD ̲MAINPRG
- CMD ̲MAINPRG calls the module INIT ̲CMD
and the CSF-procedures
- SIGNAL ̲SEMAPHORE
4.2.4.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̲
CMD ̲OS see 4.1.4 Common COPSY data
CFH ̲S see 4.1.4 Common COPSY data
CLOSE ̲DOWN ̲STARTED,
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
CMD ̲OS
CFH ̲S
CLOSE ̲DOWN ̲STARTED
4.2.4.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The module INIT ̲CMD is called and a loop is entered,
in which it is checked, that close ̲down is not in progress.
If close ̲down is in program the loop is left and the
semaphore CFH ̲S is signalled else the module SERVE
̲INPUT is entered.
4.2.4.4.2 I̲N̲I̲T̲ ̲C̲M̲D̲
4.2.4.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̲
Waits for a start command from CFH. Define the service
system associated with SYSE and DEVICE ̲SE. Make a pool
to DEVICE ̲SE to report from devices. Initializes operations
and queue references.
4.2.4.4.2.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INIT ̲CMD
b) INIT ̲CMD(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
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 destr.
4.2.4.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
- INIT ̲CMD
- INIT ̲OPERATION ̲AND ̲SYQUEUE
INIT ̲CMD calls the common procedure
- INIT ̲SYS ̲CALL
and the CSF-procedures
- WAIT ̲OPSEM
- DEFINE ̲SERVICE ̲SYSTEM
- INIT ̲OPERATION
- ANALYSE ̲ERROR
and the PCF-procedure
- INIT ̲AWAIT
4.2.4.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲a̲n̲d̲ ̲C̲o̲n̲s̲t̲a̲n̲t̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CFH ̲CMD element in S ̲COMMAND ̲TYPE, see sec. 4.1.4
START ̲CMD element in subtype for CFH ̲CMD
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SYSE DBD
DEVICE ̲SE DBD
SYQ DBD
AWAIT ̲SYSE 4.2.4.5
AWAIT ̲DEVICE ̲SE 4.2.4.5
SYQUEUE 4.2.4.5
SYSE ̲OP 4.2.4.5
DEVICE ̲SE ̲OP 4.2.4.5
SYQ ̲OP 4.2.4.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
SYSE
DEVICE ̲SE
SYQ
AWAIT ̲SYSE.SS ̲ID (m)
AWAIT ̲SYSE.SS-CODE (m)
AWAIT ̲DEVICE ̲SE.SS ̲ID (m)
AWAIT ̲DEVICE ̲SE.SS ̲CODE (m)
SYQUEUE.MAINQUEUE (m)
SYQUEUE.SUBQUEUE (m)
SYSE ̲OP.CMD ̲TYPE (m)
SYSE ̲OP ̲CMD (m)
DEVICE ̲SE ̲OP.CMD ̲TYPE (m)
DEVICE ̲SE ̲OP ̲CMD (m)
SYQ ̲OP.CMD ̲TYPE (m)
SYQ ̲OP.CMD (m)
4.2.4.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
a) I̲N̲I̲T̲ ̲C̲M̲D̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Await a start command in CMD ̲OS. Defines the service
system associated with SYSE and DEVICE ̲SE. Make
a pool to device reports. Initiates the system
calls.
F̲l̲o̲w̲g̲r̲a̲m̲ ̲ see fig. 4.2.4.4.2.5-1
b) I̲N̲I̲T̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲A̲N̲D̲ ̲S̲Y̲Q̲U̲E̲U̲E̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Initializes SYQUEUE, SYSE ̲OP, DEVICE ̲SE ̲OP and
SYQ ̲OP
F̲l̲o̲w̲g̲r̲a̲m̲ see fig. 4.2.4.4.2.5-2
PROCEDURE INIT ̲CMD
BEGIN
WAIT ̲OPSEM(CMD ̲OS) (OP)
OP.CMD ̲TYPE NE CFH ̲CMD LOGOR
ERROR
̲CMD
? (NOT ̲RECEIVED
̲START
̲
CMD,0,
0)
OP.CMD NE START ̲COR
CASE DEFINE ̲SERVICE ̲SYSTEM(AWAIT ̲SYSE.SS ̲ID,PFC,BY
̲
SYNCEL,SYSE,PCF
̲SIZE) OF
ERROR ? ANALYZE ̲ERROR (CC,0)
OK ? AWAIT ̲SYSE.SS ̲CODE = 1
END CASE DEFINE ̲SERVICE ̲SYSTEM
CASE DEFINE ̲SERVICE ̲SYSTEM (AWAIT ̲DEVICE ̲SE.SS
̲ID,PCF,BY ̲SYN-
CEL,DEVICE ̲SE,PCF
̲SIZE) OF
ERROR ? ANALYZE ̲ERROR (CC, 0)
OK ? AWAIT ̲DEVICE ̲SE.SS ̲CODE = 1
END CASE DEFINE ̲SERVICE ̲SYSTEM
I = 0
LOOP
I = I + 1
CASE INIT ̲AWAIT (DEVICE ̲SE) (CC) OF
ERROR ? ANALYZE ̲ERROR (CC,0)
OK ?
END CASE INIT ̲AWAIT
I EQ NO ̲OF ̲DEVICE ̲ERROR ? EXIT
END LOOP
INIT ̲OPERATION ̲AND SYQUEUE
INIT ̲SYS ̲CALL (AWAIT ̲SYSEL)
INIT ̲SYS ̲CALL (AWAIT ̲DEVICE ̲SEL)
INIT ̲SYS ̲CALL (RECEIVE ̲FIRST ̲QEL ̲FROM ̲SYQ)
CLOSE ̲DOWN ̲STARTED = FALSE
END PROCEDURE INIT ̲CMD.
Figure 4.2.4.4.2.5-1
PROCEDURE
INIT ̲OPERATION ̲AND SYQUEUE
BEGIN
SYQUEUE ̲MAINQUEUE=SYQ
SYQUEUE ̲SUBQUEUE = 0
INIT ̲OPERATION(0, SYSE ̲OP)
SYSE ̲OP.CMD ̲TYPE=CMD ̲INIT ̲CMD
SYSE ̲OP.CMD AWAIT ̲SYSEL
INIT ̲OPERATION (0, DEVICE ̲OP)
DEVICE ̲SE ̲OP.CMD ̲TYPE=CMD ̲INIT ̲CMD
DEVICE ̲SE ̲OP.CMD=AWAIT ̲DEVICE ̲SEL.
INIT ̲OPERATION (0, SYQ ̲OP)
SYQ ̲OP.CMD ̲TYPE = CMD ̲INIT ̲CMD
SYQ ̲OP.CMD=RECEIVE ̲FIRST ̲QEL ̲FROM ̲SYQ
END PROCEDURE INIT ̲OPERATION ̲AND ̲SYQUEUE
Figure 4.2.4.4.2.5-2
4.2.4.4.3 S̲E̲R̲V̲E̲ ̲I̲N̲P̲U̲T̲
4.2.4.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̲
SERVE ̲INPUT receives an operation from CMD ̲OP and performs
this. Depending on the operation it calls a despatch
module. At last it associates a waiting call corresponding
to the one it received in the start to CMD ̲OP. If the
received operation is a STOP ̲COR-command CLOSE ̲DOWN
̲STARTED sets to TRUE.
4.2.4.4.3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
a) SERVE ̲INPUT
b) SERVE ̲INPUT (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
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 destroyed
4.2.4.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
SERVE ̲INPUT consists of two procedures:
- SERVE ̲INPUT
- SYQ ̲ACTION
SERVE ̲INPUT calls the modules/procedures
- DESPATCH ̲MMON ̲COMMAND
- DESPATCH ̲IOC ̲EVENT
- CHANGE ̲ATOMAL ̲PRINTER
- DESPATCH ̲SYQ ̲EVENT
- INIT ̲SYS ̲CALL
- ERROR ̲CMD
and the CSF procedures
- WAIT ̲OPSEM
- WAIT ̲SYSTEM ̲CALL
- SIGNAL ̲OPSEM
- ANALYSE ̲ERROR
4.2.4.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a 1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CMD ̲INIT ̲CMD and CFH ̲CMD elements in S ̲COMMAND
̲TYPE see sec. 4.1.4.
CMD ̲INIT ̲CMD subtype see sec. 4.1.4
STOP ̲COR elements in CFH ̲CMD subtype see sec.4.1.4
SUPV ̲CMD ̲L elements in L ̲COMMAND ̲TYPE see sec.4.1.4
ATOMAL ̲PRINTER ̲CHANGE,CAMPS ̲GO element in SUPERVISOR
̲SSC ̲COMMAND subtype
a 2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CFH ̲OS,
CMD ̲OS see sec. 4.1.4 common COPSY data
SYSE ̲INFO,
DEVICE ̲INFO,
SYQEL ̲ATTRIBUTES,
SYQEL,
SUBQUEUE ̲NO,
CLOSE ̲DOWN ̲STARTED,
OP
LONG ̲OP, see sec. 4.2.4.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
CFH ̲OS
CMD ̲OS
SYSE ̲INFO (m)
DEVICE ̲SE ̲INFO (m)
SYQEL ̲ATTRIBUTES (m)
SYQEL (m)
SUBQUEUE ̲NO (m)
CLOSE ̲DOWN ̲STARTED (m)
OP (m)
OP.CMD ̲TYPE
OP.CMD
LONG ̲OP
LONG ̲OP.CMD ̲TYPE (m)
LONG ̲OP.CMD (m)
4.2.4.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
a) S̲E̲R̲V̲E̲ ̲I̲N̲P̲U̲T̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Await an operation in CMD ̲OS. In a case statement
the different despatch procedure is called. If
the operation is a close-down command from CFH
CLOSE ̲DOWN ̲STARTED sets to TRUE.
F̲l̲o̲w̲g̲r̲a̲m̲, see fig. 4.2.4.4.3.5-1
b) S̲Y̲Q̲-̲A̲C̲T̲I̲O̲N̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
If a received QEL is a SUPERVISOR ̲SSC ̲COMMAND with
subtype equal to CAMPS-GO this is sent to CFH in
an operation of LONG ̲OP ̲TYPES. If it is ATOMAL
̲PRIN-
TER ̲CHANGE the module CHANGE ̲ATOMAL ̲PRINTER is
called. Else the module DESPATCH ̲SYQ ̲EVENT is called.
F̲l̲o̲w̲g̲r̲a̲m̲
See fig. 4.2.4.4.3.5-2
PROCEDURE SERVE ̲INPUT
BEGIN
WAIT ̲OPSEM (CMD ̲OS) (OP)
OP.CMD ̲TYPE EQ CMD ̲INIT ̲CMD ?
CASE OP.CMD
AWAIT ̲SYSEL ?
WAIT ̲SYSTEM ̲CALL (OP)(SYSE ̲INFO,COUNT,CC)
DESPATCH ̲MMON ̲COMMAND
INIT ̲SYS ̲CALL(AWAIT ̲SYSEL)
AWAIT ̲DEVICE ̲SEL ?
WAIT ̲SYSTEM ̲CALL(OP)(DEVICE ̲SE ̲INFO,COUNT,CC)
DESPATCH ̲IOC ̲EVENT
INIT ̲SYS ̲CALL(AWAITE ̲DEVICE ̲SEL)
RECEIVE ̲FIRST ̲QEL ̲FROM ̲SYQ ?
CASE WAIT ̲SYSTEM ̲CALL(OP)(SYQEL ̲ATTRIBUTES,SYQEL,SUBQUEUE
̲NO,CC)
ERROR? ANALYZE ̲ERROR(CC,0)
OK ?
SYQ ̲ACTION
INIT ̲SYS ̲CALL(RECEIVE ̲FIRST ̲QEL
̲FROM ̲SYQ)
END CASE WAIT ̲SYSTEM ̲CALL
OTHERWISE ? ERROR ̲CMD(RECEIVED ̲WRONG ̲OPERATION,0,0)
END CASE OP.CMD
OP.CMD ̲TYPE EQ CFH ̲CMD LOGAND
? CLOSE ̲DOWN
̲STARTED=TRUE
OP.CMD EQ STOP ̲COR SIGNAL ̲OPSEM(SHORT
̲OS,OP)
ERROR ̲CMD (RECEIVED ̲WRONG ̲OPERATION,0,0)
END PROCEDURE SERVE ̲INPUT
Figure 4.2.4.4.3.5-1
PROCEDURE
SYQ ̲ACTION
BEGIN
SYQEL ̲ATTRIBUTES.HEADER.MAINTYPE EQ SUPERVISOR ̲SSC
̲COM-
MAND ?
SYQEL ̲ATTRIBUTES.HEADER.SUBTYPE EQ CAMPS ̲GO ?
WAIT ̲OPSEM (LONG ̲OS)(LONG ̲OP)
LONG ̲OP.CMD ̲TYPE = SUPV ̲CMD ̲L
LONG ̲OP.CMD = CAMPS ̲GO
SIGNAL ̲OPSEM (CFH ̲OS,LONG ̲OP)
SYQEL ̲ATTRIBUTES.HEADER.SUBTYPE EQ ATOMAL ̲PRIN-
TER ̲CHANGE
?
CHANGE ̲ATOMAL ̲PRINTER
DESPATCH ̲SYQ ̲EVENT
DESPATCH ̲SYQ ̲EVENT
END PROCEDURE SYQ ̲ACTION
Figure 4.2.4.4.3.5-2
4.2.4.4.4 D̲I̲S̲P̲A̲T̲C̲H̲-̲M̲M̲O̲N̲ ̲C̲O̲M̲M̲A̲N̲D̲
4.2.4.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̲
Sends the MMON-Command to TEMCO.
4.2.4.4.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
a) DESPATCH ̲MMON ̲COMMAND
b) DESPATCH ̲MMON ̲COMMAND (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
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 destroyed
4.2.4.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
DESPATCH ̲MMON ̲COMMAND
Calls the procedure
- SEND ̲TO ̲TOC
- ERROR ̲CMV
and the CSF-procedures
- WAIT ̲OPSEM
4.2.4.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̲
SHORT ̲OS see sec. 4.1
SHORT ̲OP see sec. 4.2.4.4.5
SYSE ̲INFO see sec. 4.2.4.4.5
SUBPROCESS ̲TABLE see sec. 4.1.4 common COPSY
data
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
SHORT-OS
SHORT ̲OP.CMD ̲TYPE (m)
SHORT ̲OP.CMD (m)
SHORT ̲OP.REFERENCE (m)
SHORT ̲OP
SYSE ̲INFO.COMMAND
SYSE ̲INFO.MMON ̲REFERENCE
SYSE ̲INFO.SENDER
SUBPROCESS ̲TABLE (LOGICAL ̲NO)
c) I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
VAR LOGICAL ̲NO:INTEGER
Use to indicate which logical VDU the command
shall be sent to.
4.2.4.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Takes a SHORT ̲OP from the pool. Set the parameter in
this. Finds with help of SUBPROCESS ̲TABLE the coroutine
to which the SHORT ̲OP is sent.
F̲l̲o̲w̲g̲r̲a̲m̲ see fig. 4.2.4.4.4.5-1
PROCEDURE ̲DESPATCH ̲MMON ̲COMMAND
BEGIN
WAIT ̲OPSEM(SHORT ̲OS) (SHORT ̲OP)
SHORT ̲OP.CMD ̲TYPE=MMON ̲COMMAND
SHORT ̲OP.CMD=SYSE ̲INFO.COMMAND
SHORT ̲OP.REFERENCE=SYSE ̲INFO.MMON ̲REFERENCE
LOGICAL ̲NO=0
LOOP
LOGICAL ̲NO=LOGICAL ̲NO + 1
SYSE ̲INFO.SENDER=SUBPROCESS ̲TABLE(LOGICAL ̲NO)?
SEND ̲TO ̲TDC (VDU,LOGICAL ̲NO,) EXIT
LOGICAL ̲NO GE MAX ̲VDU ̲SUBPROCESSES ?
ERROR ̲CMD (MMON ̲ERROR,0,0 EXIT
END LOOP
END PROCEDURE DESPATCH ̲MMON ̲COMMAND
Figure 4.2.4.4.4.5-1
4.2.4.4.5 D̲I̲S̲P̲A̲T̲C̲H̲ ̲I̲O̲C̲ ̲E̲V̲E̲N̲T̲
4.2.4.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̲
DESPATCH ̲IOC ̲EVENT sends IOC-error-reports to CFH and
IOC-commands to TEMCO.
4.2.4.4.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
a) DESPATCH ̲IOC ̲EVENT
b) DESPATCH ̲IOC ̲EVENT (R6)
R̲e̲g̲i̲s̲t̲e̲r̲s̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 destroyed
4.2.4.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The DESPATCH ̲IOC ̲EVENT module contains the three procedures:
- DESPATCH ̲IOC ̲EVENT
- DESPATCH ̲IOC ̲REPORT
- DESPATCH ̲IOC ̲COMMAND
It calls the procedure
- SEND ̲TO ̲TDC
and send the CSF-procedure
- WAIT ̲OPSEM
- SIGNAL ̲OPSEM
4.2.4.4.5.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TMS ̲INF see sec. 4.1.4 SSC internal interface
type
REPORT ̲TYPE see sec. 4.1.4 SSC internal interface
type
WHERE ̲TO ̲TYPE see sec. 4.2.4.5
a2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
DEVICE ̲SE ̲INFO see 4.2.4.5
SHORT ̲OP see 4.2.4.5
LONG ̲OP see 4.2.4.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
DEVICE ̲SE ̲INOF
DEVICE ̲SE ̲INFO equivalent to DEVICE ̲SE ̲INF
DEVICE ̲SE ̲INF.ACTION
DEVICE ̲SE ̲INF.U ̲SDID.PROFILE ̲TYPE
DEVICE ̲SE ̲INF.U ̲SDID.LOGICAL ̲NO
DEVICE ̲SE ̲INF.STATUS
SHORT ̲OP.CMD ̲TYPE (m)
SHORT ̲OP.CMD (m)
LONG ̲OP.CMD (m)
LONG ̲OP ̲INF(I)
c) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.4.4.5.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
a) D̲I̲S̲P̲A̲T̲C̲H̲ ̲I̲O̲C̲ ̲E̲V̲E̲N̲T̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
If the report is a TMS report the type of a TMS
report is impressed on DEVICE-INFO. Depending on
the profile type and status a despatch procedure
is called.
If the report is a FMS report DESPATCH-IOC-REPORT
is called.
F̲l̲o̲w̲g̲r̲a̲m̲
See fig. 4.2.4.4.5.5-1
b) D̲I̲S̲P̲A̲T̲C̲H̲ ̲I̲O̲C̲ ̲R̲E̲P̲O̲R̲T̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
An operation of LONG ̲OP ̲TYPE is received from LONG
̲OP. The report is copied over in the information
field of the operation. Depending on where the
report is to be sent the CMD ̲TYPE and CMD is set.
The operation is sent.
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) DESPATCH ̲IOC ̲REPORT(WHERE ̲TO:WHERE ̲TO ̲TYPE, REPORT:
REPORT
̲TYPE)
b) D̲I̲S̲P̲A̲T̲C̲H̲ ̲I̲O̲C̲ ̲R̲E̲P̲O̲R̲T̲ ̲(̲R̲0̲,̲ ̲R̲1̲,̲ ̲R̲6̲)̲
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̲
R0 WHERE ̲TO
R1 REPORT
R6 link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0-R7 destr.
F̲l̲o̲w̲g̲r̲a̲m̲ See fig. 4.2.4.4.5.5-2
c) D̲I̲S̲P̲A̲T̲C̲H̲ ̲I̲O̲C̲ ̲C̲O̲M̲M̲A̲N̲D̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Take a SHORT ̲OP from the common pool, sets the
parameters and sends it to TEMCO, DEMCO or CEMCO.
F̲l̲o̲w̲g̲r̲a̲m̲ See fig. 4.2.4.4.5.5-3
PROCEDURE
DESPATCH ̲IOC ̲EVENT
BEGIN
DEVICE ̲SE ̲INFO(7)(BIT 8-BIT15)EQ TMS ?
EQVIVALENCE(DEVICE ̲SE ̲INFO,(8)DEVICE ̲SE ̲INF:TMS ̲INF)
CASE DEVICE ̲SE ̲INF.U ̲SDID.PROFILE ̲TYPE OF
TERMINAL ̲P,DEVICE ̲P ̲CHANNEL ̲P ?
DEVICE ̲SE ̲INF.STATUS EQ SD ̲OTHER ̲STATUS ?
DESPATCH ̲IOC ̲COMMAND
DESPATCH ̲IOC ̲REPORT(CFH,TMS ̲R)
STLP,TIA ̲P,LTUX ̲P,LTU ̲P,MAP ̲P ?
DESPATCH ̲IOC ̲REPORT (CFH,TMS ̲R)
PHYS ̲WDP ̲P,WDD ̲P,WDP ̲VDU ̲P,WDP ̲ROP ̲P?
DESPATCH ̲IOC ̲REPORT(WAMCO.TMS ̲R)
END CASE DEVICE ̲SE ̲INFO ̲US DID ̲PROFILE ̲TYPE
DESPATCH ̲IOC ̲REPORT(CFH,FMS ̲R)
END PROCEDURE DESPATCH ̲IOC ̲EVENT
Figure 4.2.4.4.5.5-1
PROCEDURE
DESPATCH ̲IOC ̲REPORT(WHERE ̲TO:WHERE ̲TO ̲TYPE,REPORT:REPORT ̲TYPE)
BEGIN
WAIT ̲OPSEM(LONG ̲OS)(LONG ̲OP)
I=O
LOOP
I = I + 1
LONG ̲OP.INF(I)=DEVICE ̲SE ̲INFO(I)
I EQ PCF ̲SIZE ? EXIT
END LOOP
CASE WHERE ̲TO OF
WAMCO ? LONG ̲OP.CMD ̲TYPE=DEVICE ̲ERROR
LONG ̲OP.CMD=DEVICE ̲SE ̲INF.U ̲SDID.PROFILE ̲TYPE
SIGNAL ̲OPSEM(WDP ̲OS,LONG ̲OP)
CFH ? LONG ̲OP ̲CMD ̲TYPE=DEVICE ̲ERROR
LONG ̲OP ̲CMD=REPORT
SIGNAL ̲OPSEM (CFH ̲OS,LONG ̲OP)
END CASE WHERE ̲TO
END PROCEDURE DESPATCH ̲IOC ̲REPORT
Figure 4.2.4.4.5.5-2
PROCEDURE DESPATCH ̲IOC ̲COMMAND
BEGIN
WAIT ̲OPSEM(SHORT ̲OS)(SHORT ̲OP)
SHORT ̲OP.CMD ̲TYPE=IOC ̲CMD
SHORT ̲OP.CMD=DEVICE ̲SE ̲INF.USER ̲ACTION
CASE DEVICE ̲SE ̲INF.U ̲SDID.PROFILE ̲TYPE
TERMINAL ̲P? SEND ̲TO ̲TDC(VDU,DEVICE ̲SE ̲INF.U ̲SDID.LOGICAL
̲NO)
DEVICE ̲P? SEND ̲TO ̲TDC(SAD,DEVICE ̲SE ̲INF.U ̲SDID.LOGICAL
̲NO)
CHANNEL ̲P? SEND ̲TO ̲TDC(EXC,DEVICE ̲SE ̲INF.U ̲SDID.LOGICAL
̲NO)
END CASE LINE ̲SE ̲INFO.U ̲SDID ̲PROFILE ̲TYPE
END PROCEDURE DESPATCH ̲IOC ̲COMMAND
Figure 4.2.4.4.5.5-3
4.2.4.4.6 D̲I̲S̲P̲A̲T̲C̲H̲ ̲S̲Y̲Q̲ ̲E̲V̲E̲N̲T̲
4.2.4.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̲
Depending on the maintype and subtype of SYQEL ̲ATTRIBUTES
DESPATCH ̲SYQ ̲OPR sends commands to CHF,TEMCO,DEMCO,CEMCO.
4.2.4.4.6.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
a) DESPATCH ̲SYQ ̲EVENT
b) DDSPATCH ̲SYQ ̲EVENT
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̲
R 6 link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R 0 - R 7 destroyed
4.2.4.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The DESPATCH ̲SYQ ̲EVENT module contains the procedures
- DESPATCH ̲SYQ ̲EVENT
- DESPATCH ̲SUPERVISOR ̲TEP ̲COMMAND
- DESPATCH ̲CMI ̲COMMAND
- DESPATCH ̲TIMEOUTS
- DESPATCH ̲CSF ̲CMD
This module calls the procedures
- SEND ̲TO ̲TDC
- ERROR ̲CMD
and the CSF-procedures
- WAIT ̲OPSEM
- SIGNAL ̲OPSEM
4.2.4.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̲
SYQEL ̲ATTRIBUTES see 4.2.4.5
SYQEL see 4.2.4.5
SHORT ̲OS see 4.1.4
SHORT ̲OP see 4.2.4.5
LONG ̲OS see 4.1.4
LONG ̲OP see 4.2.4.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
SYQEL ̲ATTRIBUTES.HEADER.MAINTYPE
SYQEL ̲ATTRIBUTES.HEADER.SUBTYPE
SYQEL ̲ATTRIBUTES.HEADER.INFORMATION
SYQEL ̲ATTRIBUTES.INFORMATION (I)
SYQEL
SHORT ̲OS
SHORT ̲OP.CMD ̲TYPE (m)
SHORT ̲OP.CMD (m)
SHORT ̲OP.REFERENCE (m)
LONG ̲OS
LONG ̲OP.CMD ̲TYPE (m)
LONG ̲OP.CMD (m)
LONG ̲OP.FLAG (m)
LONG ̲OP.INFORMATION (I) (m)
c) I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
VAR I: INTEGER
Used as counter in loop-statements
4.2.4.4.6.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
A̲)̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲D̲I̲S̲P̲A̲T̲C̲H̲ ̲S̲Y̲Q̲ ̲E̲V̲E̲N̲T̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Depending on SYQ ̲ATTRIBUTES.HEADER.MAINTYPE a despatch
procedure is called.
F̲l̲o̲w̲g̲r̲a̲m̲ See fig. 4.2.4.4.6.5-1
B̲)̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲D̲I̲S̲P̲A̲T̲C̲H̲ ̲S̲U̲P̲E̲R̲V̲I̲S̲O̲R̲ ̲T̲E̲P̲ ̲C̲O̲M̲M̲A̲N̲D̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Receive a SHORT ̲OP from SHORT ̲OS set the parameters
in this and sends it to the destination which is
indicated by SYQEL ̲ATTRIBUTES.HEADER.INFORMATION.
F̲l̲o̲w̲g̲r̲a̲m̲ ̲ See fig. 4.2.4.4.6.5-2
C̲)̲ ̲D̲I̲S̲P̲A̲T̲C̲H̲ ̲C̲M̲I̲ ̲C̲O̲M̲M̲A̲N̲D̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Receives a LONG ̲OP from LONG ̲OS sets the parameters
in this and sends it to CFH ̲OS.
F̲l̲o̲w̲g̲r̲a̲m̲ See fig. 4.2.4.4.6.5-3
D̲)̲ ̲D̲I̲S̲P̲A̲T̲C̲H̲ ̲T̲I̲M̲E̲O̲U̲T̲S̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Depending on the event-id of the timeout, a long operation
is sent to CFH or SEH.
F̲l̲o̲w̲g̲r̲a̲m̲ See fig. 4.2.4.4.6.5-3
E̲)̲ ̲D̲E̲S̲P̲A̲T̲C̲H̲ ̲C̲S̲F̲ ̲C̲M̲D̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
CSF signals SSC, when resource shortage in detected
or the resource level in back to normal. The CEMCO,
DEMCO, TEMCO coroutines are notified.
The DEMCO and CEMCO coroutines signals their associated
processes to stop, whereas, TEMCO signals the VDU coroutines
to ENTER/LEAVE a resource stortage level action.
PROCEDURE
DESPATCH ̲SYQ ̲EVENT
BEGIN
CASE SYQEL ̲ATTRIBUTES.HEADER.MAINTYPE
SUPERVISOR ̲SSC ̲COMMAND,REQUEST ̲TO ̲SSC ?
DESPATCH ̲SUPERVISOR ̲TEP ̲COMMAND
CMI ̲COMMAND ̲TO ̲COPSY?
CSF ̲CMD ? - DESPATCH ̲CSF ̲CMD
SSC ̲INTERNAL ?
DESPATCH ̲CMI ̲COMMAND
TIMEOUT ?
DESPATCH ̲TIMEOUTS
OTHERWISE ? ERROR ̲CMD (MAINTYPE ̲ERROR,0,0)
END CASE SYQEL ̲ATTRIBUTES.HEADER.MAINTYPE
END PROCEDURE DESPATCH ̲SYQ ̲EVENT
Figure 4.2.4.4.6.5-1
PROCEDURE DESPATCH ̲SUPERVISOR ̲TEP ̲COMMAND
BEGIN
WAIT ̲OPSEM(SHORT ̲OS)(SHORT ̲OP)
SHORT ̲OP.CMD=SYQEL ̲ATTRIBUTES.HEADER.SUBTYPE
SHORT ̲OP.REFERENCE=SYQEL
CASE SYQEL ̲ATTRIBUTES.MAINTYPE OF
SUPERVISOR ̲SSC ̲COMMAND ?
SHORT ̲OP.CMD ̲TYPE=SUPV ̲CMD
CASE SYQEL ̲ATTRIBUTES.HEADER.SUBTYPE OF
BLOCK ̲TERMINAL,UNBLOCK ̲TERMINAL,TERMINAL ̲PROFILE ̲CHANGE ?
SEND ̲TO ̲TDC(VDU,SYQEL ̲ATTRIBUTES.HEADER.INFORMATION
ACCEPT ̲SAD,NON ̲ACCEPT ̲SAD.DEVICE ̲PROFILE ̲CHANGE ?
SEND ̲TO ̲TDC(SAD,SYQEL ̲ATTRIBUTES,INFORMATION
ACCEPT ̲EXC.NON ̲ACCEPT ̲EXC ?
SEND ̲TO ̲TDC(EXC,SYQEL ̲ATTRIBUTES.HEADER.INFORMATION
CIRCUIT ̲PROFILE ̲CHANGE ?
SHORT ̲OP.INFORMATION=SYQEL ̲ATTRIBUTES.HEADER.INFORMATION
SEND ̲TO ̲TDC(EXC, 1)
OTHERWISE ? ERROR ̲CMD(SUBTYPE ̲ERROR,0,0)
END CASE SYQEL ̲ATTRIBUTES.HEADER.SUBTYPE
REQUEST ̲TO ̲SSC ?
SHORT ̲OP ̲CMD ̲TYPE=TEP ̲CMD
SEND ̲TO ̲TDC(VDU,SYQEL ̲ATTRIBUTES.HEADER.INFORMATION
END CASE SYQE ̲ATTRIBUTES.HEADER.MAINTYPE
END PROCEDURE DESPATCH ̲SUPERVISOR ̲TEP ̲COMMAND
Figure 4.2.4.4.6.5-2
PROCEDURE DESPATCH ̲CMI ̲COMMAND
VAR I:INTEGER
BEGIN
WAIT ̲OSEM(LONG ̲OS)(LONG ̲OP)
LONG ̲OP.CFH ̲MAINTYPE=CMI ̲CMD ̲I
LONG ̲OP.CFH ̲SUBTYPE=SYQEL ̲ATTRIBUTES.HEADER.SUBTYPE
LONG ̲OP.INF(1)G=SYQEL
SYQEL ̲ATTRIBUTES.OBJECT EQ BUFFER
LONG ̲OP.REP = BUFFER ̲R
LONG ̲OP.REP = QEL ̲R
I=O
LONG ̲OP.INF(2) = SYQEL ̲ATTRIBUTES.HEADER.INF
LOOP
I=I + 1
LONG ̲OP.INF(I+2)= SYQEL ̲ATTRIBUTES.INFORMATION
(I)
I = 3 ? EXIT
END LOOP
SIGNAL ̲OPSEM (CFH ̲OS,LONG ̲OP)
END PROCEDURE DESPATCH ̲CMI ̲COMMAND
Figure 4.2.4.4.6.5-3
PROCEDURE
DESPATCH ̲TIMEOUTS
BEGIN
SYQEL ̲ATTRIBUTES.SUBTYPE EQ TIMEOUT ̲EVENTS
CASE SYQEL ̲ATTRIBUTES.HEADER.FLAG
FINAL ̲CLOSE ̲DOWN ̲EVENT ?
WAIT ̲OPSEM (LONG ̲OS) (LONG ̲OP)
LONG ̲OP. CMD ̲TYPE=CMI ̲CMD ̲L
LONG ̲OP.CMD=CLOSE ̲DOWN ̲FINAL
SIGNAL ̲OPSEM (CFH ̲OS, LONG ̲OP)
RESET ̲PROCESS ̲TABLE ̲EVENT?
WAIT ̲OPSEM)LONG ̲OS)(LONG ̲OP)
LONG ̲OP.CMD ̲TYPE = SEH ̲INT ̲CMD
LONG ̲OP.CMD = RESET ̲PRL ̲TBL
SIGNAL ̲OPSEM(SEH ̲OS.LONG ̲OP)
OTHERWISE ? ERROR ̲CMD(TIMEOUT ̲ERROR,O,0)
END CASE SYQEL ̲ATTRIBUTES.HEADER.FLAG
ERROR ̲CMD (TIMEOUT ̲ERROR, 0,0)
END PROCEDURE DESPATCH ̲TIMEOUTS
Figure 4.2.4.4.6.5-4
4.2.4.4.7 C̲H̲A̲N̲G̲E̲ ̲A̲T̲O̲M̲A̲L̲ ̲P̲R̲I̲N̲T̲E̲R̲
4.2.4.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̲
Change of Atomal Printer happens in following steps:
1) Insert special handling capability = ATOMAL in
the new Atomal Queue
2) Change single capability for all:
- VDU
- MSO
- MDSO
subprocesses
3) Set system parameter equal to new atomal printer
4) Remove special handling capability = ATOMAL from
the old atomal queue. The alternative queue is
the new atomal queue.
4.2.4.4.7.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHANGE ̲ATOMAL ̲PRINTER (NEW ̲ATOMAL ̲PRINTER:
LOGICAL ̲DEVICE ̲NO ̲TYPE)
b) CHANGE ̲ATOMAL ̲PRINTER (R3, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲nt̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 3 NEW ̲ATOMAL ̲PRINTER
R 6 link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 0 - R 7 destroyed
4.2.4.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
CHANGE ̲ATOMAL ̲PRINTER
4.2.4.4.7.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a 1) T̲y̲p̲e̲ ̲a̲n̲d̲ ̲C̲o̲n̲s̲t̲a̲n̲t̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
LOGICAL ̲DEVICE ̲NO ̲TYPE DBD
NO ̲OF ̲VDUS DBD
NO ̲OF ̲MSOS DBD
NO ̲OF ̲MDCOS DBD
a 2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
NEW ̲ATOMAL ̲PRINTER IF-data
DISTRIBUTION ̲PARAMETER DBD
FIRST ̲VDU ̲NO 4.1.4
FIRST ̲VDU ̲PRINTER ̲Q 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
NEW ̲ATOMAL ̲PRINTER
DISTRIBUTION ̲PARAMETER
FIRST ̲VDU ̲NO
FIRST ̲VDU ̲PRINTER ̲Q
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR OLD ̲ATOMAL ̲PRINTER:LOGICAL ̲DEVICE ̲NO ̲TYPE
"keep the logical no of the old atomal printer
VAR ATTR:QUEUE ̲ATTRIBUTES
"keep the information of the new and old atomal
printer queue
VAR OLD ̲ATOMAL ̲Q, NEW ̲ATOMAL ̲Q:QUEUE ̲REFERENCE
VAR DISTR:DISTRIBUTION ̲PARAMETER ̲TYPE
4.2.4.4.7.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Find the logical number of the old atomnal printer.
Find the references to the queue corresponding to the
new atomal printer. Change the PROFILE to ATOMAL ̲CAPABILITY
in the new atomal queue. Change the single capability
associated with the ATOMAL ̲PRINTER (PRIS ̲PRIS ̲PRINTER)
for all VDUs, MSOs and MDCOs. -1 in SET ̲CAPABILITY
indicates that the functions are unchanged. Set the
system parameters for atomal printer to the new atomal
printer. Change the profile of the old atomal queue
(as alt. queue the new atomal queue is used).
F̲l̲o̲w̲g̲r̲a̲m̲ See fig. 4.2.4.4.7.5-1
PROCEDURE CHANGE ̲ATOMAL ̲PRINTER(NEW ̲ATOMAL ̲PRINTER:
LOGICAL ̲DEVICE ̲NO ̲TYPE)
VAR
OLD ̲ATOMAL ̲PRINTER:LOGICAL ̲DEVICE ̲NO ̲TYPE
DISTR:DISTRIBUTION ̲PARAMETER ̲TYPE
ATTR: QUEUE ̲ATTRIBUTES
OLD ̲ATOMAL ̲Q: QUEUE ̲REFERENCE
NEW ̲ATOMAL ̲Q:
CONST ̲ATOMAL ̲CAPABILITY=BIT 4
BEGIN
GET ̲SYSTEM ̲PARAMETER(DISTRIBUTION ̲PARAMETER)(DISTR)
OLD ̲ATOMAL ̲PRINTER=DISTR.ATOMAL ̲PRINTER ̲LOG ̲NO
NEW ̲ATOMAL ̲Q.MAINQUEUE=FIRST ̲VDU ̲PRINTER ̲Q+NEW ̲ATOMAL ̲PRINTER-1 +
GLOBAL ̲GROUP
NEW ̲ATOMAL ̲Q.SUBQUEUE=0
GET ̲QUEUE ̲ATTRIBUTES (ATTR.NEW ATOMAL ̲Q) (CC)
ATTR.PROFILE = ATTR.PROFILE LOGOR ATOMAL ̲CAPABILITY
SET ̲PROFILE (ATTR.PROFILE,NEW ̲ATOMAL ̲Q,NIL)(CC)
I=O
LOOP
I=I+1
SET ̲CAPABILITY (-1,FIRST ̲VDU ̲NO+I-1,NEW ̲ATOMAL ̲Q,
PRIS ̲PRIS ̲PRINTQ) (CC)
I EQ NO ̲OF ̲VDUS + NO ̲OF ̲MSOS + NO ̲OF ̲MDCOS ? EXIT
END LOOP
DISTR.ATOMAL ̲PRINTER ̲LOG ̲NO=NEW ̲ATOMAL ̲PRINTER
SET ̲SYSTEM ̲PARAMETER(DISTRIBUTION ̲PARAMETER, DISTR)
OLD ̲ATOMAL ̲Q.MAIN ̲QUEUE=FIRST ̲VDU ̲PRINTER ̲Q+OLD ̲ATOMAL ̲PRINTER-1
GET ̲QUEUE ̲ATTRIBUTE (ATTR,OLD ̲ATOMAL ̲Q)(CC)
ATTR.PROFILE = ATTR.PROFILE LOGAND(INVERSE ATOMAL ̲CAPABILITY)
SET ̲PROFILE(ATTR.PROFILE,OLD ̲ATOMAL ̲Q,NEW ̲ATOMAL ̲Q)(CC)
END CHANGE ̲ATOMAL ̲PRINTER
Figure 4.2.4.4.7.5-1
4.2.4.5 C̲o̲m̲m̲o̲n̲ ̲C̲M̲D̲-̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲
4.2.4.5.1 E̲X̲T̲E̲R̲N̲A̲L̲ ̲D̲A̲T̲A̲
SYSE see DBD
SYQ see DBD
DEVICE ̲SE see DBD
VDU ̲OS see 4.1.4
SAD ̲OS see 4.1.4
EXC ̲OS see 4.1.4
CFH ̲OS see 4.1.4
SHORT ̲OS see 4.1.4
LONG ̲OS see 4.1.4
SUBPROCESS ̲TABLE see 4.1.4
4.2.4.5.2 I̲N̲T̲E̲R̲N̲A̲L̲ ̲D̲A̲T̲A̲
4.2.4.5.2.1 T̲Y̲P̲E̲ ̲D̲E̲F̲I̲N̲I̲T̲I̲O̲N̲
QUEUE ̲REFERENCE see DBD
QEL ̲REFERENCE see DBD
QEL ̲ATTRIBUTES see DBD
OPEN ̲NOTIFICATION see DBD
OPERATION see DBD
OPERATION ̲SEMAPHORE see DBD
SCM ̲FUNCTION see DBD
CMD ̲INIT ̲CMD subtype see 4.1.4
TYPE WHERE ̲TO ̲TYPE=(VDU,SAD,EXC,WAMCO,CFH)
LONG ̲OP ̲TYPE see 4.1.4
SHORT ̲OP ̲TYPE see 4.1.4
TYPE SYS ̲CALL ̲TYPE=(AWAIT ̲SYSEL,AWAIT ̲LINE ̲SEL,
RECEIVE ̲FIRST ̲QEL ̲FROM ̲SYQ)
TYPE CMD ̲ERROR ̲TYPE=(NOT ̲RECEIVED ̲START ̲CMD,
RECEIVED ̲WRONG ̲OPERATION,
MMON ̲ERROR,
MAINTYPE ̲ERROR,
SUBTYPE ̲ERROR
TIMEOUT ̲ERROR
LOGICAL ̲NO ̲ERROR)
4.2.4.5.2.2 V̲a̲r̲i̲a̲b̲l̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
VAR AWAIT ̲DEVICE ̲SE,AWAIT ̲SYSE:SCM ̲FUNCTION
used as system function
VAR OP:SHORT ̲OP ̲TYPE
"Keep information about a received operation.
VAR DEVICE ̲OP, SYSE ̲OP, SYQ ̲OP:SHORT ̲OP ̲TYPE
keep the waiting operator in DEVICE ̲SE,SYSE and
SYQ. The parameter CMD indicate what kind of operation
the variable is.
VAR SHOR ̲OP:SHORT ̲OP ̲TYPE
used for further commands sending to TEMCO, DEMCO
and CEMCO.
VAR LONG ̲OP:LONG ̲OPR ̲TYPE
used for further commands and error-reports to
CFH and WAMCO
VAR DEVICE ̲SE ̲INFO:ARRAY (1..PCF ̲SIZE) OF INTEGER
keep the information received from LINE ̲SE
VAR SYSE ̲INFO ̲OPEN:NOTIFICATION
keep the information received from SYSE
VAR SYQUEUE:QUEUE ̲REFERENCE
pointer to SYQ
VAR SUBQUEUE ̲NO:INTEGER
VAR SYQEL:QEL ̲REFERENCE
pointer to a received QEL.
VAR SYQEL ̲ATTRIBUTES:QEL ̲ATTRIBUTES
keep a received QELs attributes.
4.2.4.6 C̲o̲m̲m̲o̲n̲ ̲C̲M̲D̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲
4.2.4.6.1 I̲N̲I̲T̲ ̲S̲Y̲S̲ ̲C̲A̲L̲L̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
INIT ̲SYS ̲CALL initiates the system calls AWAIT ̲SYSE,
AWAIT ̲LINE ̲SE and RECEIVE ̲FIRST ̲QEL and associates
the corresponding coroutine-operations to the operation-semaphore
CMD ̲OS.
I̲n̲t̲e̲r̲f̲a̲c̲e̲
a) INIT ̲SYS ̲CALL (SYS ̲CALL:SYS ̲CALL ̲TYPE)
b) INIT ̲SYS ̲CALL(R2, R6)
R̲e̲g̲i̲s̲t̲e̲r̲s̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 2 SYS ̲CALL (kept)
R 6 link
C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
INIT ̲SYS ̲CALL calls the SCM-functions defined in INIT
̲CMD
- AWAIT ̲DEVICE ̲SE
- AWAIT ̲SYSE
and the CSF function
- RECEIVE ̲FIRST ̲QEL
All these functions are called with INIT. Futher is
the CSF procedure
- ANALYZE ̲ERROR
called.
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0, R1, R3 - R7 destroyed
D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SYS ̲CALL ̲TYPE see 4.2.4.5
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SYSE ̲OP see 4.2.4.5
DEVICE ̲SE ̲OP see 4.2.4.5
SYQ ̲OP see 4.2.4.5
CMD ̲OS see 4.2.4.5
SYS ̲CALL I/F-data
E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
SYSE ̲OP see 4.2.4.5
DEVICE ̲SE ̲OP see 4.2.4.5
SYQ ̲OP see 4.2.4.5
CMD ̲OS see 4.2.4.5
L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None.
PROCEDURE INIT ̲SYS ̲CALL(SYS ̲CALL:SYS ̲CALL ̲TYPE)
BEGIN
CASE SYS ̲CALL
AWAIT ̲SYSEL ?
CASE INIT ̲AWAIT ̲SYSE(SYSE ̲OP)
ERROR? ANALYZE ̲ERROR(CC, 0)
OK ? ASSOCIATE(CMD ̲OS SYSE ̲OP)
END CASE INIT ̲AWAIT ̲SYSE
AWAIT ̲DEVICE ̲SEL ?
CASE INIT ̲AWAIT ̲DEVICE ̲SE (DEVICE ̲SE ̲OP)
ERROR ? ANALYZE ̲ERROR(CC,0)
OK ? ASSOCIATE (CMD ̲OS,DEVICE ̲SE ̲OP)
END CASE INIT ̲AWAIT ̲LINE ̲SE
RECEIVE ̲FIRST ̲QEL ̲FROM ̲SYQ ?
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(TRUE,SYQUEUE,SYQ-OP)
ERROR ? ANALYZE ̲ERROR(CC, 0)
OK ? ASSOCIATE (CMD ̲OS, SYQ ̲OP)
END CASE INIT ̲RECEIVE ̲FIRST ̲QEL
END CASE SYS ̲CALL
END PROCEDURE INIT ̲SYS ̲CALL
Figure 4.2.4.6.1-1
4.2.4.6.2 S̲E̲N̲D̲ ̲T̲O̲ ̲T̲D̲C̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
SEND ̲TO ̲TDC checks that a logical number of right size
and signals SHORT ̲OP to a specified operation - semaphore.
For SADs and EXCs the tables LOG ̲D ̲TO ̲LOCAL and LOG
̲C ̲TO ̲LOCAL are used to find the operation semaphore.
I̲n̲t̲e̲r̲f̲a̲c̲e̲
a) SEND ̲TO ̲TDC (WHERE ̲TO:WHERE ̲TO ̲TYPE) LOGICAL ̲NO:
INTEGER)
b) SEND ̲TO ̲TDC(R0, R3, R6)
R̲e̲g̲i̲s̲t̲e̲r̲s̲ ̲C̲o̲n̲v̲e̲nt̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 0 …02…WHERE ̲TO (destroyed)
R 3 LOGICAL ̲NO (destroyed)
R 6 Link (destroyed)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0-R7 (destroyed)
D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
VDU-OS see 4.1.4
SAD ̲OS see 4.1.4
EXC ̲OS see 4.1.4
LOG ̲O ̲TO ̲LOCAL common COPSY data 4.1.4
LOG ̲C ̲TO ̲LOCAL common COPSY data 4.1.4
E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
VDU ̲OS (LOG ̲D ̲TO ̲LOCAL(LOGICAL ̲NO))
SAD ̲OS (LOG ̲C ̲TO ̲LOCAL(LOGICAL ̲NO))
SHORT ̲OP
I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
LOGICAL ̲NO: INTEGER
F̲l̲o̲w̲g̲r̲a̲m̲ see fig. 4.2.4.6.2-2
PROCEDURE SEND ̲TO ̲TDC (WHERE ̲TO,LOGICAL ̲NO,
BEGIN
LOGICAL ̲NO LT 0? ERROR ̲CMD(LOGICAL ̲NO ̲ERROR,WHERE ̲TO,LOGICAL
̲NO)
CASE WHERE ̲TO
VDU ?
LOGICAL ̲NO GT MAX ̲VDU ̲NO? ERROR ̲CMD(LOGICAL ̲NO ̲ERROR,
WHERE ̲TO,LOGICAL
̲NO)
SIGNAL (VDO ̲OS(LOGICAL ̲NO)SHORT ̲OP
SAD ?
LOGICAL ̲NO GT MAX ̲SAD ̲NO? ERROR ̲CMD(LOGICAL ̲NO ̲ERROR,
WHERE ̲TO,LOGICAL ̲NO)
SIGNAL(SAD ̲OS (LOG ̲D ̲TO ̲LOCAL(LOGICAL ̲NO)),SHORT ̲OP)
EXC ?
LOGICAL ̲NO GT MAX ̲EXC ̲NO? ERROR ̲CMD(LOGICAL ̲NO ̲ERROR,
WHERE ̲TO,LOGICAL ̲NO)
SIGNAL(EXC ̲OS(LOG ̲C ̲TO ̲LOCAL ̲NO)),SHORT ̲OP)
END CASE WHERE ̲TO
END PROCEDURE
Figure 4.2.4.6.2-2
4.2.4.6.3 E̲R̲R̲O̲R̲ ̲C̲M̲D̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Depending on the call parameter CMD ̲ERROR an error
report is made and sent to SEH ̲OS. The report is made
as described below.
C̲M̲D̲ ̲E̲R̲R̲O̲R̲=̲ N̲O̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲D̲ ̲S̲T̲A̲R̲T̲ ̲C̲M̲D̲,̲R̲E̲C̲E̲I̲V̲E̲D̲ ̲W̲R̲O̲N̲G̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲
ERROR ̲TYPE = COPSY ̲SHORT ̲ERROR
USER ̲ACTION = GIVE ̲UP
ERROR ̲COR = CMD ̲COR
ERROR ̲INFO(1) = OP.CMD ̲TYPE
ERROR ̲INFO(2) = OP.CMD
REFERENCE = ADDRESS (OP)
C̲M̲D̲ ̲E̲R̲R̲O̲R̲ = M̲M̲O̲N̲ ̲E̲R̲R̲O̲R̲
ERROR ̲TYPE = COPSY ̲INT ̲ERROR
USER ̲ACTION = CONTINUE
ERROR ̲COR = CMD ̲COR
ERROR ̲INFO (1) = SYSE ̲INFO.SENDER
REFERENCE = NIL
C̲M̲D̲ ̲E̲R̲R̲O̲R̲ = M̲A̲I̲N̲ ̲T̲Y̲P̲E̲ ̲E̲R̲R̲O̲R̲,̲S̲U̲B̲T̲Y̲P̲E̲ ̲E̲R̲R̲O̲R̲
ERROR ̲TYPE = COPSY ̲Q ̲ERROR
USER ̲ACTION = CONTINUE
ERROR ̲COR = CMD ̲COR
ERROR ̲INFO.Q = SYQUEUE
ERROR.INFO.INFO(1) =
SYQEL ̲ATTRIBUTES.HEADER.MAINTYPE
ERROR ̲INFO.INFO(2) =
SYQEL ̲ATTRIBUTES.HEADER.SUBTYPE
REFERENCE = SYQEL
C̲M̲D̲ ̲E̲R̲R̲O̲R̲ = T̲I̲M̲E̲O̲U̲T̲ ̲E̲V̲E̲N̲T̲ ̲E̲R̲R̲O̲R̲
ERROR ̲TYPE = COPSY ̲Q ̲ERROR
USER ̲ACTION = CONTINUE
ERROR ̲COR = CMD ̲COR
ERROR ̲INFO.Q = SYQUEUE
ERROR ̲INFO.INFO (1) =
SYQEL ̲ATTRIBUTES.HEADER.SUBTYPE
ERROR ̲INFO.INFO (2) =
SYQEL ̲ATTRIBUTES.HEADER.FLAG
REFERENCE = SYQEL
C̲M̲D̲ ̲E̲R̲R̲O̲R̲ = L̲O̲G̲I̲C̲A̲L̲ ̲N̲O̲ ̲E̲R̲R̲O̲R̲
ERROR ̲TYPE = COPSY ̲INT ̲ERROR
USER ̲ACTION = CONTINUE
ERROR ̲COR = CMD ̲COR
ERROR ̲INFO (1) = WHERE ̲TO I/F-data for
ERROR ̲INFO (2) = LOGICAL NO SEND ̲TO ̲TDC
I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) ERROR ̲CMD (CMD ̲ERROR:CMD ̲ERROR ̲TYPE,
WHERE ̲TO:WHERE ̲TO ̲TYPE,
LOGICAL ̲NO:INTEGER
For CMD ̲ERROR not equal to LOGICAL ̲NO ̲ERROR is WHERE
̲TO=NIL and LOGICAL ̲NO=NIL.
b) ERROR ̲CMD(R0, R3, R4, 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̲
R0 WHERE ̲TO
R3 LOGICAL ̲NO
R4 CMD ̲ERROR
R6 link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 destroyed
C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
ERROR ̲CMD calls the CSF-procedures
- WAIT ̲OPSEM
- SIGNAL ̲OPSEM
D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a 1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CMD ̲ERROR ̲TYPE,
WHERE ̲TO ̲TYPE see 4.2.4.5
COPSY ̲GARBLE ̲PARAMS see 4.1.4
a 2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CMD ̲ERROR,
WHERE ̲TO
LOGICAL ̲NO I/F-data
LONG ̲OS
SEH ̲OS see 4.1.4
OP see 4.2.4.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
CMD ̲ERROR
WHERE ̲TO
LOGICAL ̲NO
OP
OP ̲CMD ̲TYPE
OP ̲CMD
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR LONG ̲OP: LONG ̲OP ̲TYPE 4.1.4
"used to make the error-report"
Flowgram see figure 4.2.4.6-3
PROCEDURE
ERROR ̲CMD(CMD ̲ERROR:CMD ̲ERROR ̲TYPE
WHERE ̲TO:WHERE ̲TO ̲TYPE
LOGICAL ̲NO:INTEGER
BEGIN
WAIT ̲OPSEM(LONG ̲OS)(LONG ̲OP)
EQVIVALENCE(LONG ̲OP.INFORMATION,PARAMS:COPSY ̲GARBLE ̲PARAMS)
PAREMS.LOC=CMD ̲ERROR
PAREMS.ERROR ̲COR=CMD ̲COR
CASE CMD ̲ERROR OF
NOT ̲RECEIVED ̲START ̲CMD,
RECEIVED ̲WRONG ̲OPERATION?
PARAMS.REFERENCE=ADDRESS(OP)
PARAMS.ERROR ̲TYPE=COPSY ̲SHORT ̲ERROR
PARAMS.USER ̲ACTION=GIVE ̲UP
PARAMS.ERROR ̲INFO (1)= OP.CMD ̲TYPE
PARAMS.ERROR ̲INFO (2)= OP.CMD
MMON ̲ERROR?
PARAMS.ERROR ̲TYPE=COPSY ̲INT ̲ERROR
PARAMS.USER ̲ACTION=CONTINUE
PARAMS.ERROR ̲INFO (1)= SYSE ̲INFO.SENDER
MAINTYPE ̲ERROR,
SUBTYPE ̲ERROR?
PARAMS.REFERENCE = SYQEL
PARAMS.ERROR ̲TYPE = COPSY ̲Q ̲ERROR
PARAMS.USER ̲ACTION = CONTINUE
PARAMS.ERROR ̲INFO.Q = SYQUEUE
PARAMS.ERROR ̲INFO.INFO (1=SYQEL ̲ATTRIBUTES.HEADER.
MAINTYPE
PARAMS.ERROR ̲INFO.INFO (2)=SYQEL ̲ATTRIBUTES.HEADER.
SUBTYPE
CONTINUES
Figure 4.2.4.6-3a
PROCEDURE ERROR ̲CMD
TIMEOUT ̲EVENT ̲ERROR?
PARAMS:REFERENCE=SYQEL
PARAMS.ERROR ̲TYPE = COPSY ̲Q ̲ERROR
PARAMS.USER ̲ACTION = CONTINUE
PARAMS.ERROR ̲INFO.Q = SYQUEUE
PARAMS.ERROR ̲INFO.INFO (1)=SYQEL ̲ATTRIBUTES.HEADER
SUBTYPE
PARAMS.ERROR ̲INFO.INFO (2)=SYQEL ̲ATTRIBUTES.HEADER.FLAG
LOGICAL ̲NO ̲ERROR?
PARAMS.HEADER. FLAG = VALIDATION ̲NOT ̲OK
PARAMS.HEADER. MAINTYPE = ACK
PARAMS.HEADER. SUBTYPE = SSC ̲ACK
SEND ̲REPY (PARAMS,NIL,SYQEL)
DISMANTLE ̲QEL(SYQEL)
PARAMS.ERROR ̲TYPE=COPSY ̲INT ̲ERROR
PARAMS.USER ̲ACTIONS=CONTINUE
PARAMS.INFO(1) = WHERE ̲TO
PARAMS.INFO(2) = LOGICAL ̲NO
END CASE CMD ̲ERROR
SIGNAL ̲OPSEM(SEH ̲OS,LONG ̲OP)
END PROCEDURE ERROR ̲CMD
Figure 4.2.4.6-3b