
Contents | Parent Topic | Previous Topic | Next Topic
A. Bugs and Changes
There are still a few bugs ("bug" is such an ugly word, these are not all bugs, but things that still have to be implemented) in SCAM.
The SCAM Perl Front-end has its own bugs and they are mentioned there.
- The T=1 protocol layer needs a bit of redesign and a complete implementation. It is not possible to send chained blocks and S-blocks are not implemented. The error detection and correction also needs to be implemented. But what we have now is adequate to hobby with.
- We need a T=0 reader as well. Note that the T=0 protocol may not be fully implementable on dumb readers: unless the serial device takes care of it, together with the reader's circuit, requesting a character to be repeated cannot be implemented in software, because it is too slow.
- There needs to be code to parse an ATR and get all the communication parameters from it. There is code in stest that does this well enough, but not perfect.
- The driver for the uniprog reader has not been tested.
- All the reader preferences are still hard-coded in config.h. Having an rc or .ini file would be more user-friendly.
- It is not possible to talk to more than one reader simultaneously, unless you start the program more than once.
- Some of the code can still be optimized (using const etc.)
- The Dr Chip driver can still act funny at 19200 baud. Switching to 9600 baud and then back to 19200 will often solve this problem.
- If you use SIO, and your "dumb" reader uses the DCD line for card detect, you can not use the card detect function.
- It was impossible to use quoted talk mode. Now it is.
- The readers did not give an error if no card is present. Now they do, unless SIO is used.
- The software readers did not share certain code, such as the mechanisms to select a physical reader.
- To add a reader you needed to change the code in many places. With the new construction only readernames.h has to be edited to add a reader, and of course config.h (for the default values) and scam_intrptr.cc (for the help functions).
- There were some obsolete functions which I forgot to clean up.
- The serial device worked with termios.h only. This is fixed by making an interface class that uses SIO, but this required some changes in the Makefile. SCAM can now be compiled with -D__USE_SIO__, which can be specified in the Makefile.
- An implementation of another "dumb" reader would use a lot of the same code as the dumbmouse reader. Now all "dumb" readers share code, making it easier to implement a new "dumb" reader.
- Other "dumb" readers are now supported, too: Dr Chip and Uniprog. The Smart Mouse driver is under development.
- The Makefile started to get a bit messy.
- The documentation was hand-written in HTML, now SDF is used.
- The parity command without arguments for the dumb readers returned a number instead of a character. This "real" bug has been fixed.
- The drchip reader had not been tested. It is tested and should work now.
- The t1 reader lacked reader specific commands. Now it has them.
- The t1 reader and the "dumb" readers can now set the parity automagically, depending on the convention.
- Adding a new reader still required updating scam_interpreter.cc. This was not be necessary, but I had to change the readernames.h file a bit.
Contents | Parent Topic | Previous Topic | Next Topic