Electronika BK

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Electronika BK
Elektronika BK0010-01
DeveloperNPO Scientific Center
TypeHome computer
Release date1984; 38 years ago (1984)
Introductory price600–650 Soviet rubles
Discontinued1993; 29 years ago (1993)
Operating systemOS BK-11, ANDOS; FOCAL (programming language), Vilnius BASIC (ROM embedded), etc.
CPUK1801VM1 @3MHz (BK-0010), @4.6MHz (BK-0011), @4MHz (BK-0011M)
Memory32 KiB
Marketing targetPersonal computer users

The Electronika BK is a series of 16-bit PDP-11-compatible fanless home computers developed under the Electronika brand by NPO Scientific Center, then the leading microcomputer design team in the Soviet Union. It was also the predecessor of the more powerful UKNC and DVK micros.


First released in 1984 (developed in 1983), they are based on the К1801ВМ1 (Soviet LSI-11-compatible CPU) and were the only official (government approved and accounted for in economic planning) Soviet home computer design in mass production.

They sold for about 600–650 Soviet rubles. This was costly, but marginally affordable as the average Soviet monthly wage then was about 150 rubles. So they became one of the most popular home computer models in the Soviet Union, despite having many problems. Later, in the 1990s, their powerful central processing unit (CPU) and straightforward, easy-to-program design made them popular as demoscene machines. BK (БК) is a Russian abbreviation for "бытовой компьютер" – domestic (or home) computer. The machines were also used for a short time as cash registers, for example, in the GUM department store.


Vilnius BASIC on a BK-0010.01

The BK series was essentially a barebones machine, with no peripherals or programming tools. The only software available at the launch, except read-only memory (ROM) firmware, was an included magnetic tape with several programming examples (for the languages BASIC and FOCAL), and several tests. The ROM firmware includes a simple program to enter machine codes, BASIC and FOCAL interpreters.

While the BK was somewhat compatible with larger and more expensive DVK professional model microcomputers and industrial minicomputers like the SM EVM series, its 32 KiB memory, of which only 16 KiB was generally available to programmers (an extended memory mode supported 28 KiB, but limited video output to a quarter of the screen), generally precluded direct use of software for the more powerful machines. The DVK became a popular development platform for BK software, and when the BK memory was later extended to 128 KiB, most DVK software could be used directly with minimal changes.

Homebrew developers quickly filled this niche, porting several programming tools from DVK and UKNC. This led to an explosion of homebrew software, from text editors and databases to operating systems and video games. Most BK owners expanded the built-in RAM to at least 64 KiB, which allowed easier software porting from more "grownup" systems, and as these upgrades often included floppy drive controllers, individuals creating disk operating systems became something of a competitive sport in the BK scene. Games and demoscene communities also flourished, as its anemic graphics were offset by a powerful CPU.

One of the operating systems was ANDOS, although officially the computer was shipped with OS BK-11, a modification of RT-11.


The machine is based on a then powerful 16-bit single-chip K1801VM1 CPU, clocked generally at 3 MHz.[1] It is almost perfectly compatible with Digital Equipment Corporation's LSI-11 line, though it lacks Extended Instruction Set (EIS) and further instruction set extensions. The manufacturer also closely copied the PDP-11's internal architecture. Each model has one free card slot which is electrically, but not mechanically, compatible with Q-Bus. The first versions has 32 KiB onboard DRAM, half of which was used as video memory. That is extended to 128 KiB in later models, with video memory extended to two 16 KiB pages.

Video output on all models is provided by the K1801VP1-037 VDC, a rather spartan chip. It is actually a standard 600 gate array, or uncommitted logic array (ULA), with a VDC program that allows for two graphic video modes, high-resolution (512×256, monochrome) and low-resolution (256×256, 4 colors), and supported hardware vertical scrolling. Later models has 16 hardwired 4-color sets selectable from 64 color palette. It does not support text modes, but simulates two via BIOS routines: 32×25 and 64×25. Some operating systems such as ANDOS have managed to output text in 80×25 mode when displaying documents imported from IBM PC, by placing characters more densely. Output is through two separate 5-pin DIN connectors for a monochrome TV or color TV/monitor. Sound on all models is initially through a simple programmable counter connected to an onboard piezo speaker. Later, the General Instrument AY-3-8910 became a popular aftermarket addition.

All models also has a 16-bit universal parallel port with separate input and output buses for connecting peripherals such as printers (Eastern Bloc printers used the incompatible IFSP (ИРПР) interface instead of the more popular IEEE 1284 (Centronics) port, so Centronics printers needed an adapter), mouse or Covox digital-to-analog converters (DACs) for sound output, and tape recorder port for data storage. Later models includes a manufacturer-supplied floppy drive controller (that can be plugged into a Q-Bus slot) by default. It was available for earlier models as an aftermarket part, but homebrew ones (that also often extends rather anemic 16K memory of original BK) are more popular. A cottage industry for such peripherals and mods flourished.


BK0010-01 System Board


Электроника БК-0010 is the first model (originally released in 1983, the serial production since mid-1984). It has a pseudo-membrane keyboard (an array of mechanical microswitches without keycaps, covered by flexible overlay), 32 KiB RAM, 8 KiB ROM with BIOS (chip K1801RE2-017), 8 KiB ROM with FOCAL interpreter (K1801RE2-018), 8 KiB ROM with debugger (K1801RE2-019) and one free ROM slot, and its CPU is clocked at 3 MHz. A tape recorder is used for data storage in the factory configuration.

