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

⟦d8b8d2159⟧ Wang Wps File

    Length: 50049 (0xc381)
    Types: Wang Wps File
    Notes: Spelunked
    Names: »~ORPHAN73.00«

Derivation

└─⟦c59a533be⟧ Bits:30006100 8" Wang WCS floppy, CR 0155A
    └─ ⟦this⟧ »~ORPHAN73.00« 

WangText



I…07…H…0c…H…0f…H…02…G…08…G…0e…G
G…07…F…0a…F…0c…F…00…F…02…F  F…06…E…09…E…0c…E…00…E…02…E D…08…D…0b…D…0f…D…02…D…07…C…0d…C…01…C…05…B…08…B…0b…B…0e…B…02…A…08……86…1
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               …02…
               
               
               
               
               
               
               
               
               
               
               …02…
               
               
               …02…
               
               
               
               
               
               
               
               

…02…CPS/SDS/028

…02… 820421 
        
I/O CONTROL
DETAILED
 DESIGN
 SPECIFICATION  CAMPS








4.1.4.2  D̲A̲M̲O̲S̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲s̲ ̲f̲o̲r̲ ̲h̲a̲n̲d̲l̲e̲r̲s̲

         TYPE SDD =
           RECORD
             SISTER ̲LINK: INTEGER;  "Pointer to SDD of ister
                                    subdevice
             PARENT ̲LINK: INTEGER;  "Pointer to SDD of parent
                                    subdevice
             CHILD ̲QUEUE: QD;       "Queue descriptor for child
                                     subdevices
             SD ̲SDID:     INTEGER;  "User defined subdevice
                                    identi-
                                     fication
             SD ̲SE:       INTEGER;   Userdefined synchronization
                                    
                                     element
             SDIDREF:     INTEGER;   Pointer to SDID part of
                                    SDB

           END;

         TYPE SDID =
           RECORD
             SDDREF:      INTEGER;  "Pointer to SDD part of
                                    SDB
             DCBREF:      INTEGER;  "Pointer to DCB
             PROTOCOL:    INTEGER;  "Prtocol table index
             STACK ̲POINTER:INTEGER; "Pointer to current stack
                                    level in
             STACK:                 "Link save stack

                          ARRAY(0..STACKSIZE-1) OF INTEGER;

           END;…86…1         …02…   …02…   …02…   …02…                    …02…     
                           

         S̲u̲b̲d̲e̲v̲i̲c̲e̲ ̲B̲l̲o̲c̲k̲:̲ ̲S̲D̲B̲
                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

         SDD.SISTER ̲LINK                                         # ref
                                                                   to
                                                                   sister
                                                                   SDD
                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

         SDD.PARENT ̲LINK                                         # ref
                                                                   to
                                                                   parent
                                                                   SDD
                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

         SDD.CHILD ̲QUEUE                                         # QD.IP
                        #                 -  -  - 
                                          -  -  -
                        #                 QD.EP
                        #                 -  -  - 
                                          -  -  -
                        #                 QD.RC
                        # ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

         SDD.SD ̲SDID                      #                      user
                                                                 defined
                                                                 sd
                                                                 id
                        #                  ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲

         SDD.SD ̲SE                        #                      user
                                                                 defined
                                                                 SE
                        #                  ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲

         SDD.SDIDREF                      #                      pointer
                                                                 to
                                                                 SDID
                        #                  ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲

                                          work area
                                          for
                                          parent subdevice
                                           ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲

         SDID.SDDREF                      #                      pointer
                                                                 to
                                                                 SDD
                        #                  ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲

         SDID.DCBREF                      #                      pointer
                                                                 to
                                                                 DCB
                        #                  ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲

         SDID.PROTOCOL                    #                      protocol
                                                                 number
                        #                  ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲

         SDID.STACK ̲POINTER               #                      stack
                                                                 pointer
                        #                  ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ 

         SDID.STACK                       #                      stack
                                                                 of:
                                                                 sdid's
                        #                 and     
                                          link's
                                           ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
                                          ̲ ̲

                                          work area
                                          for
                                          subdevice

