top - download
⟦efdbaa91f⟧ Wang Wps File
Length: 36412 (0x8e3c)
Types: Wang Wps File
Notes: FIX/1164/PSP/0065
Names: »4885A «
Derivation
└─⟦1f5010eea⟧ Bits:30006143 8" Wang WCS floppy, CR 0473A
└─⟦this⟧ »4885A «
WangText
…00……00……00……00……00…=…02……00……00…=
=…05…;…08…;…00…;
;…07…:…0c…&…0a…&…0f……1f……02……1f……07……1e……0c……86…1 …02… …02… …02…
…02…FIX/1164/PSP/0065
…02…JJJ/880914…02……02…#
FIKS MSA PROCESS PSP
…02…Dwg 3-4956…02… …02…FIKS
FIKS MSA Process PSP
Product Specification
FIX/1164/PSP/0065
J]rgen J. Jensen, AK
FMK
FMK (5), AK(4)
FIKS Pgm.Mgr.
Doc.Conf.Mgr.
1.2
880914
REVISION RECORD
REVISION RECORD
REVISION RECORD
REVISION RECORD
REVISION RECORD
Wang/Disk:
4885A/473A
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…06…1 …02… …02… …02…
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
AFFECTED
AFFECTED
AFFECTED
AFFECTED
AFFECTED
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ^ ^
^
1 ^840507 ^ All ^
Original
issue
of
document.
^ ^ ^
1.1 ^870211 ^ DCN1 ^
Changed
in
accordance
with
Order
No:
20/86
^ ^ ^
1.2 ^880914 ^ DCN2 ^
Changed
in
accordance
with
Order
No:
^ ^ ^
19/87,
01/88,
27/88
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
…0f…4885A/bna…02… FIX/1164/PSP/0065
…02… JL/840507…02… iii
FIKS MSA PROCESS PSP
…02……02…FK7809…0e…
…01…L̲I̲S̲T̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲
1 SCOPE ........................................
1
1.1 INTRODUCTION ..............................
1
1.2 ABBREVIATIONS .............................
2
1.3 DEFINITIONS OF TERMS ......................
3
2 APPLICABLE DOCUMENTS .........................
6
3 MODULE SPECIFICATION .........................
7
3.1 FUNCTIONAL CAPABILITIES ...................
7
3.2 INTERFACE DESCRIPTION .....................
8
3.3 PROCESSING ................................
9
3.3.1 The Modules ...........................
9
3.3.2 Initialization ........................
24
3.4 DATA ORGANIZATION .........................
24
3.4.1 Files .................................
24
3.4.2 Queues ................................
25
3.4.3 Buffers ...............................
26
3.4.4 Tables ................................
27
3.4.5 Important Variables ...................
28
3.5 STORAGE ALLOCATION ........................
29
3.5.1 Memory Space Requirements .............
29
3.5.2 Disc Space Requirements ...............
29
3.6 PERFORMANCE CHARACTERISTICS ...............
30
3.7 LIMITATIONS ...............................
31
3.8 ERROR CODES ...............................
32
3.9 LISTING REFERENCES ........................
32
4 QUALITY ASSURANCE ............................
33
4.1 QUALIFICATION TESTS .......................
33
4.2 OTHER QUALITY ASSURANCE PROVISIONS ........
33
5 PREPARATIONS FOR DELIVERY ....................
34
6 DRAWINGS .....................................
35
1 S̲C̲O̲P̲E̲
1.1 I̲N̲T̲R̲O̲D̲U̲C̲T̲I̲O̲N̲
This document specifies the M̲S̲A̲ ̲(̲M̲e̲s̲s̲a̲g̲e̲-̲c̲o̲n̲v̲e̲r̲s̲i̲o̲n̲
̲f̲r̲o̲m̲ ̲S̲M̲F̲ ̲t̲o̲ ̲A̲C̲P̲-̲1̲2̲7̲) within the FIKS application software.
The design is based on issue 5 of the Requirements
Specifications.
The main tasks of the MSA are:
- to perform internal conversion, i.e. to convert
FIKS messages from the SMF to the ACP-127 format,
- to perform external conversion, i.e. to convert
FIKS generated messages for NICS/TARE from the
SMF to the ACP-127 format,
- to put SMF messages, for which conversion is not
possible, into the queue for interception.
1.2 A̲B̲B̲R̲E̲V̲I̲A̲T̲I̲O̲N̲S̲
ACP Allied Communications Procedure
AIG Address Indicator Group
ANO Address No.
CQ Conversion Queue
FL Format Line
IMF Intermediate Message File
IQ Intercept Queue
MSA Message-Conversion from SMF to ACP-127
MEDE Message Entry and Distribution Equipment
MTCB Message Transition Control Block
NICS NATO Integrated Communications Systems
NMQ Node/Mede Queue
NTQ NICS-TARE Queue
NTS NICS-TARE Subsystem
PDB Preparation Data Base
RDF Routing Directory File
RI Routing Indicator
SCC System Control Center
SIC Subject Indicator Code
SMF Simplified Message Format
TARE Telegraph Automatic Relay Equipment
1.3 D̲E̲F̲I̲N̲I̲T̲I̲O̲N̲ ̲O̲F̲ ̲T̲E̲R̲M̲S̲
ACTION PRECEDENCE
Message priority for TO-addressee's:
SMF ACP
Action 127
Precedence Name Precedence
1 flash Z
2
3 immediate O
4 priority P
5
6 routine R
ALLIED COMMUNICATIONS PROCEDURE (ACP)
NATO protocol for communications.
ADDRESS NO. (ANO)
An SMF term identifying an addressee. An ANO consists
of a letter followed by three digits.
BINARY ADDRESS LIST
Field in SMF messages containing ANO codes.
CLASSIFICATION
SMF ACP 127
class Name class
0 -
1 UNCLASSIFIED
2 NATO UNCLASSIFIED U
3 -
4 RESTRICTED
5 NATO RESTRICTED R
6 -
7 CONFIDENTIAL
8 NATO CONFIDENTIAL C
9 -
10 SECRET
11 NATO SECRET S
12 -
13 -
14 -
DATE TIME GROUP (DTG)
In the ACP-127 Heading and the SMF Signal Header
the DTG means the time expressed in the format:
DDHHMMZ MMM YY
where:
DD means date (2 digits)
HH " hour (2 digits)
MM " minute (2 digits)
Z " zone (1 letter)
MMM " month (3 letters)
YY " year (2 digits)
In the SMF Binary Header the Release Time means the
number of seconds since 010000Z Jan 80.
ENVELOPE
An SMF message term covering:
o Binary Header
o Signal Header
o Binary Address List
FORMAT LINE (FL)
An ACP 127 term describing a field in the message.
INFO PRECEDENCE
Message priority for INFO-addressee's:
SMF ACP
Info 127
Precedence Name Precedence
1 flash Z
2
3 immediate O
4 priority P
5
6 routine R
MESSAGE CONVERSION SERIAL NUMBER
Serial number of converted message
MESSAGE IDENTIFICATION (MSG-ID)
An SMF term for a character group consisting of
3 letters followed by a 3 digit sequential number.
MESSAGE INTERCEPT SERVICE
Presentation and editing service provided for correction
of erroneous messages before conversion.
PRECEDENCE
See Action Precedence, and Info Precedence
ROUTING INDICATOR (RI)
An ACP 127 term used for identification of originating
station, receiving station and addressees.
A RI consists of the group: RDF followed by 1 or
2 letters.
SIGNAL HEADER
A field in SMF
SIGNAL TEXT
A field in SMF containing the text to be transmitted.
SIMPLIFIED MESSAGE FORMAT (SMF)
Format of FIKS messages consisting of:
o binary header
o signal header
o signal text
o binary address list
SUBJECT INDICATOR CODE
A three-letter code describing the contents of
the message text of an SMF- and ACP-message.
Two or more codes are separated by slash. They
are proceeded by the indicator "SIC".
TRANSMISSION SERIAL NUMBER
A unique, sequential message number in the range
0001-9999 stored in format line No. 1 of an ACP
message.
2 A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲
1. REQUIREMENTS SPECIFICATION
FIX/0000/SPC/0002
Vol I - III
2. FIKS SYSTEM DESIGN SPECIFICATION
FIX/1000/DSP/0001
3. FIKS SOFTWARE INTERFACE REFERENCE
FIX/0100/MAN/0003
4. FIKS DATA INTERFACE REFERENCE
FIX/0100/MAN/0004
5. CR80 AMOS KERNEL
CSS/302/PSP/0008
6. CR80 AMOS I/O SYSTEM
CSS/006/PSP/0006
7. CR80 FILE SYSTEM PSP
CSS/910/EWP/0001
8. NICS-TARE INTERFACE TEST
FIX/0000/TPP/0088
9. SCC CONVERSION LOG
FXA/SDS/003
3 M̲O̲D̲U̲L̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
3.1 F̲U̲N̲C̲T̲I̲O̲N̲A̲L̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲I̲E̲S̲
Messages for conversion are put into the Conversion
Queue (CQ): into CQ2 for internal conversion, or into
CQ4 for external conversion.
Internal conversion means that the converted message
is returned to the FIKS originator. Such messages are
stored in the Node-Mede Queue (NMQ) after conversion.
External conversion means that the converted message
is forwarded to NICS-TARE. These messages are put into
the NICS-TARE Queue (NTQ) before transmission.
Input messages are formated according to the SMF format.
The format of output messages is the ACP-127 format.
Internal converted messages, however, are put into
an SMF envelope due to the transmission throughout
the …02…FIKS network.
Messages, which cannot be converted, are put into the
CIP IC input Queue (CICQ) for interception.
The functional grouping of the MSA is shown in figure
3.1-1.
The SMF message format is shown in figure 3.1-2.
The ACP-127 message format is shown in figure 3.1-3.
When conversion is completed a conversion logging is
performed. For details, see section 2, Applicable Documents
reference 9.
If a ZPW Operating Signal is present in a message which
is sent for conversion, then the ZPW will be inserted
in Format Line 5 of the ACP127 message after the message
DTG e.g.
R 011025Z JUL 88 ZPW 041400Z JUL 88
If a message for conversion is retransmitted (by RTM)
then the Operating Signal (ZDK, ZFG or ZFD) will be
inserted in Format Line 5 of the ACP127 message after
the message DTG, or if a ZPW is present, then it will
be inserted after the ZPW DTG e.g.
R 011025Z JUL 88 ZDK
R 011025Z JUL 88 ZPW 041400Z JUL 88 ZDK
3.2 I̲N̲T̲E̲R̲F̲A̲C̲E̲ ̲D̲E̲S̲C̲R̲I̲P̲T̲I̲O̲N̲
The CIP process receives a message from the SIP process
on the collocated N/M via the trans connection, which
is handled by the NSS process.
The CIP process enqueues an MTCB in the proper conversion
queue by call of the monitor procedure QACCESS.
The QACCESS sends a signal to the MSA process.
The MSA process will try to convert the message:
if succeeded: enqueue an MTCB (pointer to the converted
message) in the proper output queue,
if failed: enqueue an MTCB (pointer to the original
message) in the intercept queue.
3.3 P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
3.3.1 T̲h̲e̲ ̲M̲o̲d̲u̲l̲e̲s̲
The MSA consists of a main program and a number of
procedures. They are all ordered in a hierachical way.
All procedures are called by use of an index tabel
for details, refer to source list of JMPI ̲DECL.S. An
overview of the main program and the procedures is
given in figure 3.3-1.
3.3.1.0 L̲e̲v̲e̲l̲ ̲0̲
3.3.1.0.1 M̲a̲i̲n̲ ̲P̲r̲o̲g̲r̲a̲m̲ ̲S̲M̲F̲-̲A̲C̲P̲
The SMF-ACP main program performs (See fig. 3.3-1(0.1A-D)):
Call WAITEVENT: wait for signal (from QACCESS: message
for conversion).
REPEAT:
Return point, repeat until conversion queue is empty.
Reset all buffers and variables.
Call QACCESS for reading an element. IF queue empty
goto WAITEVENT and wait for signal.
Call MTCB, RESERVE.
Call MTCB, GETFILE, for update of FILE ̲REF (ref. to
file on IMF) and FD-SMF (file descriptor).
Call QACCESS for deletion of element.
Call MTCB, READ, lookup conversion type (internal or
external), and update of INTERN ̲FLAG.
Call MTCB CREAT and CREATEFILE, for creation of 3 MTCB's
and FILE's.
Call proc. BUILD-FL1, for building format line 1 (written
in FILE ̲SA).
Call proc. BUILD ̲RI ̲LINES, for building format line
2 (written in FILE ̲SA),
format line 7-8 (written in FILE ̲TO ̲),
format line 9 (written in FILE ̲XMT),
save "from" address (FM addr,list.element) and binary
header (written in BUFF ̲WORK).
Call proc. BUILD ̲FL3, for building format line 3 (written
in FILE ̲SA).
Call proc. BUILD ̲FL4, for building format line 4 (written
in FILE ̲SA).
Call proc. BUILD ̲FL5, for building format line 5 (written
in FILE ̲SA).
Call proc. BUILD ̲FL6, for building format line 6 (written
in FILE ̲SA).
Write FILE ̲TO into FILE ̲SA (format line 7 and 8) by
calling proc. SA ̲FILE ̲TO ̲FILE.
Write FILE ̲XMT into FILE ̲SA (format line 9), by call
of proc. SA ̲FILE TO FILE.
Call MTCB, RELEASEFILE and RELEAS for release of 2
MTCB's and FILE's ( ̲TO and ̲XMT).
Call MTCB, CREAT and CREATEFILE, for creation of MTCB
and FILE ̲ACP, in which the ACP-message is delivered.
Call proc. WRITE ̲FILE, for appending "BT" to FILE ̲SA.
Call proc. BUILD ̲FL12A, for building format line 12A
(written FILE ̲SA).
Call proc. BUILD ̲FL12B, for building format line 12B
(written in FILE ̲SA).
Call proc. SA ̲FILE ̲TO ̲FILE, for text part in source-file
(FILE ̲SMF) and write it into FILE ̲SA.
Call proc. STRIP ̲INT ̲DIST, for stripping internal distribution
in text part if present.
Call proc. BUILD ̲FL16, for building format line 16
(written in FILE ̲SA).
Call proc. FORM ̲LINE ̲PAGE, for splitting the message
into pages and write it into FILE ̲ACP.
If the message is sent to internal conversion THEN:
Append "BT" to FILE ̲ACP,
Append an empty line with a space, if the total
length is even, to FILE ̲ACP.
Append an address-list: from SCC to the old "FM"
(which is saved).
Write this to FILE ̲ACP by call of proc. WRITE ̲FILE.
Create a Signal Header and a Binary Header by call
of UPD ̲BH ̲SH (written in FILE-ACP).
Call MTCB, RELEASEFILE and RELEAS for release of FILE
and MTCB: SMF and SA.
Update MTCB ̲ACP (call MTCB, WRITE) and enqueue it into
the proper output queue by call of QACCESS.
Jump to the return-point.
IF a MON ̲ERROR is raised then call MON,ERROR
IF a conversion error is found then:
Release all files and MTCB's.
Jump to the Return-point.
3.3.1.1 L̲e̲v̲e̲l̲ ̲1̲
3.3.1.1.1 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲B̲U̲I̲L̲D̲-̲F̲L̲1̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.1A-B)
The format line 1 is built by storing the "Start of
Transmission Function": "VZCZC" in the SA buffer.
For an external conversion the word "MANUAL" is stored
if MANUAL = TRUE, else 7 SPACES are inserted.
Finally a letter-shift, 5 spaces, a linefeed and the
bytecount are stored in the SA buffer.
The entire line is written in the SA file.
3.3.1.1.2 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲B̲U̲I̲L̲D̲-̲F̲L̲3̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.2A-C)
The format line 3 is built by storing:
DE Routing Indicator Serial No.
in the SA buffer. Then the Filing Time is calculated
and stored.
3.3.1.1.3 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲B̲U̲I̲L̲D̲-̲F̲L̲4̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.3A-B)
The format line 4 is built by storing:
ZNR UUUUU (for classification 1 or 2) or
ZNY RRRRR (" " 4 or 5) or
ZNY CCCCC (" " 7 or 8) or
ZNY SSSSS (" " 10 or 11)
in the SA buffer.
It is checked that neither SH messages nor messages
of classification higher than 11 occur.
The entire line is written in the SA file.
3.3.1.1.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲B̲U̲I̲L̲D̲-̲F̲L̲5̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.4)
The format line 5 is built by storing the Action Precedence,
the Info Precedence and the DTG in the SA buffer.
Finally the entire line is written into the SA file.
3.3.1.1.5 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲B̲U̲I̲L̲D̲-̲F̲L̲6̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.5)
The format line 6 is built by copying the FM-line from
the SMF Signal Header into the SA buffer.
The entire line is written into the SA file.
3.3.1.1.6 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲B̲U̲I̲L̲D̲-̲F̲L̲1̲2̲A̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.6)
The format line 12A is built by copying the classification
text from the critical region into the SA buffer. Finally
the buffer is written into the SA file.
3.3.1.1.7 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲B̲U̲I̲L̲D̲-̲F̲L̲1̲2̲B̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.7)
The format line 12B is built by copying a possible
SIC from the SMF Signal Header into the SA buffer.
Finally the entire line is written into the SA file.
3.3.1.1.8 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲B̲U̲I̲L̲D̲-̲F̲L̲1̲6̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.8)
The format line No. 16 is built by storing the End
of Transmission Function:
7 * LF
"NNNN"
24 * LS
LF
4 * NULL
in the SA buffer. Finally the entire line is written
into the SA file.
3.3.1.1.9 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲B̲U̲I̲L̲D̲-̲R̲I̲-̲L̲I̲N̲E̲S̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.9A-B)
This procedure generates format lines 2,7,8 and 9 and
writes them into FILE ̲SA, FILE ̲TO and FILE ̲XMT.
It provides the functions described below:
Write (SMF) binary header into BUFF ̲WORK by call of
WRITE ̲BUFF.
Check for SPECAT and SH-CLASS.
Fill BUFF-SMF (start from signal header).
Fill BUFF ̲ALIST (start from end of text).
Set up index to line 3 in BUFF-SMF (signal header).
RTM ̲BUILD ̲FL2: "label
Get "FM" from BUFF-ALIST (ALIST) and save in BUFF ̲WORK.
Get action and info precedence, save them in variables.
Check precedence for not allowed value.
Write action precedence into BUFF ̲SA.
…86…1 …02… …02… …02… …02…
REPEAT: until no more elements in ALIST.
IF BUFF-SMF is run out then fill it.
IF BUFF-ALIST is run out then fill it.
IF BUFF ̲TO is run out then fill it.
IF BUFF ̲XMT is run out then fill it.
Call internal procedure GET ̲ANO ̲UPD.
Update FIRST ̲TO ̲ FLAG and FIRST ̲INFO ̲FLAG.
IF FIRST ̲TO ̲FLAG = TRUE then write "TO" into BUFF ̲TO.
IF FIRST ̲INFO ̲FLAG = TRUE then write "INFO" into
BUFF ̲TO.
IF line in BUFF ̲SA is full then finish line and start
new.
IF BUFF ̲SA is full and last line is finished then write
buffer contents into FILE ̲SA.
DO CASE OF ANO ̲TYPE:
TO,-TO,INFO or -INFO:
IF start char and byte count is not written into
BUFF ̲TO then do it.
Check the existince of the ANO by call of RDF,GANOEX.
Get the routing indicator (RI) by call of RDF,GANOADR.
IF ANO ̲TYPE = TO or INFO then:
Write a line with "RI" into BUFF ̲TO
else
Write "ZEN" into BUFF ̲TO.
Get plain text (TO-ano) from BUFF ̲SMF (SMF signal
header) by call of GET ̲PLAIN ̲TEXT, write slash
and plain text into BUFF ̲TO.
AIG:
Get AIG in BUFF-SMF and write the line into BUFF ̲TO.
Check the existence of the AIG by call of RDF,GAIGEX.
Get the AIG BITMAP by call of RDF,GANOAIG.
IF next ANO type = XMT then
REPEAT until next ANO type is enequal to XMT
Get plain text of XMT,
Write line with "XMT" into BUFF ̲XMT,
Call GET ̲ANO ̲UPD,
IF BUFF ̲XMT is full then write it into FILE ̲XMT,
UNTIL NEXT ̲ANO ̲TYPE is unequal to XMT.
Search the BITMAP for ANO's.
IF an ANO is found then treat it as an TO-ANO.
REPEAT UNTIL all ANO's are found.
XMT:
Do nothing, they are processed.
CONV ̲ANO:
Do nothing, shall not be processed.
END OF CASE
UNTIL ANO ̲NO = NULL (no more ANO's)
Finish last line in BUFF ̲SA and write the buffer contents
into FILE ̲SA.
Write contents of BUFF ̲TO into FILE ̲TO.
Write contents of BUFF ̲XMT into FILE ̲XMT.
If a message is retransmitted by RTM, then read new
ALIST and goto RTM ̲BUILD ̲FL2 to create a new Format
Line 2.
Check FL2 ̲STATUS (format line 2 for empty).
3.3.1.1.10 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲F̲O̲R̲M̲-̲L̲I̲N̲E̲-̲P̲A̲G̲E̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.10A-B)
The ACP message in the SA file is split into pages.
For an external conversion the starting character and
the bytecount of each line are removed.
3.3.1.1.11 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲U̲P̲D̲-̲B̲H̲-̲S̲H̲
Input: nil
Output CC, Error
Figure: 3.3-1(1.11A-C)
The SMF envelope for the internal converted message
is created by reading and reformating the original
SMF Binary Header and Signal Header.
The MSG ID of the converted message will be (Q/P)SA.
If it is an external conversion and MANUEL = TRUE,
then the MSG ID of the converted message will be (Q/P)FN.
The envelope is stored in the SA buffer, and finally
written into the ACP file.
3.3.1.1.12 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲T̲R̲I̲P̲-̲I̲N̲T̲-̲D̲I̲S̲T̲
Input: nil
Output: CC, Error
Figure: 3.3-1(1.12A-B)
This procedure finds the last "BT" on the message and
adjusts the file length. If INT DIST is present, it
will be stripped.
Demand: The message is on FILE ̲SA.
The following functions are provided:
REPEAT
Update buffer by call of internal procedure CHECK
̲CONTENT.
Check next char for "BT"
IF found THEN set flag and update FILE SA ̲OFF.
ELSE increment index.
UNTIL "BT" is found (check flag).
3.3.1.2 L̲e̲v̲e̲l̲ ̲2̲
3.3.1.2.1 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲G̲E̲T̲-̲A̲N̲O̲-̲U̲P̲D̲
Input: nil
Output: nil
Figure: 3.3-1(2.1)
This procedure is local to the BUILD-RI-LINES procedure.
The next two ANO's are fetched from the ALIST buffer,
and the bitmap (non-XMT: ANO bitmap, XMT: AIG bitmap)
is updated.
3.3.1.2.2 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲G̲E̲T̲-̲P̲L̲A̲I̲N̲T̲E̲X̲T̲
Input: Bytecount index
Output: Bytecount, Bytecount Offset, Plaintext
Index
Figure: 3.3-1(2.2)
This procedure is local to the BUILD-RI-LINES procedure.
The line delimiter (TO, INFO, XMT) together with succeeding
spaces are skipped, so that the index of the SMF buffer
now points to the start of the plaintext of the adressee;
also the number of remaining characters of the line
is calculated.
3.3.1.2.3 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲H̲E̲C̲K̲-̲F̲O̲R̲-̲O̲N̲E̲-̲A̲N̲O̲
Input: nil
Output: CC, Error
Figure: 3.3-1(2.3A-B)
This procedure is local to the procedure BUILD-RI-LINES.
The SMF Address List of the message in the SMF file
is scanned. If more the one ANO other than X004 or
X005 is found, or if an ANO type is "AIG" the boolean
ONLY-ONE-ANO is set to false. Otherwise it is set to
true.
3.3.1.3 L̲e̲v̲e̲l̲ ̲3̲
3.3.1.3.1 Procedure CONV-INIT
Input: nil
Output: nil
Figure: 3.3-1(3.1)
The FIXHEAD and the MOVHEAD directories are opened,
the MTCB Monitor is initialized, and the RDF file is
looked up.
3.3.1.3.2 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲C̲O̲M̲P̲A̲R̲E̲-̲R̲I̲
Input: nil
Output: CC, Error
Figure: 3.3-1(3.2)
The OBJECT- and the SEARCH-files are compared for matching
Routing Indicators. The result is stored in the RESULT-file.
3.3.1.3.3 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲G̲E̲T̲-̲S̲A̲-̲M̲S̲G̲-̲N̲O̲
Input: Parameter
Output: CC, Error
Figure: 3.3-1(3.3A-B)
The critical region "SSS" is entered, and the Transmission
Serial No. is fetched. Depending on the parameter its
value is increased or decreased by one modulo 1000
(int. conversion). No. 0 is not used. The last used
number is stored in the critical region and checkpointed.
3.3.1.3.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲A̲-̲F̲I̲L̲E̲-̲T̲O̲-̲F̲I̲L̲E̲
Input: Input file, Output file
Output: CC, Error
Figure: 3.3-1(3.4A-B)
The input file (the TO file containing the format lines
7 (TO) and 8 (INFO) or the XMT file containing the
format line 9 (XMT), or the SMF file containing the
message text) is copied into the output file (the SA
file containing the entire output ACP message).
3.3.1.3.5 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲U̲P̲D̲-̲B̲I̲T̲M̲A̲P̲
Input: Bitmap-ref.
Output: CC, Error
Figure: 3.3-1(3.5A-B)
This procedure updates ANO and AIG bitmaps.
ANO-bitmap: Contains a bit for each NATO-ANO.
INPUT/OUTPUT: A NATO-ANO: lookup the bitmap:
IF bit = 0 THEN SET bit and set WRITE
̲ANO = true.
IF bit = 1 THEN SET WRITE ̲ANO = false.
AIG-bitmap: The bitmap delivered by RDF-monitor.
INPUT/OUTPUT: an XMT: release bit (set bit = 0) in
AIG-bitmap.
The functions are described below:
Reset variable WRITE ̲ANO.
Split input ANO into ID and number.
Test on ID and set offset in bitmap.
IF ANO = conversion-ANO, THEN skip it.
DO lookup in bitmap, and set bit and WRITE-ANO according
to rule.
IF not a NATO-ANO then add 2 to ANO ̲TYPE:
TO ̲ANO becomes a MINUS - TO - ANO,
INFO ̲ANO becomes a MINUS - INFO - ANO.
3.3.1.3.6 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲R̲E̲P̲E̲A̲T̲T̲
Input: Parameter, bytecount, input index, output
index.
Output: Input index, output index.
Figure: 3.3-1(3.6)
The contents of one buffer is copied into another.
Depending on the parameter the buffers may be:
I̲N̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲ O̲U̲T̲P̲U̲T̲ ̲B̲U̲F̲F̲E̲R̲ P̲A̲R̲A̲M̲E̲T̲E̲R̲
BUFF-SMF BUFF-SA SMF-SA
BUFF-WORK BUFF-SA WORK-SA
BUFF-WORK BUFF-SMF WORK-SMF
BUFF-SMF BUFF-TO SMF-TO
BUFF-SMF BUFF-WORK SMF-WORK
BUFF-WORK BUFF-TO WORK-TO
BUFF-SMF BUFF-XMT SMF-XMT
BUFF-WORK BUFF-SA WORK-SA1
3.3.1.3.7 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲W̲R̲I̲T̲E̲-̲B̲U̲F̲F̲
Input: Parameter
Output: Bytecount, CC, Error
Figure: 3.3-1(3.7A-B)
A block of a file is read into a buffer. Depending
on the parameter the file and the buffer may by:
F̲I̲L̲E̲ B̲U̲F̲F̲E̲R̲ P̲A̲R̲A̲M̲E̲T̲E̲R̲
SMF BUFF-ALIST WB-ALIST
SMF BUFF-SMF WB-SMF
SA BUFF-SA WB-SA
SMF BUFF-WORK WB-W-BIN
SA BUFF-SMF WB-SMF1
3.3.1.3.8 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲W̲R̲I̲T̲E̲-̲F̲I̲L̲E̲
Input: Parameter
Output: CC, Error
Figure: 3.3-1(3.8A-B)
A block is written in a file from a buffer. Depending
on the parameter the buffer and the file may be:
B̲U̲F̲F̲E̲R̲ F̲I̲L̲E̲ P̲A̲R̲A̲M̲E̲T̲E̲R̲
BUFF-SA SA SA-SP
BUFF-TO TO TO-SP
BUFF-XMT XMT XMT-SP
BUFF-SA ACP SA-SP1
BUFF-SA RI RI-SP
3.3.1.4 L̲e̲v̲e̲l̲ ̲4̲
3.3.1.4.1 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲F̲I̲L̲L̲-̲O̲B̲J̲E̲C̲T̲-̲B̲U̲F̲F̲
Input: nil
Output: CC, Error
Figure: 3.3-1(4.1)
This procedure is local to the COMPARE-RI procedure
(see section 3.3.1.3.2).
A line is read from the RI-file into the OBJECT buffer.
3.3.1.4.2 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲F̲I̲L̲L̲-̲S̲E̲A̲R̲C̲H̲-̲B̲U̲F̲F̲
Input: nil
Output: CC, Error
Figure: 3.3-1(4.2)
This procedure is local to the COMPARE-RI procedure
(see section 3.3.1.3.2).
A line is read from the SEARCH-file into the SEARCH
buffer.
3.3.1.4.3 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲K̲I̲P̲-̲S̲E̲A̲R̲C̲H̲-̲R̲I̲
Input: nil
Output: CC
Figure: 3.3-1(4.3)
This procedure is local to the COMPARE-RI procedure
(see section 3.3.1.3.2).
It scans the SEARCH buffer for LF or the first characters
after SP .
3.3.1.4.4 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲M̲O̲V̲E̲-̲O̲B̲J̲E̲C̲T̲-̲T̲O̲-̲R̲E̲S̲U̲L̲T̲
Input: nil
Output: CC, Error
Figure: 3.3-1(4.4)
This procedure is local to the COMPARE-RI procedure
(see section 3.3.1.3.2).
The OBJECT buffer is scanned for a SP or LF .
The OBJECT buffer is copied into the RESULT buffer
until another SP or LF is met.
3.3.1.5 L̲e̲v̲e̲l̲ ̲5̲
3.3.1.5.1 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲S̲T̲O̲R̲E̲-̲R̲E̲S̲U̲L̲T̲
Input: nil
Output: CC, Error
Figure: 3.3-1(5.1)
This procedure is local to the COMPARE-RI procedure
(see section 3.3.1.3.2).
The RESULT buffer is finished by storing a LF as
the last character, and by storing the byte count as
the second character, and the RESULT buffer is written
in the SA-file.
3.3.2 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲
The initialization of the MSA is described in section
3.3.1.3.1: Procedure CONV-INIT.
3.4 D̲A̲T̲A̲ ̲O̲R̲G̲A̲N̲I̲Z̲A̲T̲I̲O̲N̲
3.4.1 F̲i̲l̲e̲s̲
1. SMF
File Descriptor: FD-SMF
Byte Offset: FILE-SMF-OFF
Usage: SMF message for conversion
2. TO
File Descriptor: FD-TO
Byte Offset: FILE-TO-OFF
Usage: ACP format line 7 (TO) and
8 (INFO)
3. XMT
File Descriptor: FD-XMT
Byte Offset: FILE-XMT-OFF
Usage: ACP format line 9 (XMT)
4. RI
File Descriptor: FD-RI
Byte Offset: FILE-RI-OFF
Usage: ACP format line 2
5. SA
File Descriptor: FD-SA
Byte Offset: FILE-SA-OFF
Usage: Converted ACP Message
6. ACP
File Descriptor: FD-ACP
Byte Offset: FILE-ACP-OFF
Usage: Final converted ACP message
formated in pages. An internal
converted message is put into
an SMF envelope.
3.4.2 Q̲u̲e̲u̲e̲s̲
The input queue for the MSA is the Conversion Queue
(CQ). It is a group queue consisting of CQ-2 for internal
conversion, and CQ-4 for external conversion.
The output queue for external converted messages is
the NICS-TARE Queue (NTQ).
The output queue for internal converted messages is
the Node/Mede Queue (NMQ).
Also pseudo-MTCB's for messages for interception are
put into the NMQ.
Messages for interception are put into the Intercept
Queue (IQ).
3.4.3 B̲u̲f̲f̲e̲r̲s̲
1. BUFF-SMF
Size: 512 bytes
Index: BUFF-SMF-INDEX
Usage: SMF message for conversion
2. BUFF-WORK
Size: 256 bytes
Index: nil
Usage: SMF Binary Header, DTG, a.o.
3. BUFF-TO
Size: 512 bytes
Index: BUFF-TO-INDEX
Usage: ACP format line 7 (TO) and 8 (INFO)
4. BUFF-XMT
Size: 512 bytes
Index: BUFF-XMT-INDEX
Usage: ACP format line 9 (XMT)
5. BUFF-ALIST
Size: 512 bytes
Index: BUFF-ALIST-POINT
Usage: SMF Address list
6. BUFF-SA
Size: 512 bytes
Index: BUFF-SA-INDEX
Usage: Format lines for the converted ACP message
3.4.4 T̲a̲b̲l̲e̲s̲
Not applicable.
3.4.5 I̲m̲p̲o̲r̲t̲a̲n̲t̲ ̲V̲a̲r̲i̲a̲b̲l̲e̲s̲
ERROR-CO Error Code
ERROR-LABEL Error Label
ERROR-GROUP Error Group
ERROR-NO Error Code for Interception
LEVEL Line No. for Interception
F ̲A ̲06 File Address
BLE ̲06 Buffer List Element
FILE ̲REF Ref. to msg. on IMF
FILE ̲SYST ̲NAME "DMA000"
FIXHEAD "FIXHEAD"
MOVHEAD "MOVHEAD"
MEDE ̲ID SCC-ID
INTERN-FLAG Internal/external conversion
MTCB-BLOCK MTCB-Block
MTCB ̲INDEX ̲SMF MTCB index of SMF msg.
MTCB ̲INDEX ̲SA MTCB index of ACP msg.
ANO ̲E ANO element
LAST ̲TO ̲BC ̲INDEX Index to Byte Count in TO-line
LAST ̲XMT ̲BC ̲INDEX Index to Byte Count in XMT-line
PREC ̲ACT Action Precedence
PREC ̲INFO Info Precedence
ANO ̲NO No. of ANO's in Address List
QUEUE ̲ID Ident of queue of SMF msg.
3.5 S̲T̲O̲R̲A̲G̲E̲ ̲A̲L̲L̲O̲C̲A̲T̲I̲O̲N̲
3.5.1 M̲e̲m̲o̲r̲y̲ ̲S̲p̲a̲c̲e̲ ̲R̲e̲q̲u̲i̲r̲e̲m̲e̲n̲t̲s̲
The program occupies 6172 words.
The data occupies 2852 words.
An I/O-area of 548 words is used.
Furthermore:
- 20 FD's
- 3 IOCB's
- 4 Kernel messages
- 15 TLE's
are used.
3.5.2 D̲i̲s̲c̲ ̲S̲p̲a̲c̲e̲ ̲R̲e̲q̲u̲i̲r̲e̲m̲e̲n̲t̲s̲
The disc is used for the PDB files mentioned:
- SMF
- TO
- XMT
- RI
- SA
- ACP
They are all described in section 3.4.1.
3.6 P̲E̲R̲F̲O̲R̲M̲A̲N̲C̲E̲ ̲C̲H̲A̲R̲A̲C̲T̲E̲R̲I̲S̲T̲I̲C̲S̲
Not applicable
3.7 L̲I̲M̲I̲T̲A̲T̲I̲O̲N̲S̲
Not applicable
3.8 E̲R̲R̲O̲R̲ ̲C̲O̲D̲E̲S̲
3.9 L̲I̲S̲T̲I̲N̲G̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲
Source listings and linker list may be obtained from
the FIKS library (FIXLIB, ref. to SCCLDD)
4 Q̲U̲A̲L̲I̲T̲Y̲ ̲A̲S̲S̲U̲R̲A̲N̲C̲E̲
4.1 Q̲U̲A̲L̲I̲F̲I̲C̲A̲T̲I̲O̲N̲ ̲T̲E̲S̲T̲S̲
The test of the subsystem is described in ref. 8.
4.2 O̲T̲H̲E̲R̲ ̲Q̲U̲A̲L̲I̲T̲Y̲ ̲A̲S̲S̲U̲R̲A̲N̲C̲E̲ ̲P̲R̲O̲V̲I̲S̲I̲O̲N̲S̲
Not applicable.
5 P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲ ̲F̲O̲R̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
Preparation of the binary object code starts with an
editing of the source text.
Then the source file MSA.S, which includes all source
text, is compiled by running the SWELL compiler, and
the listing is printed.
The object code is then linked by the LINKER.
Finally the binary code may be installed.
Exact instructions may be obtained from the file "INFORMATION"
in the most recent ESP-directory of FIXLIB.
6 D̲R̲A̲W̲I̲N̲G̲S̲
Functional Grouping of
The MSA Subsystem
Figure 3.1-1.