|This article needs additional citations for verification. (June 2007)|
|Operating system||FOCAL (programming language), Vilnius BASIC (ROM embedded), OS BK-11, ANDOS etc.|
|CPU||K1801VM1 @3MHz (BK-0010), @4.6MHz (BK-0011), @4MHz (BK-0011M)|
The Electronika BK was a series of 16-bit PDP-11-compatible Soviet home computers developed by NPO Scientific Center, the leading Soviet microcomputer design team at the time. It was also responsible for the more powerful UKNC and DVK micros. First released in 1984 (developed in 1983), they were based on the К1801ВМ1 (Soviet LSI-11-compatible CPU) and were the only "official" Soviet home computer design in mass production.
They sold for about 600-650 rubles. This was expensive, but marginally affordable, so they became one of the most popular home computer models in the Soviet Union despite numerous problems. Later, when that price edge was eclipsed by cheaper ZX Spectrum clones, their powerful CPU and straightforward, easy to program design made them popular as demo machines. BK (БК) is a Russian abbreviation which stands for "Бытовой Компьютер" -- domestic (or home) computer. It was also for a short time used as cash register, for example, in the State Universal Store.
Although BK-0010 was one of the cheapest Soviet PC and in speed (as well as memory, graphics, and so on) differed little from the simple 8-bit models, this PC was formally the first or one of the first fully 16-bit home computers in the world (in contrast to the TI-99/4A, BK had not only a 16-bit processor, but also the ROM, RAM and controllers with the same width).
Although the BK series was included in a governmental economic plan, customer support apparently was not, as it was essentially a barebones machine, without any peripherals or development tools. The only software available at the launch (except ROM firmware) was an included magnetic tape with several programming examples (both for BASIC and FOCAL), and several tests. The ROM firmware included 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 meager 32 KB memory of which only 16 KB was generally available to programmers (an extended memory mode supported 28 KB but limited video output to a quarter of the screen) generally precluded direct use of software for the more powerful machines. Nevertheless, the DVK became a popular development platform for BK software, and when the BK memory was later extended to 128 KB, most DVK software could be used directly with minimal changes.
Homebrew developers quickly filled this niche, porting several development tools from DVK and UKNC. This led to an explosion of homebrew software, from Text editors and databases to operating systems and games. Most BK owners expanded the built-in RAM to at least 64 KB, which not only allowed easier software porting from more "grownup" systems, but as these upgrades often included floppy drive controllers, creating a one's own disk operating system became something of a competitive sport in the BK scene. Games and demo communities also flourished, as its anemic graphics were offset by a powerful CPU.
The machine was based on a powerful (for the time) 16-bit single-chip K1801VM1 CPU, clocked generally at 3 MHz. It was almost perfectly compatible with Digital Equipment Corporation's LSI-11 line, though it lacked EIS and further command set extensions. The manufacturer also closely copied the PDP-11's internal architecture. Each model had one free card slot which was electrically, but not mechanically, compatible with Q-Bus. The first versions had 32 KB onboard DRAM, half of which was used as video memory. That was extended to 128 KB in later models, with video memory extended to two 16 KB pages.
Video output on all models was provided by the K1801VP1-037 VDC, a rather spartan chip. It was actually a standard 600-gate ULA with a VDC program that allowed for two graphic video modes, high-res (512x256, monochrome) and low-res (256x256, 4 colors), and supported hardware vertical scrolling. Later models had 16 hardwired 4-color sets selectable from 64 color palette. It didn't support text modes, but simulated two via BIOS routines: 32x25 and 64x25. Some operating systems such as ANDOS managed to output text in 80x25 mode when displaying documents imported from IBM PC, by placing characters more densely. Output was through two separate 5-pin DIN connectors for a monochrome TV or color TV/monitor. Sound on all models was 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 had a 16-bit universal parallel port with separate input and output buses for connecting peripherals such as printers (Eastern Bloc printers used the incompatible ИРПР interface instead of the more popular Centronics port, so Centronics printers needed an adapter), mice or Covox DACs for sound output, and tape recorder port for data storage. Later models included a manufacturer-supplied floppy drive controller (that could 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 extended rather anemic 16K memory of original BK) were more popular. A cottage industry for such peripherals and mods flourished.
Электроника БК-0010 was the first model (originally released in 1983, the serial production since mid-1984). It had 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 was clocked at 3 MHz. A tape recorder was 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 completely, so this version found widespread 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 without any programming tools.
The follow-up version, БК-0010.01 (sometimes referred to as -0010-01) was 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 was quite powerful and well-optimized (it was actually a somewhat scaled-down clone of MSX BASIC), the keyboard was a mixed blessing. While it was 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Ш was a model intended specially for school use. It could be either the −0010 or −0010.01 model, but was supplied with a special current loop network adapter rated at 19200 bps, which could be inserted into the Q-Bus slot. Based on ULA chip K1801VP1-035 (and later on K1801VP1-065), the adapter was compatible to DEC DL-11 and KL-11 serial interfaces, but without modem control bits. It also included a monitor (usually a modified Yunost' compact TV), since in school setting it couldn't be expected to be connected to household TV.
BK-0011 was released in 1989. It had 128 KB of RAM divided into 16 KB pages, its CPU was clocked at 4 MHz by default; it included 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 had a floppy controller, but the drive was still sold separately.
Some changes in the BK-0011, while minor, made it incompatible with earlier -0010 models. In particular, it couldn't load 0010 programs from a cassette tape. Even if it could have loaded them, crucial subsystems, such as sound, were 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 were 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 button. Programs often hung; also, some games did not have a properly implemented Exit function. Without the button, the computer had to be reset by power cycling, eventually leading to a worn out power switch on the external power supply. Reset interrupt could be caught by the operating system, so under such systems (for example, ANDOS, MK-DOS), reset button exited to the OS's file manager.
- Pause switch. The switch activated hardware suspension of instructions 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 the suspension, because the programmable hardware timer built into the processor chip was still running while the instructions execution was suspended. BK also had a software shortkey combination for pause.
- Clock speed switch (“turbo” switch). Changed 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 worked reliably at 6 MHz; the possibility of such overclocking had to be determined experimentally for each sample. Switching the clock speed changed the pace of dynamic games. The turbo switch usually had to be installed together with the pause switch, because the simplest circuit for switching the clock speed produced bad 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 was in the suspended state.
- “Sound on/off” switch, or sound volume knob which adjusted the volume level of the internal piezoelectric speaker using a potentiometer. While the modder was at it, the speaker could be replaced by a louder one.
These modifications were relatively simple and could be carried out by users who knew how to handle a soldering iron. Most of the people in the cottage industry of selling programs could 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 controller, and 2.5" HDDs were successfully used with BK computers. Other popular enhancements were AY-3-8912 sound chips and Covox Speech Thing.
- Government approved and accounted for in economic planning
- The average Soviet wage was about 150 rubles per month at the time.
- It was relatively easy to overclock the CPU, but slow DRAM made overclocking difficult. The most popular "turbo" speed was 5 MHz.
- Electronika BK0010(-01) & BK0011(M) USSR PC [PDP-11]
- Electronika BK 0011 in the Soviet Calculator Collection
- BK0010 Russian computer emul. v1.6 w/src
- Archive software and documentation for Soviet computers UK-NC, DVK and BK0010.