Skip to content

Releases: Thraetaona/EXACT

Patch (fixes bug with AAM & AAD; reduces redundancy)

13 Jun 18:59
7f30fe9
Compare
Choose a tag to compare

Because both AAM and AAD are two-byte instructions, hardcoding the second "operand" as 10 meant that the second byte was never accounted for. Additionally, real Intel 8086 CPUs had an undocumented behavior that was not implemented in EXACT: the second byte in AAM and AAD (which was normally 0x0A) was actually the "operand" and could be something other than 10, too.

By reading the next code byte and stepping through the instruction pointer once, we can replicate the undocumented behavior and also fix the emulator's own length mismatch bug.

I also noticed that this "reading over byte/word and stepping the IP register" functionality was repeated quite often across the codebase, so I placed them under the $fetch_byte and $fetch_word boilerplate functions, reducing redundancy in lots of cases.

Patch (Fixes loading issues)

01 Feb 05:46
6e38625
Compare
Choose a tag to compare

#1

Firefox has recently had issues with script tags created before the body tag, as a fix simply putting the script tag at the bottom of the html file before (So that the body elements are created before being accessed) solves these issues.

Other than the trivial fix to index.html, everything else is identical to the 1.0.0 Stable release.

First stable release

19 Jun 14:28
43a878a
Compare
Choose a tag to compare

First stable release of EXACT; supports all OpCodes, Including illegal ones (However, Interrupts and Instructions that require physical hardware access are not available).

To test and run locally simply execute the python script ("serve.py") and navigate to "http://localhost:8086/".

A few (very simple) pre-built examples have also been packaged with this release

Edit 2/1/2021: Firefox recently had issues with script tags created before the body tag. Patch Release