Commit Graph

924 Commits

Author SHA1 Message Date
Adrian Conlon
dcb809d8f9 Add finer control of memory and IO events in the Z80 implementation. Allows small tidy of the halt condition.
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2020-03-23 21:56:23 +00:00
Adrian Conlon
99f0712801 Simplify Z80 instruction timing a little.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2020-02-23 09:37:03 +00:00
Adrian Conlon
0b6a656a45 Add cycle count to the z80 fuse test runner.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2020-02-22 09:03:17 +00:00
Adrian Conlon
6285a397ab Tidy 6502 whitespace
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2020-02-22 09:02:37 +00:00
Adrian Conlon
e6b26e631c Fix more Z80 instruction timings.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2020-02-22 08:32:29 +00:00
Adrian Conlon
255708e0bc Add some more Z80 documentation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2020-02-22 08:30:52 +00:00
Adrian Conlon
b89d2cf15c Start correcting Z80 T-cycle counts (DJNZ, JR cc, ADD HL,rp, INC/DEC rp, INC/DEC (HL))
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2020-02-16 09:18:34 +00:00
Adrian Conlon
a37601df67 Correct recently introduced IO implementation issues in the 8080 core.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2020-02-13 09:17:52 +00:00
Adrian Conlon
c8bdabf34f Reflect that the I/O for Intel style processors isn't part of the CPU, but attached to the Bus and access controlled by the CPU.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2020-02-09 11:51:58 +00:00
Adrian Conlon
dc37d61797 Tidy up some shared code for the Z80 pushWord vs call timing.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-12-29 13:03:44 +00:00
Adrian Conlon
d9466082ec M-Cycle accurate Z80 modifications.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-12-29 01:18:54 +00:00
Adrian Conlon
feee7ec2e6 Add some more Z80 documentation
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-12-29 01:13:52 +00:00
Adrian Conlon
f9cc29f72e Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2019-11-19 23:06:19 +00:00
Adrian Conlon
98d9199f19 Whoops: missed power on state of the "RFRSH" pin.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-19 23:06:08 +00:00
Adrian Conlon
cb502bd65d Halt is of course an "output" pin. (So that the halt instruction can work)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-19 23:05:27 +00:00
Adrian Conlon
3a49a9cc59 Use simpler LR35902 CPU/render sequence.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-18 00:54:52 +00:00
Adrian Conlon
43cf7e523b Merge branch 'master' of https://github.com/MoleskiCoder/EightBit
# Conflicts:
#	Z80/src/Z80.cpp
2019-11-16 23:41:04 +00:00
Adrian Conlon
195b0e19bd Correct INT handling on Z80
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-16 23:38:51 +00:00
Adrian Conlon
d45c1d7d76 Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2019-11-16 23:38:05 +00:00
Adrian Conlon
acf6cf6c71 Sync with .Net version
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-16 23:37:57 +00:00
Adrian Conlon
e670482721 Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2019-11-12 22:40:33 +00:00
Adrian Conlon
9bc8d85795 Tidy the Z80 RES implementation a little.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-12 22:40:21 +00:00
Adrian Conlon
2d7f87018c Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2019-11-10 11:15:42 +00:00
Adrian Conlon
d9f71a5d05 Add some more gameboy documentation
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-10 11:15:30 +00:00
Adrian Conlon
5e347b9414 Sync C++ Z80 implementation with C#
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-10 11:15:07 +00:00
Adrian Conlon
a69770addd Tidy 6809 unit test project
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-10 11:14:00 +00:00
Adrian Conlon
1db68a72a7 Update to latest Catch2 testing framework.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-10 11:13:23 +00:00
Adrian Conlon
dc91df1177 Some mild reformatting of the Gaming class.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-09 23:01:58 +00:00
Adrian Conlon
d0467421ff Improve compatibility with .net emulator code.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-09 18:58:23 +00:00
Adrian Conlon
20ebbd4048 Start added more .net compatibility methods
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-03 09:23:28 +00:00
Adrian Conlon
6d90ea6237 Add MREQ (to go along with IORQ) to the Z80 implementation.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-02 17:38:20 +00:00
Adrian Conlon
687df0023a Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2019-11-02 17:30:16 +00:00
Adrian Conlon
238ee30b3c Correct a couple of small Z80 power on issues.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-02 17:30:03 +00:00
Adrian Conlon
b95614c65d Correct a couple of small issues in the Z80 disassembler.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-11-02 17:29:21 +00:00
Adrian Conlon
62d71e44bf Upgrade to latest version of boost (1.71.0)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-10-13 00:13:35 +01:00
Adrian Conlon
717b0c70ad Merge branch 'master' of https://github.com/MoleskiCoder/EightBit 2019-10-12 23:15:57 +01:00
Adrian Conlon
be79b5661f Update to latest SDL2 (2.10.0)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-10-12 23:15:47 +01:00
Adrian Conlon
411fc5fe6a Update to latest version of boost (1.71.0) 2019-10-12 23:15:28 +01:00
Adrian Conlon
b14663a264 Update to SDL2 2.0.10
Signed-off-by: Adrian Conlon <adrian.conlon@gmail.com>
2019-10-11 18:39:53 +01:00
Adrian Conlon
89fae1cb6f Tidy the Gaming library a little:
*) Add an SDLWrapper class to control the lifetime of SDL_Init/SDL_Quit
*) Pass FPS as a float, rather than int
*) Allow the key and button handlers to show whether an event was handled or not
*) Add a full screen render option (F12)
*) Use smart pointers in the GameController class

Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-10-01 23:54:48 +01:00
Adrian Conlon
1577455a67 Add support for joystick controller pads (especially DPad)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-29 19:12:09 +01:00
Adrian Conlon
d8e4853971 Reorder the vertical blank raster lines a little to make it easier to use...
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-29 11:36:17 +01:00
Adrian Conlon
74ab3d0f01 Split CPU raster display time from vertical blank time.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-29 01:46:56 +01:00
Adrian Conlon
7a6e0eafcd Modifications to allow gaming class to be used with Space Invaders emulator
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-29 00:27:45 +01:00
Adrian Conlon
4afe6b6378 For convenience, add a very lightweight SDL wrapper to the EightBit library.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-28 14:29:44 +01:00
Adrian Conlon
ee3ecc682d Add R/W pins to the MC6809 and MOS6502 processors. Hoping it'll ease peripheral development.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-15 12:49:32 +01:00
Adrian Conlon
1ba238bfc7 Add support for RD and WR lines to the Z80 emulator.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-15 01:35:57 +01:00
Adrian Conlon
6d6c95f695 Fix up INT and NMI pin (M1 and IORQ) response a little (still working on ZX81 emulator!)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-14 23:38:47 +01:00
Adrian Conlon
4be4a0603e Refactor the Z80 implementation to:
a) Simplify M1 handling
b) Reuse subtract/add implementations
c) Simplify conditional code blocks.

Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-14 15:04:46 +01:00
Adrian Conlon
74f70af758 Correct more Z80 disassembler problems (the ZX81 seems to use every instruction available!)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-09-08 21:27:35 +01:00