Minsk-2 Emulator

(see it in action)

Introduction

This is an emulator of Минск-2 (Minsk-2) – a mainframe computer from the Soviet era, produced around 1963 in the Byelorussian SSR.

We have written the emulator for a task in the Po drátě hacking contest (sorry, the page is in Czech only). The participants were to find a password hidden in the machine's memory, which involved figuring out how the machine works and reconstructing at least a part of its instruction set. You can try your luck, the password is still there.

Online resources about this machine are rather scarce. English Wikipedia contains a fairly short article on the Minsk family of computers, Russian Wikipedia reveals a couple of technical details on Minsk-22, which is essentially Minsk-2 with extra memory. The Russian Virtual Computer Museum tells the history of the Minsk family in its full glory, but it lacks details. The best resource we could find is the book Programmirovanije dlja ECBM Minsk-22 by V. M. Salikov, and the emulator is based solely on that plus a bit of guesswork.

We have written a brief description of the instruction set for our own reference.

When using the emulator, please make sure that your browser is able to display Cyrillic letters, as all error messages are printed in Russian. (This is not historically accurate, the real machine never printed error messages – it used signal lights on the control panel instead.)

Features

We have tried to get as close to the behavior of the real machine as we could, but the description in the Salikov's book is not as detailed as we would wish, so several things remained to be guessed. Here is a list of likely differences against the real Minsk-2:

Input format

The input to the emulator follows a fairly simple format:

; An example

@0050
-62 00 7000 1000
-62 00 7006 1001
-62 00 7400 0000
-00 00 0000 0000
@1000
+65 45 53 53 56 17
+42 56 60 53 44 16

Empty lines and lines starting with a semicolon are ignored. @xxxx sets the memory address (in octal), all other lines specify signed 36-bit octal values to be written to consecutive memory cells. Spaces inside numbers are purely decorative and the parser ignores them.

Examples

Here is a couple of easy example programs for you to try:

Author and copyright

The emulator has been written by Martin Mareš in 2010 and it is copyrighted by its author.

The program is free software. You can freely use it and distribute it under the terms of the GNU General Public License version 2.

Bug reports and suggestions are welcome (especially from people who have encountered the real Minsk), please contact the author by e-mail at mj@ucw.cz.

Download

You can download the source code of the emulator from our FTP server.

It has been developed on Linux with GCC and it should run on all POSIX systems, possibly requiring trivial modifications.