BK-0010/0011/Terak 8510a emulator
Go to file
2024-10-21 10:02:32 -07:00
jni Fix Android compilation 2020-03-06 01:53:27 +01:00
po Initial commit 2013-08-01 01:25:37 +03:00
.gitignore Added diagonals directions keys, fix rom path, ability to load focal/basic games using alias, ColorMode toggle hotkey, other fixes and additions. (#23) 2024-06-28 16:00:36 -07:00
.gitlab-ci.yml Update .gitlab-ci.yml 2022-07-26 15:10:16 +02:00
access.c Mark local functions as static 2020-03-06 05:43:20 +01:00
bk Add script file for use with the Arcade Mini/RS-97/GCW0/OpenDingux. 2019-02-24 04:12:48 +01:00
bk.png Initial commit 2013-08-01 01:25:37 +03:00
bkplip.c Move gettext logic into separate file and disable it on Android 2019-11-04 14:16:42 +01:00
boot.c Added diagonals directions keys, fix rom path, ability to load focal/basic games using alias, ColorMode toggle hotkey, other fixes and additions. (#23) 2024-06-28 16:00:36 -07:00
branch.c Fix a whole bunch of warnings 2019-11-03 14:52:47 +01:00
conf.c Initial commit 2013-08-01 01:25:37 +03:00
conf.h Move disk init to platform-specific code 2020-01-31 19:11:39 +01:00
COPYING Clarify license status 2020-02-03 15:43:51 +01:00
covox.c Remove useless includes 2020-03-06 01:53:27 +01:00
defines.h Added diagonals directions keys, fix rom path, ability to load focal/basic games using alias, ColorMode toggle hotkey, other fixes and additions. (#23) 2024-06-28 16:00:36 -07:00
disas.c Move gettext logic into separate file and disable it on Android 2019-11-04 14:16:42 +01:00
disk.c Mark local functions as static 2020-03-06 05:43:20 +01:00
double.c Fix a whole bunch of warnings 2019-11-03 14:52:47 +01:00
ea.c Fix a whole bunch of warnings 2019-11-03 14:52:47 +01:00
emu2149.c Fix a whole bunch of warnings 2019-11-03 14:52:47 +01:00
emu2149.h Fix a whole bunch of warnings 2019-11-03 14:52:47 +01:00
emutypes.h Initial commit 2013-08-01 01:25:37 +03:00
icon.c Initial commit 2013-08-01 01:25:37 +03:00
intl.h Remove bkplip and libretro gettext 2020-03-06 01:53:27 +01:00
io.c Remove unused variables 2020-03-06 05:43:20 +01:00
itab.c Mark local functions as static 2020-03-06 05:43:20 +01:00
joystick.c Implement joystick 2019-11-04 14:18:24 +01:00
libretro-defs.h Added diagonals directions keys, fix rom path, ability to load focal/basic games using alias, ColorMode toggle hotkey, other fixes and additions. (#23) 2024-06-28 16:00:36 -07:00
libretro.c Added diagonals directions keys, fix rom path, ability to load focal/basic games using alias, ColorMode toggle hotkey, other fixes and additions. (#23) 2024-06-28 16:00:36 -07:00
libretro.h Update libretro.h 2022-01-22 22:07:25 +01:00
link.T Compile for all buildbot targets except msvc 2022-01-22 13:10:31 +01:00
main.c Add clarification to fallthrough 2020-03-06 05:43:20 +01:00
Makefile Implement joystick 2019-11-04 14:18:24 +01:00
Makefile.amini Update Makefiles 2019-02-24 04:17:04 +01:00
Makefile.common Fix the order of addition of CFLAGS 2020-03-08 18:49:31 +01:00
Makefile.libretro tvos: properly set min supported version (#25) 2024-10-21 10:02:32 -07:00
maketape.c Fix a whole bunch of warnings 2019-11-03 14:52:47 +01:00
mouse.c Encapsulate SDL-tty code into separate file 2019-11-04 14:16:42 +01:00
ops.h Fix opcode declarations 2020-03-06 05:43:20 +01:00
pngtorgba.c Fix a whole bunch of warnings 2019-11-03 14:52:47 +01:00
printer.c Move gettext logic into separate file and disable it on Android 2019-11-04 14:16:42 +01:00
README.html Initial commit 2013-08-01 01:25:37 +03:00
README.md update to mention sdl deps 2013-08-01 01:38:09 +03:00
readtape.c Fix a whole bunch of warnings 2019-11-03 14:52:47 +01:00
scr-libretro.c Add BGR1555 color support 2020-12-28 13:46:38 +01:00
scr-sdl.c Rename scr_init 2020-01-31 18:58:33 +01:00
scr.c Use unsigned int instead of uint 2020-05-01 14:39:35 +02:00
scr.h Encapsulate scr-SDL interface into a separate file 2019-11-04 14:16:42 +01:00
sdlsound.c Support other audio formats 2019-11-04 14:18:24 +01:00
sdltty.c Implement joystick 2019-11-04 14:18:24 +01:00
serial.c Initial commit 2013-08-01 01:25:37 +03:00
service.c Add safety initializers 2020-03-06 05:43:20 +01:00
single.c Fix a whole bunch of warnings 2019-11-03 14:52:47 +01:00
sound.c Encapsulate SDL-sound code into separate file 2019-11-04 14:16:42 +01:00
standalone.c Added diagonals directions keys, fix rom path, ability to load focal/basic games using alias, ColorMode toggle hotkey, other fixes and additions. (#23) 2024-06-28 16:00:36 -07:00
synth.c Remove useless includes 2020-03-06 01:53:27 +01:00
tape.c Added diagonals directions keys, fix rom path, ability to load focal/basic games using alias, ColorMode toggle hotkey, other fixes and additions. (#23) 2024-06-28 16:00:36 -07:00
terakdisk.c Fix wrong munmap 2020-03-06 02:24:10 +01:00
timer.c Fix K&R declarations 2020-03-06 05:43:20 +01:00
timing.c Remove unused variables 2020-03-06 05:43:20 +01:00
tty-libretro.c Added diagonals directions keys, fix rom path, ability to load focal/basic games using alias, ColorMode toggle hotkey, other fixes and additions. (#23) 2024-06-28 16:00:36 -07:00
tty.c Fix K&R declarations 2020-03-06 05:43:20 +01:00
tty.h Encapsulate SDL-tty code into separate file 2019-11-04 14:16:42 +01:00
ui.c Extract file loading code into separate function 2019-11-04 14:16:42 +01:00
weird.c Fix opcode declarations 2020-03-06 05:43:20 +01:00

BK emulator

DISCLAIMER

I (emestee@catnarok.net) am not the author of this software. The original code for the PDP11 emulator was written by Eric A. Edwards in 1994. It was then modified by Leonid A. Broukhis to support the Soviet BK-0010, BK-0010.01 and BK-0011(M).

The original license statement in Eric A. Edwards' source code is as follows:

Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. Eric A. Edwards makes no representations about the suitability of this software for any purpose. It is provided "as is" without expressed or implied warranty.

Leonid A. Broukhis preserved this license in his source code, and therefore this is free software.

My hat is off before these two gentlemen.

What is this?

This software is a Linux/SDL emulator for Soviet (russian) Electronica BK series:

  • БК-0010
  • БК-0010.01
  • БК-0011(М)

You may read more about the series at http://en.wikipedia.org/wiki/Electronika_BK

The author's (Leonid A. Broukhis) page can be found at http://www.mailcom.com/bk0010/index_en.shtml . Unfortunately the website appears abandoned and the link to source code for this project is broken.

Additionally, it supports emulation of Terak 8510/a, which is a 1976 american PDP-11/03 platform and of which the Electronica BK series are indeed clones.

The Electronica BK computers were the first mass produced, affordable personal computers in Russia in the eighties of 20th century, and have had tremendous effect on the development of Russian-speaking software community. Every russian computer, hardware or ham radio geek born in seventies or eighties probably had one of those machines during their formational years. They are the C64s, ZX Spectrums and Atari 2600s of the now defunct USSR.

I have discovered this software by accident, and I am publishing it to github in order to preserve it.

All of the BK machines accept console commands in English, but respond mostly in Russian. Most of the software written for these machines would also interact in Russian. Unless you are a native Russian speaker, or very curious about this technology, this software is probably of very little use to you

The version of the emulator published in this repository is derived from "BK-Terak-Emu 2005.08.26".tar.gz file. I do not know if a more up to date version was ever made, or has been preserved. The original file is included unmodified in this repository. The only alteration I made to the repository is a change to the Makefile to point the linker to libSDL as it appears on modern x64 machines.

Virtually all of BK schematics, documentation, hardware hacks and software has been preserved and is available on the internet. Unfortunately, most if not all of these things are in Russian.

Compilation and use

This is very old software, but as all good C code, it works ten and twenty years thereafter. I have successfully compiled it, booted a BK-0010.01 machine and played a game under Ubuntu 13.05, Linux 3.8.5 and libSDL 1.2.

  • Make sure libsdl1.2 and its -dev packages are installed
  • Edit the Makefile to correct the path to your libSDL.so
  • Run make
  • Run ./bk -? for overview of emulation modes

For instance, to run BK-0010.01 emulation, execute

./bk -1 -c

When the emulation is running, you can issue a Ctrl-C in the emulator's console. This will stop the emulation and drop you into the emulator's debugger. To load a game from a binary file (assuming you have one, none are distributed here), do:

l <filename> (the emulator will look for the file in /usr/share/bk)

g 1000

Please feel free to contact me if you are curious about this. I will do my best to try and answer your questions.