top - download
⟦76c0c8406⟧ Wang Wps File
Length: 85595 (0x14e5b)
Types: Wang Wps File
Notes: CPS/ICD/009
Names: »1152A «
Derivation
└─⟦2a70d8cf1⟧ Bits:30006046 8" Wang WCS floppy, CR 0073A
└─ ⟦this⟧ »1152A «
WangText
…1d……00……00……00……00…B…0a……00……00…B…0b…B…0f…B…00…B
B…06…A…0a…A…0b…A…0c…A…01…A…05…A…06…@…09…@…0e…@…01…@…05…6…00…6…05…3
3…07…2
2…06……17……09……17……0c……17……00……17……06……16……08……16……0d……16……02……16… …16……05……15……0b……15……0f……15……06……14……0b……14……0e……14……02……14……05……13……0b……13……00……13……01……13……06……13……07……12……08……12……86…1 …02… …02… …02…
…02…CPS/ICD/009
…02…850401…02……02…
CAMPS SOFTWARE INTERFACE CONTROL DOCUMENT
…02…Issue 2.1…02…CAMPS
3.3 S̲T̲A̲T̲I̲S̲T̲I̲C̲S̲ ̲I̲N̲T̲E̲R̲F̲A̲C̲E̲S̲
Collection of statistics information is performed by
calling the collection monitor procedure STA ̲COLL.
This is invoked by the following call specification:
STATISTICS ̲COLLECTION (
GROUP ̲NO: STA ̲GROUP ̲NO ̲TYPE;
SUBGROUP ̲NO: STA ̲SUBGROUP ̲NO
RECORD ̲NO: RECORD ̲NO ̲TYPE
STA ̲PARAMS: STA ̲PARAMS ̲TYPE
FUNCTION: STA ̲MON ̲FUNC)
(CC: COMPLETION ̲CODE);
SWELL call specification:
MON(STA ̲COLL,R0,R1,R2,R3,R4,R7);
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0: GROUP ̲NO (destr)
R1: SUBGROUP ̲NO (destr)
R2: REC ̲NO (destr)
R3: Pointer to STA ̲PARAMS (destr)
R4: FUNCTION
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
R5, R6 (destr)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
POINTER ̲ERROR
PARAM ̲ERROR
STATISTICS COLLECTION
SKEMA
3.4 T̲R̲A̲C̲E̲
3.4.1 C̲S̲F̲ ̲T̲r̲a̲c̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
3.4.1.1 C̲M̲O̲N̲ ̲T̲r̲a̲c̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This function generates trace records from user mode,
in particular from Coroutine Monitor.
The function generates a trace record as specified
by the CMON ̲TRACE ̲PARAM.
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) CMON ̲TRACE(TRACE ̲PARAMS: CMON ̲TRACE ̲PARAM): ERROR
̲OK
b) MON (CSF, CMON ̲TRACE, R6, R7): ERROR ̲OK
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R6 pointer to TRACE ̲PARAMS;
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0-R7 Kept
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Trace Param Address Error
3.4.1.2 I̲n̲i̲t̲ ̲T̲r̲a̲c̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Initializes the data structures and file descriptions
used by the trace functions for calling process.
Specifies FDCB index of the trace file and the maximum
number of sectors in the file.
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) INIT ̲TRACE (FILE: FDCB ̲INDEX
NO ̲OF ̲BLOCKS: INTEGER)
(CC: COMPLETION ̲CODE):
ERROR ̲OK
b) MON(CSF, INIT ̲TRACE; R0,R1,R7): ERROR ̲OK
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 FILE (kept)
R1 NO ̲OF ̲BLOCKS (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC
R1-R6 Kept
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
None
3.4.1.3 C̲S̲F̲ ̲T̲r̲a̲c̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This function generates trace records from system mode.
It can be called from CSF, or SCM procedures in CSF,
or SCM Procedures in other Packages than CSF, as the
function is an internal function, only called from
system mode e.g. CSF, TMP etc.
The function generates a Register Trace Record or a
Data Trace Record depending on the DATA ̲TYPE parameter,
cf DBD section 13.1
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) CSF ̲TRACE (FUNCTION: FUNCTION ̲DE-
SCRIPTOR,
DATA ̲TYPE: DATA ̲DESCRIPTOR,
COUNT: INTEGER,
"Number of words
"in Trace Data.
"Only relevant
for "Data Trace.
DATA: "POINTER,
"Printer to the
"data area to
be "traced. Only
"relevant for
"Data Trace.)
b) CSF ̲TRACE (FUNCTION, DATA ̲TYPE, R5, R7, R6)
C̲o̲n̲s̲t̲a̲n̲t̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲
FUNCTION, DATA ̲TYPE: INTEGER
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̲
R5 COUNT (destr)
R7 DATA (destr)
R6 LINK (destr)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0-R4 (kept)
F̲a̲t̲a̲l̲ ̲e̲r̲r̲o̲r̲s̲
None
TRACE
SKEMA
3.4.1.4 U̲s̲e̲r̲ ̲T̲r̲a̲c̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Generates a trace record on the trace file of calling
process. The function may be called from any application
process having mapped in the CSF Shared Segment.
The trace parameter "count" determines the trace record
type:
- if count = 0, registers R0-R6 are traced.
- if count is nonzero, a data record of count words
is
traced, and in this case the index parameter specifies
the number of one of the registers R0-R6 which
points to the data record.
C̲o̲n̲s̲t̲a̲n̲t̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲ ̲i̲n̲ ̲U̲S̲E̲R̲ ̲T̲R̲A̲C̲E̲
PRIORITY: 0..15
A trace record is only generated if this parameter
is higher than or equal to both of the following
SSC controlled parameters:
- Global Priority, which is common for all processes.
- Trace Priority for calling process.
FORMAT: TRACE ̲FORMAT
Specifies the printout format for the trace
record.
FUNCTION: 512..3200
This code determines a function name to be
printed together with the trace record.
REG ̲TRACE: BOOLEAN
Specifies if the registers R0-R6 shall be traced.
DATA ̲DESCR: BITMASK
If COUNT is nonzero, this mask specifies by
a set bit, one of the registers R0-R6 as a
pointer to the data record.
COUNT: 0..110
The number of words in the data record. Zero
means that only registers shall be traced
1̲5̲ ̲ ̲ ̲1̲2̲1̲1̲ ̲ ̲8̲7̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲0̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲P̲R̲I̲O̲R̲I̲T̲Y̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
F̲O̲R̲M̲A̲T̲ ̲ ̲ ̲ ̲ ̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲ ̲ ̲ ̲ ̲ ̲ ̲
R̲E̲G̲ ̲T̲R̲A̲C̲E̲ ̲ ̲ ̲ ̲ ̲ ̲D̲A̲T̲A̲ ̲D̲E̲S̲C̲R̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲C̲O̲U̲N̲T̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
USER TRACE Constant Parameters
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) USER ̲TRACE (TRACE ̲PRIO: 0..15
TRACE ̲FUNCTION: INTEGER,
TRACE ̲DESCR: INTEGER,
TRACE ̲COUNT: INTEGER)
b) MON (USER ̲TRACE, TRACE ̲PRIO,
TRACE ̲FUNCTION
TRACE ̲DESCR,
TRACE ̲COUNT, R7)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
N/A
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0-R7 Kept
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
IO Error
3.4.1.5 S̲e̲t̲ ̲T̲r̲a̲c̲e̲ ̲P̲r̲i̲o̲r̲i̲t̲y̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Set the trace priority for the specified process or
for all processes in common.
If process number = GLOBAL ̲LOG ̲PRIO, the global priority
is set. Otherwise the priority for specified process
is set.
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 ̲TRACE ̲PRIORITY (PROCESS ̲NUMBER: PROCESS ̲NUMBER
PRIORITY: 1..15)
(CC : COMPLETION ̲CODE)
ERROR ̲OK;
b) MON (CSF, SET ̲TRACE ̲PRIORITY, R0, R1, R7): ERROR
̲OK;
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 PROCESS ̲NUMBER (kept)
R1 PRIORITY (kept)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC
R2 - R6 kept
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Process Reference Errors
3.5 I̲/̲O̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
The interface for IOC can be divided into 3 main groups.
a) Data Transport Interfaces using the IOS calls.
b) FORMAT HANDLER interfaces.
c) Control Interfaces for defining control parameters
within the IOC (i.e. definition of terminals).
3.5.1 I̲O̲S̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
3.5.1.1 M̲O̲U̲N̲T̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The specified volume name is checked against the volume
name actually recorded on the volume. At return the
volume is identified by the symbolic volume name, and
the functions utilizing the file structure of the volume
may operate on the files.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) MOUNT (FILESYSTEMNAME: FILE ̲SYSTEM ̲NAME,
DEVICENAME: DEVICE ̲NAME,
VOLUMENAME: VOLUME ̲NAME)
(CC: COMPLETION ̲CODE):
ERROR ̲OK.
b1) MON(SCM,SYSCASE,IO ̲MOUNT: R6, R0, R1, R2, R5,
R7):
ERROR ̲OK
b2) COMON(SYSCALL, IO MOUNT, R0, R1, R2, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to FILESYSTEMNAME
R1 Pointer to VOLUMENAME
R2 Pointer to DEVICENAME
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC
3.5.1.2 D̲I̲S̲M̲O̲U̲N̲T̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The description of the volume is excluded from FMS.
No files may be open for access when this command
is called.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DISMOUNT (FILESYSTEMNAME: FILE ̲SYSTEM ̲NAME,
VOLUMENAME: VOLUME ̲NAME)
(CC: COMPLETION CODE):
ERROR ̲OK.
b1) MON (SCM, SYSCALL, IO ̲DISMOUNT: R6, R0, R1, R5,
R7):
ERROR ̲OK
b2) COMON (SYSCALL, IO ̲DISMOUNT, R0, R1, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to FILESYSTEMNAME
R1 Pointer to VOLUMENAME
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC
3.5.1.3 D̲I̲S̲M̲A̲N̲T̲L̲E̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
F̲i̲l̲e̲s̲
The file will no longer be open via the given file
descriptor. If the file is not open for access by
any user, and if the file is temporary, it will be
deleted.
T̲e̲r̲m̲i̲n̲a̲l̲s̲
It is checked that FD identifies a connection from
the caller to a subdevice.
Not completed operations on the connection are cancelled.
The connection is removed and will not be accessible
anymore.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DISMANTLE (CONID: USER ̲CONNECTION ̲TYPE)
(CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, IO ̲DISMANTLE: R6, R4, R5, R7):
ERROR ̲OK
b2) COMON (SYSCALL, IO ̲DISMANTLE, R4, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R4 CONID
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
3.5.1.4 R̲E̲S̲E̲T̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Removes the contents of the specified file. If the
file is a random file, the sectors corresponding to
the file are deallocated.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RESET (FILEDECR: FDCB ̲INDEX)
(CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, IO ̲RESET: R6, R4, R5, R7):
ERROR ̲OK
b2) COMON (SYSCALL, IO ̲RESET, R4, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R4 FILEDECR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
3.5.1.5 A̲C̲C̲E̲P̲T̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Returns a file descriptor to a file/terminal, that
has previously been offered to the caller. The offer
transaction is identified by the offer identification
given as call parameter. The file/terminal becomes
open for access by the caller with the file descriptor
as identification.
Note: The OFID must be made known to the caller of
ACCEPT by the offerer.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) ACCEPT (FILESYSTEMNAME: FILE ̲SYSTEM ̲NAME,
OFID: OFFER ̲ID)
(CONID: USER ̲CONNECTION ̲TYPE
CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, IO ̲ACCEPT: R6, R0, R3, R4, R5,
R7):
ERROR ̲OK
b2) COMON ( CSYSCALL, IO ̲ACCEPT, R0, R3, R4, R5, R6,
R7):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to FILESYSTEMNAME
R3 OFID
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R4 CONID
R7 CC (OK)
3.5.1.6 O̲F̲F̲E̲R̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The caller offers a file to another user. This means
that the user specified, may issue an "accept" command
and thereby get a file descriptor of the file. The
user will thus be able to access the file. In this
way it is possible for several users to exchange information
via a file without a name.
The access rights of the user who accepts the file,
depending on whether or not the user who "offers" the
file is allowed to protect the file:
- "offerer" has protect right:
"accepter" gets the access rights which are the
union of:
1) the rights the "accepter" already has
2) the intersection of the "offered" and the rights
the "offerer" has.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) OFFER (CONID: USER ̲CONNECTION ̲TYPE
ACCDECR: ACCESS ̲DESCRIPTION)
(OFID: OFFER ̲ID,
CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, IO ̲OFFER: R6, R1, R3, R4, R5,
R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲OFFER, R1, R2, R3, R4, R5,
R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to ACCDECR
R4 CONID
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R3 OFID
R7 CC (OK)
3.5.1.7 E̲N̲T̲E̲R̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
F̲i̲l̲e̲s̲
The subject file is named in the SFD specified in the
second parameter with the name given as the first parameter.
The subject file becomes permanent.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) ENTER (FILEDECR ̲DIR: FDCB ̲INDEX,
FILEDECR ̲FILE: FDCB ̲INDEX,
FILENAME: FILE ̲NAME)
(CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, IO ̲ENTER: R6, R1, R2, R4, R5,
R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲ENTER, R1, R2, R4, R5, R7,
R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILENAME
R2 FILEDECR ̲FILE
R4 FILEDECR ̲DIR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
3.5.1.8 L̲O̲O̲K̲U̲P̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
T̲e̲r̲m̲i̲n̲a̲l̲s̲
Refer description for ENTER
F̲i̲l̲e̲s̲
Retrieves in an SFD a file given by symbolic name.
The file becomes open for access by the caller.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) LOOKUP (FILEDECR ̲DIR: FDCB ̲INDEX,
FILENAME: FILE ̲NAME)
(FILEDECR ̲FILE: FDCB ̲INDEX,
CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON SCM, SYSCALL, IO ̲LOOKUP: R6, R1, R2, R4, R5,
R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲LOOKUP, R1, R2, R4, R5, R7,
R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILENAME
R4 FILEDECR ̲DIR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R2 FILEDECR ̲FILE
R7 CC
3.5.1.9 D̲E̲S̲C̲E̲N̲T̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Works as lookup. However, an implicit "dismantle"
is made on the SFD.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DESCENT (FILEDECR ̲DIR: FDCB ̲INDEX,
FILENAME: FILE ̲NAME)
(FILEDECR ̲FILE: FDCB ̲INDEX,
CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, IO ̲DESCENT: R6, R1, R4, R5,
R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲DESCENT, R1, R4, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILENAME
R4 FILEDECR ̲DIR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R4 FILEDECR ̲FILE
R7 CC
3.5.1.10 R̲E̲N̲A̲M̲E̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Changes the name of the file in the specified directory
from "old file name" to "new file name".
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RENAME (FILEDECR ̲DIR: FDCB ̲INDEX,
FILENAMES: FILE ̲NAMES)
(CC: COMPLETION CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, IO ̲RENAME: R6, R1, R4, R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲RENAME, R1, R4, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILENAMES
R4 FILLEDECR ̲DIR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC
3.5.1.11 R̲E̲M̲O̲V̲E̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Deletes the symbolic name of a file from the SFD.
If the name of the file has now been removed from all
SFDs in which it has been entered, the file will either
be deleted (if it is not open for access by any user)
or become temporary.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) REMOVE (FILEDECR ̲DIR: FDCB ̲INDEX,
FILENAME: FILE ̲NAME)
(CC: COMPLETION ̲CODE):
ERROR ̲OK.
b1) MON (SCM, SYSCALL, IO ̲REMOVE: R6, R1, R4, R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲REMOVE, R1, R4, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILENAME
R4 FILEDECR ̲DIR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC
3.5.1.12 G̲E̲T̲R̲O̲O̲T̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Returns a file descriptor for the root SFD on the specified
volume. The root SFD becomes open for access by the
caller.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GETROOT (FILESYSTEMNAME: FILE ̲SYSTEM ̲NAME,
VOLUMENAME: VOLUME ̲NAME)
(FILEDECR ̲ROOT: FDCB ̲INDEX,
CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, IO ̲GETROOT: R6, R0, R1, R4,
R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲GETROOT, R0, R1, R4, R5, R7,
R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to FILESYSTEMNAME
R1 Pointer to VOLUMENAME
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R4 FILEDECR ̲ROOT
R7 CC
3.5.1.13 R̲E̲A̲D̲B̲Y̲T̲E̲S̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
T̲e̲r̲m̲i̲n̲a̲l̲s̲
It is checked that FD identifies a connection from
the caller to a subdevice of type terminal.
Caller's access rights are checked.
It is checked that the function is called from a CPU
level not lower than the access level for the terminal
(e.g. VDUs cannot be accessed directly).
The function reads one logical block of data from a
terminal.
The device handler corresponding to the terminal is
called to enable input. The data is delivered into
a buffer supplied by the caller. The amount of data
transferred will be one logical block of data (protocol
dependent) but at most the length specified in FILADD.
The FIRST ̲BYTE in FILADD is ignored but should for
compatibility with the FMS command be set to zero at
first read (and will be updated subsequently).
F̲i̲l̲e̲s̲
Reads a sequence of bytes from the specified file into
a buffer supplied by the caller.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) READBYTES (CONID: USER ̲CONNECTION ̲TYPE
FILADD: FILE ̲ADDRESS,
BLE: BUFFER ̲LIST ̲ELEMENT)
(FILADD: FILE ̲ADDRESS,
CC: COMPLETION ̲CODE):
ERROR ̲OK
Note: BLE is the first BLE in a chain.
b1) MON (SCM, SYSCALL, IO ̲READBYTES: R6, R1, R2, R4,
R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲READBYTES, R1, R3, R4, R5,
R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILADD
R2 Pointer to BLE
R4 CONID
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, MORE ̲DATA, CANCELLED, DISCONNECTED,
TIME ̲OUT, SOTF ̲INTERRUPTION,
DEVICE ̲ERROR, BLOCK ̲ERROR, PARITY
̲ERROR)
3.5.1.14 M̲O̲D̲I̲F̲Y̲B̲Y̲T̲E̲S̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
T̲e̲r̲m̲i̲n̲a̲l̲s̲
MODIFYBYTES should not be used on terminals.
F̲i̲l̲e̲s̲
Modifies a sequence of bytes in the specified file,
with the contents of the buffer specified.
If (some of) the bytes in the byte sequence are not
part of the file, the size is increased to the file
position of the byte sequence plus the number of bytes
in the buffer. The file position (i.e. FIRST ̲BYTE)
may not exceed the size of the file before the call.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) MODIFYBYTES (FILEDECR: FDCB ̲INDEX,
FILADD: FILE ̲ADDRESS
BLE: BUFFER ̲LIST ̲ELEMENT)
(FILADD: FILE ̲ADDRESS,
CC: COMPLETION ̲CODE):
ERROR ̲OK
Note: BLE is the first BLE in a chain.
b1) MON (SCM, SYSCALL, IO ̲MODIFYBYTES: R6, R1, R2,
R4, R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲MODIFYBYTES, R1, R2, R4, R5,
R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILADD
R2 Pointer to BLE
R4 FILEDECR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC
3.5.1.15 A̲P̲P̲E̲N̲D̲B̲Y̲T̲E̲S̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
T̲e̲r̲m̲i̲n̲a̲l̲s̲
It is checked that FD identifies a connection from
the caller to a subdevice of type terminal.
Caller's access rights are checked.
It is checked that the function is called from a CPU
level not lower than the access level for the terminal
(i.e. VDUs cannot be directly accessed).
The function is used to output data to a terminal.
The device handler for the terminal is called to output
data.
"Append ̲bytes" is equivalent to "modify ̲bytes" with
an u̲n̲d̲e̲f̲i̲n̲e̲d̲ FIRST ̲BYTE.
F̲i̲l̲e̲s̲
Appends the contents of the buffer to the file. The
size of the file is increased with the number of bytes
in the buffer.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) APPENDBYTES (CONID: USER ̲CONNECTION ̲TYPE
FILADD: FILE ̲ADDRESS,
BLE: BUFFER ̲LIST ̲ELEMENT)
(FILADD: FILE ̲ADDRESS,
CC: COMPLETION ̲CODE):
ERROR ̲OK
Note: BLE is the first BLE in a chain.
b1) MON (SCM, SYSCALL, IO ̲APPENDBYTES: R6, R1, R2,
R4, R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, IO ̲APPENDBYTES, R1, R2, R4, R5,
R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILADD
R2 Pointer to BLE
R4 CONID
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, CANCELLED, DISCONNECTED,
DEVICE ̲ERROR,
BAD ̲DATA, DEVICE ̲STATUS ̲ERROR)…86…1
…02… …02… …02… …02… …02…
…02…
3 SKEMAER
3.5.2 F̲o̲r̲m̲a̲t̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
The FORMAT HANDLER is a set of monitor procedures called
via the System Call Monitor.
For each of the below specified interface routines,
the application may issue all system call monitor functions:
INIT, WAIT, CANCEL, WAIT NEXT.
The interface routines can be grouped into two major
groups:
- Process oriented interface.
- VDU split oriented interface.
Format Handler Definitions, A Dat P-3 extensions
1) Any number of consecutive Format Lines may be defined
as a line group.
2) A Format Line can only belong to one line group.
3) A Linegroup is consecutive to another Linegroup
if the Format Line number of the first line of
the Linegroup is one superior to the last Format
Line of the other Linegroup.
4) A consecutive set of Format Lines are consecutive
to a Linegroup if the last Format Line in the Linegroup
is one below the first Format line in the set.
5) Similar for Format Lines following a Linegroup.
6) A Linegroup is defined as a set of consecutive
Linegroups and/or Format Lines.
7) A Linegroup may only belong to one other Linegroup.
8) A Format Line/Linegroup may be repeated or deleted
as long as any repetition has not taken place in
higher levels of Linegroup definitions.
9) A repetition of a Linegroup copies exactly the
Format layout for the Linegroup of the moment of
the repetition request with all fields in the repeated
area empty.
3.5.2.1 I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲
Input: Maximum number of splits handled
FDCB of main catalogue
Format file name
Output: Done
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INIT ̲FORMAT (SPLITS: SPLITS ̲TYPE,
FILEDECR ̲DIR: FDCB ̲INDEX,
FILENAME: FILE ̲NAME)
(CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, FH ̲INIT ̲FORMAT: R6, R1, R7,
R4, R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲INIT ̲FORMAT, R1, R2, R4, R5,
R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILENAME
R2 SPLITS
R4 FILEDECR ̲DIR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors are fatal.
3.5.2.2 D̲e̲f̲i̲n̲e̲ ̲F̲o̲r̲m̲a̲t̲ ̲A̲r̲e̲a̲
Initialization. The first call for handling a split
defines the format area to be used for this interface.
The reserved format area remains reserved, but it is
possible to handle a different VDU split via the interface.
To handle a different VDU split, the Remove Terminal
function must be called, followed by a renewed Init.
Terminal.
Input: Maximum size of control tables ever to be handled
via this interface.
Maximum size of buffer ever to be used via
this interface.
Output: Done + interface number (IFCB index).
The interface number (IFCB index) must be supplied
for all access defined below because it eventually
defines the actual format file used and the actual
split. The DEFINE FORMAT AREA establishes a control
structure in the FORMAT HANDLER for handling one split
and should only be called once, whereas format file
and actual split identification can be changed.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DEFINE ̲FORMAT ̲AREA (AREA ̲REC: FORMAT ̲AREA
̲REC)
SPLIT ̲SIZE: INTEGER)
(INTERFACE ̲NO: IFCB ̲INDEX,
CC: COMPLETION ̲CODE)
b1) MON (SCM, SYSCALL, FH ̲DEFINE ̲FORMAT ̲AREA: R6,R1,R2,R5,R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲DEFINE ̲FORMAT ̲AREA: R1,R2,R5,R7,R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R2 Pointer AREA ̲REC
R3 SPLIT ̲SIZE
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors are fatal
3.5.2.3 I̲N̲I̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
The INIT TERMINAL defines to the format handler which
VDU split is handled via this interface.
Input: Interface # (IFCB index)
File System Name for TMS of Terminal
Control Offer ID
Data Offer ID
Output: Done
The terminal (split) used may be redefined by use of
REMOVE TERMINAL and a renewed INIT TERMINAL.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) FORMAT ̲INIT ̲TERMINAL (INTERFACE ̲NO: IFCB ̲INDEX,
FILESYSTEMNAME: FILE ̲SYSTEM
̲NAME,
CONT ̲ID: OFFER ̲ID,
DATA ̲ID: OFFER ̲ID)
(CC: COMPLETION CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, FH ̲INIT ̲TERMINAL: R6,R0,R1,R3,R4,R5,R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲INIT ̲TERMINAL: R0,R1,R3,R4,R5,R7,R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to FILESYSTEMNAME
R1 INTERFACE ̲NO
R3 CONT ̲ID
R4 DATA ̲ID
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors are fatal
3.5.2.4 R̲E̲M̲O̲V̲E̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲
Input: Interface # (IFCB index)
Output: Done
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) REMOVE ̲TERMINAL (INTERFACE ̲NO: IFCD ̲INDEX)
(CC: COMPLETION ̲COPE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, FH ̲REMOVE ̲TERMINAL: R6, R1,
R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲REMOVE ̲TERMINAL, R1, R5, R7,
R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors fatal
3.5.2.5 G̲E̲T̲ ̲F̲O̲R̲M̲A̲T̲
The format handling functions are used to get and change
formats and output them onto the VDU split.
The GET FORMAT defines a format on the already defined
format file and reads-in the control tables.
Input: Interface # (IFCB index)
Format ID.
Output: Done
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲FORMAT (INTERFACE ̲NO: IFCB ̲INDEX)
FORMAT ̲ID: FORMAT ̲ID ̲TYPE)
(CC: COMPLETION ̲CODE)
b1) MON (SCM, SYSCALL, FH ̲GET ̲FORMAT: R6,R1,R2,R5,R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲GET ̲FORMAT, R1, R2,R5,R7,R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R1 INTERFACE ̲NO
R2 Pointer to FORMAT ̲ID
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors are fatal
3.5.2.6 O̲U̲T̲P̲U̲T̲ ̲F̲O̲R̲M̲A̲T̲
The OUTPUT FORMAT transfers the format from the defined
format file to the defined VDU split.
Input: Interface # (IFCB index).
Output: Done
VDU split failed
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) OUTPUT ̲FORMAT (INTERFACE ̲NO: IFCD ̲INDEX)
(CC: COMPLETION ̲CODE): ERROR ̲OK
b1) MON (SCM, SYSCALL, FH ̲OUTPUT ̲FORMAT: R6, R1, R5,
R7)
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲OUTPUT ̲FORMAT R1, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, VDU ̲SPLIT ̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other than above fatal
3.5.2.7 I̲N̲S̲E̲R̲T̲ ̲L̲I̲N̲E̲S̲
The INSERT LINES changes a format, either before it
has been output or after.
Input: Interface # (IFCB index)
Line number
Line incarnation number
Number of lines.
Output: Done
VDU split failed
The incarnation number is the identification of the
last line not shifted down. In order to insert one
or more lines above an already defined set, incarnation
must be set to zero.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INSERT ̲LINES (INTERFACE ̲NO: IFCB ̲INDEX,
LINE ̲NUMBER: LINE ̲NUMBER ̲TYPE,
INCARNATION ̲NUMBER: INCARNATION ̲NUMBER
̲TYPE,
NUMBER
̲OF
̲LINES:
INTEGER)
(CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL
FH ̲INSERT ̲LINES: R6, R1, R2, R3, R4,
R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲INSERT ̲LINES, R1,R2,R3,R4,R5,R6,R7):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R2 LINE ̲NUMBER
R3 INCARNATION ̲NUMBER
R4 NUMBER ̲OF ̲LINES
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, INSERT ̲NOT ̲ALLOWED,
VDU ̲SPLIT ̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Others than above listed are fatal
3.5.2.8 D̲E̲L̲E̲T̲E̲ ̲L̲I̲N̲E̲S̲
The DELETE LINES changes a format, either before it
has been output or after.
Input: Interface # (IFCB index)
Line number
Line incarnation number
Number of lines.
Output: Done
VUD split failed
In order to delete all lines below a specified line,
the number of lines should be defined to zero. If
too many lines specified, the maximum will be deleted.
Note that the issuing of Insert or Delete Lines on
a format after the format has been output implies output
to the VDU.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DELETE ̲LINES (INTERFACE ̲NO: IFCB ̲INDEX,
LINE ̲NUMBER: LINE ̲NUMBER ̲TYPE,
INCARNATION ̲NUMBER: INCARNATION ̲NUMBER
̲
TYPE,
NUMBER ̲OF ̲LINES: INTEGER)
(CC: COMPLETION ̲CODE)
b1) MON (SCM, SYSCALL, FH ̲DELETE ̲LINES: R6,R1,R2,R3,R4,R5,R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲DELETE ̲LINES, R1,R2,R3,R4,R5,R7,R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R2 LINE ̲NUMBER
R3 INCARNATION ̲NUMBER
R4 NUMBER OF LINES
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, DELETE ̲NOT ̲ALLOWED,
VDU ̲SPLIT ̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All but the ones above are fatal
…86…1 …02… …02… …02… …02… …02… …02…
3.5.2.9 F̲I̲E̲L̲D̲ ̲O̲U̲T̲P̲U̲T̲
The field handling functions are performing input and
output of fields.
Fields are transferred from / to the application buffers.
The interface is based on a definition of a field buffer
and a field list buffer as shown in fig. 3.5.3.2.3-1.
For output, the fields are taken as specified in the
field list, assuming that the fields are sequenced
in the Buffer as defined in the field list. The Buffer
is the consecutive byte string defined by buffer 1,
buffer 2 and buffer 3.
For input, the field content is put into the Buffer
defined as above and the field list is constructed
reflecting the content of the Buffer.
The layout of the field list is shown in fig. 3.5.3.2.3-2
and the Buffer in fig. 3.5.3.2.3-3.
If Format has not been output when field output is
requested, the Format is output concurrently with the
fields.
If Format has been partly output concurrently with
fields the remaining part may be output by OUTPUT ̲FORMAT.
The Number of bytes is the byte length of the transfer
(i.e. the example the length of record 1 + record 2
+ record 3 + record 4 but excluding the unused part
of Buffer 2).
Fig. 3.5.3.2.3-1 Field Transfer Interface
Fig. 3.5.3.2.3-2 Field List Layout
Figure 3.5.3.2.3-3 BUFFER LAYOUT
Input: Interface # (IFCB index)
Pointer Field List
Pointer BLE list
Number of fields.
Byte length of buffer
Output: Done
VDU split failed
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) FIELDS ̲OUTPUT (INTERFACE ̲NO: IFCB ̲INDEX,
FIELD ̲LIST: FIELD ̲LIST ̲TYPE,
BLE: BUFFER ̲LIST ELEMENT,
NUMBER ̲OF ̲FIELDS: INTEGER)
(CC: COMPLETION ̲CODE): ERROR ̲OK
b1) MON (SCM, SYSCALL; FH ̲FIELDS ̲OUTPUT: R6, R0, R1,
R2, R3,
R4, R5, R7): ERROR
̲OK
b2) COMON (CSYSCALL, FH ̲FIELDS ̲OUTPUT, R0, R1, R2,
R3, R4, R5,
R7, R6): ERROR
̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 BYTE ̲LENGTH Buffer length in total
R1 INTERFACE ̲NO
R2 Pointer to BLE
R3 Pointer to FIELD ̲LIST
R4 NUMBER ̲OF ̲FIELDS
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, VDU ̲SPLIT ̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other than above mentioned are fatal.
3.5.2.10 F̲I̲E̲L̲D̲ ̲I̲N̲P̲U̲T̲
Input: Interface # (IFCB index)
Pointer empty field list
Pointer BLE list
First field
Number of fields.
Output: Field list filled, Buffer filled,
Bytes transferred filled,
Fields transferred = Number of fields)
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) FIELDS ̲INPUT ( INTERFACE ̲NO: IFCB ̲INDEX,
BLE:
BUFFER
̲LIST
̲ELEMENT,
FIRST ̲FIELD: FIELD ̲DESCRIPTOR ̲TYPE,
NUMBER ̲OF ̲FIELDS: INTEGER)
(BYTES ̲TRANSFERRED: BYTE ̲LENGTH ̲TYPE,
FIELD ̲LIST: FIELD ̲LIST ̲TYPE,
CC: COMPLETION CODE): ERROR ̲OK
b1) MON (SCM, SYSCALL, FH ̲FIELDS ̲INPUT: R6, R0, R1,
R2, R3,
R4,
R5,
R7):
ERROR
̲OK
b2) COMON (CSYSCALL, FH ̲FIELDS ̲INPUT; R0, R1, R2, R3,
R4, R5,
R7, R6): ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to FIRST
̲FIELD
R1 INTERFACE ̲NO
R2 Pointer to BLE
R3 Pointer to FIELD
̲LIST
R4 NUMBER ̲OF ̲FIELDS
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 BYTES ̲TRANSFERRED
R4 NUMBER ̲OF ̲FIELDS
R7 CC (OK,
VDU ̲SPLIT ̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All but above fatal.
The number of fields indicates the length of the field
list for both output and input.
3.5.2.11 C̲H̲A̲N̲G̲E̲ ̲F̲I̲E̲L̲D̲ ̲A̲T̲T̲R̲
The CHANGE FIELD ATTR is used to highlight a field
to the operator. Attributes can be defined with numeric
values as defined below. Combined attributes are obtained
by summing the numeric values:
Strike Through
Non Display
Half Intensity
Reverse Video
Dotted Underline
Blink
Input: Interface # (IFCB index)
Line Number
Incarnation Number
Field Number.
New attributes
Output: Done
VDU split failed
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) CHANGE ̲FIELD ̲ATTR (INTERFACE ̲NO: IFCB ̲INDEX,
FIELD: FIELD ̲DESCRIPTOR ̲TYPE,
NEW ̲ATTR: FIELD ̲ATTR ̲TYPE)
(CC: COMPLETION ̲CODE): ERROR
̲OK
b1) MON (SCM, SYSCALL, FH ̲CHANGE ̲FIELD ̲ATTR: R6, R0,
R1, R2,
R5, R7): ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲CHANGE ̲FIELD ̲ATTR, R0, R1,
R2, R5, R7
R6): ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to FIELD
R1 INTERFACE ̲NO
R2 NEW ̲ATTR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, VDU ̲SPLIT
̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All but above are fatal.
3.5.2.12 G̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲
This function is used to obtain the cursor position.
If possible, the field identification and number of
lines displayed in split above the cursor line are
returned.
Input: Interface # (IFCB index)
Output: Line number, Incarnation number, field
number, number of lines above cursor-line
Error.
If the cursor is positioned in a formatted line but
not in a field, the line and incarnation number will
be OK, but field number zero.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲CURSOR ̲POSITION (INTERFACE ̲NO: IFCB ̲INDEX)
FIELD: FIELD ̲DESCRIPTOR ̲TYPES)
LINES ̲ABOVE: INTEGER,
CC: COMPLETION ̲CODE)
b1) MON (SCM, SYSCALL, FH ̲GET ̲CURSOR ̲POSITION: R6,
R0, R1,
R2, R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲GET ̲CURSOR ̲POSITION, R0, R1,
R2, R5,
R7, R6): ERROR
̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to Field
R1 INTERFACE ̲NO
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R2 LINES ̲ABOVE
R7 CC (OK, CURSOR ̲NOT ̲IN ̲FORMATTED ̲LINE,
CURSOR ̲NOT ̲IN ̲FIELD,
VDU ̲SPLIT ̲FAILED)
3.5.2.13 S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲
INPUT: Interface # (IFCB index)
Line number
Incarnation number
Field number
Number of lines above cursor.
Output: Done
VDU split failed
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲CURSOR ̲POSITION (INTERFACE ̲NO: IFCB ̲INDEX,
FIELD: FIELD ̲DESCRIPTOR ̲TYPE,
LINES ̲ABOVE: INTEGER)
(CC: COMPLETION CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, FH ̲SET ̲CURSOR ̲POSITION: R6,
R0,R1, R2,
R5, R7): ERROR
̲OK
b2) COMON (CSYSCALL, FH ̲SET ̲CURSOR ̲POSITION, R0, R1,
R2, R5,
R7, R6): ERROR
̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to FIELD
R1 INTERFACE ̲NO
R2 LINES ̲ABOVE
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, VDU ̲SPLIT
̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other errors are fatal.
3.5.2.14 S̲E̲N̲D̲ ̲C̲O̲N̲T̲R̲O̲L̲
The control functions are used to ring the bell, clear
split and to receive function keys.
Input: Interface # (IFCB index)
Code "Bell" or "Clear Split".
Output: VDU split failed
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲CONTROL (INTERFACE ̲NO: IFCB ̲INDEX,
CMD: SEND ̲CONTROL ̲COMMAND): ERROR
̲OK
b1) MON (SCM, SYSCALL, FH ̲SEND ̲CONTROL: R6, R1, R2,
R5, R7):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R1 INTERFACE ̲NO
R2 CMD
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, VDU ̲SPLIT
̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other errors fatal
3.5.2.15 R̲E̲C̲E̲I̲V̲E̲ ̲C̲O̲N̲T̲R̲O̲L̲
Input: Interface # (IFCB index).
Output: Function key identification
Priority override
VDU split failed
The priority override is returned when a split
with higher priority has claimed function keys
by Receive-Control.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) RECEIVE ̲CONTROL (INTERFACE ̲NO: IFCB ̲INDEX)
(KEY: FUNCTION ̲KEY,
CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, FH ̲RECEIVE ̲CONTROL:
R6, R0, R1, R5,
R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲RECEIVE ̲CONTROL,
R0, R1, R5, R7,
R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 KEY
R7 CC
(OK, VDU ̲SPLIT
̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All but the above listed are fatal
The functions to control formats and fields and SEND
CONTROL are mutually exclusive (i.e. cannot be pending
simultaneously), but a pending RECEIVE CONTROL is allowed.
3.5.2.16 I̲N̲S̲E̲R̲T̲ ̲L̲I̲N̲E̲ ̲G̲R̲O̲U̲P̲
The function inserts one copy of the Linegroup after
the
specified incarnation of the Linegroup. Incarnation
zero means insertion in front of the already existing
incarnation of the Linegroup.
Insertion can only be performed if no repetition has
been performed on Linegroups containing this Linegroup.
Input: Interface#
Linegroup#
Incarnation#
Output: Done
VDU split failed
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INSERT ̲LINE ̲GROUP (INTERFACE ̲NO: IFCB ̲INDEX,
GROUP: GROUP ̲NUMBER ̲TYPE,
INCARNATION: INCARNATION ̲NUMBER
̲TYPE
(CC: COMPLETION ̲CODE): ERROR
̲OK
b1) MON (SCM, SYSCALL, FH ̲INSERT ̲LINE ̲GROUP: R6, R1,
R2, R3,
R5, R7): ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲INSERT ̲LINE ̲GROUP, R1, R2,
R3, R5,
R7, R6): ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R2 GROUP
R3 INCARNATION
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, VDU ̲SPLIT
̲FAILED)
3.5.2.17 D̲E̲L̲E̲T̲E̲ ̲L̲I̲N̲E̲ ̲G̲R̲O̲U̲P̲
This function deletes the specified incarnation of
a Linegroup.
Deletion is only allowed if no repetition has been
performed on Linegroup containing this Linegroup.
Input: Interface#
Linegroup#
Incarnation#
Output: Done
VDU split failed
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DELETE ̲LINE ̲GROUP (INTERFACE ̲NO: IFCB ̲INDEX,
GROUP: GROUP ̲NUMBER ̲TYPE,
INCARNATION: INCARNATION ̲NUMBER
̲
TYPE)
(CC: COMPLETION ̲CODE): ERROR
̲OK
b1) MON (SCM, SYSCALL, FH ̲DELETE ̲LINE ̲GROUP: R6, R1,
R2, R3,
R5, R7): ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲DELETE ̲LINE ̲GROUP, R1, R2,
R3, R5, R7,
R6): ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R2 GROUP
R3 INCARNATION
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, VDU ̲SPLIT ̲FAILED)
3.5.2.18 G̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲ ̲G̲R̲O̲U̲P̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲
This function returns the group and incarnation of
the first(lowest) group in the hierarchy of Linegroups
where insert/delete is allowed.
Input: Interface#
Output: Group number
Incarnation
or
VDU split failed
Cursor not in Linegroup
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲CURSOR ̲GROUP ̲POSITION (INTERFACE ̲NO: IFCB ̲INDEX)
(GROUP: GROUP ̲NUMBER
̲TYPE,
INCARNATION: INCARNATION
̲NUMBER ̲
TYPE,
CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, FH ̲GET ̲CURSOR ̲GROUP ̲POSITION:
R6,
R1, R2, R3, R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲GET ̲CURSOR ̲GROUP ̲POSITION,
R1, R2, R3, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R2 GROUP
R3 INCARNATION
R7 CC (OK, CURSOR ̲NOT ̲IN ̲GROUP,
VDU ̲SPLIT ̲FAILED)
3.5.2.19 E̲N̲A̲B̲L̲E̲ ̲D̲A̲T̲A̲ ̲K̲E̲Y̲S̲
This function makes the alphanumerical and screen manipulation
keys available to the terminal user provided the split
is selected.
Input Interface #
Output None
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) ENABLE ̲DATA ̲KEYS (INTERFACE ̲NO: IFCB ̲INDEX)
(CC: COMPLETION)
b1) MON (SCM, SYSCALL, FH ̲ENABLE ̲DATA ̲KEYS: R6, R1,
R5, R7): ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲ENABLE ̲DATA ̲KEYS: R1, R5, R7,
R6): ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, VDU ̲SPLIT ̲FAILED)
3.5.2.20 H̲i̲g̲h̲ ̲P̲r̲i̲o̲r̲i̲t̲y̲ ̲F̲i̲e̲l̲d̲s̲ ̲O̲u̲t̲p̲u̲t̲
The same functions as for Fields Output is performed.
In additional the keyboard is locked and the inhibit
cursor is restored before execution of the functions.
Input: Interface # (IFCB index)
Pointer Field List
Pointer BLE list
Number of fields.
Byte length of buffer
Output: Done
VDU split failed
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) HIGH ̲PRI ̲FIELDS ̲OUTPUT (INTERFACE ̲NO: IFCB ̲INDEX,
FIELD ̲LIST: FIELD ̲LIST ̲TYPE,
BLE: BUFFER ̲LIST ELEMENT,
NUMBER ̲OF ̲FIELDS: INTEGER,
BYTE ̲LENGTH: BYTE ̲LENGTH
̲
TYPE)
(CC: COMPLETION ̲CODE):ERROR
̲OK
b1) MON (SCM, SYSCALL, FH ̲HIGH ̲PRI ̲FIELDS ̲OUTPUT:
R6, R0, R1, R2, R3,
R4,
R5, R7): ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲HIGH ̲PRI ̲FIELDS ̲OUTPUT,
R0, R1, R2, R3, R4,
R5, R7, R6): ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 BYTE ̲LENGTH Buffer length in total
R1 INTERFACE ̲NO
R2 Pointer to BLE
R3 Pointer to FIELD ̲LIST
R4 NUMBER ̲OF ̲FIELDS
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, VDU ̲SPLIT ̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other than the abovementioned are fatal.
3.5.2.21 B̲U̲I̲L̲D̲ ̲A̲D̲A̲P̲T̲ ̲P̲3̲ ̲T̲A̲B̲L̲E̲
This function returns a table describing the layout
of an ADAT-P3 format. This function can be called after
GET ̲FORMAT and can be called again if an update of
the table is required.
Input: Interface #
Number of groups.
Output: TABLE: ADAT ̲P3 ̲TABLE
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) BUILD ̲ADAT ̲P3 ̲TABLE (INTERFACE ̲NO:IFCB ̲INDEX)
(TABLE:ADAT ̲P3 ̲TABLE,
NO ̲GROUPS:INTEGER,
CC:COMPLETION ̲CODE): ERROR
̲OK
b1) MON(SCM,SYSCALL; FH ̲BUILD ̲ADAT ̲P3 ̲TABLE, R6, R1,
R2, R3, R7):
ERROR ̲OK
b2) COMON(CSYSCALL, FH ̲BUILD ̲ADAT ̲P3 ̲TABLE, R1,R2,R3,R7,R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R2 pointer to TABLE: ADAT ̲P3 ̲TABLE
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R3 NO ̲GROUPS: INTEGER
R7 CC (OK,NOT ̲ADAT ̲P3)
N̲O̲T̲E̲:̲ ̲A̲D̲A̲T̲ ̲P̲3̲ ̲F̲O̲R̲M̲A̲T̲
A format is considered to be ADAT ̲P3 format if the
first element of each group is a non-repeatable format
line. All groups are repeatable.
3.5.2.2.2 L̲i̲n̲e̲ ̲S̲i̲z̲e̲
The Line Size is used to calculate the VDU memory consumption
for a line.
Input: Interface #
Line #
Output: Done
VDU memory consumption
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) LINE ̲SIZE (INTERFACE NO: IFCB ̲INDEX
LINE ̲NUMBER : INTEGER
CC : COMPLETION CODE)
b1) MON(SCM,SYSCALL; FH ̲LINE ̲SIZE; R6, R0, R1, R2,
R5, R7): ERROR ̲OK
b2) COMON(CSYSCALL, FH ̲LINE ̲SIZE, R0, R1, R2, R5,
R7, R6): ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Interface No.
R2 Line No.
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 VDU Memory Consumption
R7 Completion Code (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other than the abovementioned are fatal.
3.5.2.23 G̲r̲o̲u̲p̲ ̲S̲i̲z̲e̲
The Group Size is used to calculate the VDU Memory
consumption for a group.
Input: Inteface #
Line Group #
Output: Done
VDU memory consumption
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GROUP ̲SIZE (INTERFACE NO : IFCB ̲INDEX
LINEGROUP ̲NUMBER : INTEGER
CC : COMPLETION CODE)
b1) MON (SCM,SYSCALL, FH ̲GROUP ̲SIZE, R6, R0, R1, R2,
R5, R7): ERROR ̲OK
b2) COMON (CSYSCALL, FH ̲GROUP ̲SIZE, R0, R1, R2, F5,
F7, R6): ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Interface No.
R2 Line Group No.
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 VDU Memory Consumption
R7 Completion Code (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other than the abovementioned are fatal.
3.5.2.24 R̲e̲m̲a̲i̲n̲i̲n̲g̲ ̲M̲e̲m̲o̲r̲y̲
The Remaining Memory is used to calculate the free
VDU memory.
Input: Interface #
Output: Done
Free memory
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) REMAINING ̲MEMORY (INTERFACE NO : IFCB ̲INDEX
CC : COMPLETION
CODE)
b1) MON(SCM,SYSCALL; FH ̲REMAINING MEMORY, R6, R0, R1,
R2, R5, R7): ERROR ̲OK
b2) COMON(CSYSCALL,FH ̲REMAINING MEMORY, R0, R1, R2,
R5, R7, R6,): ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Interface No.
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Free Memory
R7 Completion Code (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other than the abovementioned are total.
4 SKEMAER
3.5.3 P̲r̲i̲n̲t̲e̲r̲ ̲F̲o̲r̲m̲a̲t̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
The Printer FORMAL HANDLER is a set of monitor procedures
called via the System Call Monitor.
For each of the below specified interface routines,
the application may issue all system call monitor functions:
INIT, WAIT, CANCEL, WAIT NEXT.
The interface routines can be grouped into two major
groups:
- Process oriented interface.
- Printer split oriented interface.
Printer Format Handler Definitions, Adat. - P3 extensions
1) Any number of consecutive Format Lines may be defined
as a line group.
2) A Format Line can only belong to one line group.
3) A Line Group is consecutive to another Line Group
if the Format Line number of the first line of
the Line Group is one superior to the last Format
Line of the other Line Group.
4) A consecutive set of Format Lines are consecutive
to a Line Group if the last Formal Line in the
Line Group is one below the first Format Line in
the set.
5) Similar for Formal Lines following a Line Group.
6) A Line Group is defined as a set of consecutive
Line Groups and/or Format Lines.
7) A Line Group may only belong to one other Line
Group.
8) A Format Line/Line Group may be repeated or deleted
as long as any repetition has not taken place in
higher levels of Line Group definitions.
9) A repetition of a Line Group copies exactly the
format layout for the Line Group of the moment
of the repetition request with all fields in the
repeated area empty.
3.5.3.1 I̲n̲i̲t̲ ̲F̲o̲r̲m̲a̲t̲
Input: Maximum number of splits handled
FDCB of main catalogue
Format file name
Output: Done
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INIT ̲FORMAT (SPLITS: SPLITS ̲TYPE,
FILEDECR ̲DIR: FDCB ̲INDEX,
FILENAME: FILE ̲NAME)
(CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON(SCM, SYSCALL, PH ̲INIT ̲FORMAT : R6, R1,
R7, R4, R5, R2): ERROR ̲OK)
b2) COMON (CSYSCALL, PH ̲INIT ̲FORMAT, R1, R2,
R4, R5, R7, R6) : ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 Pointer to FILENAME
R2 SPLITS
R4 FILEDECR ̲DIR
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors are fatal.
3.5.3.2 D̲E̲F̲I̲N̲E̲ ̲F̲O̲R̲M̲A̲T̲ ̲A̲R̲E̲A̲
Initialisation. The first call for handling a split
(printer) defines the format area to be used for this
interface. The reserved format area remains reserved,
but it is possible to handle a different split via
the interface. To handle a different split, the Remove
Printer function must be called, followed by a renewed
Init Printer.
Input: Maximum size of control tables ever to be handles
via this interface.
Output: Done + interface number (IFCB index).
The interface number (IFCB index) must be supplied
for all access defined below because it eventually
defines the actual format file used and the actual
split. The DEFINE FORMAT AREA establishes a control
structure in the PRINTER FORMAT HANDLER for handling
one split and should only be called once, whereas format
file and the actual split identification can be changed.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DEFINE ̲FORMAT ̲AREA (AREA ̲REC: FORMAT ̲AREA
̲REC)
(INTERFACE ̲NO: IFCB ̲INDEX,
CC: COMPLETION ̲CODE)
b1) MON (SCM,SYSCALL,PH ̲DEFINE ̲FORMAT ̲AREA:
R6, R1, R2,R3,R5,R7) :
ERROR ̲OK
b2) COMON (CSYSCALL, PH ̲DEFINE ̲FORMAT ̲AREA: R1,R2,
R3,R5,R7,R6)
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R2 Pointer AREA ̲REC
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors are fatal.
3.5.3.3 I̲N̲I̲T̲ ̲P̲r̲i̲n̲t̲e̲r̲
The INIT PRINTER defines to the format handler which
printer split is handled via this interface.
Input: File System Name for TMS of Printer
Interface # (IFCB index)
Lines per page
Lines between pages
Data Offer ID
Output: Done
The Printer (split) used may be redefined by use of
REMOVE Printer and a renewed INIT Printer.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INIT ̲PRINTER (FILESYSTEMNAME: FILE ̲SYSTEM ̲NAME,
INTERFACE ̲NO: IFCB ̲INDEX,
LINES PER PAGE : INTEGER,
LINES BETWEEN PAGES : INTEGER,
DATA ̲ID: OFFER ̲ID)
(CC: COMPLETION CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, PH ̲INIT ̲PRINTER: R6,R0,R1,
R3,R4,R5,R7):
ERROR ̲OK
b2) COMON (CSYSCALL, PH ̲INIT ̲PRINTER: R0,R1,R3,
R4,R5,R7,R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 Pointer to FILESYSTEMNAME
R1 INTERFACE ̲NO
R2 LINES PER PAGES
R3 LINES BETWEEN PAGES
R4 DATA ̲ID
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors are fatal.
3.5.3.4 R̲E̲M̲O̲V̲E̲ ̲P̲r̲i̲n̲t̲e̲r̲
Input: Interface # (IFCB index)
Output: Done
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) REMOVE ̲PRINTER (INTERFACE ̲NO: IFCD ̲INDEX)
(CC: COMPLETION ̲CODE):
ERROR ̲OK
b1) MON (SCM, SYSCALL, PH ̲REMOVE ̲PRINTER: R6,R1,R5,R7):
ERROR ̲OK
b2) COMON (CSYSCALL, PH ̲REMOVE ̲PRINTER, R1,R5,R7,R6,):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors fatal.
3.5.3.5 G̲E̲T̲ ̲F̲O̲R̲M̲A̲T̲
The format handling functions are used to get and change
formats and output them onto the Printer (split).
The GET FORMAT defines a format on the already defined
format file and reads-in the control tables.
Input: Page Head
Interface # (IFCB index)
Format ID.
Page Trail
Output: Done
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲FORMAT (PAGE HEAD: PAGE ̲DATA. HEADER
INTERFACE ̲NO: IFCB ̲INDEX
FORMAT ̲ID: FORMAT ̲ID ̲TYPE
PAGE TRAIL: PAGE ̲DATA.TRAILER)
(CC: COMPLETION ̲CODE)
b1) MON (SCM, SYSCALL, PH ̲GET ̲FORMAT: R6,R0,
R1,R3,R5,R7):
ERROR ̲OK
b2) COMON (CSYSCALL, PH ̲GET ̲FORMAT, R0,R1,
R3,R5,R7,R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R0 Pointer to Page Head
R1 INTERFACE ̲NO
R2 Pointer to FORMAT ̲ID
R3 Pointer to Page Trail
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
All errors are fatal.
3.5.3.6 F̲I̲E̲L̲D̲ ̲O̲U̲T̲P̲U̲T̲
Fields are transferred from the applicaton buffers.
The interface is based on a definition of a field buffer
and a field list buffer as shown in fig. 3.5.2.9-1.
The fields are taken as specified in the field list,
assuming that the fields are sequenced in the Buffer
as defined in the field list merged into the format
specified by GET ̲FORMAT and transferred to the printer
(split). The Buffer is the consecutive byte string
defined by buffer 1, buffer 2 and buffer 3.
The layout of the field list is shown in fig. 3.5.2.9-3
and the Buffer in fig. 3.5.2.9-2.
The Number of bytes is the byte length of the transfer
(i.e. the example the length of record 1 + record 2
+ record 3 + record 4 but excluding the unused part
of Buffer 2).
The transforming of fields including the format is
terminated by Output ̲Format.
Input: Interface # (IFCB index)
Pointer Field List
Pointer BLE list
Number of fields.
Byte length of buffer
Output: Done
Printer failed
Paper out
Cancelled
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) FIELDS ̲OUTPUT (INTERFACE ̲NO: IFCB ̲INDEX,
FIELD ̲LIST: FIELD ̲LIST ̲TYPE,
BLE: BUFFER ̲LIST ELEMENT,
NUMBER ̲OF ̲FIELDS: INTEGER,
BYTE ̲LENGTH: BYTE ̲LENGTH ̲TYPE)
(CC: COMPLETION ̲CODE): ERROR ̲OK
b1) MON (SCM, SYSCALL, PH ̲FIELDS ̲OUTPUT: R6, R0, R1,
R2,
R3, R4, R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL, PH ̲FIELDS ̲OUTPUT, R0, R1, R2,
R3,
R4, R5, R7, R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R0 BYTE ̲LENGTH Buffer length in total
R1 INFACE ̲NO
R2 Pointer to BLE
R3 Pointer to FIELD ̲LIST
R4 NUMBER ̲OF ̲FIELDS
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, PAPER ̲OUT, CANCELLED, PRINTER
̲FAILED)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other than the abovementioned are fatal.
3.5.3.7 O̲U̲T̲P̲U̲T̲ ̲F̲O̲R̲M̲A̲T̲
The OUTPUT ̲FORMAT terminates the transfer of fields
including the format to the printer (split).
Input: Interface # (IFCB index)
Output: Done
Printer failed
Paper Out
Cancelled
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) OUTPUT ̲FORMAT (INTERFACE ̲NO: IFCD ̲INDEX)
(CC: COMPLETION ̲CODE): ERROR ̲OK
b1) MON (SCM, SYSCALL, PH ̲OUTPUT ̲FORMAT: R6,R1,R5,R7)
ERROR ̲OK
b2) COMON (CSYSCALL, PH ̲OUTPUT ̲FORMAT, R1, R5, R7,
R6):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK, PRINTER ̲FAILED)
PAPER ̲OUT, CANCELLED
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other than above fatal.
3.5.3.8 I̲N̲S̲E̲R̲T̲ ̲L̲I̲N̲E̲S̲
The INSERT LINES changes a format before it has been
output.
The incarnation count for the line is just incremented.
Input: Interface # (IFCB index)
Line number
Number of lines.
Output: Done
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INSERT ̲LINES (INTERFACE ̲NO: IFCB ̲INDEX,
LINE ̲NUMBER: LINE ̲NUMBER ̲TYPE,
INCARNATION ̲NUMBER: INCARNATION
̲NUMBER ̲TYPE,
NUMBER OF LINES: INTEGER)
CC: COMPLETION ̲CODE) :
ERROR ̲OK
b1) MON (SCM, SYSCALL
PH ̲INSERT ̲LINES: R6, R1, R2, R4, R5, R7):
ERROR ̲OK
b2) COMON (CSYSCALL PH ̲INSERT ̲LINES, R1,R2,R4,R5,R6,R7):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R2 LINE ̲NUMBER
R4 NUMBER ̲OF ̲LINES
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Others than above listed are fatal.
3.5.3.9 S̲E̲N̲D̲ ̲C̲O̲N̲T̲R̲O̲L̲
The control function is used to ring the bell.
Input: Interface # (IFCB index)
Code "Bell"
Output: Done
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEND ̲CONTROL (INTERFACE ̲NO: IFCB ̲INDEX,
CMD: SEND ̲CONTROL ̲COMMAND):
ERROR ̲OK
b1) MON (SCM, SYSCALL, PH ̲SEND ̲CONTROL: R6,R1,R3,R5,R7):
ERROR ̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲
R1 INTERFACE ̲NO
R2 CMD
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
Other errors fatal.
3.5.3.10 I̲N̲S̲E̲R̲T̲ ̲L̲I̲N̲E̲ ̲G̲R̲O̲U̲P
The function inserts the specified number of Line Groups
after the specified Line Group. The incarnation count
for the Line Group is just incremented.
Input: Interface #
Line Group #
No. of Line Groups
Output: Done
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) INSERT ̲LINE ̲GROUP (INTERFACE ̲NO: IFCB-INDEX,
GROUP: GROUP ̲NUMBER ̲TYPE,
NO. OF LINE ̲GROUPS : INTEGER)
(CC: COMPLETION ̲CODE): ERROR
̲OK
b1) MON (SCM, SYSCALL, PH ̲INSERT ̲LINE ̲GROUP: R6,R1,R2,
R4,R5,R7):
ERROR
̲OK
b2) COMON (CSYSCALL, PH ̲INSERT ̲LINE ̲GROUP, R1,R2,R4,
R5,R7,R6):
ERROR
̲OK
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R1 INTERFACE ̲NO
R2 GROUP
R4 NO. OF LINE GROUPS
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC (OK)
6 SCHEMA
4̲ ̲ ̲S̲P̲E̲C̲I̲A̲L̲ ̲S̲Y̲S̲T̲E̲M̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲ ̲I̲N̲T̲E̲R̲F̲A̲C̲E̲
4.1 T̲M̲P̲ ̲I̲N̲T̲E̲R̲F̲A̲C̲E̲S̲
This section describes all TMP package interfaces.
Register conventions for these interfaces are specified
in figures 4.1-1 to 3.
4.1.1 T̲M̲P̲ ̲R̲e̲q̲u̲e̲s̲t̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
TMP request supports search and update facilities of
TMP records refer DBD 4. CPS ̲PREFIX.D*TMP ̲GENERAL.
This interface is supported by System Call Monitor
and must thus follow System Call Monitor general interface.
The caller's access rights to actual table is checked.
If this check is not OK, the caller is retired with
fatal error PRIVILEGE ̲ERROR.
When using REQUEST function following sequence must
be performed.
A parameter RECORD of type TMP ̲PARAM must be updated
with subfunction code and input parameters as specified
by actual subfunction in sec. 4.1.1.1 or 4.1.1.2.
When TMP ̲PARAM is updated a POINTER to it is put in
the register specified in the register conventions,
see fig. 4.1-1.
Finally one of the b calls in Call Specification is
performed, and response must be awaited as specified
in the interface specification of Coroutine Monitor
or System Call Monitor.
The only output returned in registers is the completion
code, all other outputs are returned by means of the
TMP ̲PARAM RECORD as specified in sec. 4.1.1.1 and 4.1.1.2.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
a) N/A
b1) MON(SCM,SYSCALL,TMP ̲REQUEST: R6, R4, R7): ERROR
̲OK ,
b2) COMON(CSYSCALL, TMP ̲REQUEST, R4, R7, R6): ERROR
̲OK
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R4 pointer to TMP ̲PARAM (K)
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R7 CC
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
ILLEGAL ̲FUNCTION
Other errors as defined by actual subfunction.
R̲e̲q̲u̲e̲s̲t̲ ̲D̲a̲t̲a̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This data specification describes the data associated
to TMP ̲REQUEST interface, which can not be generally
defined in SWELL, and thus are not included in CPS/DBD.
a) F̲i̲e̲l̲d̲s̲
All RECORDS known by TMP consist of two field types,
SIMPLE ̲FIELD or REPEATED ̲FIELD
TYPE
SIMPLE ̲FIELD: ARRAY(1..FIELD ̲LENGTH) of INTEGER
REPEATED ̲FIELD =
RECORD
FIELD ̲COUNT : INTEGER;
SUBFIELDS : ARRAY (1..FIELD ̲COUNT)
of SIMPLE ̲FIELD
END;
REPEATED ̲FIELD.FIELD ̲COUNT for an actual RECORD
FIELD will have a maximum value defined at system
generation. This maximum can be found in CPS/DBD
in the definition of actual RECORD format.
By specifying REPEATED ̲FIELDs TMP will use the
current value of REPEATED ̲FIELD.FIELD ̲COUNT which
specifies number of SIMPLE ̲FIELDS in use. In this
way input and output RECORDS containing
REPEATED ̲FIELDS become dynamically length RECORDS.
At output the SIMPLE FIELDS in REPEATED ̲FIELDS.SUBFIELDS
are always sorted in accordance with their INTEGER
value.
REPEATED ̲FIELDS used as input does not need to
have their SIMPLE ̲FIELDs put into sorted order.
b) P̲r̲i̲m̲a̲r̲y̲ ̲K̲e̲y̲
PRIMARY ̲KEY is always unique to a whole table and
must not be contained in a REPEATED ̲FIELD.
If PRIMARY ̲KEY is the key to a not inverted table
it is always placed in first field of a TMP ̲RECORD.
If PRIMARY ̲KEY is the key to an inverted table
it is always placed in second field of a TMP ̲RECORD.
TYPE
PRIMARY ̲KEY = SIMPLE ̲FIELD;
c) S̲e̲c̲o̲n̲d̲a̲r̲y̲ ̲K̲e̲y̲
SECONDARY ̲KEY is a field in a TMP ̲RECORD.
This field does not need to be unique to a table
and it may be contained in a REPEATED ̲FIELD.
TYPE
SECONDARY ̲KEY = SIMPLE ̲FIELD;
d) B̲i̲t̲m̲a̲s̲k̲
BIT MASK is an INTEGER where each bit represents
a FIELD in a record specifying whether any action
should be performed on the field or not. First
Field corresponds to least significant bit
TYPE
BITMASK = INTEGER;
In the following a detailed specification of the subfunctions
is given.
4.1.1.1 T̲M̲P̲ ̲S̲e̲a̲r̲c̲h̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
All TMP Search Interfaces are requested by the applications
via the TMP MON procedure entry
TMP ̲REQUEST and must thus follow the general interface
for this function cf. 4.1.1
A caller accessing a table using Search functions must
have Search Access Rights to this table.
a) T̲M̲P̲ ̲R̲e̲c̲o̲r̲d̲
TMP record is the contents of a table.
Each table entry is a TMP Record.
First field in a TMP Record always contains PRIMARY
KEY of the table.
If the table is inverted, the PRIMARY ̲KEY of inverted
table shall be placed in FIELD ̲2.
TYPE
TMP ̲RECORD =
RECORD
KEY : PRIMARY ̲KEY ;
FIELD ̲2 ;
FIELD ̲3 ,
FIELD ̲4 ,
FIELD ̲5 ,
FIELD ̲6 ,
FIELD ̲7 ,
FIELD ̲8 ,
FIELD ̲9 ,
FIELD ̲10 ,
FIELD ̲11 ,
FIELD ̲12 ,
FIELD ̲13 ,
FIELD ̲14 ,
FIELD ̲15 ,
FIELD ̲16 : SIMPLE ̲FIELD/REPEATED ̲FIELD;
END;
FIELD ̲2 to FIELD ̲16 are optional, only the FIELDs
having any significance in actual RECORD should
be defined.
b) The following specification describes the general
use of TMP ̲PARAM RECORD for search purposes while
the detailed specification is given in fig. 4.1.1.1-1
and the interface specification of actual function.
TABLE ̲ID : Will always specify the ID of the table
in which to be searched.
FUNCTION : Specifies actual subfunction.
MASK 1 : Specifies which fields in a record in
which to be searched when searching for
a
SECONDARY ̲KEY.
ENTRY : Specifies a POINTER to a single
PRIMARY ̲KEY.
BUFFER 1 : Specifies a POINTER to a KEY ̲LIST.
KEY ̲LIST is an ARRAY of SINGLE ̲KEYs.
Each SINGLE ̲KEY is defined as
SINGLE ̲KEY =
RECORD
INFO : INTEGER;
" Always zero at input
" At output it tells how
" many times associated
KEY
" was found or how many
" records ar generated
as
" output for associated
key.
KEY : KEY;
END;
LINK : POINTER;
" Always NIL at input.
" At output it is updated
" so it specifies the
output
" generated by associated
KEY.
" If associated KEY generates
" no output the NIL is
kept.
…06…1 …02… …02… …02… …02… …02… …02…
…02… …02…
COUNT : For all interfaces except "Search
Next
Primary", COUNT specifies the number
of
SINGLE ̲KEY in KEY ̲LIST
BUFFER 2 : Specifies a POINTER to the data area
where output shall be delivered.
BUFFER 2 ̲LENGTH: Specifies the length of BUFFER in
WORDS.
MASK 2 : Specifies which record fields are
wanted as output. If MASK ̲2 is 0 no
output is delivered.
If MASK ̲2 is FFFF the maximum output
is delivered.
It should be noted that fields not defined in fig.
4.1.1.1-1 are not used and thus do not need to follow
the here specified conventions.
4.1.1.1.1 S̲e̲a̲r̲c̲h̲ ̲P̲r̲i̲m̲a̲r̲y̲ ̲K̲e̲y̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
For each SINGLE ̲KEY, the record specified by primary
key is found, and requested record fields are delivered.
At output SINGLE ̲KEY.INFO specifies how many output
records, associated PRIMARY ̲KEY has generated.
SINGLE ̲KEY.LINK points to first output record, generated
by associated PRIMARY ̲KEY. SINGLE ̲PARAM.LINK and
SINGLE ̲KEY.INFO will be unchanged at output if associated
PRIMARY ̲KEY is not existing.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEARCH ̲PRIMARY ̲KEY
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
KEYS: KEY ̲LIST,
COUNT: INTEGER,
BUFFER ̲LENGTH: INTEGER,
READ ̲MASK: BITMASK)
(BUFFER: ARRAY (1..BUFFER ̲LENGTH)
OF INTEGER,
CC: OK,
BUFFER ̲FULL): ERROR ̲OK
b) N.A.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
KEY ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
TABLE ̲ID ̲ERROR
PARAMETER ̲DISCREPANCY
4.1.1.1.2 S̲e̲a̲r̲c̲h̲ ̲N̲e̲x̲t̲ ̲P̲r̲i̲m̲a̲r̲y̲ ̲K̲e̲y̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
A number of records next to one record specified by
primary key are found, and requested record fields
are delivered.
If TMP ̲PARAM.ENTRY is NIL, the RECORDS which are delivered
are the first in specified table. COUNT specifies how
many RECORDS should be delivered.
At output COUNT is updated to actual number of RECORDS
delivered.
This function does not support search in two level
tables e.g. NORMAL ̲SIC ̲TABLE, CRISIS ̲SIC ̲TABLE and
EXERCISE ̲SIC ̲TABLE
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEARCH ̲NEXT ̲PRIMARY ̲KEY
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
KEY: PRIMARY ̲KEY,
COUNT: INTEGER,
BUFFER ̲LENGTH: INTEGER,
READ ̲MASK: BITMASK)
(BUFFER: ARRAY (1..BUFFER ̲LENGTH)
OF INTEGER,
CC: OK
END ̲OF ̲TABLE): ERROR ̲OK
b) N.A.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
BUFFER ̲TOO ̲SHORT
UNDEFINED ̲KEY
TABLE ̲ID ̲ERROR
4.1.1.1.3 S̲e̲a̲r̲c̲h̲ ̲I̲n̲ ̲R̲e̲c̲o̲r̲d̲
For each SINGLE ̲KEY, it is checked if KEY is contained
in the RECORD specified by PRIMARY ̲KEY.
SEARCH ̲MASK specifies which RECORD FIELDs shall be
compared to the SINGLE ̲KEY.KEY FIELDs.
At output SINGLE ̲KEY.INFO is set to TRUE if associated
KEY exists in specified record.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SEARCH ̲IN ̲RECORD
(TABLE ̲ID : TABLE ̲ID ̲TYPE
SEARCH ̲MASK : BIT ̲MASK ,
KEY : PRIMARY ̲KEY ,
KEYS : KEY ̲LIST ,
COUNT : INTEGER ,
(KEYS : KEY ̲LIST
CC : OK ): ERROR ̲OK;
b) NA
F̲a̲t̲a̲l̲ ̲e̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
UNDEFINED ̲KEY
TABLE ̲ID ̲ERROR
4.1.1.1.4 S̲e̲a̲r̲c̲h̲ ̲O̲n̲e̲ ̲S̲e̲c̲o̲n̲d̲a̲r̲y̲ ̲K̲e̲y̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
For each SINGLE ̲KEY first record in table having specified
secondary key is found, and requested record fields
are delivered.
The record fields to be compared with secondary keys
are specified by Search Mask.
If SINGLE ̲KEY.KEY is found associated, SINGLE ̲KEY.INFO
is set to one and associated SINGLE ̲PARAM.LINK specifies
where the output has been delivered. If SINGLE ̲KEY.KEY
is not found associated INFO and LINK fields are unchanged.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a)
SEARCH ̲ONE ̲SECONDARY ̲KEY
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
SEARCH ̲MASK: BITMASK,
KEYS: KEY ̲LIST,
COUNT: INTEGER,
BUFFER ̲LENGTH: INTEGER,
READ ̲MASK: BITMASK)
(BUFFER: ARRAY (1..BUFFER ̲LENGTH)
OF INTEGER,
CC. OK): ERROR ̲OK
b) N.A.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲
PARAM ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
BUFFER ̲TOO ̲SHORT
TABLE ̲ID ̲ERROR
4.1.1.1.5 S̲e̲a̲r̲c̲h̲ ̲A̲l̲l̲ ̲S̲e̲c̲o̲n̲d̲a̲r̲y̲ ̲K̲e̲y̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
For each SINGLE ̲KEY all records in table having specified
SECONDARY ̲KEY are found, and requested record fields
are delivered.
The record fields to be compared with SECONDARY ̲KEYS
are specified by Search Mask. If more than one of the
specified fields in one RECORD contain the same
SECONDARY ̲KEY the RECORD is delivered only once.
If KEY specifies a PRIMARY ̲KEY the search for first
SINGLE ̲KEY.KEY will start in the RECORD next to the
one having specified PRIMARY ̲KEY.
If BUFFER is full before the search has been completed
the generated output is returned together with an informative
CC.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a)
SEARCH ̲ALL ̲SECONDARY ̲KEY
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
SEARCH ̲MASK: BITMASK,
KEY: PRIMARY ̲KEY,
KEYS: KEY ̲LIST,
COUNT: INTEGER,
BUFFER ̲LENGTH: INTEGER,
READ ̲MASK: BITMASK)
(BUFFER: ARRAY (1..BUFFER ̲LENGTH)
OF INTEGER,
CC: OK,
BUFFER ̲FULL): ERROR
̲OK
b) N.A.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
UNDEFINED ̲KEY
TABLE ̲ID ̲ERROR
Fig. 4.1.1.1-1
4.1.1.2 T̲M̲P̲ ̲U̲p̲d̲a̲t̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
All TMP Update Interfaces are requested by the applications
via the TMP MON procedure entry
TMP ̲REQUEST and must thus follow the general interface
for this function cf 4.1.1.
A caller accessing a table using Update functions must
have Update Access Rights to this table.
The following specification describes the general use
of TMP ̲PARAM RECORD for update purposes while the detailed
specification is given in fig. 4.1.1.2-1 and 2 and
the interface specification of the actual function.
TABLE ̲ID : Specifies always the ID of the table
to
be updated
FUNCTION : Specifies actual subfunction
MASK 1 : Specifies the RECORD fields which may
be affected by actual update
ENTRY : Specifies a POINTER to one key or a whole
table RECORD
BUFFER 1,
BUFFER 2 : Specifies a POINTER to one field value
or a POINTER to a sequential list of
field values.
The fields not described here are not used by update
functions.
It should be noted that fields not defined in figures
4.1.1.2-1 and 2 are not used and do thus not need to
follow the here specified conventions.
4.1.1.2.1 R̲e̲m̲o̲v̲e̲ ̲R̲e̲c̲o̲r̲d̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
One record specified by primary key is removed from
table.
The table must not be direct organized.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a)
REMOVE ̲RECORD
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
KEY: PRIMARY KEY)
(CC: OK): ERROR ̲OK
b) NA
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
PARAM ̲ADDRESS ̲ERROR
TABLE ̲ID ̲ERROR
UNDEFINED ̲KEY
4.1.1.2.2 I̲n̲s̲e̲r̲t̲ ̲R̲e̲c̲o̲r̲d̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
One record is inserted in the table in accordance with
PRIMARY ̲KEY.
The table must not be direct organized.
The PRIMARY ̲KEY must not be already existing.
The update will be rejected if the table is full, or
it may be rejected if the overflow area of the table
is full.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a)
INSERT ̲RECORD
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
ENTRY: TMP ̲RECORD)
(CC: OK
OVERFLOW ̲FULL
TABLE ̲FULL): ERROR ̲OK
b) N.A.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
DUPLICATED ̲KEY
4.1.1.2.3 S̲i̲n̲g̲l̲e̲ ̲C̲h̲a̲n̲g̲e̲ ̲F̲i̲e̲l̲d̲ ̲P̲o̲s̲i̲t̲i̲o̲n̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
In one record specified by primary key, the fields
specified by Write Mask are changed to new values.
The new field values must be listed sequentially in
same order as used in record.
A REPEATED ̲FIELD must be specified in same format as
used at output which is
REPEATED ̲FIELD =
RECORD
COUNT : 1..MAX ̲NO ̲OF ̲SIMPLE ̲FIELDS;
FIELDS : ARRAY(1..COUNT) OF SIMPLE ̲FIELDS,
END;
If COUNT is greater than MAX ̲NO ̲OF ̲SIMPLE ̲FIELDS for
actual REPEATED ̲FIELD it is a fatal error.
TMP will sort the SIMPLE ̲FIELDS in accordance with
their INTEGER value by performing the update. This
sort will not affect the input specified by caller.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a)
SINGLE ̲CHANGE ̲FIELD ̲POSITION
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
WRITE ̲MASK: BITMASK,
KEY: PRIMARY ̲KEY,
FIELDS: POINTER)
(CC: OK) ERROR ̲OK
b) N.A.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲
PARAM ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
UNDEFINED ̲KEY
4.1.1.2.4 G̲l̲o̲b̲a̲l̲ ̲C̲h̲a̲n̲g̲e̲ ̲F̲i̲e̲l̲d̲ ̲P̲o̲s̲i̲t̲i̲o̲n̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
In a whole table, the fields specified by Write Mask
are changed to new values.
This means that specified fields will become identical
in the whole table.
The new field values must be specified in same way
as for Single Change Field Position cf 4.1.1.2.3.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a)
GLOBAL ̲CHANGE ̲FIELD ̲POSITION
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
WRITE ̲MASK: BITMASK,
FIELDS: POINTER)
(CC: OK): ERROR ̲OK
b) N.A.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
TABLE ̲ID ̲ERROR
4.1.1.2.5 S̲i̲n̲g̲l̲e̲ ̲C̲h̲a̲n̲g̲e̲ ̲F̲i̲e̲l̲d̲ ̲V̲a̲l̲u̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
In the record specified by KEY, all FIELDs specified
by SEARCH ̲MASK are compared with the SECONDARY ̲KEY
specified as OLD ̲FIELD.
If FIELD value and OLD ̲FIELD are identical, the FIELD
value is changed to the value specified as NEW ̲FIELD.
If the changed FIELD is part of a REPEATED ̲FIELD, the
REPEATED ̲FIELD is reorganized.
By changing FIELDs contained in REPEATED ̲FIELDs
NEW ̲FIELD or OLD ̲FIELD may be referenced by a NIL POINTER.
This means respectively that OLD ̲FIELD shall be removed
or that NEW ̲FIELD shall be inserted.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a)
SINGLE ̲CHANGE ̲FIELD ̲VALUE
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
SEARCH ̲MASK: BITMASK,
KEY: PRIMARY ̲KEY,
OLD ̲FIELD: POINTER,
NEW ̲FIELD: POINTER)
(CC: OK,
RECORD ̲FULL): ERROR ̲OK
b) N.A.
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
TABLE ̲ID ̲ERROR
4.1.1.2.6 G̲l̲o̲b̲a̲l̲ ̲C̲h̲a̲n̲g̲e̲ ̲F̲i̲e̲l̲d̲ ̲V̲a̲l̲u̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
In all RECORDS in a whole table, all FIELDs specified
by SEARCH ̲MASK are compared with the SECONDARY ̲KEY
specified as OLD ̲FIELD.
If FIELD value and OLD ̲FIELD are identical, FIELD value
is changed to the value specified as NEW ̲FIELD.
If the changed FIELD is part of a REPEATED ̲FIELD, the
REPEATED ̲FIELD is reorganized.
By changing REPEATED ̲FIELDs NEW ̲FIELD may be referenced
by a NIL POINTER.
This means that all FIELDs identical to OLD ̲FIELD shall
be removed.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a)
GLOBAL ̲CHANGE ̲FIELD ̲VALUE
(TABLE ̲ID: TABLE ̲ID ̲TYPE,
SEARCH ̲MASK: BITMASK,
OLD ̲FIELD: POINTER,
NEW ̲FIELD: POINTER)
(CC: OK): ERROR ̲OK
b) NA
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
TABLE ̲ID ̲ERROR
Figures 4.1.1.2-1 & 2
4.1.2 G̲e̲t̲ ̲T̲M̲P̲ ̲S̲t̲a̲t̲i̲s̲t̲i̲c̲s̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
A subset of TMP Statistics is delivered in specified
output buffer.
Only STP may use this function..
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲TMP ̲STATISTICS
(FIRST: TABLE ̲ID ̲TYPE,
LAST: TABLE ̲ID ̲TYPE,
COUNT: INTEGER)
(OUTPUT ̲STATISTICS:
ARRAY (FIRST...LAST)
OF
TMP ̲STATISTICS,
CC: OK): ERROR ̲OK
b1) MON(SCM,SYSCALL ̲TMP ̲GET ̲TMP ̲STATISTICS: R6, R1,
R2, R3, R4,
R7): ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲GET ̲TMP ̲STATISTICS, R1, R2,
R3, R4,
R7,
R6):
ERROR
̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
BUFFER ̲TOO ̲SHORT
TABLE ̲ID ̲ERROR
PRIVILEGE ̲ERROR
4.1.3 G̲e̲t̲ ̲T̲a̲b̲l̲e̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲s̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Table attributes of specified table are delivered.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲TABLE ̲ATTRIBUTES
(TABLE ̲ID: TABLE ̲ID ̲TYPE)
(ATTRIBUTES: TABLE ̲ATTRIBUTES,
CC: OK): ERROR ̲OK
b1) MON(SCM,SYSCALL,TMP ̲GET ̲TABLE ̲ATTRIBUTES: R6,
R1, R4, R7) : ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲GET ̲TABLE ̲ATTRIBUTES
R1, R4, R7, R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
TABLE ̲ID ̲ERROR
4.1.4 L̲o̲c̲k̲ ̲T̲a̲b̲l̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Specified table is locked.
Caller must have Update Access Rights to specified
table.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) LOCK ̲TABLE (TABLE ̲ID: TABLE ̲ID ̲TYPE)
(CC: OK,
ALREADY ̲LOCKED): ERROR ̲OK
b1) MON(SCM,SYSCALL,TMP ̲LOCK ̲TABLE: R6,
R1, R7)): ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲LOCK ̲TABLE,
R1, R7, R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
TABLE ̲ID ̲ERRORS
PRIVILEGE ̲ERROR
4.1.5 U̲n̲l̲o̲c̲k̲ ̲T̲a̲b̲l̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Specified table is unlocked.
Caller must have Update Access Rights to specified
table.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) UNLOCK ̲TABLE (TABLE ̲ID: TABLE ̲ID ̲TYPE)
(CC: OK,
NOT ̲LOCKED): ERROR ̲OK
b1) MON(SCM, SYSCALL, TMP ̲UNLOCK ̲TABLE: R6, R1, R7):
ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲UNLOCK ̲TABLE,
R1, R7, R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
TABLE ̲ID ̲ERROR
PRIVILEGE ̲ERROR
4.1.6 R̲e̲o̲r̲g̲a̲n̲i̲z̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
All tables are reorganized.
This function is privileged.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) REORGANIZE ( )
(CC. OK,
ABANDONED): ERROR ̲OK
b1) MON(SCM, SYSCALL,TMP ̲REORGANIZE: R6, R7): ERROR
̲OK
b2) COMON(CSYSCALL, TMP ̲REORGANIZE, R7, R6) : ERROR
̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PRIVILEGE ̲ERROR
4.1.7 A̲b̲a̲n̲d̲o̲n̲ ̲R̲e̲o̲r̲g̲a̲n̲i̲z̲e̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
A previously requested Reorganize is cancelled. If
this Reorganize has been completed, the function is
rejected.
In both cases the REORGANIZE function will also generate
a response.
This function is privileged.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) ABANDON ̲REORGANIZE( )
(CC: OK, REJECTED): ERROR ̲OK
b1) MON(SCM, SYSCALL, TMP ̲ABANDON ̲REORGANIZE: R6,
R7): ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲ABANDON ̲REORGANIZE, R7,
R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PRIVILEGE ̲ERROR
4.1.8 B̲A̲C̲K̲U̲P̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
A backup copy of TMP files is made.
This function is privileged.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) BACKUP ( )
(CC: OK,
VOLUME ̲NOT ̲MOUNTED,
NO ̲TMP ̲FILE): ERROR OK
b1) MON(SCM, SYSCALL, TMP ̲BACKUP: R6, R7): ERROR
̲OK
b2) COMON(CSYSCALL, TMP ̲BACK ̲UP, R7, R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PRIVILEGE ̲ERROR
4.1.9 S̲y̲s̲t̲e̲m̲ ̲S̲t̲a̲r̲t̲ ̲U̲p̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Restores the state of TMP according to the start up
type specified by MODE.
The Function is privileged.
C̲a̲l̲l̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
a) SYSTEM ̲START ̲UP (MODE: START ̲UP ̲TYPE)
(CC: OK): ERROR ̲OK
b1) MON(SCM, SYSCALL, TMP ̲SYSTEM ̲START ̲UP: R6,
R1, R2, R7): ERROR ̲OK
b2) COMON(SYSCALL, TMP ̲SYSTEM ̲START ̲UP, R1, R2, R7,
R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PRIVILEGE ̲ERROR
4.1.10 S̲e̲t̲ ̲G̲l̲o̲b̲a̲l̲ ̲S̲e̲r̲i̲a̲l̲ ̲N̲u̲m̲b̲e̲r̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The specified GSN is set to specified value.
The value is specified as four ASCII characters and
must be in accordance with allowed range of specified
GSN.
If the specified GSN is a three digit number, the first
character in GSN ̲TEXT will be a space.
Note that most significant digit in GSN ̲TEXT is located
in the bits 0..7 while least significant digit is located
in the bits 8..15.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲GSN (GSN ̲ID: GSN ̲ID ̲TYPE,
GSN ̲TEXT: GSN ̲TEXT ̲TYPE)
(CC: OK,
ILLEGAL ̲GSN ̲TYPE):
ERROR ̲OK
b1) MON(SCM, SYSCALL, TMP ̲SET ̲GSN: R6,
R1, R2, R3, R4, R7): ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲SET ̲GSN, R1, R2, R3, R4, R7,
R6) : ERROR
̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
GSN ̲ID ̲ERROR
PARAMETER ̲DISCREPANCY
4.1.11 D̲a̲i̲l̲y̲ ̲G̲l̲o̲b̲a̲l̲ ̲S̲e̲r̲i̲a̲l̲ ̲N̲u̲m̲b̲e̲r̲ ̲R̲e̲s̲e̲t̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The specified GSN is reset if its DAILY ̲RESET flag
is set.
If specified GSN is a three digit GSN it is reset to
999. If it is a four digit GSN, it is reset to 9999.
If DAILY ̲RESET flag is not set for specified GSN, the
request is rejected.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) DAILY ̲GSN ̲RESET (GSN ̲ID: GSN ̲ID ̲TYPE)
(CC: OK
REJECTED): ERROR ̲OK
b1) MON(SCM, SYSCALL, TMP ̲DAILY ̲GSN ̲RESET: R6,
R1, R2, R7): ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲DAILY ̲GSN ̲RESET, R1, R2, R7
R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
GSN ̲ID ̲ERROR
4.1.12 G̲e̲t̲ ̲G̲l̲o̲b̲a̲l̲ ̲S̲e̲r̲i̲a̲l̲ ̲N̲u̲m̲b̲e̲r̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The value of specified GSN is delivered to caller.
If INCREASE is TRUE, next number is delivered.
The value is delivered both as four ASCII characters
and an INTEGER value.
If the specified GSN is a three digit number, the first
character in GSN ̲TEXT will be a space.
Note that most significant digit in GSN ̲TEXT is located
in the bits 0..7 while least significant digit is located
in the bits 8..15.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
a) GET ̲GSN(GSN ̲ID: GSN ̲ID ̲TYPE,
INCREASE: BOOLEAN)
(GSN: GSN ̲TEXT ̲TYPE,
GSN ̲VALUE: 0..9999,
CC: OK): ERROR ̲OK
b1) MON(SCM, SYSCALL, TMP ̲GET ̲GSN: R6, R0,
R1, R2, R3, R4, R5, R7): ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲GET ̲GSN, R0, R1, R2, R3, R4,
R7, R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
GSN ̲ID ̲ERROR
4.1.13 S̲e̲t̲ ̲G̲l̲o̲b̲a̲l̲ ̲S̲e̲r̲i̲a̲l̲ ̲N̲u̲m̲b̲e̲r̲ ̲F̲l̲a̲g̲s̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The DAILY ̲RESET and the THREE ̲DIGIT flags in specified
GSN are set to specified value.
The function is privileged.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) SET ̲GSN ̲FLAGS (GSN ̲ID: …02…GSN ̲ID ̲TYPE,
DAYLY ̲RESET: …02…BOOLEAN,
THREE ̲DIGIT: …02…BOOLEAN)
(CC: OK): …02…ERROR ̲OK
b1) MON(SCM, SYSCALL, TMP ̲SET ̲GSN ̲FLAGS: R6,
R1, R2, R3, R4, R7): ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲SET ̲GSN ̲FLAGS, R1, R2, R3,
R4, R7,
R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
GSN ̲ID ̲ERROR
PRIVILEGE ̲ERROR
4.1.14 S̲e̲t̲ ̲S̲y̲s̲t̲e̲m̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The specified System Parameter is set to specified
value.
The function is privileged.
C̲a̲l̲l̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
a) SET ̲SYSTEM ̲PARAMETER
(PARAMETER ̲ID: PARAMETER ̲ID ̲TYPE,
PARAMETER SIZE: INTEGER
PARAMETER ̲VALUE: ARRAY)
(CC: OK): ERROR ̲OK
b1) MON(SCM, SYSCALL, TMP ̲SET ̲SYSTEM ̲PARAMETER:
R6, R1, R2, R4, R7): ERROR ̲OK
b2) COMON(CSYSCALL, TMP ̲SET ̲SYSTEM ̲PARAMETER, R1, R2,
R4, R7, R6) : ERROR
̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PRIVILEGE ̲ERROR
PARAMETER ̲DISCREPANCY
PARAMETER ̲ID ̲ERROR
PARAM ̲ADDRESS ̲ERROR
4.1.15 G̲e̲t̲ ̲S̲y̲s̲t̲e̲m̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲
The specified system parameter is delivered to caller.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
a) GET ̲SYSTEM ̲PARAMETER
(PARAMETER ̲ID: PARAMETER ̲ID ̲TYPE)
PARAMETER SIZE: INTEGER
(PARAMETER ̲VALUE: ARRAY
CC: OK): ERROR ̲OK
b1) MON(SCM, SYSCALL, TMP ̲GET ̲SYSTEM ̲PARAMETER:
R6, R1, R2, R4, R7): ERROR ̲OK
b2) COMON(CSYSCALL, SYSCALL, TMP ̲GET ̲SYSTEM ̲PARAMETER,
R1, R2, R4,
R7, R6) : ERROR ̲OK
F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲
PARAM ̲ADDRESS ̲ERROR
PARAMETER ̲ID ̲ERROR
Figure 4.1-1/2/3
Application Package Interfaces
Section 5.1, 5.2 ref vol. 3
Section 5.3, 5.4, 5.5, 5.6 ref vol. 4.