Thomas Harte
|
d35377c776
|
Implement SALC, SETMO, SETMOC.
|
2023-10-12 15:52:05 -04:00 |
|
Thomas Harte
|
97d3a9fa78
|
Implement MOV.
|
2023-10-12 15:34:46 -04:00 |
|
Thomas Harte
|
da029ee344
|
Implement LEA.
|
2023-10-12 14:31:25 -04:00 |
|
Thomas Harte
|
cf846f501a
|
Implement LDS, LES.
|
2023-10-12 14:24:28 -04:00 |
|
Thomas Harte
|
e948a67814
|
Implement SAHF, LAHF.
|
2023-10-12 13:54:51 -04:00 |
|
Thomas Harte
|
56e639e09a
|
Add INT (including INT3), INTO.
|
2023-10-11 16:01:09 -04:00 |
|
Thomas Harte
|
e75ef70c96
|
Further generalise.
|
2023-10-11 15:08:04 -04:00 |
|
Thomas Harte
|
a768b101f8
|
Further clean up copy-and-paste mess.
|
2023-10-11 14:36:42 -04:00 |
|
Thomas Harte
|
7159366360
|
Collapse all flags accesses behind setters and getters.
|
2023-10-11 12:35:17 -04:00 |
|
Thomas Harte
|
fbd647080d
|
Start factoring out useful ALU stuff.
|
2023-10-11 11:06:20 -04:00 |
|
Thomas Harte
|
4a803e2d43
|
Reduce ADD/ADC/SUB/SBB repetition.
|
2023-10-10 22:43:06 -04:00 |
|
Thomas Harte
|
a83b43a1ae
|
Implement XCHG.
|
2023-10-10 22:34:42 -04:00 |
|
Thomas Harte
|
5125907048
|
Implement TEST.
|
2023-10-10 22:28:10 -04:00 |
|
Thomas Harte
|
08867f4970
|
Implement CMP.
|
2023-10-10 22:15:33 -04:00 |
|
Thomas Harte
|
d0a9b5cb81
|
Implement NEG, NOT.
|
2023-10-10 22:09:10 -04:00 |
|
Thomas Harte
|
0ecc319ee6
|
Add OR, XOR.
|
2023-10-10 17:12:06 -04:00 |
|
Thomas Harte
|
de95026076
|
Implement Jcc.
|
2023-10-10 16:27:06 -04:00 |
|
Thomas Harte
|
ec982444f7
|
Add getters to obscure internal flag storage.
|
2023-10-10 16:14:20 -04:00 |
|
Thomas Harte
|
f083eab011
|
Implement INC, DEC.
|
2023-10-10 15:57:33 -04:00 |
|
Thomas Harte
|
dbf7d07609
|
Add DIV, faulty IDIV.
|
2023-10-10 10:34:18 -04:00 |
|
Thomas Harte
|
b420d4cbd7
|
Collect TODOs.
|
2023-10-09 22:22:06 -04:00 |
|
Thomas Harte
|
0412890923
|
Add STC, STD, STI.
|
2023-10-09 22:16:37 -04:00 |
|
Thomas Harte
|
5e830781cc
|
Implement IMUL, improve test memory footprint.
|
2023-10-09 22:12:15 -04:00 |
|
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
|
6e465b9159
|
Merge branch 'master' into 8088Execution
|
2023-10-07 14:31:09 -04:00 |
|
Thomas Harte
|
6d1dd218d4
|
Import Neskell binaries.
|
2023-10-07 14:29:53 -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
|
f411a961a3
|
Create a central location for avoiding segment conditionality.
|
2023-10-05 17:12:38 -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
|
488fceb42b
|
Clean up, add a TODO.
|
2023-10-05 11:23:58 -04:00 |
|
Thomas Harte
|
7f6e3cf8b7
|
Define the available flags.
|
2023-10-05 10:51:55 -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
|
13f49fe8bf
|
Merge branch 'master' into 8088Tests
|
2023-09-22 10:45:55 -04:00 |
|
Thomas Harte
|
873b1122ab
|
Correct SHA, SHX, SHY, SHS when page boundary crossed.
|
2023-09-21 15:31:04 -04:00 |
|
Thomas Harte
|
4c32fc9b11
|
These tests appear to be against a real 6502.
|
2023-09-21 10:22:04 -04:00 |
|
Thomas Harte
|
4a87aa06a5
|
Add use of AHX/TAS/SHX/SHY pagecross test. Which fails.
|
2023-09-21 10:07:09 -04:00 |
|
Thomas Harte
|
5731ab75a6
|
Test stack result, pass first test.
|
2023-09-21 10:00:26 -04:00 |
|
Thomas Harte
|
797ce89a26
|
Correct test trailer.
|
2023-09-21 09:52:38 -04:00 |
|
Thomas Harte
|
4dc7b1840c
|
Start attempting to digest Neskell's NES 6502 tests.
|
2023-09-21 09:47:29 -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 DirectAddress s.
|
2023-09-19 22:46:53 -04:00 |
|
Thomas Harte
|
6f5fcf23dc
|
Add missing substitutions.
|
2023-09-19 14:00:27 -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
|
5b9c5e250d
|
Increase version number.
|
2023-09-17 16:04:19 -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 |
|
Thomas Harte
|
8efb6a9226
|
Simplify 'get_next_sequence_point' -> 'next_sequence_point'.
|
2023-09-10 18:00:49 -04:00 |
|
Thomas Harte
|
3d5a351306
|
Add manual rpath for macOS 10.13.
|
2023-09-03 15:46:35 -04:00 |
|
Thomas Harte
|
4d6ffa7a2e
|
With some degree of hit and hope, correct 65C02 results.
|
2023-08-31 15:28:59 -04:00 |
|
Thomas Harte
|
39ee75d94a
|
Clean up decimal SBC implementation.
|
2023-08-31 15:02:17 -04:00 |
|
Thomas Harte
|
139a1a2acc
|
Clean up decimal ADC.
|
2023-08-30 23:04:38 -04:00 |
|
Thomas Harte
|
7b569b1a6c
|
Merge branch 'master' into 65C02BCDTest
|
2023-08-29 21:32:25 -04:00 |
|
Thomas Harte
|
74b416f985
|
Clean up output.
|
2023-08-29 17:07:35 -04:00 |
|
Thomas Harte
|
c160482b0a
|
Exploit test's 65C02 abilities.
|
2023-08-29 17:04:52 -04:00 |
|
Thomas Harte
|
ec8f1b0fe0
|
Vary seed between processors.
|
2023-08-29 16:55:39 -04:00 |
|
Thomas Harte
|
fa82fb46b9
|
Acknowledge ever-revolving earth.
|
2023-08-20 15:33:47 -04:00 |
|
Thomas Harte
|
90f16026bc
|
Merge branch 'master' into Templates
|
2023-08-19 15:57:37 -04:00 |
|
Thomas Harte
|
26343148ae
|
Use simplified control lines when appropriate.
|
2023-08-17 15:32:02 -04:00 |
|
Thomas Harte
|
fd0fe66851
|
Omit unsupported registers and flags.
|
2023-08-17 15:24:08 -04:00 |
|
Thomas Harte
|
0a336baae2
|
Perform minor generalisation.
|
2023-08-17 14:50:43 -04:00 |
|
Thomas Harte
|
5d45aa4a6a
|
Fix seed per test.
|
2023-07-28 13:58:01 -04:00 |
|
Thomas Harte
|
1d8bc41724
|
Shift back to original name.
|
2023-06-13 15:25:51 -04:00 |
|
Thomas Harte
|
d36a88dd11
|
Collect up different dispatches.
|
2023-06-13 15:22:53 -04:00 |
|
Thomas Harte
|
de5ee8f0d0
|
Mildly extend test.
|
2023-06-13 13:26:39 -04:00 |
|