Fig. 4.1.4.2-1 HANDLER DATA LAYOUT…86…1…02…        …02…   …02…   …02…   …02…  …02…                 …02…     
                 
         TYPE BUFFER ̲TYPES =


             "The buffers relation to the logical data
             unit (ldu)
             (ENTIRE ̲LDU                  "whole ldu
                                          in one transfer
             ,START ̲OF ̲LDU
             ,PART ̲OF-LDU
             ,END ̲OF-LDU
             );


         TYPE BUFER ̲ENTRY =

             RECORD
                 LINK,                    "Link field
                 DEVICE ̲BUFFER ̲ID,        "Device defined
                                          buffer identifier
                 PAGE ̲START,              "Start address
                                          of page containing
                                          the buffer
                 PAGE ̲ADDR,                                      "Page
                                                                 address
                                                                 (page
                                                                 number)
                 BUFFER ̲ADDR,             Byte address
                                          relative
                                          to page
             BUFFER ̲SIZE                  "Number of
                                          bytes in
                                          buffer.
                 : INTEGER;

         END;



  TYPE SPI ̲PARAM =

    RECORD
      PRIORITY:  INTEGER;         "Priority of request
                                  (O = control)
      BUFFER ̲ID: INTEGER;         "Caller defined buffer
                                  id.
      REQ ̲RECORD:    INTEGER;     "Pointer to reqest
                                  record
      BUFFER ̲ENTRY: INTEGER;      "Pointer to buffer
                                  entry
      PARAM:     INTEGER;         "Pointer to parameter
                                  area
      STATUS:        INTEGER;     "Result of performed
                                  operation

  END;

  TYPE SPI ̲FUNCTIONS = (

    NOTIFY ̲INPUT ̲BUFFER,
    RELEASE ̲INPUT ̲BUFFER,
    RESERE ̲OUTPUT ̲BUFFER,
    CANCEL ̲RESERVE ̲OUTPUT ̲BUFFER,
    NOTIFY ̲OUTPUT ̲BUFFER,
    RELEASE ̲OUTPUT ̲BUFFER,
    TRANSMIT ̲OUTPUT ̲BUFFER,
    NOTIFY ̲TRANSMISSION,
    OPEN ̲PROTOCOL,
    WANT ̲TO ̲CLOSE,
    CLEAN ̲UP ̲ALL,
    CLEAN ̲UP ̲USER,
    CONTROL ̲PROTOCOL



  "parameter records used by TMS when calling device
  functions"

  TYPE VARIABLE ̲SIZE ̲DATA = ARRAY (0..0) OF INTEGER;


  TYPE INITIALIZE ̲PARAM = "used when calling initialize-dvice

    RECORD
      SIZEOF,           "C K size of record -1
      STATUS ̲SE,     "C K object descriptor index
      SDID,          "C K caller's device Id
      H ̲SDID,           "-R handler's device Id
      H ̲OPID,           "-R handler's Id for operation
      OPID:          "C K caller's Id for operaion
                     
                        integer;
      PARAMETERS     " device dependent parameters
                     (may be nil)
                        :variable-size-data;

    END


  TYPE OPEN ̲SUBDEVICE ̲PARAM =     "used when calling
                                  open-subdevice 
    RECORD
      SIZEOF,           "C K size of record -1
      H ̲SDID,           "C hander's Id for parent subdevice
                        at call
                        "R handler's Id for new subdevice
                        at return
      H ̲OPID,           "-R handler's Id for operation
      OPID,          "C K caller's Id for operation
      SDID,          "C K caller's Id for new subdevice
      SDA,              "C K address of ew subdevice
      STATUS ̲SE,     "C K object descr index for subdevice
                     status SE
      PROTOCOL ̲ID       "C K Id of protocol for new
                        subdevice
                        :integer;
      PARAMETERS     "device dependent parameters
                        :variable ̲size ̲data;

  END;

  TYPE CLOSE ̲SUBDEVIE ̲PARAM = "used when calling close
  ̲subdevice and
    RECORD                             "shutdown
      SIZEOF,           "C K size of record -1
      H ̲SDID         "C K handler's Id for subdevice
                        :integer;

  END;…86…1…02… …02… …02… …02…  …02…   …02…   …02…   …02…  …02…         …02…       …02…           
                  
  TYPE ENABLE ̲PARAM =   "used when calling enable ̲input
                        and
    RECORD              "enable ̲control ̲input
      SIZEOF,           "C K size of record -1
      H ̲SDID,           "C K handler's Id for subdevice
    H ̲OPID,          "-R handler's Id for operation
      OPID              "C K caller's Id for operation
                        : integer;
      POSITION          :C K terminal ̲position (e.g.
                        cursor address)
                        ions;
      BUF ̲SIZE,      "C K size in bytes of user buffer
      BYTE ̲COUNT,       "-R numbe of bytes available
      PAGE ̲ADDR,     "-R physical page address of buffer
      BYTE ̲ADDR      "-R byte address within page of
                     buffer
                        integer;
      BUFFER ̲TYPE       "-R state of logical data unit
                        :buffer ̲types;

  END;


  TYPE TEST ̲OPERATION ̲PARAM  "used when calling test
  ̲operation
    RECORD
      SIZEOF     ,   "C K size of record -1
      H ̲SDID     ,   "C K handler's Id for subdevice
      H ̲OPID     :   "C K handler's Id for operation
                        integer;
      RESULT     :   "-R
                        operation ̲status;

  END;


  TYPE SETBUFFER ̲PARAM =  "used when calling set ̲output
  ̲buffer and
    RECORD                  "set ̲control ̲buffer
      SIZEOF     ,   "C K size of record -1
      H ̲SDID     ,   "C K handler's Id for subdevice
      H ̲OPID     ,   "- R handler's Id for operation
      OPID           ,  "C K caller's Id or operation
      BUF ̲SIZE       ,  "-R size of buffer in bytes
      PAGE ̲ADDR  ,   "-R physical page address of buffer
      BYTE ̲ADDR  ,   "-R byte address of buffer within
                     page
                     :  integer;

  END;…86…1…02… …02… …02… …02…  …02…   …02…   …02…   …02…  …02…         …02…       …02…           
                  
  TYPE INIT ̲OUTPUT ̲PARAM = "used when calling init
  ̲output
    RECORD
      SIZEOF     ,   "C K size of record -1
      H ̲SDID     ,   "C K handler's Id for subdevice
      H ̲OPID     ,   "C identifies he buffer at call
                        "R identifies this operation
                        at return
      OPID              "C K caller's Id for this operation
                        integer;
      POSITION          "C K terminal ̲position (e.g.
                        cursor address)
                        ions;
      BYTE ̲COUNT     "C K number of bytes to output
                 :   integer;
      PURGE          "C K purge flag
                     :  boolean;
      BUFFER ̲TYPE       "C K state of logical data
                        unit
                     :  buffer ̲types;

  END;


  TYPE ACK ̲OR ̲CANCEL ̲PARAM = "used when calling acknowledge
  ̲input and
    RECORD              "cancel ̲operation
      SIZEF      ,   "C K size of record -1
      H ̲SDID     ,   "C K handler's Id for subdevice
      H ̲OPID         "C K handler's Id for operation
                     :  integer;
      PURGE          "C K purge flag
                     :  boolean;

  END;


  TYPE ENABLE ̲STATUS ̲PARAM = "used when calling enable
  ̲statu ̲response
    RECORD
      SIZEOF     ,   "C K size of record -1
      H ̲SDID         "C K handler's Id for subdevice
                     :  integer;

  END;…86…1…02… …02… …02… …02…  …02…   …02…   …02…   …02…  …02…         …02…       …02…           
                  
  "Asynchronous response formats


  TYPE MESSAGE ̲TYPE =
    (OP ̲REPLY
    ,STATUS ̲MESSAGE
    );


  TYPE OPERATION ̲RESULT ̲TYPE = integer;

    "values:

  CONST
      OPERATION ̲OK = OK;
    OPERATION ̲CANCELLED = REQUEST ̲QUEUED;
      OPERATION ̲ABORTED = REQUEST ̲QUEUED;


  TYPE H ̲OP ̲REPLY ̲MESSAGE =
    RECORD
      RESPONSE:      MESSAGE ̲TYPE;        " = op ̲reply
      OPID,          "receiver's Id of operation
      H ̲OPID         "handler's Id for operation
                        : ineger;
      RESULT:           OPERATION ̲RESULT ̲TYPE;
      BYTE ̲COUNT,       "number of bytes transferred
      PAGE ̲ADDR,     "physical page address of buffer
      BYTE ̲ADDR:     "intra page byte ̲offset to buffer
                        integer;
      BUFFER ̲TYPE       "state of logical data unit
                     :buffer ̲types;

  END;


  TYPE DEVICE ̲STATUS =
    (SUBDEVICE ̲BREAK
    ,SUBDEVICE ̲OFFLINE
    ,DEVICE ̲FAILURE
    ,PROTOCOL ̲EVENT
    ,USER ̲RESPONSE
    ,SD ̲FAILORE
    ,SD ̲OTHER ̲STATUS
    );


  TYPE H ̲STATUS ̲MESSGE =
    RECORD
      RESPONSE:      MESSAGE ̲TYPE; " = status ̲message
      H ̲SDID,           "handler's Id for subdevice
      SDID:          "receiver's Id for subdevice
                        integer;
      STATUS:           device ̲status;
      INFO ̲SIZE:     "size of info field following
                        integer;                                       INFO:   "additional
                                                                               info
                                                                               (max
                                                                               14
                                                                               words)
                        variable ̲size ̲data;

  END;…86…1…02… …02… …02… …02…  …02…   …02…   …02…   …02…  …02…         …02…       …02…           
                  
4.1.4.3      I̲O̲C̲ ̲H̲A̲N̲D̲L̲E̲R̲ ̲D̲A̲T̲A̲


  PRIORITY ̲TYPE = INTEGER

  CONTROLLER ̲PRIORITY = 0



  USER ̲PRIORITY = 3

  SUBDEVICE ̲PRIORITY = USER ̲PRIORITY



  TYPE IO ̲QEL = RECORD


         LINK:POINTER

         PRIORITY:   PRIORITY ̲TYPE

         QUEUE: POINTER

         REQUESTOR: (NONE, USER, SUBDEVICE,
                     CONTROLLER, PROTOCOL)

         REQ ̲RECORD: POINTER

         REQ ̲REF:    INTEGER

         ADDI:       INTEGER




      END;…86…1…02… …02… …02… …02…  …02…   …02…   …02…   …02…  …02…         …02…       …02…       
                          
  CONST          BUFFER ̲TYPE ̲OFFSET = 0
                 LDU ̲OFFSET = 1
                 SPLIT ̲ADDR ̲OFFSET = 2
                 CONTROL ̲REQUESTS ̲OFFSET = 1
                 CANCEL ̲INPUT ̲LDU ̲OFFSET = 2
                 CANCEL ̲OUTPUT ̲LDU ̲OFSET = 2

                 INPUT ̲REQ ̲BYTE ̲LENGTH ̲OFFSET = 3
                 INPUT ̲REQ ̲LDU ̲OFFSET = 2
                 INPUT ̲REQ ̲DATA ̲OFFSET = 4
                 STATUS ̲TYPE ̲OFFSET = 1
                 RECEPTION ̲STATUS ̲LDU ̲OFFSET = 2
                 TRANSMISSION ̲STATUS ̲LDU ̲OFFSET = 2
                 TRANSMISSION ̲STATUS ̲COE ̲OFFSET = 3
                 CONTROL ̲PRIORITY = 0
                 DATA ̲PRIORITY = 1

                 LDU ̲DATA ̲OFFSET = 1
                 START ̲LDU ̲DATA ̲OFFSET = 2
                 CONTROL ̲REQUEST = Entire LDU with
                 control set
                 LDU ̲HEAD ̲OFFSET = 1

                 PROTOCOL ̲COMMAND ̲DATA ̲OFFSET = 2
                 POTOCOL ̲STATUS ̲DATA ̲OFFSET = 2

  SUBDEV ̲INIT ̲DATA = RECORD

      PRIORITY: PRIORITY ̲TYPE


  Other data is dependent of the protocol.…86…1…02… …02… …02… …02…  …02…  
  …02…   …02…   …02…  …02…         …02…       …02…                        
     
  CONST INTERRUPT ̲TYPE ̲OFFSET = 2

         INT ̲ERROR ̲CODE ̲OFFSET = 3




    REPORT ̲PRIORITY = (PROTOCOL ̲FAILORE ̲PRI,
                        EXT ̲D ̲FAILORE ̲PRI,
                        EXT ̲D ̲STATUS ̲PRI,
                        MI ̲PRI)…86…1…02… …02… …02… …02…  …02…   …02…   …02…   …02…  …02…  
                              …02…       …02…             
                                      
  TYPE SD ̲OTHER ̲STATUS ̲REC = RECORD

                 ACTION ̲TYPE: (DEVICE ̲ACTION, USER
                 ̲ACTION,
                                          DEVICE ̲RESPONSE)

                 ACTION ̲SUBTYPE: INTEGER

                                          END


  DEVICE ̲ACTION ̲YPE = (PAPER ̲OK, PAPER ̲OUT,
                                          AUDIO ̲ALARM


  USER ̲ACTION ̲TYPE = (KEY ̲OFF, KEY ̲ON,
                        SYSTEM ̲KEY


  DEVICE ̲RESPONSE ̲TYPE = INTEGER…86…1…02… …02… …02… …02…  …02…   …02…   …02…   …02…  …02… 
         …02…       …02…                            
  TYPE   NICS-TARE ̲FAILORE = (DF,NT ̲LINK ̲FAIL, NT ̲EDC
         ̲FAIL)

         NICS ̲TARE ̲OTHER ̲STATUS = (DS, NT ̲MAN ̲SYNC,
         NT ̲INC ̲RESET)


  TYPE   CCIS ̲SCARS ̲FAILORE (DCS, CS ̲RX ̲DISC, LS ̲RX
         ̲DISC

         CCIS ̲SCARS ̲OTHER ̲STATUS = (DCSO, CS ̲RX ̲CONN)…86…1…02…
         …02… …02… …02…  …02…   …02…   …02…   …02…  …02…         …02…       …02…          
                          
  CS ̲COMMAND =       (CSDO, CS ̲REOPEN, CS ̲SET ̲UP ̲LINK,
                     CS ̲DISC ̲LINK, CS ̲SET ̲UP ̲LINES,
                     CS ̲DISC ̲LINES, CS ̲SET ̲V24,
                     CSD7, CSD8, CSD9, CSD10, CSD11,
                     CSD12,
                     SD13, CSD14, CSD15, CSD16, CS
                     ̲READ ̲V24,
                     CS ̲STATISTIC)


  CS ̲COMMAND ̲ERROR = (OK, CS ̲LEV2 ̲NOT ̲DISCONN, CS ̲LEV2
  ̲NOT ̲CONN,
                                  CS ̲PARAM ̲ERROR)



  PROT ̲COMMAND = (PCD, PC ̲ENABLE, PC ̲OPEN ̲PROTOCOL,
  PC ̲CLOSE ̲PROTOCOL,
                     PC ̲REDEFINE ̲PARAS, PC ̲STATISTICS,
                     PC ̲STATUS,
                     PC ̲DEVICE ̲STATUS)…86…1…02… …02… …02… …02…  …02…   …02…   …02…
                       …02…  …02…         …02…       …02…         
                                       
  SDID ̲RECORD = RECORD

  SDID: SDID "see DAMOS"

      PARENT ̲SDID: SDID

      OPENER: USER ̲ID
      STATUS: (DISABLED, ENABLED)
      STATUS ̲SE: OBJECT ̲DESCRIPTOR
      REPLY: H ̲OP ̲REPLY ̲MSSAGE
      STATUS ̲REPORT: H ̲STATUS ̲MESSAGE
      REPORT ̲PRIORITY: INTEGER

  "Inputter data"

      INPUTTER:  INPUTTER ̲DATA

  "Outputter data"

      OUTPUTTER: OUTPUTTER ̲DATA

  "User data"

         USER:       USER ̲DATA
                     Only high level protocols

  "Controller Dta"
         CONTROLLER: CONTROLLER ̲DATA
                        Only when Controller present

  "Subdevice data

         SUBDEVICE ̲IF:  SUBDEVICE ̲INTERFACE ̲DATA

  "Protocol data"

         PROTOCOL:      Protocol dependent



  END…86…1…02… …02… …02… …02…  …02…   …02…   …02…   …02…  …02…         …02…       …02…            
                 

                                  TYPE PROTOCOL ̲ERR
                                  =       (DUMMY,
                                          SPI ̲ENTRY
                                          ̲1, SPI ̲ENTRY
                                          ̲6,
                                          INPUTTER
                                          ̲3 ̲4,
                                          INPUTTER
                                          ̲3 ̲5, INPUTTER
                                          ̲37
                                          INPUTTER
                                          ̲5 ̲1, INPUTTER
                                          ̲6 ̲1
                                          INPUTTER
                                          ̲6 ̲2, INPUTTER
                                          ̲7 ̲1
                                          INPUTTER
                                          ̲7 ̲2 ̲A,INPUTTER
                                          ̲7 ̲2 ̲B,
                                          OUTPUTTER
                                          ̲3 ̲3 ̲A,
                                          OUTPUTTER
                                          ̲3 ̲3 ̲B,
                                          OUTPUTTER
                                          ̲4 ̲1, OUTPUTTER
                                          ̲5 ̲2,
                                          OUTPUTTER
                                          ̲5 ̲3, OUTPUTTER
                                          ̲6 ̲1
                                          OUTPUTTER
                                          ̲6 ̲6, USER
                                          ̲IF ̲2 ̲4,
                                          CONTROLLER
                                          ̲2 ̲4,CONTROLER
                                          ̲2 ̲5
                                          CONTROLLER
                                          ̲2 ̲6,CONTROLLER
                                          ̲2 ̲7
                                          CONTROLLER
                                          ̲3 ̲3,CONTROLLER
                                          ̲3 ̲10,
                                          CONTROLLER
                                          ̲3 ̲16,CONTROLLER
                                          ̲4 ̲1
                                          CONTROLLER
                                          ̲4 ̲2, CONTROLLER
                                          ̲4 ̲4,
                                          SUBDEVICE
                                          ̲2 ̲7, SUBDEVICE
                                          ̲2 ̲11,
                                          SUBDEVICE
                                          ̲8 ̲1, PROT
                                          ̲CONT ̲2 ̲2,
                                          PROT ̲CONT
                                          ̲2 ̲3, PROT
                                          ̲CONT ̲3 ̲3
                                          PROT ̲CONT
                                          ̲ ̲3)…86…1    
                                              …02…   …02… 
                                           …02…   …02…    
                                                  
                                                …02…  
                                                  
                                                  
                                           
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 is the electrical
                                  interface for devices
                                  and lines, where
                                  IOC in fact iplements
                                  the CAMPS external
                                  interface to devices/lines.

                                  Interface descriptions
                                  are:

                                  CAMPS ICDs ICD/004
                                  through 8.…86…1     
                                     …02…   …02…   …02…   …02…    
                                                 …02… 
                                                  
                                     
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
                                          nterfaces.

                                  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̲



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 th
         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,
                    VOLUMEAME: 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̲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 fil 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
         anymor.

         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̲ ̲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):
                                             ERROROK

         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 he 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, I ̲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̲r̲s̲

         R4      CONID
         R7      CC…86…1         …02…   …02…   …02…   …02…        …02…             
                   …02…                 
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 desriptor 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 theuser 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 have
             2)  the intersection of the "offered" and the rigts
                 the rights the "offerer" have.

         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̲

         3       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̲

         T̲e̲r̲m̲i̲n̲a̲l̲s̲

         The ENTER function for TMS only works, when TMS is
         in control of connection selection.

         NB:  Subject for revision.

         F̲i̲l̲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 ̲ENTE, 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 accessby 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      FILDECR ̲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̲ ̲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 (FIEDECR ̲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 names of the file has now been removed from
         all SFDs in which it has been etered, 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, SSCALL, 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̲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      FILEDCR ̲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 right 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 handlr 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 FILAD.

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

         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,
         wit the contents of the buffer specified.

         If (some of) the bytes in the byte sequence is 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 ̲BYT)
         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, R, 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.16 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 rigts 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 theterminal 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 cain.

         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.6.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 ogical 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 Byt 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. I 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
             charaters). 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/of
             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 ofthe buffer is presented in figure
         4.1.7.2.2-1.










