Hi,

> 
> To fake shifts, one can just modify the flags at 40:17 and 18.
> It will not update the keyboard LEDs, but that is acceptable.
> The BIOS itself uses 40:96 and 97 to track its own status.
> 

It has been a very long time. But, if I recall correctly, I’m fairly sure you 
can programmatically change the LEDs as well. But, I don’t recall the details. 
But, I might have code sitting around somewhere that has that functionality. 

However excluding CAPS LOCK LED, I don’t think I’ve had a keyboard with the 
other LEDs for a very long time.  No real way for me to test that at present.

> Of course the details can get a bit more complicated, as
> you also have press and release events for shift keys etc.
> and special E0 ... key combinations and so on. But if you
> are happy with just the most mainstream keys acting in that
> "long press means shift" style and only while no actual
> ctrl, shift, alt or similar modifier keys are pressed, it
> should be quite feasible to implement this.


Special and multiple key combinations was something I built into the keyboard 
driver in the “Danger Engine.” That is the game and application framework I 
made for some programs provided with FreeDOS. 

The keyboard driver it has can track things like Left-Control+Right-Alt+A+P or 
Up+Left+Tab. No real limit on total simultaneous keys in the driver. Plus, it 
recognizes keys not normally supported under DOS. For instance, the Volume keys 
and Browser buttons on my ancient Logitech Media Keyboard.

But, that driver is not very efficient. Being a prototype experiment, it is 
cobbled together. Now that the issues involved were worked out, it needs to be 
rewritten from scratch.

Even though the Danger Engine does some neat stuff, the same goes for the 
entire thing. It definitely needs a rewrite.

:-)

Jerome

_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to