• Please review our updated Terms and Rules here

Willem programmers and reading late seventies vintage masked ROMS

tezza

Veteran Member
Joined
Oct 1, 2007
Messages
4,731
Location
New Zealand
Hi Guys,

I'm looking to replace a faulty 2k ROM in the BASIC ROM-PAC for my Sorcerer.
I had identified the bad chip from examining the 4 ICs in the built-in monitor of the Sorcerer. The faulty chip shows zeros whereas the other three chips have code.

This is the perfect excuse to unpack and use my Dual Powered Standard Willem EPROM Programmer. From research and talking with other guys from the classic computer list it seems like 2716 or 27C16 EPROMS are suitable replacements for the 2k ROM.

I've played with the thing for a bit and have successfuly read 27C256 EPROMS and generally familiarised myself with all the bits and pieces. I'd assumed I could read the mask ROM from Sorcerer? I wanted to read them just as a final check to make sure they squared with what I saw with the Sorcerer monitor program. It Willem unit doesn't seem to be able to read them though. All I get is a repeating pattern of 0406 for 256 bytes then 1416 for the next 256 bytes and so on.

I am sure I have the thing set up right for reading 2716 EPROMS. However I read on the web somewhere that some programmers can't read mask ROMS. Is it likely that is the case here?

Tez
 
Some mask ROMs (I don't know about the ones on the Sorcere) require a CS\ pulse for each byte read; in other words, they don't operate as asynchronous devices. So, a more modern asynchronous EPROM will work to replace them, but not vice-versa.

What is the part number of the ROMs used?
 
Chunk,

Here are the numbers on the chip

AM9218BPC-

It also says
31713 78480P (the other chips say 31711, 31712, and 31714 so it refers to it's place in the sequence I guess. The number at the right is the date?)

and also
EXSB1-3 (number 3 in the 4 chip sequence)

Tez
 
I don't know anything about the sorcerer either but another anomaly is seen in some some Commodore disk drives, which use ROMs that are 2716-compatible but have a high chip select instead of the normal low CS; in fact the three chip selects (pins 18, 20 and 21) can all be mask-programmed differently than the 2716's low, low, high respectively).

But in any case it seems odd that you'd get those patterns; I'd expect all FF's or even ascending numbers. I take it that the bad chip wasn't crucial and you could still read it in the Sorcerer itself to see that it was all zeroes? Can the Sorcerer read a 2716?
 
But in any case it seems odd that you'd get those patterns; I'd expect all FF's or even ascending numbers. I take it that the bad chip wasn't crucial and you could still read it in the Sorcerer itself to see that it was all zeroes? Can the Sorcerer read a 2716?

Not sure if the Sorcerer can read a 2716. I guess I'll soon see (-:

The offending chip was in the ROM-PAC. During the boot up sequence the computer checks the number 4 chip. If it sees nothing it assumes there is no ROM-PAC inserted and defaults to the monitor program. I removed the number 4 chip (essentially disabling the auto start) then looked at the contents of the remaining chips with the monitor. Chips 1 and 2 had code and chip three had all zeros!

I then removed chip 3 and put chip 4 in the chip 3 socket. I did this to check the ROM was ok, (and ascertain the number 3 socket was also ok). Looking at the contents showed code, so my conclusion was it was chip number 3 that was causing the ROM-PAC to hang the machine.

Tez
 
Tez, the part number helps a lot. This is a JEDEC-style mask-programmed ROM, but there are three, count 'em, three chip selects (see, for example, its pin-compatible Motorola equivalent, the MCM68A316E) The selects are on pins 18, 20 and 21.

Now for the tough part--they are mask-programmable, just as the data cells are. So a chip-select can be any one of 8 possibilities. It's a pretty slow chip--150 nsec delay between CS asserted and output.

Hope this helps.
 
Okay, Mike--you were first. I was more intent on finding a datasheet for the 9218 and missed your observation.:confused5:

It could be that this is an edge-selected read cycle. So you'd pluse CS every read cycle. I've certainly seen those ROMs.
 
Thanks guys,

I'm sure it's some problem like that. The Willem can certainly read 27256 ROMS ok and it SAYS it can handle 2716s. It is one of these cheap generic ones though.

I guess for me the important thing is that I should be able to program a 27C16 with the binary I've got and it should work in the ROM-Pac.

This is all new territory for me. Actually it's less daunting than I thought it would be.

Mike at some stage I want to use the burner to replace a couple of my PET ROMS, to get my second board up and running. Can the standard Willem programmer read these ROMS?

Tez
 
I guess for me the important thing is that I should be able to program a 27C16 with the binary I've got and it should work in the ROM-Pac.

Tez,
From the barely legible schematic of the ROM PACK, it seems to me that all three enables (pin 18,20 & 21) are active low. So it looks like the 2716 will not work as-is.

You may need an adapter that connects pin 21 of the 2716 to Vcc and not to pin 21 of the ROM socket which is grounded along with pin 20.

Here is the tech manual. The ROM pack is the first schematic. See if you read it the same way. Note that the parts list on P.46 lists the parts as 2716 "PROMs" which is very confusing.

-Dave

Sorcerer Technical Manual
 
Last edited:
Tez,
From the barely legible schematic of the ROM PACK, it seems to me that all three enables (pin 18,20 & 21) are active low. So it looks like the 2716 will not work as-is.

You may need an adapter that connects pin 21 of the 2716 to Vcc and not to pin 21 of the ROM socket which is grounded along with pin 20.

Here is the tech manual. The ROM pack is the first schematic. See if you read it the same way. Note that the parts list on P.46 lists the parts as 2716 "PROMs" which is very confusing.

-Dave

Sorcerer Technical Manual

Thanks Dave,

I have the technical manual (the real thing) so I'll take a look. If that is the case I guess just a 90 deg bent 21 pin and wire jumper to Vcc would do it, right?

Tez
 
If that is the case I guess just a 90 deg bent 21 pin and wire jumper to Vcc would do it, right?

That should work but if you can find a 24 pin socket, maybe you could cut pin 21 off such that it would not make contact with the regular socket underneath?

You would still need a jumper from pin 21 to pin 24 (Vcc).

In any case, be careful as pin 21 of the board socket is tied to ground so you do not want a short from there to Vcc. Use a little insulation (electrical tape) to make sure there can be no contact.
 
That should work but if you can find a 24 pin socket, maybe you could cut pin 21 off such that it would not make contact with the regular socket underneath?

You would still need a jumper from pin 21 to pin 24 (Vcc).

In any case, be careful as pin 21 of the board socket is tied to ground so you do not want a short from there to Vcc. Use a little insulation (electrical tape) to make sure there can be no contact.
As usual, while the rest of us suppose and surmise, Dave cuts to the chase with concrete information ;-) You da MAN!

