top - download
⟦90ac3b654⟧ Wang Wps File
Length: 66741 (0x104b5)
Types: Wang Wps File
Notes: CPS/SDS/037
Names: »1659A «
Derivation
└─⟦fa8144eef⟧ Bits:30006080 8" Wang WCS floppy, CR 0123A
└─ ⟦this⟧ »1659A «
WangText
8…07…7…09…7…0f…7…01…7…05…6…08…6…09…6…0f…6
6 5…08…5…0e…5
4…08…4…0b…4…0f…4
4…06…3…09…3…0c…3…00…3…02…3…06…2…0a…2…0d…2…00…2
2 1…0a…1…0f…1 0…09…0…0f…0…01…0…02…0 0…05…0…06…/…0a…/…0b…/…0e…/…01……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
FIELD ̲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 refer 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
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
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
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
COMD: 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 ̲DIFCO ̲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,
ONLINE ̲NOTIFICATION, OFFLINE
̲NOTIFICATION,
RETRIEVAL ̲NOTIFICATION, RETRIEVAL
̲ERROR,
VDU ̲DATA ̲OUTPUT, 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 DIRT ̲NOT = (ONLINE ̲NOTIFICATION ...
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 ̲MAX
̲OP)
OF MDOS ̲COROUTINE
̲OP ̲TYPE
CONST DIFCO ̲MAX ̲OP = 3
TYPE 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,
CCMDQ ̲IDENT, FC ̲KEY ̲IDENT,
ANQ ̲IDENT)
CO ̲OP ̲NO ̲TYPE = SHORT ̲REFERENCE
Figure 4.1.4-1
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 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, MDOS ̲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,
MDOS ̲QEL :QEL ̲REFERENCE ̲TYPE
VAR CURRENT ̲CLASS : CLASSIFICATION
̲TYPE
VAR CURRENT ̲PRECEDENCE: PRECEDENCE ̲TYPE
VAR 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 :INTEGER
VAR MDCO ̲ACTIV :BOOLEAN
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
SUPERPRIORITY ̲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 ̲LENGTH
+ 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 ̲PTR = 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 = SUPERPRIORITY
̲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
̲LENGTH
USER ̲PTR = RESP ̲PTR + IOC
̲HD ̲LENGTH + RESP
̲PTR
CONST: HD ̲TEXT ̲LINE = 1;
QUEUE ̲LINE = 2;
HD ̲INC ̲NO = 1;
TEXT ̲FIELD = 1
CLASS ̲FIELD = 2
TIME ̲FIELD = 3
SUPERFLASH ̲FIELD = 1
FLASH ̲FIELD = 2
IMMEDIATE ̲FIELD = 3
SUPERPRIORITY ̲FIELD = 4
PRIORITY ̲FIELD = 5
ROUTINE ̲FIELD = 6
DISQ ̲FIELD = 7
RESP ̲FIELD = 8
USER ̲FIELD = 9
TYPE: HD ̲FIELD ̲ORDER (TEXT ̲F, CLASS ̲F, TIME
̲F, SUPERFLASH ̲F,
FLASH ̲F, IMMEDIATE ̲F, SUPERPRIORITY
̲F,
PRIORITY ̲F, ROUTINE ̲F, DISQ
̲F, RESP ̲F, USER ̲F)
VAR: VDU ̲HD ̲AREA : ARRAY (1...HEADER
̲LENGTH) OF CHAR
REF FIG.
VAR: VDU ̲HD ̲BLE : BUFFER ̲LIST
̲ELEMENT
VAR: VDU ̲HD ̲FIELD : ARRAY (HD ̲FIELD
̲ORDER) OF FIELD
̲DE ̲
SCRIPTOR ̲TYPE
Figure 4.1.4-1
INIT VDU ̲HD ̲AREA (TEXT ̲PTR-3),
VDU ̲HD ̲AREA (CLASS ̲TPR-3),
VDU ̲HD ̲AREA (TIME ̲PTR-3),
VDU ̲HD ̲AREA (SUPERFLASH ̲PTR-3),
VDU ̲HD ̲AREA (FLASH ̲PTR-3),
VDU ̲HD ̲AREA (IMMEDIATE ̲PTR-3),
VDU ̲HD ̲AREA (SUPERPRIORITY ̲PTR-3),
VDU ̲HD ̲AREA (PRIORITY ̲PTR-3),
VDU ̲HD ̲AREA (ROUTINE ̲PTR-3),
VDU ̲HD ̲AREA (DISQ ̲PTR-3),
VDU ̲HD ̲AREA (RESP ̲PTR-3),
VDU ̲HD ̲AREA (USER ̲PTR-3) = 'RS'
VDU ̲HD ̲AREA (TEXT ̲PTR-1)
VDU ̲HD ̲AREA (CLASS ̲PTR-1),
VDU ̲HD ̲AREA (TIME ̲PTR-1),
VDU ̲HD ̲AREA (SUPERFLASH ̲PTR-1),
VDU ̲HD ̲AREA (FLASH ̲PTR-1),
VDU ̲HD ̲AREA (IMMEDIATE ̲PTR-1),
VDU ̲HD ̲AREA (SUPERPRIORITY ̲PTR-1),
VDU ̲HD ̲AREA (PRIORITY ̲PTR-1),
VDU ̲HD ̲AREA (ROUTINE ̲PTR-1),
VDU ̲HD ̲AREA (DISQ ̲PTR-1),
VDU ̲HD ̲AREA (RESP ̲PTR-1),
VDU ̲HD ̲AREA (USER ̲PTR-1), = DATA ̲FLAG;
INIT VDU ̲HD ̲AREA (TEXT ̲PTR-2) =IOC ̲HD ̲LENGTH + TEXT ̲LENGTH
VDU ̲HD ̲AREA (CLASS ̲PTR-2) =IOC ̲HD ̲LENGTH + CLASS ̲LENGTH
VDU ̲HD ̲AREA (TIME ̲PTP-2) =IOC ̲HD ̲LENGTH + TIME ̲LENGTH
VDU ̲HD ̲AREA (SUPERFLASH ̲PTP-2) =IOC ̲HD ̲LENGTH + CLASS ̲LENGTH
VDU ̲HD ̲AREA (FLASH ̲PTP-2) =IOC ̲HD ̲LENGTH + FLASH ̲LENGTH
VDU ̲HD ̲AREA (IMMEDIATE ̲PTP-2) =IOC ̲HD ̲LENGTH +
IMMEDIATE ̲LENGTH
VDU ̲HD ̲AREA (SUPERPRIORITY ̲PTP-2) =IOC ̲HD ̲LENGTH +
SUPERPRIORITY ̲LENGTH
VDU ̲HD ̲AREA (PRIORITY ̲PTP-2) =IOC ̲HD ̲LENGTH +
PRIORITY ̲LENGTH
VDU ̲HD ̲AREA (ROUTINE ̲PTP-2) =IOC ̲HD ̲LENGTH +
ROUTINE ̲LENGTH
VDU ̲HD ̲AREA (DISQ ̲PTP-2) =IOC ̲HD ̲LENGTH + DISQ ̲LENGTH
VDU ̲HD ̲AREA (RESP ̲PTP-2) =IOC ̲HD ̲LENGTH + RESP ̲LENGTH
VDU ̲HD ̲AREA (USER ̲PTP-2) =IOC ̲HD ̲LENGTH + USER ̲LENGTH
VDU ̲HD ̲FIELD (TEXT ̲F).LINE,
VDU ̲HD ̲FIELD (CLASS ̲F).LINE,
VDU ̲HD ̲FIELD (TIME ̲F).LINE = HD ̲TEXT ̲LINE
VDU ̲HD ̲FIELD (SUPERFLASH ̲F).LINE,
VDU ̲HD ̲FIELD (FLASH ̲F).LINE,
VDU ̲HD ̲FIELD (IMMEDIATE ̲F).LINE
VDU ̲HD ̲FIELD (SUPERPRIORITY ̲F).LINE,
VDU ̲HD ̲FIELD (PRIORITY ̲F).LINE,
VDU ̲HD ̲FIELD (ROUTINE ̲F).LINE,
VDU ̲HD ̲FIELD (DISQ ̲F).LINE,
VDU ̲HD ̲FIELD (RESP ̲F).LINE,
VDU ̲HD ̲FIELD (USER ̲F).LINE = QUEUE ̲LINE
INIT VDU ̲HD ̲FIELD (TEXT ̲F).INCARNATION,
VDU ̲HD ̲FIELD (CLASS ̲F).INCARNATION,
VDU ̲HD ̲FIELD (TIME ̲F).INCARNATION,
VDU ̲HD ̲FIELD (SUPERFLASH ̲F).INCARNATION,
VDU ̲HD ̲FIELD (FLASH ̲F).INCARNATION,
VDU ̲HD ̲FIELD (IMMEDIATE ̲F).INCARNATION
VDU ̲HD ̲FIELD (SUPERPRIORITY ̲F).INCARNATION,
VDU ̲HD ̲FIELD (PRIORITY ̲F).INCARNATION,
VDU ̲HD ̲FIELD (ROUTINE ̲F).INCARNATION,
VDU ̲HD ̲FIELD (DISQ ̲F).INCARNATION,
VDU ̲HD ̲FIELD (RESP ̲F).INCARNATION,
VDU ̲HD ̲FIELD (USER ̲F).INCARNATION = HD ̲INC ̲NO
INIT VDU ̲HD ̲FIELD (TEXT ̲F).FIELD =TEXT ̲FIELD
VDU ̲HD ̲FIELD (CLASS ̲F).FIELD =CLASS ̲FIELD
VDU ̲HD ̲FIELD (TIME ̲F).FIELD =TIME ̲FIELD
VDU ̲HD ̲FIELD (SUPERFLASH ̲F).FIELD =SUPERFLASH ̲FIELD
VDU ̲HD ̲FIELD (FLASH ̲F).FIELD =FLASH ̲FIELD
VDU ̲HD ̲FIELD (IMMEDIATE ̲F).FIELD =IMMEDIATE ̲FIELD VDU
̲HD
̲FIELD
(SUPERPRIORITY
̲F).FIELD =SUPERPRIORITY
̲FIELD
VDU ̲HD ̲FIELD (PRIORITY ̲F).FIELD =PRIORITY ̲FIELD
VDU ̲HD ̲FIELD (ROUTINE ̲F).FIELD =ROUTINE ̲FIELD
VDU ̲HD ̲FIELD (DISQ ̲F).FIELD =DISQ ̲FIELD
VDU ̲HD ̲FIELD (RESP ̲F).FIELD =RESP ̲FIELD
VDU ̲HD ̲FIELD (USER ̲F).FIELD =USER ̲FIELD
INIT VDU ̲HD ̲BLE.LINK = NIL;
VDU ̲HD ̲BLE.KIND = LOWER ̲BYTE;
CONST: MDOS ̲CMD ̲Q = MDOS ̲MDOS ̲CMDQ
CONST: MDOS ̲CCMD ̲Q = MDOS ̲MDOS ̲CCMDQ
CONST: MDOS ̲MDQ = MDOS ̲MDOS ̲MDQ
CONST: MDOS ̲ARRQ = MDOS ̲MDOS ̲ARRQ
CONST: MDOS ̲ANQ = 1
CONST: RESP ̲Q = 2
CONST: RETV ̲Q = 3
CONST: PREP ̲Q = PREP ̲SUB refer CPS/SDS/039
para. 4.1.4
CONST: COLLECT ̲Q = SVUP ̲UMAM ̲COLQ
CONST: LOG ̲Q = SVUP ̲SYSTEM ̲Q
CONST: ISQ = SVUP ̲ISQ
CONST: MDQ = MDOS ̲MDQ
CONST: THP ̲Q = SVUP ̲COQ
CONST: VUS ̲ARRQ = MDOS ̲VUS ̲ARRQ
CONST: VUS ̲RELSQ = MDOS ̲VUS ̲RELQ
CONST: VUS ̲RECVQ = MDOS ̲VUS ̲RECQ
CONST: MDOS ̲ONE = MDOS ̲MDOS ̲G ̲CMDQ1
CONST: MDOS ̲TWO = MDOS ̲MDOS ̲G ̲CMDQ2
CONST: MDOS ̲THREE = MDOS ̲MDOS ̲G ̲CMDQ3
CONST: PRIS ̲PRINTQ = MDOS ̲PRIS ̲PRINTQ
CONST: PRIS ̲CMDQ = MDOS ̲PRIS ̲CMDQ
CONST: PRIS ̲PRINTQ ̲A = MDOS ̲PRIS ̲PRINTQ ̲A
CONST: PRIS ̲CMDQ ̲A = MDOS ̲PRIS ̲CMDQ ̲A
CONST: SAR ̲Q = SVUP ̲RRQ
VAR MDOS ̲RECV ̲ATTR: QEL ̲ATTRIBUTE ̲TYPE
VAR MDOS ̲ATTR: QEL ̲ATTRIBUTE ̲TYPE
VAR MDOS ̲QNAME: QUEUE ̲REFERENCE 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 ̲TYPE
LOGICAL ̲TERMINAL ̲NO: LOGICAL ̲TERMINAL ̲NO ̲TYPE
TERMINAL ̲DESIGNATOR: TERMINAL ̲DESIGNATOR ̲TYPE
FCT ̲CAPABILITY: FCT ̲CAPABILITY ̲TYPE
FCT ̲USER ̲CAPABILITY: USER ̲FCT ̲CAPABILITY ̲TYPE
ACC : ACCESS ̲PROFILE ̲TYPE
MAX ̲CLASS: CLASSIFICATION ̲TYPE
SPECIAL ̲HANDLING ̲INSTRUCTION: SPEC ̲HAND ̲TYPE
END
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 T̲E̲P̲ ̲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̲
This procedure is common for the TEP packages. The
purpose of this procedure is to report queue errors
to the SSC.
4.1.5.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) TEP ̲QUEUE ̲ERROR(USER ̲ACTION: USER ̲ACTION ̲TYPE,
MDOS ̲QEL: QEL ̲REFERENCE,
MDOS ̲QERROR: QERROR ̲INF)
DISM: BOOLEAN
b) TEP ̲QUEUE ̲ERROR (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̲e̲r̲s̲
R1 USER ̲ACTION DEST
R2 FLAG for dismantling DEST
R3 pointer to QEL DEST
R4 pointer to TEP ̲QERROR 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.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 CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
TEP ̲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.1.5.2 T̲E̲P̲ ̲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) TEP ̲INTERNAL ̲ERROR (USER ̲ACTION: USER ̲ACTION ̲TYPE,
TEP ̲INT ̲ERROR: INTERNAL ̲ERROR
̲INF ̲TYPE)
b) TEP ̲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 TEP ̲ 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 ̲INF ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
TEP ̲INT ̲ERROR refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
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 SSC by
calling the SEND ̲GARBLE-procedure.
4.1.5.3 D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲
4.1.5.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 procedure is to dismantle an object
referenced by a QEL.
The referenced view will be checkpointed if the Checkpoint
Status is true.
The referenced view will be closed if demanded.
4.1.5.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) 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.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̲
NONE
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
NONE
4.1.5.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figure 4.1.5.3-1
DISMANTLE ̲QEL
QEL EQ NIL?
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
CP ̲STATUS EQ FALSE? ̲C̲I̲F̲ ̲D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲-̲2̲)̲
CASE SAVE ̲VIEW(DISMANTLE, REC ̲LEVEL,QEL)
(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
OTHERWISE?- T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
END
4.1.5.3-1
CIF DISMANTLE (CREATE QEL)
CASE DISMANTLE ̲VIEW(QEL)(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
Fig. 4.1.5.3-2
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, this 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 the 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 CPS/ICD/009.
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 interface 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 coroutines
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
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. INIT CMD
2. Restart DIFCO CMD
3. Start DIFCO CMD
4. Stop DIFCO CMD
5. Close ̲DIFCO CMD
6. BLOCK ̲DIFCO ̲CMD
2̲.̲ ̲ ̲F̲r̲o̲m̲ ̲D̲I̲F̲C̲O̲ ̲t̲o̲ ̲D̲I̲V̲C̲O̲
1. INIT DIFCO ̲CC
2. Restart DIFCO ̲CC
3. Start DIFCO ̲CC
4. Stop DIFCO ̲CC
5. Close ̲DIFCO ̲CC
6. BLOCK ̲DIFCO ̲CC
7. FLASH ̲NOT
8. ANTIFLASH ̲NOT
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
9. DISPLAY MENU
4̲.̲ ̲ ̲F̲r̲o̲m̲ ̲D̲I̲D̲I̲A̲ ̲t̲o̲ ̲D̲I̲F̲C̲O̲
1. DISPLAY ̲MENU
2. CLOSE
3. CANCEL ̲IO
4. CLEAR ̲VDU
5. INPUT ̲DATA
6. OUTPUT ̲DATA
7. OUTPUT ̲FORMAT
8. L ̲INSERT
9. L ̲DELETE
VALIDATION ̲RESULT in MDOS ̲COROUTINE ̲OP.PARA 1:
ERROR
OK
PRINT ̲REQ
5̲.̲ ̲ ̲F̲r̲o̲m̲ ̲D̲I̲F̲C̲O̲ ̲t̲o̲ ̲D̲I̲R̲T̲
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
IN DIRT ̲OP.PARA 1 the QEL ̲ATTR.MAINTYPE
and in DIRT ̲OP.PARA 2 the QEL ̲ATTR.FLAGS
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 issue of commands
and reception of responses.
4.2.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The subpackage contains the following functions:
- Initialization
- TEMCO Command Processing
- Flash Item Control
- Timer Event Processing
- VDU Header Control
- DIFCO 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)
Performs initialization 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 action
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 supervisor or 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 Response 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 TEMCO command is sent to TEMCO.
4.2.1.1.3 F̲l̲a̲s̲h̲ ̲I̲t̲e̲m̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲3̲.̲0̲)̲
a) External Flash notification from ccmd.q (3.1).
Analyses the flash notification to determine the
precedence (superflash or flash), takes care of
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 updated on 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 Flash/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 (5.2)
Maintains the queue length fields 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 and bell (5.5).
Take care of the inversion 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 commands.
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̲ ̲C̲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.
The 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 acknowledge of TEMCO commands to TEMCO, sends
flash or antiflash notifications to the other MDCO
cmd queues and displays 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-notification
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 displays the
present superflash or flash queue length.
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) from the CMD ̲Q
sent by another MDCO ̲Package. Displays the present
superflash 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) from the CMD ̲Q sent by another
MDCO ̲Package. Displays the actual queue-length on VDU.
The DISQ has decremented by one. Look after if the
insertion of the queue field on VDU still shall be
inverted.
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 elements
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 common 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.7 T̲i̲m̲e̲r̲ ̲E̲v̲e̲n̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲7̲.̲0̲)̲
This module interprets the periodic-timeout for periodic
timeouts the date/time field and queue length fields
in the VDU header are updated and the VDU header displayed.
If unexpected queue elements are found this is reported
to SSC.
4.2.1.2.8 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
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 figure
4.2.1.3-6 identifying all calls between modules and
common procedures.
5 HIPOGRAMS
Fig. 4.2.1.3-6
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.
It interprets the startup variable when the subprocess
is started and activates initialization or restart
accordingly. It initializes the MDOS data-areas, sends
a command to DIFCO, and initiates reception from 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
- Anti-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̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
RO-R7 DESTROYED
Figure 4.2.1.3-6
MODULE CALL STRUCTURE
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̲f̲e̲r̲e̲n̲c̲e̲s̲
SENDER ̲ID ̲TYPE refer 4.1.4
QELEMENT MAIN ̲TYPE refer CPS/DBD/001
DIVCO ̲OP refer 4.1.4
MDOS ̲S1 refer 4.1.4
MDOS ̲S2 refer 4.1.4
DIVCO ̲CMD ̲TYPE refer 4.1.4
QERROR ̲INF refer 4.1.4
INTERNAL ̲ERROR ̲INF refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
CMD ̲QEL refer 4.2.1.5
CMD ̲QEL ̲ATTR refer 4.2.1.5
CCMD ̲QEL refer 4.2.1.5
CCMD ̲QEL ̲ATTR refer 4.2.1.5
START ̲UP: refer CPS/SDS/039 sec.
4.1.4
CLOSE ̲DOWN ̲FLAG refer 4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
NONE
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.
- Initializes 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
DIVCO CONTROL
M̲D̲O̲S̲ ̲I̲N̲I̲T̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲.̲3̲.̲1̲)̲
START ̲UP EQ RESTART ? MOVE RESTART
̲DIFCO ̲CMD TO
DIVCO ̲OP.CMD
MOVE INIT ̲DIFCO ̲CMD TO DIVCO ̲OP.CMD
CASE SIGNAL ̲OPSEM(MDOS ̲S2, DIVCO ̲OP)
WAIT OPSEM (MDOS ̲S1)(MDOS ̲OP) : OK
CASE MDOS ̲OP. OP ̲ID(2)
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? T̲E̲P̲
̲I̲N̲T̲E̲R̲N̲A̲L̲
̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲
̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲)̲
W̲A̲I̲T̲I̲N̲G̲ ̲P̲O̲I̲N̲T̲ ̲(̲-̲2̲)̲
END
Fig. 4.2.1.4.1-1
WAITING POINT
FOREVER LOOP
WAIT ̲OPSEM(MDOS ̲S1)(MDOS ̲OP) : OK
CASE MDOS ̲OP.OP ̲ID(2) OF SENDER ̲ID
̲TYPE
CMDQ ̲IDENT? M̲D̲O̲S̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(̲-̲3̲)̲
CCMDQ ̲IDENT? M̲D̲O̲S̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲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? 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 ̲FLAG EQ TRUE? EXIT FOREVER
LOOP
END FOREVER ̲LOOP
CLOSE LOOP
WAIT ̲OPSEM(MDOS ̲S1)(MDOS ̲OP): OK
END CLOSE ̲LOOP
END
Fig. 4.2.1.4.1-2
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 QELEMENT
̲MAINTYPE
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̲T̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(̲4̲.̲2̲.̲1̲.̲4̲.̲7̲)̲
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 CASE
END
Fig. 4.2.1.4.1-3
MDOS ̲CCMD ̲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.HEADER MAINTYPE
OF
QELEMENT
̲MAIN
̲TYPE
FLASH.NOTIFIC? F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲
̲M̲O̲N̲I̲T̲O̲R̲I̲N̲G̲(SUBTYPE)
(̲4̲.̲2̲.̲1̲.̲4̲.̲3̲)̲
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̲)̲
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 CASE
Fig. 4.2.1.4.1-4
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 completion 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 ̲PROCESSING
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 area
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̲
TEP ̲INTERNAL ̲SUBTYPE refer CPS/DBD/001
QELEMENT ̲MAIN ̲TYPE refer CPS/DBD/001
FLASH ̲NOTIF ̲SUBTYPE refer CPS/DBD/001
DIVCO ̲OP refer 4.1.4
DIFCO ̲CC ̲TYPE refer 4.1.4
INTERNAL ̲ERROR ̲INF refer 4.1.4
ACK ̲PARAMS refer CPS/DBD/001
SEND ̲PARAMS ̲TYPE refer 4.1.4
PRECEDENCE ̲TYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
USER-ON-FLAG (m) refer 4.2.1.5
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
FLASH ̲KIND refer 4.2.1.5
HEADER ̲IFCB refer 4.1.4
FORMAT ̲IFCB refer 4.1.4
VDU ̲HD ̲AREA refer 4.1.4
VDU ̲HD ̲FIELD refer 4.1.4
CMD ̲QEL refer
4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR OK ̲FLAG BOOLEAN
INIT OK ̲FLAG = FALSE
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 updates a flash
queue field on VDU.
- Sends an antiflash notification to
the MDCO ̲cmd-queues, updates a flash
queue field on VDU and turns off the
inverted field if neccessary.
DIFCO RESPONSE PROCESSING
CASE DIFCO ̲OP.CMD OF DIFCO ̲CC TYPE
INIT ̲DIFCO ̲CC? SET OK ̲FLAG =
FALSE
RESTART ̲DIFCO ̲CC? SET OK ̲FLAG =
FALSE
START ̲DIFCO ̲CC? SET OK ̲FLAG =
TRUE
STOP ̲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 ̲DIFCO ̲CC? SET OK ̲FLAG =
TRUE
USER
̲OK
̲FLAG,
EQ
FALSE?
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̲.̲4̲.̲2̲.̲3̲.̲2̲)̲
SET
CLOSE
DOWN
̲FLAG
=
TRUE
SET
USER
̲ON
̲FLAG
=
FALSE
FLASH ̲NOT? SET
OK
̲FLAG
=
FALSE
F̲L̲A̲S̲H̲
̲Q̲U̲E̲U̲E̲
̲M̲O̲N̲I̲T̲O̲R̲I̲N̲G̲(̲F̲L̲A̲G̲)
(̲4̲.̲2̲.̲1̲.̲4̲.̲3̲)̲
ANTIFLASH ̲NOT? SET OK ̲FLAG =
FALSE
A̲N̲T̲I̲F̲L̲A̲S̲H̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
̲(̲-̲2̲)̲
OTHERWISE? T̲E̲P̲
̲I̲N̲T̲E̲R̲N̲A̲L̲
̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲
̲U̲P̲)̲
(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
OK ̲FLAG EQ FALSE?
MDCO ̲SEND PARAMS.MAINTYPE = ACK
MDCO ̲SEND.PARAMS.SUBTYPE = TEP ̲ACK
VDU ̲SPLIT ̲FAILED EQ TRUE? CMD ̲QEL ̲FLAG
= 2
SET CMD ̲QEL ̲FLAG = 0
CASE SEND ̲REPLY(SEND PARAMS, NIL, CMD
̲QEL)(SEND ̲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
ANTI ̲FLASH ̲PROCESSING
CASE DIFCO ̲OP.PARA(1).FLAG OF PRECEDENCE
SUPERFLASH?
SET MDCO ̲SEND PARAMS MAINTYPE
= TEP ̲INTERNAL
SET MDCO ̲SEND ̲PARAMS.SUBTYPE =ANTIFLASH
̲NOTIFICATION
SET MDCO ̲SEND ̲PARAMS.FLAG = SUPERFLASH
̲ITEM ̲ARRIVED
SET FLASH ̲KIND TO SUPERFLASH
SET FLASH ̲ARRIVED = TRUE
FLASH? SET MDCO ̲SEND ̲PARAMS.MAINTYPE
= TEP ̲INTERNAL
SET MDCO ̲SEND ̲PARAMS.SUBTYPE =
ANTIFLASH ̲NOTIFICATION
SET MDCO ̲SEND ̲PARAMS.FLAG =
FLASH ̲ITEM ̲ARRIVED
SET FLASH ̲KIND TO FLASH
SET FLASH ̲ARRIVED = TRUE
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲
̲U̲P̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
FLASH ̲ARRIVED EQ 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̲)̲
VDU ̲HD ̲AREA(SUPERFLASH ̲PTR) NE
0?
VDU ̲HD ̲AREA(FLASH ̲PTR)NE 0?
CASE CHANGE FIELD ATTR(HEADER
IFCB,
VDU ̲HD ̲FIELD ̲DISQ ̲F)(CC,VDU
̲SPLIT ̲FAILED):
ERROR ̲OK
ERROR? ANALYSE ERROR(CC,1,VDU
̲SPLIT ̲FAILED)
LI? VDU
̲SPLIT FLAG = TRUE
OK?
END CASE
SET FLASH ̲ARRIVED = FALSE
END
Fig. 4.2.1.4.2-2
REMOVE VDU
CASE REMOVE TERMINAL (HEADER ̲IFCB)(CC):
ERROR ̲OK
ERROR? ANALYZE ERROR
(CC,0)
OK?
END CASE
CASE REMOVE TERMINAL (FORMAT ̲IFCB)(CC):
ERROR ̲OK
ERROR? ANALYZE ERROR
(CC,0)
OK?
END CASE
END
Fig. 4.2.1.4.2.2.1
4.2.1.4.3 F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲M̲O̲N̲I̲T̲O̲R̲I̲N̲G̲
4.2.1.4.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module analyses the Register (flash-notification)
to determine precedence (flash or superflash). A similar
notification is sent to the other MDCO-cmd ̲queues.
The flash-queue is updated (incremented by one), and
a bell is rung.
The field where the Message Distribution Queue length
is displayed on VDU will be inverted.
4.2.1.4.3.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) FLASH ̲QUEUE ̲MONITORING (R4: FLASH ̲NOTIF)
b) FLASH ̲QUEUE ̲MONITORING (R4,R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
R4 FLASH ̲NOTIF Destroyed
R6 LINK Destroyed
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 Destroyed
T̲o̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
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̲
FLASH ̲NOTIF ̲SUBTYPE refer CPS/DBD/001
CCMD ̲QEL ̲ATTR refer 4.2.1.5
CMD ̲QEL ̲ATTR 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) 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 OK ̲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
other MDCO-cmd-queues
- Updates and displays VDU ̲HEADER
- Dismantles Flash Notification QEL
- Inverts Distribution ̲queue ̲length ̲field and rings
bell.
FLASH ̲QUEUE ̲MONITORING
CASE FLASH NOTIF "REGISTER" OF FLASH ̲NOTIF
̲SUBTYPE
SUPERFLASH ̲ITEM ̲ARRIVED? MDOS ̲SEND ̲PARAMS.MAINTYPE
=
FLASH
NOTIFICATION
MDOS ̲SEND ̲PARAMS.SUBTYPE
=
SUPERFLASH
̲ITEM ̲ARRIVED
FLAG ̲KIND TO SUPERFLASH
OK ̲FLAG = TRUE
FLASH ̲ITEM ̲ARRIVED? MDOS ̲SEND ̲PARAMS.MAINTYPE
=
FLASH
NOTIFICATION
MDOS ̲SEND ̲PARAMS
SUBTYPE = FLASH
FLASH ̲KIND = FLASH
̲ITEM ̲ARRIVED
OK ̲FLAG = TRUE
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲
̲U̲P̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
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)
OK ̲FLAG = FALSE
END
4.2.1.4.4 I̲N̲T̲E̲R̲N̲A̲L̲ ̲F̲L̲A̲S̲H̲
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 precedence
(flash or superflash). It specifies which
subqueue on VDU to update. The Distribution
queue ̲field is inverted and the bell is
rung.
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̲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.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 refer
4.2.1.5
QERROR ̲INF refer CPS/DBD/001
FLASH ̲NOTIF ̲SUBTYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FLASH ̲KIND (m) refer
4.2.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 determine the precedence
(flash or superflash)
- Updates flash ̲queue ̲field and displays
VDU ̲HEADER
- Inverts Distribution ̲queue ̲length
̲field and rings bell.
- Dismantles Flash ̲Notification ̲QEL
INTERNAL ̲FLASH
USER ̲ON ̲FLAG = FALSE?
CASE MDOS CMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF FLASH
̲NOTIF ̲SUBTYPE
SUPERFLASH ̲ITEM ̲ARRIVED? FLASH
̲KIND
=
SUPERFLASH
SET
OK
̲FLAG
=
TRUE
FLASH ̲ITEM ̲ARRIVED? FLASH ̲KIND = FLASH
SET
OK
̲FLAG
=
TRUE
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
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̲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.4-1
4.2.1.4.5 I̲N̲T̲E̲R̲N̲A̲L̲ ̲A̲N̲T̲I̲F̲L̲A̲S̲H̲
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 determine precedence
(flash or superflash). It specifies which
subqueue on VDU to update. The inversion
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̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INTERNAL ̲ANTIFLASH
B) INTERNAL ̲ANTIFLASH (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
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̲
None
4.2.1.4.5.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TEP ̲INTERNAL ̲SUBTYPE refer
CPS/DBD/001
FLASH ̲NOTIF ̲SUBTYPE refer
CPS/DBD/001
CMD ̲QEL ̲ATTR refer
4.2.1.5
INTERNAL ̲ERROR ̲INF refer
4.1.4
QERROR ̲INF refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FLASH ̲KIND (m) refer
4.2.1.5
VDU ̲HD ̲AREA(SUPERFLASH ̲PRT) refer
4.1.4
VDU ̲HD ̲AREA ̲(FLASH ̲PTR) refer
4.1.4
HEADER ̲IFCB refer
4.2.1.5
VDU ̲HD ̲FIELD.DISQ ̲F refer
4.1.4
c) L̲O̲C̲A̲L̲ ̲D̲A̲T̲A̲
VAR: OK ̲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)
- Updates flash-queue field and displays
VDU-header
- Turns off the inversion of DISQ ̲field
if there are no more flash or superflash
messages for MDCO assistance.
- Dismantles Anti-flash notification
QEL
INTERNAL ̲ANTI ̲FLASH
USER ̲ON ̲FLAG = FALSE?
CASE MDOS.CMD.QEL ATTR.SUBTYPE OF TEP ̲INTERNAL ̲SUBTYPE
ANTIFLASH ̲NOTIFICATION?
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
CASE MDOS ̲CMD ̲QEL ̲ATTR.HEADER.FLAG OF FLASH ̲NOTIF ̲SUBTYPE
SUPERFLASH ̲ITEM ̲ARRIVED? SET FLASH ̲KIND TO SUPERFLASH
SET OK ̲FLAG = TRUE
FLASH ̲ITEM ̲ARRIVED? SET FLASH ̲KIND TO FLASH
SET OK ̲FLAG = TRUE
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
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̲)̲
VDU ̲HD ̲AREA(SUPERFLASH ̲PTR)NE O?
VDU ̲HD ̲AREA(FLASH ̲PTR) NE O?
CASE CHANGE FIELD ATTR (HEADER ̲IFCB,VDU ̲HD ̲FIELD
(DISQ ̲F),0) (CC, VDU ̲SPLIT ̲FAILED): ERROR ̲OK
ERROR? ANALYZE ERROR(CC,1, VDU ̲SPLIT ̲FAILED):(L1)
L1? V̲D̲U̲ ̲S̲P̲L̲I̲T̲ ̲F̲L̲A̲G̲ ̲=̲ ̲T̲R̲U̲E̲
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
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.
4.2.1.4.6.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) 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̲u̲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 to MDOS common data
area.
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 Timer
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
MDOS ̲S2 refer 4.1.4
INTERNAL ̲ERROR ̲INF refer 4.1.4
QERROR ̲INF refer 4.1.4
CMD ̲QEL ̲ATTR. refer 4.2.1.5
REQUEST ̲TIME ̲RELATIVE ̲TYPE. refer CPS/DBD/001
SSC ̲COMMAND ̲SUBTYPE refer CPS/DBD/001
DIVCO ̲CMD ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
INIT AREA refer 4.1.4
VDU ̲HD ̲AREA refer 4.1.4
HEADER IFCB refer 4.1.4
FORMAT IFCB refer 4.1.4
CURRENT 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: START ̲UP ̲BUFFER SIZE CPS/DBD/001
POINTER TO INIT AREA CPS/DBD/001
START OFFSET CPS/DBD/001
POINTER FOR TERMINAL PROF. CPS/DBD/001
LENGTH FOR TER.PRO. CPS/DBD/001
COUNT CPS/DBD/001
MASK CPS/DBD/001
TERMINAL PROFILE CPS/DBD/001
FILE SYSTEM NAME CPS/DBD/001
CONST: RCT
VAR: MDOS ̲Request ̲Timeout:
INIT: Request ̲Time ̲Relativ Type
Time ̲out ̲kind: K ̲Relativ
Queue = CMDQ
Timeout = Periodic
Format = Minutes
Time = 1
EVENT ̲ID = 0
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 fill the 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.
TEMCO ̲CMD PROCESSING
CASE MDOS ̲CMD ̲QEL ̲ATTR.HEADER ̲SUBTYPE
OF SSC ̲COMMAND ̲SUB-
TYPE
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̲.̲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.CMD
TO START
̲DIFCO
̲CMD
STOP ̲USER? SET DIVCO
̲OP.CMD
TO STOP
̲DIFCO
̲CMD
BLOCK ̲TERMINAL? SET DIVCO ̲OP.CMD TO BLOCK
̲DIFCO CMD
CLOSE ̲DOWN? SET DIVCO ̲OP.CMD TO CLOSE
̲DIFCO ̲CMD
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
SIGNAL ̲OPSEM(MDOS S2 DIVCO OP): OK
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
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? 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̲)̲
OK?
END CASE
UPDATE INIT ̲AREA . MAX ̲CLASS
END UPDATE INIT ̲AREA . SPECIAL ̲HANDLING ̲INSTRUCTION
Fig. 4.2.1.4.6.3.1
INIT TERMINAL
GET HEADER IFCB ̲INDEX
GET FILE SYSTEM NAME
GET CMD ̲SPLIT ̲CONT ̲ID (FROM QUEUE ̲DATA
̲BUFFER)
GET CMD ̲SPLIT ̲DATA ̲ID (FROM QUEUE ̲DATA
̲BUFFER)
CASE FORMAT ̲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 ̲TERMINAL(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
REQUEST PERIODIC TIMEOUT
CASE REQUEST ̲TIMEOUT(MDOS ̲REQUEST ̲TIMEOUT)
(CC):
ERROR
̲OK
ERROR? ANALYZE
̲ERROR(CC,0)
OK?
END CASE
END
Fig. 4.2.1.4.6.3.3
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 the
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 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
None
4.2.1.4.7.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
CMD ̲QEL ̲ATTR. refer 4.2.1.5
CMD ̲QEL ̲ATTR. refer 4.2.1.5
QERROR ̲INF refer 4.1.4
TIMEOUT ̲SUBTYPE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲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
TIMER EVENT PROCESSING
CASE MDOS ̲QEL ̲ATTR.SUBTYPE OF TIMEOUT ̲SUBTYPE
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̲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̲)̲
D̲I̲S̲M̲A̲N̲T̲L̲E̲
̲Q̲E̲L̲(̲C̲M̲D̲Q̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
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
TIME ̲OUT ̲CANCELLED? D̲I̲S̲M̲A̲N̲T̲L̲E̲
̲Q̲E̲L̲(̲C̲M̲D̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
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
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲)̲
END
Figure 4.2.1.4.7-1
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
CPS/DBD/001
FIELD DESCRIPTOR ̲TYPE refer
CPS/DBD/001
QUEUE ̲ATTRIBUTES ̲TYPE refer
CPS/DBD/001
FIELD ̲ATTR ̲TYPE refer
CPS/DBD/001
TIME ̲TYPE refer
CPS/DBD/001
SEND ̲PARAMS ̲TYPE refer
CPS/DBD/001
QUEUE ̲REFERENCE ̲TYPE refer
CPS/DBD/001
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: CLOSE ̲DOWN ̲FLAG BOOLEAN
INIT: CLOSE ̲DOWN ̲FLAG = FALSE
VAR: USER ̲ON ̲FLAG BOOLEAN
INIT USER ̲ON ̲FLAG = FALSE
VAR MDOS ̲Q ̲LENGTH 0...255
VAR MDOS ̲Q ̲LENGTH ̲REF: QUEUE ̲REFERENCE
VAR : CMDQEL,
CCMDQEL: QEL ̲REFERENCE
̲TUPE
CMD ̲QEL ̲ATTR,
CCMD ̲QEL ̲ATTR: QEL ̲ATTRIBUTES
̲TYPE
TYPE MAINQ = (MDOS ̲DMQ, RESPQ,USERQ)
TYPE SUBQ = PRECEDENCE TYPE
4.2.1.6 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
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̲
CMD ̲QEL refer
4.2.1.5
DIVCO ̲OP refer
4.1.4
MDOS ̲S1 refer
4.1.4
CCMD ̲QEL ̲ATTR refer
4.2.1.5
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
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
SET ̲RECEIVE ̲CMD ̲QEL
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT, CMD
̲QEL,
(CMD ̲QEL ̲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.1-1
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̲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̲
CCMD ̲QEL refer
4.2.1.5
DIVCO ̲OP refer
4.1.4
MDOS ̲SI refer
4.1.4
CCMD ̲QEL ̲ATTR refer
4.2.1.5
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
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
SET RECEIVE ̲CCMD ̲QEL
CASE INIT ̲RECEIVE ̲FIRST ̲QEL (WAIT, CCMD
̲QEL,
(CCMDQ ̲QEL ̲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
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̲
This procedure updates the queue length
of the Distribution queue and updates
the flash or superflash-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̲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̲
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.2.1.5
FLASH ̲KIND refer
4.2.1.5
VDU ̲HD ̲AREA refer
4.1.4
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̲
This procedure updates the queue length
of the Distribution queue and update the
flash or superflash-precedence queue according
to the precedence of the flash notification
arrived to DIVCO coroutine.
FLASH ̲Q ̲FIELDS ̲UPDATE
SET MDOS ̲Q ̲LENGTH ̲REF.MAIN ̲QUEUE TO MDOS
̲MDQ
GET FLASH ̲KIND (FLASH OR SUPERFLASH)
SET MDOS ̲Q ̲LENGTH ̲REF.SUB ̲QUEUE ACCORDING
TO FLASH ̲KIND
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
CASE FLASH ̲KIND
SUPERFLASH? MOVE MDOS ̲Q ̲LENGTH TO
VDU ̲HD ̲AREA
SUPERFLASH
̲PTR
FLASH? MOVE MDOS ̲Q ̲LENGTH TO VDU ̲HD
̲AREA(FLASH ̲PTR)
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
SET MDOS ̲Q ̲LENGTH ̲REF.SUB ̲TYPE TO ZERO
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
MOVE ̲MDOS ̲Q ̲LENGTH TO VDU ̲HD ̲AREA.(DISQ
̲PTR)
END
Fig. 4.2.1.6.3-1
4.2.1.6.4 Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲
4.2.1.6.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure reads the queue length
of Common Distribution queue, Response
queue, USER Release queue, USER Receive
queue, USER Response queue and sets subqueue
lengths for Common Distribution queue.
The three USER queue length are added
to each other in the USER-queue in the
VDU header split data area.
4.2.1.6.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) QUEUE ̲FIELDS ̲UPDATE
b) QUEUE ̲FIELDS ̲UPDATE (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
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̲
None
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
VDU ̲HD ̲AREA (m) refer
4.1.4
MDOS ̲Q ̲LENGTH ̲REF (m) refer
4.2.1.5
MDOS ̲Q ̲LENGTH (m) refer
4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.4.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module gets the actual queue length
fields of the distribution queue, response
queue and the three user queues and sets
up the subqueues length within Distribution
queue.
QUEUE ̲FIELDS ̲UPDATE
SET MDOS ̲Q ̲LENGTH ̲REF.MAIN ̲QUEUE TO MDOS
̲MDQ
SET MDOS ̲Q ̲LENGTH ̲REF.SUB ̲QUEUE TO ZERO
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
SET MDOS ̲Q ̲LENGTH IN VDU ̲HD ̲AREA(DISQ
̲PTR)
SET MDOS ̲Q ̲LENGTH ̲REF.MAINT ̲QUEUE TO RESP
̲Q
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
SET MDOS ̲Q ̲LENGTH IN VDU ̲HD ̲AREA.(RESP
̲PTR)
SET MDOS ̲Q ̲LENGTH ̲REF.MAIN ̲QUEUE TO VUS
̲ARRQ
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
SET ̲MSOS ̲Q ̲LENGTH IN VDU ̲HD ̲AREA(USER
̲PTR)
SET MDOS ̲Q ̲LENGTH ̲REF.MAIN ̲QUEUE TO VUS
̲RELSQ
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
ADD MDOS ̲Q ̲LENGTH TO VDU ̲HD ̲AREA(USER
̲PTR)
SET MDOS ̲Q ̲LENGTH ̲REF.MAIN ̲QUEUE TO VUS
̲RECVQ
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
ADD MDOS ̲Q ̲LENGTH TO VDU ̲HD ̲AREA.(USER
̲PTR)
S̲E̲T̲ ̲P̲R̲E̲C̲E̲D̲E̲N̲C̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲(̲ ̲-̲2̲)̲
END
Fig. 4.2.1.6.4-1
SET PRECEDENCE FIELDS
SET MDOS ̲Q ̲LENGTH ̲REF.MAIN ̲QUEUE TO MDOS
̲MDQ
SET MDOS ̲Q ̲LENGTH ̲REF.SUB ̲QUEUE TO ROUTINE
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
SET MDOS ̲Q ̲LENGTH IN VDU ̲HD ̲AREA(ROUTINE
̲PTR)
SET MDOS ̲Q LENGTH ̲REF.SUB ̲QUEUE TO PRIORITY
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
SET MDOS ̲Q LENGTH IN VDU ̲HD ̲AREA(PRIORITY
̲PTR)
SET MDOS ̲Q ̲LENGTH ̲REF.SUB ̲QUEUE TO SUPERPRIORITY
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
SET MDOS ̲Q ̲LENGTH IN VDU ̲HD ̲AREA(SUPERPRIORITY
̲PTR)
SET MDOS ̲Q ̲LENGTH ̲REF SUB ̲QUEUE TO IMMEDIATE
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
SET MDOS ̲Q LENGTH TO VDU ̲HD ̲AREA(IMMEDIATE
̲PTR)
SET MDOS ̲Q ̲LENGTH ̲REF.SUB ̲QUEUE TO FLASH
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲
SET MDOS ̲Q ̲LENGTH TO VDU ̲HD ̲AREA(FLASH
̲PTR)
SET MDOS ̲Q ̲LENGTH ̲REF.SUB ̲QUEUE TO SUPERFLASH
G̲E̲T̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲)̲
SET MDOS ̲Q ̲LENGTH TO VDU ̲HD.AREA(SUPERFLASH
̲PTR)
END…86…1…02… …02… …02… …02… …02… …02…
…02…
4.2.1.6.5 G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲
4.2.1.6.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure reads queue length of specified
queue by calling QUEUE ̲MONITOR.
4.2.1.6.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲QUEUE ̲LENGTH
b) GET ̲QUEUE ̲LENGTH (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.5.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QUEUE ̲REFERENCE CPS/DBD/001
QUEUE ̲ATTRIBUTES CPS/DBD/001
ACCESS ̲PROFILE CPS/DBD/001
MDOS ̲SUBPROCESS ̲SINGLE ̲CAP refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MDOS ̲Q ̲LENGTH ̲REF refer
4.2.1.5
MDOS ̲Q ̲LENGTH (m) refer
4.2.1.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
MDOS ̲QUEUE ̲ATTRIBUTES
RECORD
PROFILE ACCESS
̲PROFILE
LENGTH 0...255
THRESHOLD 0...255
END
4.2.1.6.5.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
See fig. 4.2.1.6.5.4-1
GET Q ̲LENGTH
CASE GET ̲QUEUE ̲ATTRIBUTE (ATTRIBUTES,
QUEUE) (CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK? Q ̲ATTR.QUEUE ̲LENGTH LE 99?
SET Q ̲ATTR.QUEUE ̲LENGTH TO 99
END CASE
SET MDOS ̲Q ̲LENGTH AS MDOS ̲Q ̲ATTR.LENGTH
END
Fig. 4.2.1.6.5-1
4.2.1.6.6 G̲E̲T̲ ̲D̲A̲T̲E̲ ̲T̲I̲M̲E̲
4.2.1.6.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure reads current date and
time by calling Timer Monitor.
4.2.1.6.6.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲DATE ̲TIME(TIME)
b) GET ̲DATE TIME(R1, 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 DESTROYED
R1 DATE ̲TIME
R2-R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.6.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
VDU ̲HD ̲AREA refer
4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.6.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
See figure 4.2.1.6.6-1.
GET ̲DATE ̲TIME
CASE READ TIME (FORMAT = F ̲DTG ̲TYPE)
(TIME = DTG ̲TYPE,
CC) : ERROR ̲OK
ERROR? ANALYZE ERROR (CC,0)
OK?
END CASE
VDU ̲HD ̲AREA(TIME ̲PTR) = TIME
END
Fig. 4.2.1.6.6-1
4.2.1.6.7 D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲
4.2.1.6.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure displays the VDU header
split by calling the Format Handler of
IOC with the VDU header data area as input.
4.2.1.6.7.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DISPLAY ̲VDU ̲HEADER
b) DISPLAY ̲VDU ̲HEADER (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.7.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Field ̲DESCRIPTOR ̲TYPE refer
CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
INIT-AREA refer
4.1.4
VDU ̲HD ̲AREA refer
4.1.4
HEADER IFCB refer
4.1.4
VDU ̲SPLIT ̲FAILED (m) refer
4.2.1.5
CURRENT ̲CLASS refer
4.1.4
VDU ̲HD ̲FIELD refer
4.1.4
VDU ̲HD ̲BLE refer
4.1.4
NO ̲OF ̲FIELDS refer
4.1.4
4.2.1.6.7.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
This procedure gets the common data "VDU
̲HEADER AREA" and displays the contents
with help of the constant Field list.
DISPLAY ̲VDU ̲HEADER
VDU ̲HD ̲AREA(SUPERFLASH ̲PTR) = "BLANK ̲SIGN"
VDU ̲HD ̲AREA(SUPERPRIORITY ̲PTR) = "BLANK
̲SIGN"
CASE FIELDS ̲OUTPUT(HEADER ̲IFCB, VDU ̲HD
̲AREA,
VDU ̲HD ̲BLE, NO ̲OF ̲FIELDS,
SIZE(VDU ̲HD ̲AREA)
CC: ERROR ̲OK
ERROR? ANALYSE ̲ERROR(CC, VDU
̲SPLIT ̲FAILED): (LI)
LI? VDU ̲SPLIT ̲FLAG =
TRUE
OK?
END CASE
Figure 4.2.1.6.7-1
4.2.1.6.8 I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲
4.2.1.6.8.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This procedure changes attribute of distribution
̲queue ̲fields. Also the bell on the VDU
is sounded.
4.2.1.6.8.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INVERT ̲AND ̲BELL
b) INVERT ̲AND ̲BELL (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK DESTROYED
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 - R7 DESTROYED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
4.2.1.6.8.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
HEADER ̲IFCB refer
4.2.1.5
VDU ̲HD ̲FIELD(DISQ ̲F) refer
4.1.4
QERROR ̲INF refer
4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.1.6.8.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Only the main Distribution ̲queue ̲field
is inverted on VDU and the bell is
rung.
INVERT AND BELL
CASE CHANGE ̲FIELD ̲ATTR(HEADER IFCB, VDU
̲HD ̲FIELD(DISQ ̲F)
(CC, VDU ̲SPLIT ̲FAILED):
ERROR ̲OK
ERROR? ANALYZE ERROR(CC, 1, VDU ̲SPLIT
̲FAILED) : (LI)
LI? VDU SPLIT FLAG = TRUE
OK? CASE SEND CONTROL(HEADER IFCB,
"BELL")(CC,
VDU
̲SPLIT
̲FAILED):ERROR
̲OK
ERROR? ANALYZE ERROR(CC, 1, VDU
̲SPLIT ̲FAILED):(LI) ̲
LI? VDU
SPLIT
FLAG
=
TRUE
OK?
END CASE
END CASE
END
Fig. 4.2.1.6.8-1
4.2.1.6.9 S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
4.2.1.6.9.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Both flash and antiflash notifications
are sent to the other MDCO ̲CMD ̲queues.
4.2.1.6.9.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) SEND ̲NOTIFICATION
b) SEND ̲NOTIFICATION (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.6.9.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
INTERNAL ̲ERROR ̲INF refer
4.1.4
QUEUE REFERENCE refer
CPS/DBD/001
MDOS ̲SUBPROCESS ̲GROUP ̲CAP refer
4.1.4
MDOS ̲MDOS ̲CMDQ ̲GROUP refer
4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MDOS ̲SEND ̲PARAMS (m) refer
4.2.1.5
MDOS ̲QNAME refer
4.1.4
CONST: MDCO ̲ONE = MDOS ̲MDOS ̲CMDQ ̲GROUP
SHIFT8 + MDOS ̲MDOS ̲G ̲CMDQ1 refer
4.1.4
MDCO ̲TWO = MDOS ̲MDOS ̲CMDQ ̲GROUP
SHIFT8 + MDOS ̲MDOS ̲G ̲CMDQ2 refer
4.1.4
MDCO ̲THREE = MDOS ̲MDOS ̲CMDQ ̲GROUP
SHIFT8 + MDOS ̲MDOS
̲G ̲CMDQ3 refer
4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
MDCO ̲NO BOOLEAN
4.2.1.6.9.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer fig. 4.2.1.6.9.4
SEND NOTIFICATION
SET MDCO ̲NO = 1
LOOP
CASE MDCO ̲NO OF
1? MDOS QNAME = MDCO ̲ONE
2? MDOS QNAME = MDCO ̲TWO
3? MDOS QNAME = MDCO ̲THREE
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲
̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
CASE SEND (MDOS ̲SEND ̲PARAMS, MDOS ̲QEL,
MDOS ̲QNAME)
(MDOS ̲SEND ̲PARAMS, CC): ERROR
̲OK
ERROR? ANALYZE ̲ERROR(CC,1,BLOCKED
̲QUEUE): (LI)
LI?
OK?
END CASE
MDCO ̲NO EQ 4? EXIT ̲LOOP
INCREMENT MDCO ̲NO
END LOOP
END
Fig. 4.2.1.6.9-1
4.2.1.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
4.2.1.7.1 D̲I̲V̲C̲O̲ ̲D̲I̲F̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
The following commands are sent from DIVCO
to DIFCO via operation semaphore MDOS
̲S1:
INIT ̲DIFCO ̲CMD
RESTART ̲DIFCO ̲CMD
START ̲DIFCO ̲CMD
STOP ̲DIFCO ̲CMD
BLOCK ̲DIFCO ̲CMD
CLOSE ̲DIFCO ̲CMD
4.2.1.7.2 D̲I̲F̲C̲O̲ ̲D̲I̲V̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
The following completion codes to above
commands are sent from DIFCO to DIVCO:
INIT ̲DIFCO ̲CC
RESTART ̲DIFCO ̲CC
START ̲DIFCO ̲CC
STOP ̲DIFCO ̲CC
BLOCK ̲DIFCO ̲CC
CLOSE ̲DIFCO ̲CC
The following notifications of changes
to common package parameter are sent from
DIFCO to DIVCO:
FLASH ̲NOT (CMD)
ANTIFLASH ̲NOT (CMD)