Commit Graph

17 Commits

Author SHA1 Message Date
transistor 661a4302ef Added workspace exclusion for emulator-hal 2024-03-16 18:48:33 -07:00
transistor 545f339fe2 Separated moa-core dependency into an optional feature flag 2024-03-13 21:49:04 -07: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 5653cf47a1 Removed missing workspace member 2024-02-24 19:37:45 -08:00
transistor 671517aab7 Modified to use crates.io version of femtos 2024-02-24 19:16:46 -08: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 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 5740550c95 Non-working implementation of the ym2612 envelope
It does something, but doesn't work as it should.  It could be a few
things including the on/off signal being too slow due to how time
works in the sample generation, but I wanted to at least commit what
I have.  It seems to work roughly right according to the forum post
that describes the chip's operation in detail, but there could still
be some glaring bugs
2023-04-23 10:38:33 -07:00
transistor 82644db3fc Added dummy audio device to disable audio while still simulating the devices 2022-09-29 19:55:12 -07:00
transistor 083f3607ba Major reorganization into crates
I wanted to make this a bit more modular, so it's easier in theory to
write external crates that can reuse bits, and selectively compile in
bits, such as adding new systems or new cpu implementations
2022-09-24 23:14:03 -07:00
transistor c57c8f87b4 Added test running for Tom Harte's ProcessorTests test suite 2022-09-09 23:17:33 -07:00
transistor 427c79b7b4 Moved tty to frontends/moa-common to remove the dependency on nix 2021-12-06 19:52:04 -08:00
transistor 109ae4db55 Added minifb frontend with very WIP genesis peripherals 2021-10-27 21:01:18 -07:00
transistor f9e018742b Refactored how UI interfacing will work 2021-10-21 21:55:27 -07:00
transistor bff90e8f9f Updated cargo with workspaces 2021-10-20 19:54:13 -07:00
transistor f7529bbb41 Added PTY terminal for I/O via the MC68681 module
Also fixed a bug where MOVEA needs to behave differently than MOVE,
such that the data is sign extended to a long and the condition flags
are not changed.  I also modifed how Addressable returns data because
I need to return owned data from MC68681, so that the stored data can
be updated (ie. the status flag must be modified after a read)
2021-10-01 12:25:23 -07:00
transistor 6a4f53ca2b Initial start with some structure for instruction decoding 2021-09-28 16:09:38 -07:00