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 at 5:50
  • Guess: Some short somewhere that, together with the particular layout of the keyboard matrix, causes this weird behaviour.
    – dirkt
    Commented Jun 24 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.
    – GaryFDes
    Commented Jul 27 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.
    – GaryFDes
    Commented Jul 27 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.
    – GaryFDes
    Commented Aug 11 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.
    – supercat
    Commented Aug 12 at 15:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .