[vcf-midatlantic] much ado about chording keyboards

Jonathan Gevaryahu jgevaryahu at gmail.com
Tue Oct 1 22:24:16 EDT 2019

On 9/29/2019 1:14 PM, Eric Rangell via vcf-midatlantic wrote:
> Thanks Jeff.
> To give context to this discussion, I built a chording keyboard for my Replica 1 and Apple 2+ by interfacing an Arduino to the keyboard socket and using 5 arcade momentary switches from Micro Center.  I coded it so that my fingers chord a hex nibble and the thumb strobes it into the Arduino, and the LED shows whether you are chording the high nibble or low nibble.  It is possible to recode it for other chording mechanisms and add switches to choose a mode.
> Eric
Eric, that reminds me: did you ever get a chance to probe out all the 
outputs of the GI "AY-5-3600-931-B6" (second sourced as SMC "331-0931-B 
KR3600-070" ) from the early apple2/plus keyboard, for every possible 
keyboard input, shift+input, ctrl+input and shift+ctrl+input combination?

I.e. what data in B1-B10 (pins 14 down to 5) is returned, if any, for 
every possible unique X-bus output (on pins 40 down to 32) and for each 
unique X-bus output, every possible Y-bus input (on pins 26 down to 17); 
this whole process gets repeated 4 times, with neither shift (pin 29) 
nor control (pin 28) asserted, shift asserted, control asserted, and 
both shift+control asserted.

page 3-23 (pdf page 134)

I'm trying to improve the accuracy of the apple2 keyboard emulation in 

As far as I'm aware, the 331-0931-B uses the very last mask option on 
the list, where pin 4 is AKO and pin 5 is B10.

I'm guessing these tests will require an arduino mega to read the 9 
X-bus outputs in a fast loop and sequentially supply a 10-bit y-bus 
input when the x-bus reaches the correct 'count' being probed, and 
immediately after that either poll the AKO pin, and if it goes active, 
immediately read the 10-bit B bus, or just read the 10-bit bus and 
assume it detected a key-down.

Jonathan Gevaryahu
jgevaryahu at gmail.com
jgevaryahu at hotmail.com

More information about the vcf-midatlantic mailing list