Prepping for a board run, so tweaking the HW design.
v1.0 and v1.1 mapped the joysticks in as 2 more rows of keyboard switches (joy 1 was row 12, joy2 was row 13). 5 joystick buttons were mapped to C0-C4, and then ground was pulled low as that row of the matrix was scanned.
Works great, but two issues:
Only works for simple Atari-style sticks. Any stick that needs a constant ground (for auto-fire and such) won't work, as ground is being used as a row strobe in the matrix. If you plan to use the C=Key on your 64 and attached to your PC, you have to pull the sticks out of the sockets on C=Key when you want to use them on the real 64, as they're not visible to the 64 when plugged into the C=Key.
Issue #2 is no biggie, but #1 might be, so I redid the PCB to put the sticks at the exact same place they are on the real 64/128.
Code reworked, and all looks OK.
Except, the matrix scan routine barfs when Joy1 is being used, really bad. The only real fix is to suspend KB scanning while Joy1 is in use.
So, any thoughts? Should I go back to v1.1 behavior, or is v2 the better route?
Last Edit: Feb 20, 2007 1:21:52 GMT -5 by Jim Brain
I originally thought 128 used 25x1 header. It uses DB25 layout. So, I ditched the extra 5 pins and spent more time on the DB25
Moved the DB25 connector so it will fit in 128 and 128D
Switched all surface mount jumper pads with through hole jumper blocks
Moved all ICs to front of board
Rewired JOY lines so they mimic actual 64/128 layout (connected to actual KB lines). Also, brought out POT lines.
Moved 20x1 header so it will fit on C64 better.
Finally! finished PCB. It was a bear to route. I will desk check it tomorrow and then send for a quote.
It was a bear to route, because placement was constrained by 64 and 128/D requirements, and routing was constrained as well. I have one unfinished trace near bottom left of board (slides right by Vcc and pin 10 of the LS245, but it can go for prototype in that state.
Last Edit: Apr 13, 2007 1:26:39 GMT -5 by Jim Brain