Jump to content
IGNORED

Problem with 7800 EPROM mod - what speed is required?


gdement

Recommended Posts

And now the long explanation of why I'm asking. This may be too much detail, but maybe there's a clue somewhere:

 

I've recently modified my 7800 to use an EPROM BIOS. Unfortunately, it does not work.

System was working fine before the mod.

 

This is the tutorial I followed (by Bruce Tomlin):

   *  74LS04 chip (No other 74x04 variants! I tried a 74F04 and it didn't work.)
   * 28 pin IC socket
   * EPROM chip, either 2732, 2764, or 27128
   * About 5 inches of wire wrapping wire, and a razor blade to help strip it
   * Soldering iron, solder, desoldering iron, etc. 

1) Desolder the old ROM chip. [i cut off the legs instead, and removed them]

2) Strip one end of the wire wrap wire and put it into the pin 22 hole. This is the one to the "right" of the letters "DBM".

3) Insert the 28 pin socket into the holes and solder it down, along with the wire wrap wire. [i didn't test the original ROM here, because I sawed it off above]

4) If you are going to be using a 28 pin EPROM chip, suck the solder out of the holes marked "W1" and desolder the resistor-like thing from the adjacent holes (which are marked "W2"). It may look like a resistor, but if it is, it's zero ohms. Solder the resistor-thing into the W1 holes.  [Done]

5) Take the 74LS04 chip and bend up all but the four "corner" pins (1, 7, 8, and 14). Piggyback it over the 74AHCT08 or 74LS08 chip which is just above the biggest chip on the board. Solder down pins 1, 7, and 14. Now bend up pin 8.

6) Strip off the other end of the wire wrap wire and wrap the end around pin 2 of the 74LS04. Before putting it on the 74LS04, thread it under some resistors and capacitors to keep things tidy. Solder the wire to the pin.

7) Find the trace on the bottom of the circuit board that goes between pin 1 of the 7408 and the ROM pin that you stuck the wire wrap wire into. There is a place next to the 7408 where you will have enough room to cut the trace safely. Cut it.

 Program a 2732, 2764, or 27128 EPROM (or a 28xxx EEPROM if you prefer) with a copy of the 7800 ROM in the last 4K.

9) Put the ROM into the socket and test everything by plugging in a 7800 game. Now you're done! 

 

I initially substituted a 74ALS00 instead of the 74LS04, connecting +5v to pin 2 so it would act like an inverter.

After that didn't work, I bought some actual 74LS04 chips, and have connected it exactly as described in the tutorial.

The 74LS04 is a new part from Jameco, made by TI.

It still doesn't work, symptoms are unchanged:

 

 

Symptoms

With the NTSC standard BIOS, on a TI 72C128-2JL, and 7800 Winter Games in the slot the machine powers up in some random states:

- About half the time I get vertical TIA stripes, often with a random TIA sound coming from the speakers.

- The other half the time I get out of sync video, which might be Maria mode but I'm not sure. It's rolling and often looks like it's tilted at an angle.

Here's a video: badboot_78wintgames.mpg

 

With 2600 Pac-Man in the slot, it has similar random effects, but out of sync video usually still looks like it's TIA bars, just rolling etc.

 

 

With DevOS 0.2, it always flashes the menu on screen for an instant, then breaks up into either unsynced video or else TIA bars.

Rarely, it actually boots to a stable menu screen. This seems to work much more easily if I hold the power button in, then let it go a few seconds later.

 

post-5182-1240994259_thumb.jpg

When I get the menu to boot, it isn't rendered correctly. The selection cursor is replaced with "$" next to each line, then another character (maybe the cursor) scrolls through at regular intervals. Here's a video: devos_glitchy.mpg

No joysticks are connected.

If I push pause, nothing happens.

If I push select, it crashes to unsynced video.

If I push reset, it crashes to a blank screen.

 

 

What I've checked:

By comparison with the 7800 schematic, I've tested proper continuity of all pins on the EPROM against other pins on the board.

 

I've verified that the input to the inverter (74LS04 pin1) is connected to the signal that originally went to ROM pin 22 (CE).

I've also verified that this signal does NOT any longer connect to ROM-22.

And I've verified that the output from the inverter (74LS04 pin2) DOES connect to ROM-22.

 

I've checked all adjacent pairs of pins on the ROM to confirm there aren't any shorts.

 

So everything on the ROM seems to be connected correctly.

 

The 0-ohm resistor at W2 has been moved to W1, and those points connect to the ROM as shown on the schematic.

 

With the system on, I get 5.00v on the EPROM Vcc-Vss pins. Same on the 74LS04.

 

original ROM images are 4KB, they were quadrupled using:

copy /b file.rom+file.rom+file.rom+file.rom file16.rom

and programmed on a BP-1148. This programmer is new to me, but it passes all diagnostics, and after programming it verified the ROMs at 4.7v and 5.3v.

 

I can't find anything wrong. All I can think of is that the EPROM isn't fast enough. My EPROMs are 200ns.

post-5182-1240994089.jpg

DevOS is on an AMD AM27128A-2DC. I also tried NTSC standard on this chip. It was pulled from an old modem.

NTSC standard is now on a TI TMS27C128-2JL. These were purchased on ebay.

 

 

If anybody has a clue why this won't work, I'd be very grateful. In fact, I'm grateful anybody would even take the time to read all that. :)

Link to comment
Share on other sites

Hmm, the only thing I could think of, is that you overheated some component in the process of removing the original ROM. Or perhaps random solder splatter, but I will give you the benefit of doubt there.

 

EDIT: I hope you socketed it and can try and different EPROM, sometimes those old EPROM's might verify fine in the burner, but it means nothing when applied to the real circuit.

Link to comment
Share on other sites

Since the instructions said a 74F chip doesn't work, that suggests that its gate delay is too short, as 74F chips are significantly faster than 74LS. My guess is your new 74LS chip is also too fast and the mod relies on gate delay to function properly.

 

If too-short gate delay is the problem, you can simply cascade several of the gates - you could tie 3 or 5 of them together to increase the delay and still perform an inversion.

Link to comment
Share on other sites

Hmm, the only thing I could think of, is that you overheated some component in the process of removing the original ROM. Or perhaps random solder splatter, but I will give you the benefit of doubt there.

Anything is possible, but I doubt it.

The only thing that's been subjected to much heat was the 74LS08 underneath the LS04, but I don't think it was anywhere close to burning.

The ROM was cut off to avoid the hassle/danger of trying to desolder it. Removing the pins individually is easy, though tedious. After plugging in an EPROM, continuity on it's pins was checked and everything seems to be in order.

 

EDIT: I hope you socketed it and can try and different EPROM, sometimes those old EPROM's might verify fine in the burner, but it means nothing when applied to the real circuit.

Yes, it's socketed. I could try some more chips, but so far I've already tried 2 different ones (both 200ns) so it's probably not a random chip defect. I have a bunch more of the TI 27c128's, but they're all identical down to the date code so I don't expect any of them to act differently.

 

I did see a remark on the 7800 schematic saying that 28-pin 256kbit ROMs are supposed to be a "Power Down" (?) version. I have no idea if that's relevant with 128kbit EPROMs.

 

 

Since the instructions said a 74F chip doesn't work, that suggests that its gate delay is too short, as 74F chips are significantly faster than 74LS. My guess is your new 74LS chip is also too fast and the mod relies on gate delay to function properly.

 

If too-short gate delay is the problem, you can simply cascade several of the gates - you could tie 3 or 5 of them together to increase the delay and still perform an inversion.

That's an interesting idea. It seems odd, since the old CE was faster than it is now, with an inverter in the way. But if 74F didn't work then maybe it does need to be slower. I'll try daisy chaining the gates.

 

I'll have to re-replace the inverter chip, because I already broke off the excess pins last time.

Link to comment
Share on other sites

I tried chaining 3 inverter gates together, but it's still acting the same way. :(

I could still try raising it to 5 gates, but it's hard to believe this inverter is really that much faster than the one Tomlin used when he wrote the tutorial.

 

 

At this point I guess my next move is to buy a very fast EPROM, to rule out chip speed as an issue, or possible workaround for whatever is wrong.

 

Is there any reason this 27c256-55 wouldn't be compatible? I'm inclined to try getting one.

https://www.jameco.com/webapp/wcs/stores/se...roductId=266079

 

28-pin EPROMs are much cheaper on ebay, but all I can find there are 200-250ns ones.

 

 

Also, will the pots on the 7800 board be damaged if I get them wet? If not, I may try washing the board in case there's some loose debris somewhere.

Edited by gdement
Link to comment
Share on other sites

Trying burning the Asteroids BIOS to an EPROM and see if that works.

 

Mitch

 

Tried it, still didn't work but the behavior was interesting.

Typically it doesn't boot at all.

But if I wait longer between attempts, it more often will seem to boot.

When that happens, it seems like maybe the game is running, but I can't tell because everything is out of sync.

