Emulators and Simulations - Nakazoto/UEVTC GitHub Wiki
The REN14500 Emulator
This emulator was built by the very talented Ren14500. Once the UE14500 CPU was complete, Ren got the idea to recreate the look of it in a terminal application. This was just going to entail the layout of the tubes (to some poor fidelity) and especially the VFDs and remote. The emulator was written in period-appropriate style, using the C programming language and the curses library for terminal I/O. Curses was around in the 80's, and has support for the ADDS terminals, which opens the possibility for the emulator to run on the Centurion some day.
Installation
Download the Source Code and Files by Clicking this Link
Windows (This is just one method, there are many different ways to install)
- Install MSYS2 first (https://www.msys2.org) - follow steps 1 through 7 on that page.
- Open MSYS2 and install curses using this command:
pacman -S mingw-w64-x86_64-pdcurses
- Change to the directory where UE14500-EMU.C is saved, for example:
cd /c/Users/usagi/Downloads
- Compile the source code using this command:
gcc -o ue14500-emu ue14500-emu.c -lpdcurses
- Run the emulator using this command:
./ue14500-emu.exe
Emulator Usage
The first thing to do is to initialize the emulator with a random (or preset) value. This can be done by by using enter or the up arrow to initialize on, and space or the down arrow to initialize off.
The emulator is now ready for use. You can use the left/right arrows, h/l keys, tab of F1-F6 to move the cursor on the remote control. To toggle a switch or the clock, you can use the up/down arrows, space or enter.
The currently selected OpCode will be displayed in the Status Window.
Assembler
The OpCodes for the assembler were used as-is, but the syntax was fleshed out with typical things such as comments, labels (unused for now), and directives. The assembler can output in two formats: "raw" for the actual hardware and "emu" for the emulator. Like the emulator, this was designed with the Centurion in mind. It is extremely simple and doesn't even allocate any memory, so it really should be usable on the Centurion some day.
Usage
- First, build the assembler using this command:
gcc -o ue14500-asm ue14500-asm.c
- Assemble the .s program into .emu using this command:
./ue14500-asm hello.s hello.emu
- Run the emulator using the assembled program and store output using this command:
./ue14500-emu hello.emu out.txt
- Assemble the .s program into .raw using this command:
./ue14500-asm -outfmt raw hello.s hello.raw
- View the raw output using this command:
hexdump -C hello.raw