top - download
⟦9297f1ebf⟧ Wang Wps File
Length: 34728 (0x87a8)
Types: Wang Wps File
Notes: CPS/SDS/029 ISSUE 2
Names: »1761A «
Derivation
└─⟦080c9775e⟧ Bits:30006085 8" Wang WCS floppy, CR 0131A
└─ ⟦this⟧ »1761A «
WangText
K…05…K…07…D…01…D…05…D…07…C…0c…C…0f…C…02…C C…07…B…0a…B…0d…B…01…B…05…B…07…A…0c…A…00…A…02…A…07…@…86…1
…02…
…02…
…02…
…02…CPS/SDS/029
…02…850501…02……02…
SYSTEM
STATUS
AND CONTROL
DETAILED
DESIGN
SPECIFICATION…02…ISSUE
1…02…CAMPS
4.2.2.4.8.5.j P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲M̲M̲A̲N̲D̲ ̲T̲E̲R̲M̲I̲N̲A̲T̲E̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Subsequent to the accept of the command entered:
- if ERROR; Display explanation of error-code and
return to current format
- else display format and field data if actual
- set up waiting point for reception of key
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.4.8.5j-1
PROCEDURE COMMAND ̲TERMINATE (COMMAND: COMMAND ̲PARAM)
INTERFACE ̲NO = FORMAT SPLIT
ERROR ̲DISP EQ TRUE? - D̲I̲S̲P̲L̲A̲Y̲ ̲A̲N̲D̲ ̲R̲E̲T̲U̲R̲N̲
FORMAT ̲ID = COMMAND ̲FORMAT ̲ID
D̲I̲S̲P̲L̲A̲Y̲ ̲F̲O̲R̲A̲T̲ ̲(̲F̲O̲R̲M̲A̲T̲ ̲I̲D̲)̲
COMMAND ̲DATA ̲REQ EQ TRUE? - D̲I̲S̲P̲L̲A̲Y̲ ̲F̲I̲E̲L̲D̲S̲ ̲(̲C̲O̲M̲M̲A̲N̲D̲)̲
FORMAT ̲ID NE COMMAND.CURRENT ̲MENU?
INTERFACE ̲NO = COMMAND ̲SPLIT
C̲L̲E̲A̲N̲ ̲C̲O̲M̲M̲A̲N̲D̲ ̲S̲P̲L̲I̲T̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲
END COMMAND.TERMINATE
Figure 4.2.2.4.8.5 j -1
4.2.2.4.8.5.k P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲A̲N̲D̲ ̲R̲E̲T̲U̲R̲N̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The explanation of the error-code is displayed on the
response line before the cursor is returned to the
cursor position prior to the depressing of the command
̲key.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.4.8.5.k-1.
PROCEDURE DISPLAY ̲AND ̲RETURN
ERROR ̲CODE = PRINT ̲BUF.ID
Convert error ̲code from ASCII to bin
EQUIVALENCE(COMMAND ̲SPLIT ̲FIELDS.FIELD ̲OUT, REG:FIELD
̲LIST ̲INFO)
REG.FIRST ̲FIELD = RESPONSE ̲FIELD
REG.NUMBER ̲OF ̲FIELDS = 1
REG.BYTE ̲LENGTH = RESPONSE ̲REG ̲SIZE
O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲ (TEXT ̲ARR(ERROR ̲CODE), COMMAND ̲SPLIT
̲FIELDS)
SAVE ̲CURSOR EQ TRUE? - SAVE ̲CURSOR = FALSE, INTERFACE
̲NO = FOR-
MAT ̲SPLIT)
EQUIVALENCE(COMMAND ̲SPLIT ̲FIELDS,FIELD ̲OUT,REQ:FIELD
̲LIST ̲INFO)
REG.FIRST ̲FIELD = COMMAND ̲FIELD
REG.NUMBER ̲OF ̲FIELDS = 2
REG.BYTE ̲LENGTH = COMMAND ̲REC ̲SIZE + ID ̲REG ̲SIZE
O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲(CLEAR ̲COMMAND ̲LINE, COMMAND ̲SPLIT ̲FIELDS)
C̲U̲R̲S̲O̲R̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲ ̲S̲E̲T̲(COMMAND ̲SPLIT ̲FIELDS, COMMAND ̲FIELD)
END DISPLAY ̲AND ̲RETURN
Figure 4.2.2.4.8.5.k-1
4.2.2.4.8.5.l P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲F̲I̲E̲L̲D̲S̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The field list and the output ̲buffer are filled out
with the data to be sent to the unprotected fields
of the format displayed.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.4.8.5.l-1
PROCEDURE DISPLAY ̲FIELDS(COMMAND: COMMAND ̲PARAM)
KEY ̲BUF.KEY = ID
CASE COMMAND.FORMAT ̲ID OF:
LXLN? - DATA ̲FIELDS = LTUX ̲LINE ̲FIELDS
S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲ (LTUX ̲LINE ̲TABLE, KEY
̲BUF, ALLMASK,
MP ̲BUF)(VALID ̲BUFFER)
C̲O̲N̲V̲E̲R̲T̲ ̲L̲X̲L̲N̲ ̲R̲E̲C̲ (VALID ̲BUFFER, LXLN ̲BUFFER)
LTUX?- DATA ̲FIELDS = LTUX ̲FIELDS
S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲ (LTUX ̲TABLE, KEY ̲BUF,
ALLMASK,
MP ̲BUF)(VALID ̲BUFFER)
C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲X̲ ̲R̲E̲C̲ (VALID ̲BUFFER, LTUX.BUFFER)
BSMX? - DATA ̲FIELDS = BSMX ̲FIELDS
SEARCH ̲ENTRY (BSM ̲X ̲TABLE, KEY ̲BUF,
ALLMASK,
TMP ̲BUF)(VALID ̲BUFFER)
C̲O̲N̲V̲E̲R̲T̲ ̲B̲S̲M̲ ̲X̲ ̲R̲E̲C̲ (VALID ̲BUFFER, BSM ̲X
̲BUFFER)
LTLN? - DATA ̲FIELDS = LTU ̲LINE ̲FIELDS
S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲ (LTU ̲LINE ̲TABLE, KEY
̲BUF, ALLMASK,
TMP ̲BUF)(VALID ̲BUFFER)
C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲L̲N̲ ̲R̲E̲C̲ (VALID ̲BUFFER, LTLN
̲BUFFER)
LTUU?- DATA ̲FIELDS = LTU ̲FIELDS
S̲E̲A̲R̲C̲H̲ ̲E̲N̲T̲R̲Y̲ (LTU ̲TABLE, KEY ̲BUF,
ALLMASK,
TMP ̲BUF)(VALID ̲BUFFER)
C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲ ̲R̲E̲C̲ (VALID ̲BUFFER, LTU ̲BUFFER)
END CASE
OUTPUT FIELDS (DATA ̲FIELDS, OUTPUT ̲BUFFER)
END DISPLAY ̲FIELDS
Figure 4.2.2.4.1.5.l-1
4.2.2.4.8.5.m P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲L̲X̲L̲N̲ ̲R̲E̲C̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The data from the LTUX ̲line record are converted to
the ASCII characters use in the format fields.
F̲l̲o̲w̲g̲r̲a̲m̲
PROCEDURE CONVERT ̲LXLN ̲REC
COUNT = 4
EQUIVALENCE(VALID ̲BUFFER, REC: LTUX ̲LINE ̲REC)
LXLN ̲BUFFER(COUNT..COUNT+1) = PRINT ̲BUFFFER.ID
COUNT = COUNT + 8
LXLN ̲BUFFER(COUNT) = DEV ̲TO ̲ASCII(REC.DEV ̲TYPE)
COUNT = COUNT + 8
LXLN ̲BUFFER(COUNT) = REC.ALPHABET + ASCONI
COUNT = COUNT + 8
LXLN ̲BUFFER(COUNT) = REC. SPEED + ASCONI
COUNT = COUNT + 8
LXLN ̲BUFFER(COUNT) = STATUS ̲1 ̲TO ̲ASCII(REC.STATUS)
END CONVERT ̲LXLN ̲REC
4.2.2.4.8.5.n P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲X̲ ̲R̲E̲C̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The data from the LTUX ̲REC are:
- converted to ASCII chars
- Loaded into the LTUX ̲BUFFER
F̲l̲o̲w̲g̲r̲a̲m̲
PROCEDURE CONVERT ̲LTUX ̲REC (VALID ̲BUFFER, LTUX ̲BUFFER)
COUNT = 4
EQUIVALENCE (VALID ̲BUFFER ̲REC: LTUX ̲REC)
LTUX ̲BUFFER (COUNT..COUNT + 1) = PRINT ̲BUFFER.ID
COUNT = COUNT + 8
LTUX ̲BUFFER (COUNT..COUNT + 1) = PRINT ̲BUFFER.ID
COUNT = COUNT + 8
LTUX ̲BUFFER (COUNT) = STATUS ̲TO ̲ASCII(REC.STATUS)
END CONVERT ̲LTUX ̲REC
4.2.2.4.8.5.o P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲B̲S̲M̲X̲ ̲R̲E̲C̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The data from the BSMX ̲REC are:
- converted to ASCII characters
- loaded into the BSMX ̲BUFFER
F̲l̲o̲w̲g̲r̲a̲m̲
PROCEDURE CONVERT ̲BSMX ̲REC
COUNT = 4
EQUIVALENCE (VALID ̲BUFFER, REC: BSMX ̲REC)
BSMX ̲BUFFER (COUNT ..COUNT + 1) = PRINT ̲BUFFER.ID
COUNT = COUNT + 8
BSM ̲X ̲BUFFER(COUNT) = STATUS ̲2 ̲TO ̲ASCII (REC.STATUS)
END CONVERT ̲BSMX ̲REC
4.2.2.4.8.5.p P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲ ̲L̲I̲N̲E̲ ̲R̲E̲C̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The data from the LTU line record are:
- converted to ASCII characters
- loaded into the LTLN ̲BUFFER
F̲l̲o̲w̲g̲r̲a̲m̲
PROCEDURE CONVERT ̲LTU ̲LINE ̲REC (VALID ̲BUFFER, LTLN
̲BUFFER)
COUNT = 4
EQUIVALENCE (VALID ̲BUFFER, REC:LTU ̲LINE ̲REC)
LTLN ̲BUFFER(COUNT..COUNT + 1) = PRINT ̲BUFFER.ID
COUNT = COUNT + 8
LTLN ̲BUFFER(COUNT) = DEV ̲TO ̲ASCII (REC.DEV ̲TYPE)
COUNT = COUNT + 8
LTLN ̲BUFFER (COUNT) = REC. SPEED + ASCON 1
COUNT = COUNT + 8
LTLN ̲BUFFER (COUNT) = STATUS ̲1 ̲TO ̲ASCII (REC.STATUS)
END CONVERT ̲LTU ̲LINE ̲REC
4.2.2.4.8.5.q P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲V̲E̲R̲T̲ ̲L̲T̲U̲ ̲R̲E̲C̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The data from the LTU ̲REC are
- converted to ASCII characters
- loaded into the LTU ̲BUFFER
F̲l̲o̲w̲g̲r̲a̲m̲
PROCEDURE CONVERT ̲LTU ̲REG
COUNT = 4
EQUIVALENCE (VALID ̲BUFFER, REG: LTU ̲REG)
LTU ̲BUFFER (COUNT..COUNT + 1) = PRINT ̲BUFFER.ID
COUNT = COUNT + 4
LTU ̲BUFFER (COUNT) = REG.DEV ̲TYPE + ASCONI
COUNT = COUNT + 4
LTU ̲BUFFER (COUNT = STATUS ̲2 ̲TO ̲ASCII (REG.STATUS)
END CONVERT ̲LTU ̲REG
4.2.2.4.8.5.r P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲A̲T̲A̲ ̲T̲E̲R̲M̲I̲N̲A̲T̲E̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
When data from the format split have been entered and
accepted:
- the format split is cleaned
- current menu is displayed
- command split is cleaned
- cursor position in the command field
F̲l̲o̲w̲g̲r̲a̲m̲
PROCEDURE DATA ̲TERMINATE
FORMAT ̲ID = COMMAND.CURRENT ̲HENV
D̲I̲S̲P̲L̲A̲Y̲ ̲F̲O̲R̲M̲A̲T̲ (FORMAT ̲ID)
INTERFACE ̲NO = COMMAND ̲SPLIT
C̲L̲E̲A̲N̲ ̲C̲O̲M̲M̲A̲N̲D̲ ̲S̲P̲L̲I̲T̲
S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲
PRINT = COMP
PRINT ̲LOG = TRUE
END ̲DATA ̲TERMINATE
4.2.2.4.9 Q̲U̲E̲U̲E̲ ̲I̲N̲F̲O̲R̲M̲
The QUEUE ̲INFORM receives information of the VDU and
ROP conditions, and START/CLOSE commands from WAMCO.
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̲s̲
The COPSY ̲INFORM module initializes/dismantles its
connections to the VDU or ROP after receiving a command
from WAMCO.
4.2.2.4.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) QUEUE ̲INFORM (SD ̲REF, AP ̲REF)
(TERMINATE: BOOLEAN)
b) QUEUE ̲INFORM (R6, R2, R5)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 SO ̲REF
R4 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R2 TERMINATE
R6 SO ̲REF
4.2.2.4.9.3 Q̲U̲E̲U̲E̲ ̲I̲N̲F̲O̲R̲M̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
The following components are contained in the QUEUE
̲INFORM module:
- QUEUE ̲INFORM
- CONTROL ̲TERMINALS
- CONTROL ̲WDP ̲VDU
- CONTROL ̲WDP ̲ROP
Each of the components are implemented as a procedure.
4.2.2.4.9.4 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̲
START ̲CMI ̲RECORD 4.1.4.7
WAMCO ̲COMMANDS ̲TO ̲CMI,
QEL ̲ATTRIBUTES,
QEL: DBD.CSF
a2) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SO ̲REF DBD.CSF
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
PRINTER
SUB ̲LOOP
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR WAMCO ̲ATTRIBUTES: QEL ̲ATTRIBUTES
4.2.2.4.9.5 Q̲U̲E̲U̲E̲ ̲I̲N̲F̲O̲R̲M̲ ̲D̲e̲s̲i̲g̲n̲
The procedures contained in the QUEUE ̲INFORM module
are shown in figure 4.2.2.4.9.5-1.
4.2.2.4.9.5.a P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲Q̲U̲E̲U̲E̲ ̲I̲N̲F̲O̲R̲M̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The QEL ̲ATTRIBUTES are received and the SUBTYPE is
used to call the subprocedures for initiate/dismantle
the WDP ̲VDU and/or WDP ̲ROP.
A reply is returned to the WAMCO and the input from
the VDU is awaited. If close ̲down start ̲up from WAMCO
is awaited.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.4.9.5a-1
QUEUE INFORM
START CMI WDP
CONTROL WDP VDU
CONTROL WDP ROP
SEND SSC REPLY
FIGURE 4.2.2.4.9.5-1
PROCEDURES OF THE QUEUE ̲INFORM MODULE
PROCEDURE QUEUE ̲INFORM (WAM ̲ATTRIBUTES: QEL ̲ATTRIBUTES,
QEL, QEL ̲REFERENCE,
SUBLOOP = TRUE SUBQUEUE: SUBQUEUE ̲INDEX)
TERMINATE = FALSE (TERMINATE: BOOLEAN)
SUBQUEUE NE WAM ̲Q? - S̲E̲N̲D̲ ̲G̲A̲R̲B̲L̲E̲
EQUIVALENCE (WAM ̲ATTRIBUTES.HEADER, REQ: QEL ̲HEADER
̲TYPE)
REG.MAINTYPE NE COMMANDS ̲FROM ̲SSC? - SEND ̲GARBLE(GIVE
̲
UP,QERROR,CMIQ,QI)
CASE REG.SUBTYPE OF
START ̲UP ̲WAMCO? - SUBLOOP = TRUE
S̲T̲A̲R̲T̲ ̲C̲M̲I̲ ̲W̲D̲P̲ (WAM ̲ATTRIBUTES,
QEL, CC)
WDP ̲VDU ̲CONDITION?- C̲O̲N̲T̲R̲O̲L̲ ̲W̲D̲P̲ ̲V̲D̲U̲ (WAM ̲ATTRIBUTES,QEL,CC)
WDP ̲ROP ̲CONDITION?- C̲O̲N̲T̲R̲O̲L̲ ̲W̲D̲P̲ ̲R̲O̲P̲ (WAM ̲ATTRIBUTES,QEL,CC)
CLOSE ̲DOWN ̲WAMCO? SUBLOOP = FALSE
CLOSE ̲CMI (WAM ̲ATTRIBUTES,
QEL, CC)
END CASE
WAM ̲ATTRIBUTES.OBJECT EQ BUFFER? -R ̲FLAG = BUFFER ̲R
R ̲FLAG = QEL ̲R
S̲E̲N̲D̲ ̲S̲S̲C̲ ̲R̲E̲P̲L̲Y̲ (R ̲FLAG, QEL, CC)
(GIVE ̲UP,QERROR,SMLQ,QI)
SUBLOOP EQ FALSE?
CASE INIT ̲RECEIVE ̲FIRST ̲QEL(TRUE, WAMCO ̲IN, Q ̲OP)
(CC): ERROR ̲OK
ERROR? - ANALYSE ̲ERROR (CC,0)
END CASE
END QUEUE ̲INFORM
Figure 4.2.2.4.9.5.a - 1
4.2.2.4.9.5.b P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲T̲A̲R̲T̲ ̲C̲M̲I̲ ̲W̲D̲P̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The VDU splits are initialized to the FORMAT ̲HANDLER
and the High Level menu is displayed.
The WDP ̲ROP connection is "offered" if WDP ̲ROP is present.
the IO waiting point is initialized.
F̲l̲o̲w̲g̲r̲a̲m̲
NA.
4.2.2.4.9.5.c P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲W̲D̲P̲ ̲V̲D̲U̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
If the WDP ̲VDU is reported up the COMMAND ̲SPLIT and
the FORMATE ̲SPLIT "terminals" are initiated to the
FORMAT ̲HANDLER, the HIGH ̲LEVEL menu is displayed and
an "init ̲receive ̲control" is sent for the command split.
If the WDP ̲VDU is reported down the terminals are removed.
F̲l̲o̲w̲g̲r̲a̲m̲
NA.
4.2.2.4.9.5 d P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲V̲D̲U̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
If FLAG equal up the VDU splits are initiated, (INIT
̲TERMINAL), the High Level menu is displayed and VDU
input is awaited, else the VDU splits are "removed"
and the waiting point cancelled.
F̲l̲o̲w̲g̲r̲a̲m̲
NA.
4.2.2.4.9.5.e P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲W̲D̲P̲ ̲R̲O̲P̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
If FLAG equals up the ROP Connection is "offered".
Else the ROP connection is dismantled and the variable
PRINTER is set FALSE.
F̲l̲o̲w̲g̲r̲a̲m̲
NA.
4.2.2.5 C̲o̲m̲m̲o̲n̲ ̲C̲M̲I̲ ̲D̲a̲t̲a̲
4.2.2.5.1 G̲e̲n̲e̲r̲a̲l̲ ̲D̲a̲t̲a̲
VAR AP ̲REF = (IO ̲OP, Q ̲OP)
DATA ̲TYPE = (FUNCTION ̲KEYS, COMMANDS, DATA)
ACCEPT: BOOLEAN
INFO: INFO ̲TYPE
ERROR ̲DISP: BOOLEAN
KEY: KEY ̲TYPE
IN ̲BUFFER = ARRAY (1..90) OF BYTE
VALID ̲BUFFER = ARRAY (1..20) OF INTEGER
VALID ̲1 ̲BUFFER = ARRAY (1..10) OF INTEGER
VALID ̲2 ̲BUFFER = ARRAY (1..50) OF INTEGER
VALID ̲3 ̲BUFFER = ARRAY (1..10) OF INTEGER
INTERFACE ̲NO = FORMAT ̲SPLIT, COMMAND ̲SPLIT
ref. IOC.FORMAT ̲HANDLER
FLAG = OK..VOLUME ̲FAILED
subset of SSC Completion Codes.
TYPE IN ̲BUFFER: BUFFER
BUFFER: ARRAY (1..1) OF INTEGER
SEND ̲BUFFER: BUFFER
INFO ̲TYPE = (TRUE ̲INF, FALSE ̲INF, KEY
̲ER, CMD ̲ER, DATA ̲ER, START
̲UP, NO ̲CONTROL)
CONST COMMAND ̲FIELDS =
RESPONSE ̲FIELD =
ID ̲FIELD =
ID ̲REC ̲SIZE =
RESPONSE ̲REC ̲SIZE =
COMMAND ̲REC ̲SIZE =
TYPE KEY ̲TYPE = (ENTER ̲K, CANCEL ̲K, CMD
̲KEY)
4.2.2.5.2 C̲o̲m̲m̲a̲n̲d̲ ̲D̲a̲t̲a̲
VAR COMMAND ̲TABLE = ARRAY (1..NO ̲OF ̲COMMANDS)
OF COMMAND ̲PARAM
TYPE COMMN ̲PARAM =
RECORD
COMMAND: LONG
FORMAT ̲ID: FORMAT ̲TYPE;
CURRENT ̲MENU: FORMAT ̲TYPE;
FIELD ̲LIST: POINTER;
DATA ̲REQ: BOOLEAN;
ID ̲CHECK: BOOLEAN;
ID ̲MAX: INTEGER
WAIT ̲TIME: 0..MAX ̲WAIT
SIZE: INTEGER
END
4.2.2.5.3 F̲I̲E̲L̲D̲ ̲L̲I̲S̲T̲S̲ ̲D̲a̲t̲a̲
VAR COMMAND ̲SPLIT ̲FIELDS= ARRAY (1..7) OF FDT
LTUX ̲LINE ̲FIELDS = ARRAY (1..19) OF FDT
LTUX ̲FIELDS = ARRAY (1..7) OF FDT
BSMX ̲FIELDS = ARRAY (1..5) OF FDT
LTU ̲LINE ̲FIELDS = ARRAY (1..9) OF FDT
LTU ̲FIELDS = ARRAY (1..7) OF FDT
DISK ̲DRIVE ̲FIELDS = ARRAY (1..6) OF FDT
VOLUME ̲FIELDS = ARRAY (1..8) OF FDT
START ̲ACTIVE ̲FIELDS= ARRAY (1.. ) OF FDT
CLOSE ̲DOWN ̲FIELDS = ARRAY (1..6) OF FDT
SWITCH ̲OVER ̲FIELDS = ARRAY (1.. ) OF FDT
START ̲STANDBY ̲FIELDS= ARRAY (1..9) OF FDT
ADJUST ̲TIME ̲FIELDS = ARRAY (1..6) OF FDT
LOAD ̲MODI ̲FIELDS = ARRAY (1..12) OF FDT
SET ̲TRACE ̲FIELDS = ARRAY (1..6) OF FDT
DELETE ̲CIF ̲FIELDS = ARRAY (1..2) OF FDT
PRINT ̲CON ̲FIELDS = ARRAY (1..7) OF FDT
PRINT ̲SW ̲FIELDS = ARRAY (1..4) OF FDT
ERROR ̲FIELDS = ARRAY (1..3) OF FDT
TERMINATE ̲OPERATOR ̲
ONLY ̲FIELDS = ARRAY (1..2) OF FDT
The field lists are used for interface to the operator
VDU via the Format Handler
TYPE FIELDS
RECORD
FIELD ̲IN: FIELD ̲LIST ̲INFO;
FIELD ̲OUT: FIELD ̲LIST ̲INFO;
FIELD ̲LIST: FIELD ̲LIST.TYPE;
END;
FIELD ̲LIST ̲INFO =
RECORD
FIRST ̲FIELD,
NUMBER ̲OF ̲FIELDS
BYTE ̲LENGTH: INTEGER
END
TYPE FDT: FIELD ̲LIST ̲TYPE
TYPE FIELD ̲LIST ̲TYPE= ARRAY (1..1) OF FIELD ̲DESCRIPTOR
̲TYPE
TYPE FIELD ̲DESCRIPTOR ̲TYPE =
RECORD
LINE ̲NO,
INCARNATION ̲NO,
FIELD ̲NO: INTEGER;
END;
4.2.2.6 C̲o̲m̲m̲o̲n̲ ̲C̲M̲I̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
4.2.2.6.1 L̲O̲G̲
4.2.2.6.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Send a report to the WDP ̲ROP.
4.2.2.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) LOG
b) LOG (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK
4.2.2.6.1.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
N/A
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
N/A
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE PRINT ̲TYPE = (INI, COMP, CANC, SYS, NOT ̲AC)
TYPE PRINT ̲BUFFER ̲TYPE =
RECORD
HEADER: ARRAY (1..4) OF BYTE
COMMAND: ARRAY (1..4) OF CHAR
ID: ARRAY (1..4) OF CHAR
ACTION: ARRAY (1..4) OF CHAR
TIME: ARRAY (1..14) OF CHAR
END
VAR
PRINT: PRINT ̲TYPE
PRINT ̲LOG: BOOLEAN
PRINT ̲BUFFER PRINT ̲BUFFER ̲TYPE
INIT PRINT = COMP
4.2.2.6.1.4 L̲O̲G̲ ̲D̲e̲s̲i̲g̲n̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
A log of either the "control initiated" or "control
terminate" is sent to the WDP ̲ROP. The log contains
the time of day DTG ̲TYPE.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.6.1.4-1.
PROCEDURE LOG
CASE PRINT OF:
INI? - PRINT ̲BUFFER.ACTION = 'INITIATED'
COMP? - PRINT ̲BUFFER.ACTION = 'COMPLETED'
CANC? - PRINT ̲BUFFER.ACTION = "SYSTEM TERMINATED"
NOT ̲AC? - PRINT ̲BUFFER ̲ACTION = 'NOT ACCEPTED'
END CASE
CASE READ ̲TIME (SYSTEM ̲TIME)(PRINT ̲BUFFER.DATE):ERROR
̲OK
ERROR?
OK?
END CASE
CASE APPEND ̲BYTES(FDIR, FILADD, BLE ̲1)(CC): ERROR ̲OK
ERROR? ANALYZE ̲ERROR(CC,PAPER ̲OUT)
PRINTER = FALSE
OK?
END CASE
PRINT ̲LOG = FALSE
END LOG
Fig. 4.2.2.6.1.4-1
4.2.2.6.2 D̲I̲S̲P̲L̲A̲Y̲ ̲F̲O̲R̲M̲A̲T̲
4.2.2.6.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Get the specified format from the operator format file
and display it.
4.2.2.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) DISPLAY ̲FORMAT (FORMAT ̲ID: FORMAT ̲ID ̲TYPE)
b) DISPLAY ̲FORMAT (R2, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
R2 Pointer FORMAT ̲ID
R6 LINK
4.2.2.6.2.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
INTERFACE ̲NO 4.2.2.5.1
FORMAT ̲ID 4.2.2.5.2
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
N/A
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
N/A
4.2.2.6.2.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲F̲O̲R̲M̲A̲T̲ ̲(̲F̲O̲R̲M̲A̲T̲ ̲I̲D̲)̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
To display a new format the following steps are taken:
- clear format split
- get data from format file
- output format
F̲l̲o̲w̲g̲r̲a̲m̲
PROCEDURE DISPLAY ̲FORMAT (FORMAT ̲ID)
ER ̲CC = FALSE
CASE SEND ̲CONTROL (INTERFACE ̲NO, CLEAR ̲SPLIT)
(CC): ERROR ̲OK
ERROR?-CASE ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED)OF
VDU ̲SPLIT ̲FAILED? ER ̲CC = TRUE
END CASE
END CASE ̲CONTROL
ER ̲CC EQ TRUE?
CASE GET ̲FORMAT (INTERFACE ̲NO, FORMAT ̲ID)
(CC): ERROR ̲OK
ERROR?-CASE ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED)OF
VDU ̲SPLIT ̲FAILED? ER ̲CC = TRUE
END CASE
END CASE
ER ̲CC EQ TRUE?
CASE OUTPUT ̲FORMAT (INTERFACE ̲NO) (CC): ERROR ̲OK
ERROR? CASE ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED)
OF
VDU ̲SPLIT ̲FAILED? ER ̲CC = TRUE
END CASE
END CASE
END DISPLAY ̲FORMAT
4.2.2.6.3 I̲N̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲
4.2.2.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̲
Input of the unprotected fields of the format.
4.2.2.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) INPUT ̲FIELDS (FIELDS)
b) INPUT ̲FIELDS (R1, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer FIELDS
R6 LINK
4.2.2.6.3.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
BLE DBD
FIELDS 4.2.2.5.3
INTERFACE ̲NO 4.2.2.5.1
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FIELDS.FIELD ̲IN
FIELDS.FIELD ̲LIST
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR BLE ̲1: BLE
4.2.2.6.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲I̲N̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The procedure sets up the parameters to be used to
defined input from the WDP ̲VDU via the Format Handler
for the:
- Command split, the command split field list is
used for setting up the parameters.
- Format Split, the field list specified in the command
table is used for setting up the parameters.
F̲l̲o̲w̲g̲r̲a̲m̲
Ref. Fig. 4.2.2.6.3.4.-1
PROCEDURE INPUT ̲FIELDS
ER ̲CC = FALSE
INTERFACE ̲NO EQ COMMAND ̲SPLIT? - FIELDS = COMMAND ̲SPLIT
̲FIELDS
NUMBER ̲OF ̲FIELDS = FIELDS.FIELD ̲IN.NUMBER ̲OF ̲FIELDS
FIRST ̲FIELD = FIELDS.FIELD ̲IN.NUMBER ̲OF ̲FIELDS
CASE ̲INIT ̲FIELDS ̲INPUT (INTERFACE ̲NO, BLE ̲1, FIRST
̲FIELD,
NUMBER ̲OF ̲FIELDS, IO ̲OP)(CC):ERROR
̲OK
ERROR? CASE ANALYSE ̲ERROR(CC,!,VDU ̲SPLIT ̲FAILED)
OF
VDU ̲SPLIT ̲FAILED? - ER ̲CC = TRUE
END CASE
END CASE
END INPUT ̲FIELDS
Fig. 4.2.2.6.3.4-1
4.2.2.6.4 O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲
4.2.2.6.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Output data to the specified fields on the VDU.
4.2.2.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) OUTPUT ̲FIELDS (OUTPUT ̲BUFFER: BYTE ̲ARR,
FIELD ̲LISTS: FIELDS
b) OUTPUT ̲FIELDS (R1, R3, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer output buffer
R3 Pointer FIELD ̲LIST
R6 LINK
4.2.2.6.4.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
VAR BLE ̲2: BLE
TYPE BLE
RECORD
KIND: INTEGER
LINK: POINTER
ADDRESS: POINTER
BYTE ̲SIZE: INTEGER
END
INIT BLE ̲2= 0, NIL
4.2.2.6.4.4 D̲e̲s̲i̲g̲n̲ ̲O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The procedure outputs the number of fields specified
in the FIELD list info fields.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.6.4.4-1
PROCEDURE OUTPUT ̲FIELDS (FIELD ̲LISTS: FIELDS,
OUTPUT ̲BUFFER: BYTE ̲ARR)
ER ̲CC = FALSE
EQUIVALENCE (FIELD ̲LIST, REG1: FIELDS)
EQUIVALENCE (REG1.FIELDS ̲OUT, REG2: FIELD ̲INFO)
NUMBER ̲OF ̲FIELDS = REG2.NUMBER ̲OF ̲FIELDS
FIRST ̲FIELD = REG2.FIRST ̲FIELD
BYTE ̲LENGTH = REG2.BYTE ̲LENGTH
BLE ̲2.BYTE ̲SIZE = BYTE ̲LENGTH
BLE ̲2.LINK EQ NIL?
EQUIVALENCE (BLE ̲2, LINK, REG: BLE)
BYTE ̲LENGTH = BYTE ̲LENGTH + REG.BYTE ̲LENGTH
FIRST ̲FIELD % = REG1.FIELD ̲LIST(FIRST ̲FIELD)
BLE ̲2.ADDRESS = OUTPUT ̲BUFFER%
CASE FIELDS ̲OUTPUT (INTERFACE ̲NO, FIRST ̲FIELD%, BLE2%,
NUMBER ̲OF ̲FIELDS; BYTE ̲LENGTH)
(CC): ERROR ̲OK
ERROR? - CASE ANALYSE ̲ERROR (CC,1, VDU ̲SPLIT ̲FAILED)OF
VDU ̲SPLIT ̲FAILED? - ER ̲CC = TRUE
END CASE
END CASE
END OUTPUT ̲FIELDS
Figure 4.2.2.6.4.4-1
4.2.2.6.5 C̲u̲r̲s̲o̲r̲ ̲P̲o̲s̲i̲t̲i̲o̲n̲ ̲S̲e̲t̲
4.2.2.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̲
Position the cursor in the specified field of the format.
4.2.2.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) CURSOR ̲POSITION ̲SET (FIELD ̲LISTS: FIELDS,
FIELD ̲NO: INTEGER)
b) CURSOR ̲POSITION ̲SET (R)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 FIELD ̲NO
R3 Pointer FIELD ̲LISTS
R6 LINK
4.2.2.6.5.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
FIELD ̲LISTS 4.2.2.5.3
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
FIELD ̲LISTS.FIELD ̲LIST (FIELD ̲NO).LINE ̲NO
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
NA
4.2.2.6.5.4 D̲e̲s̲i̲g̲n̲ ̲C̲u̲r̲s̲o̲r̲ ̲P̲o̲s̲i̲t̲i̲o̲n̲ ̲S̲e̲t̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The cursor is positioned in the field specified.
Number of lines to be displayed above the cursor is
read in the field descriptor.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.6.5.4-1.
PROCEDURE CURSOR ̲POSITION ̲SET (FIELD ̲LISTS: FIELDS,
FIELD ̲NO: INTEGER)
ER ̲CC = FALSE
EQUIVALENCE(FIELD ̲LISTS.FIELD ̲LIST(FIELD ̲NO),
REG:FIELD
̲DESCRIPTOR
̲TYPE)
LINES ̲ABOVE = REG.LINE ̲NO
CASE SET ̲CURSOR ̲POSITION (INTERFACE ̲NO, REG, LINES
̲ABOVE)
(CC): ERROR ̲OK
ERROR? - CASE ANALYSE ̲ERROR (CC,1,VDU ̲SPLIT
̲FAILED) OF
VDU ̲SPLIT ̲FAILED? - ER ̲CC = TRUE
END CASE
END CASE
END CURSOR ̲POSITION ̲SET
Figure 4.2.2.6.5.4-1
4.2.2.6.6 S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲
4.2.2.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̲
Initiates the waiting point for receiving function
̲keys.
4.2.2.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̲s̲
a) SET ̲RECEIVE ̲CONTROL
b) SET ̲RECEIVE ̲CONTROL (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK
4.2.2.6.6.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲
DATA ̲TYPE 4.2.2.5.1
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
DATA ̲TYPE (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
N/A.
4.2.2.6.6.4 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The set ̲receive ̲control procedure initiates th IO waiting
point for reception of a function key.
F̲l̲o̲w̲g̲r̲a̲m̲
PROCEDURE SET ̲RECEIVE ̲CONTROL
ER ̲CC = FALSE
CASE INIT ̲RECEIVE ̲CONTROL (INTERFACE ̲NO, IO ̲OP)(CC):ERROR
̲OK
ERROR? CASE ANALYSE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED)OF
VDU ̲SPLIT ̲FAILED? - ER ̲CC = TRUE
END CASE
END CASE
DATA ̲TYPE = FUNCTION ̲KEYS
END SET ̲RECEIVE ̲CONTROL
4.2.2.6.7 C̲l̲e̲a̲n̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲S̲p̲l̲i̲t̲
4.2.2.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 command field, the id field and the response field
are cleared and the cursor is positioned in the command
field.
4.2.2.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) CLEAN ̲COMMAND ̲SPLIT
b) CLEAN ̲COMMAND ̲SPLIT (R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK
4.2.2.6.7.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲
COMMAND ̲SPLIT ̲FIELDS
BLE ̲2 4.2.2.6.4.3
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
BLE ̲2 ̲LINK (m)
COMMAND ̲SPLIT ̲FIELDS.FIELDS ̲OUT
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR BLE ̲3: BLE
INIT BLE ̲3 = 0, NIL, ADDRESS ̲RESPONSE
̲BUFFER, RESPONSE ̲REG ̲SIZE
4.2.2.6.7.4 D̲e̲s̲i̲g̲n̲ ̲C̲l̲e̲a̲n̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲S̲p̲l̲i̲t̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The clean ̲command ̲line buffer and the clear ̲response
̲line ̲buffer are limited by BLE ̲2 and BLE ̲3 before the
format handler is requested to output the data.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.6.7.4-1.
PROCEDURE CLEAN ̲COMMAND ̲SPLIT
BLE ̲2.LINK = BLE ̲3%
EQUIVALENCE(COMMAND ̲SPLIT ̲FIELDS.FIELDS.OUT, REG:FIELD
̲INFO)
REG.NUMBER ̲OF ̲FIELDS = 3
REG.BYTE ̲LENGTH = COMMAND ̲REG ̲SIZE + ID ̲REG ̲SIZE
REG.FIRST ̲FIELD = COMMAND ̲FIELD
O̲U̲T̲P̲U̲T̲ ̲F̲I̲E̲L̲D̲S̲ (COMMAND ̲SPLIT ̲FIELDS, CLEAR ̲COMMAND
̲LINE ̲BUFFER)
BLE ̲2.LINK = NIL
C̲U̲R̲S̲O̲R̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲ ̲S̲E̲T̲ (COMMAND ̲SPLIT ̲FIELDS, COMMAND
̲FIELD)
END CLEAN ̲COMMAND ̲SPLIT
Figure 4.2.2.6.7.4-1
4.2.2.6.8 S̲e̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲R̲e̲q̲u̲e̲s̲t̲
4.2.2.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̲
Request COPSY (CFH) to execute the control specified
by the control record sent.
The control request is subject to Time out.
4.2.2.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 ̲CONTROL ̲REQUEST (INFO: BOOLEAN, SIZE,
WAIT ̲TIME: INTEGER)
FLAG
b) SEND ̲CONTROL ̲REQUEST R0, 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̲
R0 SIZE
R4 INFO
R1 WAIT ̲TIME
R6 LINK
R3 Pointer to SEND ̲BUFFER
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 FLAG
4.2.2.6.8.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
SEND ̲PARAMS (CSF.QMON)
QUEUE ̲REFERENCE (CSF.QMON)
WAIT ̲TIME 4.2.2.5.1
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
SEND ̲PARAMS ̲INFO (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
N/A
4.2.2.6.8.4 D̲e̲s̲i̲g̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲R̲e̲q̲u̲e̲s̲t̲
4.2.2.6.8.4.a P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲N̲D̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲R̲E̲Q̲U̲E̲S̲T̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
If the control record to be sent exceeds 4 integers
a buffer is reserved for the control record.
The SEND ̲PARAMS are sent to the configuration handler
in COPSY.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.6.8.4-1
PROCEDURE CONTROL ̲REQUEST (INFO: INFO ̲TYPE, SIZE: INTEGER
SEND ̲BUFFER: BUFFER
MY ̲REF = NIL WAIT ̲TIME: INTEGER)(R ̲FLAG:FLAG
̲D)
INFO EQ TRUE?
CASE RESERVE ̲BUFFER (BUFFER ̲SIZE, CMI ̲QUEUE ̲REF)
(BUFFER ̲REF, CC): ERROR ̲OK
ERROR? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (CC)
END CASE
MY ̲REF = BUFFER ̲REF
CASE WRITE ̲BUFFER (BUFFER ̲REF, SEND ̲BUFFER, SIZE,
0)
(SIZE; CC): ERROR ̲OK
ERROR? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (CC)
OK?
END CASE
S̲E̲T̲ ̲C̲F̲H̲ ̲C̲O̲P̲S̲Y̲ ̲P̲A̲R̲A̲M̲S̲ (COMMAND, INFO)(SEND ̲PARAMETER)
CASE SEND ̲REQUEST(SEND ̲PARAMETER, MY ̲REF, CFH ̲QUEUE,
MY ̲CFH ̲QUEUE
(CC): ERROR ̲OK
ERROR? - A̲N̲A̲L̲Y̲S̲E̲ ̲E̲R̲R̲O̲R̲ (CC)
END CASE
T̲I̲M̲E̲ ̲O̲U̲T̲ ̲(̲W̲A̲I̲T̲ ̲T̲I̲M̲E̲)̲
W̲A̲I̲T̲ ̲A̲N̲S̲W̲E̲R̲ ()(FLAG)
END CONTROL ̲REQUEST
Figure 4.2.2.6.8.4-1
4.2.2.6.8.4.b P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲T̲ ̲C̲M̲I̲ ̲C̲O̲P̲S̲Y̲ ̲P̲A̲R̲A̲M̲S̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Loads the sent parameter record for sending the control
message to the CFH in COPSY
F̲l̲o̲w̲g̲r̲a̲m̲
PROCEDURE SET ̲CMI ̲COPSY ̲PARAMS (
COMMAND: COMMAND ̲PARAMS
INFO: INFO ̲TYPE
SEND ̲BUFFER: BUFFER)
(SEND ̲PARAMETERS: SEND
̲PARAMETERS)
EQUIVALENCE(SEND ̲PARAMETER,REG: SEND ̲PARAMS)
REG.INFORMATION = INFO
REG.CHECKP ̲STATUS = FALSE
REG.PROFILE = 0
REG.HEADER.MAIN ̲TYPE = CMI ̲COMMAND ̲L
REG.HEADER.SUB ̲TYPE = COMMAND.FORMAT ̲ID
INFO EQ FALSE?
REG.HEADER.INF = SEND ̲BUFFER (1)
REG.INFORMATION (1..3) = SEND ̲BUFFER (2..4)
REG.PROFILE ̲MASK = 0
END ̲SET ̲CMI ̲COPSY ̲PARAMS
4.2.2.6.9 T̲i̲m̲e̲ ̲O̲u̲t̲
4.2.2.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̲
Request the Timer Monitor for a time out in TIME seconds.
4.2.2.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) TIME ̲OUT (WAIT ̲TIME)
b) TIME ̲OUT (R1, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1: WAIT ̲TIME
R6: LINK
4.2.2.6.9.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
WAIT ̲TIME 4.2.2.5.1
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
WAIT ̲TIME
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
TYPE REQUEST ̲TIME (CSF.TIMMON)
VAR TIME ̲PARAM: REQUEST ̲TIME
INIT TIME ̲PARAM = CMI ̲Q, TIME ̲Q, ONCE, SECONDS
VAR NEXT: BOOLEAN
4.2.2.6.9.4 D̲e̲s̲i̲g̲n̲ ̲T̲i̲m̲e̲ ̲O̲u̲t̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The Request time is loaded with the specified wait-time
and sent to the Time Monitor.
Before the request is sent the TIM ̲Q subqueue is cleaned
for possible outstanding timeouts.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.6.9.4-1.
PROCEDURE TIME ̲OUT (WAIT ̲TIME: INTEGER)
CASE RECEIVE ̲FIRST ̲QEL (FALSE, TIME ̲PARAM.QUEUE)
(ATTRIBUTES, QEL, SUBQUEUE,
CC):ERROR ̲OK
ERROR? ANALYSE ̲ERROR (CC, 1,SUB ̲QUEUE ̲EMPTY)(SUB
̲QUEUE ̲EMPTY)
NEXT = FALSE
END CASE
LOOP
NEXT EQ FALSE? EXIT
CASE DISMANTLE (QEL)(CC):ERROR ̲OK
ERROR? ANALYSE ̲ERROR (CC,0)
END CASE
CASE RECEIVE ̲NEXT ̲QEL(QEL)(QEL, ATTRIBUTES, CC):ERROR
̲OK
ERROR? ANALYSE ̲ERROR (CC, 1,SUBQUEUE ̲EMPTY)
NEXT = FALSE
OK? - NEXT = OK
END CASE
END LOOP
TIME ̲PARAM.TIME.PERIOD = WAIT ̲TIME
CASE REQUEST ̲TIMEOUT (TIME ̲PARAM)(CC): ERROR ̲OK
ERROR? - ANALYSE ̲ERROR (CC,0)
END CASE
END TIME…01…FIGURE 4.2.2.6.9.4-1
4.2.2.6.10 W̲a̲i̲t̲ ̲A̲n̲s̲w̲e̲r̲s̲
4.2.2.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̲
Waits for answers sent to the CMI queue and sent thereafter
the answer is returned to the caller of the procedure.
4.2.2.6.10.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲
a) WAIT ̲ANSWERS()(FLAG)
b) WAIT ̲ANSWERS (R0, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 FLAG
4.2.2.6.10.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲
QUEUE ̲REFERENCE 4.2.2.6.8.3
TIME ̲PARAMS 4.2.2.6.9.3 c
ATTRIBUTES
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
SUB ̲QUEUE
FLAG
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
NA
4.2.2.6.10.4 D̲e̲s̲i̲g̲n̲ ̲W̲a̲i̲t̲ ̲A̲n̲s̲w̲e̲r̲s̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Receive first queue element sent to the CMI ̲Q.
The FLAG is set according to the queue element received
(time ̲out, ok, validation not ok, execution not ok)
F̲l̲o̲w̲g̲r̲a̲m̲
Ref. Figure 4.2.2.6.10.4-1.
PROCEDURE WAIT ̲ANSWERS()(FLAG: FLAG ̲D)
FLAG = EMPTY
CASE RECEIVE ̲FIRST ̲QEL (TRUE, WAIT ̲QUEUE)
(ATTRIBUTES, QEL, SUB ̲QUEUE):
ERROR ̲OK
ERROR? - ANALYSE ̲ERROR (CC,0)
OK?
END CASE
SUB ̲QUEUE EQ TIM ̲Q? FLAG = TIME ̲ER
SEND ̲GARBLE(CONTINUE,
COM ̲TIMEOUT, ERROR ̲INF)
CANCEL ̲TIME ̲OUT(TIME ̲PARAM)(CC): ERROR ̲OK
EQUIVALENCE (ATTRIB, REG: ATTRIBUTES)
REG.HEADER.MAINTYPE EQ ACM AND REG.HEADER.SUBTYPE EG
SSC ̲ACK?
SEND ̲GARBLE (CONTINUE, Q ̲ERROR, ERROR ̲INF)
FLAG = GARB
FLAG EQ EMPTY? - FLAG = ATTRIB.HEADER.FLAG
END WAIT ̲ANSWERS
Figure 4.2.2.6.10.4-1
4.2.2.6.11 E̲R̲ ̲R̲E̲C̲
4.2.2.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̲
Sets up pointers for the fields on which the attributes
are to be changed. Sets up pointer to the error fields
in the margin area in which error codes is to be displayed.
Stores the error codes.
4.2.2.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) ER ̲REC (COMMAND: COMMAND ̲PARAM, ER ̲FIELD ̲NO,
TEXT ̲NO: INTEGER)(NOE: INTEGER)
b) ER ̲REG (R5, R0, R3, 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̲
R0 ER ̲FIELD ̲NO
R3 TEXT ̲NO
R5 Pointer COMMAND (kept)
R6 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R3 = NOE
4.2.2.6.11.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
COMMAND 4.2.2.4.2.4.c
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
COMMAND.FIELD ̲LIST
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR ERRORS: ERROR ̲REC
VAR NOE, NOTEXT, LINE: INTEGER
TYPE ERROR ̲REC
RECORD
NOE,
NOTEXT,
FIRST ̲FIELD,
DIS ̲CODE,
ATTRIBUT,
TEXT ̲NO: INTEGER
END
INIT ERROR = 0,0
4.2.2.6.11.4 E̲R̲ ̲R̲E̲C̲ ̲D̲e̲s̲i̲g̲n̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
If the first error set cursor position else sets pointer
to error-code field if first error found on this line
sets pointer to the field in errors for changing attributes.
Returns the number of errors found.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer figure 4.2.2.6.11.4-1
PROCEDURE ER.REC (COMMAND: COMMAND ̲PARAM, ER ̲FIELD
̲NO,
TEXT ̲NO: INTEGER)(NOE)
NOE = ERRORS.NOE
NOTEXT = ERRORS.NOTEXT
NOE EQ 0? - LINE = 0
ERRORS.FIRST ̲FIELD = ER ̲FIELD ̲NO - 1
NOE = NOE + 1
ERRORS.ATTRIBUT(NOE) = ER ̲FIELD ̲NO
EQUIVALENCE (COMMAND. FIELD ̲LIST. FIELD ̲LIST (ER ̲FIELD
̲NO)
REG: FIELD ̲DESCRIPTOR ̲TYPE)
REG.LINE ̲NO EQ LINE?
LINE = REG.LINE ̲NO
NOTEXT = NOTEXT + 1
ERRORS.DIS ̲CODE (NOTEXT) = ER ̲FIELD ̲NO
ERRORS.TEXT - NO (NO TEXT) = TEXT ̲NO
ERRORS.NOTEXT = NOTEXT
ERRORS.NOE = NOE
END ER ̲REC
Figure 4.2.2.6.11.4-1
4.2.2.6.12 S̲e̲a̲r̲c̲h̲ ̲N̲e̲x̲t̲ ̲R̲e̲c̲o̲r̲d̲
4.2.2.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̲
Requests TMP to deliver a number (N) of records starting
with the one specified by the primary key.
4.2.2.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) SEARCH ̲NEXT ̲RECORDS (TABLE ̲ID: TABLE ̲TO ̲TYPE
NO: PRIMARY ̲KEY
NUMBER: INTEGER)
(TMP ̲BUFFER: BUFFER)
b) SEARCH ̲NEXT ̲RECORD (R0, R1, R2, R3, 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̲
R0 TABLE ̲ID
R1 NO
R2 Pointer TMP ̲BUFFER (kept)
R3 NUMBER number of records requested
R6 LINK
4.2.2.6.12.3 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲
NA
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
NA
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
VAR SECOND ̲TMP ̲REC: TMP ̲PARAM
TYPE TMP ̲PARAM ref. TMP
INIT SECOND ̲TMP ̲REC.BUFFER2 = MAX ̲BUFF ̲SIZE
INIT SECOND ̲TMP ̲REC.FUNCTION=SEARCH ̲NEXT ̲PRIMARY
̲KEY
4.2.2.6.12.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲E̲A̲R̲C̲H̲ ̲N̲E̲X̲T̲ ̲R̲E̲C̲O̲R̲D̲S̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
The TMP is requested for N numbers of records next
to the one specified.
F̲l̲o̲w̲g̲r̲a̲m̲
Refer 4.2.2.6.12.4-1
PROCEDURE SEARCH ̲NEXT ̲RECORDS (TABLE ̲ID: TABLE ̲ID
̲TYPE,
KEY: PRIMARY ̲KEY, NUMBER:INTEGER)
(OUTPUT ̲BUFFER: BUFFER)
EQUIVALENCE (SECOND ̲TMP ̲REC, REG: TMP ̲PARAM)
REG.TABLE ̲ID = TABLE ̲ID
REG.OUTPUT ̲BUFFER = OUTPUT ̲BUFFER
REG.ENTRY = KEY - 1
CASE SEARCH ̲NEXT ̲PRIMARTY ̲KEY (TMP ̲REC ̲1(CC): ERROR
̲OK
ERROR? ANALYSE ̲ERROR (CC,0)
OK?
END CASE
END SEARCH ̲NEXT ̲RECORDS
Figure 4.2.2.6.12.4-1
4.2.2.7 S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
Refer 4.1.7