I like it!Pr0f wrote:The propeller has several timers on board plus access to the cpu clock timer. Also useful is a wait on I/O port which could be used to trap for the start of a sequence on the networkI believe the Inteface 1 used something similar. So with the timing routines it should be possible to read the QL network quite accurately. I could dedicate a cog to just reading the network and stuffing a buffer in the shared memory for other cogs to process.
Yes, the Interface-1 ULA can be set to activate the 'HALT' line to the Spectrum's Z80 until it sees the next START bit of the next byte-frame. Its a completely blocking activity and only initiated once something like a SCOUT has been seen on the wire... (BTW - there's a bug I found in the Interface-1 ROM that messes with packet reception in certain circumstances - once I get around to replacing the 2364 mask-ROM with an EPROM on my Int-1, I'll test the correction.)
It wouldn't have worked well in the ULA of a multi-tasking machine like the QL, which leverages instead the IOSS Retry mechanism (very) successfully to 'catch' the next packet SCOUT and then defers to software time-out loops waiting for each successive START bit.
If a buffer could be employed and a dedicated, 'NET protocol-aware' Cog programmed to do the business in the background, this would be a very neat solution - much like the design of my (almost complete) QLUB adapter (QLan to USB-Bridge).
Watching with interest...