v0.16.0 #189
skx
announced in
Announcements
v0.16.0
#189
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
v0.16.0
This release significantly overhauls how we handle the emulation of BIOS and BDOS system-calls:
In the past we'd setup traps on the entry-points of the BDOS address, and the standard entrypoints (0x0000, 0x0005, etc). The idea being that when the instruction pointer landed on those addresses we could examine the CPU registers and determine what action to take out. This worked well unless code was copied over those addresses - for example the system debugger, DDT, would overwrite the addresses with its own code, to allow tracing and that would confuse our emulation.
As of this release we no longer have any memory-based breakpoints, instead we've setup a complete fake BDOS which we poke into RAM, and which is used to trigger the emulator to carry out BIOS and BDOS operations via various "OUT" instructions.
In addition to this overhaul we've also added another console-input driver, a hidden one which isn't documented by default, which allows piping in console input to the emulator. Using this we can paste in input, capture the output of the execution, and thus carry out simple functional testing in addition to the various test functions we've written.
If you've got the cpm-dist repository checked out locally, and you're running Linux/Mac/Unix-like system you can run
make test
to run the tests interactively.Finally we've added a
-timeout
flag to the CLI, mostly for use in testing but it might be useful to others too.BugFixes
Automated Changelog
Full Changelog: v0.15.0...v0.16.0
This discussion was created from the release v0.16.0.
Beta Was this translation helpful? Give feedback.
All reactions