Commit Graph

72 Commits

Author SHA1 Message Date
Seth Morabito 00c0cb77b1 Clean up clippy suggestions 2023-09-02 10:20:21 -07:00
Seth Morabito d19f3d4fdb Remove dependency on ringbuffer
This change sees the introduction of a tiny FIFO buffer implementation
in util.rs, in lieu of a dependency on the ringbuffer library. The
reason for this change is largely because the ringbuffer library was
unnecessarily complicated and generic, and could only work with sizes
that were a power of 2.
2022-11-20 10:26:24 -08:00
Seth Morabito 73ea34e619 Use 8 bits per char 2022-09-13 20:01:04 -07:00
Seth Morabito 31f1008458 Dirty bit detection for Video RAM
The DMD library now keeps track of when writes to video RAM occur, and
sets a dirty bit. This dirty bit is reset when the video RAM is
requested by the library user, and can be used to avoid repainting when
video ram has not changed.
2022-09-13 11:40:38 -07:00
Seth Morabito 03d0d36061 Update README and Cargo.toml for 0.7.1 2022-09-11 16:56:16 -07:00
Seth Morabito a7e13a75a0 Fix TX enable
TX Enable should only set the TxRDY bit if there is no character
currently in the TX holding register. Likewise, the TxEMT bit should
only be set if there is no character in the shift register.
2022-09-11 16:53:53 -07:00
Seth Morabito 8ba2b44919 Return Duration for delay calculation
Additionally, we were waiting 2x as long as necessary because
each trip through the TX state machine was waiting two full
character delays.
2022-09-10 20:07:27 -07:00
Seth Morabito 0e8f46ca1a Remove broken BRG update 2022-09-10 20:00:29 -07:00
Seth Morabito 24acb4415d Update README for v0.7.0 2022-09-10 11:50:38 -07:00
Seth Morabito 26abbce067 Incorporate 8;7;3 Firmware
This change adds version 8;7;3 along side version 8;7;5 firmware, so
that the simulated DMD 5620 can run either Version 1.1 or Version 2 DMD
software.  keeping 8;7;5 firmware.
2022-09-10 11:46:48 -07:00
Seth Morabito 11703e05fd Merge branch 'dev.branch' 2022-09-06 14:42:03 -07:00
Seth Morabito d08a5930c5
Merge pull request #1 from mikehaertel/tx-enable-bugfix
duart: don't lose tx_data when toggling CNF_ETX
2022-09-06 14:41:03 -07:00
Mike Haertel 93350a8ee4 duart: don't lose tx_data when toggling CNF_ETX 2022-09-06 13:57:35 -05:00
Seth Morabito 1dc4527536 Update README 2022-09-03 16:48:45 -07:00
Seth Morabito 0a8fc818f1 Merge branch 'dev.branch' 2022-09-03 16:45:04 -07:00
Seth Morabito ac0f7c809c Revert "Clean up clippy warnings in tests"
This reverts commit c245de7224.
2022-09-03 16:44:47 -07:00
Seth Morabito 829a72ebbc Better DUART delay calculation 2022-09-03 16:41:59 -07:00
Seth Morabito c3677ab006 Multiple bug fixes and enhancements
- Fixed incorrect addresses in instruction Display impl
- Tracing now includes raw byte stream of each instruction
- Bus alignment errors now include offending address
- Effective address is now stored off onto operands
- MOVTRW support (non-MMU) added
2022-08-31 11:12:16 -07:00
Seth Morabito dc4facf240 More verbose trace 2022-08-25 16:35:22 -07:00
Seth Morabito 9f945b0b4f Expose dmd_trace_off() function 2022-08-25 16:11:27 -07:00
Seth Morabito c245de7224 Clean up clippy warnings in tests
This commit cleans up a few clippy warnings in the CPU unit tests.
2022-02-27 12:52:37 -08:00
Seth Morabito db72fc155b
Updated README.md 2021-09-01 18:37:57 -07:00
Seth Morabito 4706ec625f More complete execution trace support
This change adds more complete and more accurate execution
tracing support.
2021-04-23 13:43:50 -07:00
Seth Morabito e8f8584e64 Introduce janky trace log debugging
New functions trace_on and trace_off
2021-04-23 05:50:15 -07:00
Seth Morabito c9161324b5 Revert "Provide dirty flag on devices"
This reverts commit 4131b2262c.
2021-04-21 12:40:29 -07:00
Seth Morabito 4131b2262c Provide dirty flag on devices 2021-04-21 12:32:21 -07:00
Seth Morabito bdd3f2c992 Bring up to date with Rust 1.51.0 2021-04-05 08:33:49 -07:00
Seth Morabito f67bb140c8 Bring up to date with Rust 1.39 2019-12-02 18:42:36 -08:00
Seth Morabito 533640efa7 Fix video ram start address and DUART bugs 2018-12-30 16:49:33 -08:00
Seth Morabito a66a466088 Fix DUART timing, Update to release 0.6.2 2018-12-29 17:45:07 -08:00
Seth Morabito dc944c2e49 Update README 2018-12-29 11:19:48 -08:00
Seth Morabito 55bdc9fa7e Remove unused field 'operand_count' (fixes test) 2018-12-29 11:18:19 -08:00
Seth Morabito 78472a9ec6 Refactor of Mnemonic lookup, DUART bug fix 2018-12-29 11:09:13 -08:00
Seth Morabito 91c8817585 Don't recalculate vblank time on every step. 2018-12-27 09:34:20 -08:00
Seth Morabito 2da0a49574 Fixed: Cleanups suggested by Clippy 2018-12-26 19:51:48 -08:00
Seth Morabito bc7d1cf529 Revert "Cleanups suggested by Clippy"
It appears that the Clippy cleanup change introduced a fairly nasty
bug, which I currently don't understand.  I'm going to revert this
change and handle Clippy suggestions on a case-by-case basis.

