Elektronika MK-87 emulator
Program version 06, updated 2021/12/21
mk87emsr.zip - Delphi sources
mk87emex.zip - compiled executable
Usage: extract the files into an empty directory, then run the program mk87.exe
- The files rom.bin and ram.bin contain the ROM and RAM images respectively.
They are loaded when the program is started.
The updated ram.bin file is saved when the program is terminated.
If the ram.bin file wasn't found, it will be created.
In such case the memory has to be initialised with the key F8.
- The emulator can be operated with a mouse or a Russian language keyboard.
Special function keys:
Escape С
Del СК
Ctrl-+ П+
Ctrl-- П-
Ctrl-Del СП
Ctrl-Enter П->X
left and right arrow
Ctrl+arrows = black arrows
Ctrl-P Phonebook
Ctrl-N Notepad
Ctrl-T Table
Enter <>
Home ВВ
Insert ВН
Backspace УД
End СИ
F8 simultaneous pressing of the [СИ]+[С]+[СК] keys,
RAM initialisation
F7 keys [СИ]+[СК]+[4], reveals the password
F6 keys [С]+[СК]+[К], reveals the author of the software
F5 keys [С]+[СК]+[Н]
F3 suspends the code execution and opens the debugger window
Disassembly box
- On entry, the starting address matches the Program Counter.
It can be modified by clicking on the address in the first line.
Accepted values: $0000..$1FFE for the ROM area and $2000..$1FFE+RamSize for the RAM area.
New value must be confirmed with Enter.
- After clicking on a disassembled instruction, a new instruction can be typed.
As with the starting address, pressing Enter accepts the changes.
Only changes in the RAM area will be saved upon program termination, all ROM modifications will be lost.
Binary Editor box
- The binary editor box allows viewing/changing the RAM contents only.
- It is possible to modify the starting address and the RAM contents by clicking on them.
Enter accepts the changes.
Registers box
- The contents of the registers can be modified by clicking on them.
Enter accepts the changes.
- The bottom line in the register box shows bits TNZVC of the PSW register.
Program execution control
- Closing the debugger windows resumes the program execution without tracing.
- Pressing the button [Run] in the Single step group box executes a single machine code instruction.
- To execute a specified number of machine code instructions type the required value to the field in the Number of steps group box, then press the associated [Run] button.
- The Breakpoint group box allows to specify condition that determine when the program execution should be interrupted.
Currently it only compares the Breakpoint Address typed in the field with the Program Counter.
When they match, the program execution is stopped and the debugger window reappears.
Some parameters of the emulator can be customised by editing the mk87.ini file with any text editor.
Description of the contents of this file:
CpuSpeed=1000
- This setting controls the emulated CPU execution speed (number of instructions executed every 10ms).
RamSize=2048
- This setting defines the physical size of emulated RAM.
It is meaningless for the current firmware version which assumes a fixed size of 2kB, even if the hardware supports up to 48kB.
After any change, the file ram.bin needs to be deleted (to avoid the warning message about reading past the EOF).
WatchMode=0
- This setting selects the watch display mode:
0 - hours, minutes, seconds
1 - hours, minutes, day of the month
2 - calendar mode: day, month, year
Any other value disables the watch.
Radix=16
- This setting changes the base of the numeral system used by the debugger (16 for the hexadecimal system, 8 for the octal system).
To uninstall the emulator, simply delete the directory where it was installed.
The program doesn't modify anything outside its installation directory.