1.8 KiB
1.8 KiB
To do
Research
- Learn how the C64's PC gets initialized (what is the initial value? how is it set?)
- Review CHIP-8
- read about the spec / ISA
- read these, and add them to the bibliography:
Documentation
- Improve docs for flags register
- Play with JSDoc
Design
- Add a flag for bank-switching to the ~zero-page
- Move the initial IP value, to eliminate the gap between it and the keypad pointer
- Consider adding a VIP-style keypad-based machine code monitor
For consideration
- Subroutine stack
- Extended system (secret bonus operations)
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.jsand./assembler.jsdiretly
Simulator
Assembler
- Validate labels
- Return pure machine code when printing to stdout (and not in debug mode)
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.asmFull list of flags I want:
-d --debug -s --singlestep -p --prettydisplay -mc --machinecode
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