Skip to content

Conversation

@Bennett-Petzold
Copy link
Collaborator

The main feature of this commit is full support up to TRAP instructions. This should achieve support + confirmed tested functionality against PennSim for LC3 with no I/O functionality.

Achieved along the way:

  • Minor CI improvement: Link MSRV to Cargo.toml
  • Added RTI
  • Instruction -> LC3Word conversions
  • Full Instruction tests (I thought I wrote these before, but reality disagrees with me)
  • Added Support for the hidden JMP opcode used for OS setup
  • Added PennSim, its OS, and a set of test programs from UNCA
  • Added routines for testing against PennSim, with integration tests against UNCA programs
    • PennSim compilation results
    • PennSim memory and output comparison
  • Removed auto miri test (due to excessive runtime)
  • Added harness traits and two simple implementations, for calling LC3 with I/O support
  • Modifed instructions for negative argument support
  • Fixed JMP and BR calculations by universally acting on PC + 1
  • Added interrupt routine definition, used for both I/O interrupts and exceptions

Negative offset arguments are constructed by two bitshifts, in order to properly pad the top. We may want to represent the negative operations differently (or do direct wrapping adds instead of using an if for negatives) to improve efficiency.

None of the harnesses currently support I/O -- just two different approaches to no I/O being connected.

Instructions and CoreLC3 are not fully tested for compatibility against PennSim -- only the subset used in the example UNCA programs is currently verified.

@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

@github-actions
Copy link

Code Coverage Report: Only Changed Files listed

Code Coverage

Package Coverage
Overall Coverage 🟢 92.39%

Minimum allowed coverage is 0%, this run produced 92.39%

@wpkelso wpkelso merged commit e78e00f into main Jan 2, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants