top - download
⟦96435a4dc⟧ Wang Wps File
Length: 57173 (0xdf55)
Types: Wang Wps File
Notes: Spelunked
Names: »~ORPHAN73.08«
Derivation
└─⟦fa8144eef⟧ Bits:30006080 8" Wang WCS floppy, CR 0123A
└─ ⟦this⟧ »~ORPHAN73.08«
WangText
H…06…G…0a…G…0e…G…02…G…05…F…08…F…0c…F…0e…F…02…F…06…E…0a…E…0b…E…0e…E…0f…E…05…D…0a…D…0f…D C…09…C…0b…C…0c…C…0e…C…0f…C…00…C…05…B…08…B…0b…B…0e…B…01…B B…06…A…0a…A…0f…A…86…1
…02…
…02…
…02…
…02…CPS/SDS/037
…02…CGN/820225…02……02…
MDCO
VDU
DETAILED
DESIGN
SPECIFICATION
CAMPS
4.1.4 C̲o̲m̲m̲o̲n̲ ̲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̲
COROUTINE ̲SEMAPHORE ̲TYPE refer CPS/DBD/001
COROUTINE ̲OPERATION ̲TYPE refer CPS/DBD/001
IFCB ̲INDEX ̲TYPE refer CPS/DBD/001
FELD ̲DESCRIPTOR ̲TYPE refer CPS/DBD/001
DESIGNATOR ̲TYPE refer CPS/DBD/001
TIME ̲TYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
CLASSIFICATION ̲TYPE refer CPS/DBD/001
PRECEDENCE ̲TYPE refer CPS/DBD/001
USER ̲CAPABILITY ̲TYPE efer CPS/DBD/001
QERROR ̲INF ̲TYPE refer CPS/DBD/001
TMP ̲PARAM ̲TYPE refer CPS/DBD/001
INTENAL ̲ERROR ̲INF ̲TYPE refer CPS/DBD/001
QUEUE ̲ATTRIBUTES ̲TYPE refer CPS/DBD/001
OFFER ̲ID ̲TYPE refer CPS/DBD/001
SPEC ̲HAND ̲TYPE refer CPS/DBD/001
GAQ ̲INFO ̲TYPE refer CPS/DBD/001
LOGICAL ̲TERMINAL ̲NO ̲TYPE refer CPS/DBD/001
USER ̲ID ̲TYPE refer CPS/DBD/001
TERMINAL ̲DESIGNATOR ̲TYPE refer CPS/DBD/001
FCT ̲CAPABILITY ̲TYPE refer CPS/DBD/001
USER ̲FCT ̲CAPABILITY ̲TYPE refer CPS/DBD/001…86…1…02…
…02… …02…
…02… …02… …02… …02…
…02… …02…
b) M̲D̲O̲S̲ ̲C̲O̲M̲M̲O̲N̲ ̲T̲Y̲P̲E̲S̲
TYPE MDOS ̲COROUTINE ̲OP = RECORD
COROUTINE
OP: COROUTINE
̲OP
̲TYPE
IDENT: IDENT
̲TYPE
CMD: CO
̲CMD's
̲TYPE
PARA: INTEGER
END
TYPE IDENT = (DIVCO ̲IDENT, DIFCO ̲IDENT, DIFCO ̲DIDIA
̲IDENT,DIDIA ̲IDENT,
DIRT ̲IDENT, CMDQ ̲IDENT, CCMDQ ̲IDENT, F/C ̲KEY
̲IDENT,
ANQ ̲IDENT, VDU ̲IDENT)
TYPE CO-̲CMD= CASE IDENT OF
DIVCO ̲IDENT: DIVCO ̲CMD ̲TYPE
DIFCO ̲IDENT: DIFCO ̲CC ̲YPE
DIFCO ̲VDIA ̲IDENT: DIFCO ̲DIDIA ̲CMD ̲TYPE
DIDIA ̲IDENT: DIDIA ̲DIFCO ̲CC ̲TYPE
DIRT ̲IDENT: DIRT ̲NOT ̲TYPE
VDU ̲IDENT: VDU ̲CMD ̲TYPE
END CASE
TYPE DIVCO ̲CMD = (INIT ̲DIFCO ̲CMD,
RESTART ̲DIFCO
̲CMD,
START ̲DIFCO ̲CMD,
STOP ̲DIFCO ̲CMD, BLOCK
̲DIFCO
̲CMD,
CLOSE
̲DOWN
̲DIFCO
̲CMD)
TYPE DIFCO ̲CC = (INIT
̲DIFCO
̲CC,
RESTART
̲DIFCO
̲CC)
START ̲DIFCO ̲CC,
STOP ̲DIFCO ̲CC,
BLOCK ̲DIFCO ̲CC,
CLOSE ̲DOWN ̲DIFCO
̲CC,
PRECEDENCE ̲CHANGE,
FLASH ̲NOTIFICATION,
ANTIFLASH ̲NOTIFICATION)
TYPE DIFCO ̲DIDIA ̲CMD= (DIDIA ̲CLOSE ̲DOWN,
DIDIA ̲CANCEL,
DIDIA ̲CLEAR ̲VDU,
DIDIA ̲INPUT ̲DATA,
DIDIA ̲INPUT ̲REQ, DIDIA
̲OUTPUT ̲FORMAT,
DIDIA ̲OUTPUT ̲DATA,
DIDIA ̲INSERT, DIDIA ̲DELETE)
TYPE DIDIA ̲DIFCO ̲CC = (SPLIT ̲FAILED
̲CC, DIDIA ̲CLOSE
̲DOWN ̲CC,
DIDIA ̲CANCEL ̲CC, DIDIA
̲CLEAR ̲VDU ̲CC,
INSERT ̲NOT ̲ALLOWED ̲CC,
LINES ̲INSERTED ̲CC,
DELETE ̲NOT ̲ALLOWED ̲CC,
LINES ̲DELETED ̲CC,
OUTPUT ̲DATA ̲C, OUTPUT
̲FORMAT ̲CC,
INPUT ̲DATA-CC,
VAL ̲ERROR ̲CC,
DEFER ̲VALID,
SEND ̲VALID)
TYPE DIRT ̲NOT = (ONLINE ̲NOTIFICATION,
OFFLINE ̲NOTIFICATION,
RETRIEVAL ̲NOTIFICATION,
RETRIEVAL ̲ERROR)
TYPE VDU ̲CMD = (FORMAT ̲TO ̲VDU,
FILDS ̲TO ̲VDU,
FIELDS ̲FROM ̲VDU, LINES
̲INSERTED,
LINES ̲DELETED)
VAR DIVCO ̲OP, DIFCO ̲OP, DIDIA ̲CC ̲OP, DIRT
̲OP, CCMD ̲OP,
CMD ̲OP, ANQ ̲OP, F/C ̲KEY ̲OP, VDU ̲OP: MDOS
̲COROUTINE
̲OP
̲TYPE
INIT DIFCO ̲OP. IDENT = DIFCO ̲DIDIA
̲IDENT
INIT DIDIA ̲C ̲OP. IDENT = DIDIA ̲IDENT
INIT DIRT ̲OP. IDENT = DIRT ̲IDENT
INIT CCMDQ ̲OP ̲IDENT = CCMQ ̲IDENT
INIT CMD ̲OP. IDENT = CMDQ ̲IDENT
INIT ANQ ̲OP. IDENT = ANQ ̲IDENT
INIT F/C ̲KEY ̲OP. IDENT = F/C ̲KEY ̲IDENT
INIT VDU ̲OP. IDENT = VDU ̲IDENT
VAR MDOS ̲S1, MOS ̲S2, MDOS ̲S3: COROUTINE ̲SEMAPHORE
̲TYPE
VAR FORMAT ̲IFCB,
HEADER ̲IFCB: IFCB ̲INDEX ̲TYPE
VAR CURSOR ̲RECORD ̲1,
CURSOR ̲RECORD =
RECORD
SPLIT ̲DIGIT : INTEGER
FIELD :FIELD ̲DESCRIPTOR
̲TYPE
LINES ̲ABOVE :INTEGER
END;
VAR TRANSACTION ̲ID =
RECORD
TERMINAL ̲DESIGNATOR: DESIGNATOR
̲TYPE
SERIAL ̲NO:INTEGER
TIME: TIME ̲TYPE
END;
VAR RECV ̲QEL,
OUTPUT CIF,
INPUT CIF,
CIF ̲REF ̲QEL: QEL ̲REFERENCE
̲TYPE
VAR CURRENT ̲CLASS : CLASSIFICATION
̲TYPE
VAR CURRENT ̲PRECEDENCE: PRECEDENCE ̲TYPE
VA CAB : USER ̲CAPABILITY
̲TYPE
VAR MDOS ̲QERROR: QERROR ̲INF ̲TYPE
VAR MDOS ̲INT ERROR = RECORD
USER ̲CC: INTEGER
USER ̲INF: ARRAY(1..4)
of
INTEGER
END;
VAR MDOS ̲SEND ̲PARAMS :SEND
̲PARAMS
̲TYPE
VAR KEY ̲COUNT :INTEER
VAR MDCO ̲ACTIV :BOOLEAN…86…1…02…
…02…
…02…
…02…
…02…
TYPE MAINQ = (DISQ, RESPQ, USERQ)
TYPE SUBQ = (SUPERFLASH, FLASH, IMMEDIATE,
SUPERPRIORITY, PRIORITY,
ROUTINE)
TYPE VDU ̲CLASS ̲TYPE = RECORD
IOC ̲HEADER: IOC ̲HEADER ̲TYPE
CLASSIFICATION: ARRAY (1..18) OF CHAIR
END;
TYPE VDU ̲TIME ̲TYPE = RECORD
IOC ̲HEADER: IOC ̲HEADER ̲TYPE
TIME: DTG ̲TYPE
EN…86…1…02… …02… …02… …02… …02…
VAR MDOS ̲Q ̲NAME: QUEUE ̲REFERENCE TYPE
CONST: MDOS ̲CMD ̲Q
CONST: MDOS ̲CCMD ̲Q
CONST: MDOS ̲MDQ
CONST: ANQ
CONST: RESP ̲Q
CONST: RETV ̲Q
CONST: PREP ̲Q
CONST: COLLECT ̲Q
CONST: LOG ̲Q
CONST: ISQ
CONST: MSG ̲DIST ̲Q
CONST: TR ̲HAND ̲Q
VAR MDOS ̲RECV ̲ATTR: QEL ̲ATTRIBUTE ̲TYPE
VAR MDOS ̲ATTR: QEL ATTRIBUTE ̲TYPE…86…1…02…
…02… …02… …02… …02…
VAR INIT ̲AREA = RECORD
CMD ̲SPLIT ̲COUNT ̲ID: OFFER ̲ID ̲TYPE
CMD ̲SPLIT DATA ̲ID: OFFER ̲ID ̲TYPE
FORMAT ̲SPLIT ̲COUNT ̲ID: OFFER ̲ID ̲TYPE
FORMAT ̲SPLIT ̲TERMINAL ̲ID: OFFER ̲ID
̲TPE
LOGICAL ̲TERMINAL ̲NO: LOGICAL ̲TERMINAL
̲NO ̲TYPE
USER ̲ID: USER ̲ID ̲TYPE
MAX ̲CLASS: CLASSIFICATION ̲TYPE
SPECIAL ̲HANDLING ̲INSTRUCTION: SPEC
̲HAND ̲TYPE
TERMINAL ̲DESIGNATOR: TERMINAL ̲DESIGNATOR
̲TYPE
FCT ̲CAPABILITY: FCT ̲CAPABILITY ̲YPE
FCT ̲USER ̲CAPABILITY: USER ̲FCT ̲CAPABILITY
̲TYPE
END…86…1 …02… …02… …02… …02…
4.1.5 C̲o̲m̲m̲o̲n̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
4.1.5.1 M̲D̲O̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲
4.1.5.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this procedure is to report
queue errors to the SSC.
4.1.5.1.2I̲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) MDOS ̲QUEUE ̲ERROR(USER ̲ACTION: USER ̲ACTION
̲TYPE,
QEL: QEL ̲REFERENCE,
MDOS ̲QERROR: QERROR ̲INF)
b) MDOS ̲QUEUE ̲ERROR DISM: BOOLEAN (R1,R2
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̲r̲s̲
R1 USER ̲ACTION
DEST
R2 FLAG for dismantling
DEST
R3 QEL
DEST
R4 pointer to MDOS ̲QERROR
DEST
R6 LINK
DEST
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
Non
R0-R7
DEST…86…1 …02… …02… …02… …02…
4.1.5.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̲
USER ̲ACTION ̲TYPE refer CPS/DBD/001
GAQ ̲INFO ̲TYPE refer CPS/DBD/001
QEL ̲REFERENCE refer CP/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MDOS ̲QERROR refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.1.5.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This procedure reports queue errors to the
SSC by calling the SEND ̲GARBLE-procedure and
dismantle the QEL in error.
4..5.2 M̲D̲O̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲
4.1.5.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 procedure is to report
internal errors to the SSC.
4.1.5.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) MDOS ̲INTERNAL ̲ERROR (USER ̲ACTION: USER ̲ACTION
̲TYPE,
MDOS ̲INT ̲ERROR: INTERNAL ̲ERROR
̲INF)
b) MDOS ̲INTERNAL ̲ERROR (R1, 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̲
R1 USER ̲ACTION DEST
R4 pointer to MDOS ̲INT ̲ERROR DEST
R6 LINK DEST
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0-R7 DEST
4.1.5.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̲
USER ̲ACTION ̲TYPE refer CPS/DBD/001
GAQ ̲INFO ̲TYPE refer CPS/DBD/001
QEL ̲REFERENCE refer CPS/DBD/001
INTERNAL ̲ERROR ̲INFTYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MDOS ̲INTE ̲ERROR refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE MDOS ̲INTERNAL ̲ERROR: INTERNAL ̲ERROR ̲INF ̲TYPE
4.1.5.2.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This procedure reports internal errors to the SC by
calling the SEND ̲GARBLE-procedure.
4.1.5.3.1 D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲
4.1.5.3.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 purpose of this procedure is to dismantle an object
referenced by a QEL.
The referenced view will be checkponted if the Checkpoint
Status is true.
The referenced view will be closed if demanded.
4.1.5.3.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) DISMANTLE ̲QEL: QEL: QEL ̲REFERENCE ̲TYPE,
CP ̲STATUS: BOOLEAN,
OBJECT: OBJECT ̲TYPE,
CLOSE: BOOLEAN)
b) DISMANTLE ̲QEL (R2, R3, R4, R5, 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̲
R2 QEL (Dest.)
R3 CP ̲STATUS (Dest.)
R4 OBJECT (Dest.)
R5 CLOSE (Dest.)
R6 LINK (Dest.
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0-R7 (Dest.)
4.1.5.3.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̲
OBJECT ̲TYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
N/A
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
CONST RE ̲LEVEL = DISK ̲CP
4.1.5.3.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲…86…1 …02… …02… …02… …02…
DISMANTLE ̲QEL
CASE OBJECT ̲TYPE OF
TIMER,
QEL? DISMANTLE(QEL)(CC): OK
BUFFER? CASE DISMANTLE ̲BUFFER(QEL)(CC): ERROR
̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
VIEW CLOSE EQ TRUE? CASE CLOSE VIEW(QEL)(CC): ERROR
OK
ERROR? ANALYZE ERROR(CC,
O)
OK
END CASE
VIEW?-CP ̲STATUS EQ FALSE?- ̲C̲I̲F̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲.̲1̲-̲2̲)̲
CASE SAVE ̲VIEW(DISMANTLE, REC ̲LEVEL,QEL)
(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
OTHERWISE?- M̲D̲O̲S̲ ̲I̲N̲T̲E̲N̲A̲L̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
4.1.5.3.1-1…86…1 …02… …02… …02… …02…
CIF DISMANTLE (CREATE QEL)
CASE DISMANTLE ̲VIEW(QEL)(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
Fig. 4.1.5.3.1-
4.1.6 G̲L̲O̲B̲A̲L̲ ̲D̲A̲T̲A̲
Refer CPS/DBD/001
4.1.7 I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
4.1.7.1 E̲x̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
MDCO Procedures ref. doc. no. CPS/230/ICD/0002
All MDOP subpackages interfaces, tis document.
4.1.7.2 P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
4.1.7.2.1 T̲r̲a̲f̲f̲i̲c̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲(̲T̲H̲P̲)̲ ̲I̲/̲F̲
This interface is implemented by the MDOS coroutine
DIFCO.
For details refer CPS/ICD/009.
4.1.7.2.2 D̲i̲s̲t̲r̲i̲b̲u̲t̲i̲o̲n̲ ̲(̲M̲D̲P̲)̲ ̲I̲/̲F̲
This interface is implemented by he MDOS coroutine
DIFCO.
For details refer CPS/ICD/009.
4.1.7.2.3 S̲t̲o̲r̲a̲g̲e̲ ̲a̲n̲d̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲(̲S̲A̲R̲)̲ ̲I̲/̲F̲
This interface is implemented by the MDOS coroutines
DIFCO (requests queued to SAR) and DIRT (reception
of SAR responses)
For details refer CS/ICD/009.…86…1 …02… …02… …02… …02…
4.1.7.2.4 L̲o̲g̲ ̲a̲n̲d̲ ̲A̲c̲c̲o̲u̲n̲t̲a̲b̲i̲l̲i̲t̲y̲ ̲(̲L̲O̲G̲)̲ ̲I̲/̲F̲
This interface is implemented by the MDOS coroutine
DIFCO.
For details refer CPS/ICD/009.
4.1.7.2.5 S̲S̲C̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲I̲/̲F̲
This nterface is implemented by the MDOS coroutines
DIVCO (start/stop function) and DIFCO (security interrogation
request).
For details refer CPS/ICD/009.
4.1.7.2.6 T̲a̲b̲l̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲(̲T̲M̲P̲)̲ ̲I̲/̲F̲
This interface is implemented by the MDOS corotines
DIFCO (Global no. series) and DIDIA (table access).
For details refer CPS/ICD/009.
4.1.7.3 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲ ̲
4.1.7.3.1 P̲r̲o̲c̲e̲s̲s̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
These are the interfaces between UMAM and MDOS:
F̲r̲o̲m̲ ̲M̲D̲O̲S̲ ̲t̲o̲ ̲U̲M̲A̲M̲:̲
1. Status Requests 2. Edit
Requests
3. Delete Requests
4. Access State Changes…86…1 …02… …02… …02… …02…
F̲r̲o̲m̲ ̲U̲M̲A̲M̲ ̲t̲o̲ ̲M̲D̲O̲S̲:̲
1. Access Key to CIF (QEL ref)
2. Outgoing Service Message Status
4.1.7.3.2 C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
1̲.̲ ̲ ̲F̲r̲o̲m̲ ̲D̲I̲V̲C̲O̲ ̲t̲o̲ ̲D̲I̲F̲C̲O̲
1. Initialize Command
. Restart DIFCO Command
3. Start DIFCO Command
4. Stop DIFCO Command
5. Close ̲Down Command
2̲.̲ ̲ ̲F̲r̲o̲m̲ ̲D̲I̲F̲C̲O̲ ̲t̲o̲ ̲D̲I̲V̲C̲O̲
1. Initialize ̲CC
2. Restart DIFCO ̲CC
3. Start DIFCO ̲CC
4. Stop DIFCO ̲CC
5. Close ̲Down ̲CC
6. FLASH ̲NOTIFICATION
7. ANTIFLSH ̲NOTIFICATION
3̲.̲ ̲ ̲F̲r̲o̲m̲ ̲D̲I̲F̲C̲O̲ ̲t̲o̲ ̲D̲I̲D̲I̲A̲
1. CLOSE
2. CANCEL ̲I ̲O
3. CLEAR ̲VDU
4. INPUT ̲DATA
5. OUTPUT ̲DATA
6. OUTPUT ̲FORMAT
7. L ̲INSERT
8. L ̲DELETE
4̲.̲ ̲ ̲F̲r̲o̲m̲ ̲D̲I̲D̲I̲A̲ ̲t̲o̲ ̲D̲I̲F̲C̲O̲
1. CLOSE ̲CC
2. CANCEL ̲CC
3. CLEAR ̲CC
4. INPUT ̲DATA ̲CC
5. OUPUT ̲DATA ̲CC
6. OUTPUT ̲FORMAT ̲CC
7. L ̲INSERT ̲CC
8. L ̲DELETE ̲CC
9. PRINT ̲REQ
10. VALIDATION ̲ERROR
5̲.̲ ̲ ̲F̲r̲o̲m̲ ̲D̲I̲F̲C̲O̲ ̲t̲o̲ ̲R̲E̲T̲R̲
None.
6̲.̲ ̲ ̲F̲r̲o̲m̲ ̲D̲I̲R̲T̲ ̲t̲o̲ ̲D̲I̲F̲C̲O̲
1. On-line notification
2. Off-line notification
3. Retrieval notification
4. Retrieval ̲ERROR ̲notification…86…1 …02… …02… …02…
…02…
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 D̲e̲l̲i̲v̲e̲r̲y̲ ̲V̲D̲U̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲(̲D̲I̲V̲C̲O̲)̲
This subpackage is the controlling subpackage within
the package. The control is exercised by issueof 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
- DFCO 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 MDOS Data (1.1)
Performs initialization of common data for the
subpackages within MDOS.
b) Initialize DIVCO Data (1.2)
Performsinitialization of common data for the modules
within the DIVCO 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 DIVCO takes actio
and starts DIFCO.
b) Process STOP USER CMD (2.2)
This command is received after SIGN OFF and DIVCO
takes action and stops DIFCO.
c) Process BLOCK TERMINAL CMD (2.3)
This command is received when the terminal has
been blocked (by supervisoror as a result of a
failed SIGN ON procedure or security interrogation)
and DIVCO informs DIFCO.
d) Process CLOSE DOWN CMD (2.4)
This command informs MDOS that a system close down
procedure is to take place and DIVCO informs DIFCO.
e) Send Reponse to TEMCO (2.5)
For each TEMCO command a corresponding command
to DIFCO exists and to each DIFCO command a corresponding
completion response exists. When DIVCO has received
the expected completion response from DIFCO an
acknowledge to the TECO 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) External Flash notification from ccmd.q (3.1).
Analyses the flash notification to determine the
precedence (superflash or flash), takes careof
the creation of the queue-elements to be sent to
the other MDCO's queues.
b) Internal flash notification (3.2).
Analyses the flash notification to determine the
precedence (superflash or flash) to know which
of the flash-queues to be updatedon the VDU-queue
display.
Create flash-notification queued to the other MDCO
queues if the flash notification arrived from DIFCO
subpackage.
c) Internal antiflash notification (3.3).
Analyses the flash notification to determine the
precedence(superflash or flash) to know which of
the flash-queues to be updated on the VDU-queue
display.
Create anti-flash notification queue-elements to
the other MDCO queues if the anti-flash notification
arrived from DIFCO subpackage.
d) Process Flah/Anti-flash Distribution (3.4).
Sends flash or anti-flash notifications to the
other MDCO cmd-queues.
4.2.1.1.4 T̲i̲m̲e̲r̲ ̲E̲v̲e̲n̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲4̲.̲0̲)̲
a) Interpret timer event (4.1)
Analyses the incoming queue-element to be a periodic
timeout.
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) Update Q-Status Fields (.2)
Maintains the queue length filds in the VDU-header.
c) Update flash-queue-field (5.3)
Maintains the superflash- or flash-queue length
field in the VDU-header.
d) Display VDU-Header (5.4)
Updates the VDU-header display.
e) Invert andbell (5.5).
Take care of the invertion of the DIST-Q. Display
and ring the bell when a superflash- or flash notification
arrives to the ccmd or cmd queues.
4.2.1.1.6 D̲I̲F̲C̲O̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲6̲.̲0̲)̲
a) Send CMD to DIFCO (6.1)
Controls DIFCO by sending ommands.
b) Process Command Completion from DIFCO (6.2)
Interprets and reacts upon acknowledge from DIFCO.
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 DIFCO 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.
DIVCO consists of one coroutine containing 7 modules
and 10 common procedures.
4.2.1.2.1 D̲I̲V̲C̲O̲ ̲O̲N̲T̲R̲O̲L̲ ̲(̲1̲.̲0̲)̲
This is the module containing the mainloop of DIVCO.
The module contains the MDOS initialization functions,
initialize the DIFCO subcoroutine, receives items arrived
in the MDOS ̲CMD ̲Q and MDOS ̲CCMD ̲Q and receives DIFCO
responses.
Te following component procedures are contained in
this module:
a) MDOS Init (1.1)
Initializes the MDOS common data and DIVCO data.
4.2.1.2.2 D̲I̲F̲C̲O̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲2̲.̲0̲)̲
This module receives and reacts upon DIFCO responses,
sends acknowedge of TEMCO commands to TEMCO, sends
flash or antiflash notifications to the other MDCO
cmd queues and display the precedence on VDU.
4.2.1.2.3 F̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲f̲r̲o̲m̲ ̲c̲c̲m̲d̲-̲q̲ ̲ ̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲3̲.̲0̲)̲
This module analyses the incoming flash-notifiction
to determine the precedence (superflash or flash),
takes care of the creation of queue elements to be
sent to the other MDCO's cmd-queues and display the
present superflash or flash queue length.…86…1
…02… …02… …02… …02…
4.2.1.2.4 F̲l̲a̲s̲h̲ ̲n̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲f̲r̲o̲m̲ ̲c̲m̲d̲-̲q̲-̲p̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲4̲.̲0̲)̲
This module analyses the flash notification to determine
the precedence (superflash or flash), and display the
present suerflash or flash queue length.
4.2.1.2.5 A̲n̲t̲i̲f̲l̲a̲s̲h̲ ̲n̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲f̲r̲o̲m̲ ̲c̲m̲d̲-̲q̲-̲p̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲5̲.̲0̲)̲
This module analyses the precedence of the flash notification
(superflash or flash) and display the actual queue-length
on VDU. Look after if the inserion of the queue field
on VDU still shall be inserted.
4.2.1.2.6 T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲6̲.̲0̲)̲
This module analyses TEMCO commands, performs start
user actions (after sign on), sends commands to DIFCO
and reports reception of unexpected queue eleents to
SSC.
a) MDCO Connections (6.1)
Transfers the user connection (received from TEMCO
together with START USER CMD) to MDOS common data
areas. Reads the Terminal Profile by call upon
TMP and transfers data from the terminal profile
to MDOS ommon data area.
b) Init Terminal (6.2)
Initializes the VDU.
c) Request Periodic Timeout (6.3)
Requests the periodic timeout (every minute) for
the duration of this session.
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 periodic-timeout for periodic
timeouts the date/time field and queue length fields
in the VDU header are updatedand the VDU header displayed.
If unexpected queue elements are found this is reported
to SSC.
4.2.1.2.5 C̲o̲m̲m̲o̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
For description of the 10 common procedures refer section
4.2.1.6.
Fig. 4.2.1.2-1…86…1 …02… …02… …02… …02…
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̲ ̲D̲I̲V̲C̲O̲
An overview of the dataflow through DIVCO is shown
on diagrams 4.2.1.3-1 to 5.
The call structure within DIVCO is shown on figur 4.2.1.3-6
identifying all calls between modules and common procedures.…86…1
…02… …02… …02… …02…
5 HIPOGRAMS…86…1 …02… …02… …02… …02…
Fig. 4.2.1.3-6…86…1 …02… …02… …02… …02… …02…
4.2.1.4 D̲I̲V̲C̲O̲ ̲M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
4.2.1.4.1 D̲I̲V̲C̲O̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
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.
t interprets the startup parameters delivered in the
registers when the subprocess is started and activates
initialization or restart accordingly. It initializes
the MDOS data-areas, sends a command to DIFCO, signals
DIFCO and initiates reception fom the MDOS ̲CMQ and
MDOS ̲CCMDQ. It associates the reception from these
queues with the semaphore MDOS ̲S1 and waits for this
semaphore. It analyses the input to the semaphore,
(when signalled) to identify:
- SSC commands
- Flash Notifications
- nti-flash Notifications
- Timeouts
- DIFCO Responses
and calls appropriate modules.
4.2.1.4.1.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 ̲CONTROL
b) DIVCO ̲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̲
R̲6̲ ̲L̲I̲N̲K̲ DESTROYED
R̲e̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
RO-R7 DESTROYED…86…1
…02…
…02…
…02…
…02…
…02…
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
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̲D̲O̲S̲ ̲I̲N̲I̲T̲
Initializes the MDOS-data areas and DIVCO-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̲e̲r̲e̲n̲c̲e̲s̲
DIVCO ̲OP refer
4.1.4
MDOS ̲S1 refer
4.1.4
INIT ̲DIFCO ̲CMD refer
4.1.4
RESTART ̲DIFCO ̲CMD refer
4.1.4
QERROR ̲INF refer
4.1.4
INTERNAL ̲ERROR ̲INF refer
4.1.4
CMD ̲QEL refer
4.2.1.5
CMD ̲QEL ̲MAINTYPE refer
4.2.1.5
CCMD ̲QEL refr
4.2.1.5
CCMD ̲QEL ̲MAINTYPE refer
4.2.1.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
START ̲UP: refer
CPS/DBD/001
CLOSE ̲DOWN ̲FLAG refer
4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
RESTART: BOOLEAN
OP ̲POINTER: INTEGER
OP ̲IDENT: INTEGER
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 ̲DIFCO cmd or RESTART ̲DIFCO cmd accordingly.
- Initiaizes MDOS data- and DIVCO data-areas.
- Sets up RECEIVE ̲FIRST ̲QEL call to MDOS-CMDQ and
MDOS ̲CCMDQ associates the call to MDOS ̲S1, signals
DIFCO and waits for MDOS ̲S1.
- Analyses input to MDOS ̲CMDQ and calls the modules:
TEMCO ̲CMD ̲PROCESSING INTERNAL
FLASH
INTERNAL ANTIFLASH
TIMER ̲EVENT ̲PROCESSING
accordingly.
- Analyses input to MDOS ̲CCMDQ and calls the module:
Flash-Queue Monitoring…86…1…02… …02… …02… …02… …02…
…02…
DIVCO CONTROL
CASE START ̲UP OF
DEAD 1 ? RESTART = FALSE
DEAD 2 ? RESTART = FALSE
COLD ? RESTART = FALSE
WARM 1 ? RESTART = TRUE
WARM 2 ? RESTART = TRUE
OTHERISE ? M̲D̲O̲S̲ ̲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̲ ̲I̲N̲I̲T̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲.̲3̲.̲1̲)̲
RESTART ? MOVE RESTART ̲DIFCO ̲CMD TO DIVCO ̲OP.CMD
MOVE INIT DIFCO ̲CMD TO DIVCO ̲OP.CMD
S̲I̲G̲N̲A̲L̲ ̲D̲I̲F̲C̲O̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲0̲)̲
WAIT OPSEM (MDOS ̲S1)(MDOS ̲OD) : OK
CASE MDO ̲OP. IDENT
DIFCO ̲IDENT? D̲I̲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̲.̲2̲)̲
OTHERWISE? M̲D̲O̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲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̲.̲1̲)̲
W̲A̲I̲T̲I̲N̲G̲ ̲P̲O̲I̲N̲T̲ ̲(̲-̲2̲)̲
END
Fig. 4.2.1.4.1-1…86…1…02… …02… …02… …02… …02… …02…
WAITING POINT
FOREVER LOOP
WAIT ̲OPSEM(MDOS ̲S1)(MDOS ̲OP) : OK
CASE MDOS ̲OP.IDENT OF
CMD ̲QEL? M̲D̲O̲S̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(-3)
CCMD ̲QEL? M̲D̲O̲S̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲N̲G̲(-4)
DIFCO ̲IDENT? D̲I̲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.2)
OTHERWISE? M̲D̲O̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ (4.1.5.2)
END CASE
CLOSE ̲DOWN ̲FLAG EQ TRUE? EXIT FOREVER LOOP
END FOREVER ̲LOOP
CLOSE LOOP
WAIT ̲OPSEM(MDOS ̲S1)(MDOS ̲OP): OK
EN CLOSE ̲LOOP
END
Fig. 4.2.1.4.1-2…86…1…02… …02… …02… …02… …02… …02…
MDOS ̲CMD ̲QEL ̲PROCESSING
CASE WAIT ̲SYS ̲CALL(CMD ̲OP)(CMD ̲QEL ̲ATTR,CMD ̲QEL):ERROR
̲OK
ERROR? ANALYSE ̲ERROR(CC,0)
OK? CASE CMD ̲QEL ̲ATTR.HEADER
MAINTYPE OF
SSC ̲CMD? T̲E̲M̲C̲O̲
̲C̲M̲D̲
̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(4.2.1.4.6)
FLASH ̲NOTIFICATION?
I̲N̲T̲E̲R̲N̲A̲L̲ ̲F̲L̲A̲S̲H̲(
(4.2.1.4.4)
TEP ̲INTERNAL? I̲N̲T̲E̲R̲N̲A̲L̲
̲A̲N̲T̲I̲
̲F̲L̲A̲S̲H̲
(4.2.1.4.5)
TIME OUT? T̲I̲M̲E̲R̲ ̲E̲V̲E̲N̲
̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(4.2.1.4.7)
OTHERWISE? M̲D̲O̲S̲ ̲Q̲U̲E̲U̲E̲
̲E̲R̲R̲O̲R̲(4.1.5.1)
END CASE
END CASE
END
Fig. 4.2.1.4.1-3…86…1…02… …02… …02… …02… …02… …02…
MDOS ̲COMD ̲QEL ̲PROCESSING
CASE WAIT ̲SYS ̲CALL(CCMD ̲OP)(CCMD ̲QEL ̲ATTR, SUBQUEUE.
CCMD ̲QEL): ERROR
̲OK
ERROR? ANALYZE ̲ERROR(CC,O)
OK? CASE CCMD ̲QEL ̲ATTR.EADER
MAINTYPE OF
FLASH.NOTIFIC.? 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? M̲D̲O̲S̲ ̲Q̲U̲E̲U̲E̲
̲E̲R̲R̲O̲R̲ ̲(4.1.5.1)
END CASE
END CASE
Fig. 4.2.1.4.1-4…86…1…02… …02… …02… …02… …02… …02…
4.2.1.4.2 D̲I̲F̲C̲O̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
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 the responses from DIFCO subcoroutine.
If the response is a compleion code to a cmd another
completion code is sent to TEMCO. If the response
is a notification (flash or antiflash) other notifications
are sent to the MDCO ̲cmd-q's.
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) DIFCO ̲RESPONSE ̲PROCESSIG
b) DIFCO ̲RESPONSE ̲PROCESSING (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̲
RO-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 R̲e̲m̲o̲v̲e̲ ̲V̲D̲U̲
Remove both the header and format rea of the VDU.
4.2.1.4.2.3.2 C̲a̲n̲c̲e̲l̲ ̲C̲a̲l̲l̲
Cancel the outstanding monitor ̲calls as
periodic ̲timeout request and ccmd queue
̲element request.
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̲
DIVCO ̲OP refer 4.1.4
DIFCO ̲CC ̲TYPE refer 4.1.4
INIT ̲DIFCO ̲CC refer 4.1.4
RESTART ̲DIFCO ̲CC refer 4.1.4
START ̲DIFCO ̲CC refer 4.1.4
STOP ̲DIFCO ̲CC refer 4.1.4
BLOCK ̲DIFCO ̲CC refer 4.1.4
CLOSE ̲DIFCO ̲CC refer 4.1.4
INTERNAL ̲ERRR ̲INF refer 4.1.4
ACK.PARAMS refer CPS/DBD/001
SEND ̲PARAMS ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
USER-ON-FLAG (m) refer 4.2.15
VDU ̲SPLIT ̲FAILED refer 4.2.1.5
CLOSE ̲DOWN ̲FLAG (m) refer 4.2.1.5
MDCO ̲SEND ̲PARAMS (m) refer 4.1.4
FLSH ̲KIND refer 4.2.1.5
HEADER ̲IFCB refer 4.1.4
DISQ ̲FIELD ̲AREA refer 4.2.1.5
SUPER ̲FLASH ̲QUEUE ̲FIELD refer 4.2.1.5
FLASH ̲QUEUE ̲FIELD refer 4.2.1.5
FORMAT:IFCB refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR OK ̲FLAG BOOLEAN
INIT OK ̲FLAG = FALS
VAR FLASH ̲ARRIVED BOOLEAN
INIT FLASH ̲ARRIVED = FALSE
4.2.1.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The module performs the following tasks:
- Analyses the DIFCO response to be
a command completion report or a notification
of a flash-transaction.
- Sends a report to TEMCO if the command
has been executed or not
- Sends a flash notification to the
MDCO ̲cmd ̲queues and update a flash
queue field on VDU.
- Sends an antiflash notification to
the MDCO ̲cmd-queues, update a flash
queue fieldon VDU and turns on the
inverted field if neccessary.…86…1…02…
…02… …02… …02… …02… …02…
DIFCO RESPONSE PROCESSING
CASE DIFCO RESPONSE OF
INIT ̲DIFCO ̲CC? SET OK ̲FLAG
= FALSE
RESTART ̲DIFCO ̲CC? SET OK ̲FLAG
= FALSE
START ̲DIFCO ̲CC? SET OK ̲FLAG
= TRUE
STP ̲DIFCO ̲CC,
BLOCK ̲DIFCO ̲CC? SET OK ̲FLAG
= TRUE
R̲E̲M̲O̲V̲E̲
̲V̲D̲U̲
̲(4.2.1.4.2.3.1)
C̲A̲N̲C̲E̲L̲
̲C̲A̲L̲L̲
(4.2.1.4.2.3.2)
SET
USER
̲ON
̲FLAG
=
FALSE
CLOSE ̲DOWN ̲DIFCO ̲CC? SET OK FLAG
= TRUE
USER
̲OK
̲FLAG,
EQ
FALSE?
R̲E̲M̲O̲V̲E̲
̲V̲D̲U̲
̲(̲4.2.1.4.23.1)
C̲A̲N̲C̲E̲L̲
̲C̲A̲L̲L̲
(4.2.1.4.4.2.3.2)
SET
CLOSE
DOWN
̲FLAG
=
TRUE
SET
USER
̲ON
̲FLAG
=
FALSE
FLASH ̲NOTIFICATION? SET OK ̲FLAG
= FALSE
F̲L̲A̲S̲H̲
̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
̲(
-2
)
ANTI ̲FLASH ̲NOTIFICATION? SET OK ̲FLAG
= FALSE
A̲N̲T̲I̲F̲L̲A̲S̲H̲
̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
( - 3 )
OTHERWISE! M̲D̲O̲S̲
̲I̲N̲T̲E̲R̲N̲A̲L̲
̲E̲R̲R̲O̲R̲
(4.1.5.2)
END CASE
OK ̲FLAG EQ FALSE?
MDCO ̲SEND PARAMS.MAINTYPE = ACK
MDCO ̲SEND.PARAMS.SUBTYPE = TEP ̲ACK
VDU ̲SPLIT ̲FAILED EQ TRUE? SET ̲CMD ̲QEL
̲FLAG EQ 2
SET CMD ̲QEL ̲FLAG= 0
CASE SEND (SEND PARAMS, CMD ̲QEL,QUEUE)(ACK
̲
PARAMS,CC):ERROR: OK
ERROR? ANALYZE ERROR
(CC,0)
OK?
END CASE
SET OK ̲FLAG TO FALSE
END
Fig. 4.2.1.4.2-1…86…1…02… …02… …02… …02… …02… …02…
FLASH ̲PROCESSING
CASE DIFCO ̲OP.PARA. FLAG OF PRECEDENCE
SUPERFLASH? SET MDCO ̲SEND ̲PARAMS.MAINTYPE
= FLASH ̲NOTIFI- CATION
SET MDCO
̲SEND ̲PARAMS.SUBTYPE
= UPERFLASH
SET FLASH
̲KIND TO SUPERFLASH
SET FLASH
̲ARRIVED =
TRUE
FLASH? SET MDCO
̲SEND ̲PARAMS.MAINTYPE
= FLASH ̲NOTIF.
SET MDCO
̲SEND ̲PARAMS.SUBTYPE
= FLASH
SET FLASH
̲KIND TO FLASH
SET FLASH
̲ARRIVED =
TRUE
OTHERWIS? M̲D̲O̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲
̲E̲R̲R̲O̲R̲ (4.1.5.2)
END CASE
FLASH ̲ARRIVED = TRUE? S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲
(4.2.1.6.9)
I̲N̲V̲E̲R̲T̲
̲A̲N̲D̲
̲B̲E̲L̲L̲
(4.2.1.6.8)
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.3)
D̲I̲S̲P̲L̲A̲Y̲
̲V̲D̲U̲
̲H̲E̲A̲D̲E̲R̲
(4.2.1.6.7)
SET
FLASH
̲ARRIVED
=
FALSE
ND
Fig. 4.2.1.4.2-2…86…1…02… …02… …02… …02… …02… …02… …02… …02…
ANTI ̲FLASH ̲PROCESSING
CASE DIFCO ̲OP.PARA.FLAG OF PRECEDENCE
SUPERFLASH? SET MDCO
̲SEND PARAMS
MAINTYPE
= TEP INTERNAL
SET MDCO
̲SEND ̲PARAMS.SUBTYPE
= ANTIFLASH
SET MDCO ̲SEND ̲PARAMS.FLAG = SUPERFLASH
SET FLASH
̲KIND TO SUPERFLASH
SET FLASH
̲ARRIVED =
TRUE
FLASH? SET MDCO
̲SEND ̲PARAMS.MAINTYPE
= TEP ̲INTERNAL
SET MDCO
̲SEND ̲PARAMS.SUBTYPE
= ANTIFLASH
SET MDCO
̲SEND ̲PARAMS.FLAG
= FLAS
SET FLASH
̲KIND TO FLASH
SET FLAG
̲ARRIVED =
TRUE
OTHERWISE? M̲D̲O̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲
̲E̲R̲R̲O̲R̲ (4.1.5.2)
END CASE
FLASH ̲ARRIVED = TRUE? S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲ (4.2.1.6.9)
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.3)
D̲I̲S̲P̲L̲A̲Y̲
̲V̲D̲U̲
̲H̲E̲A̲D̲E̲R̲
(4.2.1.6.7
SUPERFLASH
̲Q
NE
0?
FLASH
̲Q
NE
0?
GET
HEADER
̲IFCB
CASE
CHANGE
FIELD
ATTR
(IFCB,FIELD,0)
(CC,VDU
̲SPLIT
̲FAILED):ERROR
̲OK
ERROR?
ANALYSE
ERROR(CC,1,VDU
̲SPLIT
̲FAILED)
LI?
M̲D̲O̲S̲
̲I̲N̲T̲E̲R̲A̲L̲
̲E̲R̲R̲O̲R̲
(4.1.5.2)
OK?
END
CASE
SET
FLASH
̲ARRIVED
=
FALSE
END
Fig. 4.2.1.4.2-3…86…1…02… …02… …02… …02… …02… …02… …02… …02…
REMOVE VDU
CASE REMOVE TERMINAL (HEADER ̲IFCB)(CC):
ERROR ̲OK
ERROR? ANALYZE
ERROR
(CC,0)
OK?
END CASE
CASE REMOVE TERMINAL (FORMAT ̲IFCB)(CC):
ERROROK
ERROR? ANALYZE
ERROR
(CC,0)
OK?
END CASE
END
Fig. 4.2.1.4.2.3.1…86…1…02… …02… …02… …02… …02… …02… …02… …02…
4.2.1.4.3 F̲L̲A̲S̲H̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲F̲R̲O̲M̲ ̲C̲C̲M̲D̲ ̲Q̲ ̲P̲R̲O̲C̲E̲S̲S̲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
to determine precedence (flash or
superlash). A similar notification
is sent to the other MDCO-cmd ̲queues.
The flash-queue is updated (incremented
by one), the DISQ is inverted and
a bell is ringing.
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 ̲MONITORIN
b) FLASH ̲QUEUE ̲MONITORING (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̲
R - R7 Destroyed
T̲o̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None…86…1…02… …02… …02… …02… …02… …02… …02…
…02… …02…
4.2.1.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲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̲
CCMD ̲QEL ̲ATTR.HEADER.SUBTYPE refer
4.2.1.5
CMD ̲QEL ̲ATTR.HEADER.MAINTYP refer
4.2.1.5
CMD ̲QEL ̲ATTR.HEADER.SUBTYPE refer
4.2.1.5
INTERNAL ̲ERROR ̲INF refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FLASH ̲KIND refer
4.2.1.5
MDCO ̲SEND ̲PARAMS (m) refer
4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR: OK ̲FLAG BOOLEAN
INIT O ̲FLAG = FALSE
4.2.1.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module performs the following
tasks:
- Analyse Flash notification QEL
from the Ccmd ̲Q to determine the
precedence (flash or superflash)
- Sends a corresponding flash notification
to the oter MDCO-cmd-queues
- Updates and displays VDU ̲HEADER
- Dismantles Flash Notification
QEL
- Inverts Distribution ̲queue ̲length
̲field and ring bell.…86…1…02… …02… …02…
…02… …02… …02… …02… …02…
…02…
FLASH ̲QUEUE ̲MONITORING
CASE MDOS ̲CCMD ̲QEL ̲ATTR.HEADER.SUBTYPE
OF
SUPERFLASH? SET MDOS
̲SEND ̲PARAMS.MAINTYPE
= FLASHNOTIFICATION
SET MDOS
̲SEND ̲PARAMS.SUBTYPE
= SUERFLASH
SET FLAG
̲KIND TO SUPERFLASH
SET OK ̲FLAG
= TRUE
FLASH? SET MDOS
̲SEND ̲PARAMS.MAINTYPE
= FLASH NOTIFICATION
SET MDOS
̲SEND ̲PARAMS
SUBTYPE =
FLASH
SET FLASH
̲KIND = FLASH
SET OK ̲FLAG
= TRUE
OTHERWISE? M̲D̲O̲S̲ ̲I̲N̲T̲R̲N̲A̲L̲
̲E̲R̲R̲O̲R̲ (4.1.5.2)
END CASE
OK ̲FLAG = TRUE? S̲E̲N̲D̲
̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
4.2.1.6.9
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.3)
D̲I̲S̲P̲L̲A̲Y̲
̲V̲D̲U̲
̲H̲E̲A̲D̲E̲R̲
̲(4.2.1.6.3)
I̲N̲V̲E̲R̲T̲
̲A̲N̲D̲
̲B̲E̲L̲L̲
(4.2.1.6.8)
SET
OK
̲FLAG
=
FALSE
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲(̲C̲C̲M̲D̲ ̲Q̲)̲ (4.1.5.3)
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(4.2.1.6.2)
END…86…1…02… …02… …02… …02… …02… …02… …02… …02…
…02…
4.2.1.4.4 F̲L̲A̲S̲H̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲ ̲F̲R̲O̲M̲ ̲C̲M̲D̲ ̲Q̲ ̲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 flash-notification
from the MDOS ̲cmd ̲queue to determine
precedene (flash or superflash). It
specifies which subqueue on VDU to
update. The Distribution queue ̲field
is inverted and the bell is ringing.
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) INTERNAL ̲FLASH
B) INTERNAL ̲FLASH (R6)
R̲e̲g̲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̲
Ro - 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̲
CMD ̲QEL ̲ATTR.HEADER.SUBTYPE refer
4.2.1.5
QERROR ̲INF refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FLASH ̲KIND (m) refer
42.1.5
USER ̲ON ̲FLAG refer
4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR: OK ̲FLAG BOOLEAN
INIT OK ̲FLAG = FALSE
4.2.1.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module performs the following tasks:
- Analyses Flash notification QEL from
the Cmd ̲Q to deterine the precedence
(flash or superflash)
- Update flash ̲queue ̲field and displays
VDU ̲HEADER
- Inverts Distribution ̲queue ̲length
̲field and ring bell.
- Dismantles Flash ̲Notification ̲QEL…86…1…02…
…02… …02… …02… …02… …02… …02… …02…
…02…
INTERNAL ̲FLASH
USER ̲ON ̲FLAG = FALSE?
CASE MDOS CMD ̲QEL ̲ATTR.HEADER.SUBTYPE
SUPERFLASH? FLASH ̲KIND = SUPERFLASH
SET OK ̲FLAG = TRUE
FLASH? FLASH ̲KIND = FASH
SET OK ̲FLAG = TRUE
OTHERWISE? M̲D̲O̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ (4.1.5.1)
END CASE
OK ̲FLAG = 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.3)
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(4.2.1.6.7)
I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲ (4.2.1.6.8)
SET OK ̲FLAG = FALSE
D̲I̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ (CMD ̲Q)(4.1.5.3)
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ (4.2.1.6.1)
END
Fig. 4.2.1.4.4-1…86…1…02… …02… …02… …02… …02… …02… …02… …02… …02…
4.2.1.4.5 A̲n̲t̲i̲-̲F̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲f̲r̲o̲m̲ ̲C̲m̲d̲ ̲Q̲ ̲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 analyses antiflash notification
from the MDOS ̲cmd-queue to determineprecedence
(flash or superflash). It specifies which
subqueue on VDU to update. The invertion
of the Distribution ̲queue ̲field is turned
off if it was the last message of flash
or superflash precedence to MDCO assistance.
4.2.1.4.5.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INTERNAL ̲ANTI ̲FLASH
B) INTERNAL ̲ANTI ̲FLASH (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̲
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̲s̲
Non
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̲
CMD ̲QEL ̲ATTR.HEADER.FLAG refer
4.2.1.5
INTERNAL ̲ERROR ̲INF refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FLASH ̲KIND (m) refer4.2.1.5
VDU ̲DISPLAY ̲AREA.QUEUE ̲LENGTH ̲SUPERFLASH
(m) refer
4.2.1.5
VDU ̲DISPLAY ̲AREA.QUEUE ̲LENGTH ̲FLASH
(m)
refer
4.2.1.5
HEADER ̲IFCB refer
4.2.1.5
DISQ ̲FIELD ̲AREA refer
4.2.1.5
c) L̲O̲C̲A̲L̲ ̲D̲A̲T̲A̲
VAR: K ̲FLAG BOOLEAN
INIT: OK ̲FLAG = FALSE
4.2.1.4.5.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module performs the following tasks:
- Analyses Anti-flash notification QEL
from cmd-q to determine the precedence
(flash or superflash)
- Update flash-queue ield and display
VDU-header
- Turn off the invertion of DISQ ̲field
if there is no more flash or superflash
messages to MDCO assistance.
- Dismantle Anti-flash notification
QEL…86…1…02… …02… …02… …02… …02… …02… …02…
…02… …02…
INTERNAL ̲ANTI ̲FLASH
USER ̲ON ̲FLAG = FALSE?
CASE MDOS ̲CMD ̲QEL ̲ATTR.HEADER.FLAG
OF
SUPERFLASH? SET FLASH ̲KIND TO SUPERFLASH
SET OK ̲FLAG =
TRUE
FLASH? SET FLASH ̲KIND TO FLASH
SET OK ̲FLAG =
TRUE
OTHERWISE? M̲D̲C̲O̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ (4.1.5.1)
END CASE
OK ̲FLAG = 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.3)
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲
(4.2.1.6.7)
SUPERFLASH ̲Q NE
O?
FLASH ̲Q E O?
GET HEADER ̲IFCB
CASE CHANGE FIELD
ATTR (IFCB,
FIELD,0)(CC,
VDU ̲SPLIT ̲FAILED)
:ERROR ̲OK
ERROR? ANALYZE
ERROR(CC,1,VDU
̲SPLIT ̲
FAILED):(LI)
LI? M̲D̲O̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲
̲E̲R̲R̲O̲R̲(4.1.5.2)
OK
END CASE
SET OK ̲FLAG =
FALSE
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲C̲M̲D̲Q̲)̲(4.1.5.3)
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ (4.2.1.6.1)
END
Fig. 4.2.1.4.5-1…86…1 …02… …02… …02… …02… …02…
4.2.1.4.6 T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
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 TEMCO command, performs necessary
actions and sends appropriate commands to DIFCO.
.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) 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.6.3 M̲o̲d̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
4.2.1.4.6.3.1 M̲D̲C̲O̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲S̲
Transfers the user connection (received from TEMCO
together with START USER CMD) to MDOS common data
areas, reads the terminal profile by call upon
TMP and transfers data from the terminal profile
t MDOS common data area.…86…1 …02… …02… …02… …02…
…02…
4.2.1.4.6.3.2 I̲N̲I̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
Initializes both the header and the data area of
the VDU.
4.2.1.4.6.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
imer monitor.
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̲
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
DIVCO ̲OP refer 4.1.4
START ̲DIFCO ̲CMD refer 4.1.4
STOP ̲DIFCO ̲CMD refer 4.1.4
BLOCK ̲DIFCO ̲CMD refer 4.1.4
CLOSE ̲DOWN ̲DIFCO ̲CMD refer .1.4
INTERNAL ̲ERROR ̲INF refer 4.1.4
QERROR ̲INF refer 4.1.4
CMD ̲QEL ̲ATTR.HEADER.
SUBTYPE refer 4.2.1.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
INIT AREA refer 4.1.4
VDU ̲DISPLAY ̲AREA refer 4.2.1.5
HEADER IFCB refer 4.1.4
FORMAT IFCB refer 4.1.4
CURREN CLASSIFICATION FIELD refer 4.1.4
USER ̲ON ̲FLAG refer 4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
INIT: POINTER TO INIT AREA CPS/DBD/001
START OFFSET "
POINTER FOR TERMINAL PROF. "
LENGTH FOR TER.PRO. "
COUNT "
MASK " TERMINAL
PROFILE
"
FILE SYSTEM NAME "
CONST: RCT
4.2.1.4.6.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module performs the following tasks:
- Interprets TEMCO commands.
- Reads the TEMCO cmd queue data buffer and gets
the needed data to fillthe MDOS common data and
DIVCO common data.
- Gets the terminal profile and sets up the needed
data in common data.
- Initializes and displays VDU header.
- Requests periodic 1 minute timeout.
- Send appropriate commands to DIFCO.…86…1…02… …02…
…02… …02… …02… …02…
TEMCO ̲CMD PROCESSING
CASE MDOS ̲CMD ̲QEL ̲ATTR.HEADER ̲SUBTYPE OF:
START ̲USER? M̲D̲C̲O̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲S̲
(4.2.1.4.6.3.1)
I̲N̲I̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
(4.2.1.4.6.3.2)
G̲E̲T̲ ̲D̲A̲T̲E̲ ̲T̲I̲M̲E̲
(4.2.1.6.)
Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲
(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.7)
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.6.3.3)
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲C̲M̲D̲
̲Q̲E̲L̲ ̲(4.2.1.6.2)
SET USER ̲ON ̲FLAG
= TRUE
SET DIVCO ̲OP TO
START ̲DIFCO CMD
STOP ̲USER? SETDIVCO ̲OP TO
STOP DIFCO ̲CMD
BLOCK ̲TERMINAL? SET DIVCO ̲OP TO BLOCK ̲DIFCO CMD
CLOSE ̲DOWN? SET DIVCO ̲OP TO CLOSE DOWN ̲DIFCO CMD
OTHERWISE? M̲D̲O̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲
(GIVE UP)(4.1.5.1)
END CASE
S̲I̲G̲N̲A̲L̲ ̲D̲I̲F̲C̲O̲ (4.2.1.6.10)
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲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.1)
END
Fig. 4.2.1.4.6-1…86…1…02… …02… …02… …02… …02… …02…
MDCO ̲CONNECTIONS
CASE READ BUFFER(CMD ̲QEL, POINTER TO INIT ̲AREA,START
OFFSET)
(START ̲UP
̲BUFFER ̲SIZE, CC):
ERROR ̲OK
ERROR? ANALYZE ERROR(CC,1,SIZE ERROR): (LI
LI? M̲D̲O̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲
̲E̲R̲R̲O̲R̲ (4.1.5.2)
OK?
END CASE
CASE SEARCH ̲PRIMARY ̲KEY(TERMINAL ̲PROFILE,
LOGICAL ̲TERMINAL
̲NO, COUNT, INIT
AREA ̲POINTER,
INIT AREA POINTER
LENGTH, MASK)
(CC, BUFFER? FULL):
ERROR ̲OK
ERROR? M̲D̲C̲O̲ ̲I̲N̲T̲E̲R̲A̲L̲ ̲E̲R̲R̲O̲R̲ (4.1.5.2)
OK?
END CASE
END
Fig. 4.2.1.4.6.3.1…86…1…02… …02… …02… …02… …02… …02…
INIT TERMINAL
GET HEADED IFCB ̲INDEX
GET FILE SYSTEM NAME
GET CMD ̲SPLIT ̲CONT ̲ID (FROM QUEUE ̲DATA ̲BUFFER)
GET CMD ̲SPLIT ̲DATA ̲ID ( " " " " )
CASE FOMAT ̲INIT ̲TERMINAL(INTERFACE NO,
FILE SYSTEM NAME,CONT
̲ID,DATA ̲ID)
(CC): ERROR ̲OK
ERROR? ANALYZE ERROR
(CC,0)
OK?
END CASE
GET FORMAT ̲IFCB ̲INDEX
GET FORMAT ̲SPLIT ̲CONT ̲ID
GET FORMAT ̲SPLIT ̲DATA ̲ID
CASE FORMAT ̲INIT ̲TERMIAL(INTERFACE NO,
FILE SYSTEM NAME, CONT ̲ID, DATA ̲ID)
(CC):ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
END
Fig. 4.2.1.4.6.3.2…86…1…02… …02… …02… …02… …02… …02…
REQUEST PERIODIC TIMEOUT
CASE REQUEST ̲TIMEOUT(MDOS ̲CMD ̲Q,PERIODIC,ONE MIN,
RPT)
(CC):
ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
ED
Fig. 4.2.1.4.6.3.3…86…1 …02… …02… …02… …02… …02…
4.2.1.4.7 T̲I̲M̲E̲R̲ ̲E̲V̲E̲N̲T̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
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 the timeout QEL to determine whether
it is a periodic one or not. All the fields in he VDU
header are updated and displayed.
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) 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̲
R0 - R7 DSTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
N̲o̲n̲e̲
4.2.1.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
None…86…1 …02… …02… …02… …02…
…02…
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̲
MDOS ̲CMD ̲QEL ̲ATTR.HEADER.SUBTYPE refer 4.2.1.5
MDOS ̲CMD ̲QEL ̲ATTR.HEADER.FLAG refer 4.2.1.5
QERROR ̲INF refer 4.1.4
b) E̲x̲t̲e̲n̲a̲l̲ ̲D̲a̲t̲a̲
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.4.7.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module performs the following tasks:
- Analyse timeout
- Request time
- Update and display VDU header…86…1…02… …02… …02… …02… …02… …02…
…02… …02… …02…
TIMER EVENT PROCESSING
CASE MDOS ̲QEL ̲ATTR.SUBTYPE OF
TIMEOUT ̲EVENT? CASE MDOS ̲QEL
̲ATTR.HEADER.FLAG
PERIODIC?
G̲E̲T̲
̲D̲A̲T̲E̲
̲T̲I̲M̲E̲
(4.2.1.6.6)
Q̲U̲E̲E̲
̲F̲I̲E̲L̲D̲S̲
̲U̲P̲D̲A̲T̲E̲
̲(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.7)
OTHERWISE?
M̲D̲O̲S̲
̲Q̲U̲E̲U̲E̲
̲E̲R̲R̲O̲R̲
̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲
(4.1.5.1)
END
CASE
TIME ̲OUT ̲CANCELLED?
OTHERWISE? M̲D̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲
(CONTINUE)(4.1.5.1)
END CASE
D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲(CMDQ)(4.1.5.3)
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲(4.2.1.6.1)
END…86…1…02… …02… …02… …02… …02… …02… …02…
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̲
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
QEL ̲ATTRIBUTES ̲TYPE refer "
FIELD DESCRIPTOR ̲TYPE refer "
QUEUEATTRIBUTES ̲TYPE refer "
FIELD ̲ATTR ̲TYPE refer
"
TIME ̲TYPE refer
"
SEND ̲PARAMS ̲TYPE refer
"
QUEUE ̲REFERENCE ̲TYPE refer "
b) C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲l̲o̲c̲a̲l̲ ̲d̲a̲t̲a̲
VAR: FLASH ̲KIND INTEGER
VAR: VDU ̲SPLIT ̲FAILED BOOLEN
INIT: VDU ̲SPLIT FAILED
= FALSE
VAR: CLOSE ̲DOWN ̲FLAG BOOLEAN
INIT: CLOSE ̲DOWN ̲FLAG = FALSE
VAR: USER ̲ON ̲FLAG BOOLEAN
INIT USER ̲ON ̲FLAG = FALSE
INIT DISQ ̲FIELD ̲AREA RECORD OF FIELD ̲DESCRIPTOR
TYPE
CONST LINE = 2
INCANATION = 1
FIELD = 7
VAR: MDCO ̲SEND ̲PARAMS TYPE: QUEUE ̲REFERENCE
VAR MDOS ̲ONE TYPE:
QUEUE
̲REFERENCE
VAR MDOS ̲TWO TYPE:
"
"
VAR MDOS ̲THREE TYPE;
"
"…86…1…02…
…02…
…02…
…02…
…02…
…02…
…02…
VAR: MDOS ̲Q ̲LENGTH ̲REF OF RECORD
MAINQUEUE: MAINQ
̲TYPE
SUBQUEUE: SUBQ
̲TYPE
END;
TYPE MAINQ = (DISQ, RESPQ,
USERQ)
TYPE SUBQ = (SUPERFLASH FLASH, IMMEDIATE, SUPERPRIORITY,
PRIORITY,
ROUTINE)
VAR: MDOS ̲Q ̲LENGTH 0....255
VAR: VDU ̲DISPLAY ̲AREA = RECORD
CLASS: VDU
̲CLASS
̲TYPE;
TIME: VDU
̲TIME
̲TYPE;
QUEUE
̲LENGTH: QUEUE
̲FIELD
̲TYPE,
END;
TYPE VDU ̲LASS ̲TYPE = RECORD
IOC
̲HEADER:
IOC
̲HEADER
̲TYPE;
CLASSIFICATION:
ARRAY(1...18)
OF
CHAR;
END;
TYPE VDU ̲TIME ̲TYPE = RECORD
IOC
̲HEADER: IOC
̲HEADER
̲TYPE;
TIME: DTG
̲TYPE;
END;
TYPE QUEUE ̲FIELD ̲TYPE = ARRAY (QUEUE
̲FIELDS ̲NAME) OF
QUEUE
̲RECORD
̲TYPE
TYPE QUEUE ̲FIELDS ̲NAME = (SUPERFLASH,FLASH.....DISTRIBU- TION,RESPONS,USER)
TPE QUEUE ̲RECORD ̲TYPE = RECORD
IOC ̲HEADER: IOC ̲HEADER
̲TYPE;
QUEUE ̲DATA: QUEUE ̲DATA
̲TYPE;
END;
TYPE QUEUE ̲DATE ̲TYPE = ARRAY (1..2)
OF CHAR;
TYPE IOC ̲HEADER ̲TYPE = RECORD
START ̲BYTE: CHAR;
BYTE ̲COUNT: CHAR;
TPE:
CHAR;
END;
INIT IOC ̲HEADER ̲TYPE =…86…1…02… …02…
…02… …02… …02… …02… …02…
4.2.1.6.1 S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲
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̲
Initiates reception from DIVCO ̲CMD ̲Q and
associates to MDOS ̲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) 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̲
R0 - R7 = DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
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 ̲CMD ̲Q refer
4.2.1.5
DIVCO ̲OP refer
4.1.4
MDOS ̲S1 refer
4.1.4
MDOS ̲CCMD ̲ATTR refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
None
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None…86…1…02… …02… …02… …02… …02… …02…
…02…
4.2.1.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
See fig. 4.2.1.6.1.1…86…1…02… …02… …02… …02…
…02… …02… …02…
SET ̲RECEIVE ̲CMD ̲QEL
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT, MDOS
̲CMD ̲Q,
(MDOS ̲CMD ̲Q ̲ATTR, DIVCO
̲OP)(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC,0)
OK?
END CASE
ASOCIATE (MDOS ̲S1, DIVCO ̲OP)(CC) : OK
END
Fig. 4.2.1.6.1-1…86…1…02… …02… …02… …02… …02… …02… …02…
4.2.1.6.2 S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲
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̲
Initialize reception from MDOS ̲CCMDQ and
associates to MDOS ̲S1.
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̲ ̲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̲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
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 ̲CCMD ̲Q refer
4.2.1.5
DIVCO ̲OP refer
4.1.4
MDOS ̲SI refer
4.1.4
MDOS ̲CCMD ̲ATTR refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
None
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None…86…1…02… …02… …02… …02… …02… …02…
…02…
4.2.1.6.2.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
See fig. 4.2.1.6.2.1…86…1…02… …02… …02…
…02… …02… …02… …02…
SET RECEIVE ̲CCMD ̲QEL
CASE INIT ̲RECEIVE ̲FIRST ̲QEL (WAIT,MDOS
̲CCMD ̲Q,
(MDOS ̲CCMDQ ̲ATTR, DIVCO.OP)(CC):
ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC,0)
OK?
END CASE
ASSOCIATE (MDOS ̲S1, DIVCO ̲OP)(CC) : OK
END
Fig. 4.2.1.6.2-1…86…1…02… …02… …02… …02… …02… …02… …02…
4.2.1.6.3 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.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̲
These procedure updates the queue length
of the Distribution queue and updates
the flash or superflas-precedecence queue
according to the precedence of the flash
notification arrived to DIVCO coroutine.
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) 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̲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̲
RO-R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
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̲
None
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MDOS ̲Q ̲LENGTH ̲REF (m) refer
4.2.1.5
MDOS ̲Q ̲LENGTH refer
4..1.5
FLASH ̲KIND refer
4.2.1.5
VDU ̲DISPLAY ̲AREA refer
4.2.1.5
INTERNAL ̲ERROR ̲INF refer
4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
These procedure update the queue length
of the Distribution queue and update the
flash or superflash-precedence queue acording
to the precedence of the flash notification
arrived to DIVCO subcoroutine.…86…1…02…
…02… …02… …02… …02… …02… …02…
FLASH ̲Q ̲FIELDS ̲UPDATE
SET MDOS ̲Q ̲LENGTH ̲REF.MAINQUEUE TO DIST
̲QUEUE
GET FLASH ̲KIND (FLASH OR SUPERFLASH)
SET MDOS ̲Q ̲LENGTH ̲REF.SUBQUEUE ACCORDING
TO FLASH ̲KIND
G̲E̲T̲ ̲Q̲ ̲E̲N̲G̲T̲H̲ (4.2.1.6.5)
CASE FLASH ̲KIND
SUPERFLASH? MOVE MDOS ̲Q ̲LENGTH TO
VDU ̲DISPLAY ̲
AREA.SUPERFLASH.Q
FLASH? MOVE MDOS ̲Q ̲LENGTH TO VDU ̲DISPLAY
̲AREA.FLASH.Q
OTHERWISE? M̲D̲O̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲
(4.1.5.2)
END CASE
SET MDOS ̲Q ̲LENGTHREF ̲SUBTYPE TO ZERO
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ (4.2.1.6.5)
MOVE ̲MDOS ̲Q ̲LENGTH TO VDU ̲DISPLAY ̲AREA.DIST
̲QUEUE
END
Fig. 4.2.1.6.3-11̲6̲5̲9̲A̲…00…CPS/SDS/037 …00…rt …00…CGN …00…MDCO VDU fra 4.1.4 …00…0̲4̲…00…0̲2̲…00…8̲2̲…00…1̲3̲…00…4̲4̲…00… ̲ ̲1̲0̲…00…0̲7̲…00… ̲4̲1̲1̲3̲6̲…00…25…00…05…00…82…00…08…00…35…00… …00…01…00… 24…00…2̲5̲…00…0̲5̲…00…8̲2̲…00…0̲8̲…00…3̲7̲…00…27…00…05…00…82…00…12…00…49…00…0123A…00…102…00…
̲ ̲2̲9̲…00…45…00… 1036…00… ̲6̲8̲510…00……19……00……01…P…10……02……00……10……00……01……10……06…'…10……11……02……90…*̲J̲…15……05……00……00……00……00……00……00……00…7
H…01……86……00……00……00……00…:…02……00……00…:
:…07…9…09…9…00…9…02…9…06…8…09…8…0a…8…00…8 8…05…7…09…7…0f…7 6…09…6…0c…6…00…6 5…08…5…0b…5…0e…5…02…5 4…08…4…0c…4…0f…4…01…4 4…05…3…0b…3…00…3…05…2…0a…2…00…2…02…2
2…05…2…06…2…07…1…0b…1…0c…1…0f…1…02……86…1
…02… …02… …02…
…02…CPS/SDS/037
…02…CGN/820514…02……02…
MDCO VDU
DETAILED DESIGN SPECIFICATION CAMPS
4.1.4 C̲o̲m̲m̲o̲n̲ ̲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̲
COROUTINE ̲SEMAPHORE ̲TYPE refer CPS/DBD/001
COROUTINE ̲OPERATION ̲TYPE refer CPS/DBD/001
IFCB ̲INDEX ̲TYPE refer CPS/DBD/001
FELD ̲DESCRIPTOR ̲TYPE refer CPS/DBD/001
DESIGNATOR ̲TYPE refer CPS/DBD/001
TIME ̲TYPE refer CPS/DBD/001
QEL ̲REFERENCE ̲TYPE refer CPS/DBD/001
CLASSIFICATION ̲TYPE refer CPS/DBD/001
PRECEDENCE ̲TYPE refer CPS/DBD/001
USER ̲CAPABILITY ̲TYPE efer CPS/DBD/001
QERROR ̲INF ̲TYPE refer CPS/DBD/001
TMP ̲PARAM ̲TYPE refer CPS/DBD/001
INTERNAL ̲ERROR ̲INF ̲TYPE refer CPS/DBD/001
QUEUE ̲ATTRIBUTES ̲TYPE refer CPS/DBD/001
OFFER ̲ID ̲TYPE refer CPS/DBD/001
SPEC ̲HAND ̲TYPE refer CPS/DBD/001
GAQ ̲INFO ̲TYPE refer CPS/DBD/001…86…1
…02… …02…
…02… …02…
…02…
LOGICAL ̲TERMINAL ̲NO ̲TYPE refer CPS/DBD/001
USER ̲ID ̲TYPE refer CPS/DBD/001
TERMINAL ̲DESIGNATOR ̲TYPE refer CPS/DBD/001
FCT ̲CAPABILITY ̲TYPE refer CPS/DBD/001
USER ̲FCT ̲CAABILITY ̲TYPE refer CPS/DBD/001
MDOS ̲SUBPROCESS ̲SINGLE ̲CAP ̲TYPE refer CPS/DBD/001
MDOS ̲SUBPROCESS ̲GROUP ̲CAP ̲TYPE refer CPS/DBD/001
MDOS ̲MDOS ̲CMQ ̲GROUP ̲TYPE refer CPS/DBD/001…86…1…02…
…02… …02…
…02… …02… …02… …02…
…02… …02…
b) M̲D̲O̲S̲ ̲C̲O̲M̲M̲O̲N̲ ̲T̲Y̲P̲E̲S̲ ̲A̲N̲D̲ ̲D̲A̲T̲A̲
TYPE MDOS ̲COROUTINE ̲OP = RECORD
COROUTINE OP: COROUTINE
̲OP
̲TYPE
OP ̲ID: OP
̲ID
̲TYPE
OMD: CO
̲CMD
̲TYPE
PARA1: INTEGER
PARA2: INTEGER
PARA3. INTEGER
TYPE OP ̲ID ̲TYPE = ARRAY(1..2) OF BYTE (refer fig.
4.1.4-1).
TYPE CO ̲CMD ̲TYPE: INIT ̲DIFCO ̲CMD, RESTART ̲DIFCO
̲CMD
START ̲DIFCO ̲CMD,
STOP DIFCO CMD,
BLOCK ̲DIFCO ̲CMD,
CLOSE ̲DOWN ̲DIFCO
̲CMD,
INIT ̲DICO ̲CC,
RESTART ̲DIFCO
̲CC,
START ̲DIFCO ̲CC,
STOP ̲DIFCO ̲CC,
BLOCK ̲DIFCO ̲CC,
CLOSE ̲DOWN ̲DIFCO
̲CC,
FLASH ̲NOT, ANTIFLASH
̲NOT,
CLOSE, CANCEL
̲I ̲0, CLEAR ̲VDU,
INPUT ̲DATA,
OUTPUT ̲DATA,
OUTPUT ̲FORMAT,
L ̲INSERT, L ̲DELETE,
CLOSE ̲CC,CANCEL
̲CC, CLEAR ̲CC,
INPUT ̲DATA ̲CC,
OUTPUT ̲DATA ̲CC,
OUTPUT ̲FORMAT
̲CC, L ̲INSERT
̲CC,
L ̲DELETE ̲CC,
VALIDATION ̲RESULT,
ERROR, OK,
ONLINE ̲NOTIFICATION,
OFFLINE ̲NOTIFICATION,
RETRIEVAL ̲NOTIFICATION,
RETRIEVAL ̲ERROR,
VDU ̲DATA ̲OUTPT,
VDU ̲DATA ̲INPUT
TYPE DIVCO ̲CMD = (INIT ̲DIFCO ̲CMD ... CLOSE ̲DOWN
̲DIFCO ̲CMD)
TYPE DIFCO ̲CC = (INIT ̲DIFCO ̲CC ... ANTIFLASH ̲NOT)
TYPE DIFCO ̲DIDIA ̲CMD = (CLOSE ... L ̲DELETE)
TYPE DIDIA ̲DIFCO ̲CMD ) (CLOSE ̲CC ... OK)
TYPE DIRT ̲NOT = (ONLINE ̲NTIFICATION ... RETRIEVAL
̲ERROR)
TYPE VDU ̲CMD = (VDU ̲DATA ̲OUTPUT, VDU DATA INPUT)
TYPE CO ̲CMD ̲CC = (OK ̲CC, ERROR ̲CC, SPLIT ̲FAILED
̲CC)
VAR FREE DIFCO ̲OP ̲SET: ARRAY (1...DIFCO ̲MAY ̲OP)
OF
MDOS
̲COROUTINE
̲OP
̲TYPE
CONST DIFCO ̲MAX ̲OP = 3
YPE RESULT = (OK, SEND, DEFER, LOCAL ̲PRINT)
OP ̲ID ̲TYPE
SENDER ̲ID
̲TYPE
CO ̲OP ̲NO
̲TYPE
SENDER ̲ID ̲TYPE = (DIVCO ̲IDENT, DIFCO ̲IDERNT,
DIDIA ̲IDENT, DIRT ̲IDENT,
CMDQ ̲IDENT,
CCMDQIDENT, FC ̲KEY ̲IDENT,
ANQ ̲IDENT)
CO ̲OP ̲NO ̲TYPE = SHORT ̲REFERENCE
Figure 4.1.4-1…86…1…02… …02… …02… …02… …02… …02… …02… …02… …02…
VAR DIVCO ̲OP, DIRT ̲OP, CCMD ̲OP,
CMD ̲OP, ANQ ̲OP, F/C ̲KEY ̲OP, VDU ̲OP: MDOS
̲COROUTINE ̲OP ̲TYPE
INIT DIRT ̲OP. IDENT = DIRT ̲IDENT
INIT CCMDQ ̲OP ̲IDENT = CCMQ ̲IDENT
INIT CMDOP. IDENT = CMDQ ̲IDENT
INIT ANQ ̲OP. IDENT = ANQ ̲IDENT
INIT F/C ̲KEY ̲OP. IDENT = F/C ̲KEY ̲IDENT
INIT VDU ̲OP. IDENT = VDU ̲IDENT
VAR MDOS ̲S1, MDOS ̲S2, MDOS ̲S3: COROUTINE ̲SEMAPHORE
̲TYPE
VAR FORMAT ̲IFCB,
HEADER ̲IFCB: IFCB ̲INDEX ̲TYPE
VAR CURSORRECORD ̲1,
CURSOR ̲RECORD =
RECORD
SPLIT ̲DIGIT : INTEGER
FIELD :FIELD ̲DESCRIPTOR ̲TYPE
LINES ̲ABOVE :INTEGER
END;
VAR TRANSACTION ̲ID =
RECORD
TERMINAL ̲DESIGNATOR: DESIGNATOR
̲TYPE
SERIAL ̲NO:INTEGER
TIME: TIME ̲TYPE
END;
VAR RECV ̲QEL,
OUTPUT CIF,
INPUT CIF,
MDOS ̲QEL :QEL ̲REFERENCE ̲TYPE
VAR CURRENT ̲CLASS : CLASSIFICATION
̲TYPE
VAR CURRENT ̲PRECEDENCE: PRECEDENCE ̲TYPE
VA CAB : USER ̲CAPABILITY
̲TYPE
VAR TEP ̲QERROR : QERROR ̲INF ̲TYPE
VAR TEP ̲INT ERROR = RECORD
USER ̲CC : INTEGER
USER ̲INF: ARRAY(1..4)
of
INTEGER
END;
VAR MDOS ̲SEND ̲PARAMS :SEND
̲PARAMS
̲TYPE
VAR KEY ̲COUNT :NTEGER
VAR MDCO ̲ACTIV :BOOLEAN…86…1…02…
…02…
…02…
…02…
…02…
VAR START ̲UP : INTEGER
VAR VDU ̲SPLIT ̲FAILED BOOLEAN
INIT VDU ̲SPLIT ̲FAILED = FALSE
CONST: IOC ̲HD ̲LENGTH = 3
TEXT ̲LENGTH = 25
CLASS ̲LENGTH = 20
TIME ̲LENGTH = 14
SUPERFLASH ̲LENGTH = 2
FLASH ̲LENGTH = 2
IMMEDIATE ̲LENGTH = 2
SUPERPRIORIT ̲LENGTH= 2
PRIORITY ̲LENGTH = 2
ROUTINE ̲LENGTH = 2
DISQ ̲LENGTH = 2
RESP ̲LENGTH = 2
USER ̲LENGTH = 2
NO ̲OF ̲FIELDS = 12
HEADER ̲LENGTH = NO ̲OF ̲FIELDS
* IOC ̲HD ̲LENGTH
+
TEXT ̲LENGTH
+ CLASS ̲LENGTH
...
RESP ̲ENGTH +
USER ̲LENGTH
TEXT ̲PTR = IOC ̲HE ̲LENGTH
+ 1
CLASS ̲PTR = TEXT ̲PTR + IOC
̲HC ̲LENGTH + TEXT
̲LENGTH
TIME ̲PTR = CLASS ̲PTR +
IOC ̲HD ̲LENGTH
+
CLASS ̲LENGTH
SUPERFLASH ̲PTR = TIME ̲PTR + IOC
̲HD ̲LENGTH + TIME
̲LENGTH
FLASH ̲PT = SUPERFLASH ̲PTR
+ IOC ̲HD ̲LENGTH
+
SUPERFLASH ̲LENGTH
IMMEDIATE ̲PTR = FLASH ̲PTR +
IOC ̲HD ̲LENGTH
+
FLASH ̲LENGTH
SUPERPRIORITY ̲PTR = IMMEDIATE ̲PTR
+ IOC ̲HD ̲LENGTH
+
IMMEDIATE ̲LENGTH
PRIORITY ̲PTR = SUPERPRIORIT
̲PTR + IOC ̲HD ̲LENGTH
+
SUPERPRIORITY
̲LENGTH
ROUTINE ̲PTR = PRIORITY ̲PTR
+ IOC ̲HD ̲LENGTH
+
PRIORITY ̲LENGTH
DISQ ̲PTR = ROUTINE ̲PTR
+ IOC ̲HD ̲LENGTH
+
ROUTINE ̲PTR
RESP ̲PTR = DISQ ̲PTR + IOC
̲HD ̲LENGTH + DISQ
̲LENTH
USER ̲PTR = RESP ̲PTR + IOC
̲HD ̲LENGTH + RESP
̲PTR