Repository navigation
Home
It's just a temporary name I used to name the document directory on my computer, but I decided to roll with it.
ArchEmu is a Java application that recreates various virtual architecture projects of my own, and (at some point) of others. It's got [some] documentation, and freely extensible classes and interfaces, so it's easy to add your own personal virtual architectures.
🤦 An (Instruction Set) Architecture refers to the set and layout of CPU instructions of a certain design of CPU. Nowadays, personal computers really only run amd64 (and aarch64 for Macbooks), but back in the golden age of personal computers, there was monopolistic competition between all sorts of companies striving to make different, better ISAs, before Intel pretty much wrote the book on how to exponentially improve what you've already got.
Sometimes, it can be fun to plan out and make your own emulated ISA even if no processor will ever be built implementing it. These ISAs are called "virtual" architectures because they are emulated and thus only run in virtual machines.
Years ago, in the dawn of COVID, I had a lot of free time and decided to try out making my own virtual architecture, which ended up as AsmVM. As it turned out, despite not knowing a whole lot about the mechanics of electronic design, the architecture, a 32-bit reduced instruction set computer (RISC), was quite a success and the machine was a hit among my peers. Later, when developing Geneva Sky, I had wanted to design a microarchitecture for the wristband communicators players would wear, so I got to work and, despite still being quite inexperienced with real hardware, successfully developed d-16, a 16-bit RISC. It wasn't great, but I had certainly accomplished my goal of making it very limited in its capabilities. A few years later, I wanted to return to the 32-bit and developed my namesake, TeraVM. This one was a fair bit better, being designed to work like an actual modular computer system, unlike AsmVM.
AsmVM, d-16, and TeraVM all ran on JavaScript in the browser, since I didn't have a lot to work with back then. And, to be clear, my fascination with computer architectures is pretty overkill. Some architectures, however, just aren't worth continuing, and that's why this program doesn't include any of my abandoned virtual architectures, such as 64-bit AsmVM (this is why AsmVM is referred to as AsmVM32 in the program) or my experimental 128-bit G-128. As such, if you want to add your own virtual architecture projects to this program, I won't add anything that's not finished (finished meaning functioning to a degree that can be demonstrated).