Cool. I like seeing how people bend the tools I provide.
For unpublished code, I linked the math lib with:
tccmake myprog -lm
but you could do -lm-2.5 instead.
The nice thing about tccmake is that it works on the K5 by binding a naughty library loader script in /usr/lib, where your "tcc" command in the code comments would fail.
Also, beware that this older setpx() will draw inverted colors on a K4 when booted from main, so I would draw a white outline around the black hands, to make them visible in case they were inverted to white hands with black outline. Or... update to the gmlib() code in the newest demos.
Thanks for doing stuff with my code -- it makes it feel a lot less like an unappreciated waste of time when I invest so much time and effort to provide a learning opportunity and tools for others at no charge, and then to see so few downloads of my files. Oh well... Just thanks.
And instead of the sleep(1), which can be up to half a second off, I would use usleep(1000000), which is more accurate, but sleep calls can drift. After a sleep for ALMOST the time you want, you should synchronize to the REAL time provided by the getmsec() function (later in your code). This is how video games keep accurate framerates (sleep almost enough, then busy-wait for accurate clock tick).