A further point to note ...<code><pre><font size=2 face='Courier'> #picaxe18x
SerIn 0,N2400,("ABC"
,b0 </font></pre></code> is not the same as...<code><pre><font size=2 face='Courier'> #picaxe28x1
Self : Serin [65535,Self], ("ABC"
,b0 </font></pre></code> In the first case the code works even if the b0 data arrives an hour after "ABC", in the second case, b0 must be sent within 65 seconds of "ABC". It's similar if any single SerIn command is reading mutliple data bytes which may have long time periods between them ...<code><pre><font size=2 face='Courier'> #picaxe18X
SerIn 0,N2400,b0,b1
#picaxe28x1
Self : SerIn [65535,Self],0,N2400,b0,b1 </font></pre></code> If one sent "0, wait an hour, 1, 2, wait an hour, 3, 4 etc" the PICAXE-18X would return b0/b1 pairs of "0/1", "2/3", the 28X1, pairs of "1/2", "3/4".
For operational compatibility across the entire PICAXE range, the compiler cannot simply fake a missing timeout to be 65 seconds with a jump to the same SerIn. The firmware really has to do absolutely nothing except keep waiting when no timeout is specified.
Edited by - hippy on 13/08/2007 13:32:22