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

⟦1af919b7f⟧ Wang Wps File

    Length: 67534 (0x107ce)
    Types: Wang Wps File
    Notes: CPS/SDS/028               
    Names: »2162A «

Derivation

└─⟦8b37ca311⟧ Bits:30006109 8" Wang WCS floppy, CR 0174A
    └─ ⟦this⟧ »2162A « 

WangText

…00……00……00……00……00…H…0a……00……00…H…0b…H…0d…H…0f…H H…07…G…0b…G…0e…G
F…09…F…0d…D…01…D D…07…C…0a…C…0e…C C…05…B…0a…B…0f…*…08…*…0f…*…00…* *…05…)…0d…)…0e…)…0f…)…05…)…06…(…0a…(…0b…(…0f…(…00…(…86…1                                             …02…      
                      …02…   …02…        

…02…CPS/SDS/028

…02…850301…02……02…
I/O CONTROL
DETAILED DESIGN SPECIFICATION…02…ISSUE 1…02…CAMPS








4.1.6    C̲o̲m̲m̲o̲n̲ ̲D̲a̲t̲a̲

         N.A.



4.1.7    I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.1.7.1  E̲x̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         The external interfaces for IOC are the electrical
         interfaces for devices and lines, where IOC in fact
         implements the CAMPS external interface to devices/lines.

         Interface descriptions are:

         CAMPS ICDs ICD/004 through 8.


4.1.7.2  P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         The interface for IOC can be divided into 4 main groups.
         

         a)  IOS Interfaces  

         b)  Data transport interfaces (using IOS calls). 

         c)  FORMAT HANDLER interfaces.

         d)  Control Interfaces for defining control parameters
             within the IOC  





4.1.7.2.1    I̲O̲S̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲


         The IOS interfaces are included here as background
         information. For coding purposes please refer to DAMOS
         I/O SYSTEM.



4.1.7.2.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 DEVICENAME
         R2                Pointer to VOLUMNAME

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R7      CC



4.1.7.2.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



4.1.7.2.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 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



4.1.7.2.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



4.1.7.2.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 previsouly 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


4.1.7.2.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,
         depends on whether or not the user who "offers" the
         file are 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



4.1.7.2.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



4.1.7.2.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



4.1.7.2.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



4.1.7.2.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      FILEDECR ̲DIR

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R7      CC



4.1.7.2.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



4.1.7.2.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



4.1.7.2.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
         (Log.  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



4.1.7.2.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



4.1.7.2.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



4.1.7.2.2    D̲a̲t̲a̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         The data transport to/from a terminal is exercised
         by calling the IOS procedures.

         APPEND BYTES
         READ BYTES

         The buffer content, which is a logical contiguous byte
         string either specified to the IOS or returned from
         the IOS is formatted as specified below.

         The start byte identifies the start of a record. It
         may also occur in data, but only when flagged as control
         characters.

         The Byte Count gives the length of Data (so that total
         length is bytecount + 3). The maximum length is dependent
         on the interfaced line.

         The flag byte give the type of the data transferred.
         It may be a line or a field or a string of control
         characters. If a line of text has not been terminated
         in a normal way the Flag Byte indicates this. Three
         ways of abnormal termination may be identified.

         a)  The line is not terminated by the normal character
             sequence, but by a different sequence (control
             characters). The line is defined as data and a
             new record is initiated (control type).

         b)  The line length exceeds the predefined length.
             The line is defined as data and a new record is
             initiated.

         c)  An unexpected V24 line status change or a key on/off
             or a timeout (more than predefined time interval
             between two characters) detected. The current record
             is terminated as a data record and the IO request
             is terminated with an error code indicating the
             reason for termination.

         The general layout of the buffer is presented in figure
         4.1.7.2.2-1.











                    Figure 4.1.7.2.2-1


         FLAG BYTE VALUES

         0       Normal data (ASCII HEX 20 to HEX 7F)

         1       Line or Field (ASCII HEX 20 to HEX 7F). For
                 incoming (CR, CR, LF) or (CR, LF) or other
                 separator detected.

                 For outgoing the sequence as specified is attached.

         2       Spare

         3       Spare

         4       Control sequences from/to application to/from
                 device/line.

         5       Control sequence from/to Application to/from
                 IOC start of message

         6       Do - end of message

         7       ACK



