top - download
⟦e153c5448⟧ Wang Wps File
Length: 48648 (0xbe08)
Types: Wang Wps File
Notes: CPS/SDS/037
Names: »1876A «
Derivation
└─⟦3aebbc545⟧ Bits:30006093 8" Wang WCS floppy, CR 0145A
└─ ⟦this⟧ »1876A «
WangText
…00……00……00……00……00…:…02……00……00…:
:…06…:…07……12……0b……12……00……12……05……11……09……11……0d……11……01……11……05……10……09……10……0a……10……0e……10……00……10……01……10……02……10……06……0f……0a……0f……0f……0f…
…0f……07……0e……0c……0e……0f……0e……02……0e……05……0d……09……0d……0c……0d……86…1 …02… …02… …02…
…02…CPS/SDS/037
…02…CGN/820514 …02……02…MDCO VDU
DETAILED DESIGN SPECIFICATION CAMPS
4.2.2 M̲D̲C̲O̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲
The Delivery Function Control Coroutine (DIFCO) subpackage
performs the control of all MDCO transactions. Furthermore,
DIFCO performs the direct control of the VDU dialogue.
4.2.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̲
The following functions are included in this subpackage:
- System control
- Transaction accounting
- Transaction creation
- Format sequence functions
- Error Handling
Fig. 4.2.2.1-1 presents the functional breakdown.
Figs. 4.2.2.1-1/5
4.2.2.1.1 S̲y̲s̲t̲e̲m̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲1̲.̲0̲)̲
The system control functions are those which indirectly
involve the SSC package. The commands are received
from DIVCO.
a) Initialization (1.1)
Executes the function to be performed after load
of software and which must be executed before normal
operation can be initiated. Depending on the type
of initialization, different actions are taken.
b) Start-Up (1.2)
Executes the function to be performed after sign-on.
The command validation table reflecting the user
capability is defined.
c) Close-Down (1.3)
This function provides the DIFCO with the capability
of performing the following functions:
- Sign-off
- Block terminal
- Order close-down.
.2.2.1.2 T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲ ̲A̲c̲c̲o̲u̲n̲t̲i̲n̲g̲ ̲(̲2̲.̲0̲)̲
The transaction accounting function is concerning log
.
a) Collect Data (2.1)
The data which are used for log, and other purposes
are collected in sequence table. There exists no
special collecting procedures but all data which
are pertinent for DIFCO will be placed in this
area.
b) Log Reporting (2.2)
The log reporting functions are those required
to report final log records. The data which are
required in a log record are extracted from the
sequence table.
4.2.2.1.3 T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲ ̲C̲r̲e̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲0̲)̲
The transaction creation group includes all the functions
to be performed before a transaction may be started.
a) Receive and Validate (3.1)
Function keys entered by a MDCO are received from
the VDU. The received function key is validated
against a function key bit mask.
There are two bit masks.
Bit mask (1) reflects the function keys which are
allowed at the moment.
Bit mask (2) reflects the function keys which will
change the format sequence.
b) Define Next Function Key (3.2)
If a function key must be followed by another,
this is defined (i.e. RETURN shall follow COMMAND).
c) Receive Command Line (3.3)
The contents of the VDU command line are received
via the format handler.
d) Validate Command Line (3.4)
The contents of the command line are validated.
A command is validated against the command validation
table.
Parameters are checked to be within the correct
range.
e) Display Response Message (3.5)
These functions display a response message in the
VDU response line.
f) Execute Function Key
The functions associated with the received function
key are performed and the format sequence is changed.
g) Execute Command (3.7)
The sequence table key is looked up in the command
validation table and the format sequence is started.
h) Assign Transaction Number (3.8)
Allocates next transaction no. for this terminal.
4.2.2.1.4 F̲o̲r̲m̲a̲t̲ ̲S̲e̲q̲u̲e̲n̲c̲e̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲ ̲(̲4̲.̲0̲)̲
The format sequence functions are those functions which
are called from the format sequence table.
This table makes it possible to drive the MMI in an
automatic and flexible manner.
It defines for each screen format:
- Allowed commands and function keys
- Functions to be called corresponding to commands/
FC Keys
- LOG and SAR reporting required
- Cursor position
- Command to DIDIA
- Subsequently sequence record to be executed
4.2.2.1.4.1 S̲t̲a̲r̲t̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲ ̲(̲4̲.̲1̲)̲
The start execution functions are those which must
be performed before a format is presented for a MDCO.
a) Create CIF /Buffer (4.1.1)
These functions are those used to interface to
the message management system.
b) Request CIF (4.1.2)
If a continue preparation command is received,
then the referenced CIF is fetched from the preparation
database.
If a receive command is received, then the first
CIF in the corresponding queue is fetched.
c) Update VDU Header (4.1.3)
These functions update the VDU header fields, classification
and terminal function.
d) Display Error Code (4.1.4)
These functions display a response message in the
VDU response line.
e) Determine Message Type (4.1.5)
These functions determine the format which shall
be used for a message.
4.2.2.1.4.2 S̲t̲o̲p̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲ ̲(̲4̲.̲2̲)̲
The stop execution functions are those which must be
performed when a MDCO gives up access to a CIF.
a) Dismantle CIF / Buffer (4.2.1)
These functions are those used to interface to
the message management system.
b) Update Status (4.2.2)
The service message status is updated. The service
message under preparation is returned to the preparation
database.
c) Update VDU Header (4.2.3)
These functions update the VDU header fields, classification
and terminal function.
4.2.2.1.4.3 Q̲u̲e̲u̲e̲ ̲R̲e̲q̲u̲e̲s̲t̲s̲ ̲(̲4̲.̲3̲)̲
The queue request functions are those concerning the
reception of messages.
a) Receive (4.3.1)
The first CIF to which the requestor has access
is received from a given queue.
b) Delete (4.3.2)
This function removes a CIF from a queue.
c) Keep (4.3.3)
This function returns a CIF to a queue.
d) Keep and Present next (4.3.4)
This function returns a CIF to the queue from which
it was received. The next CIF to which the requestor
has access is returned.
e) Delete and Present next (4.3.5)
This function removes a CIF from the queue from
which it was received. The next CIF to which the
requestor has access is returned.
4.2.2.1.4.4 R̲e̲q̲u̲e̲s̲t̲s̲ ̲t̲o̲ ̲C̲A̲M̲P̲S̲ ̲S̲y̲s̲t̲e̲m̲ ̲(̲4̲.̲4̲)̲
The request functions are those concerning the treatment
of messages (CIFs) and requests (buffers).
a) Send for transmission (4.4.1)
A service message is sent for transmission by THP.
b) Send for distribution (4.4.2)
A message for distribution assistance is sent for
distribution by MDP.
c) Retrieve (4.4.3)
A retrieve request is sent to SAR and the retrieved
CIF and/or a response message is displayed.
d) Print (4.4.4)
The CIF currently displayed on the VDU is sent
to the associated printer.
c) Defer (4.4.5)
The preparation is terminated and the CIF is sent
to the preparation database.
f) Status request (4.4.6)
Status request is sent to UMAM and the received
CIF is displayed.
g) Edit/Delete Requests (4.4.7)
A request is sent to UMAM and the referenced CIF
or a response message is displayed.
4.2.2.1.5 E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲
The error handling function is separated into two parts:
a) Q ̲ERROR (5.1)
This function handles error due to failure in communication
between DIFCO and its queues and decides whether or
not the processing may continue.
b) Internal (5.2)
This function handles errors due to failure in communication
between the subpackages communicating with DIFCO, and
decides whether or not the processing may continue.
4.2.2.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
The DIFCO subpackage consists of one coroutine with
operation semaphore S2 as the main waiting point.
The input to DIFCO will be a command which is received
from DIVCO, DIDIA, DIRT, the answer queue or the VDU.
Each command will constitute a main function and is,
as well as major function, implemented as a module.
Furthermore some common procedures and module components
exist.
Refer figure 4.2.2.2-1.
Figs. 4.2.2.2-1/2
COMMON SUBPACKAGE PROCEDURES
1 VDU ̲INIT
2 SET ̲CURSOR
3 MDOS ̲RECV ̲FIRST
4 DISPLAY ̲ERROR ̲MSG
5 DISPLAY ̲VDU ̲FIELD
6 MDOS ̲RECV ̲NEXT
7 CALCULATE ̲FORMAT
8 TEP ̲CREATE ̲CIF
9 TEP ̲CREATE ̲NEW ̲CIF
10 MDOS ̲NEW ̲VIEW
11 MDOS ̲TRSERNO
12 CALCULATE ̲MENU
13 TEP ̲RETURN ̲VIEW
14 TEP ̲SAVE ̲VIEW
15 TEP ̲READ ̲BUFFER
16 TEP ̲WRITE ̲BUFFER
17 TEP ̲RESERVE ̲BUFFER
18 COPY ̲TEXT ̲FIELDS
19 UPDATE ̲VDU ̲HEADER
20 SEND ̲TO ̲MDP
21 SEND ̲TO ̲THP
22 SEND ̲REQUEST ̲TO ̲UMAM
23 SEND ̲REQUEST ̲TO ̲SAR
24 SEND ̲TO ̲ASS ̲PRINTER
25 TEP ̲CLOSE ̲VIEW
26 TEP ̲OPEN ̲VIEW
27 SEND ̲SPECIAL ̲PRINT
28 COPY ̲CIF ̲FIELD
29 MDOS ̲FIRST ̲QEL
30 FREE DIFCO OPERATION
31 FETCH ̲DIFCO ̲OPERATION
4.2.2.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
4.2.2.3.1 D̲a̲t̲a̲ ̲F̲l̲o̲w̲
The HIPO diagrams overleaf show the data flow of DIFCO.
4.2.2.3.2 C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
The control logic of DIFCO is shown in the module-tree
in figure 4.2.2.3-1.
Diag. ID: 4.2.2.3/24
Fig. 4.2.2.3-1
4.2.2.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
DIFCO ̲MAIN (4.2.2.4.1)
RESTART ̲DIFCO (4.2.2.4.2)
MDOS ̲ANSWER ̲Q ̲PROCESSING (4.2.2.4.3)
MDOS ̲FC ̲KEY ̲PROCESSING (4.2.2.4.4)
DIVCO ̲CMD ̲PROCESSING (4.2.2.4.5)
DIDIA ̲CC ̲PROCESSING (4.2.2.4.6)
DIRT ̲OP ̲PROCESSING (4.2.2.4.7)
MDOS ̲IN OUT ̲LINE (4.2.2.4.8)
MDOS ̲CMD ̲PENDING (4.2.2.4.9)
MDOS ̲DISP ̲RESP ̲MSG (4.2.2.4.10)
MDOS ̲SEQUENCE (4.2.2.4.11)
FUNCTION EXECUTION (4.2.2.4.12)
4.2.2.4.1 D̲I̲F̲C̲O̲ ̲M̲A̲I̲N̲
4.2.2.4.1.1 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) DIFCO ̲MAIN
b) DIFCO ̲MAIN (R6)
This module is only called by Coroutine Monitor.
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 (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0 - R7 (DEST)
4.2.2.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.2.4.1.3.1 C̲L̲E̲A̲R̲ ̲A̲N̲S̲W̲E̲R̲ ̲Q̲
Dismantle QEL's in answer queue.
4.2.2.4.1.3.2 D̲i̲s̲p̲l̲a̲y̲ ̲m̲a̲x̲ ̲C̲l̲a̲s̲s̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲
The MAX classification capability of the user signed
on at the MDCO terminal is displayed in the VDU-header
4.2.2.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̲
MDOS ̲CO ̲OP ̲TYPE refer 4.1.4
CLASSIFICATION ̲TYPE refer 4.2.2.5
SENDER ̲ID ̲TYPE refer 4.1.4
QEL ̲ATTRIBUTES ̲TYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
USER ̲CAPABILITY ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MDOS ̲S1 refer 4.1.4
MDOS ̲S2 refer 4.1.4
MDOS ̲S3 refer 4.1.4
DIVCO ̲OP refer 4.1.4
FC ̲KEY ̲OP (m) refer 4.1.4
CLOSE ̲DOWN (m) refer 4.2.2.5
MDOS ̲ACTIV (m) refer 4.1.4
VDU ̲CLASS ̲TYPE (m) refer 4.1.4
CURRENT ̲CLASS (m) refer 4.1.4
VDU ̲SPLIT ̲FLAG refer 4.2.2.5
CO ̲CMD ̲TYPE refer 4.1.4
MDOS ̲QNAME refer 4.1.4
ANQ ̲OP: (m) refer 4.1.4
MDOS ̲ATTR refer 4.1.4
INTERNAL ̲ERROR ̲INF ̲TYPE refer CPS/DBD/001 START
̲FLAG
(m) refer
4.2.2.5
FC ̲KEY ̲TYPE refer 4.2.2.5
SPLIT ̲DIGIT (m) refer 4.1.4
SEQUENCE ̲FORMAT ̲NO. (m) refer 4.2.2.5
SEQUENCE ̲CODE ̲NO (m) refer 4.2.2.5
HEADER ̲IFCB refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.2.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Commands received from DIVCO or DIDIA are analysed.
The following actions are taken:
Initialization and restart and close down cmds before
system starts is performed and cmds are signalled to
DIDIA.
Two system calls are performed in order to open for
input from Answer Queue and FC ̲key.
Unknown QEL from Answer Q is sent to SSC.
A loop is entered in order to distribute input from
Answer Queue, FC ̲keys, DIVCO, DIDIA and DIRT to modules
which are taken over for further treatment.
System errors will be treated by the Error Reporting
Procedure, which is common to all modules within MDOP.
DIFCO START
WAIT ̲OPSEM(MDOS ̲S2)(MDOS ̲OP): OK
CASE MDOS ̲OP.OP ̲ID(2) OF SENDER ̲ID ̲TYPE
DIVCO ̲IDENT? CASE DIVCO ̲OP.CMD OF DIVCO ̲CMD ̲TYPE
INIT ̲DIFCO ̲CMD? V̲D̲U̲ ̲I̲N̲I̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲6̲.̲1̲)̲
MOVE INIT ̲DIFCO
̲CC TO DIVCO ̲OP.CMD
RESTART ̲DIFCO ̲CMD? R̲E̲S̲T̲A̲R̲T̲ ̲D̲I̲F̲C̲O̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲)̲
MOVE RESTART
̲DIFCO ̲CC TO …02…DIVCO
̲OP.CMD
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲
̲E̲R̲R̲O̲R̲ ̲(GIVE ̲UP)(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
MOVE DIFCO ̲IDENT TO DIVCO ̲OP.OP ̲ID(2)
SIGNAL ̲OPSEM(MDOS ̲S1, DIVCO ̲OP)(CC):
OK
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̲T̲A̲R̲T̲ ̲L̲O̲O̲P̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲-̲2̲)̲
CLOSE DOWN LOOP
WAIT ̲OPSEM(MDOS ̲S2)(MDOS ̲OP): OK
END CLOSE DOWN LOOP
END
Fig. 4.2.2.4.2-1
START LOOP
CLOSE ̲DOWN = FALSE
WAIT ̲LOOP
WAIT ̲OPSEM(MDOS ̲S2)(MDOS ̲OP): OK
CASE MDOS ̲OP.OP ̲ID(2) OF SENDER ̲ID ̲TYPE
DIVCO ̲IDENT? D̲I̲V̲C̲O̲ ̲S̲T̲A̲R̲T̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲-̲4̲)̲
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
DIVCO ̲OP.CMD EQ START DIFCO OR CLOSE DOWN EXIT
̲WAIT ̲LOOP
END LOOP
CLOSE ̲DOWN EQ TRUE?
C̲L̲E̲A̲R̲ ̲ ̲A̲N̲S̲W̲E̲R̲ ̲Q̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲.̲3̲.̲1̲)̲
MDOS ̲QNAME.MAIN = MDOS ̲ANQ
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT, MDOS ̲QNAME, ANQ
̲OP)
(CC): ERROR ̲OK
ERROR?ANALYZE ̲ERROR(CC,0)
OK? ASSOCIATE(MDOS ̲S2)(ANQ ̲OP): OK
END CASE
CASE INIT ̲RECEIVE ̲CONTROL(HEADER ̲IFCB, FC ̲KEY ̲OP)
(CC): ERROR ̲OK
ERROR?:ANALYZE ̲ERROR(CC,0)
OK? MOVE HEADER ̲IFCB TO SPLIT ̲DIGIT
ASSOCIATE(MDOS ̲S2)(FC ̲KEY ̲OP): OK
U̲S̲E̲R̲ ̲O̲N̲ ̲L̲O̲O̲P̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲-̲3̲)̲
END CASE
CLOSE DOWN EQ TRUE? EXIT START LOOP
END START LOOP
Fig. 4.2.2.4.1-2
USER ON LOOP
WAIT(MDOS ̲S2)(MDOS ̲OP): OK
VDU ̲SPLIT ̲FLAG EQ TRUE? MDOS ̲OP.OP ̲ID(2) EQ DIVCO
̲IDENT?
D̲I̲V̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
̲4̲.̲2̲.̲2̲.̲4̲.̲5̲)̲
CASE MDOS ̲OP.OP ̲ID(2)OF:
ANQ ̲IDENT? M̲D̲O̲S̲ ̲A̲N̲S̲W̲E̲R̲ ̲Q̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲)̲
MDOS ̲QNAME.MAIN = MDOS ̲ANQ
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,MDOS
̲QNAME,ANQ ̲
OP)
(CC): ERROR
̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK? ASSOCIATE(MDOS ̲S2 ANQ ̲OP):
OK
END CASE
FC ̲KEY ̲IDENT? M̲D̲O̲S̲ ̲F̲C̲ ̲K̲E̲Y̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲)̲
CASE INIT ̲RECEIVE ̲CONTROL(SPLIT
̲DIGIT)
FC ̲KEY ̲OP)(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK? ASSOCIATE(MDOS ̲S2 FC ̲KEY
̲OP): OK
END CASE
DIVCO ̲IDENT? D̲I̲V̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲)̲
DIDIA ̲IDENT? D̲I̲D̲I̲A̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲)̲
DIRT ̲IDENT? D̲I̲R̲T̲ ̲O̲P̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲7̲)̲
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 EQ TRUE? EXIT USER ̲ON LOOP
MDOS ̲ACTIV EQ FALSE? EXIT USER ̲ON ̲LOOP
END USER ON LOOP
C̲A̲N̲C̲E̲L̲ ̲S̲Y̲S̲T̲E̲M̲ ̲C̲A̲L̲L̲S̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲-̲5)
Fig. 4.2.2.4.1-3
DIVCO ̲START ̲PROCESSING
CASE DIVCO ̲OP.CMD OF DIVCO ̲CMD ̲TYPE
CLOSE ̲DOWN ̲DIFCO ̲CMD? MOVE DIFCO ̲IDENT TO DIVCO
̲OP.OP ̲ID(2)
MOVE CLOSE ̲DOWN ̲DIFCO ̲CC
TO DIVCO ̲OP.CMD
SIGNAL ̲OPSEM(MDOS ̲S1, DIVCO
̲OP): OK
CLOSE ̲DOWN = TRUE
START ̲DIFCO ̲CMD? D̲I̲S̲P̲L̲A̲Y̲ ̲M̲A̲X̲ ̲C̲L̲A̲S̲S̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲.̲3̲)̲
SEQUENCE ̲FORMAT ̲NO = MDOS
̲MENU
SEQUENCE ̲CODE ̲NO = SEQ ̲START
MDOS ̲ACTIVE = TRUE
START ̲FLAG = TRUE
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(4.2.2.4.11)
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.2.4.1-4
CANCEL SYSTEM CALLS
CANCEL ̲SYSTEM ̲CALL(ANQ ̲OP): OK
CASE WAIT ̲SYSTEM CALL (ANQ ̲OP)(MDOS ̲ATTR, MDOS
̲QEL
(SUBQUEUE, CC): ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR(CC, 1, CANCELLED)(LI)
LI?
END CASE
O̲K̲?̲ D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲M̲D̲O̲S̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
END CASE
CANCEL ̲SYSTEM ̲CALL(FC ̲KEY ̲OP) : OK
CASE WAIT ̲SYSTEM CALL (FC ̲KEY ̲OP)(SPLIT ̲DIGIT,FC
̲KEY ̲TYPE,
cc): ERROR ̲OK
ERROR? CASE ANALYZE ERROR (CC, 1, CANCELLED):
(LI)
LI?
END CASE
OK?
END CASE
END
Fig. 4.2.2.4.1-5
4.2.2.4.2 R̲E̲S̲T̲A̲R̲T̲ ̲D̲I̲F̲C̲O̲
4.2.2.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̲
The purpose of this module is to initialize the Format
Handler and to send the contents of the Answer Queue
to UMAM or to the common Message Distribution Assistance
queue.
4.2.2.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) RESTART ̲DIFCO
b) RESTART ̲DIFCO (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 (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0 - R7 (DEST)
4.2.2.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
4.2.2.4.2.3.1 S̲E̲N̲D̲ ̲T̲O̲ ̲U̲M̲A̲M̲
The received QEL in the Answer Queue is sent further
to UMAM.
4.2.2.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̲
QUEUE ̲REFERENCE ̲TYPE refer CPS/DBD/001
QEL ̲ATTRIBUTES ̲TYPE: refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE: refer CPS/DBD/001
SEND ̲PARAMS ̲TYPE: refer CPS/DBD/001
QELMENT ̲MAIN ̲TYPE: refer CPS/DBD/001
TEP ̲INTERNAL ̲SUBTYPE refer CPS/DBD/001
MESSAGE ̲SUBTYPE refer CPS/DBD/001
MDOS ̲CO ̲OP ̲TYPE: refer 4.1.4
SENDER ̲ID ̲TYPE: refer 4.1.4
E̲X̲T̲E̲R̲N̲A̲L̲ ̲D̲A̲T̲A̲
b) MDOS ̲S3 refer 4.1.4
ANQ ̲OP refer 4.1.4
MDOS ̲SEND ̲PARAMS refer 4.1.4
MDOS ̲ATTR refer 4.2.2.5
MDOS ̲QEL refer 4.2.2.5
QERROR ̲INF ̲TYPE refer 4.1.4
MDOS ̲QNAME refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
4.2.2.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module consists of a loop, which receives QEL's
from The Answer Queue and sends them. The destination
is the PREP ̲Q within UMAM for service messages and
MDQ within MDOS for distribution assistance messages.
RESTART ̲DIFCO
QUEUE LOOP
CASE RECEIVE ̲FIRST ̲QEL(NO ̲WAIT, MDOS ̲ANQ)
(MDOS ̲ATTR, MDOS ̲QEL, SUBQUEUE, CC):
ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR(CC, 2, QEL ̲PROFILE
̲CHECK,
QUEUE ̲EMPTY):(ULAB1,
ULAB2)
ULAB1?
ULAB2? EXIT QUEUE LOOP
END CASE
OK?
END CASE
Q̲E̲L̲ ̲S̲O̲R̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲-̲2̲)̲
S̲A̲V̲E̲ ̲V̲I̲E̲W̲E̲T̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲-̲4̲)̲
END QUEUE LOOP
V̲D̲U̲ ̲I̲N̲I̲T̲(̲4̲.̲2̲.̲2̲.̲6̲.̲1̲)̲
END
Fig. 4.2.2.4.2-1
QEL SORT
CASE MDOS ̲ATTR.HEADER. MAINTYPE OF QELEMENT ̲MAIN
̲TYPE
INITIAL ̲MAINTYPE?MDOS ̲ATTR.HEADER:MAINTYPE =
TEP ̲INTERNAL
MDOS ̲ATTR.HEADER ̲SUBTYPE = UNKNOWN
̲STATUS ̲
CHANGE
S̲E̲N̲D̲ ̲T̲O̲ ̲U̲M̲A̲M̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲.̲3̲.̲1̲)̲
PLAINDRESS ̲SERVICE,
ABB ̲PLAINDRESS ̲SERVICE,
ABB ̲SERVICE! S̲E̲N̲D̲ ̲T̲O̲ ̲U̲M̲A̲M̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲.̲3̲.̲1̲)̲
PLAINDRESS,
PLAINDRESS ̲DATA,
SC ̲PLAINDRESS,
SC ̲PLAINDRESS DATA,
ABB ̲PLAINDRESS,
ABB ̲PLAINDRESS ̲DATA,
COMMENT? S̲E̲N̲D̲ ̲T̲O̲ ̲M̲D̲O̲S̲ ̲M̲D̲Q̲ ̲(̲-̲3̲)̲
OTHERWISE? M̲D̲O̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲ ̲(̲D̲I̲S̲M̲)̲
̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END
Fig. 4.2.2.4.2-2
SEND TO MDOS ̲MDQ
CASE MDOS ATTR.HEADER.SUBTYPE OF MESSAGE SUBTYPE
ALTERNATIVE DISTRIBUTION ASSISTANCE?
MDOS ̲QNAME.MAINQ = MDOS ̲MDQ
MDOS ̲SEND ̲PARAMS.HEADER = MDOS ̲ATTR.HEADER
CASE SEND ̲QEL (MDOS ̲SEND ̲PARAMS, MDOS
̲QEL,
MDOS ̲QNAME)(MDOS ̲SEND
̲PARAMS,
CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC, 0)
OK?
END CASE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END
Fig. 4.2.2.4.2-3
SAVE ̲VIEWET
CASE SAVE ̲VIEW(DISMANTLE, MDOS ̲QEL)(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
END
Fig. 4.2.2.4.2-4
SEND TO UMAM
CASE MDOS ATTR ̲HEADER.SUBTYPE
FOR CONTINUED PREP?
MDOS ̲ATTR.HEADER.FLAG.CAMPS ORIGINATED
EQ
TRUE?
MDOS ̲QNAME.MAINQ = UMAM ̲COLLECT
MDOS ̲QNAME.SUBQ = PREP ̲SUB
MDOS ̲SEND ̲PARAMS.HEADER = MDOS ̲ATTR.
HEADER
CASE SEND QEL(MDOS ̲SEND ̲PARAMS,ANQ
̲QEL,
MDOS ̲QNAME)(MDOS ̲SEND ̲PARAMS,
CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ U̲P̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
Fig. 4.2.2.4.2.3-1
4.2.2.4.3 M̲D̲O̲S̲ ̲A̲N̲S̲W̲E̲R̲ ̲Q̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.2.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̲
The purpose of this module is to receive items placed
in the Answer Queue, analyse the input and check if
it is in accordence with the expected input, otherwise
it will be rejected.
The sequence format and code number will be found and
the MDOS ̲SEQUENCE procedure will be entered.
4.2.2.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) MDOS ̲ANSWER ̲Q ̲PROCESSING
b) MDOS ̲ANSWER ̲Q ̲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 (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0 - R7 (DEST)
4.2.2.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
4.2.2.4.3.3.1 E̲D̲I̲T̲ ̲A̲N̲S̲ ̲V̲A̲L̲
UMAM error responce will be analysed and
the error message will be displayed in VDU
̲responce ̲line.
4.2.2.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̲
MDOS ̲CO ̲OP ̲TYPE refer 4.1.4
QEL ̲ATTRIBUTES ̲TYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
Q ̲REFERENCE ̲TYPE refer CPS/DBD/001
ANQ ̲OP ̲PENDING refer 4.2.2.5
QELEMENT ̲MAIN ̲TYPE refer CPS/DBD/001
MESSAGE ̲SUBTYPE refer CPS/DBD/001
TEP ̲INTENAL ̲SUBTYPE refer CPS/DBD/001
ACK ̲SUBTYPE refer CPS/DBD/001
UMAM ̲RESPONSE ̲TYPE refer CPS/SDS/039 sec.4.2.5
EDIT ̲ANS ̲TYPE refer CPS/SDS/039 sec.4.2.5
DELETE ̲ANQ ̲TYPE refer CPS/SDS/039 sec.4.2.5
NOT ̲OK ̲TYPE refer CPS/DBD/001
Q ̲ERROR ̲INT ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
ANQ ̲OP: MDOS ̲CO ̲OP ̲TYPE refer 4.1.4
MDOS ̲ATTR refer 4.1.4
MDOS ̲RECV ̲ATTR refer 4.1.4
SEQUENCE ̲FORMAT ̲NO: (m) refer 4.2.2.5
SEQUENCE ̲CODE ̲NO: (m) refer 4.2.2.5
ERROR ̲NO refer 4.2.2.5
ANS ̲FLAG (m) refer 4.2.2.5
INPUT ̲CIF refer 4.1.4
MDOS ̲QEL refer 4.1.4
L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR : BAP ̲FLAG = BOOLEAN
INIT: BAP ̲FLAG = FALSE
4.2.2.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
QEL maintype, and subtype and flags are analyzed.
The variable ANQ ̲OP.CMD will indicate which maintype
and subtype are expected by the system. Unexpected
QEL's are reported.…86…1 …02… …02… …02… …02… …02… …02…
…02…
MDOS ̲ANSWER ̲Q ̲PROCESSING
CASE WAIT ̲SYSTEM ̲CALL(NO ̲WAIT, MDOS ̲ANQ)(MDOS ̲ATTR
MDOS ̲QEL,
SUBQUEUE, CC):
ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK? M̲D̲O̲S̲ ̲A̲N̲Q̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲-̲2̲)̲
END CASE
END ANSWER ̲Q ̲PROCESSING
Fig. 4.2.2.4.3-1
MDOS ̲ANQ ̲QEL ̲PROCESSING
MDOS ̲RECV ̲ATTR = MDOS ̲ATTR
CASE ANQ ̲OP.CMD OF ANQ ̲OP ̲PENDING
EDIT ̲PLAIN ̲SERVICE? E̲D̲I̲T̲ ̲P̲L̲A̲I̲N̲ ̲S̲E̲R̲V̲I̲C̲E̲(̲-̲3̲)̲
EDIT ̲ABB ̲PLAIN ̲SERVICE? E̲D̲I̲T̲ ̲A̲B̲B̲ ̲P̲L̲A̲I̲N̲
̲S̲E̲R̲V̲I̲C̲E̲ ̲(̲-̲4̲)̲
EDIT ̲ABB ̲SERVICE? E̲D̲I̲T̲ ̲A̲B̲B̲ ̲S̲E̲R̲V̲I̲C̲E̲(̲-̲5̲)̲
REQ ̲STATUS? R̲E̲Q̲ ̲S̲T̲A̲T̲U̲S̲(̲-̲6̲)̲
REQ ̲DELETE ̲SERV ̲MSG? R̲E̲Q̲ ̲D̲E̲L̲E̲T̲E̲ ̲S̲E̲R̲V̲
̲M̲S̲G̲(̲-̲7̲)̲
REQ ̲LOG? R̲E̲Q̲ ̲L̲O̲G̲(̲-̲8̲)̲
SEND ̲ABB ̲PLAIN ̲SERVICE? S̲E̲N̲D̲ ̲A̲B̲B̲ ̲P̲L̲A̲I̲N̲
̲S̲E̲R̲V̲I̲C̲E̲(̲-̲9̲)̲
SEND ̲ABB ̲SERVICE? S̲E̲N̲D̲ ̲A̲B̲B̲ ̲S̲E̲R̲V̲I̲C̲E̲(̲-̲1̲0̲)̲
SEND MSG ̲DIST ̲ASSISTANCE? S̲E̲N̲D̲ ̲M̲S̲G̲.̲D̲I̲S̲T̲
̲A̲S̲S̲I̲S̲T̲A̲N̲C̲E̲(̲-̲1̲1̲)̲
END CASE
ANQ ̲OP.CMD = NO ̲PENDING
END
Figure 4.2.2.4.3-2
EDIT PLAIN ̲SERVICE
CASE MDOS ̲ATTR.HEADAER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
PLAINDRESS ̲SERVICE?
CASE MDOS.ATTR.HEADER.SUBTYPE OF MESSAGE
̲SUBTYPE
FOR COMTINUED ̲PREP?
MDOS ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
EQ TRUE?
INPUT CIF = MDOS ̲QEL
SEQUENCE ̲FORMAT ̲NO = SM ̲PLAIN
SEQUENCE ̲CODE ̲NO = START
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
TEP INTERNAL? E̲D̲I̲T̲ ̲A̲N̲S̲ ̲V̲A̲L̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲.̲3̲.̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
Figure 4.2.2.4.3-3
EDIT ̲ABB ̲PLAIN ̲SERVICE
CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
ABB ̲PLAINDRESS ̲SERVICE?
CASE MDOS ̲ATTR.HEADER.SUBTYPE OF MESSAGE
̲SUBTYPE
FOR ̲CONTINUED ̲PREP?
MDOS ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
EQ TRUE?
INPUT ̲CIF = MDOS ̲QEL
SEQUENCE ̲FORMAT.NO = SM ̲ABB ̲PLAIN
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲:̲ ̲E̲D̲I̲T̲ ̲A̲N̲S̲ ̲V̲A̲L̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲.̲3̲.̲1̲)̲
O̲T̲H̲E̲R̲W̲I̲S̲E̲?̲ ̲T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
Figure 4.2.2.4.3-4
EDIT ̲ABB ̲SERVICE
CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
ABB ̲SERVICE?
CASE MDOS ̲ATTR.HEADER.SUBTYPE OF MESSAGE ̲SUBTYPE
FOR CONTINUED PREP?
MDOS ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
EQ TRUE?
INPUT CIF = MDOS ̲QEL
SEQUENCE ̲FORMAT ̲NO = SM ̲ABB
SEQUENCE ̲CODE ̲NO = START
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
O̲T̲H̲E̲R̲W̲I̲S̲E̲ ̲T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
TEP INTERNAL? E̲D̲I̲T̲ ̲A̲N̲S̲ ̲V̲A̲L̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲.̲3̲.̲1̲)̲
OTHERWISE T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
Figure 4.2.2.4.3-5
REQ ̲STATUS
CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
STATUS? CASE MDOS ̲ATTR.HEADER.SUBTYPE OF STATUS
̲SUBTYPE
OUTGOING ̲SERVICE ̲MSG ̲STATUS?
INPUT CIF = MDOS ̲QEL
SEQUENCE ̲FORMAT ̲NO = MDOS ̲STATUS
SEQUENCE ̲CODE ̲NO = START
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
OTHERWISE ? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE ? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END
Figure 4.2.2.4.3-6
REQ ̲DELETE ̲SERV ̲MSG
CASE MDOS ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
TEP ̲INTERNAL?
CASE MDOS ATTR.HEADER.SUBTYPE OF TEP ̲INTERNAL
SUBTYPE
UMAM ̲ERROR ̲RESP?
CASE MDOS ̲ATTR.HEADER.INF OF DELETE
̲ANS ̲TYPE
DELETED? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲
(4.2.2.6.4)
CIF ̲NOT ̲FOUND? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲
(4.2.2.6.4)
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲
(4.1.5.1)
END CASE
OTHERWISE ? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
BAD ̲FLAG EQ TRUE?
SEQUENCE ̲CODE ̲NO = UMAM ̲DELETE ̲CC
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
BAD ̲FLAG = FALSE
END
Figure 4.2.2.4.3-7
REQ ̲LOG
CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELMENT ̲MAIN ̲TYPE
ACK? CASE MDOS ̲ATTR.HEADER.SUBTYPE OF ACK ̲SUBTYPE
LOG ̲ACK? CASE ̲ATTR.HEADER.FLAG. OF NOT
̲OK
O̲K̲?̲ ̲M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
NOK? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲
(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END
Figure 4.2.2.4.3-8
SEND ̲ABB ̲PLAIN ̲SERVICE
CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
ABB ̲PLAINDRESS ̲SERVICE?
CASE MDOS ̲ATTR.HEADER.SUBTYPE OF MESSAGE
̲SUBTYPE
SUSPENDED ̲DEFERRED?
MDOS ̲ATTR.HEADER.FLAG.CAMP ̲ORIGINATED
EQ TRUE?
INPUT CIF = MDOS ̲QEL
SEQUENCE ̲FORMAT ̲NO = SM ̲ABB ̲PLAIN
SEQUENCE ̲CODE ̲NO = THP ̲ERROR ̲CC
BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
ACK? CASE MDOS ̲ATTR.HEADER SUBTYPE OF ACK ̲SUBTYPE
TMP ̲ACK? SEQUENCE ̲CODE ̲NO = THP ̲OK ̲CC
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
BAD FLAG EQ TRUE?
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
END
Figure 4.2.2.4.3-9
SEND ̲ABB ̲SERVICE
CASE MDOS.ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN
̲TYPE
ABB ̲SERVICE?
CASE MDOS ̲ATTR.HEADER.SUBTYPE OF MESSAGE
̲SUBTYPE
SUSPENDED DEFERRED?
ANQ ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
EQ TRUE?
INPUT CIF = MDOS ̲QEL
SEQUENCE ̲FORMAT ̲NO = SM ̲ABB
SEQUENCE ̲CODE ̲NO = THP ̲ERROR
̲CC
BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
ACK? CASE MDOS ̲ATTR.HEADER.SUBTYPE OF ACK ̲SUBTYPE
THP ̲ACK? SEQUENCE ̲CODE ̲NO = THP ̲OK ̲CC
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
BAD ̲FLAG EQ TRUE?
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
END
Figure 4.2.2.4.3-10
SEND MSG ̲DIST ̲ASSISTANCE
CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAINTYPE
PLAINDRESS;
PLAINDRESS ̲DATA? P̲L̲A̲I̲N̲D̲R̲E̲S̲S̲ ̲(̲-̲1̲2̲)̲
SC ̲PLAINDRESS
SC ̲PLAINDRESS ̲DATA? S̲C̲ ̲P̲L̲A̲I̲N̲D̲R̲E̲S̲S̲
̲(̲-̲1̲3̲)̲
ABB ̲PLAINDRESS,
ABB ̲PLAINDRESS ̲DATA? A̲B̲B̲ ̲P̲L̲A̲I̲N̲D̲R̲E̲S̲S̲
̲(̲-̲1̲4̲)̲
COMMENT? C̲O̲M̲M̲E̲N̲T̲ ̲(̲-̲1̲5̲)̲
ACK? CASE MDOS ̲ATTR.HEADER.SUBTYPE OF ACK
̲SUBTYPE
MDP ̲ACK? SEQUENCE ̲CODE ̲NO = MDP ̲VAL
̲OK
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
Figure 4.2.2.4.3-11
PLAINDRESS
CASE MDOS ̲ATTR ̲HEADER.SUBTYPE
FOR ALTERNATIV ̲DISTRIBUTION ̲ASSISTANCE?
INPUT CIF = MDOS ̲QEL
ANS ̲FLAG = TRUE
MSOS ̲ATTR ̲HEADER ̲FLAG.CAMPS ORIGINATED EQ FALSE?
MDOS ̲ATTR ̲HEADER.FLAG.READDRESSED EQ FALSE?
SEQUENCE ̲FORMAT ̲NO = MDOS ̲PLAIN
SEQUENCE ̲FORMAT ̲NO = MDOS ̲PLAIN ̲AD
MDOS ̲ATTR ̲HEADER.FLAG.READDRESSED EQ FLASE ?
SEQUENCE ̲FORMAT ̲NO = MDOS ̲PLAIN ̲CA
SEQUENCE ̲FORMAT ̲NO = MDOS ̲PLAIN ̲CA ̲AD
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲;̲ ̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
SET BAD ̲FLAG = TRUE
END CASE
BAD ̲FLAG EQ TRUE?
SET SEQUENCE ̲CODE ̲NO = MDP ̲ERROR ̲CC
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SET BAD ̲FLAG = FALSE
END
Figure 4.2.2.4.3-12
SC ̲PLAINDRESS
CASE MDOS ̲ATTR.HEADER.SUBTYPE
FOR ALTERNATIV ̲DISTRIBUTION ̲ASSISTANCE?
MDOS ̲ATTR.HEADER.FLAG.CAMPS ORIGINATED EQ
FALSE?
ANS ̲FLAG = TRUE
SEQUENCE ̲FORMAT ̲NO = MDOS ̲SC ̲PLAIN
INPUT CIF = MDOS ̲QEL
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)
SET BAD ̲FLAG = TRUE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲ ̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
SET BAD FLAG = TRUE
END CASE
BAD ̲FLAG EQ TRUE?
SEQUENCE ̲CODE ̲NO = MDP ̲ERROR ̲CC
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(4.2.2.4.11)
SET BAD ̲FLAG = FALSE
END
Fig. 4.2.2.4.3-13
ABB ̲PLAINDRESS
CASE MDOS ̲ATTR.HEADER.SUBTYPE
FOR ALTERNATIV DISTRIBUTION ASSISTANCE?
ANQ ̲ATTR.HEADER.FLAG.CAMPS ORIGINATED
EQ FALSE?
INPUT CIF = MDOS QEL
ANS ̲FLAG = TRUE
MDOS ̲ATTR.HEADER.FLAG.READDRESSED
EQ TRUE?
SEQUENCE ̲FORMAT ̲NO = MDCO ̲ABB
̲PLAIN ̲AD
SEQUENCE ̲FORMAT ̲NO = MDOS ̲ABB ̲PLAIN
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
SET ̲BAD ̲FLAG = TRUE
OTHERWISE?- T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
SET BAD ̲FLAG = TRUE
END CASE
BAD ̲FLAG EQ TRUE? BAD ̲FLAG = FALSE
SEQUENCE ̲CODE ̲NO = MDP ̲ERROR ̲CC
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ (4.2.2.4.11)
END
Fig. 4.2.2.4.3-14
COMMENT
CASE MDOS ̲ATTR.HEADER.SUBTYPE
FOR ALTERNATIV DISTRIBUTION?
MDOS ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
= TRUE
INPUT CIF = MDOS ̲QEL
ANS ̲FLAG = TRUE
SEQUENCE ̲FORMAT ̲NO = MDOS ̲COM
SET SEQUENCE ̲CODE ̲NO = MDP ̲ERROR
̲CC
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ (4.2.2.4.11)
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END
Fig. 4.2.2.4.3-15…86…1 …02… …02… …02… …02… …02… …02… …02…
EDIT ̲ANS ̲VAL
CASE MDOS ̲ATTR.HEADER.SUBTYPE OF TEP ̲INTERNAL SUBTYPE
UMAM ̲ERROR ̲RESP?
CASE MDOS ̲ATTR.HEADER:INF OF EDIT ̲ANS ̲TYPE
NOT ̲FOUND? DISPLAY ̲ERROR ̲MSG(ERROR
̲NO)
(4.2.2.6.4)
NOT ̲AVAIB? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲
(4.2.2.6.4)
SEC ̲PROFILE? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲
(4.2.2.6.4)
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? BAD ̲FLAG = TRUE
T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
BAD FLAG EQ TRUE?
SEQUENCE ̲CODE ̲NO = UMAM ̲ERROR ̲CC
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
END
Figure 4.2.2.4.3.3.1
4.2.2.4.4 M̲D̲O̲S̲ ̲F̲C̲ ̲K̲E̲Y̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.2.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̲
The purpose of this module is to analyse the
FC ̲KEY input, and, depending on the FC ̲key identity
to call other modules and procedures. Further
it takes care of blanking the command and the
response-line and placing the cursor in the command
line.
4.2.2.4.4.2
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) MDOS ̲FC ̲KEY ̲PROCESSING
b) MDOS ̲FC ̲KEY ̲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̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0 - R7 (DEST)
4.2.2.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.2.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̲
MDOS ̲CO ̲OP ̲TYPE refer 4.1.4
FC ̲KEY ̲TYPE ̲TYPE refer 4.2.2.5
BUFFER ̲LIST ̲ELEMENT refer CPS/DBD/001
INTERNAL ̲ERROR ̲INF refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
CMD ̲RESP ̲AREA refer
4.2.2.5
FIELD ̲DESCRIP refer
4.2.2.5
MDOS ̲FC ̲KEY: refer
4.2.2.5
ERROR ̲NO (m) refer
4.2.2.5
SPLIT ̲DIGIT (m) refer
4.2.2.5
CURSOR ̲RECORD ̲1 (m) refer
4.1.4
OUT ̲FLAG (m) refer
4.2.2.5
IN ̲FLAG (m) refer
4.2.2.5
RESPONSE ̲TEXT ̲FLAG (m) refer
4.2.2.5
CMD ̲FLAG (m) refer
4.2.2.5
SEQUENCE ̲FORMAT ̲NO (m) refer
4.2.2.5
SEQUENCE ̲CODE ̲NO (m) refer
4.2.2.5
FC ̲KEY ̲OP: refer
4.1.4
HEADER ̲IFCB refer
4.1.4
FORMAT ̲IFCB refer
4.1.4
VDU ̲SPLIT ̲FLAG refer
4.2.2.5
OUTPUT ̲FLAG (m) refer
4.2.2.5
LIST refer
4.2.2.5
MDOS ̲FC ̲KEY ̲TYPE refer
4.2.2.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR NOT ̲IN ̲FIELD Boolean
INIT NOT ̲IN ̲FIELD = FALSE
CONST CMD = 1
CONST NAME = 1
CONST CMD ̲LINE = 3
4.2.2.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module checks the FC ̲KEY inputs, investigates
if it shall enter SEQUENCE (4.2.2.4.11) and in
cases where flags are set other modules are called.
On the other hand, if no flags are set and the
FC key requests one, it is set and Return-FC
̲key input are expected. The Command FC ̲key sets
the cursor position on the command ̲line, and
Return ̲FC ̲key input are awaited.
MDOS ̲FC ̲KEY ̲PROCESSING
CASE WAIT ̲SYSTEM ̲CALL(FC ̲KEY ̲OP)(SPLIT ̲DIGIT, MDOS ̲FC
̲KEY, CC): ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,2,PRIORITY ̲OVERRIDE,
VDU ̲SPLIT ̲
FAILED):(ULB1, ULB2)
ULB1?
ULB2? VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK? F̲C̲ ̲K̲E̲Y̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲2̲)̲
END CASE
END
Fig. 4.2.2.4.4-1
FC ̲KEY ̲VALIDATION
MDOS ̲FC ̲KEY EQ ENTER? SPLIT DIGIT
EQ FORMAT ̲IFCB?
MDOS ̲FC ̲KEY
= RETURN
MDOS ̲KEY NOT IN MASK-1? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲
̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
OUT ̲FLAG EQ TRUE? D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲R̲E̲S̲P̲ ̲L̲I̲N̲E̲,̲S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲
OUTPUT FLAG = FALSE
MDOS FC ̲KEY IN MASK2? S̲E̲T̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲C̲O̲D̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲5̲)̲
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
MDOS FC ̲KEY EQ RETURN? I̲N̲P̲U̲T̲ ̲C̲M̲D̲ ̲L̲I̲N̲E̲ (4.2.2.4-4)
VDU ̲SPLIT ̲FLAG EQ TRUE?
BYTE ̲TRANSFERRED EQ 0 ? S̲E̲T̲
̲C̲U̲R̲S̲O̲R̲(̲R̲E̲T̲U̲R̲N̲)̲
(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)
IN ̲FLAG = FALSE
OUT ̲FLAG =
FALSE
CMD ̲FLAG =
FALSE
RESPONSE ̲TEXT
̲FLAG = FALSE
IN ̲FLAG EQ TRUE,
OUT FLAG EQ TRUE? M̲D̲O̲S̲ ̲I̲N̲
̲O̲U̲T̲ ̲L̲I̲N̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2)̲
RESPONSE TEXT ̲FLAG EQ TRUE?
M̲D̲O̲S̲ ̲D̲I̲S̲P̲ ̲R̲E̲S̲P̲ ̲M̲S̲G̲
(4.2.2.4.10)
CMD ̲FLAG EQ TRUE? M̲D̲O̲S̲
̲C̲M̲D̲
̲P̲E̲N̲D̲I̲N̲G̲(BYTE
̲T̲R̲A̲N̲S̲F̲E̲R̲E̲D̲)̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲)̲
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̲)̲
I̲N̲S̲P̲E̲C̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲3̲)̲
Fig. 4.2.2.4.4-2
INSPECT
G̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲6̲)̲
VDU ̲SPLIT ̲FLAG EQ TRUE?
MDOS ̲FC ̲KEY EQ INSERT LINE? NOT ̲IN ̲FIELD ̲EQ TRUE?
D̲I̲S̲P̲L̲A̲Y̲
̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
SET IN ̲FLAG = TRUE
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲C̲M̲D̲
̲L̲I̲N̲E̲,̲S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲
MDOS ̲FC ̲KEY EQ DELETE ̲LINE? NOT IN FIELD
EQ TRUE?
D̲I̲S̲P̲L̲A̲Y̲
̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
OUT ̲FLAG =
TRUE
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲
̲F̲I̲E̲L̲D̲(̲C̲M̲D̲-
L̲I̲N̲E̲,̲S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲
MDOS FC ̲KEY EQ RESPONSE ̲TEXT?RESPONSE ̲TEXT ̲FLAG
= TRUE
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲
̲F̲I̲E̲L̲D̲(̲C̲M̲D̲
̲ LINE, ̲
S̲P̲A̲C̲E̲S̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲
MDOS ̲FC ̲KEY EQ COMMAND? CMD ̲FLAG =
TRUE
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲
̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲
̲F̲I̲E̲L̲D̲ ̲(̲C̲M̲D̲
̲L̲I̲N̲E̲ ̲S̲P̲A̲C̲E̲S̲)̲
(4.2.2.6.5)
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
Fig. 4.2.2.4.4-3
INPUT CMD ̲LINE
LIST.KIND = LOWER ̲BYTE
LIST.LINK = NULL
LIST.ADDRESS = ADDR(CMD ̲RESP ̲AREA)
LIST.BYTE ̲SIZE = CMD ̲RESP ̲AREA ̲SIZE
FIELD ̲DESCRIP.LINE NO = CMD ̲LINE
FIELD ̲DESCRIP.INCARNATION ̲NO = NAME
FIELD ̲DESCRIP.FIELD ̲NO = CMD
CASE FIELDS ̲INPUT(HEADER ̲IFCB, LIST, FIELD ̲DESCRIP,
COUNT)
(BYTE ̲TRANSFERRED, FIELD,
CC) : ERROR OK
ERROR? CASE ANALYZE ERROR(CC, 1, VDU ̲SPLIT
̲FAILED): (LI)
LI? SET VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK?
END CASE
END
Fig. 4.2.2.4.4-4
SET SEQUENCE CODE
CASE FC ̲KEY OF MDCO FC ̲KEY ̲TYPE
PRINT? SEQUENCE ̲CODE ̲NO =
PRINT
CANCEL? SEQUENCE ̲CODE NO =
CANCEL
RETURN TO MENU SEQUENCE ̲CODE NO =
RETURN ̲MENU
KEEP AND PRESENT NEXT? SEQUENCE ̲CODE NO
= KEEP
DELETE AND PRESENT NEXT? SEQUENCE ̲CODE NO
= DELETE
ENTER? SEQUENCE ̲CODE NO =
ENTER
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲2̲)̲
END CASE
END
Fig. 4.2.2.4.4-5
GET ̲CURSOR ̲POS
CASE GET ̲CURSOR ̲POSITION(SPLIT ̲DIGIT ̲1)
(CURSOR ̲RECORD ̲1, LINES
̲ABOVE, CC):
ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,3, CURSOR ̲NOT ̲IN
̲FORMATTED ̲LINE,
CURSOR ̲ NOT ̲IN ̲FIELD, VDU
̲SPLIT ̲FAILED):
(ULB3, ULB4, ULB5)
ULB3?
ULB4? NOT ̲IN ̲FIELD = TRUE
ULB5? VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK?
END CASE
END
Fig. 4.2.2.4.4-6
4.2.2.4.5 D̲I̲V̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.2.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̲
The purpose of this module is to analyse commands from
DIVCO and, in accordance with the commands, to enter
MDOS ̲SEQUENCE(4.2.2.4.11).
4.2.2.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) DIVCO ̲CMD ̲PROCESSING
b) DIVCO ̲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̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0 - R7 (DEST)
4.2.2.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
4.2.2.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̲
MDOS ̲CO ̲OP ̲TYPE refer 4.1.4
COROUTINE ̲SEMAPHORE ̲TYPE refer CPS/DBD/001
DIVCO ̲CMD ̲TYPE refer 4.1.4
SENDER ̲ID ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MDOS ̲S1 refer 4.1.4
DIVCO ̲OP refer 4.1.4
SEQUENCE ̲CODE ̲NO (m) refer 4.2.2.5
MDOS ̲ACTIV ̲FLAG (m) refer 4.1.4
INTERNAL ̲ERROR ̲INF ̲TYPE refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.2.4.5.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module inspects DIVCO commands, enters MDOS ̲SEQUENCE(4.2.2.4.11)
and signals opsem MDOS ̲S1.
DIVCO ̲CMD ̲PROCESSING
DIVCO ̲OP.OP ̲ID(2) = DIFCO ̲IDENT
CASE DIVCO ̲OP.CMD OF DIVCO ̲CMD ̲TYPE
CLOSE DOWN DIFCO CMD? SEQUENCE ̲CODE ̲NO
= CLOSE ̲DOWN
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
BLOCK ̲DIFCO ̲CMD? SEQUENCE ̲CODE ̲NO = BLOCK
̲TERMINAL
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
DIVCO ̲OP.CMD = BLOCK
̲DIFCO ̲CC
MDOS ̲ACTIV = FALSE
SIGNAL ̲OPSEM(MDOS
̲S1, DIVCO ̲OP) : OK
STOP ̲DIFCO ̲CMD? SEQUENCE ̲CODE ̲NO =STOP
̲USER
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
DIVCO ̲OP.CMD = STOP
̲DIFCO ̲CC
MDOS ̲ACTIV = FALSE
SIGNAL ̲OPSEM(MDOS
̲S1, DIVCO ̲OP)(CC): OK
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
Fig. 4.2.2.4.5-1
4.2.2.4.6 D̲I̲D̲I̲A̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.2.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̲
The purpose of this module is to analyse the inputs
that DIFCO gets from DIDIA. Depending on input a completion
code is signalled to DIVCO and thereafter MDOS ̲SEQUENCE(4.2.2.4.11)
is entered, or on behalf of other inputs MDOS ̲SEQUENCE(4.2.2.4.11)
is entered directly.
4.2.2.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) DIDIA ̲CC ̲PROCESSING
b) DIDIA ̲CC ̲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̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0 - R7 (DEST)…86…1
…02… …02… …02… …02…
…02…
4.2.2.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
4.2.2.4.6.3.1 C̲H̲E̲C̲K̲ ̲P̲A̲R̲A̲ ̲1̲
See flowgram 4.2.2.4.6.3-1
4.2.2.4.6.3.2 O̲P̲E̲N̲
See flowgram 4.2.2.4.6.3-2
4.2.2.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̲
MDOS ̲CO ̲OP ̲TYPE refer 4.1.4
DIDIA ̲DIFCO ̲CMD ̲TYPE refer 4.1.4
SENDER ̲ID ̲TYPE refer 4.1.4
DIFCO ̲CC ̲TYPE refer 4.1.4
INTERNAL ̲ERROR ̲INT refer 4.1.4
CO ̲CMD ̲CC ̲TYPE refer 4.1.4
RESULT ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FORMAT ̲IFCB refer 4.1.4
VDU ̲SPLIT ̲FLAG (m) refer 4.2.2.5
SEQUENCE ̲CODE NO ̲(m) refer 4.2.2.5
DIDIA ̲CC ̲OP refer 4.1.4
MDOS ̲S1 refer 4.1.4
DIVCO ̲OP (m) refer 4.1.4
START ̲FLAG refer 4.2.2.5
MDOS ̲ACTIV (m) refer 4.1.4
EXP ̲DIDIA ̲CMD refer 4.2.2.5
SENDER ̲ID ̲TYPE refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.2.4.6.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module analyses completion code from DIDIA, and
in those cases where DIDIA ̲CC is to command issued
by DIVCO, a completion code is sent to DIVCO before
entering MDOS ̲SEQUENCE module.…86…1 …02… …02… …02… …02… …02… …02… …02… …02… …02… …02…
…02… …02… …02…
DIDIA ̲CC ̲PROCESSING
FREE DIFCO OP (̲D̲I̲F̲C̲O̲ ̲O̲P̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲3̲0̲)̲
DIFCO ̲OP.CMD NE EXP ̲DIDIA CMD?
DIFCO ̲OP.PARA1 EQ SPLIT ̲FAILED ̲CC? F̲A̲I̲L̲E̲D̲ ̲S̲P̲L̲I̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲3̲)̲
CASE MDOS ̲OP.CMD OF DIFCO ̲DIDIA ̲CMD ̲TYPE
L ̲INSERT,
L ̲DELETE? CASE MDOS ̲OP.PARA1 OF CO ̲CMD ̲CC
̲TYPE
OK
̲CC?
ERROR
̲CC?
DISPLAY
̲ERROR
̲MDG
(ERROR
̲NO)(4.2.2.6.4)
END
CASE
CLEAR ̲VDU? SEQUENCE
̲CODE
̲NO
=
CLEAR
̲VDU
̲CO
C̲H̲E̲C̲K̲
̲P̲A̲R̲A̲1̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲1̲)̲
CANCEL ̲I ̲O? SEQUENCE
̲CODE
̲NO
=
CANCEL
̲CC
C̲H̲E̲C̲K̲
̲P̲A̲R̲A̲1̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲1̲)̲
OUTPUT ̲FORMAT? SEQUENCE ̲CODE ̲NO = OUTPUT
̲FORMAT ̲CC
C̲H̲E̲C̲K̲
̲P̲A̲R̲A̲1̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲1̲)̲
O̲P̲E̲N̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲2̲)̲
OUTPUT ̲DATA? SEQUENCE ̲CODE ̲NO = OUTPUT
̲DATA ̲CC
C̲H̲E̲C̲K̲
̲P̲A̲R̲A̲1̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲1̲)̲
O̲P̲E̲N̲
̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲2̲)̲
OTHERWISE? C̲O̲N̲T̲I̲N̲U̲E̲
̲D̲I̲D̲I̲A̲
̲C̲C̲
̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
̲(̲-̲2̲)̲
END CASE
Figure 4.2.2.4.6-1
CONTINUE DIDIA ̲CC ̲PROCESSING
CASE MDOS ̲OP.CMD OF DIFC ̲DIDIA ̲CMD ̲TYPE
CLOSE? SEQUENCE ̲CODE = CANCEL ̲CC
C̲H̲E̲C̲K̲ ̲P̲A̲R̲A̲1̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲1̲)̲
DIVCO ̲OP.OP ̲ID(2) = DIFCO ̲IDENT
DIVCO ̲OP.CMD = COLSE ̲DOWN ̲DIFCO ̲CC
CLOSE ̲DOWN = TRUE
MDOS ̲ACTIV = FALSE
SIGNAL ̲OPSEM (MDOS ̲SO,DIVCO ̲OP)(CC):OK
DISPLAY ̲MENU START ̲FLAG EQ FALSE?
DIVCO ̲OP.OP ̲ID (2) = DIFCO ̲IDENT
DIVCO ̲OP.OP ̲ID = START ̲DIFCO
SIGNAL ̲OPSEM(MDOS ̲SI,DIVCO ̲OP)(CC):OK
START ̲FLAG = FALSE
SEQUENCE ̲CODE ̲NO = DISPLAY ̲MENU ̲CC
C̲H̲E̲C̲K̲ ̲P̲A̲R̲A̲1̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲1̲)̲
O̲P̲E̲N̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲2̲)̲
INPUT ̲DATA? CASE MDOS ̲OP.OP.PARA1 OF CO ̲CMD ̲CC ̲TYPE
OK CC? S̲E̲T̲ ̲S̲E̲Q̲ ̲C̲O̲D̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲4̲)̲
ERROR ̲CC? CASE MDOS ̲OP PARA2 OF
RESULT ̲TYPE
VAL ̲ERROR? SEQ ̲CODE = VAL ̲ERROR ̲CC
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̲
(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
END CASE
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
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
Figure 4.2.2.4.6-2
FAILED ̲SPLIT
VDU ̲SPLIT ̲FLAG = TRUE
START ̲FLAG = FALSE?
CASE MDOS ̲OP.CMD OF DIFCO ̲DIDIA ̲CMD ̲TYPE
CLOSE? DIVCO ̲OP.CMD = CLOSE ̲DIFCO ̲CC
OUTPUT ̲FORMAT? DIVCO ̲OP.CMD = START ̲DIFCO ̲CC
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̲.̲1̲)̲
END CASE
DIVCO ̲OP.OP ̲ID (2) = DIFCO ̲IDENT
SIGNAL ̲OPSEM (MDOS ̲SI,DIVCO ̲OP)(CC):OK
END
Figure 4.2.2.4.6-3
SET ̲REQ ̲CODE
CASE MDOS ̲OP.PARA2 OF RESULT TYPE
OK? SEQUENCE ̲CODE = VAL ̲OK ̲CC
LOCAL ̲PRINT? SEQUENCE ̲CODE = LOCAL ̲PRINT
SEND? SEQUENCE ̲CODE = SEND
DEFER? SEQUENCE ̲CODE = DEFER
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
Figure 4.2.2.4.6-4
CHECK PARA1
CASE MDOS ̲OP.PARA1 OF CO ̲CMD ̲CC ̲TYPE
OK ̲CC?
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
M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
Figure 4.2.2.4.6.3-1
OPEN
CASE ENABLE ̲DATA ̲KEYS (HEADER ̲IFCB)(CC):ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR (CC,1,VDU ̲SPLIT ̲FAILED):(L1)
L1? VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK?
END CASE
CASE ENABLE ̲DATA ̲KEYS(FORMAT ̲IFCT)(CC) :ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED)(L1)
L1? VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK?
END CASE
END
Figure 4.2.2.4.6.3-2
4.2.2.4.7 D̲I̲R̲T̲ ̲O̲P̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.2.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̲
The purpose of this module is to analyse input from
DIRT ̲Coroutine, display notification and enter the
MDOS ̲SEQUENCE module(4.2.2.4.11).
4.2.2.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) DIRT ̲OP ̲PROCESSING
b) DIRT ̲OP ̲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̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
R0 - R7 (DEST)
4.2.2.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
N/A
4.2.2.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̲
MDOS ̲CO ̲OP ̲TYPE refer 4.1.4
SEQUENCE ̲KEY ̲TYPE refer 4.2.2.5
INTERNAL ̲ERROR ̲INF refer 4.1.4
DIRT ̲NOT ̲TYPE refer 4.1.4
QELEMENT ̲MAINTYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
TRANSACTION ̲ID ̲RECORD (m) refer 4.1.4
DIFCO ̲DIRT ̲ATTR refer 4.1.4
SEQUENCE ̲CODE ̲NO (m) refer 4.2.2.5
DIRT ̲OP refer 4.1.4
ERROR ̲NO (m) refer 4.2.2.5
START ̲FLAG (m) refer 4.2.2.5
SEQUENCE ̲FORMAT ̲NO (m) refer 4.2.2.5
MDOS ̲QEL refer 4.1.4
MDOS ̲ATTR refer 4.1.4
INPUT ̲CIF refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.2.4.7.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module calls either DISPLAY ̲ERROR ̲MSG(4.2.2.6.4)
and MDOS ̲SEQUENCE (4.2.2.4.11) or the latter only.