This model was criticized for its uncomfortable keyboard – while mechanical in nature, lack of keycaps lead to the same unsatisfactory tactile response, that was seen as unacceptable when the machine was used in home or educational settings, although such keyboard could be easily sealed fully, so this version found wide use as an industrial controller. Other points of criticism included the archaic FOCAL programming language supplied by default and the complete lack of peripherals and software. While all hardware was well documented and easy to work with, the machine was delivered with no programming tools.


The follow-up version, БК-0010.01 (sometimes referred to as -0010-01), is essentially the same machine, but with a conventional full-travel keyboard and a Vilnius BASIC p-code compiler in the ROM, correcting the weakest points of its predecessor. While the BASIC dialect used is quite powerful and well-optimized (it is actually a somewhat scaled-down clone of MSX BASIC), the keyboard is a mixed blessing. While it is much more comfortable to work with, its quality left much to be desired, and the keys were prone to sticking, significant bounce and wore quickly, though a model with a further improved keyboard became available later. The FOCAL interpreter was not dropped but instead shipped on an external ROM cartridge that could be inserted into the Q-Bus slot.


Электроника БК-0010Ш is a model intended specially for school use. It can be either the −0010 or −0010.01 model but was supplied with a special current loop network adapter rated at 19200 bits per second (bps), which can be inserted into the Q-Bus slot. Based on ULA chip K1801VP1-035 (and later on K1801VP1-065), the adapter is compatible with Digital Equipment Corporation (DEC) DL-11 and KL-11 serial interfaces, but without modem control bits. It also includes a monitor, usually a modified Yunost' compact TV, since in school settings, it was not expected to be connected to household TV.


BK-0011 was released in 1989. It has 128 KiB of RAM divided into 16 KiB pages, its CPU is clocked at 4 MHz by default. It includes a newer version of BASIC in ROM and 16 selectable video palettes, which were almost universally criticized by users for their odd color combinations. It has a floppy controller, but the drive was still sold separately.


BK 0011M

Some changes in the BK-0011, while minor, made it incompatible with earlier -0010 models. Especially, it cannot load 0010 programs from a cassette tape. Even if it could have loaded them, crucial subsystems, such as sound, are still incompatible. Public outcry forced the manufacturer to redesign the machine, restoring compatibility with earlier models. The resulting model, the BK-0011M, quickly went into production, and most BK-0011 series computers are actually BK-0011Ms. Since the modifications were minor, most of the handful of -0011 models that made it to market were upgraded to -0011M models by enthusiasts.


It was not uncommon among owners to install one or two mechanical switches that made using the computer more convenient. Some of the common mods were:

  • Reset push-button. Programs often hung. Also, some games did not have a properly implemented Exit function. Without this button, the computer had to be reset by power cycling, which eventually led to a worn out power switch on the external power supply. The reset interrupt can be caught by the operating system, so under such systems (for example, ANDOS, MK-DOS), the reset button exits to the OS's file manager.
  • Pause switch. This switch activated hardware suspension of instruction execution in the processor. The pause switch was useful for pausing games, most of which did not have a pause key. A few games, however, did not behave gracefully after being returned from suspension, because the programmable hardware timer built into the processor chip is still running while the instruction execution was suspended. The BK also has a software key combination for pause.
  • Clock speed switch (turbo switch). This changes the processor clock speed from the standard 3 MHz (BK-0010* series) to 4 or 6 MHz, or from the standard 4 MHz (BK-0011* series) to 3 or 6 MHz. Not all processor samples work reliably at 6 MHz; the possibility of such overclocking has to be determined experimentally for each sample. Switching the clock speed changes the pace of dynamic games. The turbo switch usually has to be installed together with the pause switch, because the simplest circuit for switching the clock speed produces bad waveform shapes in the clock signal due to contact bounce when the mechanical switch was flipped, running the risk of hanging the software execution unless the processor is in the suspended state.
  • Sound on/off switch, or sound volume knob, which adjusts the volume level of the internal piezoelectric speaker using a potentiometer. At this same time as adding this, the modder can replace the speaker with a louder one.

These modifications are relatively simple and can be carried out by users who knew how to handle a soldering iron. Most of the people in the program sales cottage industry can also do the mods for a small fee. Enthusiasts also managed to connect more advanced devices to BK series computers: they developed a hard disk drive (HDD) controller, and 2.5" HDDs were successfully used with BK computers. Other popular enhancements are AY-3-8912 sound chips and Covox Speech Thing.


There are various software emulators of BK for modern IBM PC compatible computers. An emulator is able to run at a much higher speed than the original BK.

There are also fairly complete re-implementations of the BK for field-programmable gate array (FPGA) based systems, such as the MiST.[2]

See also[edit]


  1. ^ It is relatively easy to overclock the CPU, but slow dynamic random-access memory (DRAM) made overclocking difficult. The most popular turbo speed is 5 MHz.
  2. ^ "BK0011M (USSR retro home computer) core for MiST board". 2016-03-29. Retrieved 2016-04-16.

External links[edit]