7

I have been playing with a Commodore 128 that I picked up but I have noticed one, what I would call, weird keyboard problem(?).

If I scan on the bottom row of the keyboard every other key works with a different shift key. This only happens on the bottom row. All the other keys/rows of keys on the keyboard work with either shift key.

Without any shift key all the keys work fine.

The keys that work with the right shift key are:
X, V, N, <, ?, ↑/↓ and ←/→ cursor keys.

The keys that work with the left shift key and/or caps lock are:
Z, C, B, M, > and ←/→ cursor key.

Yes, the ←/→ cursor key works with either shift key.

If both shift keys are pressed none of the keys on the bottom row work except for the ←/→ cursor key which prints some reverse middle line character.

One more interesting thing I noticed while typing this question in. The Commodore key only works on every other key on the second row of keys. The keys are:
A, D, G, J, L and (.

Anyone have any idea why this is happening?
Not that it bothers me much because I do not presently use the graphics on the keys. But I do use the up/down cursor key and I have to use it only with the right shift key.

2
  • Do I understand correctly that Commented Jun 24, 2024 at 5:50
  • Guess: Some short somewhere that, together with the particular layout of the keyboard matrix, causes this weird behaviour. Commented Jun 24, 2024 at 7:08

1 Answer 1

10

The main keyboard is wired as an 8x8 matrix; since the physical layout has four rows with varying numbers of keys, the keyboard is mostly wired with one row wire that goes above each row of keys and one below, and column wires that generally take two keys per row. Because the space bar is considered to be on the bottom row, the bottom row ends up with 17 keys, one of which (cursor left/right) ends up being wired as though it were on the row above.

The symptoms are consistent with the CIA being unable to drive keyboard rows effectively enough to allow two keys to register. I used to have a CIA chip in my C64 which had a fault on a different row (the ADGJL row of the matrix), and bizarrely enough it was a fault in the chip, rather than an external connection, since pushing two or more keys on the problematic row would also reset the "real time clock". Try swapping the two CIA chips and see if that has any effect. Other things might fail to work, but that would indicate whether it might be worthwhile to try to find a working CIA chip.

4
  • I was hoping that changing the CIA would work but alas it was not. Everything works the same. For some reason the cursor keys work but there is a caveat to that as well. Before the swap the up down did not work at all on with the left shift key but after the CIA swap the up/down plus shift key (which means up) works about 90 percent of the time and sometimes makes two key presses (1percent of the time. Commented Jul 27, 2024 at 15:03
  • I did some probing of the signals coming from the keyboard. I would love it if someone could do a probe for me on their keyboard. I checked all the columns and all of the columns are coming into the CIA chip at 5v except for pin 8 (1-based) on the CIA and column 6 (0-based) which the shift key column. Seems like the whole of column 6 is at zero until I press any key (not just keys on the same column) then it goes up to .5v. Is that normal? I don't know and I am grasping at straws here. Commented Jul 27, 2024 at 17:03
  • 2
    Just wanted to give an update. I did a bunch of testing but in the end determined that both CIAs were bad. I ordered two JCIAs(1nt3r.net/j-cia) and installed them and the keyboard is now working fine. I marked the answer from supercat as the answer. Commented Aug 11, 2024 at 13:43
  • @GaryFDes: Thanks for the tick. I'm glad my experience from back in the day was useful. I find it curious that I had a dodgy CIA chip and a dodgy VIC-II chip. I guess Commodore was really wanting to crank things out in the $200-$300 era. Commented Aug 12, 2024 at 15:10

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.