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.