Interrupt for the Serial Interface

As is generally known CP/M is a polling system, looking for the state of I/O devices by program. This so called „polling" cannot prevent from characters being lost during keyboard pressing, for example. The Amstrad OS has in fact the possibility to handle interrupts but only for keeping one character at a time; previously not requested characters will be lost. When I started to experiment in data communication — especially with Kermit — I wanted to avoid losing characters on the serial line. Therefore I wrote an own interrupt driver based upon a RSX. I also defined some special new BDOS functions driving the serial line.

Extended BDOS functions
New BDOS functionDescription
61Receive character from serial line
62Send character over serial line
63Get state of serial line
64Activate RSX
65Deactivate RSX
66Request state of RSX
67Turn XON or or off

Finally I decided to use the internal interrupt driver of the OS.

Look here for the experimental stage source file.