This was on another of the TMS27c128-2JL chips.

 

I'll attach another video of what this looks like.

S5030421.mpg

(everything I encode under TMPGEnc locks up on VLC Player, but worked fine in WMP. Not sure about Quicktime or whatever else the Mac/Linux guys use :)

When the snow disappears, that's when I turned it on. I never touch the power switch the rest of the video. It goes through a few phases where the screen image apparently changes.

I definitely have the TV on the right channel, I've fiddled with that and the channel switch on the console many times.

 

 

I also tried writing a motherboard BIOS to an SST29ee020, and it worked fine in the motherboard. Not that this completely proves the programmer is good, but it's some evidence.

For the 7800 BIOS roms, I am supposed to select "BINARY" as the file type, right?

Edited by gdement
Link to comment
Share on other sites

Trying burning the Asteroids BIOS to an EPROM and see if that works.

 

Mitch

 

Tried it, still didn't work but the behavior was interesting.

Typically it doesn't boot at all.

But if I wait longer between attempts, it more often will seem to boot.

When that happens, it seems like maybe the game is running, but I can't tell because everything is out of sync.

This was on another of the TMS27c128-2JL chips.

 

I'll attach another video of what this looks like.

S5030421.mpg

(everything I encode under TMPGEnc locks up on VLC Player, but worked fine in WMP. Not sure about Quicktime or whatever else the Mac/Linux guys use :)

When the snow disappears, that's when I turned it on. I never touch the power switch the rest of the video. It goes through a few phases where the screen image apparently changes.

I definitely have the TV on the right channel, I've fiddled with that and the channel switch on the console many times.

 

 

I also tried writing a motherboard BIOS to an SST29ee020, and it worked fine in the motherboard. Not that this completely proves the programmer is good, but it's some evidence.

For the 7800 BIOS roms, I am supposed to select "BINARY" as the file type, right?

I will suggest a few things that may or may not work.

 

I looked at the 7800 schematic and I find it curious that A14 is connected to the EPROM. A 27128 doesn't have A14 so this will go to Vpp which should be high for normal operation. I have had trouble with EPROMs before when I left Vpp low or floating. Anytime the 7800 accesses an address <$8000 then Vpp will be low. A simple test would be to bend up the pin and attach it to +5v.

 

You should try another brand of EPROM, and/or try erasing them a little longer. The EPROM window must be clean before erasure - I noticed a tiny bit if residue in the picture.

 

I suggested another EPROM because from experience, some CMOS EPROMs weakly drive the data bus while the chip enable is high. While this "should" not affect anything, a system with weak bus drivers could be affected.

 

You may also consider checking the connections on A12 and A13. Those pins actually are not needed, so you could even try bending those up and pulling them high.

Link to comment
Share on other sites

You may also consider checking the connections on A12 and A13. Those pins actually are not needed, so you could even try bending those up and pulling them high.

 

Actually, if they aren't used you should tie them LOW (ground) if you programmed the device starting at $0000 on the EPROM. Otherwise you are selecting a higher memory area that may not have any data in it when you tie unused address lines high.

 

RJ

Link to comment
Share on other sites

You may also consider checking the connections on A12 and A13. Those pins actually are not needed, so you could even try bending those up and pulling them high.

 

Actually, if they aren't used you should tie them LOW (ground) if you programmed the device starting at $0000 on the EPROM. Otherwise you are selecting a higher memory area that may not have any data in it when you tie unused address lines high.

 

RJ

I would agree with you if not for this statement in the mod instructions:

Program a 2732, 2764, or 27128 EPROM (or a 28xxx EEPROM if you prefer) with a copy of the 7800 ROM in the last 4K.
Tying them low wouldn't work.
Link to comment
Share on other sites

Thanks for all the suggestions.

I duplicated the data to fill all space, so as far as I can tell the excess address lines shouldn't matter.

 

Interesting about A14 being the same pin as PGM on the 27c128 - I didn't notice that. I'll try tying that high and see if it helps.

I've also carefully cleaned and erased a few EPROMs for 20mins (I've normally used 10mins). Haven't tried using them yet.

Link to comment
Share on other sites

TI TMS27c128 EPROM, window well cleaned with alcohol and fingernail scraping, erased twice as long as usual.

 

Programmed the Asteroids BIOS on it, since that exactly matches the size of the chip so there's no question about data being properly duplicated or status of extra address lines. Powered up without a cartridge.

Behavior same as earlier - seems to boot about 50% of the time, video out of sync but screen patterns change like maybe it's trying to run an attract mode. The sequence of fuzzy color patterns is the same whenever it does this.

 

