This is an attempt to capture all of the knowlege that exists regarding the ROM issues on the Tektronix 7854 Oscilloscope. My machine, serial # B042029 suffered from this problem, hence my interest. If somehow you’re reading this and have any corrections or questions, please chime in.
The Case of the Rotting ROMs
One of the more common problems with the Tektronix 7854 is Rom rot. Over time, the Mostek mask ROMs start losing bits. It’s a well known issue that has been discussed a number of times. Why am I bringing it up one more time? Because I don’t think all of the information has ever been compiled into one place.
There are a number of resources out there:
- The Vintage Tek Museum documents a method of using modern replacement EPROMs with a socket adapter board.
- This Zipfile that the Tek museum’s page references. This contains a text file by Pentti Haka from 1999 that so far is the best explanation I’ve found of what’s going on under the hood (Patched, 16k ROMs)
- This document from 2011 by Goran Krusell that describes much of what Pentti Haka originally outlined.
- Dave’s repair blog has some notes on the subject, that I think ended up in the Tek Museum’s page
- This Zipfile from David DiGiacomo (Patched, 8k ROMs)
- There are a number of threads the TekScopes group. Some of these go back 7+ years, have dead links, and dead ends, but there’s still lots of good info.
Tek 7854 Doesn’t Come On... : 2014 – this subject seems to be broken across a few different threads. David Hess talks about designing a replacement board, but I can’t find any evidence of it.
- 7854 ROM, Again: 2014, 16 messages – talks about the Pentti Haka ROM process.
- Tek 7854 Info, Repair, Restore: early 2016, 109 messages – no new information, besides the mention of a 1.03 ROM version.
- 7854 RAM card upgrade only, any interest?: 2016 – 2017, 128 messages – There’s a lot of discussion on the memory map. Nathan Johnson was working on a prototype of a replacement board, but the trail goes cold.
- 7854 Fixed, now for some newb questions: late 2018, 18 messages – Author mentions he had to forgo the GPIO board to get the new ROMs to fit.
- 7854 firmware: 2013, David Hess talks about firmware versions (info below)
- 7854 ROMs: The Whole Story: This is the thread I started in April 2020.
- And there’s this thread I’ve got going on the Old Tek Scopes Facebook group.
What’s on the board:
Above is a photo of the original ROM board. It contains:
- 16k words of ‘base code’ starting at address 0000, spanning across (4) 8k byte mask ROMs from Mostek (upper left)
- 2k words of patch code 0x8000, spanning (2) 2k byte EPROMs (upper right)
- A Field Programmable Logic Array (FPLA) in the lower left
The FPLA (an early FPGA) watches all 15 address lines and outputs 6 address lines and a flag. When an address is called that has a newer segment of code on the EPROMs, the FPLA decodes the incoming address, puts an altered address on the board’s bus, and sets a flag that switches the chip selects from the main ROM to the patch EPROMs. The patch itself is only a few words, enough to jump to another part of the EPROM where a new segment of code resides. The EPROMs also contains ‘normal’ code that is directly addressed.
A note on versions:
Early versions had an external battery backup option, as evidenced by a pair of banana jacks on the rear, and separate RAM & ROM boards. I believe there to be 2 or 3 versions of the firmware for the original board, denoted by the last two numbers of the part#s. The versions of the EPROMs must match the FPLAs.
David Hess believes there were:
2 Mask ROM versions
3 FPLA versions
3 Patch EPROM versions
Dan on the Teksopes group reports his version 1.03 has the following:
- U100 160-0408-01
- U110 160-0409-01
- U120 160-0445-02 (Signetics 3-state FPLA)
- U200 160-0410-01
- U210 160-0411-01
- U400 160-0466-02 (8x2k EEPROM)
- U410 160-0467-02 (8x2k EEPROM)
On my version, all chips have a -00 suffix.
Dan and I have confirmed that the contents of the -00 and -01 mask ROMs are identical. Thus the difference in versions is only in the FPLA & EPROMs, and the ROM part numbers were only incremented due to a change in supplier, from Mostek to Motorolla.
Holger, who is working on a replacement board (more below), mentions a version 2.0, which I believe is what’s on the later, combo RAM/ROM boards.
I still don’t know for certain how the suffix on the part numbers map to firmware versions.
Late versions (Serial B100000 and above*) had a built-in battery backup on a combined RAM/ROM/Backup board, which occupied the larger RAM slot, forward of the ROM slot.
* That’s according to the change info, but Bob – N3XKB reports his SN#B100078 unit still has the old configuration.
Raymond on the TekScopes board: explains the difference in behavior in a working unit:
With the original version with external battery backup, recognisable by the two banana sockets (red and black) on the rear panel, you’ll see all lights coming on for a few seconds, then most will switch off, you’ll hear a beep (if that’s enabled with the switch on the rear panel) and you’ll see the text “self test complete” on the CRT, if your Readout intensity setting is sufficiently high.
If you then press the “stored” key (slightly to the left above the blue key), you’ll be able to see the horizontal stored trace (a flat line if nothing stored) and you can see the readout text of the stored mode.
With the newer version (integrated ROM/RAM, internal backup), you’ll either see and hear the same or you won’t see anything, apart from the power light and the graticule illumination if that’s on. It depends on the position of the switch on the rear panel that allows you to start up with self test of from backup power.
Late version combined RAM/ROM card
What are our options?
Fortunately, ROM images are available, and we have a few options in how to make use of them.
None of the above EPROMs are in current production, some are easier to acquire than others, and only the 27128A is programmable by inexpensive USB programmers such as the TL866. Suffixes are important, as they denote the access speed. Several people have confirmed that 350nS EPROMs are necessary and have reported intermittent issues in using 400nS chips.
Option 1: Programming pin-compatible EPROMs with original images
This approach uses the original images, and relies on a working FPLA, and matching patch EPROMs. You can use either (4) MCM68766C35 or CY7C64 EPROMs, and the -00 images on the tek Wiki. (also zipped here)
This is a good option for initial troubleshooting, but as it relies on a working FPLA, may still be prone to future issues. The stability of the FPLAs is somewhat unknown, though there have been reports of them being a source of trouble.
Option 2: Programming pin-compatible EPROMs with patched images
Most solutions that have been described elsewhere involve the use of patched images, which already include the patch terms. This obviates the need for the FPLA (in fact it must be removed), but still requires the patch EPROMs.
You can again use either (4) MCM68766C35 or CY7C64 EPROMs to replace the mask ROMs, and if you have anything other than -02 version EPROMs, you must replace those as well with (2) 2716-1 EPROMs.
This zipfile from David DiGiacomo contains the images required.
Option 3: Programming 28 pin EPROMs with combined images
This is the solution documented on the Vintage Tek Museum’s page, and requires (2) 27128A 16k EPROMs, which are also out of production, but easier to acquire and program. Using a pair of 16k EPROMs covers the address space of 4 original 8k ROMs. These require adapter sockets, which may or may not interfere with the ability to retain the GPIB board, depending on who you ask. As with the above option, if you have anything other than -02 version EPROMs, you must replace those as well with (2) 2716-1 EPROMs.
You must also rewire A13 & Chip Select lines now that the address space is handled by 2 chips instead of 4. From the Tek Museum’s page:
Wire A13 by connecting both 27128 pin 26 to U425 pin 1.
Wire new CS. Start by disconnecting the existing CS from U200 and U210 pin 20. We did this by simply not connecting pin 22 in the EPROM adapter (which connects to pin 20 on the PCB) and then flying a new CS wire directly to pin 22 of the EPROM:
Option 1: Add an unused gate by connecting both 27128 U200 and U210 pin 22 to U225 pin 11. Connect U320 pin 13 to U225 pins 12 and 13
Option 2: (We have not implemented this so consider it unverified) Cut and lift U420 pins 9 and 13. They will float high or you can connect these pins to +5V.
This zipfile from Pentti Haka contains the images required.
Option 4: Build a new board
Holger Lübben is working on a new version of the combined ROM Diagnostic board. He’s still testing it and will release it when it’s done.
Notes on the Memory Map
The CPU is the Texas Instruments TMS9900. Here’s another good overview of the chip and it’s pin-out.
Paraphrasing from a few notes across the Tekscopes group:
- The total space is 64K words of 16 bits.
- The LSB of addressing is not used (no byte addressing), so the address bus is physically 15 bits.
- All peripheral devices seem to use dedicated select lines, DMA and interrupt communication with the processor, so they do not occupy space in the memory map.
- Address references printed on the boards are byte level
- The 16 bit addresses run from 0000 to FFFF (128K bytes or 64K words).
- RAM addresses start at A000 and run to DFFF (16K bytes or 8K words).
- Since the LSB is not used, it is 32K words of 16 bits or 64KBytes of total address space.
- The main ROM is 32KBytes so it extends to 7FFF. On the old ROM board,
the patch ROM address space starts at 8000.
Here’s a puzzle: Why did Tek provide two unused memory chip sites on the new board? There is only space in the address map for another 8K bytes or 4K words between E000 and FFFF.
If I understand correctly, with the removal of the patch ROM at 8000, Tek may have changed the RAM starting address from A000 (old RAM card) to 8000 (new combined memory card). That would mean the firmware was changed, and the new ROMs may be able to address RAM from 8000 to FFFF, which is double the old amount. They have only installed RAM for 8000 to BFFF, and the unused sites on the new memory card would be for C000 to FFFF.
Diagnostics boards & Calibration Fixtures
Eggie Siert Writes:
Hi to All,
Nice that Brian put some energy in contacting the buyer of the 7854 with the 067-0961-00 Diagnostic Memory Board.
In Post 62147 I copied a list of Fixtures to service a 7854 (see below):
” In the past I made some overview of 7854 dedicated Calibration Fixtures (7854 Service Manual: Maintenance Section 3-7/8/9):
- 067-0892-00: Tektronix Microlab 1 Mainframe (provides power for service package and in conjunction with the RS232 Compatible Terminal control over the 067-0961-XX Diagnostic Memory Board)
- 067-0911-00: Diagnostic Test Interface (serves as a interface between the Microlab 1 Mainframe and the digital portion of the 7854)
- 067-0912-00: Analog Test Board (used to isolate the analog circuitry from the digital portion) Plugs into A29-Display Board
- 067-0913-00: Extender Board 44-Pin (used with the A30-GPIB and A31-ROM Boards)
- 067-0914-00: Extender Board 80-Pin (used with the A27-MPU and A28-RAM Boards)
- 067-0915-00: Extender Board 124-Pin (used with the A26-Control Logic and A29-Display Boards)
- 067-0961-XX: Diagnostic Memory Board (contains a portion of the service package firmware, as well as 7854 specific troubleshooting stimuli and diagnostics)
- 070-2972-XX: Signature Tables (is a complete and cumulative (historical) document of the firmware in the digital portion of the 7854)
- RS232 Compatible Terminal (In conjunction with the Microlab 1 provides control over the 067-0961-00, the A2-Test Processor Board and the 067-0911-00 Diagnostic Test Interface)”
I never saw on eBay or else the 067-0911-00 Fixture which is really needed to take advantage of the 067-0961-00 Diagnostic Memory Board. The 067-0911–00 and up Manual is on TekWiki and you must have access to both big Volumes of the “Test Procedures for 7854 Diagnostic Troubleshooting using the 067-0911-00 and up Diagnostic Test Interface”
Successful Failure I’m a dumbass
It was this chart that led me to the ROMs in the first place, and unfortunately, it’s also this chart that confirms that I have a bad display board. After reading out all of the ROMs, comparing them against the copies on the wiki, I was able to identify that U210 was bad. After a few false starts, I burned a replacement MCM68766C35, verified it, and re-installed the board.
The new pattern of indicator status lights confirms that:
1) I succeeded in rectifying the problem on the ROM board (YEAH!)
2) The display board is also faulty.
WRONG – Reading Is Fundamental. I have ALL lights on, which is not listed in the self test. Which means It’s getting hung up in booting, and I’m likely not done with the RAM card.