2019-11-22 12:35:44, In: Electronics, Retrocomputing
Mikrosha is a Soviet home/educational microcomputer made in LEMZ plant near Moscow. This looks like a quite consistent 8080 system with a CPU, a few 8255s, 8275 as display controller, DMA controller, timer and 32kB of RAM in 2118 clones (in case of failure I will be able to substitute with modified 4164, knowing that it's possible to put modified 4164 as 4116 and 2118s are like 4116s but single-voltage).
Review of the power supply unit shown that the -5V regulating transistor (total current: 50mA, no protection at all, dissipation: really poor) conducts C-E in both sides. That's why as I measured it initially, it gave -11.3V in -5V line. Replaced the transistor with the first 100mA PNP I had in my "desolder box", voltages returned to normal. The power supply unit has separation coil, transformer and linear regulators for 5V at a few amps and -5 and 12V. These two last voltages are regulated by Zener diodes and quite weak KT-series transistors which are efficient up to 50mA, can work sometimes up to 100mA, but are generally switching ones. The transistor has failed passing voltage without regulation.
Probably someone connected this bad power unit to the computer and it got damaged. I don't know much about 8080 systems, but generally, 8080 when there's no -5V, develops a short condition and a pin "blows". I have no idea what happens to 8080 when it gets -11 instead of -5V. Desoldered the CPU. It seems to work in another 1.2MHz 8080 system, but its operation... "chokes". I replaced it with working one (Soviet too). The laminate is poor and tracks delaminate with heat, but the amount of solder they gave is so small that I rarely have to heat it more than two seconds to suck the solder out with spring-loaded heated pump. Then, I solder the sockets and check with ohmmeter is metallization OK.
After reset, it seems to reset the 8275 as garbage on the screen is no more and I get a nice, black screen. 8275 holds /CS of character ROM high, while CPU does something on the bus, and then there is silence. Both buses go Hi-Z. There is no hold state, as both HOLD (driven by 8257 DMA chip) and HOLD ACK are low.
This is something that rarely happens in most Z80 systems and usually is a sign of bad bus drivers (in this computer everything is just connected with a small amount of glue logic, there are no external bus drivers except RAM signals being separated with 74LS257+7495). Usually there is a rattle on the bus all time. I don't have an experience with 8080, but I think that tape input op-amp which also takes -5V should also be desoldered for verification. I also need to check the memory.
The memory in these computers is diagnosed easily: You put a known good chip on top of not each one and if it starts, it's the bad chip "bridged". Problem: In Soviet chips you have remains of everything on pins. Starting from gold, ending with rust, with different flavors of flux and polymer used for the casing in between. After cleaning with a wire brush and testing - no change. So two RAM chips may be damaged or it's something else.
Wat else could fail was 8255 parallel interface. There are two 8255s in the system. The second is mostly used for external digital interfaces and it's not relevant here. The first one is responsible for:
- A multiplexed keyboard. They had no diodes, they used resistors instead for separation. Also a keyboard set (RUS/LAT) LED.
- Tape I/O
- Gating the timer chip
- Gating Speaker driven from timer chip.
The first one, when fails, prevents the timer to boot up completely. This should be audible as constant flow of garbage from speaker, but the timer boots, emits constant signal and speaker is silent. So no gating, let's socket both 8255 and check them.
Yes, the first one was bad. After replacing with another one, the computer started emitting a constant tone. Something was happening on the bus all time, but no signs of life from keyboard and display.
Memory. Now I decided to shotgun-replace this. I know enough about KR565RU5 and RU6, they fail, they fail many times (in fact I had one case in which they were good, even Polish factories not used them and got more expensive, imported, western ones bought for rare dollars), and this computer had two types of memory installed: From 10th week of 1990 and from 5th week of 1990. There could be something wrong. So I just socketed it all. As I had soldering iron ready, I did the same with EPROM and tested it in programmer - it is OK.
After testing my RAMs in trusty ZX Spectrum (putting them one by one instead of one 4116) I found a chip bad. Reworked a 4164 and installed them in Microsha with all other working comrades.
The computer seemed to initialize. The timer chip got its signals formed, 8255 initialized properly, a short click came through a speaker and RUS/Latin LED blinked when its set its ports. Pressing the keyboard RUS/LAT key (which should beep and light LED) clicks a speaker. So the computer roughly works, but fails somewhere. Let's hunt for strange signals even more.
After "blowing" a whole address bus and /CAS, I found a strange thing with /RAS signal. It was held high all time, even when it should be low. It means that the memory, instead of a nice array, for a CPU got a form of a narrow "gut" in the area. But why does it happen?
And now I encountered the very specific phenomenon a second time. This looks to be specific to Soviet chips, I call it "cross-short", I encountered it first with equivalent of 8286 bus controller. It looks like a cross-device short, a failure which should be visible in factory tests (two outputs of two separate devices are shorted), but it somehow develops when the chip fails in circuit. Remember these KP11 (74256) for driving RAM signals? There was a problem. What's more interesting, if you put all high and all low in these drivers during test, you will not get this chip diagnosed as bad, devices must be tested separately.
After replacing the faulty multiplexer it booted up and greeted me with its monitor firmware.
Now about the faulty CPU. I put it back in Microsha and ran a simple assembly program which wrote and read memory. It... just started to fall apart after ca. 30 seconds. In the oscilloscope it looks like CPU gives a "spikes" instead of pulses when needed, so devices get wrong data and addressing errors start cumulating until screen RAM becomes corrupted too and refreshing starts to degrade data. Under 1MHz, the CPU works very well, in 1.2MHz it "chokes" and in 1.77MHz it... just becomes terribly unreliable.
However, it looks like it does not load tapes. Here is the test procedure for op-amp I performed:
1. Connect power and ground to +5V/GND
2. Connect output to inverting input
3. Apply +5V to non-inverting pin. There should be same or similar voltage on output.
4. Disconnect non-inverting input and connect to GND - output should drop.
So I found that the op-amp also did not survived. Replaced with LM301, works.
An American agent among Soviet comrades...
So now the computer works and it is possible to program and load BASIC or programs. There is even Tetris for it!