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 function
Description
61
Receive character from serial line
62
Send character over serial line
63
Get state of serial line
64
Activate RSX
65
Deactivate RSX
66
Request state of RSX
67
Turn XON or or off
Finally I decided to use the internal interrupt driver of the OS.
Look here for the experimental stage source file.