4.1.7.2.2.1 M̲e̲d̲i̲u̲m̲ ̲S̲p̲e̲e̲d̲ ̲T̲e̲l̲e̲p̲r̲i̲n̲t̲e̲r̲ ̲D̲a̲t̲a̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The Medium Speed Teleprinter is interfaced by use of
         IOS APPEND BYTES with record types as shown in figure
         4.1.6.2.2.1-1. 

         If the key is off or the application has no open connection
         to the terminal an error code will be returned.

         The MSTP interface accepts types 0, 1, 4.













                   figure 4.1.7.2.2.1-1


4.1.7.2.2.2 P̲T̲P̲/̲P̲T̲R̲ ̲D̲a̲t̲a̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The PTP is interfaced by use of IOS APPEND BYTES with
         record types as shown in figure 4.1.6.2.2.2-1. If the
         key is off or the application has no open connection
         to the terminal, an error will be returned.

         The PTP interface accepts types 0, 1, 4.

         The PTR is interfaced by use of IOS READ BYTES. Received
         records will be type 0, 1 or 4 as shown in figure 4.1.6.2.2.2-2.
         If the application has no open connection to the terminal
         an error code is returned.

         The conventions for ITA 5 input processing for PTR
         are as follows:

         Characters are normally collected in type 1 records,
         where either the sequence "CR, CR, LF" or "CR, LF"
         is used as separator.

         Where more than 69 characters have been received without
         this termination of line, they are collected in a type
         0 record and a new count is initiated. Occurrence of
         any other control characters than above line termination
         leads to an immediate recording of already received
         characters into a type 0 and collection of control
         characters in type 4 (except superfluous SI,SO which
         are delete). If a control sequence is longer than 69
         characters it will be collected in a type 4 record
         and new record will start. If normal characters (1
         or more) are received, record type 4 is terminated
         and a type 0 or 1 started.

         An application input is terminated on:
         Message End received, Message Start received (except
         just after Message End, Break of 30 seconds (except
         just after Message End).
         An I/O is further terminated on device failure.

         If no application IO request is present, characters
         received from the PTR are lost.

         For lines operating in ITA 2, the same rules apply,
         except that Shift In and Shift Out characters are allowed
         to determine the meaning of next characters. Superfluous
         Letter shift or Figure shift are deleted as described
         above.







             Fig. 4.1.7.2.2.2-1 PTP Interface







             Fig. 4.1.7.2.2.2-2 PTR Interface





4.1.7.2.2.3 T̲R̲C̲,̲ ̲P̲o̲i̲n̲t̲ ̲t̲o̲ ̲P̲o̲i̲n̲t̲ ̲D̲a̲t̲a̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The TRC and P to P are interfaced by use of the IOS
         APPEND BYTES and READ BYTES with record types identical
         to the ones shown for PTP/PTR in section 4.1.6.2.2.2.



4.1.7.2.2.4 O̲C̲R̲ ̲D̲a̲t̲a̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The OCR is interfaced by use of IOS READ BYTES. Received
         records will be type 0, 1, 4, 5, or 6 as shown in figure
         4.1.6.2.2.4-1. If the application has no open connection
         an error code is returned.

         The conventions for ITA 5 input processing for OCR
         are as follows:

         Characters are normally collected in type 1 records,
         where either the sequence "CR, CR, LF" or "CR, LF"
         is used as separator. When more than 69 characters
         have been received without this termination of line,
         they are collected in a type 0 record and a new count
         initiated. Occurence of any other control character
         (-sequence) than above line termination leads to an
         immediate recording of already received info in type
         0 and collection of control chars in type 4. If a control
         charseq. is longer than 69 it is divided into several
         of max length 69. The first occurence of a non-control
         character terminates the type 4 record and starts building
         a type 0 or 1. Control characters ETB are not returned
         to the application.








                    Fig. 4.1.7.2.2.4-1





4.1.7.2.2.5 N̲I̲C̲S̲-̲T̲A̲R̲E̲ ̲D̲a̲t̲a̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The input is obtained by use of READ BYTES. Received
         records will be type 0, 1, 4, 5 or 6, where 0, 1 and
         4 are resulting from decoding of message text and 5
         and 6 are indicating start and end of message respectively.

         An error is returned if the application has no open
         connection to the terminal or if a fatal error has
         occured on the link.

         The input conversion is shown in fig. 4.1.7.2.2.5.

         Output is performed by using IOS APPEND BYTES. Allowed
         record types are 0, 1, 4, 5 and 6. The output conversion
         is the inverse of the input conversion. An error code
         will be returned if the record length is not identical
         to the one specified.

         The interface to NICS ̲TARE is implemented via 3 connections,
         one for Data (input+output), one for acknowledges (output
         only) and one for LCB!s (input+output).








        Fig. 4.1.7.2.2.5 NICS-TARE Data Interface





4.1.7.2.2.6 C̲C̲I̲S̲/̲S̲C̲A̲R̲S̲ ̲D̲a̲t̲a̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The input is obtained by use of READ BYTES. Received
         records will be of type 0, 1, 4, 5 or 6, where 0, 1
         and 4 are are resulting from decoding of the message
         text and 5 and 6 are indicating start and end of message
         respectively.

         An error is returned if the application has no open
         connection to the terminal or if the message control
         field of the protocol is in error (i.e. blocks out
         of sequence, precedence and type changed). Message
         control field errors following blocks are ignored.

         The input conversion is shown in fig. 4.1.7.2.2.6.

         Output is performed by using the IOS APPEND BYTES.
         Allowed record type are 0, 1, 4, 5 and 6. The output
         conversion is the inverse of the input conversion.
         An error code will be returned to the requestor (e.g.
         THP) if the record length is not identical to the one
         specified.








        Fig. 4.1.7.2.2.6 CCIS/SCARS Data Interface





4.1.7.2.3    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, 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 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.


4.1.7.2.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, 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.


4.1.7.2.3.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,R3,R5,R7):
                                               ERROR ̲OK

         b2) COMON (CSYSCALL, FH ̲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
         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


4.1.7.2.3.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,R8,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


4.1.7.2.3.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


4.1.7.2.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 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,R3,R5,R7):
              
                                                 ERROR ̲OK

         b2) COMON (CSYSCALL, FH ̲GET ̲FORMAT, R1, R3,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




4.1.7.2.3.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



4.1.7.2.3.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


4.1.7.2.3.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



4.1.7.2.3.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. 4.1.7.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. 4.1.7.2.3-2
         and the Buffer in fig. 4.1.7.2.3-3.

         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).





                    FIGURE 4.1.7.2.3-1
                 FIELD TRANSFER INTERFACE







                    FIGURE 4.1.7.2.3-2
                    FIELD LIST LAYOUT









                    FIGURE 4.1.7.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,
                            BYTE ̲LENGTH: BYTE ̲LENGTH ̲TYPE)
                           (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.


4.1.7.2.3.10 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 are performed.
         In addition 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, R6, R7): 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.




