A few suggestions for improvement on the RS-232 stuff, etc:
1. Better support for more baud rates. "Too slow" is a problem.
2. It would be nice if you could define the out logic differently than the "in" logic in respect to positive or negative. I recently worked on a cost-sensitive project where I used a resistor+zener for the RS-232 IN and a transistor for the OUT, requiring different IN and OUT logic (TRUE/FALSE). I worked around this by editing the snb's to sb's in the assembler. This sort of thing happens all the time.
3. A getch like function that would return if no character was returned in some number of microseconds. This would be fairly easy to do.
4. General cleanup of internal code. Typo's in the source can cause hard to find, line number free internal errors.
With some improvement, this compiler is not far away from being of great, not very good, quality!