DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Wang WCS documentation floppies

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Wang WCS documentation floppies

Excavated with: AutoArchaeologist - Free & Open Source Software.


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.