aboutsummaryrefslogtreecommitdiff
path: root/crates/runrom/src
Commit message (Collapse)AuthorAgeFilesLines
* runrom: add the --until-address optionMiquel Sabaté Solà3 days1-26/+67
| | | | | | | | | This allows the user to run execution until a given address is reached. This can, like with the --start option, be coupled with the --nasm option in order to be able to provide an identifier instead of a regular hexadecimal value. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Allow the --start flag to accept identifiersMiquel Sabaté Solà3 days1-7/+58
| | | | | | | This is coupled with the new -n/--nasm option, which works in the same way as in `readrom`. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Annotate the no-return from die()Miquel Sabaté Solà3 days1-7/+2
| | | | | | | | | | | | In all crates we are using a die() function to print to stderr and quit with a exit status > 0. Apparently in Rust you can annotate the return type with a bang just like the noreturn from the C family. The added bonus is that some useless statements to make the compiler happy without it can be removed altogether as now the compiler is able to understand that it won't return so the returned type is not needed. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Add the runrom crate and the vnf libraryMiquel Sabaté Solà10 days1-0/+225
The vnf library supports the runrom crate and they both combined enable users to "run" a ROM file. This is basically an emulator, but with two key differences: 1. It is to be run programatically. That is, you are not expected to play games with this, but to run code by steps, start at a given address, run a function, etc. 2. It is headless: there are no graphics displayed on screen, nor sound being delivered. Thus, the target for both these things are developers, not players. This way developers can validate code paths without needing a full blown emulator. You can write tests with this and be able to run some checks as part of your testing infrastructure. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>