top - download
⟦980bfd444⟧ Wang Wps File
Length: 76833 (0x12c21)
Types: Wang Wps File
Notes: CPS/SDS/029
Names: »1811A «
Derivation
└─⟦35f7ff388⟧ Bits:30006086 8" Wang WCS floppy, CR 0132A
└─ ⟦this⟧ »1811A «
WangText
…00……00……00……00……00…K…02……00……00…K
J…09…J…0c…J…0f…J I…09…I…0b…I…0d…I…0f…5…02…5…05…4…08…4…0a…4…0b…4…0c…4…0e…4…0f…4…01…4 4…07…3…09…3…0c…3…0e…3…01…2…09…2…0b…2…0e…2…02…2…07…1…0a…1…0d…1…00…1…02…1…06…0…0a…0…0d…0…01…0 /…08…/…0b…/…0f…/…01…/ /…06….…08….…0c….…0f….…02….…06…-…0a…-…86…1
…02… …02… …02…
…02…CPS/SDS/029
…02…820514…02……02…
SYSTEM STATUS AND CONTROL
DETAILED DESIGN SPECIFICATION…02……02…CAMPS
4.2.5.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE ACTION ̲MODULE ̲2 (T.ACTION: ACTION ̲TYPE)
BEGIN
CASE T.ACTION ̲OF
ID ̲CODE ̲PASSWORD ̲ENTRY? I̲D̲ ̲C̲O̲D̲E̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ ̲E̲N̲T̲R̲Y̲
̲T̲
THIRD ̲ID ̲CODE ̲PASSWORD ̲ENTRY? T̲H̲I̲R̲D̲ ̲I̲D̲ ̲C̲O̲D̲E̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲
̲E̲N̲T̲R̲Y̲ ̲T̲
RE ̲SE ̲IN ̲REPLY? R̲E̲ ̲S̲E̲ ̲I̲N̲ ̲R̲E̲P̲L̲Y̲ ̲T̲
THIRD ̲RE ̲SE ̲IN ̲REPLY ? T̲H̲I̲R̲D̲ ̲R̲E̲ ̲S̲E̲ ̲I̲N̲ ̲R̲E̲P̲L̲Y̲ ̲T̲
SEC ̲CODE-̲ENTRY? S̲E̲C̲ ̲C̲O̲D̲E̲ ̲E̲N̲T̲R̲Y̲ ̲T̲
THIRD ̲SEC ̲CODE ̲ENTRY? T̲H̲I̲R̲D̲ ̲S̲E̲C̲ ̲C̲O̲D̲E̲ ̲E̲N̲T̲R̲Y̲ ̲T̲
PASSWORD ̲ENTRY? P̲A̲S̲S̲W̲O̲R̲D̲ ̲E̲N̲T̲R̲Y̲ ̲T̲
THIRD ̲PASSWORD ̲ENTRY? T̲H̲I̲R̲D̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ ̲E̲N̲T̲R̲Y̲ ̲T̲
SION ̲TIME ̲OUT?CANCEL ̲SYSTEM ̲CALL (T ̲INIT ̲OP) S̲I̲O̲N̲ ̲T̲I̲M̲E̲
̲O̲U̲T̲ ̲T̲
REL ̲SE ̲INT ̲TIME ̲OUT? CANCEL ̲STSTEM ̲CALL (T ̲INIT ̲OP)I̲N̲V̲A̲L̲I̲D̲
̲
R̲E̲L̲
̲S̲E̲C̲
̲I̲N̲T̲
(SEC
̲WAR
̲BY
̲REL
REL ̲SEC ̲INT ̲CDM ? R̲E̲L̲ ̲S̲E̲C̲ ̲I̲N̲T̲ ̲C̲M̲D̲ ̲T̲
S ̲INTERROGATION ̲CMD ? S̲ ̲I̲N̲T̲E̲R̲R̲O̲G̲A̲T̲I̲O̲N̲ ̲C̲M̲D̲ ̲T̲
S ̲WARNING ̲CMD ? S̲ ̲W̲A̲R̲N̲I̲N̲G̲ ̲C̲M̲D̲ ̲T̲
S ̲BOTH ̲CMD ? S̲ ̲B̲O̲T̲H̲ ̲C̲M̲D̲ ̲T̲
S ̲INTERROGATION ̲TIME ̲OUT ? CANCEL ̲SYSTEM ̲CALL (T ̲INIT
̲ OP)INVALID ̲SEC ̲INTERROGATION ̲OR ̲WARNING (I1,E
̲SEC ̲INT ̲NOT ̲
OK,SEC
̲INIT
̲TIM)
S ̲WARNING ̲TIME ̲OUT ? CANCEL ̲SYSTEM ̲CALL ̲(T ̲INIT ̲OP)
I̲N̲V̲A̲L̲I̲D̲ ̲S̲E̲C̲ ̲I̲N̲T̲E̲R̲R̲O̲G̲A̲T̲I̲O̲N̲ ̲O̲R̲ ̲W̲A̲R̲N̲I̲N̲G̲
(I2,E ̲SEC ̲WARNING ̲NOT ̲OK,SEC ̲WAR ̲TIM)
USER ̲FCT? - T.SUPRESSION = FALSE, R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲T̲
KEY ̲ON ̲U ? K̲E̲Y̲ ̲O̲N̲ ̲U̲ ̲T̲
KEY ̲OFF ̲BLOCKED ? K̲E̲Y̲ ̲O̲F̲F̲ ̲B̲L̲O̲C̲K̲E̲D̲ ̲T̲
KEY ̲OFF ̲SYS ̲CON ? K̲E̲Y̲ ̲O̲F̲F̲ ̲S̲Y̲S̲ ̲C̲O̲N̲ ̲T̲
KEY ̲OFF ? K̲E̲Y̲ ̲O̲F̲F̲ ̲T̲
SYSTEM ̲KEY ? T.SUPRESSION = TRUE, R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲T̲
SYSTEM ̲KEY ̲ATT ̲OP ? S̲Y̲S̲T̲E̲M̲ ̲K̲E̲Y̲ ̲A̲T̲T̲ ̲O̲P̲ ̲T̲
NO ̲ACTION ?
ILLEGAL ̲ACTION ? I̲L̲L̲E̲G̲A̲L̲ ̲A̲C̲T̲I̲O̲N̲ ̲T̲
ASSG ̲FALSE ? A̲S̲S̲G̲ ̲F̲A̲L̲S̲E̲ ̲T̲
ASSG ̲STOP ? A̲S̲S̲G̲ ̲S̲T̲O̲P̲ ̲T̲
ASSG ̲REPLY ? A̲S̲S̲G̲ ̲R̲E̲P̲L̲Y̲ ̲T̲
INVALID ̲KEY ? R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲.̲T̲
INVALID ̲ENTRY ? D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲C̲E̲ (INVALID ̲ENTRY)
OTHER? I̲L̲L̲E̲G̲A̲L̲ ̲A̲C̲T̲I̲O̲N̲ ̲T̲
END CASE
END PROCEDURE…86…1 …02… …02… …02… …02… …02…
BLOCK ̲STOP ̲REPLY ̲T? T.REPLY
=
TERMINAL
̲BLOCKED
S̲T̲O̲P̲
̲R̲E̲P̲L̲Y̲
̲T̲
(T.REPLY)
BLOCK ̲STOP ̲REPLY ̲M? T.REPLY
=
TERMINAL
̲BLOCKED
S̲T̲O̲P̲
̲R̲E̲P̲L̲Y̲
̲M̲
(T.REPLY)
F ̲CLOSE ̲REPLY ̲T? T.REPLY
=
SYSTEM
̲CLOSE
S̲T̲O̲P̲
̲R̲E̲P̲L̲Y̲
̲T̲
(T.REPLY)
F ̲CLOSE ̲REPLY ̲M? T.REPLY
=
SYSTEM
̲CLOSE
S̲T̲O̲P̲
̲R̲E̲P̲L̲Y̲
̲M̲
(T.REPLY)
LINE ̲ERROR ̲REPLY ̲T? T.REPLY
=
LINE
̲ERRO
S̲T̲O̲P̲
̲R̲E̲P̲L̲Y̲
̲T̲
(T.REPLY)
LINE ̲ERROR ̲REPLY ̲M? T.REPLY
=
LINE
̲ERRO
S̲T̲O̲P̲
̲R̲E̲P̲L̲Y̲
̲M̲
(T.REPLY)
OUTPUT ̲TEXT? D̲I̲S̲P̲L̲A̲Y̲
̲R̲E̲S̲P̲O̲N̲C̲E̲
(CONTACT
̲SUPV)
CLEAR ̲SYS ̲LINE? D̲I̲S̲P̲L̲A̲Y̲
̲R̲E̲S̲P̲O̲N̲C̲E̲
(CLEAR
̲TEXT)
PROCEDURE ID ̲CODE ̲PASSWORD ̲ENTRY ̲T
BEGIN
C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
T.REPLY = TRUE
R̲E̲A̲D̲ ̲S̲Y̲S̲T̲E̲M̲ ̲L̲I̲N̲E̲ (2, ID ̲CODE ̲SIZE, PASSWORD ̲SIZE)
(T.ID ̲CODE, T.USER ̲PASSWORD)
T.TERMINAL ̲PROFILE.CAP LOGAND SUPV NE NUL?
C̲H̲E̲C̲K̲ ̲I̲D̲ ̲C̲O̲D̲E̲ (T.ID ̲CODE) (T.REPLY)
T.REPLY EQ FALSE ? D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲(INVALID
̲ENTRY)
C̲H̲E̲C̲K̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲(T.USER ̲PASSWORD)(T.USER ̲PROFILE,
T.REPLY)
T.REPLY EQ FALSE? D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ (INVALID ̲ENTRY)
F̲I̲N̲D̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲I̲E̲S̲ () (T.CAPABILITIES, T.CAP)
T.CAPABILITIES EQ NONE ? NO ̲CAPABILITIES
S̲E̲N̲D̲ ̲L̲O̲G̲ ̲R̲E̲P̲O̲R̲T̲ (K1,E ̲SIGN ̲ON)T.STATE=UNATTENDED
̲OPERATION
T.CAPABILITIES EQ MORE? DISPLAY ̲TERMINAL ̲FORMAT(HIGH
̲LEVEL)
T.SUPRESSION
=
FALSE
R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲
̲T̲
T.STATE =
SION ̲YES
SET ̲DAMOS ̲LINE ̲PROFILE (CMD ̲FORMAT)
S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲ ̲(̲T̲.̲C̲A̲P̲)̲ ̲(̲T̲.̲R̲E̲P̲L̲Y̲)̲
T.STATE =ATTENDED ̲OPERATION
END
PROCEDURE THIRD ̲ID ̲CODE ̲PASSWORD ̲ENTRY ̲T
BEGIN
T.REPLY = TRUE
CANCEL ̲TIME ̲OUT ̲T
READ ̲SYSTEM ̲LINE (2, ID ̲CODE ̲SIZE, PASSWORD ̲SIZE, TRUE)
(T.ID ̲CODE, T.USER ̲PASSWORD)
T.TERMINAL ̲PROFILE.CAP LOGAND SUPV NE NUL?
C̲H̲E̲C̲K̲ ̲I̲D̲ ̲C̲O̲D̲E̲ () (T.REPLY)
T.REPLY EQ FALSE? INVALID ̲SION
C̲H̲E̲C̲K̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ () (T.REPLY)
T.REPLY EQ FALSE ? INVALID ̲SION
FIND ̲CAPABILITIES () (T.CAPABILITIES, T.CAP)
T.SIGN = ON
S̲E̲T̲ ̲U̲S̲E̲R̲ ̲P̲R̲O̲F̲I̲L̲E̲ ̲S̲I̲G̲N̲ ̲T̲O̲(T.SIGN, T.IDL̲CODE)
T.CAPABILITIES EQ NONE ? N̲O̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲I̲E̲S̲
S̲E̲N̲D̲ ̲L̲O̲G̲ ̲R̲E̲P̲O̲R̲T̲ (K1 ̲E ̲SIGN ̲ON) T.STATE=UNATTENDED ̲OPERATION
T.CAPABILITIES EQ MORE ? DISPLAY ̲TERMINAL ̲FORMAT(HIGH
̲LEVEL)
T.SUPRESSION = FALSE
RECEIVE ̲CONTROL ̲T
T.STATE=SION ̲YES
START ̲USER (T.CAP)
T.STATE = ATTENDED ̲OPERATION
END
PROCEDURE RE ̲SE ̲IN ̲REPLY ̲T
BEGIN
C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
R̲E̲A̲D̲ ̲S̲Y̲S̲T̲E̲M̲ ̲L̲I̲N̲E̲ (1, PASSWORD ̲SIZE, NIL, TRUE)
(T.USER ̲PASSWORD)
C̲H̲E̲C̲K̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ (T.USER ̲PASSWORD)) (T.REPLY)
T.REPLY NE EXECUTION ̲OK ? D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ (INVALID ̲ENTRY)
S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲T̲E̲P (T.REPLY)
T.STATE=ATTENDED ̲OPERATION
END
PROCEDURE THIRD ̲RE ̲SE ̲IN ̲REPLY ̲T
BEGIN
C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
R̲E̲A̲D̲ ̲S̲Y̲S̲T̲E̲M̲ ̲L̲I̲N̲E̲ (1, PASSWORD ̲SIZE, NIL, TRUE)
(T.USER ̲PASSWORD)
C̲H̲E̲C̲K̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ (T.USER ̲PASSWORD) (T.REPLY)
T.REPLY NE EXECUTION ̲OK? I̲N̲V̲A̲L̲I̲D̲ ̲R̲E̲L̲ ̲S̲E̲C̲ ̲I̲N̲T̲ (SEC ̲WAR
̲BY ̲REL)
S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲T̲E̲P̲ (T.REPLY)
T.STATE = ATTENDED ̲OPERATION
END
PROCEDURE SEC ̲CODE ̲ENTRY ̲T
BEGIN
C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
R̲E̲A̲D̲ ̲S̲Y̲S̲T̲E̲M̲ ̲L̲I̲N̲E̲ (1,W ̲CODE ̲SIZE,NIL,TRUE)
(T.SEC ̲CODE)
C̲H̲E̲C̲K̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲ ̲C̲O̲D̲E̲ (T.SEC ̲CODE) (T.REPLY)
T.REPLY? NE EXECUTION ̲OK? D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲C̲E̲) INVALID ̲ENTRY)
S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲M̲M̲O̲N̲ (T.REPLY)
S̲E̲N̲D̲ ̲L̲O̲G̲ ̲R̲E̲P̲O̲R̲T̲ (I2,E ̲SEC ̲WARNING ̲OK)
T.STATE = ATTENDED ̲OPERATION
END
PROCEDURE THIRD ̲SEC ̲CODE ̲ENTRY ̲T
BEGIN
C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
R̲E̲A̲D̲ ̲S̲Y̲S̲T̲E̲M̲ ̲L̲I̲N̲E̲ (1, W ̲CODE ̲SIZE,NIL,TRUE)
(T.SEC ̲CODE)
C̲H̲E̲C̲K̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲ ̲C̲O̲D̲E̲ ̲(T.SEC ̲CODE) (T.REPLY)
T.REPLY?NE EXECUTION ̲OK? I̲N̲V̲A̲L̲I̲D̲ ̲S̲E̲C̲ INTERROGATION ̲OR
̲WARNING
(I2,E ̲SEC ̲WARNING ̲NOT
̲OK)
SEC ̲WAR ̲SEC ̲COD)
S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲M̲M̲O̲N̲ (T.REPLY)
S̲E̲N̲D̲ ̲L̲O̲G̲ ̲R̲E̲P̲O̲R̲T̲ (I2,E ̲SEC ̲WARNING ̲OK)
T.STATE = ATTENDED ̲OPERATION
END
PROCEDURE PASSWORD ̲ENTRY ̲T
BEGIN
C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
R̲E̲A̲D̲ ̲S̲Y̲S̲T̲E̲M̲ ̲L̲I̲N̲E̲ (1, PASSWORD ̲SIZE,NIL,TRUE)
(T.USER ̲PASSWORD)
C̲H̲E̲C̲K̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ (T.USER ̲PASSWORD) (T.REPLY)
T.REPLY NE EXECUTION ̲OK? D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲C̲E̲)(INVALID
̲
ENTRY)
SEND ̲LOG ̲REPORT (I1,E ̲SEC ̲INT ̲OK)
T.BOTH EQ TRUE T.STATE=SEC ̲WAR ̲REPLY ̲1
S ̲WARNING ̲CMD ̲T
SEND ̲REPLY ̲TO ̲MMON (T.REPLY)
T.STATE = ATTENDED ̲OPERATION
END
PROCEDURE THIRD ̲PASSWORD ̲ENTRY ̲T
BEGIN
C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
R̲E̲A̲D̲ ̲S̲Y̲S̲T̲E̲M̲ ̲L̲I̲N̲E̲ (1,PASSWORD ̲SIZE,NIL,TRUE)
(T.USER ̲PASSWORD)
C̲H̲E̲C̲K̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲ (T.USER ̲PASSWORD) (T.REPLY)
T.REPLY? NE ̲EXECUTION ̲OK? INVALID ̲SEC ̲INTERROGATION
OR ̲WARNING
(I1,E ̲SEC ̲INT ̲NOT ̲OK,
SEC ̲INT ̲PAS)
SEND ̲LOG ̲REPORT (I1,E ̲SEC ̲INT ̲OK)
T.BOTH EQ TRUE ? T.STATE = SEC ̲WAR ̲REPLY ̲1
S̲.̲W̲A̲R̲N̲I̲N̲G̲ ̲C̲M̲D̲ ̲T̲
S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲M̲M̲O̲N̲ (T.REPLY)
T. STATE = ATTENDED ̲OPERATION
END
PROCEDURE SION ̲TIME ̲OUT ̲T
BEGIN
T.TERMINAL ̲PROFILE.CAP EQ SUPV ?
B̲L̲O̲C̲K̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
D̲I̲S̲P̲L̲A̲Y̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲F̲O̲R̲M̲A̲T̲
(K2)
T.STATE = BLOCKED T.STATE=UNATTENDED ̲OPERATION
S̲E̲N̲D̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲ ̲R̲E̲P̲O̲R̲T̲ ̲(̲S̲I̲O̲N̲)̲
END
PROCEDURE REL ̲SEC ̲INT ̲CMD ̲T
BEGIN
SEND ̲STATISTICS (REL ̲SECURITY)
D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ (ENTER ̲YOUR ̲PASSWORD)
R̲E̲Q̲U̲E̲S̲T̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
END
PROCEDURE S ̲INTERROGATION ̲CMD ̲T
BEGIN
S̲E̲N̲D̲ ̲S̲T̲A̲T̲I̲S̲T̲I̲C̲S̲ (S ̲INTERROGATION)
D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ (ENTER ̲YOUR ̲PASSWORD)
R̲E̲Q̲U̲E̲S̲T̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
END
…86…1 …02… …02… …02… …02…
PROCEDURE S ̲WARNING ̲CMD ̲T
BEGIN
D̲I̲S̲P̲L̲A̲Y̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲F̲O̲R̲M̲A̲T̲ (WARNING ̲FORMAT)
S̲E̲N̲D̲ ̲S̲T̲A̲T̲I̲S̲T̲I̲C̲S̲ (S ̲WARNING)
D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ (ENTER ̲YOUR ̲SECURITY ̲CODE)
T.BOTH = FALSE
REQUEST ̲TIME ̲OUT ̲T
END
PROCEDURE S ̲BOTH ̲CMD ̲T
BEGIN
T.BOTH = TRUE
S ̲INTERROGATION ̲CMD ̲T
END
PROCEDURE KEY ̲ON ̲T
T.KEY ̲BUF.KEY = T.TNO
T.TERMINAL ̲PROFILE ̲KEY ̲STATUS = ON
UPDATE ̲ENTRY (TERMINAL ̲TABLE,T.SEND ̲BUF,
T.KEY ̲BUF,TEM ̲TERM ̲MASK,
T.TERMINAL ̲PROFILE.CURRENT ̲CAP)
D̲I̲S̲P̲L̲A̲Y̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲F̲O̲R̲M̲A̲T̲ (K1)
END KEY ̲ON ̲T…86…1 …02… …02… …02… …02…
PROCEDURE KEY ̲OFF ̲BLOCKED ̲T
T.TERMINAL ̲PROFILE.CURRENT ̲CAP = 0
T.TERMINAL ̲PROFILE.KEY ̲STATUS = OFF
T.TERMINAL ̲PROFILE.SIGN = OFF
T.KEY ̲BUF.KEY = T.TNO
UPDATE ̲ENTRY (TERMINAL ̲TABLE,T.SEND ̲BUF,T.KEY ̲BUF,
TEM ̲TERM ̲MASK,T.TERMINAL ̲PROFILE.CURRENT
̲
CAP)
END KEY ̲OFF ̲BLOCKED ̲T
PROCEDURE KEY ̲OFF ̲SYS ̲CON.T
T.STATE = BLOCKED
T.TERMINAL ̲PROFILE.CAP LOGAND SUPV NE NUL?
T.STATE = UNMANNED
T.TERMINAL ̲PROFILE.BLOCKED = TRUE
C̲U̲T̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲
K̲E̲Y̲ ̲O̲F̲F̲ ̲B̲L̲O̲C̲K̲E̲D̲ ̲T̲
T.USER ̲PROFILE.USER ̲ID = NUL
SEND ̲SECURITY ̲REPORT (SEC.KEY.NOT ̲SIGN.OFF)
END KEY ̲OFF ̲SYS ̲CON ̲T…86…1 …02… …02… …02… …02…
PROCEDURE KEY ̲OFF ̲T
T.TERMINAL ̲PROFILE.CAP LOGAND SUPV NE NUL?
STOP ̲ACTIVE ̲SUPV ̲TERMINAL
T.STATE = UNMANNED
BLOCK ̲ACTIVE ̲TERMINAL
T.STATE = BLOCKED
S̲E̲N̲D̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲ ̲R̲E̲P̲O̲R̲T̲ (SEC ̲KEY ̲NOT ̲SIGN ̲OFF)
END KEY ̲OFF ̲T
PROCEDURE SYSTEM ̲KEY ̲ATT ̲OP ̲T
S̲T̲O̲P̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲ (STOP ̲USER)
G̲E̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲C̲A̲P̲
D̲I̲S̲P̲L̲A̲Y̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲F̲O̲R̲M̲A̲T̲ (HIGH ̲LEVEL)
T.SUPPRESSION = FALSE
R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲T̲
END SYSTEM ̲KEY ̲ATT ̲OP ̲T
PROCEDURE ASSG ̲FALSE ̲T
BEGIN
T.KEY ̲BUF.KEY = T.TNO
T.TERMINAL ̲PROFILE.ASSG = FALSE
UPDATE ̲ENTRY (TERMINAL ̲TABLE, T.SEND ̲BUF, T.KEY
̲BUF,
T.ASSG ̲MASK,T.TERMINAL ̲PROFILE.ASSG)
T.I = 1
T.TNO NE 1?
T.I = 2
WAIT ̲OPSEM (SHORT ̲OS) (T ̲OP)
T ̲OP.CMD = ASSG ̲REMOVED
T ̲OP.CMD ̲TYPE = TEMCO ̲CMD
SIGNAL ̲OPSEM (VDU ̲OS(T.I), T ̲OP)
END
PROCEDURE ASSG ̲STOP ̲T
BEGIN
T.CAP LOGAND SUPV EQ NULL ? ASSG ̲FALSE ̲T
STOP ̲TERMINAL ̲SUBPROCESS
T.TERMINAL ̲PROFILE.ASSG = TRUE
T.KEY ̲BUF.KEY = T.TNO
UPDATE ̲ENTRY (TERMINAL ̲TABLE, T.SEND ̲BUF, T.KEY
̲BUF,
T.ASSG ̲MASK,T.TERMINAL ̲PROFILE.ASSG)
T.I = 1
T.TNO NE 1?
T.I=2
WAIT ̲OPSEM (SHORT ̲OS) (T ̲OP)
T ̲OP.CMD =ASSG ̲REMOVED
T ̲OP.CMD ̲TYPE = TEMCO ̲CMD
SIGNAL ̲OPSEM (VDU ̲OS(T.I), T ̲OP)
GET ̲TERMINAL ̲CAP
DISPLAY ̲TERMINAL ̲FORMAT (HIGH ̲LEVEL)
RECEIVE ̲CONTROL ̲T
END
PROCEDURE ASSG ̲REPLY ̲T
BEGIN
T.KEY ̲BUF.KEY = T.TNO
T.TERMINAL ̲PROFILE.ASSG = TRUE
U̲P̲D̲A̲T̲E̲ ̲E̲N̲T̲R̲Y̲ (TERMINAL ̲TABLE,T.SEND ̲BUF, T.KEY
̲BUF,
T ̲ASSG ̲MASK,T.TERMNAL ̲PROFILE.ASSG)
G̲E̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲C̲A̲P̲
D̲I̲S̲P̲L̲A̲Y̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲F̲O̲R̲M̲A̲T̲ (HIGH ̲LEVEL)
R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲T̲
END…86…1 …02… …02… …02… …02… …02… …02… …02… …02…
PROCEDURE STOP ̲REPLY ̲M (T.REPLY)
T.TERMINAL ̲PROFILE.CAP LOGAND SUPV NE NUL?
S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲M̲M̲O̲N̲ (T.REPLY)
C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
CASE T.INPUT OF
LINE ̲ERROR? S̲T̲O̲P̲ ̲S̲I̲O̲N̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲T̲
BLOCK ̲TERMINAL? B̲L̲O̲C̲K̲ ̲T̲E̲R̲M̲ ̲T̲
CLOSE ̲FINAL? F ̲CLOSE ̲DOWN ̲T
END CASE
END
PROCEDURE STOP
̲REPLY
̲T
)T.REPLY)
T.TERMINAL ̲PROFILE.CAP LOGAND SUPV NE NUL?
S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲M̲M̲O̲N̲T.REPLY)
C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
CASE ̲T.INPUT OF
LINE ̲ERROR? S̲T̲O̲P̲ ̲S̲I̲O̲N̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲T̲
BLOCK ̲TERMINAL? B̲L̲O̲C̲K̲ ̲T̲E̲R̲M̲ ̲T̲
CLOSE ̲FINAL? F̲ ̲C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲ ̲T̲
END CASE
END STOP ̲REPLY ̲T
4.2.5.5 C̲O̲M̲M̲O̲N̲ ̲S̲U̲B̲P̲A̲C̲K̲A̲G̲E̲ ̲D̲A̲T̲A̲
STATE ̲TYPE = (INITIAL,BLOCKED,
UNATTENDED ̲OPERATION,
SION ̲REPLY ̲1, SION ̲REPLY ̲2, SION ̲REPLY
̲3,
SION ̲OK, ATTENDED ̲OPERATION, WAIT ̲ASSG
̲REPLY,
REL ̲SEC ̲REPLY ̲1, REL ̲SEC ̲REPLY ̲2, REL ̲SEC
̲REPLY ̲3,
SEC ̲INT ̲REPLY ̲1, SEC ̲INT ̲REPLY ̲2, SEC ̲INT
̲REPLY ̲3,
SEC ̲WAR ̲REPLY ̲1, SEC ̲WAR ̲REPLY ̲2 ,SEC ̲WAR
̲REPLY ̲3,)
INPUT ̲TYPE =(T ̲SET ̲ACCESS ̲PROFILES, T ̲START ̲COR,
T ̲CLOSE ̲INITIAL, T ̲CLOSE ̲FINAL, T ̲LINE
̲ERROR, T ̲START ̲SUPV, T ̲STOP ̲SUPV,
T ̲TERMINAL ̲PROFILE ̲CHANGE, T ̲BLOCK ̲TERMINAL,
T ̲UNBLOCK ̲TERMINAL,
SYSTEM ̲KEY, T ̲KEY ̲ON, T ̲KEY ̲OFF ̲
SIOF, T ̲SION, T ̲ASSG, T ̲SUPV, T ̲MDCO, T
̲MSOS, T ̲USER, T ̲INPUT ̲SYSTEM ̲LINE, T ̲INVALID
̲INDATA, T ̲INVALID ̲KEY, T ̲INVALID ̲ENTRY
T ̲TIME ̲OUT,
T ̲REL ̲SEC ̲INT,
T ̲S-INTERROGATION, T ̲S ̲WARNING, T ̲S ̲BOTH
T ̲REMOVE ̲ASSG ̲CMD ̲RECEIVED,
T ̲REMOVE ̲ASSG ̲REPLY ̲RECEIVED)
ACTION ̲TYPE (SET ̲PROFILES, TEMCO ̲INIT, I ̲CLOSE ̲DOWN,
F ̲ CLOSE
̲DOWN
̲OFF,
F
̲CLOSE
̲DOWN
̲ON,
F
̲CLOSE
̲DOWN,
STOP
̲TERMINAL,
STOP
̲SION
̲TERMINAL,
TERMINAL ̲PROFILE ̲CHANGED, BLOCK ̲TERM, BLOCK
̲STOP ̲TERM, UNBLOCK ̲B, UNBLOCK ̲U ̲B, SIOF
̲K2, SIOF, SION ̲ENTRY, SEND ̲REMOVE ̲ASSG,
START ̲SUPV ̲CMD, START ̲MDCO ̲CMD, START ̲MSOS
̲CMD, START ̲USER ̲CMD, ID ̲CODE ̲PASSWORD ̲ENTRY,
THIRD ̲ID ̲CODE ̲PASSWORD ̲ENTRY,
RE ̲SE ̲IN ̲REPLY, THIRD ̲RE ̲SE ̲IN ̲REPLY
SEC ̲CODE ̲ENTRY, THIRD ̲SEC ̲CODE ̲ENTRY,
PASSWORD ̲ENTRY, THIRD ̲PASSWORD ̲ENTRY,
SION ̲TIME ̲OUT, REL ̲SE ̲INT ̲TIME ̲OUT, REL
̲SEC ̲INT ̲CMD,
S ̲INTERROGATION ̲CMD, S ̲WARNING ̲CMD, S ̲BOTH
̲CMD,
KEY ̲ON ̲B ̲U, KEY ̲ON ̲U, KEY ̲OFF ̲BLOCKED,
KEY ̲OFF ̲SYS ̲CONN,
KEY ̲OFF, SYSTEM ̲KEY, SYSTEM ̲KEY ̲ATT ̲OP,
ILLEGAL ̲ACTION, NO ̲ACTION,
RECEIVE ̲CONTROL, INVALID ̲ENTRY,
ASSG ̲FALSE ̲T, ASSG ̲STOP ̲T, ASSG ̲REPLY ̲T)
COMMON
TYPE
ACTION ̲STATE =
RECORD
ACTION : ACTIONS
NEW ̲STATE : STATES
END
VAR T.ACTION ̲TABLE = ARRAY(STATE ̲TYPE) *(INPUT ̲TYPE)
OF
ACTION
̲STATE
VAR T.ACTION ̲TABLE , T.STATE ̲TABLE
T.STATE : STATE ̲TYPE
T.INPUT : INPUT ̲TYPE
T.ACTION : ACTION ̲TYPE
T.CMD : INTEGER
T.SUPV ̲QEL ̲REF : QEL ̲REFERENCE
T ̲OP : SHORT ̲OP ̲TYPE
T.TIME ̲TO ̲CLOSE : TIME ̲FORMAT
T.TEP ̲QEL ̲REF : QEL ̲REFERENCE
T.MMON ̲REF : INTEGER
T.ATTRIBUTES : QEL ̲ATTRIBUTES
T.CC : INTEGER
T.CLOSE ̲DOWN : BOOLEAN
T.RECEIVE ̲KEYS ̲ON : BOOLEAN
T.ACCESS ̲PROFILE : ACCESS ̲PROFILE
T.TERMINAL ̲PROFILE : TERMINAL ̲PROFILE
T.REPLY ̲Q : QUEUE ̲REFERENCE
T.REPORT ̲Q : QUEUE ̲REFERENCE
T.KEY ̲BUF : KEY ̲BUF ̲TYPE
T.SEND ̲BUF : TMS ̲PARAMS
T.SYSTEM ̲CONTR ̲FDCB : FDCB ̲INDEX
T.SYSTEM ̲DATA ̲FDCB : FDCB ̲INDEX
T.FORMAT ̲CONTR ̲FDCB:FDCB ̲INDEX
4.2.5.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.5.6.1 R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲T̲
4.2.5.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̲
The procedure requests a receive-control-key from IOS.
The reply from IOS is sent to the operation semaphore
VDU ̲OS. If the booclear T.SUPRESSION is TRUE the characters
entered are not displayed.
4.2.5.6.1.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RECEIVE ̲CONTROL ̲T (T.SUPPRESSION: BOOLEAN)
b) RECEIVE ̲CONTROL ̲T (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 Suppression
R 6 link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
4.2.5.6.1.3 D̲A̲T̲A̲
VAR T.RECEIVE ̲KEY ̲ON : BOOLEAN (TEMCO ̲COMMON)
VAR T ̲OP : SHORT ̲OS ̲TYPE (SSC ̲COMMON)
VAR T.SUPPRESSION: BOOLEAN
VAR T.CLEAR ̲TEXT = ARRAY (1..4) OF CHAR…86…1 …02… …02…
…02… …02… …02…
4.2.5.6.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE RECEIVE ̲CONTROL ̲T (T.SUPPRESSION:BOOLEAN)
BEGIN
BYTE ̲SIZE = T.CLEAR ̲TEXT (2)
T.BLE.BYTE ̲SIZE.BYTE ̲SIZE
T.BLE.ADDRESS = T ̲CLEAR ̲TEXT
CASE FIELDS ̲OUT(T.SYSTEM ̲SPLIT, T ̲SYSTEM ̲FIELDS(1)
T.BLE, 1, BYTE ̲SIZE)(CC): ERROR
̲OK
ERROR? ANALYSE ̲ERROR (CC,1) VDU ̲SPLIT ̲FAILED)
END CASE
T.SUPRESSION EQ FALSE? T ̲ATTR = VDU ̲NON ̲ATTR
T ̲ATTR = VDU ̲NON ̲DISPLAY
CASE CHANGE ̲FIELD ̲ATTR (T.SYSTEM ̲SPLIT,T.SYSTEM ̲FIELD
(1)
T ̲ATTR)(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC,1, VDU ̲SPLIT ̲FAILED)
END CASE
T.RECEIVE ̲KEY ̲ON EQ TRUE ?
WAIT ̲OPSEM (SHORT ̲OS) (T ̲OP)
T.INIT ̲OP = T ̲OP
CASE INIT ̲RECEIVE ̲CONTROL(T.SYSTEM ̲SPLIT,T ̲
OP)(T.KEY,T.CC)
:ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC, 1) VDU ̲SPLIT ̲FAILED)
(RECEIVE ̲CONTROL ̲P,CC)
END CASE
ASSOCIATE (VDU ̲OS(T.TNO), T ̲OP)
T.RECEIVE ̲KEY ̲ON = TRUE
END
4.2.5.6.2 R̲E̲Q̲U̲E̲S̲T̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
4.2.5.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̲
The procedure requests a 3 minutes time out from the
timer monitor. The reply from TMON is sent to an operation
semaphore VDU ̲OS in an operation.
4.2.5.6.2.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) REQUEST ̲TIME ̲OUT ̲T
b) REQUEST ̲TIME ̲OUT ̲T (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
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.2.3 D̲A̲T̲A̲
VAR T.REQUEST ̲TIME : REQUEST ̲TIME (TEMCO COMMON)
VAR T.TNO : LOGICAL ̲TERMINAL ̲NUMBER ̲TYPE (SSC COMMON)
VAR T.EVENT ̲ID : INTEGER (TEMCO ̲COMMON)
VAR T ̲OP : SHORT ̲OS ̲TYPE (SSC COMMON)
4.2.5.6.2.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE REQUEST ̲TIME ̲OUT ̲T
BEGIN
T.EVENT ̲ID EQ 10 ? T.EVENT ̲ID = 0
T.EVENT ̲ID = T.EVENT ̲ID + 1
T.REQUEST ̲TIME.QUEUE.MAIN ̲QUEUE = VDU ̲RQ
T.REQUEST ̲TIME.QUEUE.SUB ̲QUEUE = T.TNO
T.REQUEST ̲TIME:TIME ̲OUT = ONCE
T.REQUEST ̲TIME.FORMAT = MINUTES
T.REQUEST ̲TIME.MINUTES = 3
T.REQUEST ̲TIME.EVENT ̲ID = T.EVENT ̲ID
WAIT ̲OPSEM (SHORT ̲OS) (T ̲OP)
T ̲OP.CMD ̲TYPE = TMON ̲CMD
INIT ̲REQUEST ̲TIMEOUT (T.REQUEST ̲TIME, T ̲OP) (CC)
:ERROR
̲OK
ASSOCIATE (VDU ̲OS(T.TNO), T ̲OP)
END
4.2.5.6.3 C̲A̲N̲C̲E̲L̲ ̲T̲I̲M̲E̲ ̲O̲U̲T̲ ̲T̲
4.2.5.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̲
A previous requested timeout is cancelled.
4.2.3.6.3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CANCEL ̲TIME ̲OUT ̲T
b) CANCEL ̲TIME ̲OUT ̲T (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 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.3.3 D̲A̲T̲A̲
VAR T.REQUEST ̲TIME : REQUEST ̲TIME (TEMCO ̲COMMON)
VAR T.TNO : LOGICAL ̲TERMINAL ̲NUMBER ̲TYPE (SSC ̲COMMON)
VAR T ̲OP : SHORT ̲OS ̲TYPE (SSC COMMON)
VAR T.CC : INTEGER
4.2.5.6.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE CANCEL ̲TIME ̲OUT ̲T
BEGIN
WAIT ̲OPSEM (SHORT ̲OS) (T ̲OP)
T ̲OP.CMD ̲TYPE = TMON ̲CMD
INIT ̲CANCEL ̲TIMEOUT (T.REQUEST ̲TIME, T ̲OP) (CC)
:ERROR
̲OK
ASSOCIATE (VDU ̲OS (T.TNO), T ̲OP)
END
4.2.5.6.4 G̲E̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲C̲A̲P̲
4.2.5.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̲
The terminal and the user capabilities are logical
anded. The result (bitmask) gives the USER, MDCO, MSOS
capabilities. If the terminal can be assigned as supervisor
terminal and the SUPV bit is set the capability ASSG
is given. If the terminal is assigned as supervisor
terminal and the SUPV bit is set the capability SUPV
is given.
4.2.5.6.4.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲TERMINAL ̲CAP
b) GET ̲TERMINAL ̲CAP (R6)
C̲a̲l̲l̲ ̲r̲e̲g̲i̲s̲t̲e̲r̲
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
4.2.5.6.4.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
a2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TERMINAL ̲COROUTINE ̲RECORD
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
T.T ̲SUPV
T.T ̲ASSG
T.T ̲MDCO
T.T ̲MSOS
T.T ̲USER
T.TERMINAL ̲PROFILE. CAP
T.TERMINAL ̲PROFILE.ASSG
T.USER ̲PROFILE.CAP
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
4.2.5.6.4.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE GET ̲TERMINAL ̲CAP
T.ACTUAL ̲CAP = T.TERMINAL ̲PROFILE.CAP LOGAND
T.USER ̲PROFILE.CAP
T.RESTART ̲MODE EQ TRUE? T.ACTUAL ̲CAP = T.ACTUAL ̲CAP
LOGAND
SUPV
T.ACTUAL ̲CAP LOGAND USER EQ 0 ? T ̲T.USER = "N"
T.T ̲USER = "Y"
T.ACTUAL ̲CAP LOGAND MDCO EQ 0 ? T ̲T.MDCO = "N"
T.T ̲MDCO = "Y"
T.ACTUAL ̲CAP LOGAND MSO EQ 0 ? T.T ̲MSOS = "N"
T.T ̲MSOS = "Y"
T.ACTUAL ̲CAP LOGAND SUPV EQ 0 ? T.T ̲SUPV="N",
T.T ̲ASSG = "N"
T.TERMINAL ̲PROFILE.ASSG EQ TRUE ? T.T ̲SUPV = "Y",
T.T ̲ASSG = "N"
T.T ̲SUPV = "N", T.T ̲ASSG = "Y"
END
4.2.5.6.5 D̲I̲S̲P̲L̲A̲Y̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲F̲O̲R̲M̲A̲T̲
4.2.5.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̲
The procedure displays the specified format and fills
out the fields with the actual data, i.e.:
- time of day
- transaction id
- warning text
- high level capability.
4.2.5.6.5.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DISPLAY ̲TERMINAL ̲FORMAT (T ̲FORMAT ̲ID:T ̲FORMATS)
b) DISPLAY ̲TERMINAL ̲FORMAT (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̲
R 4 T ̲FORMAT ̲ID
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
4.2.5.6.5.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
IOC ̲RECORD
TRANSACTION ̲ID ̲TYPE
DTG ̲TYPE
a2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TERMINAL ̲COROUTINE ̲RECORD
T ̲K1 ̲FIELDS
T ̲K2 ̲FIELDS
T ̲SSC ̲WARNING ̲FIELDS
HIGH ̲LEVEL ̲FIELDS
SSC ̲WARNING ̲TEXT
T ̲FORMAT ̲ID
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
T.BLE
T.FORMAT ̲SPLIT
T.TRANSACTION ̲ID
DTG ̲SIZE =
IOC ̲HEAD ̲SIZE
TRANSACTION ̲ID ̲SIZE
SECURITY ̲MES ̲SIZE
HIGH ̲LEVEL ̲TEXT ̲SIZE
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
4.2.5.6.5.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
The procedure contains the main procedure (a) DISPLAY
̲TERMINAL ̲FORMAT and the four utility procedures:
- SET ̲K1 ̲DATA (b)
- SET K2 ̲DATA (c)
- SET ̲WARNING ̲TEXT (d)
- HIGH ̲LEVEL ̲DATA (e)
a) Procedure DISPLAY ̲TERMINAL ̲FORMAT
Narrative:
Gets the actual format via the Format Handler
and calls one of the utility procedures for
building the fields records. Output the fields.
Flowgram: Ref. fig. 4.2.5.6.5.4.a-1
b) P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲T̲ ̲K̲1̲ ̲D̲A̲T̲A̲
Narrative:
Gets the time of day via the TMON and puts
on a IOC header.
Flowgram: Ref. fig. 4.2.5.6.5.4.b-1
c) P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲T̲ ̲K̲2̲ ̲D̲A̲T̲A̲
Narrative:
The transaction ID is converted and loaded
into an IOC report. The time of day is copied
into the next IOC record.
Flowgram: Ref. fig. 4.2.5.6.5.4.c-1
d) P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲T̲ ̲W̲A̲R̲N̲I̲N̲G̲ ̲T̲E̲X̲T̲
Narrative:
The WARNING ̲TEXT (system parameter) is requested
from TMP.
Flowgram: Ref. fig. 4.2.5.6.5.4.d-1
e) P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲H̲I̲G̲H̲ ̲L̲E̲V̲E̲L̲ ̲D̲A̲T̲A̲
Narrative:
The capabilities for the user signed-on are
loaded into IOC records.
Flowgram: Ref. fig. 4.2.5.6.5.4.e-1
PROCEDURE DISPLAY ̲TERMINAL ̲FORMAT (T ̲FORMAT ̲ID)
GET ̲FORMAT (T.SYSTEM ̲SPLIT, FORMAT ̲ID) (CC) :ERROR ̲OK
CASE T ̲FORMAT ̲ID OF
K 1 ? S̲E̲T̲ ̲K̲1̲ ̲D̲A̲T̲A̲ ( ) (TEXT ̲BUFFER,FIELD ̲LIST,
NO ̲OF ̲FIELDS, BYTE
̲SIZE)
K 2 ? S̲E̲T̲ ̲K̲2̲ ̲D̲A̲T̲A̲ ( ) (TEXT ̲BUFFER, FIELD ̲LIST,
NO ̲OF ̲FIELDS, BYTE
̲SIZE)
WARNING ̲FORMAT ? S̲E̲T̲ ̲W̲A̲R̲N̲I̲N̲G̲ ̲T̲E̲X̲T̲ ( ) TEXT ̲BUFFER,
FIELD ̲LIST, NO ̲OF ̲FIELDS, BYTE
̲SIZE)
HIGH ̲LEVEL ? S̲E̲T̲ ̲H̲I̲G̲H̲ ̲L̲E̲V̲E̲L̲ ̲D̲A̲T̲A̲ ( ) (TEXT ̲BUFFER,
FIELD ̲LIST, NO ̲OF ̲FIELDS, BYTE
̲SIZE)
OTHERS ? SEND ̲GARBLE (INTERNAL)
END CASE
T.BLE.ADDRESS = TEXT ̲BUFFER
T.BLE.BYTE ̲SIZE = BYTE ̲SIZE
CASE FIELDS ̲OUTPUT (T.FORMAT ̲SPLIT, FIELD ̲LIST, T.BLE,
NO ̲OF ̲FIELDS, BYTE ̲SIZE) (CC):ERROR
̲OK
ERROR ? ANALYZE ̲ERROR (CC, 1)VDU ̲SPLIT ̲FAILED)
END CASE
END DISPLAY ̲TERMINAL ̲FORMAT
Fig. 4.2.5.6.5.4.a-1
PROCEDURE SET ̲K1 ̲DATA ( ) (T.TEXT ̲BUFFER, T ̲K1 ̲FIELDS,
NO ̲OF ̲FIELDS, BYTE ̲SIZE)
READ ̲TIME (DTG ̲TYPE) (T.TEXT ̲BUF)
COUNT = DTG ̲SIZE + 1
LOOP
COUNT = COUNT-1
T.TEXT ̲BUF (COUNT+IOC ̲HEAD ̲SIZE)=T.TEXT ̲BUF(COUNT)
COUNT EQ 1 ? EXIT
END LOOP
T.TEXT ̲BUF (1) = "G S"
T.TEXT ̲BUF (2) = DTG ̲SIZE
T.TEXT ̲BUF (3) = DATA ̲FLAG
BYTE ̲SIZE = DTG ̲SIZE + IOC ̲HEAD ̲SIZE
NO ̲OF ̲FIELDS = 1
END SET ̲K1 ̲DATA
Fig. 4.2.5.6.5.4.b-1
PROCEDURE SET ̲K2 ̲DATA ( )(T.TEXT ̲BUFFER, T ̲K2 ̲FIELDS,
NO ̲OF ̲FIELDS, BYTE
̲SIZE)
T.TEXT ̲BUF (1) = "G S"
T.TEXT ̲BUF (2) = TRANSACTION ̲ID ̲SIZE
T.TEXT ̲BUF (3) = DATA ̲FLAG
EQUIVALENCE (T.TRANSACTION ̲ID, R:TRANSACTION ̲ID ̲TYPE)
T.TEXT ̲BUF (4..6) = R.TERMINAL ̲DESIGNATOR (1..3)
CONVERT (R.SERIAL ̲NO) (T.SERIAL ̲NO)
T.TEXT ̲BUF (7..9) = T.SERIAL (3..1)
T.TEXT ̲BUF (10) = "S P"
CONVERT ̲TIME (TO ̲DTG, R.TIME) (T.TEXT ̲BUF (17))
T.TEXT ̲BUF (25) = "G S"
T.TEXT ̲BUF (26) = DTG ̲SIZE
T.TEXT ̲BUF (27) = DATA ̲FLAG
T.TEXT ̲BUF (28..41) = T.TEXT ̲BUF (11..24)
BYTE ̲SIZE = DTG ̲SIZE + TRANSACTION ̲ID ̲SIZE + 2*IOC ̲HEAD ̲SIZE
NO ̲OF ̲FIELDS = 2
END SET ̲K2 ̲DATA
Fig. 4.2.5.6.5.4 c-1
PROCEDURE SET ̲WARNING ̲TEXT ( ) (TEXT ̲BUFFER,
T ̲SSC ̲WARNING ̲FIELDS,
NO ̲OF ̲FIELDS,
BYTE ̲SIZE)
GET ̲SYSTEM ̲PARAMETERS (SECURITY ̲PARAMETER)
(SSC ̲WARNING ̲TEXT)
BYTE ̲SIZE = SECURITY ̲MES ̲SIZE
TEXT ̲BUFFER = SSC ̲WARNING ̲TEST. WARNING ̲TEXT
NO ̲OF ̲FIELDS = 8
END SET ̲WARNING ̲TEXT
Fig. 4.2.5.6.5.4.d-1
PROCEDURE SET ̲HIGH ̲LEVEL ̲DATA ( ) (TEXT ̲BUFFER,
HIGH ̲LEVEL ̲FIELDS,
NO ̲OF ̲FIELDS,
BYTE ̲SIZE)
COUNT = 3
LOOP
COUNT = COUNT + 4
T.TEXT ̲BUF (COUNT+1) = "G S"
T.TEXT ̲BUF (COUNT+2) = 1
T.TEXT ̲BUF (COUNT+3) = DATA ̲FLAG
COUNT EQ 13 ? EXIT
END LOOP
T.TEXT ̲BUF (4) = T.T ̲SUPV
T.TEXT ̲BUF (8) = T.T ̲MDCO
T.TEXT ̲BUF (12) = T.T.MSOS
T.TEXT ̲BUF (16) = T.T ̲USER
BYTE ̲SIZE = HIGH ̲LEVEL ̲TEXT ̲SIZE
NO ̲OF ̲FIELDS = 4
TEXT ̲BUFFER = T.TEXT ̲BUFFER
END SET ̲HIGH ̲LEVEL ̲DATA
Fig. 4.2.5.6.5.4 e-1
4.2.5.6.6 D̲I̲S̲P̲L̲A̲Y̲ ̲C̲L̲O̲S̲I̲N̲G̲ ̲T̲I̲M̲E̲
4.2.5.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̲
The procedure displays the closing time on the system
line of the VDU.
4.2.5.6.6.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DISPLAY ̲CLOSING ̲TIME (TIME:RELATIVE ̲TIME)
b) DISPLAY ̲CLOSING ̲TIME (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̲
R 4 TIME
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
4.2.5.6.6.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TIME ̲FORMAT ̲TYPE,
TIME ̲TYPE,
DTG ̲TYPE
a2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
TERMINAL ̲COROUTINE ̲RECORD
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
T.BLE
T.TEXT ̲BUF
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
T.COUNT : INTEGER
4.2.5.6.6.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE DISPLAY ̲CLOSING ̲TIME
Narrative:
The Timer Monitor is requested for the present
time and the time to close is added. The closing
time is displayed in the load fields of the system
line.
Flowgram:
PROCEDURE DISPLAY ̲CLOSING ̲TIME (TIME:RELATIVE ̲TIME)
READ ̲TIME (TIME ̲TYPE) (T.TEXT ̲BUF)
T.TEXT ̲BUF = T.TEXT ̲BUF + TIME * 60
CONVERT ̲TIME (TO ̲DTG,T.TEXT ̲BUF) (T.TEXT ̲BUF(5))
T.TEXT ̲BUF (1) = "G S"
T.TEXT ̲BUF (2) = DTG ̲SIZE
T.TEXT ̲BUF (3) = DATA ̲FLAG
T.COUNT = 3
LOOP
T.COUNT = COUNT + 1
T.TEXT ̲BUF(COUNT)=T.TEXT ̲BUF(COUNT + 1)
T.COUNT EQ 17 ? EXIT
END LOOP
T.BLE.BYTE ̲SIZE = DTG ̲SIZE + 3
T.BLE.ADDRESS = T.TEXT ̲BUF
CASE FIELDS ̲OUT (T.SYSTEM ̲SPLIT, T.SYSTEM ̲FIELDS (2)
1. DTG ̲SIZE + 3) (CC)
ERROR ? ANALYZE ̲ERROR (CC, 1, VDU ̲SPLIT ̲FAILED)
END CASE
END DISPLAY ̲CLOSING ̲TIME
4.2.5.6.7 D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲
4.2.5.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̲
The procedure displays a response text in the system
line.
4.2.5.6.7.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DISPLAY ̲RESPONSE (TEXT ̲NO : INTEGER)
b) DISPLAY ̲RESPONSE (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̲
R 4 TEXT ̲NO
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
NONE
4.2.5.6.7.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a1) T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
a2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
USER ̲TEXT (const) DBD (responsetext ̲table)
TERMINAL ̲COROUTINE ̲RECORD 4.1.4.7
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
T.TEXT ̲BUF
T.BLE
T.KEY ̲BUF
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
4.2.5.6.7.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲
Narrative
The TMP is requested for the specified text string.
The Text string is via the Format Handler displayed
on the system line of the VDU.
Flowgram:
PROCEDURE DISPLAY ̲RESPONSE (TEXT ̲NO)
T.KEY ̲BUF.KEY= USER ̲TEXT + TEXT ̲NO
SEARCH ̲ENTRY(RESPONSE ̲TEXT ̲TABLE, T.KEY ̲BUF, ALLMASK.
T.SEND ̲BUF) (T.TEXT ̲BUF)
BYTE ̲SIZE = T.TEXT ̲BUF (2) + 3
T.BLE.BYTE ̲SIZE = BYTE ̲SIZE
T.BLE:ADDRESS = T.TEXT ̲BUF
CASE FIELDS ̲OUT (T.SYSTEM ̲SPLIT, T.SYSTEM ̲FIELD (1),
T.BLE, 1, BYTE ̲SIZE) (CC)
ERROR ? ANALYZE ̲ERROR (CC,1 VDU ̲SPLIT ̲FAILED)
END CASE
END DISPLAY
4.2.5.6.8 S̲E̲N̲D̲ ̲C̲O̲M̲M̲A̲N̲D̲
4.2.5.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̲
The procedure sends a command to a TERMINAL subprocess.
A reply from the subprocess is awaited but is subject
to timeout.
4.2.5.6.8.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲COMMAND (T.CMD:INTEGER) (T.REPLY:BOOLEAN)
b) SEND ̲COMMAND (R5, R6) (R5)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 COMMAND
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 reply from the TERMINAL subprocess.
4.2.5.6.8.3 D̲A̲T̲A̲
T̲E̲M̲C̲O̲ ̲C̲O̲M̲M̲O̲N̲
VAR T.CMD : INTEGER
T.REPLY : BOOLEAN
T.CMD ̲Q : QUEUE ̲REFERENCE
T.TIME : SECONDS
T.WRK : ARRAY (1..16) OF INTEGER
T.ATT : QEL ̲ATTRIBUTES
T.QEL : QEL ̲REFERENCE
T.SUBQ : SUBQUEUE ̲INDEX
T.CC : INTEGER
T.SEND ̲PARAMS : SEND ̲PARAMS ̲TYPE
T.STATE : STATE ̲TYPE
T.REPLY ̲Q : QUEUE ̲REFERENCE
4.2.5.6.8.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE SEND ̲COMMAND (T.CMD) (T.REPLY)
BEGIN
T.REPLY = EXECUTION ̲OK
T.SEND ̲PARAMS.HEADER.INFORMATION ̲TYPE = TRUE
T.SEND ̲PARAMS.CHECKP.STATUS = FALSE
T.SEND ̲PARAMS.HEADER.MAINTYPE = SSC ̲COMMAND
T.SEND ̲PARAMS.HEADER.SUBTYPE = T.CMD
CASE SEND ̲REQUEST (T.SEND ̲PARAMS, NIL, T.COMMAND ̲Q, T.REPLY
̲Q)
(CC) :ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC, 2, QEL ̲PROFILE ̲CHECK ̲BLOCKED
̲QUEUE)
END CASE T.REPLY = TIME ̲OUT
T.TIME = 2
T.REPLY EQ TIME ̲OUT?
W̲A̲I̲T̲ ̲T̲I̲M̲E̲ ̲L̲I̲M̲I̲T̲E̲D̲ ̲O̲N̲ ̲Q̲U̲E̲U̲E̲ (T.REPLY ̲Q, T.TIME, T.WRK2)
(T.ATT, T.QEL, T.SUBQ, CC)
T.REPLY = T.CC
DISMANTLE (T.QEL) (CC) :ERROR ̲OK
END
4.2.5.6.9 S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲S̲U̲P̲V̲
4.2.5.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̲
The procedure sends a reply to the supervisor after
execution of a supervisor command.
4.2.5.6.9.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲REPLY ̲TO ̲SUPV (T.REPLY:BOOLEAN)
b) SEND ̲REPLY ̲TO ̲SUPV (R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.9.3 D̲A̲T̲A̲
VAR T.TIME : TIME ̲FORMAT ̲TYPE
S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲
VAR T.TNO : LOGICAL ̲TERMINAL ̲NO ̲TYPE
T̲E̲M̲C̲O̲ ̲C̲O̲M̲M̲O̲N̲
VAR T.CMD : INTEGER
VAR T.REPLY : BOOLEAN
VAR T.SUPV ̲QEL ̲REF : QEL ̲REFERENCE
VAR T.SEND ̲PARAMS : SEND ̲PARAMS ̲TYPE
VAR T.CC : INTEGER
4.2.5.6.9.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE SEND ̲REPLY ̲TO ̲SUPV (T.REPLY)
BEGIN
T.SEND ̲PARAMS.INFORMATION ̲TYPE = TRUE
T.SEND ̲PARAMS.CHECKP ̲STATUS = FALSE
T.SEND ̲PARAMS.HEADER.MAINTYPE = ACK
T.SEND ̲PARAMS.HEADER.SUBTYPE = SSC ̲ACK
T.SEND ̲PARAMS.FLAGS = T.REPLY
T.SEND ̲PARAMS.HEADER ̲INF = T.CMD
T.SEND ̲PARAMS.INFORMATION (1) = T.TNO
READ ̲TIME (F ̲TIME ̲TYPE) (C.TIME,T.CC) :ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (T.CC, 0)
T.SEND ̲PARAMS.INFORMATION (2) = T.TIME.HOUR
T.SEND ̲PARAMS.INFORMATION (3) =T.TIME ̲MINUTE
CASE SEND ̲REPLY (T.SEND ̲PARAMS, T.SUPV ̲QEL ̲REF,
T.SUPV ̲QEL ̲REF) (T.CC) :ERROR ̲OK
ERROR ? ANALYZE ̲ERROR ̲(CC, 2, QEL ̲PROFILE ̲CHECK,BLOCKED
̲QUEUE)
END CASE
DISMANTLE (D.SUPV ̲QEL ̲REF) (T.CC) :ERROR ̲OK
END
4.2.5.6.10 S̲E̲N̲D̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲ ̲R̲E̲P̲O̲R̲T̲
4.2.5.6.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 procedure sends a security report which is printed
out at the supervisor printer.
4.2.5.6.10.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲SECURITY ̲REPORT (T ̲TEXT ̲REF: 1..MAX ̲REPORT
̲TEXT ̲REF)
b) SEND ̲SECURITY ̲REPORT (R5, R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 type of security report
R 6 link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.10.3 D̲A̲T̲A̲
TYPE T.REPORT=
RECORD
SIZE: INTEGER
TOC: TIME ̲TYPE
TEXT ̲REF: 1..MAX ̲REPORT ̲TEXT ̲REF
TD: ARRAY(1..7) OF CHAR
END
VAR T.SEND ̲PARAMS : SEND ̲PARAMS ̲TYPE
VAR T.TNO : LOGICAL ̲TERMINAL ̲NO ̲TYPE (SSC COMMON)
VAR T.REPORT ̲Q : QUEUE ̲REFERENCE (TEMCO COMMON)
VAR T.CC : INTEGER
VAR T.TEXT ̲REF: 1..MAX ̲REPORT ̲TEXT ̲REF)
VAR T.SIZE:INTEGER
4.2.5.6.10.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE SEND ̲SECURITY ̲REPORT (TEXT ̲REF:
1..MAX ̲REPORT ̲TEXT
̲REF)
BEGIN
T.REPORT.TEXT ̲REFGT SEC ̲KEY ̲NOT ̲SIGN ̲OFF? T.REPORT.USER
̲ID = "SP"
READ ̲TIME (F ̲TIME ̲TYPE)
(T.REPORT.TOC,CC): ERROR ̲OK
END
T.REPORT.TEXT ̲REF = TEXT ̲REF
T.REPORT.USER ̲ID = T.USER ̲PROFILE.USER ̲ID
CASE RESERVE ̲BUFFER (T.REPORT.SIZE,T.REPLY ̲Q)
(T.QEL,T.CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (T.CC,0)
END
CASE WRITE ̲BUFFER (T.QEL, T.REPORT, T.REPORT.SIZE,
1)
(T.SIZE, CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC, POOL ̲EMPTY,BLOCKED
̲QUEUE)
END
T.SEND ̲PARAMS.INFORMATION ̲TYPE = FALSE
T.SEND ̲PARAMS.CHECKP ̲STATUS = FALSE
T.SEND ̲PARAMS.HEADER.MAINTYPE = REPORT
T.SEND ̲PARAMS.HEADER.SUBTYPE = SECURITY ̲REPORT
T.REPORT.TEXT ̲REF GT SEC.KEY ̲NOT ̲SIGN ̲OFF? T.SEND ̲PARAMS.HEADER.SUBTYPE
= WARNING ̲REPORT
CASE SEND ̲QEL (T.SEND ̲PARAMS, NIL, T.REPORT ̲Q)
(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR (CC, QEL ̲PROFILE ̲CHECK,BLOCKED
̲QUEUE)
END
END PROCEDURE
4.2.5.6.11 S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲T̲E̲P̲
4.2.5.6.11.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 procedure sends a reply to a terminal subprocess.
4.2.5.6.11.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲REPLY ̲TO ̲TEP (T.REPLY: BOOLEAN
b) SEND ̲REPLY ̲TO ̲TEP (R5, R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 reply to TEP
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.11.3 D̲A̲T̲A̲
VAR T.REPLY : BOOLEAN (TEMCO COMMON)
VAR T.SEND ̲PARAMS : SEND ̲PARAMS
VAR T.TEP ̲QEL ̲REF : QEL ̲REFERENCE (TEMCO COMMON)
4.2.5.6.11.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE SEND ̲REPLY ̲TO ̲TEP (T.REPLY)
BEGIN
T.SEND ̲PARAMS.INFORMATION ̲TYPE = TRUE
T.SEND ̲PARAMS.INFORMATION ̲STATUS = FALSE
T.SEND ̲PARAMS.HEADER.MAINTYPE = ACK
T.SEND ̲PARAMS.HEADER.SUBTYPE = SSC ̲ACK
T.SEND ̲PARAMS.FLAG = T.REPLY
CASE SEND ̲REPLY (T.SEND ̲PARAMS, NIL, T.TEP ̲QEL
̲REF)
(T.SEND ̲PARAMS, T.CC) :ERROR
̲OK
ERROR ? ANALYZE ̲ERROR (CC, 2, QEL ̲PROFILE ̲CHECK,
BLOCKED ̲QUEUE)
END
DISMANTLE (T.TEP ̲QEL ̲REF) (T.CC) :ERROR ̲OK
END
4.2.5.6.12 S̲E̲N̲D̲ ̲L̲O̲G̲ ̲R̲E̲C̲O̲R̲D̲
4.2.5.6.12.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 procedure sends a log report to the LOG package.
A reply is awaited, but is subject to timeout.
4.2.5.6.12.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲LOG ̲REPORT (T.FORMAT ̲ID : FORMAT ̲ID ̲TYPE,
T.EXIT ̲CAUSE : EXIT ̲CAUSE ̲TYPE)
(T.REPLY ̲ BOOLEAN)
b) SEND ̲LOG ̲REPORT (R4, R5, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲s̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 4 format type
R 5 exit cause
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 reply from LOG package.
4.2.5.6.12.3 D̲A̲T̲A̲
T̲E̲M̲C̲O̲ ̲C̲O̲M̲M̲O̲N̲
VAR T.REPLY : BOOLEAN
T.TIME : SECONDS
T.WRK : ARRAY (1..16) OF INTEGER
T.ATT : QEL ̲ATTRIBUTES
T.QEL : QEL ̲REFERENCE
T.SUBQ : SUBQUEUE ̲INDEX
T.CC : INTEGER
T.SEND ̲PARAMS : SEND ̲PARAMS ̲TYPE
T.REPLY ̲Q : QUEUE ̲REFERENCE
T.LOG ̲Q : QUEUE ̲REFERENCE
L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR T.GSN ̲ID : GSN ̲ID ̲TYPE
VAR T.GSN ̲VALUE : LONG
VAR T.LOG ̲RECORD:
RECORD
TERMINAL ̲DESIGNATOR:TERMINAL ̲DESIGNATOR ̲TYPE
TRANSACTION ̲SERIAL ̲NO:TRANSACTION ̲SERIAL ̲NO ̲TYPE
FORMAT ̲ID:FORMAT ̲ID ̲TYPE
EXIT ̲CAUSE:EXIT ̲CAUSE ̲TYPE
TRANSACTION ̲START ̲TIME:TIME ̲TYPE
END
CONST T.BUFFER ̲SIZE
CONST T.SIZE
4.2.5.6.12.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE SEND ̲LOG ̲RECORD (T.FORMAT ̲ID:FORMAT ̲ID ̲TYPE,
T.EXIT ̲CAUSE:EXIT ̲CAUSE ̲TYPE)
(T.REPLY : BOOLEAN)
BEGIN
T.GSN ̲ID.GROUP = TRANSACTION ̲GSN
T.GSN ̲ID.GSN ̲INDEX = T.TNO
GET ̲GSN(T.GSN ̲ID, TRUE) (T.GSN ̲VALUE, T.CC):ERROR
̲OK
ERROR ? ANALYZE ̲ERROR (T.CC, 0)
T.LOG ̲RECORD.TRANSACTION ̲SERIAL ̲NO = T.GSN ̲VALUE
T.LOG ̲RECORD.TERMINAL ̲DESIGNATOR =
T.TERMINAL ̲PROFILE.TD
T.LOG ̲RECORD.FORMAT ̲ID = T.FORMAT ̲ID
T.LOG ̲RECORD.EXIT ̲CAUSE = T.EXIT ̲CAUSE
READ ̲TIME (F ̲TIME ̲TYPE) (T.TIME, T.CC):OK
T.LOG ̲RECORD:TRANSACTION ̲START ̲TIME = T.TIME
T.SEND ̲PARAMS.HEADER.INFORMATION ̲TYPE = FALSE
T.SEND ̲PARAMS.CHECKP ̲STATUS = FALSE
T.SEND ̲PARAMS.HEADER.MAINTYPE = LOG ̲RECORD
CASE T.SEND ̲PARAMS.HEADER.SUBTYPE = T.FORMAT ̲ID
RESERVE ̲BUFFER (T.BUFFER ̲SIZE, T.REPLY ̲Q)
(T.QEL, CC) :ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC, 2, POOL ̲EMPTY,BLOCKED
̲
QUEUE)
END CASE
CASE WRITE ̲BUFFER (T.QEL, T.LOG ̲RECORD, T.SIZE,
0)
(T.SIZE, CC) :ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC, 1, SIZE ̲ERROR)
END CASE
CASE SEND ̲REQUEST (T.SEND ̲PARAMS,T.QEL,T.LOG ̲Q,T.REPLY
̲Q)
(CC) :ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC, 2, QEL ̲PROFILE ̲
CHECK,BLOCKED
̲QUEUE)
END CASE
T.TIME = 2
WAIT ̲TIME ̲LIMITED ̲ON ̲QUEUE (T.REPLY ̲Q, T.TIME,T.WRK)
(T.ATT,T.QEL,T.SUBQ,T.CC)
T.REPLY = T.CC
DISMANTLE (T.QEL) (CC) :ERROR ̲OK
END
4.2.5.6.13 C̲U̲T̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲
4.2.5.6.13.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 procedure dismantles the connection to the VDU
splits.
4.2.5.6.13.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CUT ̲CONNECTION (T.SPLIT : SPLIT ̲TYPE)
b) CUT ̲CONNECTION (R5, R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 split type
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.13.3 D̲A̲T̲A̲
SYSTEM ̲SPLIT ̲CONNECTION,
MAX ̲TEMCO ̲CON : TEMCO ̲COMMON
4.2.5.6.13.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE CUT ̲CONNECTION
EQUIVALENCE (T.SYSTEM ̲SPLIT ̲DATA ̲CONNECTION,R :ARRAY
(1..7) OF FDCB ̲INDEX
I = O
T.REPLY = 0
LOOP
I = I + 1
CASE ̲DISMANTLE (R(I))(CC) : ERROR ̲OK
ERROR? T.REPLY = T.REPLY + 1, T.CC = CC
END CASE
I EQ MAX ̲TEMCO ̲CON? ((EXIT
END LOOP
T.REPLY NE Q? ANALYSE ̲ERROR (T.CC, 1, HW)
END CUT ̲CONNECTION
4.2.5.6.14 S̲E̲N̲D̲ ̲R̲E̲P̲L̲Y̲ ̲T̲O̲ ̲M̲M̲O̲N̲
4.2.5.6.14.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 procedure sends a reply to MMON after a security
interrogation, security warning or both.
4.2.5.6.14.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲REPLY ̲TO ̲MMON (T.REPLY:BOOLEAN)
b) SEND ̲REPLY ̲TO ̲MMON (R5, R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 reply to MMON
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.14.3 D̲A̲T̲A̲
VAR T.SYNC ̲EL ̲REF : OBJECT ̲INDEX
MMON ̲RSE ̲REPLY ̲TABLE (SUBPROCESS ̲INDEX)
"table: output synchronization element object ̲index.
VAR T.MMON ̲ANSWER : OPEN ̲NOTIFICATION ̲ANSWER
VAR T.CC : INTEGER
VAR T.SUBPROCESS ̲ID : SUBPROCESS ̲INDEX
4.2.5.6.14.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE SEND ̲REPLY ̲TO ̲MMON (T.REPLY : BOOLEAN)
BEGIN
T.SYNC ̲EL ̲REF = MMON ̲RSE ̲REPLY ̲TABLE (T.SUBPROCESS ̲ID)
T.MMON ̲ANSWER.MMON ̲REF = T.MMON ̲REF
T.MMON ̲ANSWER.CC = T.REPLY
SEND (T.SYNC ̲EL ̲REF, T.MMON ̲ANSWER) (T.CC):ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (T.CC, 0)
END
4.2.5.6.15 F̲I̲N̲D̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲I̲E̲S̲
4.2.5.6.15.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 procedure determines the number of capabilities
a user has at a terminal. If only one the type of capability
is returned.
4.2.5.6.15.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) FIND ̲CAPABILITIES( )(T.CAPABILITIES:CAPABILITY
̲TYPE,
T.CAP: FCT ̲CAPABILITY ̲TYPE)
b) FIND ̲CAPABILITIES (R6) (R4, R5)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 4 the number of capabilities
R 5 the type of capability
4.2.5.6.15.3 D̲A̲T̲A̲
VAR T.CAPABILITIES : CAPABILITY ̲TYPE (TEMCO COMMON)
VAR T.CAP : FCT ̲CAPABILITY ̲TYPE (TEMCO COMMON)
VAR T.COUNT : INTEGER
VAR T.T ̲USER, T.T ̲MDCO, T.T ̲MSOS, T.T ̲SUPV :
INTEGER (TEMCO COMMON)
4.2.5.6.15.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE FIND ̲CAPABILITIES ()
(T.CAPABILITIES : CAPABILITY ̲TYPE,
T.CAP : FCT ̲CAPABILITY ̲TYPE)
BEGIN
T.CAPABILITIES = MORE
T.CAP = NIL
GET ̲TERMINAL ̲CAP
T.COUNT = 0
T.T ̲USER EQ "N"
T.COUNT = 1
T.CAP = USER
T.T ̲MDCO EQ "N" ?
T.COUNT = T.COUNT + 1
T.CAP = MDCO
T.T ̲MSOS EQ "N" ?
T.COUNT = T.COUNT + 1
T.CAP = MSOS
T.T ̲SUPV EQ "N" ?
T.COUNT = T.COUNT + 1
T.CAP = SUPV
T.COUNT EQ 0 ? T.CAPABILITIES = NONE
T.COUNT EQ 1 ? T.CAPABILITIES = ONE
END
4.2.5.6.16 S̲E̲N̲D̲ ̲S̲T̲A̲T̲I̲S̲T̲I̲C̲S̲
4.2.5.6.16.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 procedure sends statistics.
4.2.5.6.16.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
a) SEND ̲STATISTICS (T.FORMAT : STA ̲SUBGROUP ̲NO ̲2)
b) SEND ̲STATISTICS (R5, R6)
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 type of format
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.16.3 D̲A̲T̲A̲
VAR T.GROUP ̲NO : STA ̲GROUP ̲NO ̲TYPE
T.SUBGROUP ̲NO : STA ̲SUBGROUP ̲NO
T.RECORD ̲NO : RECORD ̲NO ̲TYPE
T.STA ̲PARAMS : STA ̲PARAMS ̲TYPE
T.FORMAT : INTEGER (TEMCO COMMON)
T.TNO : LOGICAL ̲TERMINAL ̲NUMBER ̲TYPE (TEMCO COMMON)
T.CC : INTEGER
4.2.5.6.16.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE SEND ̲STATISTICS (T.FORMAT : STA ̲SUBGROUP ̲NO ̲2)
BEGIN
T.GROUP ̲NO = USE ̲OF ̲FORMAT ̲2
CASE T.FORMAT OF
S ̲WARNING? T.SUBGROUP ̲NO = FORMAT ̲I2
S ̲INTERROGARTION ? T.SUBGROUP ̲NO = FORMAT ̲I1
OTHER ? SEND ̲GARBLE (INTERNAL)
END
T.RECORD ̲NO = T.TNO
T.STA ̲PARAMS = NIL
CASE STATISTICS ̲COLLECTION (T.GROUP ̲NO,
T.SUBGROUP ̲NO,
T.STA ̲PARAMS)
(CC) :ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC, 0)
END CASE
END
4.2.5.6.17 I̲N̲V̲A̲L̲I̲D̲ ̲S̲I̲O̲N̲
4.2.5.6.17.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 procedure dismantles the system connection to the
VDU, sets the BLOCKED field to TRUE in the terminal
profile and sends a security report to the supervisor
printer.
4.2.5.6.17.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INVALID ̲SION
b) INVALID ̲SION (R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
4.2.5.6.17.3 D̲A̲T̲A̲
VAR T.TERMINAL ̲PROFILE : TERMINAL ̲PROFILE
T.STATE : STATE ̲TYPE
4.2.5.6.17.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE INVALID ̲SION
BEGIN
T.TERMINAL ̲PROFILE.CAP EQ SUPV ? T.STATE=UNATTENDED ̲OPERATION
DISPLAY ̲TERMINAL ̲FORMAT
(K2)
BLOCK ̲PASSIVE ̲TERMINAL
T.STATE = BLOCKED
SEND ̲SECURITY ̲REPORT (SION)
END
4.2.5.6.18 I̲N̲V̲A̲L̲I̲D̲ ̲R̲E̲L̲ ̲S̲E̲C̲ ̲I̲N̲T̲
4.2.5.6.18.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 procedure dismantles the connection to the VDU,
sets the BLOCKED field to TRUE in the terminal profile,(not
supervisor position) sends a security report, sends
a NOT ̲OK reply to the terminal subprocess and sends
a BLOCK ̲TERM Command to the terminal subprocess.
4.2.5.6.18.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INVALID ̲REL ̲SEC ̲INT (REPORT ̲NUMBER : REPORT ̲NUMBER
̲
TYPE)
b) INVALID ̲REL ̲SEC ̲INT (R5, R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R 5 REPORT ̲NUMBER
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
4.2.5.6.18.3 D̲A̲T̲A̲
VAR T.TERMINAL ̲PROFILE : TERMINAL ̲PROFILE (TEMCO COMMON)
T.STATE : STATE ̲TYPE (TEMCO COMMON)
4.2.5.6.18.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE INVALID ̲REL ̲SEC ̲INT (REPORT ̲NUMBER : REPORT ̲NUMBER
̲
TYPE)
BEGIN
T.TERMINAL ̲PROFILE.CAP EQ SUPV ? T.STATE=UNATTENDED ̲OPERATION
S̲T̲O̲P̲ ̲A̲C̲T̲I̲V̲E̲ ̲S̲U̲P̲V̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
B̲L̲O̲C̲K̲ ̲A̲C̲T̲I̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲
T.STATE = BLOCKED
T.REPLY = EXECUTION ̲NOT ̲OK
SEND ̲REPLY ̲TO ̲TEP (T.REPLY)
SEND ̲SECURITY ̲REPORT (REPORT ̲NUMBER)
END
4.2.5.6.19 I̲N̲V̲A̲L̲I̲D̲ ̲S̲E̲C̲ ̲I̲N̲T̲E̲R̲R̲O̲G̲A̲T̲I̲O̲N̲ ̲O̲R̲ ̲W̲A̲R̲N̲I̲N̲G̲
4.2.5.6.19.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 procedure dismantles the connection to the VDU,
sets the BLOCKED field to TRUE in the terminal profile,
exept supervisor and a log terminal), sends a security
report, sends a OPEN ̲NOT ̲ACCEPTED reply to the MMON
and sends a BLOCK ̲TERM command to the terminal subprocess.
4.2.5.6.19.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INVALID ̲SEC ̲INTERROGATION ̲OR ̲WARNING (
LOG ̲FORMAT : FORMAT ̲ID ̲TYPE
EXIT ̲CAUSE : EXIT ̲CAUSE ̲TYPE
REPORT ̲NUMBER : REPORT ̲NUMBER ̲TYPE)
b) INVALID ̲SEC ̲INTERROGATION ̲OR ̲WARNING(
R3, R4, R5, R6)
C̲A̲L̲L̲ ̲R̲E̲G̲I̲S̲T̲E̲R̲S̲
R3 LOGFORMAT
R4 EXIT ̲CAUSE
R5 REPORT ̲NUMBER ̲TYPE
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.19.3 D̲A̲T̲A̲
VAR T.TERMINAL ̲PROFILE : TERMINAL ̲PROFILE (TEMCO COMMON)
T.STATE : STATE ̲TYPE (TEMCO COMMON)
4.2.5.6.19.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE INVALID ̲SEC ̲INTERROGATION ̲OR ̲WARNING (LOG ̲FORMAT,
EXIT ̲CAUSE,
REPORT ̲NUMBER)
BEGIN
T.REPLY = OPEN ̲NOT ̲ACCEPTED
SEND ̲REPLY ̲TO ̲MMON (T.REPLY)
SEND ̲SECURITY ̲REPORT (REPORT ̲NUMBER)
SEND ̲SECURITY ̲REPORT (LOG ̲FORMAT,EXIT ̲CAUSE)
T.TERMINAL ̲PROFILE.CAP EQ SUPV ? T.STATE=UNATTENDED ̲OPERATION
STOP ̲ACTIVE ̲SUPV ̲TERMINAL
BLOCK ̲ACTIVE ̲TERMINAL
T.STATE = BLOCKED
END
4.2.5.6.20 I̲N̲V̲A̲L̲I̲D̲ ̲S̲E̲C̲ ̲W̲A̲R̲N̲I̲N̲G̲…86…1 …02… …02… …02… …02…
4.2.5.6.20 B̲L̲O̲C̲K̲ ̲A̲C̲T̲I̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
4.2.5.6.20.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 terminal subprocess is stop by a BLOCK ̲TERM command
and the user profile and terminal profile is updated.
4.2.5.6.20.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) BLOCK ̲ACTIVE ̲TERM
b) BLOCK ̲ACTIVE ̲TERM (R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.20.3 D̲a̲t̲a̲
VAR
T.SIGN,
T.USER ̲PROFILE ̲USER ̲ID TEMCO COMMON
4.2.5.6.20.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲…86…1 …02… …02… …02… …02…
PROCEDURE BLOCK ̲ACTIVE ̲TERMINAL
S̲T̲O̲P̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲ ̲(̲B̲L̲O̲C̲K̲ ̲T̲E̲R̲M̲)̲
B̲L̲O̲C̲K̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
T.SIGN = OFF
S̲E̲T̲ ̲U̲S̲E̲R̲ ̲P̲R̲O̲F̲I̲L̲E̲ ̲S̲I̲G̲N̲ ̲T̲O̲ (T.SIGN, T.USER ̲PROFILE.USER
̲ID)
END BLOCK ̲ACTIVE ̲TERMINAL
4.2.5.6.21 N̲O̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲I̲E̲S̲
4.2.5.6.21.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 procedure generates an error message for a preset
period of time, after which the terminal is signed
off and format K2 is displayed.
4.2.5.6.21.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) NO ̲CAPABILITIES
b) NO ̲CAPABILITIES (R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲
None
4.2.5.6.21.3 D̲A̲T̲A̲
VAR T.REQUEST ̲TIME : REQUEST ̲TIME (TEMCO COMMON)
T.CC : INTEGER
4.2.5.6.21.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE NO ̲CAPABILITIES
BEGIN
DISPLAY ̲RESPONSE (CONTACT ̲SUPERVISOR)
T.REQUEST ̲TIME.QUEUE = T.REPLY ̲Q
T.REQUEST ̲TIME.TIME ̲OUT = ONCE
T.REQUEST ̲TIME.FORMAT = SECONDS
T.REQUEST ̲TIME.TIME = 30
T.REQUEST ̲TIME.EVENT ̲ID = NO ̲CAP ̲TIME
WAIT ̲OPSEM (SHORT ̲OS)(T ̲OP)
T.OP.CMD ̲TYPE = TMON ̲CMP
INIT ̲REQUEST ̲TIMEOUT (T.REQUEST ̲TIME, T ̲OP) (CC):ERROR
̲OK
ASSOCIATE (VDU ̲OS(T.TNO),T ̲OP)
END
4.2.5.6.22 C̲H̲E̲C̲K̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲ ̲C̲O̲D̲E̲
4.2.5.6.22.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 procedure checks the security code.
4.2.5.6.22.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHECK ̲SECURITY ̲CODE (T.SEC ̲CODE : SEC ̲CODE ̲TYPE)
b) CHECK ̲SECURITY ̲CODE (R5, R6) : ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 SECURITY CODE
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R 5 reply
4.2.5.6.22.3 D̲A̲T̲A̲
VAR T.SEC ̲CODE : SEC ̲CODE ̲TYPE
T.TABLE ̲SEC ̲CODE : SEC ̲CODE ̲TYPE
T.REPLY : BOOLEAN
4.2.5.6.22.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE CHECK ̲SECURITY ̲CODE (T.SEC ̲CODE : SEC ̲CODE ̲TYPE)
(T.REPLY)
BEGIN
T.REPLY = FALSE
GET ̲SYSTEM ̲PARAMETERS (SECURITY ̲CODE)
(T.TABLE ̲SEC ̲CODE)
T.TABLE ̲SEC ̲CODE NE T.SEC ̲CODE ?
T.REPLY = TRUE
END PROCEDURE
4.2.5.6.23 S̲E̲T̲ ̲D̲A̲M̲O̲S̲ ̲L̲I̲N̲E̲ ̲P̲R̲O̲F̲I̲L̲E̲
4.2.5.6.23.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 procedure changes the DAMOS line profile to the
VDU splits.
4.2.5.6.23.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲DAMOS ̲LINE ̲PROFILE
b) SET ̲DAMOS ̲LINE ̲PROFILE
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
None
4.2.5.6.23.3 D̲A̲T̲A̲
CONST
TEMCO ̲USER ̲PROFILE
4.2.5.6.23.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE SET ̲DAMOS ̲LINE ̲PROFILE
PROFILE = T.TERMINAL ̲PROFILE.CLASS LOG OR
T.TERMINAL ̲PROFILE.SH.LEAST LOGAND
USER ̲5 ̲FIRST ̲BIT
CHANGE ̲PROFILE (T.VDU ̲CONNECTION,PROFILE)
END SET ̲DAMOS ̲LINE ̲PROFILE
4.2.5.6.24 C̲H̲E̲C̲K̲ ̲P̲A̲S̲S̲W̲O̲R̲D̲
4.2.5.6.24.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 procedure checks an entered password.
4.2.5.6.24.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHECK ̲PASSWORD(ID ̲CODE:USER ̲ID)
(T.USER ̲PROFILE ̲USER ̲PROFILE,
T.REPLY : BOOLEAN)
b) CHECK ̲PASSWORD (R5, R6) (R5)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 USER ̲ID
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 reply
4.2.5.6.24.3 D̲A̲T̲A̲
VAR T.ID ̲CODE : USER ̲ID
T.USER ̲PROFILE : USER ̲PROFILE
T.REPLY : BOOLEAN
T.USER ̲PASSWORD : PASSWORD ̲TYPE
T.TABLE ̲PASSWORD : PASSWORD ̲TYPE
T.TIME : TIME ̲TYPE
T.TIME ̲EXPITED : TIME ̲TYPE
4.2.5.6.25 C̲H̲E̲C̲K̲ ̲I̲D̲ ̲C̲O̲D̲E̲
4.2.5.6.25.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 procedure checks the id code.
4.2.5.6.25.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHECK ̲ID ̲CODE (ID ̲CODE : ID ̲CODE ̲TYPE)
b) CHECK ̲ID ̲CODE (R4, R6) : ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 4 ID ̲CODE
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.25.3 D̲A̲T̲A̲
VAR T.ID ̲CODE : USER ̲ID ̲TYPE
T.REPLY : BOOLEAN
T.I : INTEGER…86…1 …02… …02… …02… …02… …02… …02… …02… …02…
PROCEDURE CHECK ̲PASSWORD (T.ID ̲CODE : USER ̲ID)
(T.USER
̲PROFILE
:
USER
̲PROFILE,
T.REPLY = FALSE
T.REPLY
:
BOOLEAN)
T.SIGN = ON
S̲E̲T̲ ̲U̲S̲E̲R̲ ̲P̲R̲O̲F̲I̲L̲E̲ ̲S̲I̲G̲N̲ ̲T̲O̲ (T.SIGN,T.ID ̲CODE)(T.BLOCKED)
T.BLOCKED EQ TRUE? - D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲O̲N̲C̲E̲ (CONTACT ̲SUPERVISOR)
T.USER ̲PROFILE.PASSWORD ̲EXPIRED EQ 0? - T.TIME = 0
READ ̲TIME (TIME ̲TYPE)(T.TIME,CC) : ERROR ̲OK
T.TIME ̲EXPIRED = T.USER ̲PROFILE.PASSWORD ̲EXPIRED*
SEC
̲IN
̲A
̲DAY
+
T.USER
̲PROFILE.PASSWORD
̲AMENDED
T.TIME ̲EXPIRED LT T.TIME?
T.KEY ̲BUF.KEY = T.USER ̲PROFILE.PASSWORD ̲REF
S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲ (PASSWORD ̲TABLE,T.KEY ̲BUF,ALLMASK,
T.SEND
̲BUF)(T.TABLE
̲PASSWORD)
T.USER ̲PASSWORD NE T.TABLE ̲PASSWORD
T.REPLY = TRUE
T.REPLY EQ TRUE?
T.SIGN = OFF
SET ̲USER ̲PROFILE ̲SIGN ̲TO (T.SIGN,T.ID ̲CODE)(T.BLOCKED)
END CHECK ̲PASSWORD
4.2.5.6.25.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE CHECK ̲ID ̲CODE (T.ID ̲CODE) (T.REPLY)
BEGIN
T.REPLY = FALSE
T.I = 1
LOOP
T.TERMINAL ̲PROFILE.USERS (I) NE T.ID ̲CODE ?
T.REPLY = TRUE
T.I = T.I + 1
T.I EQ MAX ̲USERS ̲PR ̲TP EXIT
END LOOP
END PROCEDURE
4.2.5.6.26 S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲
4.2.5.6.26.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 procedure sets the profile of the subprocess:
- security classification
- special handling designator
- exercise indication
- functional capabilities
(release, reception, etc.)
The capability array of the terminal subprocess is
updated (only for USER,MDCO,MSO subprocess).
A START ̲USER command is sent to the terminal subprocess
containing:
- VDU offer ids
- logical terminal number
- current access profile
- terminal designator
- Current user capability
- Current functional capability
4.2.5.6.26.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) START ̲USER(T ̲USER ̲ST:T ̲SUBPROC ̲TYPES)(T.REPLY)
b) START ̲USER (R5, R6) (R5)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 T ̲USER ̲ST
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 5 REPLY
4.2.5.6.26.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a 1)T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
T ̲SUBPROC ̲TYPES
a 2)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̲
VAR T.REPLY : BOOLEAN
T.SUBPROCESS ̲ATT : SUBPROCESS ̲ATTRIBUTES
T.COMMAND ̲Q : QUEUE ̲REFERENCE
T.TNO : LOGICAL ̲TERMINAL ̲NUMBER ̲TYPE
T.REPLY ̲Q : QUEUE ̲REFERENCE
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR
T.CURRENT:USER ̲CAP : USER ̲FCT ̲CAPABILITY ̲TYPE
T.ACTUAL ̲CAP : FCT ̲CAPABILITY ̲TYPE
T ̲USER ̲SET : ACCESS ̲PROFILE
COUNT : INTEGER
FOUND : BOOLEAN
T.USER ̲START : USER ̲START ̲ID
T.QEL : QEL ̲REFERENCE
T.SIZE : INTEGER
T.SEND ̲PARAMS : SEND ̲PARAMS
T.ACC : ACCESS ̲PROFILES
T ̲USER ̲SET ̲LEAST,
T ̲USER ̲SET ̲MOST : INTEGER
4.2.5.6.26.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
The procedure is implemented in a main procedure START
̲USER and two sub propcedures UPDATE ̲PROCESS ̲TABLE SEND
̲START ̲USER, GET ̲USER ̲ACC,SET ̲SUBPROCESS ̲CAPABILITY
a) S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲
The procedure determines and sets the access profile
of the terminal subprocess.
b) G̲E̲T̲ ̲U̲S̲E̲R̲ ̲A̲C̲C̲
The procedure returns a part of access profile
to be set for a Terminal subprocess for a USER,
classification is set in the main procedure.
b) U̲P̲D̲A̲T̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲ ̲T̲A̲B̲L̲E̲
The procedure calculates the subprocess number
and the command queue of the terminal subprocess.
c) S̲E̲N̲D̲ ̲S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲
The procedure sends the command START ̲USER to the
terminal subprocess.
d) S̲E̲T̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲Y̲
The capability arry of the subprocess to be started
(USER,MDCO or MSO) is updated ref fig.
The capability array for the SUPV is statical.…86…1…02…
…02… …02… …02… …02… …02… …02… …02…
PROCEDURE START ̲USER (T.CAP : FCT ̲CAPABILITY ̲TYPE)(T.REPLY)
EQUIVALENCE (T.TERMINAL ̲PROFILE,R : TERMINAL ̲PROFILE)
EQUIVALENCE (T.USER ̲PROFILE, 5 : USER ̲PROFILE)
T.ACC.LEAST = (R.CLASS LOGAND 5.CLASS)
T ̲USER ̲SET ̲LEAST = 0, T ̲USER ̲SET ̲MOST = 0
CASE T.CAP OF
SUPV? T
̲USER
̲SET
̲LEAST
=
SUPV
̲ACC
̲CONST
̲LEAST
T
̲USER
̲SET
̲MOST
=
SUPV
̲ACC
̲CONST
̲MOST
MDCO? T
̲USER
̲SET
̲LEAST
=
MDCO
̲ACC
̲CONST
̲LEAST
T
̲USER
̲SET
̲MOST
=
MDCO
̲ACC
̲CONST
̲MOST
MSO? T
̲USER
̲SET
̲LEAST
=
MSO
̲ACC
̲CONST
̲LEAST
T
̲USER
̲SET
̲MOST
=
MSO
̲ACC
̲CONST
̲MOST
USER? G̲E̲T̲
̲U̲S̲E̲R̲
̲A̲C̲C̲
(R5)
(T
̲USER
̲SET
̲LEAST,T
̲USER
̲SET
̲MOST)
END CASE
T.ACC.LEAST = T.ACC.LEAST LOGOR T ̲USER ̲SET ̲LEAST
T.ACC.MOST = T ̲USER ̲SET ̲MOST
U̲P̲D̲A̲T̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲ ̲T̲A̲B̲L̲E̲ (T.CAP)(T.COMMAND ̲Q, T.SUBPROCESS
̲NO)
EQUIVALENCE (WRK2, SUB: SUBPROCESS.ATTRIBUTES)
SUB.PROFILE ̲FLAG = TRUE
SUB.PROFILE.LEAST = T.ACC.LEAST
SUB.PROFILE.MOST = T.ACC.MOST
CHANGE ̲SUBPROCESS ̲ATTRIBUTES (T.SUBPROCESS ̲NO;SUB)
R.SIGN = ON
R.CURRENT ̲CAP = T.ACTUAL ̲CAP
T.KEY ̲BUF,KEY = T.TNO
U̲P̲D̲A̲T̲E̲ ̲E̲N̲T̲R̲Y̲ (TERMINAL ̲TABLE,T ̲SEND ̲BUF,T.KEY ̲BUF,
TEMCO ̲TERM ̲MASK,R.CURRENT ̲CAP)
S̲E̲T̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲ ̲CAPABILITY (T.CAP,R,S)
S̲E̲N̲D̲ ̲S̲T̲A̲R̲T̲ ̲U̲S̲E̲R̲
END ̲START ̲USER…86…1…02… …02… …02… …02… …02… …02… …02… …02…
PROCEDURE GET ̲USER ̲ACC (R: TERMINAL ̲PROFILE,
S: USER ̲PROFILE)(T
̲USER ̲SET ̲LEAST,
T ̲USER ̲SET ̲MOST:
INTEGER
T ̲USER ̲SET ̲MOST = (R.SH.MOST LOGAND S.SH.MOST)
T ̲USER ̲SET ̲LEAST = (R.SH.LEAST LOGAND S.SH.LEAST)
S.EXERCISE EQ FALSE?
T ̲USER ̲SET ̲MOST = T ̲USER ̲SET ̲MOST LOGOR EXECISE
T.CURRENT ̲USER ̲CAP = S.USER ̲CAP LOGAND R.USER ̲CAP
T:CURRENT ̲USER ̲CAP NE RELS?
T ̲USER ̲SET ̲MOST = T ̲USER ̲SET ̲MOST LOGOR USER:ACC
̲RELS ̲CONST
T.CURRENT ̲USER ̲CAP = NE RECV?
T ̲USER ̲SET ̲MOST = T ̲USER ̲SET ̲MOST LOGOR USER.ACC
̲RECV ̲CONST
T.CURRENT ̲USER ̲CAP NE PREP?
T ̲USER ̲SET ̲MOST = T ̲USER ̲SET ̲MOST LOGOR USER.ACC
̲PREP ̲CONST
END GET ̲USER ̲ACC
PROCEDURE UPDATE ̲PROCESS ̲TABLE (T.CAP)
(T ̲COMMAND ̲Q: QUEUE ̲REFERENCE,
T.SUBPROCESS ̲NO;
SUBPROCESS ̲INDEX)
T.COUNT = 0
MAX ̲COUNT = 4
FOUND = FALSE
CASE T.CAP OF
USER? T.SUBPROCESS ̲NO = FIRST ̲VDU ̲NO + T.TNO-1
T.COMMAND ̲Q = VUS ̲CMDQ + T.TNO
FOUND = TRUE
MDCO ?= LOOP
COUNT = COUNT + 1
MDCO ̲TERMINAL(COUNT) EQ T.TNO? FOUND = TRUE
FOUND EQ TRUE?T.COMMAND ̲Q=MDOS ̲CMDQ+COUNT
T.SUBPROCESS ̲NO = FIRST ̲MDCO +COUNT
-1
((EXIT
COUNT EQ MAX ̲COUNT ? EXIT
END LOOP
MSO? LOOP
COUNT = COUNT + 1
MSO ̲TERMINAL (COUNT) EQ T.TNO ? FOUND = TRUE
FOUND EQ TRUE?T.COMMAND ̲Q=MSO ̲CMDQ+COUNT
T.SUBPROCESS ̲NO = FIRST ̲MSO ̲NO
+
COUNT-1
COUNT EQ MAX ̲COUNT ? EXIT
END LOOP
SUPV? T.SUBPROCESS ̲NO = SUPV ̲NO
T.COMMAND ̲Q = SUPV ̲CMDQ, FOUND = TRUE
END CASE
FOUND EQ FALSE ? SEND ̲GARBLE (INTERNAL)
SUBPROCESS ̲TABLE (T.SUBPROCESS ̲NO) = T.TNO
END UPDATE ̲PROCESS ̲TABLE
PROCEDURE SEND ̲START ̲USER (T.COMMAND ̲Q:QUEUE ̲REFERENCE)
(T.REPLY : BOOLEAN)
BEGIN
T.COMMAND ̲Q.SUBQUEUE = 0
T.USER ̲START.CMD ̲SPLIT ̲CTR ̲OFFER ̲ID=T.CMD ̲SPLIT ̲CTR ̲ID
T.USER ̲START.CMD ̲SPLIT ̲DATA ̲OFFER ̲ID=T.CMD ̲SPLIT ̲DATA ̲ID
T.USER ̲START.FORMAT ̲SPLIT ̲CTR ̲OFFER ̲ID=FORMAT ̲SPLIT ̲CTR ̲ID
T.USER ̲START.FORMAT ̲SPLIT ̲DATA ̲OFFER ̲ID=T.FORMAT ̲SPLIT ̲DATA
̲ID
T.USER ̲START.LT ̲NO= T.TNO
T.USER ̲START.ACC = T.ACC
T.USER ̲START.CURRENT ̲CAP = T.ACTUAL ̲CAP
T.USER ̲START.CURRENT ̲USER ̲CAP = T.CURRENT ̲USER ̲CAP
T.USER ̲START.TD = T.TERMINAL ̲PROFILE.TD
T.SEND ̲PARAMS.HEADER.INFORMATION ̲TYPE = FALSE…86…1 …02…
…02… …02… …02…
T.SEND ̲PARAMS.CHECKP.STATUS = FALSE
T.SEND ̲PARAMS.HEADER.MAINTYPE = SSC ̲COMMAND
T.RESTART ̲MODE EQ TRUE? - T.SEND ̲PARAMS.HEADER ̲SUBTYPE =
RESTART
T.SEND ̲PARAMS.HEADER.SUBTYPE = START ̲USER
RESERVE ̲BUFFER (USER ̲START ̲SIZE, T.REPLY ̲Q)(T.QEL,CC):ERROR
̲OK
ERROR ? ANALYZE ̲ERROR (CC, 0)
WRITE ̲BUFFER(T.QEL,T.USER ̲START,USER ̲START ̲SIZE)(T.SIZE,
CC): ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC, 0)
SEND ̲REQUEST(T.SEND ̲PARAMS,T.QEL,T.COMMAND ̲Q,T.REPLY ̲Q)(CC):ERROR
̲OK
ERROR ? ANALYZE ̲ERROR (CC, 0)
T ̲TIME = 2
W̲A̲I̲T̲ ̲T̲I̲M̲E̲ ̲L̲I̲M̲I̲T̲E̲D̲ ̲O̲N̲ ̲Q̲U̲E̲U̲E̲ (T.REPLY ̲Q, T ̲TIME, T.WRK)
(T.ATT, T.QEL, T.SUBQ, CC)
T.REPLY = T.CC
DISMANTLE (T.QEL) (CC) : ERROR ̲OK
ERROR ? ANALYZE ̲ERROR (CC, 0)
END…86…1…02… …02… …02… …02… …02… …02… …02… …02…
PROCEDURE SET ̲SUBPROCESS ̲CAPABILITY (T.CAP:
FCT
̲CAPABILITY,
R:
TERMINAL
̲PROFILE,
CASE T.CAP OF S:
USER
̲PROFILE)
USER? R.ASSOCIATED ̲PRINTER EQ NUL?
SET CAPABILITY (T ̲SEND, T.SUBPROCESS ̲NO,FIRST
̲PRIS ̲CMD ̲Q 1
R.ASSOCIATED
̲PRINTER
-1,
VUS
̲PRIS
̲CMDQ)
SET ̲CAPABILITY (T ̲SEND,T.SUBPROCESS ̲NO,FIRST
̲PRIS ̲PRINT ̲Q +
R.ASSOCIATED
̲PRINTER-1,
VUS
̲PRIS
̲PRINTQ)
T.CURRENT ̲USER ̲CAP LOGAND PREP EQ NUL?
SET ̲CAPABILITY (T.SEND,T.SUBPROCESS ̲NO,FIRST
̲VUS ̲RELEASE ̲Q +
S.ASSOCIATED
̲RELEASE
̲POSITION-1,
AS
̲VUS
̲VUS
̲
RELQ
SET ̲CAPABILITY (T ̲SEND,T.SUBPROCESS ̲NO,FIRST
̲VUS ̲COMMAND ̲Q +
S.ASSOCIATED
̲RELEASE
̲POSITION
̲1,AS
̲VUS
̲VUS
̲
CMDQ)
MDCO? R.ASSOCIATED ̲PRINTER EQ NUL?
SET ̲CAPABILITY (T ̲SEND, T.SUBPROCESS ̲NO,FIRST
̲PRIS ̲PRINT ̲Q +
R.ASSOCIATED
̲PRINTER-1,
MDOS
̲PRIS
̲PRINT
̲Q)
SET ̲CAPABILITY (T ̲SEND,T.SUBPROCESS ̲NO,FIRST
̲PRIS ̲CMD ̲Q +
R.ASSOCIATED
̲PRINTER-1,MDOS
̲PRIS
̲CMDQ)
SET ̲CAPABILITY(NUL,T.SUBPROCESS ̲NO,FIRST
̲VUS ̲ANS ̲RES ̲RET ̲Q +
T.TNO,
MDOS
̲VUS
̲ARR
Q)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,FIRST
̲VUS ̲RELEASE ̲Q +
T.TNO,MDOS
̲VUS
̲RELQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,FIRST
̲VUS ̲RECEIVE ̲Q +
T.TNO,
MDOS
̲VUS
̲REC
Q)
…86…1…02…
…02…
…02…
…02…
…02…
…02…
…02…
…02…
MSO? R.ASSOCIATED ̲PRINTER EQ NUL?
SET ̲CAPABILITY (T ̲SEND,T.SUBPROCESS ̲NO,FIRST
̲PRIS ̲PRINT ̲Q +
R.ASSOCIATED
̲PRINTER-1,MDOS
̲PRIS
̲PRINTQ)
SET ̲CAPABILITY (T ̲SEND,T.SUBPROCESS ̲NO,FIRST
̲PRIS ̲CMDQ +
R.ASSOCIATED
̲PRINTER-1,MSOS
̲PRIS
̲CMDQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,FIRST ̲VUS
̲ANS ̲RES ̲RET ̲Q +
T.TNO,MSOS
̲VUS
̲ARRQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,FIRST ̲VUS
̲RELEASE ̲Q +
T.TNO,MSOS
̲VUS
̲RELQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,FIRST ̲VUS
̲RECEIVE ̲Q +
T.TNO,MSOS
̲VUS
̲RECQ)
END CASE
END SET ̲SUBPROCESS ̲CAPABILITY
4.2.5.6.27 R̲E̲A̲D̲ ̲S̲Y̲S̲T̲E̲M̲ ̲L̲I̲N̲E̲
4.2.5.6.27.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 procedure reads the input entered in the system
line.
The types of input are:
- ID CODE, PASSWORD
- WARNING CODE
- SION
- SIOF
- SUPV
- MDCO
- MSOS
- USER
- ASSG
The first three are not displayed and subsequent to
the input of these the VDU-memory containing the entered
data is cleared..
4.2.5.6.27.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) READ ̲SYSTEM ̲LINE (NUMBER ̲OF ̲INPUT:1..2,
SIZE ̲ONE : 1..10,
SIZE ̲TWO : 0..10,
(BUF ̲ONE, BUF ̲TWO :
ARRAY (1..10) OF CHAR
b) READ ̲SYSTEM ̲LINE (R0, R1, R2, R3, R4, R5, R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R 0 NUMBER ̲OF ̲INPUT
R 1 SIZE ̲ONE
R 2 SIZE ̲TWO
R 4 BUF ̲ONE (kept)
R 5 BUF ̲TWO (kept)
R 6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.27.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a 1)T̲y̲p̲e̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
a 2)D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
NUMBER ̲OF ̲INPUT,
SIZE ̲ONE,
SIZE ̲TWO,
BUF ̲ONE
BUF ̲TWO : I/F data
BYTE ̲SIZE DBD.IOC
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
T.BLE (m)
T.CLEAR ̲TEXT
T.T ̲SYSTEM
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
T ̲COUNT
COUNT
PROCEDURE READ ̲SYSTEM ̲LINE (NUMBER ̲OF ̲INPUT : 1..2
SIZE ̲ONE : 1..10
SIZE ̲TWO : 0..10
(BUF ̲ONE,
BUF ̲TWO : ARRAY(1..10) OF CHAR)
T.BLE.ADDRESS = T.IN ̲BUF
CASE FIELDS ̲INPUT (T.SYSTEM ̲SPLIT, T.BLE, T.SYSTEM ̲FIELD(1),
1)
(BYTES ̲TRANSFERRED, T.EMT ̲SYS ̲FIELD,CC):ERROR
̲OK
ERROR ? ANALYZE ̲ERROR (CC, 0)
END CASE
T.SUPPRESSION EQ FALSE ?
BYTE ̲SIZE = T.CLEAR ̲TEXT (2)
T.BLE BYTE ̲SIZE = BYTE ̲SIZE
T.BLE.ADDRESS = T.CLEAR ̲TEXT
CASE FIELDS ̲OUT (T.SYSTEM ̲SPLIT, T.SYSTEM ̲FIELD (1), T.BLE,
1,
BYTE ̲SIZE)(CC):ERROR
̲OK
ERROR ? ANALYZE ̲ERROR (CC, 0)
END CASE
CASE CAHNGE ̲FIELD ̲ATTR (T.SYSTEM ̲SPLIT,T.SYSTEM ̲DIELD (1),
VDU ̲NON ̲ATTR)(CC):ERROR ̲OK
ERROR? CASE ANALYZE ̲ERROR (CC,1,VDU ̲SPLIT ̲FAILED)
VDU ̲SPLIT ̲FAILED? - REPORT ̲ERROR
END CASE
END CASE
COUNT = T.OFFSET + SIZE ̲ONE
T ̲COUNT = COUNT
LOOP
T ̲COUNT = T.COUNT-1
BUF ̲ONE (SIZE ̲ONE) = T.IN ̲BUF (T.COUNT)
SIZE ̲ONE = SIZE ̲ONE - 1
SIZE ̲ONE EQ 0 ? EXIT
LOOP
NUMBER ̲OF ̲INPUTS EQ 1 ?
COUNT = COUNT + SIZE ̲TWO
LOOP
COUNT = COUNT -1
BUF ̲TWO (SIZE ̲TWO) = T.IN ̲BUF (COUNT)
SIZE ̲TWO = SIZE ̲TWO-1
SIZE ̲TWO EQ 0 ? EXIT
END LOOP
END READ ̲SYSTEM ̲LINE
4.2.5.6.28 S̲E̲T̲ ̲U̲S̲E̲R̲ ̲P̲R̲O̲F̲I̲L̲E̲ ̲S̲I̲G̲N̲ ̲T̲O̲
4.2.5.6.28.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 procedure changes the SIGN field in a user profile.
4.2.5.6.28.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲USER ̲PROFILE ̲SIGN ̲TO (T.SIGN: SWITCH ̲TYPE,
T.ID ̲CODE: USER ̲ID)(T.BLOCKED: BOOLEAN)
b) SET ̲USER ̲PROFILE ̲SIGN ̲TO (R4, R5, R6)(R5)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R5 Value of BLOCKED field
4.2.5.6.28.3 D̲a̲t̲a̲
VAR T.SIGN: SWITCH ̲TYPE
T.ID ̲CODE: USER ̲ID
T.BLOCKED: BOOLEAN
T.KEY ̲BUF: TMS ̲PARAMS
T.USER ̲PROFILE: USER ̲PROFILE
4.2.5.6.28.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE SET ̲USER ̲PROFILE ̲SIGN ̲TO (T.SIGN:SWITCH ̲TYPE,
T.ID ̲CODE: USER
̲ID
(T.BLOCKED: BOOLEAN
BEGIN
T.BLOCKED = TRUE
LOOP
LOCK ̲TABLE (USER ̲TABLE)(CC)
CC EQ OK? EXIT
END LOOP
T.KEY ̲BUF.KEY = T.ID ̲CODE
S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲ (USER ̲TABLE, T.KEY ̲BUF, ALL, T.SEND ̲BUF)
(T.USER ̲PROFILE)
T.USER ̲PROFILE.LOCK EQ TRUE?
T.USER ̲PROFILE.SIGN = T.SIGN
T.KEY ̲BUF.KEY = T.ID ̲CODE
U̲P̲D̲A̲T̲E̲ ̲E̲N̲T̲R̲Y̲ (USER ̲TABLE,T.SEND ̲BUF, T.KEY ̲BUF,
SIGNMASK, T.SIGN)
UNLOCK ̲TABLE (USER ̲TABLE (CC))
T.BLOCKED = FALSE
END PROCEDURE
4.2.5.6.29 C̲R̲E̲A̲T̲E̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲
4.2.5.6.29.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 procedure creates the connections to a VDU.
4.2.5.6.29.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CREATE ̲CONNECTION
b) CREATE ̲CONNECTION (R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 Link
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.29.3 D̲A̲T̲A̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲
LTUX ̲CON = ARRAY (1..MAX ̲LTUX) OF FDCB ̲INDEX
T̲E̲M̲C̲O̲ ̲C̲o̲m̲m̲o̲n̲
VAR T.KEY ̲BUF: SINGLE ̲PARAMS
T.TERMINAL ̲PROF: TERMINAL ̲PROFILE
T.VDU ̲CONNECTION: FDCB ̲INDEX
T.SYSTEM ̲CTR ̲FDCB: FDCB ̲INDEX
T.SYSTEM ̲DATA ̲FDCE: FDCB ̲INDEX
T.FORMT ̲CTR ̲FDCB: FDCB ̲INDEX
T.FORMAT ̲DATA ̲FDCB: FDCB ̲INDEX
T.CMD ̲CTR ̲FDCB: FDCB ̲INDEX
T.CMD ̲DATA ̲FDCB: FDCB ̲INDEX
T.LTUX ̲LINE ̲RECORD : LTUX ̲LINE ̲REC
L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR T.LINE ̲REC: NEW ̲TMS ̲DEVICE (TMS)
T.I: INTEGER…86…1…02… …02… …02… …02… …02… …02… …02… …02…
PROCEDURE CREATE ̲CONNECTIONS
T.REPLY = EXECUTION ̲OK
SDA = T.LTUX ̲LINE ̲REC.NO - ((T.LTUX ̲LINE ̲REC.LTUX ̲NO
- 1)SHIFTLL 2)
T.DEVICE ̲REC.SDA = SDA - 1
T.DEVICE ̲REC.V ̲SDID.PROFILE = TERMINAL ̲P
T.DEVICE ̲REC.U ̲SDID.LOGI CAL ̲NO = T.TNO
T.DEVICE ̲REC.PROTOCOL ̲ID = LTUX ̲VDU ̲PROTOCOL
T.DEVICE ̲REC.SD ̲TYPE = CONTROLLER
T.DEVICE ̲REC.ACCESS ̲LEVEL = NIL
T.DEVICE ̲REC.SELECT ̲BY ̲TMS = NIL
T.DEVICE ̲REC.PARAMS = VDU ̲LTUX ̲PARAMS ̲D
S̲E̲T̲ ̲D̲A̲M̲O̲S̲ ̲L̲I̲N̲E̲ ̲P̲R̲O̲F̲I̲L̲E̲
CASE CREATE ̲SUBDEVICE (LTUX ̲CON (T.LTUX ̲LINE ̲RECORD,
T.DEVICE ̲REC,DEVICE ̲SE)(T.VDU ̲CONNECTION,cc)
ERROR? CASE ANALYZE ̲ERROR (CC,1,HW)
HW? - REPORT ̲ERROR (LTUX ̲VDU ̲CC,T.DEVICE
̲REC)
T.REPLY
=
EXECUTION
̲NOT
̲OK
OK? - C̲R̲E̲A̲T̲E̲ ̲V̲D̲U̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲S̲ (T.VDU ̲CONNECTION,T.LINE
̲REC,
T.TNO,TERMINAL
̲P)(T.SYS
̲DATA
̲FDCB,
T.REPLY)
END CASE
T.REPLY NE EXECUTION ̲OK?
O̲F̲F̲E̲R̲ ̲V̲D̲U̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲S̲ (T.CMD ̲CTR ̲FDCB,USER ̲OFFERS,
TEMCO ̲USER ̲ACC) (T:CMD ̲SPLIT ̲CTR ̲CONNECTION,T.REPLY)
T.REPLY NE EXECUTION ̲OK?
FORMAT ̲INIT ̲TERMINAL (T.SYS ̲SPLIT,TMS ̲ID,T.SYS ̲CTR
̲FDCB,
T.SYS
̲DATA
̲FDCB)(CC):
ERROR
̲OK
FORMAT ̲INIT ̲TERMINAL (T.FORMAT ̲SPLIT,TMS ̲ID,T.FORMAT
̲CTR.FDCB,
T.FORMAT
̲DATA
̲FDCB)(CC):
ERROR
̲OK
END CREATE ̲CONNECTION
4.2.5.6.30 S̲T̲O̲P̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲
4.2.5.6.30.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 procedure sends a stop command to
the subprocess running the VDU and resets
the:
- subprocess acpability array ref fig
- subprocess-table used by the END
- subprocess accessprofile
4.2.5.6.30.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) STOP ̲TERMINAL ̲SUBPROCESS (COMMAND:USER
̲CMDS
(T.CAP:FCT
̲CAPABILITY,
R:TERMINAL
̲PROFILE
S:USER
̲PROFILE)
b) STOP ̲TERMINAL ̲SUBPROCESS (R5,
R6
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R5 COMMAND
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.30.3 D̲a̲t̲a̲
D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SUBPROCESS ̲ATTRIBUTES: CSF GENERAL
MDOS ̲SUBPROCESS ̲SINGLE ̲CAP,
MSOS ̲SUBPROCESS ̲SINGLE ̲CAP,
VUS ̲SUBPROCESS ̲SINGLE ̲CAP : SSC ̲APP
̲CONF
PROCESS ̲TYPE : SSC ̲GENERAL…86…1…02…
…02… …02… …02… …02… …02…
…02…
…02… …02…
S̲S̲C̲ ̲C̲O̲M̲M̲O̲N̲
SUBPROCESS ̲TABLE
T̲E̲M̲C̲O̲ ̲C̲O̲M̲M̲O̲N̲
VAR
T.CAP : FCT ̲CAPABILITY ̲TYPE
The present subprocess type running
the VDU is identified hereby
T.SUBPROCESS ̲NO : PROCESS ̲TYPE
The number of the subprocess running
the VDU.
4.2.5.6.30.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
The procedure is implemented in a main
procedure using the subprocedure RESET
̲SUBPROCEDURE ̲CAPABILITY
The common procedure SEND ̲COMMAND is used
for sending the stop command to the teminal
subprocess.
a) S̲T̲O̲P̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲
Sendsa stop command to the terminal
subprocess and restes the:
- subprocess capability (b)
- subprocess access profile
- subprocess table
b) R̲E̲S̲E̲T̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲Y̲
Reset the capability array of the
subprocess according to fig.
PROCEDURE STOP ̲TERMINAL ̲SUBPROCESS (COMMAND)
S̲E̲N̲D̲ ̲C̲O̲M̲M̲A̲N̲D̲ (COMMAND)
R̲E̲S̲E̲T̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲Y̲ (T.CAP)
SUBPROCESS ̲TABLE (T.SUBPROCESS ̲NO) = NIL
EQUIVALENCE (WRH2, SUB: SUBPROCESS ̲ATTRIBUTES)
SUB.PROFILE.FLAG = TRUE
SUB.PROFILE.LEAST = NUL
SUB.PROFILE.MOST = NUL
CHANGE ̲SUBPROCESS ̲ATTRIBUTE (T.SUBPROCESS ̲NO,SUB)
END STOP TERMINAL ̲SUBPROCESS
PROCEDURE RESET ̲SUBPROCESS ̲CAPABILITY (T.CAP.FCT
̲CAPABILITY ̲TYPE)
CASE T.CAP OF
USER? SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,VUS
̲PRIS ̲CMDQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,VUS
̲PRIS ̲PRINTQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,AS
̲VUS ̲VUS ̲RELQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,AS
̲VUS ̲VUS ̲CMDQ)
MDCO? SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,MDOS
̲PRIS ̲PRINTQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,MDOS
̲PRIS ̲CMDQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,MDOS
̲VUS ̲ARRQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,MDOS
̲VUS ̲RELQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,MDOS
̲VUS ̲RECQ)
MSO? SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,MSOS
̲PRIS ̲PRINTQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,MSOS
̲PRIS ̲CMDQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,MSOS
̲VUS ̲ARRQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL,MSOS
̲VUS ̲RELQ)
SET ̲CAPABILITY (NUL,T.SUBPROCESS ̲NO,NUL.MSOS
̲VUS ̲RECQ)
END CASE
END RESET ̲SUBPROCESS ̲CAPABILITY
4.2.5.6.31 B̲L̲O̲C̲K̲ ̲P̲A̲S̲S̲I̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
4.2.5.6.21.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 user profile and terminal profile
are updated.
4.2.5.6.31.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) BLOCK ̲PASSIVE ̲TERMINAL
b) BLOCK ̲PASSIVE ̲TERMINAL (R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.31.3 D̲a̲t̲a̲
T.TERMINAL ̲PROFILE.KEY ̲STATUS,
T.TERMINAL ̲PROFILE.CURRENT ̲CAP
T.TERMINAL ̲PROFILE.BLOCKED,
T.TERMINAL ̲PROFILE.SIGN,
T.SEND ̲BUF
T.KEY ̲BUF : TEMCO COMMON
TERMINAL ̲TABLE DBD.TMP ̲CONF
PROCEDURE BLOCK ̲PASSIVE ̲TERMINAL
C̲U̲T̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲
T.TERMINAL ̲PROFILE.KEY ̲STATUS = OFF
T.TERMINAL ̲PROFILE.BLOCKED = TRUE
T.TERMINAL ̲PROFILE.CURRENT ̲CAP = NUL
T.TERMINAL ̲PROFILE.SIGN = OFF
T.KEY ̲BUF.KEY = T.TNO
U̲P̲D̲A̲T̲E̲ ̲E̲N̲T̲R̲Y̲ (TERMINAL ̲TABLE,T.SEND ̲BUF,T.KEY ̲BUF,
TEM ̲TERM ̲MASK,T.TERMINAL ̲PROFILE.CURRENT
̲CAP)
END BLOCK ̲PASSIVE ̲TERMINAL
4.2.5.6.32 S̲T̲O̲P̲ ̲A̲C̲T̲I̲V̲E̲ ̲S̲U̲P̲V̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
4.2.5.6.32.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
As the supervisor terminal never is blocked
only a "stop user" or "block term" are
sent to the subprocess running the supervisor
terminal. Hereafter the terminal profile
and user profile is updated a the K2 format
is displayed.
4.2.5.6.32.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) STOP ̲ACTIVE ̲TERMINAL
b) STOP ̲ACTIVE ̲TERMINAL (R6)
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
None
4.2.5.6.32.3 D̲a̲t̲a̲
T.SIGN,
T.KEY ̲BUF,
T.TERMINAL ̲PROFILE.CURRENT ̲CAP,
T.TERMINAL ̲PROFILE.SIGN
TEM ̲TERM ̲MASK
COMMAND: TEMCO ̲COMMON
4.2.5.6.32.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲
PROCEDURE STOP ̲ACTIVE ̲SUPV ̲TERMINAL
T.ACTUAL ̲CAP EQ SUPV? COMMAND = STOP ̲USER
COMMAND = BOLOCK ̲TERM
S̲T̲O̲P̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲S̲U̲B̲P̲R̲O̲C̲E̲S̲S̲ (COMMAND)
T.TERMINAL ̲PROFILE.CURRENT ̲CAP = NUL
T.TERMINAL ̲PROFILE.SIGN = OFF
T.KEY ̲BUF.KEY = T.TNO
UPDATE ̲ENTRY (TERMINAL ̲TABLE,T.SEND ̲BUF,T.KEY ̲BUF,
TEM ̲TERM ̲MASK,T.TERMINAL ̲PROFILE.CURRENT
̲CAP)
T.SIGN = OFF
S̲E̲T̲ ̲U̲S̲E̲R̲ ̲P̲R̲O̲F̲I̲L̲E̲ ̲S̲I̲G̲N̲ ̲T̲O̲ (T.SIGN,T.USER ̲PROFILE.USER
̲ID)
D̲I̲S̲P̲L̲A̲Y̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲F̲O̲R̲M̲A̲T̲ ̲(K2)
END STOP ̲ACTIVE ̲SUPV ̲TERMINAL
T.I = -1
LOOP
T.I = T.I+1
T.LINE ̲REC.SDA = I
T.I EQ 0,2,4? - T.LINE ̲REC.PROTOCOL ̲ID=VDU ̲CONTROL
̲SPLIT
T.LINE ̲REC, PROTOCOL ̲ID = VDU ̲DATA ̲SPLIT ̲PLIT
CREATE ̲SUBDEVICE (T.CFH ̲CON, T.LINE ̲REC, DEVICE
̲SE)
((T.CONN, I.CC): ERROR ̲OK
ERROR? ANALYSE ̲ERROR (T.CC,0)
CASE T.I OF
0? T.SYSTEM ̲CONTR ̲FDCB = T.CONN
1? T.SYSTEM ̲DATA ̲FDCB = T.CONN
2? T.CMD ̲CONTR ̲FDCB = T. CONN
3? T.CMD ̲DATA ̲FDCB = T.CONN
4? T.FORMAT ̲CONTR ̲FDCB = T.CONN
5? T.FORMAT ̲DATA ̲FDCB = T.CONN
END CASE
T.I EQ % EXIT
END LOOP
END PROCEDURE
4.2.5.7 S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
4.2.5.7.1 C̲F̲H̲ ̲-̲ ̲T̲E̲M̲C̲O̲
TEMCO receives the following commands from CFH:
- SET ̲ACCESS ̲PROFILES
- START ̲COR
- CLOSE ̲INITIAL
- CLOSE ̲FINAL
- LINE ̲ERROR
- START ̲SUPV
- STOP ̲SUPV
S̲E̲T̲ ̲A̲C̲C̲E̲S̲S̲ ̲P̲R̲O̲F̲I̲L̲E̲S̲
TEMCO sets the access profiles of the terminal subprocess
queues and terminal subprocess.
S̲T̲A̲R̲T̲ ̲C̲O̲R̲
The execution of the TEMCO program starts.
C̲L̲O̲S̲E̲ ̲I̲N̲I̲T̲I̲A̲L̲
Specifies that an ordered close-down will take place.
C̲L̲O̲S̲E̲ ̲F̲I̲N̲A̲L̲
The execution of an ordered close-down has begun.
L̲I̲N̲E̲ ̲E̲R̲R̲O̲R̲
Indicates a hardware errror.
S̲T̲A̲R̲T̲ ̲S̲U̲P̲V̲
Specifies that only the supervisor is allowed to sign
on.
S̲T̲O̲P̲ ̲S̲U̲P̲V̲
Cancels the previous START ̲SUPV command.
4.2.5.7.2 E̲H̲D̲-̲T̲E̲M̲C̲O̲
TEMCO receives the following commands from EHD:
- UNBLOCK
- BLOCK
- TERMINAL ̲PROFILE ̲CHANGE
- S.INTERROGATION
- S.WARNING
- S.BOTH
- SYSTEM ̲KEY
- KEY ̲OFF
- KEY ̲ON
U̲N̲B̲L̲O̲C̲K̲
Corresponds to the supervisor command UNBLOCK ̲TERMINAL.
B̲L̲O̲C̲K̲
Corresponds to the supervisor command BLOCK ̲TERMINAL.
T̲E̲R̲M̲I̲N̲A̲L̲ ̲P̲R̲O̲F̲I̲L̲E̲ ̲C̲H̲A̲N̲G̲E̲
Corresponds to the supervisor command TERMINAL ̲PROFILE
̲CHANGE.
S̲.̲W̲A̲R̲N̲I̲N̲G̲
Corresponds to the MMON command S.WARNING.
S̲.̲I̲N̲T̲E̲R̲R̲O̲G̲A̲T̲I̲O̲N̲
Corresponds to the MMON command S.INTERROGATION.
S̲.̲B̲O̲T̲H̲
Corresponds to the MMON command S.INTERROGATION.
S̲Y̲S̲T̲E̲M̲ ̲K̲E̲Y̲
Indicates that the system key has been depressed.
K̲E̲Y̲ ̲O̲F̲F̲
Indicates that the security key has been turned to
the off position.
K̲E̲Y̲ ̲O̲N̲
Indicates that the security key has been turned to
the on position.