Electronika BK
The Electronika BK is a series of 16-bit PDP-11-compatible fanless Soviet home computers developed under the Electronika brand by NPO Scientific Center, the leading Soviet microcomputer design team at the time. It was also the predecessor of the more powerful UKNC and DVK micros.
Elektronika BK0010-01 | |
Developer | NPO Scientific Center |
---|---|
Manufacturer | Electronika |
Type | Home computer |
Release date | 1984 |
Introductory price | 600–650 rubles |
Discontinued | 1993 |
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) |
Memory | 32 KiB |
Overview
First released in 1984 (developed in 1983), they are based on the К1801ВМ1 (Soviet LSI-11-compatible CPU) and were the only "official"[1] Soviet home computer design in mass production.
They sold for about 600–650 rubles. This was expensive,[2] but marginally affordable, so they became one of the most popular home computer models in the Soviet Union, despite the fact that they had numerous problems. Later, in the 1990s, their powerful CPU and straightforward, easy-to-program design made them popular as demo 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.
Although BK-0010 was one of the cheapest Soviet PCs, and in speed (as well as memory, graphics, and so on) differs little from the simple 8-bit models, it was one of the first fully 16-bit home computers in the world (in contrast to the TI-99/4A, BK had controllers with the same data bus-width). The Intellivision used a very similar, fully 16-bit CPU, the General Instrument CP1600, and with the Keyboard Component or ECS expansions, it was turned into a fully 16-bit home computer. The IBM PC and PCjr were 8/16-bit computers, as their 8088 CPU has an 8-bit data bus and a 16-bit internal bus.
Software
The BK series 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 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 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 KiB, 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.
One of the operating systems was ANDOS, although officially the computer was shipped with OS BK-11, a modification of RT-11.
Hardware
The machine is based on a powerful (for the time) 16-bit single-chip K1801VM1 CPU, clocked generally at 3 MHz.[3] It is almost perfectly compatible with Digital Equipment Corporation's LSI-11 line, though it lacks 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 ULA with a VDC program that allows for two graphic video modes, high-res (512×256, monochrome) and low-res (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 ИРПР 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 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.
Versions
Electronika BK-0010
Электроника БК-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 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.
Electronika 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 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.
Electronika BK-0010Sh
Электроника БК-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 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 to 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 setting it couldn't be expected to be connected to household TV.
Electronika 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, but the drive was still sold separately.
Electronika BK-0011M
Some changes in the BK-0011, while minor, made it incompatible with earlier -0010 models. In particular, it can not 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.
Mods
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 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 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 controller, and 2.5" HDDs were 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 FPGA-based systems, such as the MiST.[4]
See also
References
- Government approved and accounted for in economic planning
- The average Soviet wage was about 150 rubles per month at the time.
- It is relatively easy to overclock the CPU, but slow DRAM made overclocking difficult. The most popular "turbo" speed is 5 MHz.
- "BK0011M (USSR retro home computer) core for MiST board". 2016-03-29. Retrieved 2016-04-16.
External links
- Electronika BK0010(-01) & BK0011(M) USSR PC [PDP-11]
- BK0010 Russian computer emul. v1.6 w/src
- Archive software and documentation for Soviet computers UK-NC, DVK and BK0010.