What a great idea is this.
I had a Teensy 2.0 laying arround for months waiting for some project and then I stumbled across this project on github and here on atari age
when searching the internet for USB to XT keyboard converters.
So for the past weeks I was busy every evening in creating an USB TI-keyboard to be used on the PC with TI emulators.
I used the Teensy 2.0 for this task.
I had some problems with the combination of shift, control and function keys and any other key. But then I realized that the real TI99 must
be using open collector outputs for driving the keyboard matrix. I solved this by setting all outputs on the Teensy 2.0 as input and only
set one pin at a time as output. This solved my problem. I haven't checked yet if it is possible to set an output as open drain, because
that is what I really want.
Next I bought a Teensy 3.1 with a Sparkfun Arduino shield adapter and a Sparkfun USB host and created a USB to XT keyboard converter.
I'm using a wireless Microsoft keyboard and this works great with my Geneve.
I took a quick look at your code for this project just to get me started but created my own conversion programs for both the Teensy 2.0
(TI matrixc keybord) and Teensy 3.1 (Geneve keyboard) because it is just to much fun working with these things.
For the Geneve keyboard converter I added some extra functionality by using the left and right GUI (windows) keys:
Left GUI + Right GUI + m sets the keyboard in Mdos mode
Left GUI + Right GUI + b sets the keyboard in (Extanded) Basic mode
Now when typing some command and if you can't remember what it was exactly you can use one of the GUI keys together
with the first character of the command to get some hints. Using one of the GUI keys together with up/down arrow keys
enables you to browse through all commands starting with that same character while using the left/right arrow keys enables
you to browse through all alternatives of the same command (if any).
Also when the keyboard is in Mdos or Basic mode the TAB key can be used for command completion, Thus for example
when in Basic mode and typing in "CH" and hitting the TAB key the characters "AR(" are added making "CHAR(". Pressing
TAB again "AR(" is removed and replaced by "ARPAT(" making "CHARPAT(", etc.
Al this will also be available soon at my website www.ti99-geek.nl
Thanks again for this great idea.