[comp.sys.transputer] Help: Error Pin on T800 Transputer

jiang@cs.ubc.ca (Jie C. Jiang) (12/15/89)

I am thinking about using the Error Pin on the Inmos T800 transputer to
generate external events from a program(e.g., connecting the error pin
of one transputer to the event pin of another). But I am not sure if it 
is a good idea to do that. In Colin Plumb's Transputer instruction set 
docu., it says that the error flag will never be set by a correct program 
and the error flag can be ignored if the hardware is agreeable. Does it 
mean that normal SIGNED arithmetic will not set the error flag? How to 
make the hardware "agreeable" if it isn't? I would much appreciate any
suggestion from those who have experience and expert knowledge in using
either the event pin or error pin of the transputer. I badly need your
help.

--------------------------------------------------------------------------------
Jie C. Jiang (Mr.)             | E-mail:
Department of Computer Science |   <jiang@cs.ubc.ca>(Internet)
University of British Columbia |   <ubc-vision!grads.cs.ubc.ca!jiang.uucp>(UUCP)
Vancouver, B.C.  V6T 1W5       | Tel:
Canada                         |   (604)224-5699
--------------------------------------------------------------------------------

ccplumb@rose.waterloo.edu (Colin Plumb) (12/19/89)

I'm rather down on the error flag, but you can certainly connect it to
another transputer's event input pin.  Inmos describe that
configuration in some of their literature.

When I said that the error flag can be ignored "if the hardware is
agreeable," I meant if the error pin isn't connected to anything
important or non-maskable.  You seem to be considering making
"disagreeable" :-) hardware.  This is still possible, just requires
more careful code generation, since the error is one more output of an
instruction that you have to be concerned about.  Most of the normal
arithmetic operations set the error flag on signed overflow, so while
they can be used for unsigned arithmetic, the error flag will quickly
get set.  You have to use sum (or bsub) instead of add, diff instead of
sub, etc. if you want to use unsigned arithmetic.

Urg... that's not particularly clear.  Unfortunetely, I'll last read
mail and news tomorrow (Tue, 19 Dec) morning before going home for
Christmas and New Year's.  So if I've confused you, write quickly or be
patient!

One note about the event input pin: being edge-sensitive, many
commercial interrupt controllers will trigger it multiple times, as
their outputs are designed for level-sensitive processors and not
particularly clean.  The Am9519A, in particular, has *big* glitches on
its ourput, much longer than the documented 100ns.
-- 
	-Colin