go-lc3-vm
go-lc3-vm copied to clipboard
LC-3 Virtual Machine in Go
LC-3 VM

This project is a really simple LC-3 VM written in Go. LC-3 or Little Computer 3 is a fictional computer system that is designed to teach students how to code in assembly language. My VM is originally based on an article written by Justin Meiners and Ryan Pendleton.
Current Status
The VM is now able to execute the following programs:
TODO
- [ ] Fix 100% CPU issue when running programs
- [ ] Fix failing unit tests
Changelog
- Fixed Trap Routines for displaying output.
- Fixed the STI Op Code.
- Migrated to Termbox for display and key input
- Added a flag for verbose debug output
- Added a flag to specify the target program
- Added support for CPU profiling
- Fixed an issue where GETC was not waiting for input
Development Resources
These resources came in handy when developing this VM:
- https://wchargin.github.io/lc3web/: I could load the programs and compare the expected behaviour against my VM.
LICENSE
MIT, See the LICENSE file.