- reorganised register implementation
- existing implementation now call rbits
- added an implementation called r16bits, using uint16 intead of a
bit array
- only implemented Load(), Add() and the To*() methods
- just enough to speed up programme counter operations
- now sends a reference to InstructionResult over the result channel,
rather than a copy
o cpu
- adjusted register declarations to match changes in registers
implementation
o mflib
- consolidated assert() function into one package
o debugger
- sketched in debugger
- we now start one goroutine at cpu intialisaton and not one for each
instruction
- caching of all 8 bit and 16 bit patterns so we don't have to
generate them every time
- improved FPS between 70% to 100%
- added basic input loop
- primitive but effective FPS test
- added cpu profiler generator
o vcs
- cartridge attachment working properly
- now read reset address when machine is reset
o cpu
- fixed branching
- backward jumps weren't working
- cycle count sometimes wrong
- fixed cycle counts for pre-index and post-index addressing
o
- refinements
- added white-box testing
o cpu
- moved cpu definitions into its own package
- no longer requires csv file at run time
- csv parser moved into a code generator, embedding the data into
the code
- needs refinement
- StepCycle to be be used if cycle level of granularity is required
- StepInstruction provided if coarser control is preferred
- definitions.csv corrected
- behaviour of status register ToUint8() corrected
o memory
- MockMem now inherits from main memory implementation and adds
functionality where required
- 6502 implementation is basically correct but does not handle
- interrupts
- pre-fetch cycle
- anything less fine grained than instruction stepping
- memory sub-system sketched in
o retroactive adding of GPL copyright notice