This reverts commit 848d9c18c5.
2018-12-26 17:23:20 -08:00
Seth Morabito 848d9c18c5 Cleanups suggested by Clippy 2018-12-26 12:24:17 -08:00
Seth Morabito 20b07f0079 Create a C interface 2018-12-21 17:00:43 -08:00
Seth Morabito 17b81b71da Support keyboard transmit (bell) requests
Bumping version to 0.4.0, because this is a breaking change.
2018-12-19 21:50:03 -08:00
Seth Morabito 5fd15da4ae Fix several stupid bugs 2018-12-19 09:42:41 -08:00
Seth Morabito 9a3ca2e84f External memory fault handling 2018-12-19 09:01:25 -07:00
Seth Morabito 048cfae67b Provide rx queues for convenience
NOTE: This is a breaking change.

Previously, callers of rx_char and rx_keyboard would have to check
output to see if the UART was actually ready to receive a character.
This change adds a receive queue to the DUART implementation that will
accept characters regardless of whether the DUART is ready to receive
or not. The service routine will then read fromn the queue if and only
if the DUART is ready to transmit.
2018-12-17 17:17:59 -07:00
Seth Morabito 7bf878bf9e Test for NVRAM read/store 2018-12-17 15:34:18 -07:00
Seth Morabito 855f750538 Enable NVRAM to be read/stored 2018-12-17 15:27:34 -07:00
Seth Morabito 05816b838d Bump master to 0.3.0 2018-12-17 14:06:23 -07:00
Seth Morabito 1f31d4e38a Added .travis.yml 2018-12-09 18:48:34 -08:00
Seth Morabito 949f5f79b4 Added Travis-CI badge 2018-12-09 18:45:58 -08:00
Seth Morabito 889fd1fe45 Fixed typo in badges 2018-12-09 18:41:06 -08:00
Seth Morabito 680df17903 Bump to 0.2.0 2018-12-09 18:38:47 -08:00
Seth Morabito 4816d3cdc0 Updated TX and RX polling 2018-12-09 17:57:42 -08:00