Browsed by
Month: March 2022

An old processor

An old processor

It is amazing how few options are left if you want to build/design your own 16-128 node multiprocessor retro-supercomputer. In terms of what is actually still in production and comes in a reasonable to solder (non BGA) package like a QFP:

Freescale MC68EC000 (68k architecture)
Some various x86 (386 and 486) varieties.
A number of Z80 variates
6502/65C816
A few ARM cores, although most are microcontrollers not standalone.

In some ways the best option is to implement one of the classics (like a MIPS R5000) on an FPGA ( of course that certainly isn’t in a QFP package )

Anything obvious I am missing? Also helpful if they are not crazy expensive, if building say a 64 or 128 node machine.

Getting the Televideo 1605 Working!

Getting the Televideo 1605 Working!

Success! After some more investigation, I have been successful at getting this 40 year old Televideo 1605H working. The path was a bit more circuitous than I would have liked. When I last debugged I had determined the memory failure look like any write to memory followed by a read from memory would return what was just written, even if reading a different address. That suggested something was amok with the address lines going to the DRAM. I did some digging around in the schematic and had a few candidate parts that could be the problem source.

One such part was a 74LS158 used to multiplex the row and column address from the address bus. There are 2 of them and they have 8 bits in and 4 bits out each, plus a select line. I put the logic analyzer on both the inputs and the outputs as well as the RAS and CAS line for that bank. Sure enough I could see the RAS and CAS lines active while the BIOS RAM test was executing. Looking closer I could see the output of the 158 was staying with just one set of address lines (the high ones), and not switching to the lower address lines during the CAS line assertion. No doubt this would result in memory all accessing the same location for each ROW bank of memory.

Since the 158 didn’t seem to be switching, I took a look at the S input which should be toggling between each input in sync with the CAS and RAS lines. No changes at all so I look at the schematic to see the source which was a signal called RAM_SELECT which comes from another IC U43. U43 is a ‘Delay Line’ part which delays the switching of the multiplexer just long enough for the ram chips to latch in the ROW address. The 5150 PC has a similar part in its design.

I look around the board to find U43, and I find the socket, but no IC! Sure enough there is a socket labeled U43, but nothing in it. With no IC, there is no way that select line would ever work, and no way the machine could have worked. It isn’t any easy part to replace because I have no idea what the delay spec is. Since this machine was supposed to be working, I start digging around in the rest of the machine. Sure enough buried inside the floppy drive is the IC, bouncing around. It must have come off the board during shipping and made its way into a nice hidden location. I noticed the empty socket before, but there are several others on the board for other expansion use case so I didn’t think anything of it.

After getting the part back to its home the machine POSTed right up and just needs to be reassembled. It was an interesting learning opportunity and I was happy that the debugging lead the the right part, albeit missing.

Next up is to completely disassembly the machine so I can retrobright the case.

Fun Times!

Televideo debugging

Televideo debugging

A bit more debugging on my non-working motherboard. Before I dig out the big and complicated logic analyzer I thought it would be good to take a crack with a simple USB based one. Only 16 channels, but enough to see some of the address bus and the CE/OE for the BIOS.

Sure enough, the BIOS is working and code is running, and the failure is the result of the initial 4K DRAM check failing. I did find the HLT instruction, and sure enough if the DRAM test subroutine fails it will execute the HLT. You can see the HLT at F773, and the DRAM test routine at F89D which returns (using a hard coded return address fixed up by loading SP before the call) setting zero flag if test was successful. It does a full write to the first 4K of memory with ‘AA’, but fails on the very first read (address 0).

I also checked the parallel port, and sure enough you can see the output status from the BIOS, which shows it not completing the first DRAM check. Interesting that it was in there but never mentioned anywhere.

I tested the DRAM, and replaced it with known good DRAM but no change, so there must be a problem with either the RAM decode or one of the buffers.

Next up I’ll setup capture on the DRAM buffer and see what is is reading/writing. And I may give that alternate bios a try which does more testing and display/speaker output, plus IO port 80 output.

Getting the Televideo 1605PC

Getting the Televideo 1605PC

I recently got a Televideo 1605 PC, which was one of the original early ‘PC compatible’ clones. It was also the first PC I had, so I have lots of good memories learning X86 assembly on it. It was a very ‘compatible’ clone of the day as it could run Microsoft flight simulator, a benchmark of sorts. I got it off eBay, and the seller says the machine was booting when it was packed. It arrived in good condition with no obvious damage, but does not boot.

The Televideo has an attached monitor, plus a sidebar floppy/hard drive combo. The machine appears to not POST at all. No beeps, no activity. My first thought was that perhaps the monitor was just dead, but even with no monitor you would still get the POST beep and floppy seek. I removed the floppy and hard drive module, and check the primary power supply. Good power on +5,+12, and -12. I checked the speaker, which is good.

I removed the motherboard and did a visual. A few blue wire mods that are probably factory, plus 4 ICs that look to have been removed and replaced based on the flux residue. I clean up the residue and verified the IC connections.. all look good. Still no POST. I removed the processor (8088) and tested with my dedicated processor tester, and it works fine. Replace, no POST. I replace each of the major subsystem ICs that are socketed with known goods, and still no POST. I also removed RAM down to the system minimum, but even no RAM would not prevent POST (since POST is from the EPROM BIOS).

I did a bit of debugging with the scope and the CLK signal is a good 4.77Mhz 33% duty cycle clock, and the processor does seem to be sequencing. It looks like code runs for a bit then executes a HALT instruction, which is typical in the original IBM PC BIOS when doing system tests that fail. I pulled the BIOS EPROM out and downloaded it so I could reverse engineer the BIOS.

Next up is to hook up a logic analyzer so I can watch the processor execute instructions and see where things are going off the rails. This BIOS mostly likely doesn’t output POST codes to 0x80 like the later IBM AT, so I will probably have to dig into the BIOS initialization to figure out what is wrong. I have a copy of the Televideo Technical Manual, which has a schematic, so it will be easy to track things down.

Any other obvious paths I am missing? Anyone have, or know someone who has a 1605?

Retrobrighting

Retrobrighting

I made my first try at retrobrighting. It a process for turning older ‘yellowed’ plastic back to the original white. I made a UV exposure bin with UV LEDs and some reflective foil, and then filled it with a mix of hydrogen peroxide and distilled water.

This is an old Mac SE that needs some restoration work. I’ll recap the main board as well since those electrolytics are old. The floppy drive also needs some cleaning and lubrication.