[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PC to Apple 2 Keyboard Conversion
Michael Black writes ...
>
....
> This isn't going to be a simple project. The Apple keyboard just outputs
> ASCII characters in parallel format. An IBM-compatible keyboard is not
> only serial, and if I remember isn't exactly the same format usually
> seen when sending serial, but it is not ASCII. Press a key on an IBM
> keyboard, and you will get a serial code that denotes that key, and I
> think a different code is sent when you let go of the key. The conversion
> to ASCII is done in the IBM. ON the original and XT, there is a TTL
> shift register, I think it was the 74LS595, that converted the serial
> input to parallel, and then code in ROM does the actual converstion to
> ASCII. On the AT and later, there is a separate microcomputer to do
> the serial to parallel conversion, and some or all of the conversion to
> ASCII.
>
....
Interesting info! Using the 74LS595 is a simple solution to getting the
code from the KB.
Having the KB send another code when the key is released makes sense-- you
can tell when a key is being held down and do auto-repeats of the character. On
the other hand, it is one more factor against coming up with a really simple
interface.
> If it was just a serial to parallel conversion problem, one would do
> better to use a UART intended for standalone use. They were common
> in the early days of small computers and you can still buy them;
> the were programmed not by software like the 8251, but by hardwiring
> the pins. Or you might be able to get by with a simple logic based
> serial to parallel shift register like the 74LS595.
>
> But it won't be that simple. You either have to do the conversion
> externally, most likely by using a dedicated microprocessor, or
> fix the ROM inside the Apple II to do the conversion. The former
> has been done, there is/was such a unit available for the Radio
> Shack CoCo, while the latter is going to require a lot of work and
> fitting into place.
>
Yes; messing with the ROM would be way too much bother. You want an
interface that gives you the usual Apple II KB parallel outputs. Don't know if
it would be necessary to include an optional ADB output for some IIgs users.
> There was a time when you would either buy a keyboard that was unencoded,
> and add an encoder, or buy a keyboard with a built in ASCII encoder.
> Those were once plentiful, new and on the surplus market. The original
> Apple counted on you being able to buy such a thing. Nowadays,
> it seems either everyone uses an IBM compatible keyboard, or some
> other similar type that puts out a non-standard code.
>
> I don't think someone will find much success in rewiring an IBM keyboard,
> because it seems like a lot of them use capacitance switches that require
> proper interface. If they were actually micro-switch type keys, one
> could cut traces on the board and wire the keys into a matrix that would
> match an ASCII encoder. This is still doable, if one could find a source
> of unencoded keyboards that actually used old-style switches. You used
> to be able to buy ASCII encoder ICs, but if those are hard to find,
> one could make such an encoder with common TTL or CMOS logic ICs; Don
> Lancaster shows some in his "TV Typewriter Cookbook" and his "CMOS
> Cookbook".
>
Those were fun days in computing. I built some of Dan Lancaster's circuits
(including the TV Typewriter). Experimenting with them was a good intro to
designing hardware.
> Ironically, the simplest solution is to use another computer. Youcan find
> all kinds of all in one units, like Commodore 64s and Radio Shack
> Color Computers that have a keyboard and BASIC in ROM. You'd need
> a parallel output port, ie a parallel printer port, and then just
> write a line of code that takes from the keyboard and outputs the
> character to the printer port. Connect that to where the keyboard
> connects on an Apple II, and you've got your ASCII keyboard, albeit
> bulky.
....
True. Also, if you care about looks and feel, the C-64 has a pretty sorry
KB.
Rubywand