I just stick the pins of the socket or IC through a piece of paper to insulate bent-out pins from the socket below.
 
Mike at some stage I want to use the burner to replace a couple of my PET ROMS, to get my second board up and running. Can the standard Willem programmer read these ROMS?
Tez
Depends on the ROM type and the version of the Willem.

If you have an original PET with 7 x 6540 ROMs all bets are off; you'd need adapters to let you use 2716 and/or 2732 EPROMs.

If you have a newer PET version it uses three or four (depending on BASIC version) 2532-compatible ROMs and two (one is the character generator) 2716-compatible ones. If your Willem can handle 2532s then you're in business; if not, there was discussion recently about a simple adapter to let you use 2732s instead ofthe 2532s.
 
Thanks guys,

That's a big help and has clarified things a lot. The EPROMS should arrive by the end of the week. I'll let you know how I get on!

Tez
 
Depends on the ROM type and the version of the Willem.

If you have an original PET with 7 x 6540 ROMs all bets are off; you'd need adapters to let you use 2716 and/or 2732 EPROMs.

If you have a newer PET version it uses three or four (depending on BASIC version) 2532-compatible ROMs and two (one is the character generator) 2716-compatible ones. If your Willem can handle 2532s then you're in business; if not, there was discussion recently about a simple adapter to let you use 2732s instead ofthe 2532s.

I'll dig out the old board and see what I've got. I suspect it is the newer PET version. Actually it would be good to re-do the character generator too. The one in the spare board at the moment is Swedish, a swap from the working board Anders sent over.

My working PET has BASIC 2.0. If I can replace the two BASIC ROM chips that are faulty with EPROMS that will upgrade me to 4.0! I'll check the Willem tonight. It seems to list a huge range of ICs. Hopefully it can do 2532s.
 
Managed to read the mask ROM in the Willem. Made an adaptor (suggested by Pete Turnbull and Dwight Elvery on the classiccmp list) from a socket by bending pin 21 up, and connecting it to pin 12 (ground).

The faulty ROM read all zeros and a good ROM showed code. Just as it had in the Sorcerer. Diagnosis verified.

Now to wait for the EPROMS. Getting there...

Tez
 
If you have a newer PET version it uses three or four (depending on BASIC version) 2532-compatible ROMs and two (one is the character generator) 2716-compatible ones. If your Willem can handle 2532s then you're in business; if not, there was discussion recently about a simple adapter to let you use 2732s instead ofthe 2532s.

Mike,

Nope, my Willem cannot handle 2532 compatible ROMS (bugger!). Can you point me to the PET discussion you refer to? (there are a lot of PET discussions going on!).

Thanks

Tez
 
Managed to read the mask ROM in the Willem. Made an adaptor (suggested by Pete Turnbull and Dwight Elvery on the classiccmp list) from a socket by bending pin 21 up, and connecting it to pin 12 (ground).

The faulty ROM read all zeros and a good ROM showed code. Just as it had in the Sorcerer. Diagnosis verified.

Now to wait for the EPROMS. Getting there...

Tez
Umm, yeah, isn't that pretty well what Dave suggested, although of course from the other perspective, i.e. replacing your ROM with a 2716?
 
Last edited:
Back
Top