Thomas Harte
|
b510b9d337
|
Adds PHD, PHK and 8-bit PHP and PLP.
|
2020-10-07 20:13:12 -04:00 |
|
Thomas Harte
|
b608e11965
|
Realises that not all non-incrementing PC fetches should be thrown away.
|
2020-10-07 20:06:27 -04:00 |
|
Thomas Harte
|
e68b3a2f32
|
Corrects JMP program.
|
2020-10-07 19:59:29 -04:00 |
|
Thomas Harte
|
f7b119ffe1
|
Moves temporary logging, fixes branch instructions.
|
2020-10-07 19:57:58 -04:00 |
|
Thomas Harte
|
a4cec95db1
|
Corrects load and transfer flag oversights.
|
2020-10-07 19:36:23 -04:00 |
|
Thomas Harte
|
84c4fa197b
|
Corrects DEX mapping, notes new Dormann failure case.
|
2020-10-07 18:48:03 -04:00 |
|
Thomas Harte
|
eac722cf59
|
Implements enough of ADC and SBC for the Dormann test definitively to fail.
|
2020-10-07 18:36:17 -04:00 |
|
Thomas Harte
|
7439a326a6
|
Implements BIT (in regular and immediate forms).
|
2020-10-07 18:15:18 -04:00 |
|
Thomas Harte
|
5ca1c0747f
|
Generalises CMP to implement CPX and CPY.
|
2020-10-07 18:09:56 -04:00 |
|
Thomas Harte
|
466ca38dfa
|
Corrects TXY and TYX; kudos to PatrickvL for the spot!
|
2020-10-07 18:05:42 -04:00 |
|
Thomas Harte
|
93b0839036
|
Knocks out some transfer operations.
I'm possibly only seven or eight away from being able to test with complete official-opcode-only 6502 code?
|
2020-10-06 22:29:34 -04:00 |
|
Thomas Harte
|
e068cbc103
|
Implements CMP and fixes a zero-flag error on 16-bit operations.
|
2020-10-06 21:47:26 -04:00 |
|
Thomas Harte
|
5c809e5fbf
|
Implements rolls and shifts.
|
2020-10-06 21:34:39 -04:00 |
|
Thomas Harte
|
3933bf49cf
|
Implements BRL.
|
2020-10-06 21:28:54 -04:00 |
|
Thomas Harte
|
7065ba4857
|
Implements the single-byte branches.
|
2020-10-06 21:24:43 -04:00 |
|
Thomas Harte
|
ebff83018e
|
Implements the bitwise operators.
|
2020-10-06 20:17:03 -04:00 |
|
Thomas Harte
|
9ce9167e3c
|
Formalises work left to do.
|
2020-10-06 19:12:19 -04:00 |
|
Thomas Harte
|
993eff1d3d
|
Starts slowly, with flag manipulation.
|
2020-10-06 16:25:30 -04:00 |
|
Thomas Harte
|
18e8d6ce06
|
Makes an effort to factor out the 6502's [lazy] flags.
This is preparatory to deciding which instructions, if any, are worth factoring out.
|
2020-10-05 22:23:33 -04:00 |
|
Thomas Harte
|
b7ba0d4327
|
Attempts to complete all addressing modes.
So, if bugs didn't exist, it'd just be members of the Operation enum to go.
|
2020-10-05 17:04:57 -04:00 |
|
Thomas Harte
|
825201f4f2
|
Adds direct indirect.
|
2020-10-04 22:11:41 -04:00 |
|
Thomas Harte
|
9a05c68ce7
|
Attempts direct and direct indexed indirect.
|
2020-10-04 22:06:25 -04:00 |
|
Thomas Harte
|
d8dccf2500
|
Attempts a full implementation of MVN and MVP.
|
2020-10-04 19:21:04 -04:00 |
|
Thomas Harte
|
b416aa640f
|
Slightly tidies up, eliminating some store bugs.
|
2020-10-04 19:12:04 -04:00 |
|
Thomas Harte
|
4ebf594b3b
|
This should bring me up to absolute, y.
i.e. next is datasheet program 7.
|
2020-10-04 19:02:47 -04:00 |
|
Thomas Harte
|
8a83024962
|
Starts a dash towards just completing the addressing modes for now.
This brings me up to the end of absolute long (i.e. 4a on the datasheet).
|
2020-10-04 18:52:46 -04:00 |
|
Thomas Harte
|
bdc1136b96
|
Edges towards working short absolute addressing mode.
|
2020-10-03 21:30:24 -04:00 |
|
Thomas Harte
|
b83d93abc2
|
Accepts that whether instructions do 8- or 16-bit bus accesses depends on either M or X depending on the operation.
|
2020-10-02 17:08:30 -04:00 |
|
Thomas Harte
|
36f843bc6e
|
Ensure std::function is visible to 65816Storage.cpp.
|
2020-09-29 19:23:38 -04:00 |
|
Thomas Harte
|
78b3ec4b10
|
The actual work begins: starts implementing 65816 micro-ops.
|
2020-09-29 18:42:07 -04:00 |
|
Thomas Harte
|
ef1a514785
|
Introduces 6502Selector, for picking either a 6502 or a 65816 based on a single template parameter.
|
2020-09-28 21:35:46 -04:00 |
|
Thomas Harte
|
6635876e7e
|
Performs a bare factoring out of the 6502 bus handler.
|
2020-09-28 18:43:53 -04:00 |
|
Thomas Harte
|
5645f90abe
|
Takes a minor first step towards actually performing 65816 instructions.
|
2020-09-27 22:20:58 -04:00 |
|
Thomas Harte
|
5449e90b34
|
Edges towards offering the 65816 as another type of 6502 for testing.
|
2020-09-26 22:31:50 -04:00 |
|
Thomas Harte
|
1cd664ad85
|
Adds a sanity check.
|
2020-09-26 21:43:26 -04:00 |
|
Thomas Harte
|
e680022b1f
|
Completes the opcode set.
A million bugs yet to find.
|
2020-09-26 21:35:31 -04:00 |
|
Thomas Harte
|
67c2ce2174
|
Takes a run at completing the stack section.
I'm not really sure about BRK though — does it gain a signature on the 65816?
|
2020-09-26 21:20:01 -04:00 |
|
Thomas Harte
|
596e700b60
|
Drags myself onto the final page of bus programs.
233 opcodes now complete; six bus programs to go.
|
2020-09-26 20:57:24 -04:00 |
|
Thomas Harte
|
4a53b6e538
|
Adds push and pull, reaching 229/256 opcodes.
|
2020-09-26 20:38:29 -04:00 |
|
Thomas Harte
|
687f4bb3bb
|
Adds relative and relative long bus patterns.
Many of the rest cover only one or two opcodes so this puts me at 216/256 opcodes covered; 35/47 bus programs; just more than 5/7 pages.
|
2020-09-26 20:24:50 -04:00 |
|
Thomas Harte
|
473799cb62
|
There's not a lot to STP and WAI from a bus program point of view.
|
2020-09-26 20:18:30 -04:00 |
|
Thomas Harte
|
3dc22a9fd5
|
Adds implied and immediate modes.
... for 204/256 opcodes covered.
|
2020-09-26 17:42:42 -04:00 |
|
Thomas Harte
|
f54b655606
|
Adds d, x and d, y .
|
2020-09-26 17:26:17 -04:00 |
|
Thomas Harte
|
d2e868ea2b
|
Adds (d), y; [d], y; and [d].
Now covered: 146/256 opcodes, 4/7 pages, 25/47 bus programs.
|
2020-09-26 16:55:58 -04:00 |
|
Thomas Harte
|
3fc649359a
|
Transcribes the titles of all remaining bus programs.
Thereby frames the distance yet to travel.
|
2020-09-25 22:29:19 -04:00 |
|
Thomas Harte
|
1512ac11da
|
Adds (d, x) and (d) modes. Albeit by deferring the hard work.
That's: 122/256 opcodes; 22/47 bus programs, ~3.5/7 pages transcribed. Maybe I'll be able to get to the runtime stuff sooner rather than later?
|
2020-09-25 22:22:30 -04:00 |
|
Thomas Harte
|
5039cc7bb2
|
Adds direct page.
... to cover 106 opcodes.
|
2020-09-25 22:01:36 -04:00 |
|
Thomas Harte
|
5360a7b4ce
|
Adds block moves.
These are fairly specialised, dealing in two data addresses simultaneously.
|
2020-09-25 21:49:03 -04:00 |
|
Thomas Harte
|
2957a31f40
|
Adds absolute, x; absolute,y; and accumulator addressing modes.
Now covered: 80/256 opcodes, from 2/6 pages of the data sheet; or 16/47 bus programs.
|
2020-09-25 21:16:36 -04:00 |
|
Thomas Harte
|
8c11df52bf
|
Adds absolute long, x.
Factors out the commonality of a closing read/write while I'm here.
|
2020-09-25 19:27:17 -04:00 |
|