As mentioned, my friend [Eric]@EricHertz indulged with some better pictures. Examining the keyboard connectors shows one set at J4 of 16 contacts going to a set of 16 diodes that are then go to the output side of two 74HC574. This is sane for column (or row) drivers of a classic keyboard matrix design. (The diodes prevent back flow if you hold more than one key down on different columns (or rows).) (I don't know the physical layout yet, but that doesn't matter yet.) The other connector at J5 consists of 13 contacts, but examining the board, I can see that 5 are grounded. The remaining 8 go the input side of a 74HC573. They also go into a resistor pack and a 74HC30. So these are surely the row (or column) sense. The resistor pack pulls up the lines, and the 74HC30 serves as an indicator 'key down' when any row goes low. All of this is sane.
The gist is that when you want to scan for keyboard, you:
- set one bit of the 16 column lines low
- see if the output of the '30 is high; if so there is a keydown on this column
- read the '573. The 0 bit will be the row for which the key is down
And since this is a primitive design, you're going to need to do key debouncing in software. So whenever I find the keyboard routine, I expect to see some delay loops. I also expect to see some translation of (row, column) pairs into ASCII characters. I did find some text:
FB6C 32 20 61 62+a2Abcdefghijklm:fcc "2 abcdefghijklmnopqrstuvwxyz"
FB6C 63 64 65 66+ fcb 9
FB89 31 32 33 34+a1234567890: fcc "1234567890"
FB89 35 36 37 38+ fcb $D
FB94 33 20 60 2D+a3_@_?: fcc "3 `-=[]\"
FB94 3D 5B 5D 5C+ fcb $27
FB94 27 2C 2E 2F+ fcc ",./~!@#$%^&*()_+{}|:<>?;"
FB94 7E 21 40 23+ fcb $22, $D
FBB7 34 20 41 42+a4Abcdefghijklm:fcc "4 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
FBB7 43 44 45 46+ fcb $D, 0
which look like candidates for a translation table. I'm sure I did not break those strings up correctly, but I can fix that later. Finding a reference to those strings will be helpful in locating the keyboard routine.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.