top - download
⟦0a7a2b0c8⟧ Wang Wps File
Length: 41183 (0xa0df)
Types: Wang Wps File
Notes: CPS/SDS/038
Names: »1919A «
Derivation
└─⟦d6c5ca2c3⟧ Bits:30006095 8" Wang WCS floppy, CR 0149A
└─ ⟦this⟧ »1919A «
WangText
>…05…>…07…=…0c…=…01…= =…06…<…09…<…0c…<…02…< ;…08…;…0c…;…00…;…06…0…02…0 .…00….…86…1
…02…
…02…
…02…
…02…CPS/SDS/038
…02…JHH/820514…02……02…
MSO
VDU
DETAILED
DESIGN
SPECIFICATION CAMPS
4.2.2.4.4 M̲S̲O̲S̲ ̲F̲/̲C̲ ̲K̲E̲Y̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.2.4.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to analyse the FC ̲KEY
input, and, depending on the FC ̲key identity to call
other modules and procedures. Further it takes care
of blanking the command and the response-line and placing
the cursor on the command line.
4.2.2.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) MSOS ̲FC ̲KEY ̲PROCESSING
b) MSOS ̲FC ̲KEY ̲PROCESSING (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
R0 - R7 (DEST)
4.2.2.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
None
4.2.2.4.4.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
IOC ̲FIELD ̲DESCRIPTOR ̲TYPE refer 4.1.4
MSO ̲FC ̲KEY ̲TYPE refer 4.2.2.5
SEQUENCE ̲CODE ̲NO ̲TYPE refer 4.2.2.5
BUFFER ̲LIST ̲ELEMENT ̲TYPE refer CPS/DBD/001
ERROR ̲NO ̲TYPE refer 4.2.2.5
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
FC ̲KEY ̲MASK ̲TYPE refer 4.2.2.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FIELD ̲DESCRIP (m) refer 4.1.4
VDU ̲SPLIT ̲FLAG (m) refer 4.1.4
INT ̲ERROR ̲INF (m) refer 4.1.4
OUTPUT ̲FLAG refer 4.2.2.5
SPLIT ̲DIGIT (m) refer 4.2.2.5
CURSOR ̲RECORD ̲1(m) refer 4.1.4
OUT ̲LINE ̲FLAG (m) refer 4.2.2.5
RESPONSE ̲TEXT ̲FLAG (m) refer 4.2.2.5
CMD ̲FLAG (m) refer 4.2.2.5
SEQUENCE ̲CODE ̲NO (m) refer 4.2.2.5
FC ̲KEY ̲OP (m) refer 4.1.4
HEADER ̲IFCB refer 4.1.4
IN ̲LINE ̲FLAG (m) refer 4.2.2.5
FORMAT ̲IFCB refer 4.1.4
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
CONST COUNT = 69
CONST CMD = 1
CONST NUME = 1
CONST CMD ̲LINE = 3
VAR NOT ̲IN ̲FIELD: BOOLEAN
VAR LIST: BUFFER ̲LIST ̲ELEMENT ̲TYPE
INIT NOT ̲IN ̲FIELD = FALSE
VAR MSO ̲FC ̲KEY: MSO ̲FC ̲KEY ̲TYPE
VAR MASK ̲1,
MASK ̲2: FC ̲KEY ̲MASK ̲TYPE
4.2.2.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module investigates the FC ̲key inputs, invest
if it shall enter MSOS ̲SEQUENCE (4.2.2.4.11) and in
cases where flags are set other modules are called.
On the other hand, if no flags are set and the FC ̲key
requests one, it is set and ENTER FC ̲key input are
expected. The cursor position on the command ̲line,
and ENTER FC ̲key input are awaited.
MSOS ̲F/C ̲KEY ̲PROCESSING
CASE WAIT ̲SYSTEM ̲CALL(FC ̲KEY ̲OP)(SPLIT ̲DIGIT, MSO ̲FC
̲KEY, CC):
ERROR
̲OK
ERROR? CASE ANALYSE ̲ERROR(CC,2 PRIORITY ̲OVERRIDE,
VDU ̲SPLIT ̲FAI-
LED):(ULB1, ULB2)
ULB1?
ULB2? SET VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK? F̲C̲ ̲K̲E̲Y̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲2̲)̲
END CASE
FIGURE 4.2.2.4.4-1
FC ̲KEY ̲VALIDATION
MSO ̲FC ̲KEY EQ ENTER? SPLIT ̲DIGIT EQ FORMAT ̲IFCB?
SET MSO ̲FC ̲KEY = RETURN
MSO ̲FC ̲KEY NOT IN MASK ̲1? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
OUTPUT ̲FLAG EQ TRUE? D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲R̲E̲S̲P̲ ̲L̲I̲N̲E̲,̲S̲P̲A̲C̲E̲S̲)
(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)
SET OUTPUT ̲FLAG = FALSE
MSO ̲FC ̲KEY IN MASK ̲2? S̲E̲T̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲C̲O̲D̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲6̲)̲
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
MSO ̲FC ̲KEY EQ RETURN? I̲N̲P̲U̲T̲ ̲C̲M̲D̲ ̲L̲I̲N̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲4̲)̲
VDU ̲SPLIT ̲FLAG EQ TRUE?
BYTE ̲TRANSFERRED EQ 0? S̲E̲T̲
̲C̲U̲R̲S̲O̲R̲(̲R̲E̲T̲U̲R̲N̲)̲
(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
SET IN
̲FLAG =
FALSE
SET OUT
̲FLAG =
FALSE
SET CMD
̲FLAG =
FALSE
IN ̲FLAG EQ TRUE, SET RESPONSE
̲TEXT
FLAG =
FALSE
OUT ̲FLAG EQ TRUE? M̲S̲O̲S̲ ̲I̲N̲/̲O̲U̲T̲
̲L̲I̲N̲E̲
(̲4̲.̲2̲.̲2̲.̲4̲.̲8̲)
RESPONSE ̲TEXT ̲FLAG EQ TRUE? M̲S̲O̲S̲
̲D̲I̲S̲P̲ ̲R̲E̲S̲P̲ ̲
M̲S̲G̲(̲4̲.̲2̲.̲2̲.̲4̲.̲l̲0̲)̲
CMD ̲FLAG EQ TRUE? M̲S̲O̲S̲ ̲C̲M̲D̲ ̲P̲E̲N̲D̲I̲N̲G̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲)
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲l̲.̲5̲.̲2̲)̲
I̲N̲S̲P̲E̲C̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲3̲)̲
FIGURE 4.2.2.4.4-2
INSPECT
G̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲5̲)̲
VDU ̲SPLIT ̲FLAG EQ TRUE?
MSO ̲FC ̲KEY EQ
INSERT ̲LINE? NOT ̲IN ̲FIELD EQ TRUE?
D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
SET IN ̲FLAG = TRUE
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲C̲M̲D̲ ̲L̲I̲N̲E̲,̲S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲
MSO ̲FC ̲KEY EQ
DELETE ̲LINE? NOT ̲IN ̲FIELD EQ TRUE?
D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
SET OUT ̲FLAG = TRUE
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲C̲M̲D̲ ̲L̲I̲N̲E̲,̲S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲
MSO ̲FC ̲KEY EQ
DISPLAY ̲ERROR ̲MESSAGE? SET RESPONSE ̲TEXT ̲FLAG = TRUE
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲C̲M̲D̲ ̲L̲I̲N̲E̲,̲
S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲
MSO ̲FC ̲KEY EQ COMMAND? SET CMD ̲FLAG = TRUE
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲C̲M̲D̲.̲L̲I̲N̲E̲.̲S̲P̲A̲C̲E̲S̲)̲
(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲2̲.̲5̲.̲2̲)̲
END INSPECT
FIGURE 4.2.2.4.4-3
INPUT ̲CMD ̲LINE
LIST.KIND = LOWER ̲BYTE
LIST.LINK = NULL
LIST.ADDRESS = ADDR(CMD ̲RESP ̲AREA)
LIST.BYTE ̲SIZE = SIZE (CMD ̲RESP ̲AREA)
FIELD ̲DESCRIP.LINE ̲NO = CMD ̲LINE
FIELD ̲DESCRIP.INCARNATION ̲NO = NUME
FIELD ̲DESCRIP.FIELD ̲NO = CMD
CASE FIELD ̲INPUT(HEADER ̲IFIB,LIST,FIELD ̲DESCRIP,
…02…COUNT)(BYTES ̲TRANSFERRED,FIELD,
CC): ERROR
̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,l,VDU ̲SPLIT ̲FAILED):(Ll)
Ll? SET VDU ̲SPLIT ̲FLAG
= TRUE
END CASE
OK?
END CASE
FIGURE 4.2.2.4.4-4
GET ̲CURSOR ̲POS
CASE GET ̲CURSOR ̲POSITION(SPLIT ̲DIGIT)(CURSOR ̲RECORD
̲1,
LINES ̲ABOVE, CC):
ERROR ̲OK
ERROR? CASE ANALYSE ̲ERROR(CC,3, CURSOR ̲NOT ̲IN
̲FORMATTED ̲LINE,
CURSOR ̲NOT ̲IN ̲FIELD,
VDU ̲SPLIT ̲FAILED):
(ULB3, ULB4, ULB5)
ULB3,
ULB4? NOT ̲IN ̲FIELD = TRUE
ULB5? VDU ̲SPLIT ̲FLAG =
TRUE
END CASE
OK?
END CASE
END GET ̲CURSOR ̲POS
FIGURE 4.2.2.4.4-5
SET ̲SEQUENCE ̲CODE
CASE MSO ̲FC ̲KEY OF MSO ̲FC ̲KEY ̲TYPE
PRINT? SEQUENCE ̲CODE ̲NO
= M ̲PRINT
CANCEL? SEQUENCE ̲CODE ̲NO
= M ̲CANCEL
RETURN ̲TO ̲CURRENT ̲MENU? SEQUENCE ̲CODE ̲NO
= RETURN ̲
TO ̲MENU
KEEP ̲AND ̲PRESENT ̲NEXT? SEQUENCE ̲CODE ̲NO
=PRESENT ̲KEEP
DELETE ̲AND ̲PRESENT ̲NEXT? SEQUENCE ̲CODE ̲NO
=PRESENT ̲DELETE
ENTER? SEQUENCE ̲CODE ̲NO
= M ̲ENTER
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲2̲.̲5̲.̲2̲)̲
END CASE
END SET ̲SEQUENCE ̲CODE
…01…FIGURE 4.2.2.4.4-6
4.2.2.4.5 S̲E̲V̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.2.4.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to analyse commands from
SEVCO and, in accordance with the commands, to enter
MSOS ̲SEQUENCE(4.2.2.4.11).
4.2.2.4.5.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEVCO ̲CMD ̲PROCESSING
b) SEVCO ̲CMD ̲PROCESSING (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
R0 - R7 (DEST)
4.2.2.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
None
4.2.2.4.5.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
MSO ̲CO ̲OP ̲TYPE refer 4.1.4
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
COROUTINE SEMAPHORE refer CPS/DBD/001
SEVCO ̲CC ̲TYPE refer 4.1.4
SEVCO ̲CMD ̲TYPE refer 4.1.4
IDENT ̲TYPE refer 4.1.4
SEQUENCE ̲CODE ̲NO ̲TYPE refer 4.2.2.5
SEQUENCE ̲FORMAT ̲NO ̲TYPE refer 4.2.2.5
QUEUE ̲ERROR ̲TYPE refer 4.1.4
QELEMENT ̲ATTRIBUTES refer CPS/DBD/001
QELEMENT ̲REFERENCE refer CPS/DBD/001
QELEMENT ̲MAIN ̲TYPE refer CPS/DBD/001
MESSAGE ̲SUBTYPE refer CPS/DBD/001
ACK ̲SUBTYPE refer CPS/DBD/001
UNIDENTIFIED ̲ITEM ̲SUBTYPE refer CPS/DBD/001
UMAM ̲RESPONSE ̲TYPE refer CPS/DBD/001
SEND ̲PARAMS refer CPS/DBD/001
QUEUE ̲REFERENCE refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MSOS ̲S1 refer 4.1.4
SEVCO ̲OP (m) refer 4.1.4
SEQUENCE ̲CODE ̲NO (m) refer 4.2.2.5
SEQUENCE ̲FORMAT ̲NO (m) refer 4.2.2.5
INT ̲ERROR ̲INF (m) refer 4.1.4
QERROR ̲INF (m) refer 4.1.4
USER ̲ACTIVE ̲FLAG refer 4.1.4
MSOS ̲IMQ refer 4.1.4
MSOS ̲OMQ refer 4.1.4
ANQ ̲OP refer 4.1.4
ANQ ̲QEL refer 4.2.2.5
ANQ ̲ATTR refer 4.2.2.5
MSOS ̲SEND ̲PARAMS (m) refer 4.1.4
Q ̲REFERENCE (m) refer 4.1.4
CURRENT ̲SUBQ refer 4.2.2.5
ANQ ̲OP ̲PENDING refer 4.2.2.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR SEND ̲FLAG BOOLEAN
VAR FAILURE ̲ONE ̲FLAG BOOLEAN
4.2.2.4.5.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module inspects SEVCO commands, enters MSOS ̲SEQUENCE(4.2.2.4.11)
and signals opsem MSOS ̲S1. In cases where transactions
are not stopped when STOP or BLOCK command are received
the items are either returned to the queue or the queue
element is dismantled and status is updated by entering
MSOS ̲SEQUENCE module (4.2.2.4.11).
SEVCO ̲CMD ̲PROCESSING
SEVCO ̲OP.OP ̲ID(1)=SEFCO ̲IDENT
I̲N̲P̲U̲T̲ ̲P̲E̲N̲D̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲2̲)̲
CASE SEVCO ̲OP.CMD OF SEVCO ̲CMD ̲TYPE
CLOSE ̲DOWN ̲SEFCO ̲CMD? SEQUENCE ̲CODE ̲NO = CLOSE
̲DOWN
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
BLOCK ̲SEFCO ̲CMD?
SEQUENCE ̲CODE ̲NO = BLOCK ̲USER
MOVE BLOCK ̲SEFCO ̲CC TO SEVCO
̲OP.CMD
SET USER ̲ACTIVE ̲FLAG = FALSE
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SIGNAL ̲OPSEM(MSOS ̲S1, SEVCO
̲OP): OK
STOP ̲SEFCO ̲CMD?
SEQUENCE ̲CODE ̲NO = STOP ̲USER
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
MOVE STOP ̲SEFCO ̲CC TO SEVCO ̲OP.CMD
SET USER ̲ACTIVE ̲FLAG = FALSE
SIGNAL ̲OPSEM(MSOS ̲S1, SEVCO ̲OP):
OK
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END SEVCO ̲CMD ̲PROCESSING
FIGURE 4.2.2.4.5-1
INPUT ̲PENDING
ANQ ̲OP.CMD EQ NO ̲PENDING?
SEVCO ̲OP.CMD EQ CLOSE ̲DOWN ̲SEFCO ̲CMD?
CASE WAIT ̲SYSTEM ̲CALL(ANQ ̲OP)(ANQ ̲ATTR,ANQ ̲QEL,SUBQUEUE,CC):
ERROR
̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,1,PROFILE ̲CHECK):(L1)
L1?
END CASE
OK?
END CASE
CASE ANQ ̲OP.CMD OF ANQ ̲OP ̲PENDING
M ̲PLAIN ̲SVC ̲EDIT,
M ̲ABB ̲SVC ̲EDIT,
M ̲PLABB ̲SVC ̲EDIT,
M ̲DELETE ̲SVC ̲REQ,
M ̲STATUS ̲REQ? E̲R̲R̲O̲R̲ ̲D̲E̲T̲E̲C̲T̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲3̲)̲
M ̲PLABB ̲SVC ̲ACK,
M ̲ABB ̲SVC ̲ACK? Q̲E̲L̲ ̲A̲N̲A̲L̲Y̲Z̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲4̲)̲
M ̲LOG ̲ACK? D̲I̲S̲M̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
M ̲GARBLE? R̲E̲T̲U̲R̲N̲ ̲G̲A̲R̲B̲L̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲5̲)̲
M ̲RI? R̲E̲T̲U̲R̲N̲ ̲R̲I̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲7̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
END INPUT ̲PENDING
Fig. 4.2.2.4.5-2
ERROR ̲DETECT
CASE ANQ ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
PLAINDRESS ̲SERVICE,
ABB ̲SERVICE,
ABB ̲PLAINDRESS ̲SERVICE? CASE ANQ ̲ATTR.HEADER-SUBTYPE
OF
MESSAGE
̲SUBTYPE
FOR ̲CONTINUED ̲PREP?
D̲I̲S̲M̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲
A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
TEP ̲INTERNAL? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF MESSAGE
̲SUBTYPE
UMAM ̲ERROR ̲RESP? D̲I̲S̲M̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲A̲N̲Q̲
̲Q̲E̲L̲)̲
(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
STATUS? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF MESSAGE ̲SUBTYPE
OUTGOING ̲SERVICE ̲
MSG ̲STATUS? D̲I̲S̲M̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END ERROR ̲DETECT
Fig. 4.2.2.4.5-3
QEL ̲ANALYZE
FAILURE ̲ONE ̲FLAG = FALSE
CASE ANQ ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
ABB ̲PLAINDRESS ̲SERVICE,
ABB ̲SERVICE? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF MESSAGE
̲SUBTYPE
SUSPENDED ̲
DEFERRED? SEQUENCE ̲CODE ̲NO = START
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
FAILURE ̲ONE ̲FLAG = TRUE
END CASE
CASE SEVCO ̲OP.CMD OF SEVCO ̲CMD ̲TYPE
BLOCK ̲SEFCO ̲CMD? SEQUENCE ̲FORMAT
̲NO = COR1
STOP ̲SEFCO ̲CMD? SEQUENCE ̲FORMAT ̲NO
= COR2
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
ACK? CASE ANQ ̲ATTR.HEADER. SUBTYPE OF ACK ̲SUBTYPE
THP ̲ACK? SEQUENCE ̲CODE ̲NO = START
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
FAILURE ̲ONE ̲FLAG=TRUE
END CASE
CASE SEVCO ̲OP. CMD OF SEVCO ̲CMD ̲TYPE
BLOCK ̲SEFCO ̲CMD? SEQUENCE ̲FORMAT.NO = COR3
STOP ̲SEFCO ̲CMD? SEQUENCE ̲FORMAT ̲NO = COR4
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̲)̲
EMD CASE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲.̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
FAILURE ̲ONE ̲FLAG = TRUE
END CASE
FAILURE ̲ONE ̲FLAG EQ FALSE? M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
D̲I̲S̲M̲ ̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
END QEL ̲ANALYZE
Figure 4.2.2.4.5-4
RETURN ̲GARBLE
CASE ANQ ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
UNIDENTIFIED ̲CCIS,
UNIDENTIFIED ̲TRC ̲P ̲TO ̲P,
UNIDENTIFIED ̲NICS ̲TARE,
UNIDENTIFIED ̲NORMAL ̲PTR,
UNIDENTIFIED ̲DEDICATED ̲PTR,
UNIDENTIFIED ̲SCARS? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF
UNIDENTIFIED ̲ITEM
̲SUBTYPE
FOR ̲GARBLE
CORRECTION? SEND ̲FLAG ̲TRUE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲
(̲C̲O̲N̲T̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
ACK? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF ACK ̲SUBTRYPE
THP ̲ACK? SEQUENCE ̲FORMAT ̲NO = COR5
SEQUENCE ̲CODE ̲NO=START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
D̲I̲S̲M̲ ̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲O̲R̲(̲C̲O̲N̲T̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
SEND ̲FLAG=FALSE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
SEND ̲FLAG=FALSE
END CASE
SEND ̲FLAG EQ TRUE? S̲E̲N̲D̲ ̲Q̲E̲L̲ ̲T̲O̲ ̲I̲N̲Q̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲6̲)̲
END RETURN ̲GARBLE
Figure 4.2.2.4.5-5
SEND ̲QEL ̲TO ̲INQ
Q ̲REFERENCE. MAINQ = MSOS ̲IMQ
Q ̲REFERENCE. SUBQ = CURRENT ̲SUBQ
CASE SEND ̲QEL (MSOS ̲SEND ̲PARAMS = ANQ ̲ATTR, ANQ ̲QEL,Q
̲REFERENCE)
(MSOS ̲SEND ̲PARAMS,CC):ERROR
̲OK
ERROR? ANALYZE ̲ERROR(CC,0)
OK?
END CASE
DISM(ANQ ̲QEL)(4.1.5.3)
END SEND ̲QEL ̲TO ̲INQ
Figure 4.2.2.4.5-6
RETURN ̲RI
CASE ANQ ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE
PLAINDRESS,
PLAINDRESS ̲DATA,
PLAINDRESS ̲ENCRYPTED,
SC ̲PLAINDRESS,
SC ̲PLAINDRESS ̲DATA,
SC ̲PLAINDRESS ̲ENCRYPTED,
SC ̲PLAINDRESS ̲SERVICE,
ABB ̲PLAINDRESS,
ABB ̲PLAINDRESS ̲DATA,
CODRESS,
PLAINDRESS ̲SERVICE,
ABB ̲SERVICE? CASE ANQ ̲ATTR ̲HEADER.SUBTYPE OF MESSAGE
̲SUBTYPE
FOR ̲RI
ASSIGNMENT? S̲E̲N̲D̲ ̲Q̲E̲L̲ ̲T̲O̲ ̲O̲M̲Q̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲8̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲ ̲A̲N̲Q̲
̲Q̲E̲L̲)̲
(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
ACK? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF ACK ̲SUBTYPE
THP ̲ACK? SEQUENCE ̲CODE ̲NO=START
SEQUENCE ̲FORMAT ̲NO=COR6
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
D̲I̲S̲M̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
END CASE
END RETURN ̲RI
Figure 4.2.2.4.5-7
SEND ̲QEL ̲TO ̲OMQ
Q ̲REFERENCE.MAINQ = MSOS ̲OMQ
Q ̲REFERENCE. SUBQ = CURRENT ̲SUBQ
CASE SEND ̲QEL (MSOS ̲SEND ̲PARAMS = ANQ ̲ATTR, ANQ ̲QEL,Q
̲REFERENCE)
(MSOS ̲SEND ̲PARAMS,CC):
ERROR ̲OK
ERROR? ANALYZE ̲EROR(CC,0)
OK?
END CASE
D̲I̲S̲M̲ ̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲
END SEND ̲QEL ̲TO ̲OMQ
Figure 4.2.2.4.5-8
4.2.2.4.6 S̲E̲D̲I̲A̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.2.4.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to analyse the inputs
that SEFCO gets from SEDIA. Depending on input a completion
code is signalled to SEVCO and thereafter MSOS ̲SEQUENCE(4.2.2.4.11)
is entered, or on behalf of other inputs MSOS ̲SEQUENCE(4.2.2.4.11)
is entered directly.
4.2.2.4.6.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEDIA ̲CC ̲PROCESSING
b) SEDIA ̲CC ̲PROCESSING (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None (DEST)
4.2.2.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
None
4.2.2.4.6.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SEFCO ̲SEDIA ̲CMD ̲TYPE refer 4.1.4
SEFCO ̲CC ̲TYPE refer 4.1.4
CO ̲CMD ̲CC refer 4.1.4
SEQUENCE ̲FORMAT ̲NO ̲TYPE refer 4.2.2.5
COROUTINE SEMAPHORE refer CPS/DBD/001
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
MSO ̲CO ̲OP ̲TYPE refer 4.1.4
IDENT ̲TYPE refer 4.1.4
ERROR ̲NO ̲TYPE refer 4.2.2.5
SEQUENCE ̲CODE ̲NO ̲TYPE refer 4.2.2.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FORMAT ̲IFCB refer 4.1.4 INT
̲ERROR
̲INF
(m) refer
4.1.4
SEQUENCE ̲CODE ̲NO (m) refer 4.2.2.5
MSOS ̲S1 (m) refer 4.1.4
SEVCO ̲OP (m) refer 4.1.4
VDU ̲SPLIT ̲FLAG (m) refer 4.1.4
START ̲FLAG (m) refer 4.2.2.5
SEQUENCE ̲FORMAT ̲NO (m) refer 4.2.2.5
EXP ̲SEDIA ̲CMD refer 4.2.2.5
MSOS ̲OP refer 4.1.4
CLEAR ̲BIT refer 4.2.2.5
PUNCH ̲BIT refer 4.2.2.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.2.4.6.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module analyses completion code from SEDIA, and
in those cases where completion code is to a command
issued by SEVCO, a completion code is sent to SEVCO.
SEDIA ̲CC ̲PROCESSING
F̲R̲E̲E̲ ̲S̲E̲F̲C̲O̲ ̲O̲P̲(̲M̲S̲O̲S̲ ̲O̲P̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲7̲)̲
MSOS ̲OP.CMD NE EXP ̲SEDIA ̲CMD?
MSOS ̲OP.PARA1 EQ SPLIT ̲FAILED ̲CC? S̲I̲G̲N̲A̲L̲ ̲S̲E̲V̲C̲O̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲5̲)̲
CASE MSOS ̲OP.CMD OF SEFCO ̲SEDIA ̲CMD ̲TYPE
L ̲INSERT
L ̲DELETE? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC
OK ̲CC?
ERROR ̲CC? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
OTHERWISE? 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
CLEAR ̲VDU,
DISPLAY ̲MENU,
OUTPUT ̲FORMAT? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC
OK ̲CC? START ̲FLAG EQ FALSE?
MOVE SEFCO ̲IDENT TO SEVCO ̲OP.OP ̲ID(1)
START ̲FLAG=FALSE
MOVE START ̲SEFCO ̲CC TO SEVCO ̲OP.CMD
S̲I̲G̲N̲A̲L̲ ̲O̲P̲S̲E̲M̲(̲M̲S̲O̲S̲ ̲S̲1̲,̲S̲E̲V̲C̲O̲ ̲O̲P̲)̲:̲O̲K̲
SEQUENCE ̲FORMAT ̲NO=SEQ ̲REC.NEW ̲FORMAT
SEQUENCE ̲CODE ̲NO=OUTPUT ̲FORMAT ̲CC
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
OTHERWISE? C̲O̲N̲T̲I̲N̲U̲E̲ ̲S̲E̲D̲I̲A̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲3̲)̲
END CASE
O̲P̲E̲N̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲2̲)̲
END SEDIA ̲CC ̲PROCESSING
Figure 4.2.2.4.6-1
OPEN
CASE ENABLE ̲DATA ̲KEYS(FORMAT ̲IFCB)(CC): ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED):(L1)
L1? VDU ̲SPLIT ̲FLAG=TRUE
END CASE
OK?
END CASE
CASE ENABLE ̲DATA ̲KEYS(HEADER ̲IFCB)(CC): ERROR ̲OK
ERROR? CASE ANALYZE ERROR(CC, 1, VDU ̲SPLIT ̲FAILED):
(L2)
L2? VDU ̲SPLIT ̲FLAG = TRUE
END CASE
OK?
END CASE
END OPEN
Figure 4.2.2.4.6-2
CONTINUE SEDIA ̲CC ̲PROCESSING
CASE MSOS ̲OP.CMD OF SEFCO ̲SEDIA ̲CMD ̲TYPE
CANCEL ̲I ̲O,
CLOSE? CASE MSOS ̲OP. PARA1 OF CO ̲CMD ̲CC
OK ̲CC? MSOS ̲OP EQ CANCEL? - SEQUENCE ̲CODE
̲NO = CANCEL ̲CC
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEQUENCE ̲CODE ̲NO=CLOSE ̲DOWN ̲CC
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
MOVE SEFCO ̲IDENT TO SEVCO ̲OP.OP ̲ID(1)
MOVE CLOSE ̲DOWN ̲SEFCO ̲CC TO SEVCO ̲OP.CMD
SIGNAL ̲OPSEM(MSOS ̲S1,SEVCO ̲OP):OK
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
GARBLE ̲IN,
INPUT ̲DATA? CASE MSOS ̲OP.PARA1 OF ̲CMD ̲CC
OK ̲CC? P̲A̲R̲A̲ ̲A̲N̲A̲L̲Y̲Z̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲4̲)̲
ERROR ̲CC? SEQUENCE ̲CODE ̲NO=VAL ̲ERROR
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
SEQUENCE ̲FORMAT ̲NO = SEQ ̲REC.NEW ̲FORMAT
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
OUTPUT ̲DATA? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC
OK ̲CC? SEQUENCE ̲FORMAT ̲NO=SEQ ̲REC.NEW
̲FORMAT
SEQUENCE ̲CODE ̲NO=OUTPUT ̲DATA
̲CC
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
Figure 4.2.2.4.6-3
ANALYZE ̲PARAM
CASE MSOS ̲OP. PARA2
M ̲DUMMY? SEQUENCE ̲CODE ̲NO=INPUT ̲VAL ̲CC
DEFER? SEQUENCE ̲CODE ̲NO=DEFER ̲VAL
SEND? SEQUENCE ̲CODE ̲NO=SEND ̲VAL
PRINT? SEQUENCE ̲CODE ̲NO=PRINT ̲VAL
KEYA? SEQUENCE ̲CODE ̲NO=KEYA ̲VAL
KEYB? SEQUENCE ̲CODE ̲NO=KEYB ̲VAL
KEYE? SEQUENCE ̲CODE ̲NO=KEYE ̲VAL
CLEAR? SEQUENCE ̲CODE ̲NO=INPUT ̲VAL ̲CC
CLEAR ̲BIT=TRUE
PUNCH? SEQUENCE ̲CODE ̲NO=INPUT ̲VAL ̲CC
PUNCH ̲BIT=TRUE
CLEAR ̲PRINT? SEQUENCE ̲CODE ̲NO=PRINT ̲VAL
CLEAR ̲BIT=TRUE
PUNCH ̲PRINT? SEQUENCE ̲CODE ̲NO=PRINT ̲VAL
PUNCH ̲BIT=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
END ANALYZE ̲PARAM
Figure 4.2.2.4.6-4
SIGNAL ̲SEVCO
VDU ̲SPLIT ̲FLAG = TRUE
CASE MSOS ̲OP. CMD OF SEFCO ̲SEDIA ̲CMD ̲TYPE
OUTPUT ̲FORMAT? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC
OK ̲CC? START ̲FLAG EQ FALSE?
MOVE SEFCO ̲IDENT TO SEVCO
̲OP.OP ̲ID(1)
START ̲FLAG=FALSE
MOVE START ̲SEFCO ̲CC TO SEVCO
̲OP.CMD
SIGNAL OPSEM(MSOS ̲S1,SEVCO
̲OP):OK
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲
̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
CLOSE? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC
OK ̲CC? MOVE SEFCO ̲IDENT TO SEVCO ̲OP.OP ̲ID(1)
MOVE CLOSE ̲DOWN ̲SEFCO ̲CC TO SEVCO ̲OP.CMD
SIGNAL ̲OPSEM(MSOS ̲S1,SEVCO ̲OP): OK
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
Figure 4.2.2.4.6-5
4.2.2.4.7 S̲E̲T̲R̲ ̲O̲P̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
4.2.2.4.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to analyse input from
SETR ̲Coroutine, display notification and entering the
MSOS ̲SEQUENCE module(4.2.2.4.11).
4.2.2.4.7.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SETR ̲OP ̲PROCESSING
b) SETR ̲OP ̲PROCESSING (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
R0 - R7 (DEST)
4.2.2.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
N/A
4.2.2.4.7.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
QEL ̲ATTRIBUTES refer CPS/DBD/001
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
SEQUENCE ̲CODE ̲NO ̲TYPE refer 4.2.2.5
SETR ̲SEFCO ̲RESPONSE ̲TYPE refer 4.1.4
ERROR ̲NO ̲TYPE refer 4.2.2.5
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
QELEMENT ̲MAIN ̲TYPE refer CPS/DBD/001
HEADER ̲TEXT ̲TYPE refer 4.2.2.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
HEADER ̲TEXT refer 4.2.2.5
MSO ̲RECV ̲ATTR (m) refer 4.2.2.5
INT ̲ERROR-̲INF (m) refer 4.1.4
SEFCO ̲SETR ̲ATTR refer 4.1.4
SEQUENCE ̲CODE ̲NO (m) refer 4.2.2.5
SETR ̲OP refer 4.1.4
CURRENT ̲MODE (m) refer 4.1.4
SEQUENCE ̲FORMAT ̲NO (m) refer 4.2.2.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.2.4.7.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
This module calls either DISPLAY ̲ERROR ̲MSG(4.2.2.6.4)
and MSOS ̲SEQUENCE(4.2.2.4.11) or, when the input is
analysed, the latter only.
SETR ̲OP ̲PROCESSING:
MOVE SEFCO ̲SETR ̲ATTR TO MSO ̲RECV ̲ATTR
CASE SETR ̲OP.CMD OF SETR ̲SEFCO ̲RESPONSE ̲TYPE
ONLINE ̲NOTIFICATION? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲
(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
OFFLINE ̲NOTIFICATION? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲
(4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
SEQUENCE ̲CODE ̲NO = SEQ ̲OFF
̲NOT
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
READDRESS ̲NOTIFICA-
TION? R̲E̲A̲D̲D̲R̲ ̲N̲O̲T̲(̲4̲.̲2̲.̲2̲.̲4̲.̲7̲-̲2̲)̲
HEADER ̲TEXT = READDRESS
RERUN ̲NOTIFICATION? R̲E̲R̲U̲N̲ ̲N̲O̲T̲(̲4̲.̲2̲.̲2̲.̲4̲.̲7̲-̲3̲)̲
HEADER ̲TEXT = RERUN
RETRIEVAL ̲ERROR? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲
(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
SEQUENCE ̲CODE ̲NO = SEQ ̲ERROR
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
FIGURE 4.2.2.4.7-1
READDR ̲NOT
SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED EQ TRUE? M̲S̲O̲S̲
̲I̲N̲T̲E̲R̲V̲A̲L̲
E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
CASE SEFCO ̲SETR ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN
̲TYPE
PLAINDRESS? SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS.
EQ
TRUE?
SEQUENCE ̲CODE ̲NO =
START
SEQUENCE ̲FORMAT ̲NO
= RDPLAC
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEQUENCE ̲FORMAT ̲NO = RDPLANC
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
PLAINDRESS ̲SERVICE? SEFCO ̲SETR ̲ATTR.HEADER.FLAG.
CAMPS EQ TRUE?
SEQUENCE ̲FORMAT ̲NO
= RDPLASEC
SEQUENCE ̲CODE ̲NO =
START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEQUENCE ̲FORMAT ̲NO = RDPLASERNC
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
TRANSMISSION
CATALOGUE DISPLAY? HEADER ̲TEXT = TRANSMISSION
̲CATALOGUE
SEQUENCE ̲FORMAT ̲NO =
RE ̲TRANS ̲CA-TALOGUE
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SYSTEM ̲CATALOGUE ̲DIS-
PLAY? HEADER ̲TEXT ̲SYSTEM ̲CATALOGUE
SEQUENCE ̲FORMAT ̲NO=RE ̲SYS
̲CATALOGUE
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲
(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
EMD CASE
FIGURE 4.2.2.4.7-2
RERUN ̲NOT
CASE SEFCO ̲SETR ̲ATTR.HEADER MAINTYPE OF QELEMENT ̲MAIN
̲TYPE
PLAIN-
DRESS,
PLAINDRESS
DATA? SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ TRUE?
SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED.EQ.TRUE?
SEQUENCE ̲CODE ̲NO = START
SEQUENCE ̲FORMAT ̲NO = RRNPLADATAC
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEQUENCE ̲FORMAT ̲NO = RRNPLADATANC
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED EQ
TRUE?
SEQUENCE ̲FORMAT ̲NO = RRNPLNC
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEQUENCE ̲FORMAT ̲NO = RRNPLDANC
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
CONTINUE(4.2.2.4.7.4)
FIGURE 4.2.2.4.7-3
PLAINDRESS ̲
SERVICE? SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ TRUE?
SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED
EQ TRUE?
SEQUENCE ̲FORMAT ̲NO = RRNPLDRC
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEQUENCE ̲FORMAT ̲NO = RRNPLDRNR
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED EQ
TRUE?
SEQUENCE ̲FORMAT ̲NO = RRNPLNCRE
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEQUENCE ̲FORMAT ̲NO = RRNPLNCNR
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
CONTINUE(4.2.2.4.7-5)
FIGURE 4.2.2.4.7-4
ABB ̲
PLAINDRESS,
ABB ̲
PLAINDRESS ̲
DATA? SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ TRUE?
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
SEFCO ̲SETR.ATTR.HEADER.FLAG.READDRESSED EQ
TRUE?
SEQUENCE ̲FORMAT ̲NO = RRNABBRE
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEQUENCE ̲FORMAT ̲NO = RRNABBNRE
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
CONTINUE(4.2.2.4.7-6)
FIGURE 4.2.2.4.7-5
ABB ̲PLAINDRESS
SERVICE,
ABB ̲SERVICE? SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ
TRUE?
SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED
EQ
TRUE?
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
SEQUENCE ̲FORMAT ̲NO = RRNABBSENC
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED
EQ
TRUE?
SEQUENCE ̲FORMAT ̲NO = RRNABBRE
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SEQUENCE ̲FORMAT ̲NO = RRNABBNRE
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
CONTINUE(4.2.2.4.7-7)
FIGURE 4.2.2.4.7-6
SC ̲
COMMENT? SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED EQ
TRUE?
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ TRUE?
T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
SEQUENCE ̲FORMAT ̲NO = RRNSC
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
TRANSMISSION
CATALOGUE
DISPLAY? HEADER ̲TEXT=TRANSMISSION ̲CATALOGUE
SEQUENCE ̲FORMAT ̲NO =RRN ̲TRANS ̲CATALOGUE
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
SYSTEM ̲
CATALOGUE ̲
DISPLAY? HEADER ̲TEXT=SYSTEM ̲CATALOGUE
SEQUENCE ̲FORMAT ̲NO = RRN ̲SYS ̲CATALOGUE
SEQUENCE ̲CODE ̲NO = START
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
FIGURE 4.2.2.4.7-7
4.2.2.4.8 M̲S̲O̲S̲ ̲I̲N̲/̲O̲U̲T̲ ̲L̲I̲N̲E̲
4.2.2.4.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̲
The purpose of this module is to analyse the input
from command line and signal command and parameter
to SEDIA, or alternatively, if the input is unacceptable,
to call other modules.
4.2.2.4.8.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) MSOS ̲IN/OUT ̲LINE(BYTES ̲TRANSFERRED: COUNTER)
b) MSOS ̲IN/OUT ̲LINE (R6, R7)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK (DEST)
R7 BYTES ̲TRANSFERRED (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
R0 - R7 (DEST)
4.2.2.4.8.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
NONE
4.2.2.4.8.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̲
COROUTINE SEMAPHORE refer CPS/DBD/001
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
SEFCO ̲SEDIA ̲CMD ̲TYPE refer 4.1.4
ERROR ̲NO ̲TYPE refer 4.2.2.5
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
IDENT ̲TYPE refer 4.1.4
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
EXP ̲SEDIA ̲CMD (m) refer 4.2.2.5
INT ̲ERROR ̲INF (m) refer 4.1.4
IN ̲LINE ̲FLAG (m) refer 4.2.2.5
HEADER ̲IFCB refer 4.1.4
MSOS ̲S3 (m) refer 4.1.4
SEFCO ̲OP (m) refer 4.2.2.5
OUT ̲LINE ̲FLAG (m) refer 4.2.2.5
SEDIA ̲CMD ̲CNT (m) refer 4.2.2.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
CONST MAX ̲NO = 1000
4.2.2.4.8.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
If the expected FC ̲key (Return) is entered the content
of the command line is converted, and a command is
signalled to SEDIA. If the conversion failed other
common procedures are called in order to display an
error message and to reset the cursor position on the
command line.
MSOS ̲IN/OUT ̲LINE
C̲O̲N̲V̲E̲R̲T̲ ̲T̲O̲ ̲I̲N̲T̲E̲G̲E̲R̲
NOT ̲OK? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
OK? S̲E̲N̲D̲ ̲T̲O̲ ̲S̲E̲D̲I̲A̲(̲4̲.̲2̲.̲2̲.̲4̲.̲8̲-̲2̲)̲
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲F̲O̲R̲M̲A̲T̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
END MSOS ̲IN/OUT ̲LINE
FIGURE 4.2.2.4.8-1
SEND TO SEDIA
NO ̲OF ̲LINES GT MAX ̲NO? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲ ̲(̲F̲O̲R̲M̲A̲T̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
CASE F̲E̲T̲C̲H̲ ̲S̲E̲F̲C̲O̲ ̲O̲P̲(̲S̲E̲F̲C̲O̲ ̲O̲P̲)̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲8̲)̲
ERROR? 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
MOVE SEFCO ̲IDENT TO SEFCO ̲OP.OP ̲ID(1)
MOVE NO ̲OF ̲LINES TO SEFCO ̲OP.PARA1
IN ̲FLAG EQ TRUE? MOVE L ̲INSERT TO SEFCO ̲OP.CMD
IN ̲FLAG = FALSE
OUT ̲FLAG EQ TRUE? MOVE L ̲DELETE TO SEFCO ̲OP.CMD
OUT ̲FLAG = FALSE
EXP ̲SEDIA ̲CMD=SEFCO ̲OP.OP ̲ID(2)
SEDIA ̲CMD ̲CNT=SEDIA ̲CMD ̲CNT+1
SIGNAL ̲OPSEM(MSOS ̲S3,SEFCO ̲OP): OK
END SEND TO SEDIA
Figure 4.2.2.4.8-2
4.2.2.4.9 M̲S̲O̲S̲ ̲C̲M̲D̲ ̲P̲E̲N̲D̲I̲N̲G̲
4.2.2.4.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̲
The purpose of this module is to fetch the content
of the command line, validate it, display terminal
field text and enter the SEQUENCE module (4.2.2.4.11).
4.2.2.4.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) MSOS ̲CMD ̲PENDING(BYTES ̲TRANSFERRED)
b) MSOS ̲CMD ̲PENDING (R6, R7)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK (DEST)
R7 BYTES ̲TRANSFERRED (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
R0 - R7 (DEST)
4.2.2.4.9.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
N/A
4.2.2.4.9.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̲
PRECEDENCE ̲TYPE refer CPS/DBD/001
COROUTINE ̲SEMAPHORE refer CPS/DBD/001
MSO ̲RECV ̲QUEUE ̲TYPE refer 4.1.4
INTERNAL ̲ERROR ̲TYPE refer 4.1.4
SEQUENCE ̲CODE ̲NO ̲TYPE refer 4.2.2.5
SEQUENCE ̲FORMAT ̲NO ̲TYPE refer 4.2.2.5
USER ̲FCT ̲CAPABILITY ̲TYPE refer CPS/DBD/001
TABLE ̲ID ̲TYPE refer CPS/DBD/001
SEQ ̲KEY ̲TYPE refer 4.2.2.5
IDENT ̲TYPE refer 4.1.4
MSOS ̲CO ̲OP ̲TYPE refer 4.1.4
ERROR ̲NO ̲TYPE refer 4.2.2.5
SEND ̲PARAMS refer CPS/DBD/001
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
MSOS ̲S1 (m) refer 4.1.4
CURRENT ̲MAINQ refer 4.2.2.5
CURRENT ̲SUBQ refer 4.2.2.5
SEVCO ̲OP (m) refer 4.1.4
MSOS ̲SEND ̲PARAMS (m) refer 4.1.4
SEQUENCE ̲CODE ̲NO (m) refer 4.2.2.5
SEQUENCE ̲FORMAT ̲NO (m) refer 4.2.2.5
RECV ̲MAIN refer 4.2.2.5
CMD ̲RESP ̲AREA (m) refer 4.2.2.5
CMD ̲FLAG (m) refer 4.2.2.5
CURRENT ̲MODE (m) refer 4.1.4
HEADER ̲IFCB refer 4.1.4
CIF ̲BUFFER (m) refer 4.1.4
INT ̲ERROR ̲INF (m) refer 1.4.1
SEDIA ̲CMD ̲CNT refer 4.2.2.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE CMD ̲RECORD: CMD ̲RECORD ̲TYPE
CMD ̲RECORD ̲TYPE =
RECORD
CMD: ARRAY (1..4) OF CHAR
VDU ̲HEADER ̲TEXT: ARRAY (1..26) OF CHAR
CAPABILITY: USER ̲CAPABILITY ̲TYPE
VDU ̲HEADER ̲TEXT ̲FLAG: BOOLEAN
KEY: SEQ ̲KEY ̲TYPE
MODE: INTEGER
VALIDATE: MSOS ̲HEADER ̲VALIDATION
̲TYPE
PARAMETER: BOOLEAN
END;
CONST COMMAND ̲LENGTH = 4
VAR CC ̲FLAG: BOOLEAN
TYPE MSO ̲CMD = CMD ̲RECORD ̲TYPE
TYPE CMD ̲PARAM = CMD ̲PARAM ̲TYPE
CMD ̲PARAM ̲TYPE = RECORD
CMD: CMD ̲TYPE
INFO: INTEGER
LINK: POINTER
END
TYPE CMD = ARRAY (1..4) OF CHAR
INIT CC ̲FLAG = TRUE
TYPE MSOS ̲HEADER ̲VALIDATION ̲TYPE = (CPFP, CAPP, CASP)
VAR VALIDATE: MSOS ̲HEADER ̲VALIDATION ̲TYPE
CONST CMD ̲MASK = FFFF
VAR NO: COUNTER
VAR CNT: COUNTER
VAR ITREF: INTEGER
CMD ̲PARAM ̲TABLE=ARRAY(0..MAX ̲NO ̲OF ̲PARAMS)OF CMD ̲PAR
CMD ̲PAR=RECORD
TYPE: PARAMETER ̲TYPE
NO ̲OF ̲CHAR: INTEGER
START ̲POS: INTEGER
END
PARAMETER ̲TYPE=(ALPHA ̲TYPE,NOM ̲TYPE,ALPHA ̲NUM ̲TYPE)
PAR ̲TYPE ̲SET=(ALPHA,NUM,ALPHA ̲NUM)
ALPHA ̲TYPE=ALPHA..ALPHA
NUM ̲TYPE=NUM..NUM
ALPHA ̲NUM ̲TYPE=ALPHA..ALPHA ̲NUM
TYPE D ̲CHAR: "ASC" CHARACTER SET
TYPE A ̲CHAR: A..Z
TYPE N ̲CHAR: 0..9
TYPE SPACE: "ASC" SPACE
TYPE KOMMA: ,
VAR NO ̲OF ̲CHAR: INTEGER
VAR P ̲TYPE: PARAMETER ̲TYPE
CONST MAX ̲NO ̲OF PARAMS=1000
CONST COMMAND ̲LINE ̲LENGTH=69 …86…1 …02… …02… …02… …02…
…02…
4.2.2.4.9.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
A call to TMP is issued, in order to validate the command.
Capability and the parameter (if any) are checked,
and MSOS ̲SEQUENCE is entered.
If VDU ̲HEADER ̲TEXT ̲FLAG is true the terminal text is
displayed. If mode changes occur SEVCO is signalled.
MSOS ̲CMD ̲PENDING
BYTES ̲TRANSFERRED LT COMMAND ̲LENGTH? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲
̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
L̲O̲O̲K̲ ̲U̲P̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲5̲)̲ S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
NO OF PARAMS EQ 1000? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
KEY COUNT = 1
EQUIVALENCE(CIF ̲BUFFER(1),CMD ̲PARAM; CMD ̲PARAM ̲TYPE)
EQUIVALENCE(CIF ̲BUFFER(1+ SIZE (CMD ̲PARAM ̲TYPE)),MSO
̲CMD:
CMD ̲RECORD
̲TYPE)
CMD ̲PARAM.CMD = CMD ̲RESP ̲AREA(CMD ̲PARAM ̲TABLE(1).START
̲POS)
CASE SEARCH ̲PRIMARY ̲KEY(COMMAND ̲TABLE,CMD ̲PARAM,KEY
̲COUNT,
SIZE(CMD ̲RECORD),CMD ̲MASK)(MSO ̲CMD):ERROR
̲OK
ERROR? ANALYSE ̲ERROR(CC,0)
OK?
END CASE
CMD ̲PARAM.INFO EQ 0? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
A̲S̲S̲I̲G̲N̲ ̲C̲U̲R̲R̲E̲N̲T̲ ̲M̲A̲I̲N̲Q̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲8̲)̲
CMD ̲RECORD.PARAMETER EQ FALSE?
NO ̲OF ̲PARAMS EQ 1? S̲E̲Q̲ ̲E̲N̲T̲R̲Y̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲2̲)̲
V̲A̲L̲I̲D̲A̲T̲E̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲4̲)̲ SET CC ̲FLAG =
TRUE
CC ̲FLAG EQ FALSE?
I̲N̲V̲E̲S̲T̲I̲G̲A̲T̲E̲ ̲M̲O̲D̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲3̲)̲
CMD ̲RECORD.VDU ̲HEADER ̲TEXT ̲FLAG EQ FALSE?
D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲T̲E̲X̲T̲ ̲F̲I̲E̲L̲D̲,̲C̲M̲D̲ ̲R̲E̲C̲O̲R̲D̲.̲V̲D̲U̲
̲H̲E̲A̲D̲E̲R̲ ̲
T̲E̲X̲T̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲
END MSOS ̲CMD ̲PENDING
FIGURE 4.2.2.4.9-1
SEQ ̲ENTRY
CMD ̲RECORD.KEY.FORMAT = SEQUENCE ̲FORMAT ̲NO
CMD ̲RECORD.KEY.CODE = SEQUENCE ̲CODE ̲NO
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
CURRENT ̲SUBQ = NULL
END SEQ ̲ENTRY
FIGURE 4.2.2.4.9-2
INVESTIGATE MODE
CMD ̲RECORD.MODE EQ CURRENT ̲MODE?
CURRENT ̲MODE = CMD ̲RECORD.MODE
MOVE SEFCO ̲IDENT TO SEVCO ̲OP.OP ̲ID(1)
MOVE MSO ̲MODE ̲CHANGE TO SEVCO ̲OP.CMD
SIGNAL ̲OPSEM(MSOS ̲S1, SEVCO ̲OP): OK
SET CMD ̲FLAG = FALSE
END INVESTIGATE MODE
FIGURE 4.2.2.4.9-3
VALIDATE ̲PARAMETER
CASE VALIDATE OF MSOS ̲HEADER ̲VALIDATION ̲TYPE
…02…CPFP,
CAPP,
CASP? CASE S̲E̲Q̲ ̲E̲D̲I̲T̲(̲C̲M̲D̲ ̲P̲A̲R̲A̲M̲ ̲T̲A̲B̲L̲E̲(̲P̲A̲R̲A̲M̲2̲)̲.̲S̲T̲A̲R̲T̲
̲P̲O̲S̲)̲,̲
C̲M̲D̲ ̲P̲A̲R̲A̲M̲ ̲T̲A̲B̲L̲E̲(̲P̲A̲R̲A̲M̲2̲)̲,̲N̲O̲
̲O̲F̲ ̲C̲H̲A̲R̲)̲:
E̲R̲R̲O̲R̲ ̲O̲K̲
ERROR? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
OK? SEQUENCE ̲FORMAT ̲NO=CMD ̲RECORD.KEY.FORMAT
SEQUENCE ̲CODE ̲NO=EDTT ̲REQ
M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
END CASE
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
Figure 4.2.2.4.9-4
L̲O̲O̲K̲U̲P̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲
NO ̲OF ̲PARAMS=0
P ̲TYPE=NONE
HL ̲INDEX=1
LOOP SCAN ̲LINE
S̲E̲A̲R̲C̲H̲ ̲S̲T̲A̲R̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲6̲)̲
S̲E̲A̲R̲C̲H̲ ̲E̲N̲D̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲7̲)̲
END LOOP SCAN ̲LINE
Figure 4.2.2.4.9-5
SEARCH START
LOOP SEARCH ̲START
CMD ̲RESP ̲AREA(HL ̲INDEX)OF D ̲CHAR
SPACE,KOMMA?
NO ̲OF ̲PARAMS GT MAX ̲NO ̲OF ̲PARAMS?-NO ̲OF ̲PARAMS=1000
EXIT LOOP
SCAN LINE
OTHERWISE? EQUIVALENCE(CUR ̲CMD ̲PARAM,CMD ̲PARAM ̲TABLE
NO ̲OF ̲PARAMS):CMD
̲PAR)
NO ̲OF ̲PARAMS=NO ̲OF ̲PARAMS+1
CUR ̲CMD ̲PARAM.START ̲POS=HL ̲INDEX
EXIT LOOP SEARCH ̲START
END CASE
HL ̲INDEX=HL ̲INDEX+1
HL ̲INDEX EQ CMD ̲LINE ̲LENGTH+1? EXIT LOOP SCAN ̲LINE
END LOOP SEARCH ̲START
Figure 4.2.2.4.9-6
S̲E̲A̲R̲C̲H̲ ̲E̲N̲D̲
NO ̲OF ̲CHAR=1
LOOP SEARCH ̲END
CASE CMD ̲RESP ̲AREA(HL ̲INDEX)OF D ̲CHAR
A ̲CHAR? - CASE P ̲TYPE OF
NONE? P ̲TYPE=ALPHA
ALPHA, ALPHA ̲NUM?
NUM? P ̲TYPE=ALPHA ̲NUM
END CASE
N ̲CHAR? - CASE P ̲TYPE OF
NONE? P ̲TYPE=NUM
NUM, ALPHA-NUM?
ALPHA? P ̲TYPE=ALPHA ̲NUM
END CASE
(SPACE)
(KOMMA)?CUR ̲CMD ̲PARAM.TYPE=P ̲TYPE
CUR ̲CMD ̲PARAM.NO ̲OF ̲CHAR=NO ̲OF ̲CHAR-1
EXIT LOOP SEARCH ̲END
OTHERWISE? P ̲TYPE=ALPHA ̲NUM
END CASE
HL ̲INDEX=HL ̲INDEX+1
HL ̲INDEX EQ CMD ̲LINE ̲LENGTH+1? CUR ̲CMD ̲PARAM.TYPE=P ̲TYPE
CUR ̲CMD ̲PARAM.NO ̲OF ̲CHAR=NO
̲OF ̲CHAR
EXIT LOOP SCAN ̲LINE
NO ̲OF ̲CHAR=NO ̲OF ̲CHAR+1
END LOOP SEARCH END
Figure 4.2.2.4.9-7
ASSIGN ̲CURRENT ̲MAINQ
RECV ̲MAIN = TRUE
CASE CMD ̲RECORD.MODE OF CURRENT ̲MODE ̲TYPE
INTERACTIV?
RESPONSE? CURRENT ̲MAINQ = ANSWER ̲Q
CURRENT ̲SUBQ=2
RECV ̲MAIN = FALSE
INCO? CURRENT ̲MAINQ=INCOMING ̲Q
CURRENT ̲SUBQ=NULL
OUTGO? CURRENT ̲MAINQ=OUTGOING ̲Q
CURRENT ̲SUBQ=NULL
OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
END CASE
END ASSIGN ̲CURRENT ̲MAINQ
FIGURE 4.2.2.4.9-8
4.2.2.4.10 M̲S̲O̲S̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲ ̲M̲S̲G̲
4.2.2.4.10.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The purpose of this module is to transfer an error
code into error/response messages, which are displayed
in the response line.
4.2.2.4.10.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) MSOS ̲DISPLAY ̲RESP ̲MSG(ERROR ̲NO: ERROR ̲NO ̲TYPE)
b) MSOS ̲DISPLAY ̲RESP ̲MSG(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̲
R5 ERROR ̲NO (DEST)
R6 LINK (DEST)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
R0 - R7 (DEST)
4.2.2.4.10.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
None.
4.2.2.4.10.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̲
ERROR ̲NO ̲TYPE refer 4.2.2.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
CMD ̲RESP ̲AREA refer 4.2.2.5
RESPONSE ̲TEXT ̲FLAG (m) refer 4.2.2.5
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
CONST MAX ̲ERROR ̲NO = 99
4.2.2.4.10.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
The number read from the command line is converted
to integer and if the conversion result is beyond a
max range or illegal, an error message is displayed.
Other-
wise the common procedure, DISPLAY ̲ERROR ̲MSG, is called.
MSOS ̲DISPLAY ̲RESP ̲MSG
C̲O̲N̲V̲E̲R̲T̲ ̲T̲O̲ ̲I̲N̲T̲E̲G̲E̲R̲
NOT ̲OK? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
ERROR ̲NO GT MAX ̲ERROR ̲NO? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
̲N̲O̲)̲
(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲
SET RESPONSE ̲TEXT ̲FLAG = FALSE
S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲F̲O̲R̲M̲A̲T̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
END MSOS ̲DISPLAY ̲RESP ̲MSG
Figure 4.2.2.4.10-1