Commit Graph
100 Commits
Author SHA1 Message Date
Adrian Conlon 0ca0e1da36 Optimisation: the NOP is meaningless
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2022-07-13 07:44:47 +01:00
Adrian Conlon 9a5f9ccd1a Tidy up some exception specifications. 2022-03-26 16:06:29 +00:00
Adrian Conlon 1a5df4c8a7 More "noexcept" specifiers added to M6502 class 2022-01-24 23:00:25 +00:00
Adrian Conlon 1796d62517 std::string_view rather than std::string reads a bit better for this use. 2022-01-21 22:49:22 +00:00
Adrian Conlon 8e0092ec9d Tidy up noexcept specification 2022-01-17 19:10:15 +00:00
Adrian Conlon 83b7efdd03 Use iterator, rather than index access for JSON data, if possible. Bit of a speed up! 2022-01-06 09:50:58 +00:00
Adrian Conlon 70a785b5c2 Try to remove some casting warnings by redefining ROM size types. 2022-01-03 12:29:32 +00:00
Adrian Conlon 53ef92dbc4 So I can compare implementations, add a non-coroutine variant of the HarteTest suite. 2022-01-03 00:50:41 +00:00
Adrian Conlon 3ca84b516a Switch to latest stable release of catch2 (2.13.7)
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2022-01-03 00:41:42 +00:00
Adrian Conlon c5ea0c2c21 Refactor co_generator_t into something a little more comprehensible to me. 2022-01-02 17:32:05 +00:00
Adrian Conlon 42e72ce077 Spaceship operator didn't work as a I wanted it, so I've gone old school again until I can work out why the "==" operator couldn't be found. 2022-01-02 12:29:39 +00:00
Adrian Conlon bde2900017 Add missing register16_t operator (>) 2022-01-01 23:01:59 +00:00
Adrian Conlon 4efa66c44e Remind MSVC++ of its responsibilities as to properly define "__cplusplus" 2022-01-01 15:13:16 +00:00
Adrian Conlon 42e45ccdef Upgrade to boost 1.78, due to coroutine2 incompatibilities. 2022-01-01 13:30:41 +00:00
Adrian Conlon bb75f98d5d Experimentation with C++17 compatibilty. Mainly an exercise in rewrting coroutine code in boost::coroutine2. Interesting! 2022-01-01 13:20:34 +00:00
Adrian Conlon fbdf2fcf02 Add some more Z80 documentation 2022-01-01 13:06:45 +00:00
Adrian Conlon 6b6ce71140 Remove unused includes 2022-01-01 11:13:28 +00:00
Adrian Conlon d570be3f0e Prefer accessor methods, if available. 2022-01-01 11:12:51 +00:00
Adrian Conlon 91df9ea48b Make Z80 profile output conditional on the availability of data. 2021-12-30 12:32:34 +00:00
Adrian Conlon 3b01c639fd Some performance improvements for the Z80 disassembler 2021-12-30 00:56:24 +00:00
Adrian Conlon cbcb2c5de1 Use the "<=>" operator in the register16_t class to give comparison operators for free. 2021-12-29 11:40:37 +00:00
Adrian Conlon 6346ea9278 Switch to C++20 everywhere 2021-12-29 11:39:41 +00:00
Adrian Conlon 1f5dc54c40 Copy constructor and equality operations added. 2021-12-27 22:07:30 +00:00
Adrian Conlon 945fcefb36 Start adding comparison operations to EightBit classes 2021-12-27 14:24:38 +00:00
Adrian Conlon af7679505c Add a span compatible ROM loader 2021-12-26 22:01:12 +00:00
Adrian Conlon 4f4d234ed5 Correct some missed 6809 fixes 2021-12-26 21:59:52 +00:00
Adrian Conlon 2b8513fd37 EightBit and Z80 projects move to C++20 2021-12-17 21:09:13 +00:00
Adrian Conlon fa9c4ea3b3 Catch some missing [[nodiscard]] attributes. 2021-12-17 21:08:10 +00:00
Adrian Conlon 7af8a19e2f Coroutine generator becomes a part of the core EightBit library. 2021-12-17 09:19:16 +00:00
Adrian Conlon f837836072 Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2021-12-08 19:55:21 +00:00
Adrian Conlon 3d5d4d889c Lots of C++20 and stability changes in 6502 HarteTest 2021-12-08 19:54:53 +00:00
Adrian Conlon 19f8e20021 Simplification when using C++20 2021-12-08 19:52:53 +00:00
Adrian Conlon e8dd92f0ae Fix crash due to limited stack space. 2021-12-08 19:52:22 +00:00
Adrian Conlon 712be312ef Simplify the 6809 tests, post flag simplification 2021-12-08 19:51:29 +00:00
Adrian Conlon 30b61af820 Whoops: missed this from the last commit! 2021-12-08 19:50:45 +00:00
Adrian Conlon 47ac36c8af Catch a couple of small issues in the 6809 tester code 2021-12-08 19:50:11 +00:00
Adrian Conlon cea3fd47af Lots of reworking of the 6809 core, still looking for the FP bug. 2021-12-08 19:49:05 +00:00
Adrian Conlon 5522fde9a7 Make the flag manipulations in the 6502 implementatin a little more comprehensible 2021-12-08 19:47:35 +00:00
Adrian Conlon e7d3c2ecb7 Use C++17 nodiscard attribute a little in the Game library 2021-12-08 19:46:19 +00:00
Adrian Conlon 927938560a Tidy the Bus reference definition a little 2021-12-08 19:45:07 +00:00
Adrian Conlon 61b7359505 cycles_t is better served as an array_t typedef 2021-12-08 19:43:40 +00:00
Adrian Conlon 72705e8dd0 Updated projects for VS2022 2021-12-08 19:42:34 +00:00
Adrian Conlon f16e120272 Update Makefile 2021-11-25 15:15:56 +00:00
Adrian Conlon 8853e1157c Refactor the checking code into into it's own class.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-31 09:49:10 +00:00
Adrian Conlon fed763a802 correct cycle inaccuracies (according to the Harteman tests) in "STA (indirect indexed Y)"
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-30 22:40:13 +01:00
Adrian Conlon eeecb7c719 Correct BCD addition handling
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-30 21:25:56 +01:00
Adrian Conlon 04a9ffdcda Some visibility refactoring.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-28 16:56:54 +01:00
Adrian Conlon 9e9c15e289 Use C++20 co-routines as generators for opcode suite and test generation.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-27 09:53:58 +01:00
Adrian Conlon 45405d5624 Improve overall test speed by reusing test runners.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-25 18:40:21 +01:00
Adrian Conlon 75dd53f829 Const a few member variables.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-24 23:20:05 +01:00
Adrian Conlon 09cc616ee9 Whoops: revert accidental commenting of code.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-24 14:59:14 +01:00
Adrian Conlon a37aaeba31 Unify the compilation options to what seems to be a sensible point.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-24 14:12:57 +01:00
Adrian Conlon 3158b2238a Refactor the JSON core parsing code a little
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-24 13:39:08 +01:00
Adrian Conlon 76c03bb4d4 Tidy up header usage.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-24 11:42:43 +01:00
Adrian Conlon f8b5045f99 Use string_view from simdjson. Interesting speed up.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-24 11:15:10 +01:00
Adrian Conlon 03b536838b Some constexpr improvements in low level classes.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-24 11:12:23 +01:00
Adrian Conlon f85fec3c81 Constify a few statements. Not much difference.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-23 17:46:59 +01:00
Adrian Conlon 17b71aafc3 Refactor to share JSON implementation details.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-22 13:10:23 +01:00
Adrian Conlon 8b7607f5e9 Make the code a little more like the JSON schema.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-22 11:24:45 +01:00
Adrian Conlon 2890cc5dbb Merge branch 'master' of https://github.com/MoleskiCoder/EightBit into master 2021-10-22 10:51:47 +01:00
Adrian Conlon e9df345577 More simplifications and faster yet!
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-22 10:51:36 +01:00
Adrian Conlon 627e6bdaf9 Update codeql-analysis.yml 2021-10-21 23:35:09 +01:00
Adrian Conlon 6e364ad774 Fix Linux/GCC compilation issue. 2021-10-21 22:58:52 +01:00
Adrian Conlon e63ace34e9 Simplifications of json usage. No slow down.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-21 22:43:16 +01:00
Adrian Conlon 393fab2bbc Further simplifications and speedups to the json code.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-21 22:03:07 +01:00
Adrian Conlon 0adb60a0f4 Remove unneeded method from ram_t 2021-10-21 13:39:10 +01:00
Adrian Conlon d59c72cf00 Make the test run output a little more comprehensible.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-21 13:38:44 +01:00
Adrian Conlon 0deb37ab19 More JSON code simplifications.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-20 23:06:42 +01:00
Adrian Conlon c39178f9d1 Remove unnecessary json libraries from project.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-20 22:48:19 +01:00
Adrian Conlon b70f24a581 Draw an end to my json experimentations. simdjson is king. long live simdjson!
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-20 21:44:43 +01:00
Adrian Conlon 47b7cb2a06 Add some more experimental json access modes.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-20 21:05:43 +01:00
Adrian Conlon 3a58bad0b0 Simplify json datatype conversions.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-20 14:28:00 +01:00
Adrian Conlon 5d66d1aac3 Remove fancy iterator shenigans from simdjson usage.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-19 16:53:10 +01:00
Adrian Conlon 0ef06ebbb2 Back to looking at the failing tests now! Add failure count and disassembly of failed opcodes.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-19 13:13:59 +01:00
Adrian Conlon bb7de9d3e1 Prefer passing byte_t by value.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-19 11:44:58 +01:00
Adrian Conlon 16752474d9 Correct a casting issue in the rapidjson implementation
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-19 11:43:06 +01:00
Adrian Conlon 1943db6f20 rapidjson can use an std::string constructor.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-19 10:57:27 +01:00
Adrian Conlon 710c8fb883 Refactor the ram_t class to be a container of byte_t
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-19 09:28:13 +01:00
Adrian Conlon 2be190af19 Couple of small consistency changes in the rapidjson implementation.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-19 00:59:02 +01:00
Adrian Conlon 91bd04a278 Add support for rapidjson parsing
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-19 00:39:26 +01:00
Adrian Conlon dc0fc262a2 More micro-optimisations. 2021-10-18 20:40:13 +01:00
Adrian Conlon 357e51c09a Clarify some (no) exception specifications.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-18 17:19:28 +01:00
Adrian Conlon f62e8c30a2 Remove some unneeded default constructors.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-18 13:22:06 +01:00
Adrian Conlon b56a2450a1 Couple of blank lines removed.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-18 13:13:43 +01:00
Adrian Conlon 1234aaf9d9 Refactor RAM test values.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-18 13:12:22 +01:00
Adrian Conlon 9cd317624e Couple of extra safety checks.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-18 12:28:15 +01:00
Adrian Conlon fa50f74508 Tidy the previous cycle parsing refactor and reset to a simdjson pukka run.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-18 12:07:24 +01:00
Adrian Conlon 79f3e3ac6c Refactor the code to isolate the cycles parsing. Interesting speed up!
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-18 11:54:01 +01:00
Adrian Conlon 50cea1b81a Some JSON C++ library example code "levelling"
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-17 18:36:27 +01:00
Adrian Conlon 500e65b895 Tidy up the code a little (including removing some no longer needed code).
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-13 23:33:08 +01:00
Adrian Conlon 4892ea95d3 Split load/parse of opcode tests.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-12 17:07:45 +01:00
Adrian Conlon dcba8efc83 All experimentation on the effect of JSON parser reuser.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-12 10:10:45 +01:00
Adrian Conlon 31c3a57485 If I've bothered to try and implement the failing test, show the actual and expected events.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-11 23:56:20 +01:00
Adrian Conlon 77a2c08c20 Remove some build warnings.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-11 23:23:59 +01:00
Adrian Conlon 91221aa975 Try simdjson: bloody hell, that's fast!!
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-11 22:09:03 +01:00
Adrian Conlon b5074ac48c Create an overtly performance checking build.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-11 19:52:22 +01:00
Adrian Conlon 59d1e2789e Whoops: missed reference to RapidJson
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-11 19:39:37 +01:00
Adrian Conlon 7a7b0046cd Add an implementation that uses JsonCpp (pretty slow!)
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-11 19:13:05 +01:00
Adrian Conlon f3f6452119 Add nlohmann json parser as an option to build.
1/2 speed, compared to boost.json

Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-11 14:59:23 +01:00
Adrian Conlon db106b1719 Performance: speed up message handling in TestRunner.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2021-10-11 11:41:50 +01:00