top - download
⟦5b8493084⟧ Wang Wps File
Length: 29186 (0x7202)
Types: Wang Wps File
Notes: FIX/1266/PSP/0089
Names: »5274A «
Derivation
└─⟦c4b7e10ba⟧ Bits:30006145 8" Wang WCS floppy, CR 0360A
└─ ⟦this⟧ »5274A «
WangText
F…05…E…08…E…00…D…08…D…0c…D…00…D…02…D D…06…C…08…C…0b…C…0f…C
C…06…B…0c…B…86…1
…02…
…02… …02…
5274A/rt
…02…FIX/1266/PSP/0089
…02……02……02…
REV/850227 #
FIKS SCCM
PROCEDURES
PSP
…02…
Issue
1
FIKS
FIKS SCCM PROCEDURES PSP
FIX/1266/PSP/0089
J]rgen Lindballe/Flemming Revens
Ole Eskedal
AMC (6), REV, LU,
…0e… FIKS S/W Mgr. 850227…0f…
2
…0f…850227
Conf. Mgr. 850227…0e…
5274A/rt…02…FIX/1266/PSP/0089
…02……02……02…
REV/850227 ii
FIKS SCCM PROCEDURES PSP
…02…Issue 1…02… FIKS
840821 All Issue one of Document
850227 All Issue 2 includes drawings
and editorials
T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲
1 SCOPE ........................................
4
1.1 INTRODUCTION ...............................
4
1.2 ABBREVIATIONS .............................
5
1.3 DEFINITION OF TERMS ........................
6
2 APPLICABLE DOCUMENTS .........................
7
3 MODULE SPECIFICATION .........................
8
3.1 FUNCTIONAL CAPABILITIES ....................
8
3.2 INTERFACE DESCRIPTION ......................
9
3.2.1 Format of Calls ........................
9
3.2.1.1 GET ̲NM ̲IDA ̲P .....................
9
3.2.1.2 GET ̲NM ̲IDB ̲P .....................
9
3.2.1.3 CREATEFIXM .......................
9
3.2.1.4 OPENFIXM .........................
9
3.2.1.5 CLOSEFIXM ........................
9
3.2.1.6 RFIXM ̲HD .........................
10
3.2.1.7 RFIXM ̲CM .........................
10
3.2.1.8 WFIXM ̲HD .........................
10
3.2.1.9 WFIXM ̲CM .........................
10
3.2.1.10 INS ̲QE ...........................
11
3.2.1.11 RDD ̲QE ...........................
11
3.2.1.12 DEL ̲QE ...........................
11
3.2.1.13 RD ̲MTCB ..........................
11
3.2.1.14 WR ̲MTCB ..........................
12
3.2.1.15 GET ̲CMD ..........................
12
3.2.1.16 VDU ̲IO ...........................
12
3.2.2 Format of Records ......................
12
3.2.2.1 MECB .............................
13
3.2.2.2 QCB ..............................
13
3.2.2.3 VDUCB ............................
14
3.3 PROCESSING .................................
15
3.3.0 Level 0 ................................
15
3.3.0.0 Initialization ...................
15
3.3.0.1 PROCEDURE SCCM-P (ARGUMENT; CC) ..
16
3.3.1 Level 1 ................................
17
3.3.1.1 PROCEDURE FILE-ACCESS
(TYPE,MECB, MTCB-INDEX) ............
17
3.3.2 Level 2 ................................
18
3.3.2.1 PROCEDURE CLOSE ̲FIXM (MECB) ........
18
3.3.2.2 PROCEDURE READ-WRITE-FIXM (MECB) ...
19
3.3.3 Level 3 ................................
20
3.3.3.1 PROCEDURE XFER-BUF(MECB) ...........
20
3.3.4 Level 4 ................................
21
3.3.4.1 PROCEDURE GET-NM-IDA-P
(BINARY NM-ID;ASCII NM-ID, CC) .....
21
3.3.4.2 PROCEDURE GET-NEM-IDB-P
(ASCII NM-ID; BINARY NM-ID, CC) ....
22
3.3.4.3 PROCEDURE XFER-CM(MECB) ............
23
3.3.4.4 PROCEDURE VDUIO(VDUCB) .............
24
3.3.5 Level 5 ................................
25
3.3.5.1 MONITOR PROCEDURE TAB
(COUNT,PAR0,...,INDEX;PAR INDEX)..
25
3.2.5.2 PROCEDURE READ-FILE(MECB) ........
26
3.3.5.3 PROCEDURE CREATE-FIXM(MTCB-INDEX,
MECB) ............................
27
3.3.5.4 PROCEDURE OPEN-FIXM(MTCB-INDEX,
MECB).............................
28
3.3.5.5 PROCEDURE INSERT-QE(TERM-NO,
QUEUE-NO, QCB,(MTCB-INDEX)........
29
3.3.5.6 PROCEDURE READ-QE(TERM-NO,QUEUE-NO,
QCB; MTCB-INDEX) .................
30
3.3.5.7 PROCEDURE DELETE-QE(TERM-NO,
QUEUE-No, ENTRY-NO, QCB) .........
31
3.3.5.8 PROCEDURE INSERT-MTCB(MTCB-BLOCK,
QCB; MTCB-INDEX) .................
32
3.3.5.9 PROCEDURE READ-MTCB-BLOCK,QCB,
MTCB-INDEX).......................
33
3.3.5.10 PROCEDURE PACK-IOL(VDUCB) ........
34
3.3.5.11 PROCEDURE GET-CMD(CC, VDUCB,MASK,
DELAY; EVENT) ....................
35
3.4 DATA ORGANIZATION ..........................
36
3.5 STORAGE ALLOCATION .........................
37
3.5.1 Memory Space Requirements ..............
37
3.5.2 Disc Space Requirements ................
38
3.6 PERFORMANCE CHARACTERISTICS ................
39
3.7 LIMITATIONS ................................
40
3.8 ERROR CODES ................................
41
3.9 LISTING REFERENCES .........................
42
4 QUALITY ASSURANCE ............................
43
4.1 QUALIFICATION TESTS ........................
43
4.2 OTHER QUALITY ASSURANCE PROVISIONS ........
44
5 PREPARATIONS FOR DELIVERY ....................
45
6 DRAWINGS .....................................
46
1 S̲C̲O̲P̲E̲
1.1 I̲N̲T̲R̲O̲D̲U̲C̲T̲I̲O̲N̲
This document specifies the S̲C̲C̲M̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲ within
the FIKS Application Software. The design is based
on issue 5 of the Requirements Specifications.
The main task of each of the sixteen procedures are
to:
- convert a N/M-id from binary to ASCII, - convert
a
N/M-id
from
ASCII
to
binary,
- create a FIKS message file,
- open a FIKS message file,
- close a FIKS message file,
- read part of the header of a FIKS message,
- read part of the body of a FIKS message,
- write part of the header of a FIKS message,
- write part of the body of a FIKS message,
- insert an element into a queue,
- read an element in a queue,
- delete an element from a queue,
- read an MTCB,
- create and fill an MTCB,
- await and get the next command,
- transmit commands from sender to receiver,
1.2 A̲B̲B̲R̲E̲V̲I̲A̲T̲I̲O̲N̲S̲ ̲
CC Completion Code
MECB Message Control Block
MTCB Message Transition Control Block
PDB Preparation Data Base
QCB QACCESS Control Block
VDU Visual Display Unit
VDUCB VDU Control Block
1.3 D̲E̲F̲I̲N̲I̲T̲I̲O̲N̲ ̲O̲F̲ ̲T̲E̲R̲M̲S̲
Message Transition Control Block (MTCB)
A core resident representative for a message.
Preparation Data Base
A disc file containing one FIKS 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
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̲
As seen from the outside world the SCCM complex consists
of 16 procedures:
- GET ̲NM ̲IDA ̲P
- GET ̲NM ̲IDB ̲P
- CREATEFIXM
- OPENFIXM
- CLOSEFIXM
- RFIXM ̲HD
- RFIXM ̲CM
- WFIXM-HD
- WFIXM ̲CM
- INS ̲QE
- RDD ̲QE
- DEL ̲QE
- RD ̲MTCB
- WR ̲MTCB
- GET ̲CMD
- VDU ̲IO
besides the
- INITIALIZATION
which are all described in section 3.3.
3.2 I̲N̲T̲E̲R̲F̲A̲C̲E̲ ̲D̲E̲S̲C̲R̲I̲P̲T̲I̲O̲N̲
3.2.1 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲C̲a̲l̲l̲s̲
The format of each procedure call is described below.
3.2.1.1 G̲E̲T̲-̲N̲M̲-̲I̲D̲A̲-̲P̲
NM-ID, binary = R3;
MON (SCCM, GET ̲NM ̲IDA ̲P, R0, R3, R6, R7) : ERROR ̲DONE;
IF R7 = 0 THEN RO = NM ̲ID, ASCII ;
3.2.1.2 G̲E̲T̲-̲N̲M̲-̲I̲D̲B̲-̲P̲
NM-ID, ASCII = R3;
MON (SCCM, GET ̲NM ̲IDB ̲P, R0, R3, R6, R7) : ERROR ̲DONE;
IF R7 = 0 THEN RO = NM ̲ID, binary ;
3.2.1.3 C̲R̲E̲A̲T̲E̲F̲I̲X̲M̲
MTCB Index = RO;
Ref. MECB = R4;
MON(SCCM,CREATEFIXM, R0, R4, R6, R7) : ERROR ̲DONE;
IF R7 = 0 THEN ...;
3.2.1.4 O̲P̲E̲N̲F̲I̲X̲M̲
MTCB index = R0;
Ref. MECB = R4;
MON (SCCM,OPENFIXM, R0,R4,R6,R7): ERROR ̲DONE;
IF R7 = 0 THEN ...;
3.2.1.5 C̲L̲O̲S̲E̲F̲I̲X̲M̲
MTCB index = R0;
Ref.MECB = R4;
MON (SCCM, CLOSEFIXM, R0,R4,R6,R7): ERROR ̲DONE;
IF R7 = 0 THEN ...;
3.2.1.6 R̲F̲I̲X̲M̲-̲H̲D̲
Offset = R0;
Ref. buffer = R2;
Count = R3;
Ref. MECB = R4;
MON(SCCM,RFIXM ̲HD,R0,R2,R3,R4,R6,R7): ERROR ̲DONE;
3.2.1.7 R̲F̲I̲X̲M̲-̲C̲M̲
Offset = R0;
Ref. buffer = R2;
Count = R3;
Ref. MECB = R4;
MON(SCCM,RFIXM ̲CM,R0,R2,R3,R4,R6,R7):ERROR ̲DONE;
3.2.1.8 W̲F̲I̲X̲M̲-̲H̲D̲
Offset = R0;
Ref. buffer = R2;
Count = R3;
Ref. MECB = R4;
MON(SCCM,WFIXM ̲HD,R0,R2,R3,R4,R6,R7):ERROR ̲DONE;
3.2.1.9 W̲F̲I̲X̲M̲-̲C̲M̲
Offset = R0;
Ref. buffer = R2;
Count = R3;
Ref. MECB = R4;
MON(SCCM,WFIXM ̲CM,R0,R2,R3,R4,R6,R7):ERROR ̲DONE;
3.2.1.10 I̲N̲S̲-̲Q̲E̲
Terminal No = R0;
Queue No = R1;
MTCB index = R2;
Ref. QCB = R5;
SWITCH MON(SCCM,R0,R1,R2,R5,R6,R7): EXIT TO
"ERROR"
END;
3.2.1.11 R̲D̲D̲-̲Q̲E̲
Terminal No = R0;
Queue No/Group Switch = R1;
Ref. QCB = R5;
SWITCH MON(SCCM,INS.QE,R0,R1,R5,R6,R7): THREE ̲EXITS
TO
0: "ERROR"
1: "QUEUE EMPTY"
2: "DONE"
END;
3.2.1.12 D̲E̲L̲-̲Q̲E̲
Terminal No = R0;
Queue No = R1;
Entry No = R2;
Ref. QCB = R5;
SWITCH MON(SCCM,DEL-QE,R0,R1,R2,R5,R6,R7): EXIT TO
"ERROR"
END;
3.2.1.13 R̲D̲-̲M̲T̲C̲B̲
MTCB index = R0;
Ref. MTCB Block = R4;
Ref. QCB = R5;
SWITCH MON(SCCM,RD ̲MTCB,R0,R1,R2,R4,R5,R6,R7): EXIT
TO
"ERROR"
END;
R1 = Ref. partly unpacked MTCB
R2 = Size of unpacked MTCB
3.2.1.14 W̲R̲-̲M̲T̲C̲B̲
Ref. MTCB Block = R4;
Ref. QCB = R5;
SWITCH MON(SCCM,WR ̲MTCB,R0,R4,R5,R6,R7): EXIT TO
"ERROR"
END;
R0 = MTCB index;
3.2.1.15 G̲E̲T̲-̲C̲M̲D̲
Delay = R0;
CC = R1;
Mask = R2;
Ref. VDUCB = R4;
SWITCH MON(SCCM,GET ̲CMD,R0,R1,R2,R4,R6,R7): EXIT TO
"ERROR"
END;
R0 = Eventtype;
R2 = Event;
3.2.1.16 V̲D̲U̲-̲I̲O̲
Ref. VDUCB = R4;
SWITCH MON(SCCM,VDU ̲IO,R4,R6,R7): FIVE ̲EXITS TO
0: "I/O-PARAM ERROR"
1: "ABORT"
2: "RESTART"
3: "CONTROL"
4: "DONE"
END;
3.2.2 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲R̲e̲c̲o̲r̲d̲s̲
3.2.2.1 M̲E̲C̲B̲
The MECB record has this format:
MECB.M ̲INDEX ; MTCB INDEX
- .F ̲BYOFFS ; FILE BYTE OFFSET
- .F ̲BYCNT ; FILE BYTE COUNT
- .F ̲MAX ̲USED ; LAST MODIFIED BYTE IN FILE
- .F ̲BLE 0..3 ; BLE
- .F ̲ADDR 0..5 ; FILE ADDRESS
- .F ̲START 0..1 ; FIRST BYTE OF MSG.
- .F ̲FD ; FILE DESCRIPTOR
- .B ̲OFFS ; FILE OFFSET OF START OF BUFFER
- .B ̲CNT ; NO. OF ITEMS IN BUFFER
- .B ̲STA ; TYPE OF DATA IN BUFFER
- .B ̲RWSW ; READ/WRITE SWITCH
- .B ̲OFFS ̲MXO ; LAST USED WORD IN CM BUFFER
- .H ̲STA ; STATUS OF HEADER
- .G ̲OFFS ; REQUESTED OFFSET
- .G ̲CNT ; REQUESTED COUNT
- .G ̲STA ; REQUESTED TYPE OF DATA
(XF-CM, XF-HD)
- .MTY ; TYPE OF MESSAGE
- .CMGT ; CONTROL MESSAGE RECEIVER GROUP
- .TYP ; CONTROL MESSAGE TYPE
- .CAT ; CONTROL MESSAGE CATEGORY
- .S0,S1,S2,S3 ; RETURN SAVE LOCATIONS
- .SAVE 0..6 ; SAVE R0 - R6
- .RETURN ; MON RETURN LOCATION
- .HEAD ; MAX UNPACKED HEADER
- .PCB ; PACK CONTROL BLOCK
- .BUF ̲PAC ; PACKED BUFFER DATA
- .BUF ̲UNP ; UNPACKED BUFFER DATA
3.2.2.2 Q̲C̲B̲
The QCB record has the following format:
QCB.MTCB ̲INDEX ; MTCB-INDEX
-.CB ; QIOCB
-.MTCB ̲BUF 0..12 ; MTCB-BLOCK
-.PACK ̲CB ; MTCB AREA ADDRESS
-.SAVE 0..7 ; SAVE R0 - R7
-.SAV5, SAV7 ; SAVE R5, SAVE R7
-.RETURN ; MON RETURN LOCATION
3.2.2.3 V̲D̲U̲C̲B̲
The VDUCB record has the format described below:
VDUCB.IO ̲TY ; IO TYPE
- .CHAR ̲POS ; CHARACTER DISPLAY LOCATION
0 - 79
- .LINE ̲POS ; LINE DISPLAY LOCATION 0 -
15
- .IN ̲CNT ; NO. OF BYTES IN
- .OUT ̲CNT ; NO. OF BYTES OUT
- .PAR ̲IN ̲BUF ̲ADDR; WORD ADDR (BASE REL) OF
INPUT BUFFER
- .OUT ̲BUF ̲ADDR ; WORD ADDR (BASE REL) OF
OUTPUT BUFFER
- .CMD ̲IO ̲STA ; SMD OR IO TYPE
- .PAR1 ; IOS PAR: OUT ̲CC
- .PAR2 ; IOS PAR: IN ̲CC
- .PAR3 ; IOS PAR: IN ̲CNT
- .PAR4 ; IOS PAR: SPARE
- .CMD ̲EV ; LAST CMD EVENT
- .IO ̲STA ; CMD OR ID STATE
- .CMD-ID ; WORD O FROM LAST CMD TYPE
- .PNAME 0..2) ; PROCESS NAME
- .REGSAV 0..6 ; SAVE R0 - R6
- .SAVR7 ; SAVE R7
- .RETURN ; MON RETURN LOCATION
- .PSW-FOR-
OUTBOUND ;
- .OUTBOUND-
BUFF ̲ADDR ;
3.3 P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
This section gives a detailed description of the internal
procedures of the SCCM.
Besides the initialization the SCCM consists of 20
procedures, which may be ordered in a hierarchical
manner. An overview is found in figure 3.3-1. The subsections
below as well as the flowcharts are ordered according
to this figure.
Please note that the procedures mentioned below also
exist in link modules to be used where appropriate:
M̲O̲D̲U̲L̲E̲ P̲R̲O̲C̲E̲D̲U̲R̲E̲
VDUIO VDU-IO
GET ̲CMD
IO INSERT ̲QE
READ ̲QE
DELETE ̲QE
READ ̲MTCB
INSERT ̲MTCB
3.3.0 L̲e̲v̲e̲l̲ ̲0̲
3.3.0.0 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲
During initialization MONINIT is called. Besides SCCM
also the monitor procedure TAB is initialized. This
is illustrated in figure 3.3.0.0-1.
3.3.0.1 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲S̲C̲C̲M̲-̲P̲ ̲(̲A̲R̲G̲U̲M̲E̲N̲T̲;̲ ̲C̲C̲)̲
E̲n̲t̲r̲y̲:̲
R6: Not used
R7: Link: Ref. argument
E̲x̲i̲t̲:̲
R6: Destroyed: GET ̲NM ̲IDA,GET ̲NM ̲IDB,FILE ̲ACCESS
Unchanged: Otherwise
R7: CC
Remaining registers are destroyed.
C̲a̲l̲l̲:̲
MON SCCM ;
argument ; link + 0
; link + 1
; link + 2
R̲e̲t̲u̲r̲n̲s̲:
Link + 1 : Done, error
E̲r̲r̲o̲r̲s̲:
Illegal argument
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.0.1-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The procedure specified by the argument is called.
3.3.1 L̲e̲v̲e̲l̲ ̲1̲
3.3.1.1 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲F̲I̲L̲E̲-̲A̲C̲C̲E̲S̲S̲ ̲(̲T̲Y̲P̲E̲,̲M̲E̲C̲B̲,̲ ̲M̲T̲C̲B̲-̲I̲N̲D̲E̲X̲)̲
E̲n̲t̲r̲y̲:̲
R0: MTCB-index
R1: Type
R4: Ref. MECB
MECB.RETURN: Link
E̲x̲i̲t̲:̲
Before exit the registers are reloaded by the contents
of MECB. SAVE 0..6).
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Error
Link + 1: Done
E̲r̲r̲o̲r̲s̲:̲
Create-error
Open-error
Read-error
Write-error
Close-error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.1.1-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
Depending on the type one of the procedures mentioned
below is called:
- CREATE-FIXM (MTCB-Index, MECB)
- OPEN-FIXM (MTCB-Index, MECB)
- READ-WRITE-FIXM (MECB) for reading header
- READ-WRITE-FIXM (MECB) for reading body
- READ-WRITE-FIXM (MECB) for writing header
- READ-WRITE-FIXM (MECB) for writing body
- CLOSE-FIXM (MECB)
3.3.2 L̲e̲v̲e̲l̲ ̲2̲
3.3.2.1 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲C̲L̲O̲S̲E̲-̲F̲I̲X̲M̲ ̲(̲M̲E̲C̲B̲)̲
E̲n̲t̲r̲y̲:̲
R0: Not used
R4: Ref. MECB
R6: Link
MECB.B ̲STA: Write block of msg. body
MECB.B ̲OFFS: Offset
MECB.H ̲STA: Write Block of binary header
E̲x̲i̲t̲:̲
R0: MTCB index
R4: Ref. MECB
R6: Link
Remaining registers are destroyed.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Done, error
E̲r̲r̲o̲r̲s̲:̲
XFER-error
Pack-error
I/O-error
MTCB-error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.2.1-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
If specified the last block of the message body is
written into the file.
If specified the binary header is updated in the file.
The file is closed (released):
3.3.2.2 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲R̲E̲A̲D̲-̲W̲R̲I̲T̲E̲-̲F̲I̲X̲M̲ ̲(̲M̲E̲C̲B̲)̲
E̲n̲t̲r̲y̲:
R4: Ref. MECB
R6: Link
MECB.SAVE 0 : Word offset from start of:
HD: unpacked header
CM: body in unpacked control message
MECB.SAVE 2 : Ref. user buffer
MECB.SAVE 3 : No. of unpacked words to read or
write
MECB.G ̲STA: Data type: HD or CM.
B ̲STA B-MODIF : Read/Write
E̲x̲i̲t̲:̲
R4: Ref. MECB
R6: Link
Remaining registers are destroyed.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0 Done, error.
E̲r̲r̲o̲r̲s̲:̲
XFER ̲error
Header ref. error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.2.2-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The mode: read or write is determined by B.STA B.MODE
.
The buffer is specified by the user.
The data type specifies the header (HD) or the body
of a control message (CM).
The offset and the count specifies no. of words.
3.3.3 L̲e̲v̲e̲l̲ ̲3̲
3.3.3.1 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲X̲F̲E̲R̲-̲B̲U̲F̲ ̲(̲M̲E̲C̲B̲)̲
E̲n̲t̲r̲y̲:̲
R4: Ref.MECB
R6: Link
E̲x̲i̲t̲:̲
R4: Ref.MECB
R6: Link
R7: CC
Remaining registers are destroyed.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Done, error
E̲r̲r̲o̲r̲s̲:̲
XFER-error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.3.1-1
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
If MECB.B ̲STA = XF ̲CM, then the procedure XFER ̲CM is
called.
3.3.4 L̲e̲v̲e̲l̲ ̲4̲
3.3.4.1 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲G̲E̲T̲-̲N̲M̲-̲I̲D̲A̲-̲P̲ ̲(̲B̲I̲N̲A̲R̲Y̲ ̲N̲M̲-̲I̲D̲;̲A̲S̲C̲I̲I̲ ̲N̲M̲-̲I̲D̲,̲ ̲C̲C̲)̲
E̲n̲t̲r̲y̲:̲
R0: Not used
R3: NM-ID, binary
R7: Link
E̲x̲i̲t̲:̲
R0: NM-ID, ASCII
R3: Unchanged
R7: CC
Remaining registers are destroyed.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Done, error
E̲r̲r̲o̲r̲s̲:̲
Conversion Table error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.4.1-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The NM-identification is converted from binary to ASCII.
3.3.4.2 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲G̲E̲T̲-̲N̲M̲-̲I̲D̲B̲-̲P̲(̲A̲S̲C̲I̲I̲ ̲N̲M̲-̲I̲D̲;̲ ̲B̲I̲N̲A̲R̲Y̲ ̲N̲M̲-̲I̲D̲,̲C̲C̲)̲
E̲n̲t̲r̲y̲:̲
R0: Not used
R3: NM-ID, ASCII
R7: Link
E̲x̲i̲t̲:̲
R0: NM ̲ID, binary
R3: Unchanged
R7: CC
Remaining registers are destroyed.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Done, error
E̲r̲r̲o̲r̲s̲:̲
Conversion Table Error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.4.2-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The NM-identification is converted from ASCII to binary.
3.3.4.3 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲X̲F̲E̲R̲-̲C̲M̲(̲M̲E̲C̲B̲)̲
E̲n̲t̲r̲y̲:̲
R4: Ref. MECB
R6: Link
MECB.B.STA B ̲ ̲MODIF = true or false
E̲x̲i̲t̲:̲
R4: Ref.MECB
R6: Link
Remaining registers are destroyed.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Done, error
E̲r̲r̲o̲r̲s̲:̲
Pack-error
I/O-error
Read-error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.4.3-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
If MECB-B ̲STA B ̲MODIF is true, the BUF ̲UNP is packed
into BUF-PAC, and BUF-PAC is written onto the file.
Otherwise the file specified by MECB.G-OFFS, SIZE(BUF-PAC)
is read and unpacked.
3.3.4.4 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲V̲D̲U̲I̲O̲(̲V̲D̲U̲C̲B̲)̲
E̲n̲t̲r̲y̲:̲
R4: Ref. VDUCB
R7: Link
VDUCB: filled.
E̲x̲i̲t̲:̲
R4: Unchanged
R6: SCC ̲W O
R7: Destroyed
Remaining registers are saved.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: I/O-parameter error
Link + 1: Abort
Link + 2: Restart
Link + 3: Control
Link + 4: Done
E̲r̲r̲o̲r̲s̲:̲
N.A.
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.4.4-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
This procedure handles all input from and output to
the operators VDU.
Each call results in moving data, returning a message
to, and awaiting the answer from the VDU.
3.3.5 L̲e̲v̲e̲l̲ ̲5̲
3.3.5.1 M̲O̲N̲I̲T̲O̲R̲ ̲P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲T̲A̲B̲ ̲(̲C̲O̲U̲N̲T̲,̲P̲A̲R̲ ̲0̲ ̲,̲.̲.̲.̲,̲I̲N̲D̲E̲X̲;̲P̲A̲R̲ ̲I̲N̲D̲E̲X̲
C̲a̲l̲l̲:̲
MON (TAB,CNT,PAR0,PAR1,...,PARN,R7);
CNT must be equal to number of parameters.
E̲n̲t̲r̲y̲:̲
R0: Index
R7: Link
E̲x̲i̲t̲:̲
R0: PAR INDEX
R1: CNT
Remaining registers are unchanged.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Index out of range
Link + 1: OK
E̲r̲r̲o̲r̲s̲:̲
Index No. of parameters
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.1-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The monitor procedure looks up a parameter from a program
resident table pointed out by the index.
3.3.5.2 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲R̲E̲A̲D̲-̲F̲I̲L̲E̲ ̲(̲M̲E̲C̲B̲)̲
E̲n̲t̲r̲y̲:̲
R4: Ref. MECB
R6: Link
MECB.F ̲BYOFFS: Byte offset from start of message
MECB.F ̲BYCNT: No. of bytes to be read
MECB.F ̲START: Byte offset to start of message within
file
MECB.F ̲FD: File Descriptor
E̲x̲i̲t̲:̲
R4: Ref. MECB
R6: Link
Remaining registers are destroyed.
MECB.F ̲BYCNT: No. of bytes read
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Done, error
E̲r̲r̲o̲r̲s̲:̲
I/O-error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.2-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
Part of the file as specified by offset and bytecount
is input and stored into BUF ̲PAC and BUF ̲UNP until
the buffers are filled or bytecount is exhausted. If
IOF is encountered, the buffer is expanded with zeroes.
3.3.5.3 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲C̲R̲E̲A̲T̲E̲-̲F̲I̲X̲M̲(̲M̲T̲C̲B̲-̲I̲N̲D̲E̲X̲,̲ ̲M̲E̲C̲B̲)̲
E̲n̲t̲r̲y̲:̲
R0: MTCB-index
R4: Ref. MECB
R6: Link
E̲x̲i̲t̲:̲
R0: Destroyed
R4: Ref. MECB
R6: Link
Remaining registers are destroyed.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Done, error
E̲r̲r̲o̲r̲s̲
MTCB-error
I/O-error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.3-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
A PDB file is created.
The binary header is written onto the file.
3.3.5.4 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲O̲P̲E̲N̲-̲F̲I̲X̲M̲(̲M̲T̲C̲B̲-̲I̲N̲D̲E̲X̲,̲ ̲M̲E̲C̲B̲)̲
E̲n̲t̲r̲y̲:̲
R0: MTCB-index
R4: Ref. MECB
R6: Link
E̲x̲i̲t̲:̲
R0: Destroyed
R4: Ref. MECB
R6: Link
Remaining registers are destroyed.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Done, error
E̲r̲r̲o̲r̲s̲:̲
MTCB-error
I/O-error
Pack-error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.4-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The file is opened, and the Binary Header is input
and unpacked. The CMGR is set according to the destination.
3.3.5.5 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲I̲N̲S̲E̲R̲T̲-̲Q̲E̲(̲T̲E̲R̲M̲-̲N̲O̲,̲Q̲U̲E̲U̲E̲-̲N̲O̲,̲
Q̲C̲B̲,̲(̲M̲T̲C̲B̲-̲I̲N̲D̲E̲X̲)̲
E̲n̲t̲r̲y̲:̲
R0: Terminal No.
R1: Queue No.
R2: MTCB-Index
R5: Ref. QCB
R6: Not used
R7: Link
E̲x̲i̲t̲:̲
R0: Terminal No.
R1: Queue No.
R2: MTCB-Index
R5: Ref. QCB
R6: SCC-W 0
R7: Destroyed
Remaining registers are saved.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Error
Link + 1: Done
E̲r̲r̲o̲r̲s̲:̲
MTCB error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.5-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
An element specified by the MTCB-Index is inserted
into the queue. The MTCB Use-count is left unchanged.
3.3.5.6 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲R̲E̲A̲D̲-̲Q̲E̲(̲T̲E̲R̲M̲-̲N̲O̲,̲Q̲U̲E̲U̲E̲-̲N̲O̲,̲Q̲C̲B̲;̲ ̲M̲T̲C̲B̲-̲I̲N̲D̲E̲X̲)̲
E̲n̲t̲r̲y̲:̲
R0: Terminal No.
R1: Queue No/Group Switch
R5: Ref. QCB
R6: Not used
R7: Link
E̲x̲i̲t̲:̲
R0: MTCB Index
R1: Queue No/Group Switch
R5: Ref. QCB
R6: SCC-W 0
R7: Destroyed
Remaining registers are saved.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Error
Link + 1: Queue empty
Link + 2: Done
E̲r̲r̲o̲r̲s̲:̲
QACCESS error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.6-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
A queue element is read from the highest priority queue
of a terminal. The element is not removed from the
queue. The MTCB Use-Count is not changed.
3.3.5.7 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲D̲E̲L̲E̲T̲E̲-̲Q̲E̲(̲T̲E̲R̲M̲-̲N̲O̲,̲Q̲U̲E̲U̲E̲-̲N̲O̲,̲E̲N̲T̲R̲Y̲-̲N̲O̲,̲Q̲C̲B̲)̲
E̲n̲t̲r̲y̲:̲
R0: Terminal No.
R1: Queue No.
R2: Entry No.
R5: Ref. QCB
R6: Not used
R7: Link
E̲x̲i̲t̲:̲
R0: Terminal No.
R1: Queue No.
R2: Entry No.
R5: Ref. QCB
R6: SCC ̲W 0
R7: CC
Remaining registers are saved.
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Error
Link + 1: Done
E̲r̲r̲o̲r̲s̲:̲
QACCESS error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.7-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The queue element specified is deleted. The MTCB Use-Count
is decremented by one.
3.3.5.8 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲I̲N̲S̲E̲R̲T̲-̲M̲T̲C̲B̲(̲M̲T̲C̲B̲-̲B̲L̲O̲C̲K̲,̲Q̲C̲B̲;̲M̲T̲C̲B̲-̲I̲N̲D̲E̲X̲)̲
E̲n̲t̲r̲y̲:̲
R0: Not used
R4: Ref. MTCB block
R5: Ref. QCB
R6: Not used
R7: Link
E̲x̲i̲t̲:̲
R0: MTCB index
R4: Ref. MTCB block
R5: Ref. QCB
R6: SCC-W 0
R7: CC
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Error
Link + 1: Done
E̲r̲r̲o̲r̲s̲:̲
MTCB error
Pack error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.8-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
An MTCB is created, the MTCB-block is packed, and the
data is stored in the MTCB.
3.3.5.9 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲R̲E̲A̲D̲-̲M̲T̲C̲B̲(̲M̲T̲C̲B̲-̲B̲L̲O̲C̲K̲,̲Q̲C̲B̲,̲M̲T̲C̲B̲-̲I̲N̲D̲E̲X̲)̲
E̲n̲t̲r̲y̲:̲
R0: MTCB index
R1: Not used
R2: Not used
R4: Ref. MTCB Block
R5: Ref. QCB
R6: Not used
R7: Link
E̲x̲i̲t̲:̲
R0: MTCB Index
R1: Ref partly unpacked MTCB
R2: Size of unpacked MTCB
R4: Ref MTCB Block
R5: Ref QCB
R6: SCC-W 0
R7: CC
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Error
Link + 1: Done
E̲r̲r̲o̲r̲s̲:
MTCB error
Pack error
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.9-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
An MTCB is read and unpacked.
3.3.5.10 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲P̲A̲C̲K̲-̲I̲O̲L̲(̲V̲D̲U̲C̲B̲)̲
E̲n̲t̲r̲y̲:̲
R4: Ref. VDUCB
R6: Link
VDUCB.IO ̲TY: Status
VDUCB.LINE-POS: Line position
VDUCB.CHAR-POS: Character position
VDUCB.OUT-CNT: Out-count
VDUCB.IN ̲CNT: In-count
E̲x̲i̲t̲:̲
R4: Ref. VDUCB
R6: Link
Remaining registers are destroyed.
VDUCB.CMD ̲IO ̲STA: Status
VDUCB.PAR1: Line position, character position
VDUCB.PAR2: Out-count, in-count
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Done
E̲r̲r̲o̲r̲s̲:̲
None
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.10-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
VDUCB.PAR1 is packed: Line-position,Character-position
VDUCB.PAR2 is packed: Out-count, in-count.
3.3.5.11 P̲R̲O̲C̲E̲D̲U̲R̲E̲ ̲G̲E̲T̲-̲C̲M̲D̲(̲C̲C̲,̲V̲D̲U̲C̲B̲,̲M̲A̲S̲K̲,̲D̲E̲L̲A̲Y̲;̲ ̲E̲V̲E̲N̲T̲)̲
E̲n̲t̲r̲y̲:̲
R0: Delay
R1: CC
R2: Mask
R4: Ref. VDUCB
R6: Not used
R7: Link
VDUCB.PAR-CNT,PAR1,...,PAR4: contain cmd letters
E̲x̲i̲t̲:̲
R0: Delay (if not message then eventype)
R1: CC
R2: Mask (if not message then event)
R4: Ref VDUCB
R6: SCC ̲W 0
R7: Destroyed
Remaining registers destroyed
R̲e̲t̲u̲r̲n̲s̲:̲
Link + 0: Event message
Link + 1: Event = message (cmd received)
E̲r̲r̲o̲r̲s̲:̲
None
R̲e̲f̲e̲r̲e̲n̲c̲e̲:̲
Figure 3.3.5.11-1.
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The next command is waited for and received.
All calls except for the first will result in return
of the previous received command.
3.4 D̲A̲T̲A̲ ̲O̲R̲G̲A̲N̲I̲Z̲A̲T̲I̲O̲N̲
Not applicable
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 source text of the 20 internal procedures and the
initialization is found in one mainmodule and six submodules.
The codesize incl. the header is specified below.
M̲O̲D̲U̲L̲E̲ P̲R̲O̲C̲E̲D̲U̲R̲E̲ S̲I̲Z̲E̲ ̲(̲w̲o̲r̲d̲s̲)̲
HEADER …05…32
SCCM INITIALIZATION …05…97
SCCM-P
GET-NM-ID GET-NM-IDA-P …05…59
GET-NM-IDB-P
FILE-ACCESS CREATE-FIXM …05…451
OPEN-FIXM
CLOSE-FIXM
READ-WRITE-FIXM
FILE-ACCESS
FILE-XFER READ-FILE …05…332
XFER-CM
XFER-BUF
QIO INSERT ̲QE …05…289
READ-MTCB
READ-QE
INSERT-MTCB
DELETE-QE
VDU-M PACK-IOL 228
VDU-IO
GET-CMD
TAB-MON TAB …05…9
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
TOTAL 1497…86…1 …02… …02…
…02… …02… …02… …02…
3.5.2 D̲i̲s̲c̲ ̲S̲p̲a̲c̲e̲ ̲R̲e̲q̲u̲i̲r̲e̲m̲e̲n̲t̲s̲
No disc space is required.
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̲
None.
3.8 E̲R̲R̲O̲R̲ ̲C̲O̲D̲E̲S̲
The errors are specified in section 3.3.
3.9 L̲I̲S̲T̲I̲N̲G̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲
Source listings 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̲
Not applicable.…86…1 …02… …02… …02… …02… …02… …02…
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 texts of the mainmodule and/or
the submodules.
Then the source text is merged together with prefix
files.
The merge file is compiled by running the SWELL compiler,
and the listing is printed.
The object code is then linked together with other
pieces of object code by the LINKER.
Finally the binary code is 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̲
The flow charts are ordered according to the hierarchical
structure of figure 3.3-1.