by geenbert » Fri Mar 23, 2012 12:00 am
You wrote yourself that the software from the course works on multiple PC's except one single desktop. From that you somehow conclude that the software must be wrong. So you change it, and now it sends the wrong data, so you conclude that Compaq doesn't understand ASCII.
The software is of course correct (hundreds of students have used this already). The sources on the course CD were copied directly from a working computer, so they are guaranteed to work.
The usloop does have a value: movlw 255 followed by movwf _wait, which is duly decremented after one microsecond using decfsz _wait,1. And even if your PC is fast enough and doesn't need a delay, it will still work with one.
Your experiment show that there is a problem with your Compaq PC's serial port (driver) which has nothing to do with the course software or the course hardware or Compaq's understanding of ASCII.
Many PC's don't power down completely if you switch them off, preventing the driver from reloading. Switch off your PC and make sure it powers down completely by pulling the plug from the wall outlet (don't trust the switch, actually remove the plug). Wait a minute or two and then put the plug back in and start the PC back up. This will force the operating system to reload all drivers. Perhaps this will solve your problem.
If not your cable may have a bad connection, possibly ground, assuming you use this cable exclusively for your Compaq and not for your other computers.