Already on my mind along with keyboard support, but I/O hardware interface is not my area of expertise, so no promises in the short term.
DC
Further to that, just adding the clock turned out to be an interesting experience. Mostly because Windows handles time a little differently. I also wanted millisecond precision instead of stopping at whole seconds, so the implementation needed a small platform split. See, computers don't really “know” what time it is, because again, computers don't "know" anything. The system keeps track of time as a count from a fixed starting point called an epoch, then converts that count into years, months, days, hours, and so on.
Most systems use Unix time, which counts from:
1970-01-01 00:00:00 UTC
Traditional APIs return whole seconds, while higher-precision APIs also provide a fractional part - ex. milliseconds. Windows uses a different native format called FILETIME. It stores the number of 100-nanosecond intervals since:
1601-01-01 00:00:00 UTC
Why 1601? Because Windows.
That means OpenBOR has to convert Windows time into the same Unix-based value used by everything else. Once that conversion is done, the rest of the API can behave the same everywhere.
Then there are time zones to consider, so I provided a switch between local time and UTC. UTC refers to Coordinated Universal Time - the internationally agreed standard used as a common reference worldwide, independent of local time zones and daylight-saving changes.
IOW, that little clock on the wall represents a page full of code I pulled my hair out over, so you better appreciate it.
DC