~kingcons/clones

a2f7d84a — Brit Butler 4 years ago master
Merge pull request #1 from kingcons/ground-floor

Ground floor
Update DESIGN and README a bit...
Add argument printing to the disassembler.
Remove unnecessary addressing mode tests.
Break Nestest function out in cpu tests.
Stop running nestest once it reaches illegal opcodes. :sunglasses:
Elide result in ftype declaration for MAYBE-UPDATE-CYCLE-COUNT.
Finish cycle counting for read instructions in ABSOLUTE-{X,Y}, INDIRECT-Y.
Change the new :write instructions (STA, STX, STY) to just use STORE.
Refactor %DEFINE-OPCODE to more accurately reflect access patterns.

Also update the instruction metadata / *INSTRUCTIONS*.
Move PAGE-CROSSED-P to util and add MAYBE-UPDATE-CYCLE-COUNT.
Temporarily strip out PAGE-CROSSED-P checks in preparation for new scheme.
Amazingly, I missed a whole opcode for inc 0xfe.
Add TODO note for later refactoring.
Fix wrong cycle count on a DEC variant.
Add correct cycle counting to ABSOLUTE-X and ABSOLUTE-Y.
Fix the "start" location for INDIRECT-Y addressing.
A closer attempt at Indirect Indexed addressing.
Forgot to remove an extra FETCH from INC and DEC after the refactor.
Embed the "register-shift-op hack" directly in %DEFINE-OPCODE.

This is the Nuclear option. I really don't like it. But it works
and we'll leave it for now as it fairly honestly documents just
how fucked (err ... special) ASL, LSR, ROL, and ROR really are.
Next