Depending upon the characteristics
of
the
device,
command
chaining
may also be used to perform different operations
on
either
different but consecutive records or upon the same
record (e.
g.,
a magnetic tape unit may be programmed to
alternately
read or write consecutive records
or
to read the
same record backwards
after
writing). Refer to an
appro-
priate Xerox peripheral equipment reference manual for
further
detai
Is.
If
command chaining
is
specified, the device controller
causes the
lOP
to fetch
the
next operational
lOCO,
as
de-
scribed under "Fetching Phase
ll
, when the
device
signals
"channel end"
{signifying
that
it
is
ready to
accept
and
execute
another order}.
In
the process of fetching the next
operational lOCO, the lOP may fetch and execute a
con-
trol lOCO containing a Transfer in Channel command
with-
out
affecting the continuity
of
the
I/O
operation
{i.
e.
,
transparent to the
device
controller/device}; however, the
fetching
of
the next operational lOCO is not transparent
to the
device
controller/device.
The
process of
automat-
ically
fetching the next operational lOCO because
data
chaining
and/or
command chaining is specified in the
cur-
rent
lOCO permits an
I/O
operation to continue normally
unti I an lOCO
is
executed in which both chaining flags
are
coded as zeros (the last lOCO
of
the last record).
If
data
chaining and command chaining are both specified
within an
lOCO,
data
chaining is performed
if
the byte
count
of
the current lOCO
is
reduced to zero before the
device
generates "channel end"; command chaining
is
per-
formed
if
the
device
generates "channel end" before the
byte count
is
reduced to zero.
During the execution phase, an
I/O
interrupt
may
also be
requested
each
time a "channel end
ll
occurs
if
the Interrupt
at
Channel
End
(ICE)
flag
is
coded as a
1.
Thus,
if
com-
mand chaining
is
specified, the lOP
may
request an
I/O
interrupt without interfering with the process
of
fetching
the
next
operational lOCO.
TERMINATION
P~ASE
An
I/O
operation maybe terminated in one
of
the following
manners:
1.
Aborted
at
any time because the
BP
executed
either
an HIO or
RIO
instruction.
2. Aborted when an unconditional "unusual end
ll
condition
was
detected.
3. Aborted when a conditional "unusual end" condition
was
detected
whi
Ie
the
HTE
control flag was coded
os c
1.
4.
Completed as specified by the command list but with
an
"unusual end" condition.
134
I/O
Operation Phases
5.
Completed as specified by the command list.
6. Aborted whenever a
SUPER
RESET,
SYSTEM
RESET,
or
I/O
RESET
command
is
entered
from
the System
Con-
trol Console (SCC).
The
progress
of
an
1/0
operation, including the termination,
may be ascertained by evaluating
the status information
returned for
I/O
instructions, as described in Chapter
3.
Depending upon programming considerations, these
I/O
instructions
may
be executed
either
singly or as part
of
an
I/O
handling routine and
either
imperatively
at
logical
poi nts of a BP-executed program
or
on
a,n
II
as needed
ll
basis when an
I/O
interrupt
is
requested by an lOP or
de-
vice controller. Normally, an
I/O
interrupt
is
requested
whenever a
critical
or significant
event
occurs within any
I/o
subchannel,
device
controller, or device. Typically,
an
I/O
interrupt may be requested when the byte count
of
any lOCO
is
reduced to zero, whenever any
device
detects
a "channel end" condition, or when the
lOP
or
any
device
controller detects an "unusual end" condition, providing
the appropriate control
flag {IZC, ICE, and
IUE}
is
coded
as a
1.
Note:
An
I/O
interrupt
may
also be requested
by
certain
devices, e.
g.,
a magnetic tape unit
may
be able
to execute a
Rewi
nd
and Interrupt order and other
devices may request an
I/O
interrupt when
execut-
ing a Stop order in which
bit
0
is
coded as a
1.
Refer
to
an appropriate Xerox peripheral reference
manual for further detai
Is.
Once
an
I/O
interrupt request has been made
by
a
device,
that
device,
device
controller, and
I/O
subchannel remain
in an interrupt pending condition unti
I the interrupt request
is acknowledged, reset, or
cleared.
Normally, an
I/O
interrupt request
is
acknowledged by
the
BP
executing
an
AIO instruction, as part of an
I/O
interrupt-handli
ng
routine; reset
by
the
BP
executing
either
an HIO or an
RIO
instruction; or for certain devices
cleared
automatically, as a function
of
time. Refer to an
appro-
priate Xerox periphera! equipment reference manuel
fCi
further detai
Is.
)
Since a multiple number of
I/O
interrupt requests may
pre-
vail simultaneously
{one
per
each
device
controller} and
all
requests are serviced
by
a common
I/O
interrupt level
(location X
'
5C'),
the
BP
normally acknowledges
an
I/O
interrupt request based on the priority
that
prevai
Is
within
the
interrupt system, the lOPs, and the
I/O
subchannels
within an MIOP, if
applicable.
An
interrupt pending
con-
dition prevents a new
I/O
operation
from
being
initiated
by
an
SIO instruction on a particular subchannel but does
not
affect
the current
I/O
operation. (That is, if an
I/O
intellupt was requested as the resuit of a
zero
byte count
or
"channel end" condition, and datt" chaining
or
command
chaining
is
specified,
the
I/O
operation
may
continue as
specified
by
the command list.)