emuStudio is free, cross-platform toy-computer emulation platform and framework. It is designed mainly for the "academic" sphere to help getting the "know how" and experiment with how computers work.Star
because it supports full emulation "life-cycle". From writing and compiling programs for emulated machine, to running and debugging. Some real computer emulators are provided, like: MITS Altair 8800, SSEM (a.k.a. "Baby"). Some abstract computers are included, too: RAM, RASP, and Brainfuck "simulator".
Programming computer emulators can be fun, because it's a process of "building a machine" in software. More specifically, emulators mimic the behavior of real computers in software. The abilities of an emulator are often strong enough to execute already existing software written for emulated computer.
In order to install emuStudio, please follow to Download page.
Right after emuStudio is executed, the "Open computer" dialog shows up. In the dialog, users can select a predefined computer. New computers can be created or existing computers modified using abstract schema editor, which is accessible from this dialog.
emuStudio comes with a few predefined computers. Some real ones (MITS Altair 8800), but also abstract ones (e.g. Random Access Machine). By opening the computer, emuStudio main window shows up.
When a virtual computer is opened, emuStudio becomes an IDE for developing and running programs for the emulated computer. The source code editor supports syntax highlighting. A compiler will translate the source code into a binary form and automatically loads it in the emulated memory.
For real computers, the source code editor recognizes mostly assembly language, but different compilers for different programming languages can be provided.
In the emulator panel users can debug the program, or watch the CPU internals and access virtual devices. There can be seen three parts - debugger on the left, CPU panel on the right and devices list at the left-bottom.
The basic functionality of the debugger is controlling the emulation life-cycle. Users can run, pause or stop the CPU emulation, as well as to perform single step or run timed-steps. All provided computers support breakpoints capability.
Users can interact with emulated computer using virtual devices. For example, a terminal. Devices can have their own capabilities, to mimic the behavior of real-world devices. There can exist plenty of various devices connected to the computer, like virtual disk, serial board, and so on.
Besides, devices can be used for loading already prepared program images, without needing the program source code. The screenshot at the left shows an example - running CP/M operating system.
When students are encouraged to write assignments in emuStudio, teachers can automate their checking. emuStudio can be run in a non-GUI mode, without any interaction. Compiled source code will be automatically loaded into memory, then run by CPU. Input and output from/to devices is redirected to files. After the emulation finishes, teachers can prepare their own tools for checking the content of the output files.
In addition, emuStudio will generate a log file, which contains the emulation progress; it can be used for debugging if something went wrong.