Thomas Harte
645152a1fd
Implement branch.
2024-02-28 11:33:28 -05:00
Thomas Harte
487ade56ed
Add basic multiply.
2024-02-28 11:27:27 -05:00
Thomas Harte
5a48c15e46
Add scheduler side of PC writeback.
2024-02-28 10:15:23 -05:00
Thomas Harte
d6bf1808f9
Take a swing at PC-as-input.
2024-02-28 09:33:05 -05:00
Thomas Harte
b676153d21
State intention to merge status with other registers.
2024-02-27 15:36:34 -05:00
Thomas Harte
b4e0b46bac
Add notes on R15.
2024-02-27 10:04:30 -05:00
Thomas Harte
09c1b2d7db
Add missing shifts.
2024-02-27 09:55:24 -05:00
Thomas Harte
4255283e33
Deal with conditionality up front.
2024-02-26 21:36:23 -05:00
Thomas Harte
16e827bb2c
Add basic arithmetics.
2024-02-26 21:27:58 -05:00
Thomas Harte
def69ce6d5
Add notes on R15.
2024-02-26 15:12:39 -05:00
Thomas Harte
054a799699
Fill in the easy 50% of operations.
2024-02-26 15:10:00 -05:00
Thomas Harte
580f402bb6
Muddle further towards data processing.
2024-02-26 14:50:45 -05:00
Thomas Harte
030dda34f0
Start poking at implementation.
2024-02-26 14:30:26 -05:00
Thomas Harte
481b6d0e69
Sketch out some status flags.
2024-02-25 22:01:51 -05:00
Thomas Harte
56a5df3783
Do the least possible manual test.
2024-02-22 10:48:19 -05:00
Thomas Harte
d205e538e1
Accept the C++ I'm in; clarify and simplify interface.
2024-02-22 10:16:54 -05:00
Thomas Harte
f9cbec668b
Add empty shell for tests.
2024-02-21 15:43:24 -05:00
Ryan Carsten Schmidt
d811501421
Compatibility fixes in Markdown files.
...
Improve compatibility with some Markdown readers like MacDown by adding
blank lines before lists. Blank lines around headers were added for
consistency. One header level was fixed. One code block was fixed.
2024-01-27 13:24:35 -06:00
Thomas Harte
a3d37640aa
Switch include guards to #pragma once
.
2024-01-16 23:34:46 -05:00
Thomas Harte
177e741bca
Fix test.
2024-01-09 21:19:44 -05:00
Thomas Harte
cf00a709ec
Be consistent in shadowing physical addresses.
2024-01-03 15:02:54 -05:00
Thomas Harte
bbaaa520c8
Eliminate MemoryMap access macros, fix tests target.
2024-01-03 13:21:39 -05:00
Thomas Harte
3e328bed61
Be overt about jump size, albeit without internal rigour.
2023-12-24 14:11:41 -05:00
Thomas Harte
85f814c632
Attempt to build fixed operations into type.
...
This simplifies callees and should make all helper functions automatically able to optimise themselves for fixed operations.
2023-12-21 23:08:18 -05:00
Thomas Harte
160fec2439
Eliminate trace.
2023-12-21 15:31:09 -05:00
Thomas Harte
faaa89bb67
Eliminate all reference to EmuTOS.
2023-12-21 15:28:45 -05:00
Thomas Harte
3b84299a05
Edge closer to PCCompatible doing _something_.
2023-11-15 15:58:49 -05:00
Thomas Harte
a22ac2f88b
Move towards privacy.
2023-11-14 11:39:44 -05:00
Thomas Harte
2533fd2da9
Fix segment comparisons.
2023-11-14 11:14:28 -05:00
Thomas Harte
ac826f90c3
Formalise a separate manager of segments.
2023-11-14 10:56:00 -05:00
Thomas Harte
08d9cc3bd3
Restore permitted IDIV miss.
2023-11-10 23:02:32 -05:00
Thomas Harte
47fc276afc
Add note to future self.
2023-11-10 23:01:46 -05:00
Thomas Harte
3a782faaf3
Ensure shoutouts upon LDS, LES and any far jump/call/int.
2023-11-10 22:58:59 -05:00
Thomas Harte
19a61f867f
Eliminate final misuse of 'selector'.
2023-11-10 22:56:00 -05:00
Thomas Harte
2551e73be1
Fully test segment registers.
2023-11-10 22:54:10 -05:00
Thomas Harte
e61dc0466f
Add callout for tracking segment register changes.
2023-11-10 22:22:32 -05:00
Thomas Harte
79b126e6bb
Add route for tracking segment register changes.
2023-11-10 22:11:52 -05:00
Thomas Harte
e78e5c8101
Add remaining acceptable error cases.
2023-11-09 12:26:40 -05:00
Thomas Harte
ed3922e458
Switch to accepting failures only with a reason.
2023-11-09 11:55:36 -05:00
Thomas Harte
9e61d3e8cf
Combine AAA and AAS.
2023-11-08 22:38:52 -05:00
Thomas Harte
8d2a2bcf4a
Unify DAA and DAS.
2023-11-08 22:26:48 -05:00
Thomas Harte
f608153c1a
Don't bother prepropulating for writes.
2023-11-07 14:38:23 -05:00
Thomas Harte
413e7b7de1
Switch Memory
to using accessors.
2023-11-07 14:03:20 -05:00
Thomas Harte
0262875088
Claw back to building.
2023-11-07 09:58:42 -05:00
Thomas Harte
2af774601f
Temporarily disentangle Memory
and access internals; start to be overt in PerformImplementation.
2023-11-06 16:04:31 -05:00
Thomas Harte
797c9fe129
Temporarily avoid use of Writeable.
2023-11-05 21:47:52 -05:00
Thomas Harte
009915f4de
Start promotion of ReturnType.
2023-11-05 21:42:22 -05:00
Thomas Harte
f96c33102a
Add documentation.
2023-11-04 22:22:50 -04:00
Thomas Harte
5739862dbb
Add specific entryway for preauthorised writes.
2023-11-03 15:36:30 -04:00
Thomas Harte
83850d7596
Commute: Status -> Flags as per usual x86 naming.
2023-11-02 16:55:38 -04:00
Thomas Harte
770803b073
Be more careful as to authorisation.
2023-11-02 15:37:59 -04:00
Thomas Harte
8d0deeb20e
Clean up Memory
.
2023-11-02 14:25:13 -04:00
Thomas Harte
e4fdf09149
Fix PUSH SP, far call. Further simplify FlowController.
2023-11-01 23:39:52 -04:00
Thomas Harte
acb55aa4e2
Subsume repetition of arguments into a single context.
...
Albeit that it (temporarily?) loses some context used during test validation.
2023-11-01 17:03:23 -04:00
Thomas Harte
bc095bb9ce
Slim down the flow controller.
2023-11-01 14:49:30 -04:00
Thomas Harte
097b328075
Split the preauthorised tracks.
2023-11-01 14:31:42 -04:00
Thomas Harte
ef83ac855a
Fix spelling of Preauthorised, think further on return types.
2023-11-01 14:11:10 -04:00
Thomas Harte
78df0d19e4
Start experimenting with varying return types.
2023-11-01 10:03:31 -04:00
Thomas Harte
9538491ee9
Fix pushes and pops.
2023-10-31 21:55:30 -04:00
Thomas Harte
8be03be529
Add test of ::Write mode.
2023-10-31 20:28:37 -04:00
Thomas Harte
1d479ec2d7
Ensure that reads can only read, accept that source is sometimes written to. E.g. XCHG.
2023-10-31 15:06:19 -04:00
Thomas Harte
02af08ffd2
Fix counts.
2023-10-30 12:32:44 -04:00
Thomas Harte
444c5b94b9
Add summary of accepted failures.
2023-10-29 16:55:07 -04:00
Thomas Harte
7a886f938a
Propagate access types, even if incorrect.
2023-10-29 14:33:39 -04:00
Thomas Harte
6da0add100
Permit 1654 failures, the current amount.
2023-10-27 16:30:30 -04:00
Thomas Harte
2d70b44303
Boil down segment ahead of time.
2023-10-27 12:54:42 -04:00
Thomas Harte
11b032fb06
Eliminate length extension.
2023-10-26 23:19:31 -04:00
Thomas Harte
3b62638b30
Remove dead DataPointerResolver and extra-conditional version of source().
2023-10-25 14:43:58 -04:00
Thomas Harte
0c09c14baa
Incorporate instruction length into offsets.
2023-10-25 13:02:43 -04:00
Thomas Harte
6dd5628dd6
Provide full pair for string conversion.
2023-10-25 11:21:11 -04:00
Thomas Harte
239ce75db6
Fix IN and OUT conversion.
2023-10-24 22:35:13 -04:00
Thomas Harte
26c2a29b99
Fix int3 mapping.
2023-10-24 15:09:25 -04:00
Thomas Harte
e36274e5c2
Add segment prefix for MOVS, LODS, etc.
2023-10-24 15:07:53 -04:00
Thomas Harte
0e027445d4
Don't offer repne for reps; print far CALLs and JMPs as h-suffix rather than 0x prefix.
2023-10-24 11:01:38 -04:00
Thomas Harte
20d7079006
Start adaptation to new test disassembly form.
2023-10-23 16:37:27 -04:00
Thomas Harte
49d87c9f27
Fix 16-bit accesses that overlap memory's end.
...
1654 failures remaining.
2023-10-23 10:41:58 -04:00
Thomas Harte
82c66e7433
Fix far jump with immediate operand.
...
1655 failures remaining.
2023-10-23 10:07:19 -04:00
Thomas Harte
569cf8bf34
Focus on remaining files with issues.
2023-10-23 10:02:13 -04:00
Thomas Harte
817a30332c
Take a swing at LEA r16, r16.
2023-10-22 22:15:27 -04:00
Thomas Harte
599c123b36
Reenable all tests.
2023-10-21 22:55:10 -04:00
Thomas Harte
e3cdf113d1
Implement INS, OUTS.
2023-10-21 22:52:50 -04:00
Thomas Harte
aade91f043
Implement IN, OUT.
2023-10-21 22:37:25 -04:00
Thomas Harte
bf6fd8e5e4
Shuffle down TODO.
2023-10-20 21:57:03 -04:00
Thomas Harte
c2ebbe5ad9
Implement STOS with one failure.
2023-10-20 21:54:30 -04:00
Thomas Harte
4efc181f07
Fix memory handler, STOS.
2023-10-20 21:49:34 -04:00
Thomas Harte
93e90b09a0
Implement MOVS, STOS, revealing an issue in the memory handler.
2023-10-20 21:46:47 -04:00
Thomas Harte
dab3dcaafb
Fix LODS: REP is not REPE.
2023-10-20 21:36:50 -04:00
Thomas Harte
8caad8b99d
Document slightly.
2023-10-20 17:25:27 -04:00
Thomas Harte
bee094eba1
Add LODS; somehow manage to fail some of its tests.
2023-10-20 17:13:56 -04:00
Thomas Harte
0f5e0e17a4
Fix address manipulation.
2023-10-20 17:03:23 -04:00
Thomas Harte
49ac2d8e0c
Improve error reporting, remove some dead TODOs.
2023-10-20 17:00:32 -04:00
Thomas Harte
a71db54212
Simplify flow slightly; uncover issues in CMPSW.
2023-10-20 16:52:47 -04:00
Thomas Harte
efb854ddfa
Fix repetition. Sufficient for tests.
2023-10-19 14:40:03 -04:00
Thomas Harte
f715cd89a9
Attempt CMPS, changing storage of direction; add flags check.
2023-10-19 14:07:59 -04:00
Thomas Harte
617be7cba7
Implement PUSHes and POPs.
2023-10-18 15:59:39 -04:00
Thomas Harte
02cea3047e
Implement LOOP, LOOPE, LOOPNE.
2023-10-18 14:04:21 -04:00
Thomas Harte
a8c7871b0c
Implement JCXZ.
2023-10-18 13:20:28 -04:00
Thomas Harte
90f49a6e73
Implement JMP.
2023-10-18 13:15:00 -04:00
Thomas Harte
440f3bdb10
Further improve error reporting.
2023-10-16 15:47:06 -04:00
Thomas Harte
89743f0ba0
Implement RET, IRET.
2023-10-16 15:40:24 -04:00