4.1.7.2.3.11 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

         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.


4.1.7.2.3.12 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, R3,
                                   R5, R7): ERROR ̲OK

         b2) COMON (CSYSCALL, FH ̲CHANGE ̲FIELD ̲ATTR, R0, R1,
             R3, 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.


4.1.7.2.3.13 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,
             R3, 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)





4.1.7.2.3.14 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, R2, 
                                               R5, R7):  ERROR
                                               ̲OK

         b2) COMON (CSYSCALL, FH ̲SET ̲CURSOR ̲POSITION, R0, R1,
             R3, 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.



4.1.7.2.3.15 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, 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                            (OK, VDU ̲SPLIT
                                               ̲FAILED)

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         Other errors fatal


4.1.7.2.3.16 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.





4.1.7.2.3.17 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
                 VUD 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, VUD ̲SPLIT
                                               ̲FAILED)



4.1.7.2.3.18 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,
1                      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)


4.1.7.2.3.19 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
         R4  CC                    (OK, CURSOR ̲NOT ̲IN ̲GROUP,
                                        VUD ̲SPLIT ̲FAILED)


4.1.7.2.3.20 B̲u̲i̲l̲d̲ ̲A̲D̲A̲T̲ ̲P̲3̲ ̲T̲a̲b̲l̲e̲

         The Build ADAT P3 Table is used to build up a table
         describing the layout of a ADAT-P3 format. This function
         is called after Get ̲Format and can be called again
         if an update of the table is required.

         Input:  Interface #
                 Pointer to Table

         Output: Number of Groups
                 Done
                 Not ADAT P3

         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: Pointer,
                                  CC: Completion Code)

         b1) MON (SCM, SYSCALL; FH ̲BUILD ̲ADAT ̲P3 ̲TABLE, R6,
             R1, R2, 
                                               R3, R7): ERROR
                                               ̲OK

         b2) COMOM (CSYSCALL, FH ̲BUILD ̲ADAT ̲P3 ̲TABLE, R1, R2,
             R3, R7, R6): ERROR ̲OK

         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.

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R1      INTERFACE NO.
         R2                   POINTER TO TABLE

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R3      NUMBER OF GROUPS
         R7      CC           (OK, NOT ̲ADAT ̲P3)

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         Other than the above mentioned are fatal.



