transistor
b4a35641e4
Refactored to separate out the BusPort, to eventually replace it
2024-03-03 22:57:27 -08:00
transistor
54ebcce94c
Fixed m68k tests after refactor
2024-03-03 13:26:15 -08:00
transistor
cff6a48cc7
Refactoring m68k to use a temporary cycle struct
...
I'm trying to extract the memory/bus interface, and pass it in at
the start of each cycle instead of having the BusPort permanently
embedded, which will allow migrating to emulator-hal.
The functional way would be argument drilling; passing an extra argument
to each function in the entire execution core. The problem is that it's
messy, so a solution that is still functional is to implement all of the
execution logic on a newtype that contains a reference to the mutable
state and the owned cycle data, and at the end of the cycle, decompose
the M68kCycleGuard that holds the reference, and keep the cycle data for
debugging purposes.
2024-03-02 23:48:19 -08:00
transistor
83289d6b8e
Modified Z80 to use a custom error type
2024-03-02 10:57:16 -08:00
transistor
e13c172364
Added custom error type
2024-03-01 23:08:28 -08:00
transistor
55efc4f406
Split some parts of moa-core into libraries/
2024-03-01 21:17:09 -08:00
transistor
5653cf47a1
Removed missing workspace member
2024-02-24 19:37:45 -08:00
transistor
d322805627
Updated wasm-bindgen
2024-02-24 19:29:22 -08:00
transistor
a161dcda8a
Renamed modules to use kebab case
2024-02-24 19:26:28 -08:00
transistor
671517aab7
Modified to use crates.io version of femtos
2024-02-24 19:16:46 -08:00
transistor
2a0918d8bd
Moved femtos to its own repository
2024-02-24 15:03:31 -08:00
transistor
9ff431ebc6
Split clocks into femtos
crate
2024-02-24 13:02:09 -08:00
transistor
3965a95c8c
Updated links to point to past commits
2024-02-19 11:20:18 -08:00
transistor
6a6ab426a6
Added option to moa-computie to select a rom file to boot
2023-11-27 19:19:40 -08:00
transistor
ba1d9f0bc1
Updated
2023-08-06 21:31:14 -07:00
transistor
2552645a60
Modified genesis coprocessor banking to use a Cell instead of Signal
2023-06-10 23:28:40 -07:00
transistor
2d3463867d
Added AddressTranslator
2023-06-10 23:19:10 -07:00
transistor
f9d613b3b9
Fixed some Z80 instruction timings
2023-06-10 21:55:25 -07:00
transistor
cbcfb26f49
Updated todo list
2023-06-10 20:32:34 -07:00
transistor
be91118bac
Added function to create the CPU BusPorts based on the CPU type
2023-06-10 20:28:40 -07:00
transistor
83307d5b33
Changed Error type into an enum
2023-06-10 19:29:54 -07:00
transistor
e3861f33b5
Fixed tests and clippy warnings
2023-06-10 17:39:20 -07:00
transistor
3bd4c24ea8
Modified debugger so the input is in the frontend
...
The debug loop that reads a command and does something is part of the
frontend's main loop, so that it can potentially update, even though
it doesn't actually work for minifb because the command input is a
blocking call. It's also not implemented in the pixels frontend.
At some point I'll make a web frontend.
2023-06-10 15:28:21 -07:00
transistor
18d1912f9a
Added debuggables list to system
2023-06-07 21:08:28 -07:00
transistor
fdca8970f2
Added new Device type to replace TransmutableBox
...
It's mostly just sugar, but it now includes a unique ID
2023-06-07 20:44:14 -07:00
transistor
3db52cbef6
Changed the Addressable trait's len() to size()
...
This is to avoid the need for the clippy override
2023-06-07 19:56:00 -07:00
transistor
4d6e3af567
Updated harte tests
2023-06-04 22:47:06 -07:00
transistor
708e7706f3
Fixed many of the undocumented tests
...
Now it's up to 99% tests passing, 15362 are still failing, but many
of those are the unimplemented IN/OUT instructions, which the Genesis
doesn't seem to use
2023-05-22 21:12:05 -07:00
transistor
8c1a89a1fe
Refactored memory access a bit to try to isolate it
2023-05-21 23:14:26 -07:00
transistor
d87319b605
Refactored shift intsructions to not use direction
2023-05-20 15:01:10 -07:00
transistor
64b18662d5
Added Z80 timings, and enabled check in rad tests
2023-05-15 21:13:52 -07:00
transistor
f205e231b6
Fixed tests failing due to wrapping into past the end of memory
2023-05-14 21:12:38 -07:00
transistor
aaa7952dd0
Split the Z80 instructions into individual functions like the m68k
2023-05-14 15:49:38 -07:00
transistor
7e62a2691c
Started implementing INI instruction for Z80
2023-05-14 10:29:41 -07:00
transistor
6390a207a6
Attempted to implement DAA but still have a lot of failures
2023-05-13 21:35:50 -07:00
transistor
5ec2fe4157
Implemented RLD and RRD instructions for Z80
2023-05-13 21:06:00 -07:00
transistor
f3d1fd0ae2
Added IM, IFF1, and IFF2 checking to Z80 tests, and fixed issues with Z80 impl
2023-05-13 19:41:20 -07:00
transistor
e61e0cfe8f
Fixed flags for BIT instruction in Z80
2023-05-13 17:36:32 -07:00
transistor
f0cbf5f2ca
Fixed some IY instructions, and a few minor fixes
2023-05-13 16:17:14 -07:00
transistor
e959b8df1c
Fixed version issue with Pixels frontend and updated to 0.12
2023-05-13 15:14:11 -07:00
transistor
57f9f93cc9
Fixed the basic IN/OUT instructions on Z80, and basic RETI/RETN
2023-05-13 14:47:27 -07:00
transistor
c97b3b8aca
Fixed half carry in Z80
2023-05-13 11:55:13 -07:00
transistor
cf4e31454b
Fixed some Z80 tests related to the overflow flag
2023-05-13 10:36:50 -07:00
transistor
d8638c6f82
Added a way to only run documented Z80 instruction tests
2023-05-13 10:14:47 -07:00
transistor
b2b9d73375
Added mode to ignore undocument flags in Z80 tests
2023-05-12 19:05:43 -07:00
transistor
6be36fe816
Added Cargo.lock to fix github actions
2023-05-09 23:10:05 -07:00
transistor
9694036e33
Fixed Z80 to pass the rad tests
2023-05-09 22:58:56 -07:00
transistor
f8083db181
Added raddad772/jsmoo's Z80 test runner
...
Special thanks to raddad772 https://github.com/raddad772
Also added some fixes to the Z80 for panicking math operations, but
it still won't complete due to an unimplemented instruction
2023-05-09 21:50:42 -07:00
transistor
5e228c377e
Fixed tests after ClockTime and Frequency changes
...
And also removed HostData
2023-05-07 20:42:55 -07:00
transistor
6389fa0482
Connected the web ui controller inputs to sim
2023-05-07 14:57:45 -07:00