The computer “Mikro-80” was made in the Soviet Union in 1980 by a team of enthusiasts before in 1982, the magazine “Radio” began publishing its documentations and schematics. In a nutshell, this was the first accessible personal computer in the USSR; in that era, only single digits of people in the country had the ability to install a home computer – there were only either imported units, or enterprise-grade table computers.
A complete “Mikro-80” contained about 200 microchips. Very few people opted to replicate this complex design; due to this, its popularity was fairly limited.
This is a photo of one of the computer’s authors, Sergey Nikolaevich Popov, with his “child” (photograph retrieved from zxbyte.ru):
Using my newly developed platform Retrobyte, I decided to replicate this computer using modern components. Thanks to the FPGA, I ended up having to use only 7 microchips. This is how my version of the computer looks like:
On this photograph, it can be seen that the computer takes up the smaller portion of the case – the size of the board is only 10x10cm:
- Processor: KR580VM80A (Intel 8080 clone)
- Memory: 64 KB RAM (55KB is accessible by the user), 2 KB ROM
- Output device: home television – 64 x 32 black and white characters
- External memory device: a home tape cassette (speed of exchange – 1500 baud)
In addition to this, my version of the computer has:
- 2 versions of ROM’s – one with the classic “Mikro-80” MONITOR and the second with a MONITOR compatible with the “Radio-86RK” computer (“M/80K”). The ROM is chosen by the toggle switch before the computer’s startup.
- When the original MONITOR “Mikro-80” is chosen, BASIC is loaded onto the ROM before the computer is turned on and can be launched with the command G.
- There are RCA and S-Video outputs for video signal
- An option to output to a VGA display (using the resolution of 1024 x 768 and refresh rate of 70Hz) instead of TV is chosen by the toggle switch.
- The ability to use an external PS/2 keyboard – this is also selected by the toggle switch.
- A speaker was installed, to which the signal from the cassette input and output is copied to (this can be turned off).
- The SD card’s controller initially designed vinxru with the “Mikro-80” adaptation by vlad6502 (massive thanks to those two for their work!).
The SD card only works with the “M/80K” MONITOR, since the ability to use the external ROM implemented by the controller is realised by it.
To launch the shell, you need to load and launch the loader with the commands R0,FF and G. In the loader, I changed the port addresses, since vlad6502 uses the inverted bits A0 and A1 of the address bus in the “Micro-80” version in comparison to the standard variant. Also, I removed a mistake in the desing of the controller, which consisted of the inability to change the directions of the output of the external port.
The controller itself is a small board with Atmega8L micro controller on it, which is connected to the SD card of Retrobyte board and to the FPGA outputs on it. This micro-controller functions at 3.3V voltage, so it can be directly connected to the FPGA and SD card. I made a small mistake with the controller board sizes, so I had to use wires to connect it.
For some reason, my Chinese USBASP programmer refused to upload the firmware onto the micro-controller Atmega8L, so the Arduino Nano was used for this instead.
The processor КР580ВМ80А (Intel 8080’s clone) is also threaded into the FPGA. Vslav performed a reverse-engineer of the processor and made its exact FPGA copy: https://habrahabr.ru/post/249613/, which I used in this project.
The keyboard was made with ordinary tactile buttons (12 x 12 mm), which were soldered onto the PCB. Ordering a board with that size would be much too expensive, so I made it myself. Attempts to transfer the image onto a PCB of that size using a laser printer were unsuccessful – the transfer onto the board was not consistent throughout its whole area. In some places, the toner peeled away or shifted slightly.
Al of this was a good reason to try the new ‘photo-etching’ technology. I bought a one-sided board with the photoresist film already on it, as well as a solution to develop it. I lit the board with an ordinary luminescent lamp. The time that the board was exposed to light was deduced using a small piece of it; that piece was exposed to light as time passed. After the small cut-off was fully developed, the time for the main PCB was chosen judging from the best-quality marks on the test piece.
I liked the result; now this is my preferred method for any future projects.
After the board was etched, I tinned the board, applying a mixture of old soldering paste and liquid flux, before heating it with a thermal fan. Next, I drilled over 350 holes in the board for the buttons.
I also ordered some transparent caps for the buttons, so it would be possible to add labels. When they arrived, they turned out to be too small; I had to 3D print frames for the caps to increase their area for the fingers. The “Spacebar” button I also printed out and mounted onto two of the buttons.
As a result, the keyboard was very compact:
I kept the layout and positioning of the keys from the magazine version of this computer, except I also added a “RESET” button; additionally, instead of the toggle “RUS” button, I installed a usual button. To indicate the current status (RUS/LAT), I added an indicator LED on the keyboard (yellow), and another one to indicate SD card access (green).
Even though the finished keyboard functioned well, the tactile buttons were not the best choice after all – they have little pressing motion and they shift under the fingers when they are pressed. I will probably try out another solution for the next project.
I created the enclosure for the computer in Autodesk Fusion 360. This was my first try of this program; it’s free for hobby use and I greatly enjoyed using it. I exported the PCBs of Retrobyte and the keyboard from KiCAD (where I worked on them) into FreeCAD and from there into Fusion 360. All that was left was to create the body around those boards. The keyboard housing just barely fit onto the working space of my 3D printer. I printed it in PLA since I couldn’t be sure that the ABS wouldn’t warp at the edges of the printer’s working space. Additionally, the PLA is sturdier and less prone to deformation which is important for relatively thin-walled cases like this one.
Not very many programs exist for the “Mikro-80”. Some programs from the “Radio-86RK” computer can also be launched on the “Mikro-80”, but even then most of them require some degree of modification (mainly due to the way “Mikro-80” shows the cursor or its processing of the keypresses). I adapted some and plan to make a separate post about them. For now, here are some photographs of the working computer’s screen:
Here is the content of the SD card which has all necessary files to run SD shell and programs that can be run on “Mikro-80” computer: sd_mikro80.
Catch you later!