Figure 4.1.7.2.2-1…86…1         …02…   …02…   …02…   …02…                                    
       
         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 utgoing 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.22.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 a error code will be returned.

         The MSTP interface accepts types 0, 1, 4.…86…1        
         …02…   …02…   …02…   …02…                                         
          











figure 4.1.7.2.2.1-1…86…1         …02…   …02…   …02…   …02…                                   
        
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 n 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 hs 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 a 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 mmediate recording of already received
         characters into a type 0 and collection of control
         characters in type 4. 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 charactes
         (1 or more) are received, record type 4 is terminated
         and a type 0 or 1 started.

         If any character has been received and there is a break
         of 30 seconds (configurable), the application IO is
         terminated.

         If no application IO request is present, haracters
         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 retuned 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 PP/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 coe 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 ben 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 n 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. ontrol 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 mesage 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.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 specifie.







        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 decodig 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
         ofsequence, 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. Te 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,
         theapplication 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 Definitios, 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 lne 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)  Smilar 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 log 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 empt.…86…1         …02…   …02…   …02…   …02…        …02…         
                   …02…                 
4.1.7.2.3.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: SPLITSTYPE,
                          FILEDECR ̲DIR: FDCB ̲INDEX,
                          FILENAME: FILE ̲NAME)
                         (CC: COMPLETION ̲CODE):
                          ERROR ̲OK

         b1) MON (SCM, SYSCALL, FH ̲INIT ̲FORMAT: R6, R1, R7,
             4, 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 ftal.…86…1         …02…   …02…   …02…   …02…        …02…   
                     …02…                 
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 reserve, 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
                 ia 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 acual 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: INTEER)
                                     (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̲ ̲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…86…1         …02…   …02…   …02…   …02…        …02…   
                     …02…                 
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 fr 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, F ̲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…86…1         …02…   …02…   …02…   …02…        …02…   
                     …02…                        
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: COMPLETIONCOPE):
                                      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                            (K)

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

         All errors fatal…86…1         …02…   …02…   …02…   …02…               
                                    
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 defind
         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
                     VD 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, F ̲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 numer
                     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̲ ̲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,                                                 
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           NUMBEROF
                                                                           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,R,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…86…1         …02…   …02…   …02…
           …02…        …02…                …02…                 
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 numer
                     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 ofInsert 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,
                           LNE ̲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,R2R3,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 base 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 Buffe
         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 lis 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).…86…1         …02…   …02…   …02…   …02…                  
                                 



        Fig. 4.1.7.2.3-1 Field Transfer Interface






            Fig. 4.1.7.2.3-2 Field List Layout








Figure 4.1.7.2.3-3  BUFFER LAYOUT…86…1         …02…   …02…   …02…   …02…                            
               
             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̲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, R,
                                             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̲ ̲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.…86…1         …02…   …02…
           …02…   …02…                                             
            
4.1.7.2.3.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 filld, 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,
                                                                           5,
                                                                           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 bove fatal.
         
         The number of fields indicates the length of the field
         list for both output and input.…86…1         …02…   …02…   …02…   …02…
               …02…                 …02…                       
4.1.7.2.3.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 ttributes are obtained
         by summing the numeric values:

             Strike Through     
             Non Display        
             Half Intensity     
             Reverse Video      
             Dotted Underline   
             Blink             

             Input:  Interface # (IFCB index)
                     Line Number
                     ncarnation 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                                                             Pointerto
                                                                        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.