diff --git a/notes/issues/todo.md b/notes/issues/todo.md index e2a0647..3b4079f 100644 --- a/notes/issues/todo.md +++ b/notes/issues/todo.md @@ -1,81 +1,44 @@ -# To do +# To do — Summary -## Next +This is a quick todo list. -- [ ] **Implement "At start up, `JMP ($FF)`** +For extended commentary, see [issues](issues.md). -## Research +## Open -- [ ] Review CHIP-8 +### Todo + +- Add a flag for bank-switching to the ~zero-page +- (assembler) Pass asm line thru to cpu to print when debugging +- Remove run-scripts and add the ability to run `./cpu.js` and `./assembler.js` directly -- cf. [#1](issues.md#1---improve-cli-interface) +- [fix] (cpu) Make single-stepping work with simulated keypad + +### Features + +- [fix] Implement ROM — see [2023-08-24](../2023-08-24--dev-notes.md#cpu-start-up) +- (assembler) Return pure machine code when printing to stdout (and not in debug mode) +- (assembler) Validate labels +- (assembler) Extract debugging to its own module +- (cpu) Consider adding a VIP-style keypad-based machine code monitor +- (cpu) Add a mode that prints the display as text, but still animates +- (cpu) Allow running pre-compiled machine code +- (cpu) DRY out addition and subtraction +- [Extended system (secret bonus operations)](2023-08-07--dev-notes.md) +- (research) Review CHIP-8 - read about the spec / ISA - read these, and add them to the bibliography: - Steve Losh: https://stevelosh.com/blog/2016/12/chip8-input/ - https://tonisagrista.com/blog/2021/chip8-spec/ -## Documentation +### Documentation -- [ ] Improve docs for flags register +- Improve docs for flags register -## Design +### Testing -- [ ] Add a flag for bank-switching to the ~zero-page -- [ ] Consider adding a VIP-style keypad-based machine code monitor -- [ ] reconsider ISA order in light of supercat comment here - - [Why didn't the 6503 have increment/decrement opcodes for A?](https://retrocomputing.stackexchange.com/questions/13023/why-didnt-the-6502-have-increment-decrement-opcodes-for-a) - -### Assembler - -### For consideration - -- [ ] Subroutine stack -- [ ] [Extended system (secret bonus operations)](2023-08-07--dev-notes.md) - -## Programming - -- [ ] Write some more complex test programs - - [ ] Display (hex) numbers - - [ ] Greater than - - [ ] Minimal LOGO-ish interpreter for turtle graphics - -## Run-scripts - -- [ ] Replace with running `./cpu.js` and `./assembler.js` diretly - -## Simulator - -### Assembler - -- [ ] Return pure machine code when printing to stdout (and not in debug mode) -- [ ] Pass asm line thru to cpu to print when debugging - - [x] asm: create a second array that stores every line with code (nor blank or comment only lines) + its line number - - [ ] asm: pass that array as a return value - - [ ] cpu: accept an optional debugging array, print line # and statement -- [ ] Validate labels - -### CPU - -- [ ] Add a mode that prints the display as text, but still animates - -- [ ] Make single-stepping work with simulated keypad - -- [ ] Allow running pre-compiled machine code - - I'm thinking of an interface like this... - - $ ./cpu.js -mc code.bin - $ ./cpu.js code.asm - $ ./cpu.js --debug code.asm - - Full list of flags I want: - - -d --debug - -s --singlestep - -p --prettydisplay - -mc --machinecode +- Display (hex) numbers +- Greater than +- Minimal LOGO-ish interpreter for turtle graphics -### Possible under-the-hood improvements - -- [ ] Do a proper binary version... (or lose the typed arrays?) -- [ ] Extract debugging to its own module -- [ ] DRY out addition and subtraction \ No newline at end of file +## Closed \ No newline at end of file