Path: utzoo!utgpu!watserv1!watdragon!lion!ccplumb From: ccplumb@lion.waterloo.edu (Colin Plumb) Newsgroups: comp.sys.transputer Subject: Re: undocumented instruction testhardchan Message-ID: <21946@watdragon.waterloo.edu> Date: 13 Mar 90 21:30:30 GMT References: <1812@ifi.informatik.uni-stuttgart.de> <18835@cs.yale.edu> Sender: daemon@watdragon.waterloo.edu Reply-To: ccplumb@lion.waterloo.edu (Colin Plumb) Organization: U. of Waterloo, Ontario Lines: 30 In article <18835@cs.yale.edu> zenith-steven@CS.YALE.EDU (Steven Ericsson Zenith) writes: > Ok, this is out of memory, but I'm sure someone will correct me if I'm > wrong (Colin Plumb maybe). I can but try... but you're right, as far as I can tell. I don't recall the order in which the registers are connected, but there are three registers holding buffered data, a pointer to the current location in the message buffer in memory, and a count of the number of bytes to go on this message. On output channels, this count is always >1. On input channels, it can be -1 if a byte has arrived but no ack has been sent because no local input has been attempted. With four testhardchan instructions, you can read out and restore the complete state of a channel... but if a byte arrives while you're doing it, you're in trouble! It's useful when the network is quiescent to see what was going on, but can't be used on an active channel. I've never found a use for it. At Cogent I was thinking of putting a context save (all the low memory locations, on-chip registers, and whatnot) into the bootup ROM, but I don't think it's ever happened. And, yes, #1ff (pfix 1, pfix f, opr f) is cold boot. Asserting the reset line and executing this instruction are synonomous. (For a *really* obscure feature, opr 9ff; adc 0 clears the timer interruot enable flags - but won't work on the T810.) -- -Colin