1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-23 03:32:32 +00:00
Commit Graph

195 Commits

Author SHA1 Message Date
Thomas Harte
ff6573dd02 Implement MUL. 2023-10-09 21:50:17 -04:00
Thomas Harte
e46e42d896 This is the same test either way around. 2023-10-09 16:47:02 -04:00
Thomas Harte
f74ca8aee1 Fix SBB. 2023-10-09 16:32:01 -04:00
Thomas Harte
58aa1da649 Fix SUB. SBB still failing. 2023-10-09 16:30:47 -04:00
Thomas Harte
67d364cc89 Add faulty SUB, SBB. 2023-10-09 16:21:04 -04:00
Thomas Harte
d24fa381c7 'Implement' ESC, NOP. 2023-10-09 15:03:01 -04:00
Thomas Harte
08aed3bac5 Implement CWD. 2023-10-09 14:54:14 -04:00
Thomas Harte
6bbd896c34 Add DAS with a manageable number of failures. 2023-10-09 14:47:39 -04:00
Thomas Harte
1b9e6e8c8e Add DAA, which doesn't yet pass all tests. 2023-10-09 14:27:02 -04:00
Thomas Harte
59521f9d38 Implement CBW, CLC, CLD, CLI, CMC. 2023-10-09 11:59:38 -04:00
Thomas Harte
5a77f0c93c Implement CALL. 2023-10-09 11:46:59 -04:00
Thomas Harte
f618ca6046 Implement, test AND. 2023-10-08 22:18:40 -04:00
Thomas Harte
0a0d53103d Enable tests for all implemented operations.
Only the various AAM 00hs are failing, which I've yet to understand.
2023-10-08 22:12:22 -04:00
Thomas Harte
e3b18708c7 Handle segment-boundary word accesses.
With all ADDs and ADCs enabled, no remaining failures.
2023-10-08 22:11:05 -04:00
Thomas Harte
bd0b62232f Consider that displacements may always be signed.
Down to 1 failure.
2023-10-08 21:41:36 -04:00
Thomas Harte
dbfaef632a Fix DataPointer reference.
Down from 4521 to 1248 failures within 00.json.gz
2023-10-08 15:59:30 -04:00
Thomas Harte
6808f2c778 Attempt to catch illegal accesses ahead of time. 2023-10-08 15:44:11 -04:00
Thomas Harte
a4b1d2b00a Float out data resolution. 2023-10-08 13:34:28 -04:00
Thomas Harte
a5523c9feb Fail at scale.
108,645 current failures (!)
2023-10-07 14:37:12 -04:00
Thomas Harte
6abc3b6cd7 Collate all failures for printing at the end. 2023-10-07 14:28:44 -04:00
Thomas Harte
7d093d71b3 Avoid allocating and reallocating per test. 2023-10-07 14:23:47 -04:00
Thomas Harte
ade5828035 Add a clear, in the hope of not recreating Memory every test.
It's a big allocation, and therefore likely the bottleneck on test running.
2023-10-07 13:39:23 -04:00
Thomas Harte
cf4603cb33 Attempt to check defined flags only. 2023-10-06 16:32:35 -04:00
Thomas Harte
b6d000ac5e Add enough wiring to consolidate failure on lazy handling of flags. 2023-10-06 13:22:35 -04:00
Thomas Harte
82f0cd790f Find first failing execution, note reason. 2023-10-06 11:43:18 -04:00
Thomas Harte
2d17d9d316 Execute some tests at some facile level. 2023-10-06 11:31:45 -04:00
Thomas Harte
28c7d27cac Establish some proportion of state, ready to execute _something_. 2023-10-06 11:07:33 -04:00
Thomas Harte
6d392852d2 Hack on through to something that builds. 2023-10-05 22:27:52 -04:00
Thomas Harte
eb100e3b29 Start reforming; data size plus register aren't independent in finding a source. 2023-10-05 16:49:02 -04:00
Thomas Harte
15acb1fc7c Add ADC and ADD. 2023-10-05 15:49:07 -04:00
Thomas Harte
059f300500 Start fleshing out x86 performance. 2023-10-05 14:37:58 -04:00
Thomas Harte
f6fd49d950 Relocate all text wrangling; this isn't really test-specific. 2023-10-04 22:35:52 -04:00
Thomas Harte
40af162214 Be overt about what's here to aid with printing only. 2023-10-04 22:15:13 -04:00
Thomas Harte
92c46faf84 Add SETMO and SETMOC. 2023-09-29 22:28:23 -04:00
Thomas Harte
ff9237be9f Decode SALC. 2023-09-29 22:06:42 -04:00
Thomas Harte
6cbb434482 Deal with all dangling aliases.
Leaves just five undocumented instructions.
2023-09-29 15:36:34 -04:00
Thomas Harte
9fe6e354a6 Determine what I'm up against re: outstanding unofficial opcodes. 2023-09-29 15:29:35 -04:00
Thomas Harte
103f42f0b0 Introduce FF.7 alias. 2023-09-29 15:26:25 -04:00
Thomas Harte
f2732962d0 Add 6x 8086 aliases. 2023-09-29 15:22:05 -04:00
Thomas Harte
ef5ee8cf94 Include missing context on JMP/CALL far.
Zero failing tests amongst official opcodes.
2023-09-29 14:57:08 -04:00
Thomas Harte
1a6c8a2aed Add outputters for IN and OUT.
2 failures remaining.
2023-09-29 09:39:51 -04:00
Thomas Harte
b76899f2bc Undo broken extension-word DS assumption.
8 failures.
2023-09-28 22:17:14 -04:00
Thomas Harte
a24e17c320 Simplify debugging hook; remove outdated notes. 2023-09-28 22:04:59 -04:00
Thomas Harte
245919e67d Resolve REPNE and whitespace issues. 2023-09-28 22:01:12 -04:00
Thomas Harte
6936cf1819 Handle special case of INT3.
10 failures.
2023-09-28 15:34:33 -04:00
Thomas Harte
ae4a588de3 Adjust semantics to avoid culling end of relevant RETs. 2023-09-28 15:24:15 -04:00
Thomas Harte
960cca163e Make better guess at CALL/JMP size; apply same sizing-logic as offset for disassembly matching.
13 failures.
2023-09-28 14:52:42 -04:00
Thomas Harte
86f12f4d4c Adopt test-set's preferred pointer type for LES and LDS.
15 failures.
2023-09-28 14:16:47 -04:00
Thomas Harte
035a1265f6 Map invalid reg numbers properly for the 8086.
17 failures.
2023-09-28 13:11:15 -04:00
Thomas Harte
ff4d79e77e Add test synonym, fix operand size.
19 failures.
2023-09-28 09:43:26 -04:00
Thomas Harte
95df9bcb1e Accept SHL as a synonym of SAL.
20 failures.
2023-09-28 09:31:10 -04:00
Thomas Harte
9207de4164 Fix RegAddr macro.
26 failures.
2023-09-27 22:44:10 -04:00
Thomas Harte
c20e7ed9b6 Fix TEST.
28 failures.
2023-09-27 22:30:40 -04:00
Thomas Harte
11c747e3c4 Defer worrying about immediate sign extensions. 2023-09-27 22:18:05 -04:00
Thomas Harte
02aeec0173 Prepare for greater nuance on testing sign extensions by text. 2023-09-27 17:06:34 -04:00
Thomas Harte
2d882d2153 Switch shift/roll semantics to reduce extension words and for sanity generally.
37 failures.
2023-09-27 16:40:46 -04:00
Thomas Harte
638f3d3a53 Add special case for shifts and rolls. 2023-09-27 11:10:21 -04:00
Thomas Harte
b59eae3676 Adopt normative ESC decoding.
55 failures.
2023-09-27 10:32:22 -04:00
Thomas Harte
2cc60563e0 Resolve rep vs repe.
63 failures.
2023-09-26 17:36:22 -04:00
Thomas Harte
b03b408984 Give the decoder responsibility for sanity-checking repetitions.
This may avoid some spurious extension words.
2023-09-26 17:29:20 -04:00
Thomas Harte
cd072e1b57 LEA implies a word. Otherwise add TODOs.
So that's now 69 failures.
2023-09-26 15:41:51 -04:00
Thomas Harte
f16ac603f2 Deal with printing segment:offset.
70 failing files remaining.
2023-09-26 15:28:51 -04:00
Thomas Harte
4a38e6b4b5 Take si/di confusion and offset length off the table.
Now 74 failures of 288 tests.
2023-09-26 13:21:24 -04:00
Thomas Harte
e56a5899bd Ensure test order is deterministic. 2023-09-25 12:28:34 -04:00
Thomas Harte
87097c44b9 Curate list of known failures; apply easiest fixes.
Now at 157 failures of 288 applicable tests.
2023-09-25 11:39:12 -04:00
Thomas Harte
7fadf01e4e BP in isolation acts as a base. 2023-09-24 18:06:53 -04:00
Thomas Harte
0d65bf0c1f Take offset length off the table as a spurious cause of failures. 2023-09-24 15:26:58 -04:00
Thomas Harte
d36f785428 Include file name in error. 2023-09-22 23:04:26 -04:00
Thomas Harte
5fd98e9833 Add an ignore list.
Leaves 180 failures amongst the valid 306 instructions.
2023-09-22 22:56:33 -04:00
Thomas Harte
787e9e770e Retain baseless addresses correctly. 2023-09-22 17:27:27 -04:00
Thomas Harte
c8c0c3ca6d Default segment is ::DS if there was no base. 2023-09-22 17:03:40 -04:00
Thomas Harte
587ec81900 Improve string output, better to find actual errors.
Still at 194/324 failures, but a lot of them seem reasonable.
2023-09-22 11:24:33 -04:00
Thomas Harte
9f63db991c Capture default segments, fix base/index confusion. 2023-09-22 11:07:09 -04:00
Thomas Harte
7ebecd2f41 Add notes to self, finally figuring out segment issue. 2023-09-19 23:27:42 -04:00
Thomas Harte
406c838c39 Attempt better to print DirectAddresss. 2023-09-19 22:46:53 -04:00
Thomas Harte
02fcaf0dbd JCXZ seems to be preferred over JPCX. 2023-09-19 13:56:48 -04:00
Thomas Harte
a7cf7d3183 Resolve LOOPNE, LOOPE, etc. 2023-09-19 13:55:19 -04:00
Thomas Harte
e5dfc882cb Agree that JZ/JNZ are clearer (for me) of the synonyms. 2023-09-19 13:38:08 -04:00
Thomas Harte
2d928199d6 Clean up, add extra breakpoint points. 2023-09-18 17:10:09 -04:00
Thomas Harte
710017ada2 Largely resolve the operation-name problem. 2023-09-18 15:57:26 -04:00
Thomas Harte
9d9194f194 Improve dumped information on a mismatch. 2023-09-17 17:09:40 -04:00
Thomas Harte
f8dc5b8ebc Attempt to get close on index + base addresses. 2023-09-17 17:05:19 -04:00
Thomas Harte
2ee028d74f Bluff through a few more simple cases. 2023-09-17 16:29:04 -04:00
Thomas Harte
2d2eda6f8c Bodge my way into passing some comparisons. 2023-09-17 16:22:17 -04:00
Thomas Harte
c95df3cb6c Move a little towards string formation. 2023-09-15 22:28:30 -04:00
Thomas Harte
7ee5adc481 Forcing a displacement upon BP reduces to 29 failures.
(At the current limited fidelity of testing)
2023-09-15 16:09:04 -04:00
Thomas Harte
8d4393275c Add optional allow list, for ephemeral whittling. 2023-09-15 15:50:59 -04:00
Thomas Harte
9417996280 Also dump hex form of the instruction. 2023-09-14 15:40:40 -04:00
Thomas Harte
804f80d23c Provide sorted output. 2023-09-14 12:29:49 -04:00
Thomas Harte
28027385bc Attempt further to cheer via statistics.
Current opcode failure count: 164 out of 324. Just a shade more than 50%.
2023-09-14 09:33:45 -04:00
Thomas Harte
53d8322b46 Contort further for testing. 2023-09-13 16:45:39 -04:00
Thomas Harte
39840feae7 Added text to cheer myself up. 2023-09-13 16:09:58 -04:00
Thomas Harte
57087cc7c6 Provide feedback on prima facie failure. 2023-09-13 16:08:12 -04:00
Thomas Harte
a6abe3a51d Attempt actually to decode. No comparison yet. 2023-09-13 16:00:16 -04:00
Thomas Harte
aa127d9a9f Add an empty 8088 suite test class. 2023-09-13 15:53:38 -04:00