4.1.7.2.3.21 E̲n̲a̲b̲l̲e̲ ̲D̲a̲t̲a̲ ̲K̲e̲y̲s̲

         This function makes the alphanumeric and screen manipulation
         keys available to the terminal user provided the split
         is called.


         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 (INTERPACE ̲NO: IFCB ̲INDEX)
                              (CC: COMPLETION)

         b1) MON(SEM, SYSCALL, FH ̲ENABLE ̲DATA ̲KEYS: RC,
                     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)


4.1.7.2.3.22 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,
             R7): 
                                               ERROR ̲OK

         b2) COMON (CSYSCALL; FH ̲LINE ̲SIZE, R0, R1, R2, 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          CONPLETION CODE

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         Other than the above mentioned are fatal.



4.1.7.2.3.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:  Interface #
                 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
                         LINE GROUP ̲NUMBER: INTEGER
                         CC: COMPLETION CODE)

         b1) MON (SCM, SYSCALL; FH ̲GROUP ̲SIZE, R6, R0, R1, R2,
             R7): 
                         ERROR ̲OK

         b2) COMON (CSYSCALL, FH ̲GROUP ̲SIZE, R0, R1, R2, R7,
             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 above mentioned are fatal.





4.1.7.2.3.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, 
                               R7): ERROR ̲OK

         b2) COMON (CSYSCALL, FH ̲REMAINING ̲MEMORY, R0, R1, R2,
             R7, 
                               R6): ERROR ̲OK

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R1      INTERFACE NO.
         R2      

         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 aove mentioned are fatal.





4.1.7.2.4    C̲o̲n̲t̲r̲o̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         The Creators (SSC package) control of LTUX Handler
         Subpackage, LTUX Function Subpackage, LTU Handler Subpackage,
         NICS-TARE LTU Function Subpackage and CCIS-SCARS LTU
         Function Subpackage is performed via the IOS commands
         to TMS

             CREATE ̲SUBDEVICE
             APPEND ̲CONTROL
             READ ̲CONTROL
             DISMANTLE

         Asynchronous events are signalled to the SSC on the
         synchronization element specified at CREATE ̲SUBDEVICE.

         Statistics and status is obtained via Append Control+

         Read Control

         Setting up of an external interface consists of

             Bootload (LTU only)
             Create Subdevice: Definition to parent
             protocol of essential parameters
             Append Control: Definition of LTU/LTUX
             parameters
             Append Control: Initialization of external
                             device (VDU only)
             Read Control: Response to certain Append Controls



4.1.7.2.4.1 C̲r̲e̲a̲t̲e̲ ̲S̲u̲b̲d̲e̲v̲i̲c̲e̲

         Parameters for Create Subdevice are parameters for
         the parent. These are the Subdevices Address, the protocol
         id, the subdevice resource and speed parameters.


