All right. I've noticed a number of people asking about putting
an external keyboard on their 1200's. Unfortunately, the only replies
they got said it couldn't be done, or that it would be very difficult. Neither
of these is true. Electronically, the keyboard interface is pretty much the
same as it always has been. The only real obstacles are physical; Thus I
decided to make an attempt, and recently managed to pull it off. What follows
is an account of what I did along with a few suggestions. Be sure to read it
through all the way before breaking out the tools...
It's been working well so far (I'm typing this on my good old A1000
keyboard hooked up to my 1200 right now.) The result is that I can have
both an internal and external keyboard hooked up simultaneously without
interference. In fact, they complement one another. You can actually press
shift on one keyboard and 's' on the other and get a capital 'S'! Those old
6570 keyboard controllers are quite robust, seemingly in contrast to the on
board one in the 1200.
Needless to say, doing this modification required some very delicate
work. The internal keyboard micro has to be physically taken off-line
in order to connect an external keyboard or keyboards. This isn't like the
500 where all you had to do to hook up an external was to patch into
the KCLK and KDAT lines, tap +5 and Ground from somewhere and you
were done. The 6570's took care of all the handshaking automatically.
Unfortunately, the 1200's keyboard micro doesn't work that way. Hooking
up another keyboard in parallel with it's clock + data lines just hangs both
of them. (My guess is that the output isn't open-collector like it
is on the externals, (there's no reason for it to be) so when you have
an external hooked up, the internal can't drive its 0's low enough.)
Anyway, I just decided to do away with the internal controller altogether.
Um...let me just say this... I'm not really writing this post in the
form of a full blown hardware hack. This is more of a "Here's what I did.
If you'd like to give it a shot, here's what you need to know." sort
of thing. I'm not going to go into disassembly instructions or anything
like that. I will make the standard disclaimer, though: If you try this and
you blow up your machine, don't come crying to me. There are some quite
tiny spots that have to be soldered and/or desoldered, so patience, a
steady hand, and a reasonably sharp soldering iron are a definite
necessity. If there's enough support for turning this into a full article
I'll throw something together. (My brother suggested submitting it to
AC, but it may be a bit hardcore for them. Schematically, it's quite
simple, but the tiny joints do make it a little more difficult. Maybe
Aminet...
Okay, with that out of the way here are the gooey details. The two
chips we'll be dealing with are U13 (The keyboard micro) and U7 (The
keyboard/parallel 8520). Try to keep your soldering iron and any other
potentially destructive tools away from the other chips. ;^) The KBClk and
KBDat pins on the keyboard micro need to be heated and bent up away
from the motherboard. I touched the top of the pin with the iron, let it heat
for a second and then, with a razor-knife wedged behind the pin, twisted,
lifting the pin away from the board. There's not much solder holding these
down, so it shouldn't take too much force. Once the pin was free, I straight
ened it up with a pair of needle-nose pliers and went on to the next one.
Fortunately, both pins are right next to each other and the keyboard micro
(and the 8520) are surface-mounted PLCC's and not true SMD's. These
are the only two pins that need to be desoldered. The rest of this hack just
involves soldering wires in.
***NOTE: I've heard from at least two people that their internal micros did not
need to be taken offline for the external to work. All I know is that on mine
it had to be disconnected. Your Mileage May Vary, however, so you may
want to try skipping this step, do the rest, and see if it works.***
Get your hands on the smallest insulated wire you can find (>24 awg),
and solder wires to the KBClk, KBDat and _KBReset lines as shown in the diagram
below. The number of pins on the chips should be accurate. they are 44 pin
PLCC's, with 11 pins on each side. The ^ denotes the pin 1 dot on the chips.
----------------------------------------------------------------------------
|||||||||||
-+-----------+-
-| |-
-| |-
-| 8520PL |-
-| |-
-| U7 |-
-| |-
-| |-
-| |-
-| ^ |-
-+-----------+-
|||||||||||
||
| \KBDat (Solder wire here)
||||||||||| |
-+-----------+- \KBClk (Solder wire here)
-| |-
-| |-
-| Keyboard |---KBClk (Desolder + bend up) Floppy
-| Micro. |---KBDat (Desolder + bend up) Power
-| |-
-| U13 |- ....
-| |- To ||
-| |- Front ||
/---| ^ |- of +5v/|
| -+-----------+- Machine / |
| ||||||||||| || (Tap +5 and Gnd. from |
| || these wires.)-------Gnd /
\_KBReset (Solder wire here) ||
||
\/
----------------------------------------------------------------------------
As you can see, power is easily tapped from the floppy cable. You
should use somewhat larger wires for this. Thus, when you're done you
should have five wires coming out of your machine: KBClk, KBDat,
_KBReset, +5, and Gnd. You will also have a non-functional internal key
board. If you want, however, you can take these wires (except _KBReset)
and hook them up to a 5 pin DIN and attach a 2000/3000 keyboard, or a
phone plug and connect a 1000 keyboard. There is a catch, however. You
will not be able to reset from the external keyboard. 1000s, 2000s, 3000s,
and 4000s have internal circuitry which interprets 500 milliseconds of
KBClk low as a "reset" pulse, and pulls the _KBReset line internally (This is
according to the Hardware Manual). So unless you fabricate a circuit that
does this (see below), you'll need to reset from the native keyboard. (This
function should still work. Actually, If you're going to do it this way,
there's no need to solder the extra wire for _KBReset.)
Now, the A500 keyboard is slightly different. It has no case but it
will generate a _KBReset signal. Remember how I said you could have two
kbd's simultaneously? Well, all you have to do is hook up your external as
described above, and string your wires along (Including _KBReset) to the
500 keyboard. What's more, the 500 keyboard is a near-exact fit replace
ment for the 1200 one (and with full sized Left-Shift and Return keys!). In
order to do this I had to desolder the LEDs on the 500 kbd altogether and
then remove the ones from the 1200's "LED board", hot glue them individually
to their positions, bend the leads down flat, and wire them up again. Also,
the support on the top part of the wedge-shaped floppy bracket has to be sawed
off to make room for the encoder board. It works, though, and theoretically I
should even be able to fit the RF shield back on.
Okay, so you may not like the beige-colored keys of the 500 keyboard
sticking out of your shiny white 1200 case. The simple solution is to swap
the 500 keyboard's beige keycaps for your defunct 1200 keyboard's white ones.
They should be the same in every respect except color. There is, however,
another alternative. Your original 1200 keyboard may be compatible with the 500
keyboard's encoder board. Encoder boards that are compatible have a
slot for one large ribbon cable to fit in. Incompatible encoder boards have
slots for two small ribbon cables. If compatible, all you have to do is unplug
the ribbon from the 500 keyboard itself, unscrew the little circuit board in
the upper-right corner (the encoder board) and remove it along with its
plastic bottom-shield. You can then plug the ribbon from your 1200 kbd into
the socket, and wire the encoder board up as you would with the
true 500 keyboard. This is the setup I had originally. Now, since the ribbon
comes out of the middle-back of the 1200 keyboard, you have to put the
controller board in that same vicinity. It's up to you how to mount it, but
what I did was to first off trash the RF shield. (REAL hackers don' need no
steenkin' RF shield 8^) ) Then I hot-glued the plastic shield to the bottom of
the encoder board, and hot-glued this by the lower left corner to the top of
the hard drive. The other end rests on the floppy cable, and tension from
the keyboard ribbon folded under the keyboard keeps the whole thing
steady.
Here's a quick recap:
-Desolder the clock and data pins coming from the onboard A1200
keyboard microcontroller. (This is probably the hardest part of this
whole thing.)
-Solder the KBClk, KBDat, _KBReset, +5, and Gnd. lines to the
locations described in the diagram. (A magnifier lamp is useful for
this.)
-Hook the KBDat, KBClk, +5, and Gnd. lines up to some sort of
external keyboard connector, and use the dead internal to reset, OR
Hook the KBDat, KBClk, +5, and Gnd. lines up to some sort of
external keyboard connector and run the wires along to their
corresponding locations on a 500 keyboard INCLUDING _KBReset, OR
Hook the KBDat, KBClk, +5, and Gnd. lines up to some sort of
external keyboard connector and run the wires along to their
corresponding locations on a 500 keyboard's encoder board INCLUDING
_KBReset and then plug your 1200 keyboard's ribbon cable into the
encoder board.
-Seal up, fasten down, make sure there are no solder bridges, shorts,
etc.
-Power up and enjoy!
---------------------------------------------------------------------------
Below are the pinouts for various types of Amiga keyboards.
A500: Ribbon out (usually rainbow)
Black=1...Purple=8
||||||||
+---------------------------------------+
| Pin 1->........|...........| |
+---------------------------------------+
|||||||||||
||||||||||| 7[OJ>KBX^+C^GC(((>5&\Q#YA^Z
M$8GHAQN,3G]''X'K#Y/)'^@ 8O!QO8&KO@P>4]P7_Q>HA:\P[8JUNB:6X+7%
M_TVM#6%IY?[O].AFWJ+$<5KY[PL^@<7CWKQYY\N6O(O"UO->WM<7/B%U,+Z
MMH5QP&;(LZT+_&4&D84P]08J=H7X/C 1A998@9 Q: "@%T/U!QVBTBN+[A!=_:%#G18F/C!54---RG[+T+,Q[3@?@D[.^7W2)@2C!,>,5$W!6%'E$2\=4*";PK
M9/;,)7A14$!JID%8^)AI9X6J;.$]%@ DBUC-7E/BSC"KUA631[Y,F5V7A43"
MTJPK116VIC78=%;"\+*F-3G[QZPKDV9*>HL-<7M3)7:[XK'W9.=N^^+7F..*
MK$+-*+PXA9%T4>DP*N+E71?I2!LPJ^P+W4P[QA:6P+FT0TC"K;-%LA32K67E
M71?J$D[;WE; N:'.RR:3;T+\(K@YCR=1K9RA8C#F/=ET=CW00W5O3E+,?MT6
M!ICUM./?4%1\$'(&F/>%2UA:IQ6\:\+..**E>%1P"UYC]BBZT>Y!T*W[P J'-6!A6.06B7'OB
M6:+'"OO T5@_9^BSRTG%R@;7(+\FT+*"J046686;"+)"<05EVWJKNO>\*;$E
MOSE45PY>)1%]N':A? ^PKT2=M>.*Y%6!]F'>@/APDA7(]ZU%](M%HZM%O;,/
M627Y(,3A7(]R7CHNC)_R/'^J*Y'N,6IO.J;GHKCQ_;U16I.B;G9'6(]Z6$7O
M4]&@KSH+)'18=>$5E?B=N;))S_".RX=R$5A?C]57")S_IZ!H^H;+R%FDD
M@=_MG%7U5^&<69('6,F"-$T0IXJZG,ZW%5ERX!>Q +#([X19D,>['" )8,CT
MY$R"EP:)(8043XK2I+\:0[/Y!!=T\*.#N/B'%[)1>>Z*; GV2]H4\]8ST@C@
MQ];M8T'[+C%/6(.7MXB
M3]%K"WI,*VY-C.TEXSX7TXX=&,'41#D86I FZ*/^EL=%K*"DAM"MJD%9EWQ2
M:]:RE$+XLXHJ>V*37K6Z:-\7\BX'=+Z+XOXE%^7H7Q2[02R?3=%?T>+.%Y;>
M_8,4WQ"ST*6F*;*8""Z6OB9X10B%;]J,_R5+PK7/D/E?*![2UM"] XLK;%$44N_&*[@3Q> ]VNY(O"N^Y*F8+\9@Y
MMBF\V18)--47,L05>+.WC.Z! 2J0E(=2*\I:J*PJJ,3>;\^
M[9->Z[N[L=:5^-__M;=I@4H@2,85SC$,,S@.UC:3+]_WC_#Z?O&KY]CWE]/W
MO_KL?E[I'!RVEV'CO>N%A>HXG(K7P+JV0MQ2@P["EQ9$GN*[',0E
MNL)DBP?#O.RH6 >+W)QURU%N5?!_@RPR^>^IS?$5 &?2-;\5=HGI;9PDP=*/MFR$#;TUSOJO?"2VU
M5ON\0 /]7SI9>"\J0Z4GSKXJI?0B-Q,H%16/I>BVP-=F(NH!V/?$RO:*
MD$/H 6@=+LLBH>\ET*S%)!"C54\F2$IQ",J?=SX7 !]LH-YNJYG!?-Y3:%5(
M#*A5V]CER8$G6P?=3H_,.]0KN,A3:"[ TO9(ZMRA13$[@YF5 A$,GN!:>FBG
M[EU\6.,)IL@QK0CQ81@W(W4E?05X!?J%9:_K^P?SXE>$;.!5#CBFTY4&Z(]UK7WWXU *C@?*$4!*H"4%>;GSX<2@\6^GL^$\SD0-H)
M/P-K$A"X$;D%&11%@E@XEPH:EOGY/O^WS]NOH!M^X*H&'*F;:A8/O-W-6(!FDF
M3%'+ KUH %,%(^GPRG*'@%I8._AV'R5)IF3RPLIG5]LSC2B5/3-
?!