In Soviet Russia, Computer Programs You

We admire [Alex Studer’s] approach to schoolwork. His final assignment in his history class was to do an open-ended research project on any topic and — this is key — using any medium. He’d recently watched a video about how Tetris came from the former Soviet Union, and adding in a little eBay research set out to build a period-accurate Soviet computer replica. The post covers the technical details, but if you want to read the historical aspects the school paper is also online.

The first decision was what CPU to use and [Alex] picked the U880 which is a Soviet Z80. All the usual parts you would use with a Z80 have U880 equivalents, so that fleshed out the rest of the design. There were a few concessions made. Instead of a bulky analog monitor, the replica uses an LCD display. Instead of an audio cassette recorder, the new machine uses a CompactFlash socket. We don’t think those are bad decisions. He also replaced the Soviet EPROMs with modern parts. Although the original parts appeared to program correctly, they were unreliable in operation. [Alex] theorizes that his programmer did not generate enough programming voltage to fully program the cells, so they would pass at the low speeds used by the programmer, but not work in the actual circuit.

One interesting lesson: the Soviet ICs have a 2.5mm pin spacing instead of 2.54mm! Socketed chips had enough leeway that you could force fit the parts, but for parts that soldered directly to the PCB, [Alex] built a dual footprint that could accept either spacing.

If you want to duplicate the machine, there are a few GitHub repos. There’s the hardware design, a custom Z80 assembler, firmware, and an emulator if you want to play with the machine virtually.

We’ve actually talked a lot about computers from the other side of the iron curtain. We’ve also seen some at some vintage computer festivals.

17 thoughts on “In Soviet Russia, Computer Programs You

  1. I just finished working on a project where low programming voltages for EPROMS caused headaches. My partner was using a modern USB interfaced burner that only can go to 21 volts, and the 2716 parts in this vintage project required 25 volts. My “vintage” mod-emup burner has proper 25 volt capability and yielded reliable parts. He ended up hacking his burner so it can achieve 25 volts and that solved the problem on his end.

    So I think that Alex could well be correct.

  2. U880 was not Soviet Union IC. It was DDR IC.

    Also too strange to read about “soviet” Z80 based computers, nearly all of them was just a replica of Sinclairs. Nothing interesting at all.

    However, if you want real Soviet home computer you should turn to K1801VM1 series processors and BK0010 series computers. K1801VM1(2,3) are unique 16-bit devices with PDP-11 instruction set on one crystal completely designed in Soviet Union without any western analog. So, when western home computers was mainly 8 bit with Intel or Motorola instruction set, real native Soviet home computers had 16-bit processor with PDP-11 instruction set. :) They was real Soviet machines, not clones of western ones, and they are much interesting than all that Z80 stuff.

    1. “…real native Soviet home computers had 16-bit processor with PDP-11 instruction set. :) They was real Soviet machines, not clones of western ones, and they are much interesting than all that Z80 stuff.”

      The architecture of the PDP-11 is well worth copying. The Motorola 68000 has a very similar architecture and instruction set.

      1. No it was not! It was part of Warsaw pact though, and later reunified with West Germany.

        What you said is basically the same as claiming that UK is part of US. Just because it is dancing to the tune.

    2. The Instruction Set Architecture (PDP-11 in this case ) is so fondamental to CPU design, as it determine the programming model (registers set), that saying “unique 16-bit devices with PDP-11 instruction set on one crystal completely designed in Soviet Union without any western analog.” is rather irrelevant.

      1. So, please show me any western IC with complete PDP-11 processor implementation on one crystal as “original” IC 1801VM1 was cloned or copied from.

        Of course, most Soviet IC’s was just direct clones or even layer-by-layer copies of western chips. But not in that case. There was nothing to copy or clone, just because western chips with PDP-11 instruction set does not exist at all. That 1801VM1 chips was developed from scratch, only with instruction set as origin. I’s like writing some processor emulator, but in hardware. qemu-arm is not a clone or some copy of ARM at all, despite having same command set and registers.

        The point is that Soviet 8080, 8085, Z80, 8086, 8088 clones have no significant difference from original IC’s. They are even pin-compatible. The main difference is low reliability and low quality, and that’s all. If you build a computer using that Soviet IC’s you will just get ordinary computer, with ordinary processor manufactured by another company, nothing more. Just like using ST Z8400 instead of Zilog Z80. You could easily replace Soviet IC with original one and nothing will change at all. I just can’t understand the point of building, say Z80 computer from some lower quality parts when you could use oriinal Z80 and, say, original i8255, i8251, i2716 and 62256.

        But if you really want something true Soviet, where only Soviet parts could be used – the Soviet 1801 series is what you want. You could find not only processors, but periferals and even UVEPROM with pure USSR origin and build something really interesting and unique.

  3. In Soviet Russia U880 was NOT available at all :-) Most available processor was КР580ВМ80А which is i8080 clone requires additional negative voltage for isolation. Production of locally made Z80 clones was started in 1991.

    1. > In Soviet Russia U880 was NOT available at all :-)

      Yes, that’s true. You could not buy U880 officially in USSR. But we salvaged U880 for our DIY Spectrum clones from broken Robotron matrix printers. :)

  4. Instead of a dual footprint I think enlarging the holes would have been sufficient, especially for parts smaller than DIP40. For DIP40 the offset is 076mm over the whole chip length, so 0,38mm to either side. Normally the holes are 0,8mm, you need 1,2mm for DIP 40 and about 1mm for DIP24 or 28.

  5. I don’t want to be picky about past time politics, but the DDR (eastern germany) was not part of the soviet union. We may have been good friends, but it was not the same country :-).
    Anyway – its always interewsting to hear about a good use for old parts … I have a hand full of UA880 by myself waiting for a proper project.

  6. > One interesting lesson: the Soviet ICs have
    > a 2.5mm pin spacing instead of 2.54mm!

    Yes, I know this pain. It is interesting, because it seems to only apply to the Soviet chips. Parts manufactured in Poland, DDR or Czechoslovakia are normal. It was a little bit of surprise for me, when I encountered this issue for the first time, while building a replica od CA80 (Polish educational microsystem with hex keyboard and 7-segment display, kind of a KIM-1 with a Z80 CPU). I decided to use historically correct parts – the ones that were easiest to get in Poland during late eighties (DDR clone of Z80, Soviet clones od 8255, Polish TTL chips etc.). Everything went well until I had to put Soviet 8255 into precise socket. I succeeded eventually, but a lot of pin bending was required. ;)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.