Skip to content

Commit

Permalink
add debugger progress (input, parsing, wp, bp, etc.); fix many bugs; … (
Browse files Browse the repository at this point in the history
#16)

* add debugger progress (input, parsing, wp, bp, etc.); fix many bugs; add interrupt handlers

* fix test; change default on travis to stable

* add v0.1 milestone checklist
  • Loading branch information
MarkMcCaskey authored Jan 31, 2017
1 parent 0ab8f50 commit 15bcb93
Show file tree
Hide file tree
Showing 14 changed files with 1,564 additions and 1,141 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,6 @@
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here http://doc.crates.io/guide.html#cargotoml-vs-cargolock
Cargo.lock

# ignore generated code
src/debug/dbglanguage.rs
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ rust:
matrix:
allow_failures:
- rust: nightly
- rust: stable
- rust: beta
23 changes: 21 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ Making this live on twitch.tv/maoeurk


*Note*: This is under active development and is currently not in a
usable state. For an incomplete overview of work left to be done, see
`src/todo.org`.
usable state. See the bottom of this page for information about
progress toward the first milestone.

Feel free to submit issues and pull requests.

Expand All @@ -25,3 +25,22 @@ cargo install
```

and you should be up and running.

## Version 0.1 milestone
- [ ] cpu
- [x] opcodes
- [x] dispatch
- [ ] interrupts
- [x] special registers
- [ ] graphics
- [ ] background
- [ ] sprites
- [ ] window
- [x] controller input
- [ ] working sound
- [x] interactive debugger
- [x] user interface
- [x] breakpoints, watch points
- [x] Basic usability (history, error handling)
- [x] parsing of proper debug "language"
- [ ] run ROM-only game correctly
4 changes: 3 additions & 1 deletion src/cpu/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ macro_rules! setter_unsetter_and_getter {
$memory_location:expr) => {
macro_rules! $name_setter {
($name:ident, $location:expr) => {
fn $name(&mut self) {
//TODO: maybe add an option for setting them public?
pub fn $name(&mut self) {
let orig_val = self.mem[$memory_location];

self.mem[$memory_location] = orig_val | $location;
Expand Down Expand Up @@ -52,6 +53,7 @@ macro_rules! make_getter {
setter_unsetter_and_getter!(set_sound_on, unset_sound_on, get_sound_on, 0xFF26);
setter_unsetter_and_getter!(set_interrupt_bit, unset_interrupt_bit, get_interrupt, 0xFF0F);
setter_unsetter_and_getter!(set_interrupt_enabled, unset_interrupt_enabled, get_interrupt_enabled, 0xFFFF);
setter_unsetter_and_getter!(set_stat, unset_stat, get_stat, 0xFF41);


//macro for dispatching on opcodes where the LSB of the "y" set of
Expand Down
Loading

0 comments on commit 15bcb93

Please sign in to comment.