Re: [P] MECB Mass Storage and/or Keyboard Interface Card
Posted: Tue Jun 04, 2024 6:35 am
I think I recognise my lot in life now, it's to cheer you guys on!Editor wrote: ↑Wed May 29, 2024 7:58 pmIt sounds like we've gone down the almost the same design thinking path! I don't mind writing the 6809 code, but it was more the revelation that this function (PS/2 down/up scan codes to ASCII translation), doesn't really belong on out "retro true" recreations!lenzjo wrote: ↑Wed May 29, 2024 12:02 pm I'm using an ATtiny 26 to decode the PS/2 to a parallel output with handshaking. It's not my design it's from here. I thought about using discrete TTL after seeing Ben Eater's version. But then he had look-up tables to translate the key presses to ascii. Didn't really like that, and so started looking around for a better solution and found Darryl's answer to it. I'm not proud, why re-invent the wheel especially as I haven't the time to learn AVR assembly when 6809 is already giving me a headache
Although I enjoy microcontroller programming, and have quite a few lying around, I also don't believe in re-inventing the wheel. Especially if it takes your focus away from the core project at hand. I also rationalised, by noting that a "modern" PS/2 Keyboard already has a microcontroller in it, so effectively we are just translating with another microcontroller, so that the "real" Retro Keyboard input starts at the ASCII parallel (or serial) input port!
I landed on a similar, but AVR based, Go4Retro PS/2 EncoderYes. I was then also at the same point of deciding how best to implement the interrupt driven support. First thinking I'd design a simple TTL based interrupt latch and tri-state buffer to read in and clear the interrupt latch.lenzjo wrote: ↑Wed May 29, 2024 12:02 pm I was thinking to hook it up to a 6522 for the handshaking and it can generate an interrupt for each key press. This will be part of a "system i/o" card which will also tentatively have an SCC2691 ACIA as it can go to 6Mhz. The 6522 has a couple of timers so it can also replace the 6840.
Then, I decided that for the PCB real estate used, I may as well just use a DIL40 parallel I/O chip (i.e. PIA, on the basis of a Parallel ASCII keyboard input, like I used in the old days with a MM5740 Keyboard Encoder).
However, where I ended up was thinking along the lines of a MC6821 PIA (noting that we don't need a VIA / timer for a keyboard interface).
This approach also means we can insert a currently in production WDC W65C21N PIA, which is actually good for up to 14MHz, is plug-in compatible with the MC6821 PIA, and therefore well matched for both the 6809 CPU Card and the 6502 CPU Card (with a faster WDC W65C02 CPU).
Where I'm currently at (as of last night), is thinking that if I have a dual 8 port PIA, on a PS/2 + CF Card, do I interface the CF through port B, or does that just give no real advantage? The jury is still out on this, as I look into further.
On a related note, I intentionaly didn't use the 6522 VIA on my initial Motorola I/O Card, fundamentally because it was intended to be a true Motorola based I/O Card, hence the 6821, 6840, and 6850. My intention was to eventualy make a similar WDC / MOS based I/O Card which instead features a 6522 VIA and a 6551 ACIA.
Not that a mouse or trackball really fits in with retro computers, but how hard would it be to amalgamate as many forms of input on the one interface card (i.e. kb & mouse, maybe even some kind of supplemental data I/O for robotics/electronics projects) and separate out mass storage options for it's own card? A CF Card is definitely a win for peeps like me of course, so happy to concede the point if I don't know what I'm talking about here...
Also curious, would such a solution still support a ps/2 keyboard (and mouse) interface and/or headers? Inquiring minds, and all that... I guess it totally shows I don't know what you're all discussing here, doesn't it...?