Also, the examples/exkeys.c is horribly broken! It uses the
keyboard_lowlevel_callback function callback, the documentation for
which
explicitly says:
"This routine executes in an interrupt context"
Now I know that we don't use interrupts any more in "modern" ports,
but it
can be expected that some ports use a different thread for keyboard
handling, which means that the same rules apply as for interrupts.
Namely,
do as little as possible and don't call Allegro functions for
drawing to
the screen! I spent quite a time tracking down the "bug" in my
graphics
routines, to finally realise that it was exkeys.c, not me.