Commit graph

7 commits

Author SHA1 Message Date
steve
aead7e032d o registers
- 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
2020-01-05 18:58:25 +00:00
steve
50b23da4ec o registers
- moved registers from cpu pacakge into separate package
2020-01-05 18:58:25 +00:00
steve
72864b5cfd o cpu
- 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%
2020-01-05 18:58:25 +00:00
steve
dd4786c0f3 o debugger
- 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
2020-01-05 18:58:25 +00:00
steve
9ad4aad566 o memory
- 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
2020-01-05 18:58:25 +00:00
steve
8a031dec2f o cpu now yields after every cycle not every instruction
- 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
2020-01-05 18:58:25 +00:00
steve
4c530bf7a7 o initial commit
- 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
2020-01-05 18:58:12 +00:00