4.1.7.2.4.2 A̲p̲p̲e̲n̲d̲/̲R̲e̲a̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲

         In order to be able to specify the meaning of an Append
         Control the first word is always giving the type. The
         general layout is:

         1. - 2.byte          Header of control, takes values

                              SUBDEV: Control of the subdevice
                              itself
                                               (spare)
                              LOWER ̲PROTOCOL ̲OUTPUT ̲INPUT: 
                                   Combined output and input
                              to
                                   LTUX or LTU of control information

                              EXTERNAL ̲DEVICE ̲INPUT: Input of
                              data
                                   from external device

                              LOWER ̲PROTOCOL ̲OUTPUT: Output
                              of con-
                                   trol information to LTU/LTUX
                                               (spare)

                              EXTERNAL ̲DEVICE ̲OUTPUT: Output
                              of
                                   data to external device

         3. byte              Spare = 0

         4. - N. byte         The actual control information

         For LOWER ̲PROTOCOL ̲OUTPUT ̲INPUT Append Control and
         Read Control shall always be combined (with the input
         request first).

         The controls available are for CCIS/SCARS interface
         defined by CS ̲COMMAND (refer 4.1.4.3) and for other
         by PROT ̲COMMAND.



         The meaning is:


         PC ̲ENABLE, CS ̲REOPEN:                 Definition of
                                               LTU/LTUX protocol
                                               parameters

         CS ̲SET ̲UP ̲LINES, CS ̲DISC ̲LINES:       Setup and take-down
                                               of V24 interface

         PC ̲OPEN ̲PROTOCOL                      Setup V24 and
                                               start protocol

         CS ̲SET ̲UP ̲LINK                        Start outgoing
                                               protocol

         CS ̲DISC ̲LINK                          Disconnect outgoing
                                               protocol

         PC ̲CLOSE ̲PROTOCOL                     Take down protocol
                                               and external
                                               lines (V24)

         PC ̲REDEFINE ̲PARAMS                    Parameter redefinition

         CS ̲STATISTIC, PC ̲STATISTICS           Obtain Statistics
                                               from LTU/LTUX

         PC ̲STATUS, CS ̲READ ̲V24                Status information
                                               on link

         PC ̲DEVICE ̲STATUS                      Status on ext.
                                               device
                                               (e.g. key, paper)


4.1.7.2.4.3 L̲T̲U̲X̲ ̲P̲r̲o̲t̲o̲c̲o̲l̲ ̲i̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         O̲p̲e̲n̲ ̲S̲u̲b̲d̲e̲v̲i̲c̲e̲       The parent parameters are as of
                              the TDX (STI) handler definition.

         A̲p̲p̲e̲n̲d̲/̲R̲e̲a̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲

         4. - N byte

         Refer section 4.2.2.7 bytes 4. - N for Append Control
         ("Commands to the LTUX")

         Refer section 4.2.2.7 bytes 4 - N for Read Control
         ("Responses to Commands")

         For VDU the sequence is

         PC ̲ENABLE, PC ̲OPEN ̲PROTOCOL used by a series of Append
         Controls with EXTERNAL ̲DEVICE ̲OUTPUT and a PC ̲PREDEFINE
         ̲PARAMS (switch on converter). For other the followed
         sequence is

             PC ̲ENABLE, PC ̲OPEN ̲PROTOCOL

         The Open Protocol is responded when

             VDU, MSTP, PTP/PTR:               VDU is powered
                                               and key status
                                               can be obtained

             OCR, TRC ̲TP when device is operational (106, 107)


         A̲s̲y̲n̲c̲h̲r̲o̲n̲o̲u̲s̲ ̲R̲e̲p̲o̲r̲t̲s̲

         Format refer section 4.1.4.2 and record definition
         SD ̲OTHER ̲STATUS ̲REC.

         V̲D̲U̲

         USER ̲ACTION ̲TYPE

         M̲S̲T̲P̲

         USER ̲ACTION ̲TYPE, DEVICE ̲ACTION ̲TYPE

         A̲L̲L̲

         SD ̲FAILURE           + ERROR CODE(DROP ̲106, DROP ̲107,
                              OUT ̲RETRANSMISSION, IN ̲RETRANSMISSION,
                              UNEXPECTED ̲CONTROL ̲CHAR ̲SEQUENCE).



4.1.7.2.4.4 V̲D̲U̲ ̲S̲p̲l̲i̲t̲ ̲P̲r̲o̲t̲o̲c̲o̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         O̲p̲e̲n̲ ̲S̲u̲b̲d̲e̲v̲i̲c̲e̲:̲

         Subdevice address:   Primary split number (1..8)

         Additional parameters  Word 1:      Secondary Split
                                             number
                                Word 2:      Type(VDU ̲DATA,VDU
                                             ̲CONTROL)
                                Word 3:      Priority (1..8)

         No Append/Read Control

         No Asynchronous reports.


