Commit Graph

1266 Commits

Author SHA1 Message Date
Thomas Harte 36d9c40d7b Yuckily avoid warning. 2024-04-23 22:23:56 -04:00
Thomas Harte 9063852857 Undo spurious text change. 2024-03-14 21:16:38 -04:00
Thomas Harte 6b18d775ab Eliminate unused variables. 2024-03-12 21:53:26 -04:00
Thomas Harte 61d4c69e45 Fix template parameter reference. 2024-03-04 13:25:40 -05:00
Thomas Harte d639dc8bcb Hit up some more `= default` opportunities. 2024-02-17 15:42:31 -05:00
Thomas Harte bc5727af14 Switch to `= default`. 2024-02-16 21:50:15 -05:00
Thomas Harte f14e45f93e Remove various instances of ';;'. 2024-02-12 14:23:54 -05:00
Ryan Carsten Schmidt 31e261f7e5 Add missing include of cstring for memcpy. 2024-01-24 09:00:10 -06:00
Thomas Harte a3d37640aa Switch include guards to `#pragma once`. 2024-01-16 23:34:46 -05:00
Thomas Harte a1f6f2c7f7 Eliminate remaining macros. 2024-01-16 22:42:20 -05:00
Thomas Harte d85afc0caf Convert bus access macros. 2024-01-16 22:36:52 -05:00
Thomas Harte 112f3d1e73 Convert 6502 `Personality`-related macros. 2024-01-16 22:30:35 -05:00
Thomas Harte dc53d6e6fa Convert `check_schedule` and `bus_access` macros. 2024-01-16 22:28:15 -05:00
Thomas Harte ca30cf6376 Eliminate surviving uses of old naming convention. 2024-01-16 14:18:29 -05:00
Thomas Harte 980ccbd45b Eliminate repetition macros. 2024-01-16 14:17:31 -05:00
Thomas Harte cc635fd3ea Eliminate set_decimal_rotate_flags entirely. 2024-01-16 13:59:03 -05:00
Thomas Harte fe34083ab8 Demacroise set_shift_flags, reduce casting. 2024-01-16 13:51:16 -05:00
Thomas Harte ea4cc4c9b3 Convert set_rotate_flags and decline_conditional macros. 2024-01-16 13:40:44 -05:00
Thomas Harte 5b5ae69a18 Convert `set_logical_flags` and `set_arithmetic_flags` to lambdas. 2024-01-16 10:13:30 -05:00
Thomas Harte de038fe28f Eliminate easy macros from Z80 implementation. 2024-01-16 09:43:41 -05:00
Thomas Harte 66bc1fd6fd Don't mix constructor delegation and variable instantiation. 2023-12-22 12:29:27 -05:00
Thomas Harte c07f8d8ef8 Switch ordering. 2023-12-22 10:50:49 -05:00
Thomas Harte dbb14467ec Remove redundant using, add extra comment. 2023-12-22 10:48:35 -05:00
Thomas Harte c266639a0c Improve commentary; use specialised types for TAS. 2023-12-22 10:46:10 -05:00
Thomas Harte 5b43ea82f3 Lock down interrupt cycle types. 2023-12-21 23:12:14 -05:00
Thomas Harte 7c28a77b2b Fill in assignment operator. 2023-12-21 23:09:42 -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 213dfe037d Shift operation stuff into its own namespace, making data_select_active a free function. 2023-12-21 16:03:53 -05:00
Thomas Harte faaa89bb67 Eliminate all reference to EmuTOS. 2023-12-21 15:28:45 -05:00
Thomas Harte 1f2fbccf1f Update documentation. 2023-12-20 22:05:45 -05:00
Thomas Harte 356d8f469a Correct various throaway -> throwaway. 2023-12-20 22:02:51 -05:00
Thomas Harte 60bd81c4cc Use X. 2023-12-20 22:02:51 -05:00
Thomas Harte 38c3d302a3 Restore JMP (abs, x) length. 2023-12-20 22:02:51 -05:00
Thomas Harte 24c80060c8 Revise guess on JMP (abs, x). 2023-12-20 22:02:51 -05:00
Thomas Harte d33deb676f Adjust (abs, y) addressing. 2023-12-20 22:02:19 -05:00
Thomas Harte bf5ed98f35 Generalise 65c02 behaviour.
Partly to convince myself:
1. this change alters behaviour of `CycleAddXToAddressLowRead`
2. which affects only `AbsoluteXw` and the 65c02-specific `JMP (abs, x)`;
3. `AbsoluteXw` is then used only by `AbsoluteXWrite` and `AbsoluteXReadModifyWrite`;
4. `AbsoluteXWrite` is used for abs, x addressing by `SHY`, `STA` and `STZ`;
5. `AbsoluteXReadModifyWrite` is used for `ASL`, `ASO`, `ROL`, `RLA`, `LSR`, `LSE`, `ROR`, `RRA`, `DEC`, `DCP`, `INC` and `INS`.

... though many of the latter are replaced by instance of `FastAbsoluteXReadModifyWrite` for the 65c02 which don't include a dummy
access at all if the page boundary is crossed so the issue is moot.
2023-12-20 22:02:14 -05:00
Thomas Harte f25aaf2bb3 Adjust 65c02 STA abs,x behaviour. 2023-11-29 15:32:02 -05:00
Thomas Harte 7171e24ccf Enable further compile-time optimisations. 2023-11-28 13:50:53 -05:00
Thomas Harte 36a4629ce0 Explain new semantics. 2023-11-27 21:49:57 -05:00
Thomas Harte 5c7f94d2ef Introduce the possibility of operation type as a template parameter.
It's already proven possible to provide this for instruction fetch, so I think it'll immediately be a win. But more importantly it opens a path forwards for further improvement.
2023-11-27 11:48:34 -05:00
Thomas Harte e46e42d896 This is the same test either way around. 2023-10-09 16:47:02 -04:00
Thomas Harte 1cb26cb141 Pull add/sub distinction into templates. 2023-10-09 16:40:50 -04:00
Thomas Harte 873b1122ab Correct SHA, SHX, SHY, SHS when page boundary crossed. 2023-09-21 15:31:04 -04:00
Thomas Harte 74b5ad93c4 Don't necessarily apply D for ARR. 2023-09-20 10:17:00 -04:00
Thomas Harte 43dfb729d3 Explain even better. 2023-09-02 14:45:53 -04:00
Thomas Harte 543be49cf8 Merge branch 'master' into 65C02BCDTest 2023-09-01 16:39:18 -04:00
Thomas Harte 1fb278c9f1 Fix abs,x NOP length. 2023-09-01 14:31:21 -04:00
Thomas Harte 19ec63b4fb Add exposition, slightly simplify, unbreak INS. 2023-09-01 09:29: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