Everything Else

2716 EPROM to 2513 Character Generator socket (question)

Not sure if anyone here can help on this, but I figured why not throw it out there. I also posted this on the Briel Computers forum since the Replica-1 uses an EEPROM rather than the 2513 character generator in the original Apple-1, so the concept may be similar.

I'm trying to adapt a 2716 EPROM (containing a character set dump from a 2513) for use in an ADM-3A. I've already programmed the 2716 with the lowercase character data, I just need to figure out the shim socket.

I do have datasheets for both chips (attached). This is what I *think* I may need to do:

Pins (2513 -> 2716):

4 - (Out 1) -> 9 (Q0)
5 - (Out 2) -> 10 (Q1)
6 - (Out 3) -> 11 (Q2)
7 - (Out 4) -> 13 (Q3)
8 - (Out 5) -> 14 (Q4)

14 - (Address 1) -> 8 (A0)
15 - (Address 2) -> 7 (A1)
16 - (Address 3) -> 6 (A2)
17 - (Address 4) -> 5 (A3)
18 - (Address 5) -> 4 (A4)
19 - (Address 6) -> 3 (A5)
20 - (Address 7) -> 2 (A6)
21 - (Address 8) -> 1 (A7)
22 - (Address 9) -> 23 (A8)

24 - (Vcc) -> 24 (Vcc)
10 (Ground) -> 12 (Vss)
11 (Chip Enable) -> 20 (G), 18 (EP)

The burning questions are whether I should start with Q0 on output (believe I have this resolved), and if G/EP should be bridged to chip enable. Or anything else I may have missed ;)

http://juliepalooza.8m.com/sl/adm3a-2.htm

Thanks much!

_________________
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.
The /EP is basically the ChipEnable/ChipSelect, and /G is the output enable.

For a character generator those would both be wired low.

Are the data words only 5 bits wide? Should be easy to see from a hexdump of the character map, I would expect all the unused bits to be all zeroes or all ones.

If they are in the bottom 5 bits you would use Q0 to Q4.

_________________
:Indy: :Indigo2IMP: :Octane: :Indy: 4xRS6K 2xHP9K 6xSUN 1xDEC 14xMAC 7xPC 2xPS2
porter wrote:
The /EP is basically the ChipEnable/ChipSelect, and /G is the output enable.

For a character generator those would both be wired low.


So would those both connect to pin 11 on the 2513 (chip enable), or someplace else (float)?

Quote:
Are the data words only 5 bits wide? Should be easy to see from a hexdump of the character map, I would expect all the unused bits to be all zeroes or all ones.

If they are in the bottom 5 bits you would use Q0 to Q4.


Yup, you're right - from the data sheet:

Quote:
A six-bit binary address (A4 through A9) selects 1 of 64 matrix characters arranged 5 dots horizontally and 8 dots vertically. A three bit binary address code (A1 through A3) selects 1 of 8 rows. Five outputs display a complete row of the character matrix.


Below is a partial dump of the standard 2513 ROM after running it through xxd. Based on this, I updated the pinout to use Q0-Q4. Thanks!

Code:
0000000: 000e 1115 1716 100f 0004 0a11 111f 1111  ................
0000010: 001e 1111 1e11 111e 000e 1110 1010 110e  ................
0000020: 001e 1111 1111 111e 001f 1010 1e10 101f  ................
0000030: 001f 1010 1e10 1010 000f 1010 1013 110f  ................
0000040: 0011 1111 1f11 1111 000e 0404 0404 040e  ................
0000050: 0001 0101 0101 110e 0011 1214 1814 1211  ................
0000060: 0010 1010 1010 101f 0011 1b15 1511 1111  ................
0000070: 0011 1119 1513 1111 000e 1111 1111 110e  ................
0000080: 001e 1111 1e10 1010 000e 1111 1115 120d  ................
0000090: 001e 1111 1e14 1211 000e 1110 0e01 110e  ................
00000a0: 001f 0404 0404 0404 0011 1111 1111 110e  ................
00000b0: 0011 1111 1111 0a04 0011 1111 1515 1b11  ................
00000c0: 0011 110a 040a 1111 0011 110a 0404 0404  ................
00000d0: 001f 0102 0408 109f 009f 1818 1818 189f  ................
00000e0: 0000 1008 0402 0100 00bf 0303 0303 03bf  ................
00000f0: 0000 0004 0a11 0000 0000 0000 0000 00bf  ................
0000100: 0000 0000 0000 0000 0004 0404 0404 0004  ................
0000110: 000a 0a0a 0000 0000 000a 0a1f 0a1f 0a0a  ................
0000120: 0004 0f14 0e05 1e04 0018 1902 0408 1303  ................
0000130: 0008 1414 0815 120d 0004 0404 0000 0000  ................


For fun, you can see the character patterns in binary (here are @ and A, first two in the set):

Code:
0000000: 00000000  .
0000001: 00001110  .
0000002: 00010001  .
0000003: 00010101  .
0000004: 00010111  .
0000005: 00010110  .
0000006: 00010000  .
0000007: 00001111  .

0000008: 00000000  .
0000009: 00000100  .
000000a: 00001010  .
000000b: 00010001  .
000000c: 00010001  .
000000d: 00011111  .
000000e: 00010001  .
000000f: 00010001  .

_________________
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.
nekonoko wrote:
So would those both connect to pin 11 on the 2513 (chip enable), or someplace else (float)?


Yes, the datasheet for the 2513 says it's active low.

However I don't think they would bother tristating the output as the output normally goes straight to a shift register. See if you can follow the trace for pin 11 on the 2513, I would expect to see it wired directly to GND.

_________________
:Indy: :Indigo2IMP: :Octane: :Indy: 4xRS6K 2xHP9K 6xSUN 1xDEC 14xMAC 7xPC 2xPS2
Excellent. Thanks for the sanity check - I'll wire it up sometime this coming week and give it a shot.

_________________
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.
From Herb Johnson ( http://www.retrotechnology.com/ )

Looking at the data sheets only.....

1) Looks to me like the 2513 output enable pin 11 should be connected to the 2716 output enable pin 20. The 2716 also has a chip enable pin 18, I suggest it be grounded so the chip is always active.

2) More important - the 2716 has two additional address lines at pin 22 (A9) and pin 19 (A10). If you don't ground them, they will float high and you'll not address the bottom 1/4 of the ROM as you should. Worse, if they wriggle around and you get intermittent addressing.

3) Of course 2513 VCC at 24 goes to 2716 pin 24; 2513 ground pin 10 goes
to 2716 pin 12 and to ground other points. Wire the data outputs so the lowest five bits are wired through. A look at the binaries on the Web site as linked, shows only the lowest 5 bits are in use.

Data rates? Use a scope to see how fast the ROM address changes. Or do some math based on horizontal scan and chars across the screen but a scope is simpler. 15750 Hz X 80 char = 1.26MHz to read a char from the ROM per line. That's about 800ns, it's probably a little faster than that.