[Max Breedon] found an old Apple IIe clone twenty years ago. He recently dug this Epson AP-200 out of the salvage heap and quickly discovered that the keyboard decoder chip was fried. The old chip was way too obscure to source a replacement — and soon this post will be the top Google result for the string, ‘C35224E’ — so he busted out his trusty UNO and created a replacement keyboard decoder.
Unlike the Apple II, where all the keyboard decoding happens on the keyboard, this clone used a dedicated chip on the main board. Although it’s a rare part that’s virtually ungoogleable, this chip’s architecture and pinout can be figured out by testing out every trace for continuity. After locating what looked like four data pins, he had the Arduino send signals onto the clone to see what characters popped up. That didn’t work, but it led him to idea that two of the wires were clock and data, and after a bit of experimenting figured out that the third pin was a latch enable of some sort that sent the character.
So, [Max] created an Arduino rig to do the same thing. The Arduino uses a shift register to interact with the keyboard’s 8×10 matrix, and the sketch translates any serial data it receives into the keypresses the clone is expecting. After prototyping with the UNO, [Max] hardwired an Arduino Nano (as well as the shift register) into a daughter board with pins extending into the old chip’s sockets. A permanent solution!
In addition to a weird keyboard controller that has been lost to the sands of time, this Apple IIe clone features a few more parts that are downright weird. There are two chips that are found in a few other Apple clones labeled STK 65301 and STK 65371, used as ASICs, MMUs, or a 20-IC expression of Wozzian brilliance condensed into custom silicon. There’s another weird chip in this clone, a 27c32 ROM loaded up with repetitive bits. There is no obvious 6502 code or strings in this ROM, so if anyone has an idea what this chip does, send [Max] a note.
The ROM with repetitive bits might be a poor mans PLD. It could be doing address decoding or something like that
Wikipedia mentions such a thing under PLD, a design trick I should keep in mind.
https://en.m.wikipedia.org/wiki/Programmable_logic_device
That was my thought too. I have done similar things back in the timeframe this machine was designed.
My favorite use of an eprom from ‘back in the day’ was to convert EBCDIC to ASCII or vice-versa, feed the address line ASCII to get EBCDEC out the data bits.
My money is on character generator – feed in ASCII in address lines A3 to A10 and bit patterns for each of the 8 lines of the character are accessed by iterating through the 8 possibilities of A0-A2.
Oh yeah, this makes the most sense actually. He even says that it’s one of two ROMs onboard. it must be a CGROM.
Hmm. Is it just me or does the fact that weird appears three times in the final paragraph is just a little wierd?
That’s wierd all right.
nope if you’re meaning weird those are all the same size as weird.
32Kbits is enough to store a 8×16 charset. The 2732 is probably a character generator ROM.
Actually 7×8 charset. Either Normal & Inverse or Upper & Lower. The Apple II/II+ used a 32kbit rom and stored 4 copies of the font, adding a Flashing character set using the 8th bit from each row. The IIc changed this to Upper & Lowercase and MouseText.
Hmm, 74HC595 has push-pull outputs. Doesn’t this mean that when 3 keys are pressed at once, it could short-circuit two lines and cause a lot of current to flow VCC -> GND through the keys?
I reckon you are right: if two keys on the same column were held down at the same time, that a high on the 595 row scan would be shunted back to the low output of a low 595 row.
I’ll worry about that in 20 years when I dig it out of the attic again.
How does this computer qualifies as Apple clone? Different hardware, firmware, OS etc. What has been copied?
Probably software compatibility, which was a really big thing back then.
Large percentages of the Apple II roms were copied in mass by clones of the period. Several Apple II clones changed only the “Apple ][” greeting. This is what led to the Macintosh easter egg where you could hit the programmer’s switch and call a routine to draw the pirate mac icon. Jobs wanted to be able to pull a clone maker into court and very dramatically pull up the pirate mac icon to say “SEE! They STOLE from us!”
The computer isn’t an Epson AP-200; the Epson AP-200 is just the disk drive connected to it.
Yeah… I’m kinda curious what KIND of Apple II clone this is.
It’s a generic Taiwanese Apple //e clone, they were made under a bunch of different names, with that board design. I’ve got one that’s branded as a “Hacker //e”.
The STK chips aren’t just functional clones of the IOU and MMU – they’re actually ghost-shift versions of the NTSC version of the Apple IOU and MMU, so you could replace them with genuine Apple parts.
(Fun fact, I have one of these same clones, although the case is slightly different and looks like some minor chip differences on the motherboard)
That mystery ROM is definitely the character generator. Each character is an 8×8 binary representation and there are 256 of them. I don’t know what the remainder of the ROM contains though (might be junk). Quick python script to visualize it (see Max’s page for the ROM dump)
import sys
with open(sys.argv[1], “r”) as f:
line = 0
char_num = 0
for c in f.read():
if line % 8 == 0:
print
print “Character %d” % char_num
char_num += 1
line += 1
b = “{0:08b}”.format(ord(c))
s = “”
for c in reversed(b):
s += ‘#’ if c == ‘1’ else ‘ ‘
print s