odyssea4 - 2010-05-05


First of all, thank you making the effort to produce an excellent Open Source Spectrum emulator. 

I've tried v0.10.0.2 of Fuse (compiled with GTK UI) on both Ubuntu 7.10 and 9.10 and it runs very well.  However, in experimenting with reading and writing files using the Interface I RS-232 port emulation I have encountered a couple of anomalies:

Firstly, when I write data via a "b"-formatted stream through the emulated RS-232 port to a file, there are spurious asterisks appearing the output, specifically in some  printer escape codes.  I would have expected the data sent by the Z80 program to be identical to that written to the output file. 

Secondly, when reading "b" formatted data in from a file, any byte set to 0x00 seems to be interpreted as escape character causing both it and the byte following to be omitted from the data received by the Z80 program.  Again, I would expect the bytes received to exactly reflect those in the input file without any intermediate interpretation.

Taking a quick look at the source code suggests that both of the behaviours I'm seeing are due to lines intentionally included to treat bytes set to 0x00 as special cases and transform them accordingly.  Bearing this in mind, is the Interface I RS-232 emulation intended to support "b" formatted data I/O and, if not, are there any plans to incorporate it in a later release? 

Also, as a quick proof concept, I'm prepared  to comment out the special cases in the source code and recompile to see if it fixes the problem, but what other functionality of the Interface I emulation will break as a consequence?

Best regards,