Saving ROM data from Tek 4052
Hi everyone,
I'm reviving this thread once more after aeons to post an update on my 4052. Since I'm now working abroad I only have a few days of the year at home to get physically near the thing. Having said that, I was between jobs earlier this year and resumed my attempt at restoring it, albeit still with little progress.
In the meantime I actually managed to get a second set of 4052 boards from Canada, and they exhibit the same symptoms as the original ones. These are a slightly newer revision, as are the ROMs. This was released just before the 4052A, which differs substantially and uses EPROMs.
I finally got scans of the tech manual, without which I'd have no chance in hell of figuring out the convoluted architecture. As I understand, the 4052 emulates an enhanced (i.e. 16 bit) 6800 with custom extensions as four AMD2901 nibble-slice CPUs. The enhanced instruction set is actually documented in the manual.
All of the support logic (addressing, branch, I/O, interrupt, data buffering) is implemented from scratch using mostly standard TTL chips rather than the integrated solution AMD's 29xx family offered, presumably because the custom logic was more flexible. All in all, I find the architecture mindboggling, and it really pushes my (admittedly humble) digital electronix prowess to the limit. But I consider it a valuable lesson in learning by doing.
To recap, the basics -- RESTART signal and the PSU -- check out ok. The thing just sits there with indicator lights cycling, a *plop* coming from the speaker, and a green expanding blob on the screen. No response from the keyboard, and entering a 10 FOR..TO..NEXT loop doesn't flash BUSY. According to the manual, the firmware does rudimentary checks and stops on error; this doesn't happen. The parity and HW error LEDs don't light either.
I checked the boards with my digital logic probe (Tek 7D01 plug-in for the 7603 scope), and I discovered the 4052 gets stuck in a tight two-address loop after power-up: BNE -2. That didn't really make sense to me, and I suspected the firmware ROMs.
Since the 68764 EPROMs I had were definitely too slow to replace the mask programmed MK36000 ROMs, I actually resorted to building adaptor sockets for 2764 EPROMs. I checked the adaptors and the firmware addressing logic by programming 2764s with NOPs and checking the address lines for monotonically increasing values; each bit toggled with double the frequency of its most significant neighbour.
I then reprogrammed the 2764s with Christian Corti's dumps from
ftp://ftp.informatik.uni-stuttgart.d...tronix/tek4052. These correspond to the firmware on the earlier board set I have. Lo and behold, the 2764s still executed the identical loop as the MK36000s, so apparently the firmware is intact and its supposed to do that; but what's it waiting for? There is no activity on the I/O board when I hit a key, nor is an IRQ raised. The PIAs on that board don't appear to be even addressed.
I also checked the microcode fetched for the loop on the ALU board, and decoded the signals by hand from the manual; while not all of it made sense to me, it does indeed appear to be waiting for an interrupt that never comes. Having said that, I'm not ruling out that the microcode ROMs -- which I can't read with my Data I/O -- could be dodgy on both ALU boards I have for testing.
Note that I test the boards ex situ after removing the PSU. No peripherals are attached, so if it's waiting for those, it should time out. I only briefly connected the keyboard for testing -- with no effect at all, as it doesn't appear to be even scanned.
At this point I don't know where to go from here; is there something wrong with the microcode or am I overlooking something obvious?
Thanks & best regards,
--GT