Powering up with Winter Games plugged in is less interesting. Generally just get a blank screen or a flat colored one (out of sync). I believe it was often blue, which is probably the correct background color for that game's startup sequence...

 

Anyway, back to no cartridge installed, running the Asteroids BIOS:

Bent up 27c128 pin 27 (_PGM) and soldered it to +5v from the unpopulated expansion port. No effect. I left this attached from here on.

 

Removed connection from ROM-22 (_OE) to the 74LS04. So now _OE is floating.

Powered up, on a few attempts I just got a blank or other static screen, usually with a stuck TIA noise. The appearance of going through an attract mode isn't happening anymore, so this shows the 74LS04 inverter really was doing something.

 

Connected ROM-22 (_OE) to pin2 of the 74LS04. So it's back to just going through 1 gate now, instead of 3. Behavior same as earlier - Asteroids BIOS seems to be doing something but it's out of sync.

 

I've been using a ZIF socket. Removed it, plugged the EPROM directly into the base socket. No effect.

====

 

If I didn't know better, I'd think the video output on the console was hosed. But it was working before the mod, and it still sometimes boots a stable screen with the DevOS 0.2 ROM. I'm thinking instead that the Maria is unhappy. If I ever get a faster EPROM chip I'll be eager to try it.

 

I do have an AMD 27128 that I need to clean and reprogram. It didn't work in the past but at that time I didn't have the +5v on the _PGM pin. This chip may rule out the bus-loading issue batari mentioned, assuming that doesn't affect a 27128 (no 'c').

I'm not 100% sure of it's speed though - I can't find any documentation of whether -2DC means 200ns, or 250ns. AMD lists both -20 and -25 variants in the datasheets I've looked at, but doesn't clarify the meaning of -2.

Link to comment
Share on other sites

I don't think EPROM speed is the problem. It sounds more like something on the system board is damaged. Have you checked the voltage regulator to see if it's outputing a clean steady 5V?

 

Mitch

Link to comment
Share on other sites

Just to update on this, I tried using the AMD 27128 chip (no 'C'), and tied the _PGM pin high, but still no change.

 

At this point I think I need to get another 7800, and desolder the ROM, and convert this one back to normal using that chip. That will tell me if the board has been damaged somehow.

 

I may also try a faster EPROM, but I don't currently have one.

From reading the Maria specs, and looking at the gates involved in the schematic, I think a 200ns EPROM should be fast enough, but I'm not sure I'm reading the specs correctly.

That's also assuming the BIOSes are written to only render "slow" objects from ROM, and copy "fast" objects like DLLs into RAM like the cartridges are expected to do.

Link to comment
Share on other sites

  • 8 months later...

I hate to leave a hanging thread, so just to give this some closure...

 

I made a trade with shadow460, who sent me an original bios mask ROM.

A couple days ago I finally worked on this console again.

 

I reverted the mod back to standard. That means I moved the OE wire back to the non-inverted input, and moved the jumper at W1/W2 back to W2.

Plugged in the mask ROM, and it still doesn't work. I removed the ZIF and plugged the ROM directly into the base socket (aligned correctly).

 

Behavior with this configuration (original mask ROM):

2600 games always boot to TIA bars

7800 games always boot to a black screen

empty slot always boots to colorful untuned video noise. The appearance will change periodically. It actually looks similar to what I used to get when I tried to use the Asteroids bios on an EPROM.

 

Supply voltage is at 5.01v on maria, and tested same on some other chips.

I repeatedly checked continuity on everything I altered, plus many other things, and I just can't find anything wrong. There are some errant scratches on the board from when I was cutting the pins on the original ROM, but I've tested continuity and they're all intact. I've checked countless connections against the 7800 board schematic and everything I've checked is correct. But it doesn't work.

Somehow I screwed up something on this console, but I can't find it.

I've put it in the junk parts drawer.

Edited by gdement
Link to comment
Share on other sites

There are some errant scratches on the board from when I was cutting the pins on the original ROM, but I've tested continuity and they're all intact.

 

Have you tested the pins for continuity with each other? By that I mean pins that are shorted together that shouldn't be?

Yep. I tried every pair of adjacent pins on the ROM, no shorts.

Link to comment
Share on other sites

Do you have a logic probe? If not, they are normally pretty cheap to buy or you can make one yourself. Use it to check that you see activity on the chip select, address and data lines of Sally, the ROM, TIA and MARIA.

I don't have one, but it's something I'll look into. Might be a handy thing to have.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...