Electronika BK

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

Overview
First released in 1985 (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 roubles. This was costly, as the average Soviet monthly wage then was about 150 roubles. Despite their cost, they became one of the most popular home computer models in the Soviet Union. 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 "бытовой компьютер" (bytovoy kompyuter) – domestic (or home) computer. The machines were also used for a short time as cash registers, for example, in the GUM department store.

Software


The BK series is a bare-bones machine, with no peripherals or programming tools. The only software available at the launch, except read-only memory (ROM) firmware, is 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 is 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 is generally available to programmers (an extended memory mode supports 28 KiB, but limits video output to a quarter of the screen), generally precludes direct use of software for the more powerful machines. The DVK became a popular development platform for BK software, and most DVK software can be used directly with memory capacity extended to 128 KiB.

Hobbyist 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 allows easier software porting, and as these upgrades often include 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 poor graphics are offset by a powerful CPU.

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

Hardware
The machine is based on a 16-bit single-chip K1801VM1 CPU, clocked generally at 3 MHz. It is 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 version features 32 KiB onboard DRAM, half of which is 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 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 supports hardware vertical scrolling. Later models have 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. The General Instrument AY-3-8910 is a popular aftermarket addition.

All models also have 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 IEEE 1284 (Centronics) port, so Centronics printers need an adapter), mouse or Covox digital-to-analog converters (DACs) for sound output, and tape recorder port for data storage. Later models include a manufacturer-supplied floppy drive controller (that can be plugged into a Q-Bus slot) by default. It is available for earlier models as an aftermarket part, but homebrew ones (that also often extends 16 KiB memory of original BK) are more popular.

BK-0010
Электроника БК-0010 is the first model (originally released in 1983, the serial production since 1985). 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 lack of peripherals and software. While all hardware was well-documented and easy to work with, the machine was delivered with no programming tools.

BK-0010.01
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 powerful and well-optimized (it is a scaled-down clone of MSX BASIC), the keyboard still has shortcomings. While it is much more comfortable to work with, 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 can be inserted into the Q-Bus slot.

BK-0010Sh
Электроника БК-0010Ш is a model intended for school use. It can be either the −0010 or −0010.01 model but includes a special current loop network adapter rated at 19200 bits per second (bit/s), 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 for school settings.

BK-0011
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, with the drive available as an add-on.

BK-0011M
Some changes in the BK-0011, while minor, made it incompatible with earlier -0010 models. It cannot load 0010 programs from a cassette tape. Even if it could have loaded them, crucial subsystems, such as sound, are still incompatible. The manufacturer redesigned 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 have been upgraded to -0011M models by enthusiasts.

Mods
It is 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 hang. Also, some games do not have a properly implemented Exit function. Without this button, the computer has to be reset by power cycling, which eventually leads 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 activates hardware suspension of instruction execution in the processor. The pause switch is useful for pausing games, most of which do not have a pause key. A few games, however, do 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 in the mechanical switch, 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.

Enthusiasts also manage to connect more advanced devices to BK series computers: they developed a hard disk drive (HDD) controller, and 2.5" HDDs have been successfully used with BK computers. Other popular enhancements are AY-3-8912 sound chips and Covox Speech Thing.

Emulators
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.