Commit Graph

150 Commits

Author SHA1 Message Date
Adrian Conlon
dc477cd050 Use explicit enumeration types (improves type safety) where appropriate.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-12-01 15:24:29 +00:00
Adrian Conlon
deb9a6d43c Correct more analysis problems. No functional changes.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-28 21:27:14 +00:00
Adrian Conlon
a940a29283 Unify build settings across all the EightBit libraries.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-28 21:24:51 +00:00
Adrian Conlon
9dcaaadf80 Simplify a couple of the MC6809 test projects.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-25 19:05:14 +00:00
Adrian Conlon
e156b1ff1a Correct some more compilation warnings (across the whole EightBit project).
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-25 19:02:11 +00:00
Adrian Conlon
64ed8e01ec Add some more MC6809 documentation (and Searle BASIC derivative).
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-25 10:45:06 +00:00
Adrian Conlon
cec760767a Fix some problems in the MC6809 instruction decoder.
Found by going through the switch line by line...
BASIC interpreter now seems to run!

Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-20 08:51:17 +00:00
Adrian Conlon
859804d179 Refactor MC6809 core to use lambdas in preference to std::bind methods.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-18 22:15:49 +00:00
Adrian Conlon
fdbb28828f Apply the concept of powered components to the "board"
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-11 16:48:44 +00:00
Adrian Conlon
f29c571226 Add tests for BHI BLE on the 6809
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-10 20:48:43 +00:00
Adrian Conlon
b926f4b7f1 Simplify 6809 conditionals a little.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-10 20:31:14 +00:00
Adrian Conlon
b82ca402bf Add 6809 BGT tests.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-10 20:30:38 +00:00
Adrian Conlon
8b12ed23e8 Add (currently disabled) disassembler to the 6809 unit test runner.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-10 20:29:27 +00:00
Adrian Conlon
e688411cb9 Refactor memory related code a little to make the hierarchy of classes a little easier to understand.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-04 16:38:57 +00:00
Adrian Conlon
8ef5d97366 Update boost from 1.65 -> 1.68
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-04 12:58:01 +00:00
Adrian Conlon
9132f2028f Add an "UnusedMemory" class to better allow "gaps" in the memory map.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-03 23:11:48 +00:00
Adrian Conlon
68a785ceec Add an address masking to the memory mapping structure.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-01 23:43:29 +00:00
Adrian Conlon
7af81018c9 Modify rotate and shift instructions to be a little more understandable (6502/6809)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-11-01 19:47:21 +00:00
Adrian Conlon
4dc0becb74 Refactor the 6502 implementation to be a lot more like the MC6809. Hopefully show bugs in the latter a little more easily.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-31 23:29:13 +00:00
Adrian Conlon
edbc2784d9 Sort out why cycle counting wasn't working as I thought it should on the MC6809
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-28 13:34:34 +00:00
Adrian Conlon
99692ce6c7 Refactor MC6850 for C++14/17 updates
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-27 21:58:23 +01:00
Adrian Conlon
1a317c7907 C++14/17 refactoring for MC6809
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-27 21:55:54 +01:00
Adrian Conlon
8dbb3eafec Switch to C++17 standard in all EightBit projects.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-27 14:28:14 +01:00
Adrian Conlon
b50d21965d Addr support for the RTS/CTS and IRQ pins to the MC6850 chip emulation
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-23 00:01:33 +01:00
Adrian Conlon
4bfb264380 Simplify chip pin level matching a little.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-21 19:42:20 +01:00
Adrian Conlon
4840c238d6 Set configuration default to *not* exit early.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-21 18:07:42 +01:00
Adrian Conlon
806251bf6f Whoops: Remove extra blank line.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-21 18:07:08 +01:00
Adrian Conlon
54e0dcfe36 Move board termination and cycle count etc. into the configuration class.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-21 10:28:33 +01:00
Adrian Conlon
4d09da1541 Reuse standard 6809/6850 chip/bus wiring
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-20 22:54:10 +01:00
Adrian Conlon
1b2ddd8843 Don't expose the bus via the CPU any more: if a component needs the bus, it should be prepared to hold a reference to it.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-20 20:52:41 +01:00
Adrian Conlon
9b0cc4542f Tidy MC6809 test board/device access.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-20 16:57:32 +01:00
Adrian Conlon
dbc3e192d7 More sharing of common implementation on the MC6809.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-18 22:50:54 +01:00
Adrian Conlon
83497b0b9e Share some implementation details on the MC6809, where possible. Somewhat closer to how I imagine the hardware is implemented...
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-18 22:25:52 +01:00
Adrian Conlon
966a07b018 Reuse pul/psh definition to simplify entire register set save/restore code.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-17 20:42:03 +01:00
Adrian Conlon
4b2f8e3599 Correct "LE" definition to at least match the MC6809 documentation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-17 20:39:58 +01:00
Adrian Conlon
8c8438f819 Tidy the test code formatting a little
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-14 23:39:37 +01:00
Adrian Conlon
4e48f4a5a0 Slightly simplify half-carry evaluation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-14 23:18:13 +01:00
Adrian Conlon
140e87485c Whoops: Correct dodgy CMP test. That explains why I never understood why it was failing!
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-14 21:26:33 +01:00
Adrian Conlon
9d71c78338 DEC/INC don't adjust carry flags
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-14 21:19:37 +01:00
Adrian Conlon
0c07d39250 Share (hopefully!) correct overflow implementations
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-14 21:19:03 +01:00
Adrian Conlon
707a742899 Not complete, but this gets large chunks of the MC6809 addition and subtraction parts of the emulator working correctly
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-14 20:40:20 +01:00
Adrian Conlon
769c65394b The extra _getch isn't required as I fix the MC6809 CPU emulation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-14 20:38:07 +01:00
Adrian Conlon
12dc90c064 Add lots of tests, mainly covering addition and subtraction. Shows quite a few problems...
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-14 10:06:47 +01:00
Adrian Conlon
9445e7d1c4 Add test for CLRA implied
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-07 11:04:22 +01:00
Adrian Conlon
9296eaf954 Add test for BITA immediate.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-07 10:55:30 +01:00
Adrian Conlon
cf32f37fc3 Add test for ASRA inherent. And fix resulting bugs exposed!
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-07 10:48:27 +01:00
Adrian Conlon
f2b9ab0814 Add test for ASLA inherent.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-07 10:32:26 +01:00
Adrian Conlon
7719c8e875 Add test for ANDA immediate
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-07 10:08:12 +01:00
Adrian Conlon
1f4a84b803 Add test for ADDA immediate. Seems to be working.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-07 09:47:10 +01:00
Adrian Conlon
5dc185866e Add a test for ADCA immediate. Half carry and overflow flags incorrect!
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2018-10-07 09:14:30 +01:00