robmorgan / go-lc3-vm

LC-3 Virtual Machine in Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LC-3 VM

LC-3 VM by Rob Morgan

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:

  • 2048 by Ryan Pendleton
  • Rogue by Justin Meiners

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:

LICENSE

MIT, See the LICENSE file.

About

LC-3 Virtual Machine in Go

License:MIT License


Languages

Language:Go 98.0%Language:Makefile 2.0%