4.1.7.2.4.5 L̲T̲U̲ ̲P̲r̲o̲t̲o̲c̲o̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         O̲p̲e̲n̲ ̲S̲u̲b̲d̲e̲v̲i̲c̲e̲       The parent parameters as of the
                              LTU Handler definitions

         A̲p̲p̲e̲n̲d̲/̲R̲e̲a̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲

         Refer sections 4.2.3.7.1 and 4.2.3.7.2 for byte 4 -
         N and 4 - M in requests and responses.

         The command are to NICS-TARE PC ̲COMMAND and CCIS/SCARS
         CS ̲COMMANDS.

         A̲s̲y̲n̲c̲h̲r̲o̲n̲o̲u̲s̲ ̲R̲e̲p̲o̲r̲t̲s

         SD ̲FAILURE + ERROR

         NICS-TARE   Datatype                NICS-TARE ̲FAILURE

         CCIS/SCARS  Datatype                CCIS ̲SCARS ̲FAILURE

         SD ̲OTHER ̲STATUS

         NICS-TARE   Datatype                NICS-TARE ̲OTHER
                                             ̲STATUS

         CCIS/SCARS  Datatype                CCIS ̲SCARS ̲OTHER
                                             ̲STATUS



4.1.7.2.4.6 N̲I̲C̲S̲-̲T̲A̲R̲E̲ ̲S̲u̲b̲d̲e̲v̲i̲c̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲


         O̲p̲e̲n̲ ̲S̲u̲b̲d̲e̲v̲i̲c̲e̲

         Subdevice address: (NT ̲DATA, NT ̲LCB, NT ̲ACK)


4.1.7.2.5    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 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.

             -   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 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.


4.1.7.2.5.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, R7):
                                               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.


4.1.7.2.5.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
         (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 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 PRINTER 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
                                     (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


4.1.7.2.5.3 I̲n̲i̲t̲ ̲P̲r̲i̲n̲t̲e̲r̲

         The INIT TERMINAL defines to the format handler which
         VDU 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,R8,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


4.1.7.2.5.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 ̲COPE):
                                      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


4.1.7.2.5.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,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




4.1.7.2.5.6 F̲i̲e̲l̲d̲ ̲O̲u̲t̲p̲u̲t̲

         Fields are transferred from the application buffers.
         The interface is based on a definition of a field buffer
         and a field list buffer as shown in fig. 4.1.7.2.3-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. 4.1.7.2.3-2
         and the Buffer in fig. 4.1.7.2.3-3.

         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      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, Paper ̲Out, Cancelled,
                     
                                      Printer ̲Failed)

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         Other than above mentioned are fatal.


4.1.7.2.5.7 O̲u̲t̲p̲u̲t̲ ̲F̲o̲r̲m̲a̲t̲

         The OUTPUT FORMAT terminats the transfer of fields
         including the format to the printer (split).

             Input:  Interface # (IFCB index).

             Output: Done
                     Printer split 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



4.1.7.2.5.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


4.1.7.2.5.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: R&, 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           (OK)

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         Other errors fatal





4.1.7.2.5.10 I̲n̲s̲e̲r̲t̲ ̲L̲i̲n̲e̲ ̲G̲r̲o̲u̲p̲

         The function inserts the specified number of linegroups
         after the specified linegroup. The incarnation that
         exist for the linegroup is just incremented.

         Input:  Interface #
                 Linegroup #
                 No. of linegroups

         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 LINEGROUPS: 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 linegroups

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

         R7      CC           (OK)



4.1.7.3  S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.1.7.3.1    F̲o̲r̲m̲a̲t̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲t̲o̲ ̲L̲T̲U̲X̲ ̲H̲a̲n̲d̲l̲e̲r̲

         The interface is via IOS

         APPEND ̲BYTES and READ ̲BYTES.
         Refer section 4.2.1.7



4.1.7.3.2    L̲T̲U̲X̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲t̲o̲ ̲L̲T̲U̲X̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲

         Refer section 4.2.2.7



4.1.7.3.3    L̲T̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲t̲o̲ ̲N̲I̲C̲S̲-̲T̲A̲R̲E̲ ̲L̲T̲U̲

         F̲u̲n̲c̲t̲i̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲

         Refer section 4.2.3.7



4.1.7.3.4    L̲T̲U̲ ̲H̲a̲n̲d̲l̲e̲r̲ ̲t̲o̲ ̲C̲C̲I̲S̲/̲S̲C̲A̲R̲S̲ ̲L̲T̲U̲

         F̲u̲n̲c̲t̲i̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲

         Refer section 4.2.3.7.