I produced a board a while back that takes a PC keyboard and has
parallel output, in a number of formats. One of the members on this
list has two of them, and seemed quite pleased. I had intended to
productize it, but never got around to it.
A few of it's features are that it has is that PF keys are
programmable, any keyboard key can be mapped to any keycode, /RESET
output, several built-in keymaps (Apple II, SOL, Otrona, etc), serial
port (PS/2 keyboard can be mapped to serial port, serial port is used
for configuration also), keyboard LEDs track caps/numlock/scroll lock
state, key data and strobe polarity programmable, all through-hole,
readily available parts.
Here's a picture of the finished board:
Since this was intended to be productized, I've never released the
source code. However, if there's interest in a device like this, I
would be willing to release it to anyone who bought a board with the
agreement that the source would not be redistributed, nor used in any
derivative products. I guess that's basically like a hobbyist license.
Currently, I have no boards, as I only made 3 prototypes of the
final version. If there's enough interest in raw boards, I could turn a
batch. I'd have to do a little research to get the final price per
board, but I'm *guessing* it would be less than $10/ea.
--jc
Dave Dunfield wrote:
Many (perhaps most) older equipment with an integrated
keyboard (ie: not
on a cable) used parallel keyboards - also any with an external keyboard on
a ribbon cable are likely parallel.
Hmm, most of the ones (internal keyboards) I've seen are dumb - the
large
number of lines exiting the keyboard are just connected direct to the matrix
and the decoding is done by something on the main CPU board (often the CPU
itself), so not easily transferrable to another system :(
Agreed on the "all in one" boards, I was thinking specifically about older
non-
comsumer equipment which often has a separate parallel keyboard inside.
Many of the "all in one" boards also have a keyboard decoder and basically
contain a complete parallel keyboard (but it would be tough to get at) - a lot
of the cheaper stuff does keyboard scanning via the CPU.
Agreed on the external keyboards with a ribbon
cable - but I'm struggling to
think of that many systems which used them to be honest. Most micros had
integrated keyboards, whilst workstation-class stuff was often pretty
proprietary and usually serial. Machines laying somewhere inbetween often seem
to just use a serial port and rely on a separate terminal for their input.
I've got some old Volker Craig terminals with parallel keyboards on ribbon cables.
I'm know I've seen many others over the years ...
It would
be dead simple to make an adapter to convert a standard PC serial keyboard
into an ASCII/strobe parallel interface - you get the added benefits of having lots of
extra keys, and the ability to assign whatever codes you like to them.
I was pondering that. More than likely someone on this list has already
done
exactly that. Speak now. ;-)
Somewhere around here I've got 8051 source
code to a little project I did to convert
a PC keyboard to an RS-232 serial interface - It would be very little work to turn that
into a parallel interface.
Quite by chance I found such a thing this morning at:
http://www.beyondlogic.org/keyboard/keybrd.htm#1
... the HC705 IC (not a chip I'm familiar with) used may not have enough ports
though if port A needs to be used exclusively by the keyboard (due to high
impedance requirements) and port B is only 8 bits and tied up with the ASCII
interface (plus the strobe line to the machine needs to go somewhere)
I'm sure it'd be dead easy for someone who knows about programming PICs and
the like - as I say, I'm sure someone on here's done it even :-)
HC705 is a single-chip microcontroller. This project is very similar to the
one I did, except that I used an 8051, and mine worked on raw scancodes
(both ways, so that you could control the keyboard over the serial port as
well using the standard keyboard control codes).
For a parallel keyboard interface, you would translate the scancode to
ASCII. Most likely you would also implement Caps-Lock and Num-Lock
locally on the controller, setting flags to modify subsequent output and
sending the code to control the keyboard LEDs.
IIRC the existing code is only about 200 bytes, there would be lots of room
left in a 4k 8051 to implement a scan-code -> ASCII translate table and added
functions. To modify the code for a parallel interface, all you would need to do is:
- On the key-down code, check for special keys (CapsLock, NumLock) and
set appropriate flags/Leds, otherwise use the table to convert to ASCII, write it
to the parallel port and assert strobe.
- On key up, deassert strobe.
If you want to implement auto-repeat, just start inital timer on keydown, and
if it expires before key-up, pulse strobe and reset timer to repeat rate.
If you are able to wait a couple of weeks, I could do it for you, I just have
another project I need to get finished first.
Regards,
Dave
--
dave06a (at) Dave Dunfield
dunfield (dot) Firmware development services & tools:
www.dunfield.com
com Collector of vintage computing equipment:
http://www.classiccmp.org/dunfield/index.html