Close

Why the external keyboard interface?

A project log for ABN6502 SBC R1

Saving the planet, one obsolete chip at a time

anders-nielsenAnders Nielsen 04/14/2022 at 19:250 Comments

When designing a SBC you always have to balance features vs board space vs price. 

When I realized I had to make a choice between putting in the time and finding a new solution to a problem many smart people have already worked hard at or throwing what I knew worked on the board I chose option number three: Make it an add-on - for now. 

It's a slight redesign of Dieter Müllers PS/2 interface (warning: Files require OOOLD version of Eagle) which I heavily suspect is what Ben Eater based his version on. 

I don't know if Dieter tried to obfuscate his design on purpose, but he certainly used a lot of gates for seemingly no other reason than buffering. Like Ben I also used two '595's but got the 74HC14 gates down to two instead of three - so if I ever need four Schmitt-Trigger inverters they're in a handy place. 

It plugs right into PORTA and just needs the signal to CA1 wired over, along with 5V and GND. 

But.. Even if it just uses two inverter gates and two shift registers it just seems wrong to throw hardware at a software problem in this case (even though I'm usually not opposed to that).

It really should be possible to, at the very least, do the shift registers in software if not with the 6522 shift register. Since the 6522 can count pulses on PB6 and generate IRQ's it should be possible to use that to overcome the limitations of the 6522 shift register. 

Either way - the PS/2-interface is external for now because I know it can be done better, or at least cheaper. And just maybe without taking up more board space.

Discussions