Commit graph

31 commits

Author SHA1 Message Date
steve
35e31cccb7 o errors
- refined error package
2020-01-05 18:58:28 +00:00
steve
ec173372c9 o gopher2600
- "mode PLAY" is now a synonym for "mode RUN"

o chip memory
	- implemented PeriphBus interface
	- controller now uses PeriphBus interface
	- panel now uses PeriphBus interface

o hardware
	- consolidated controller and panel packages into peripheral
		package

o assert
	- added GetGoRoutineID function to help with debugging/testing
	- not for general use. it's too slow and in bad taste
2020-01-05 18:58:28 +00:00
steve
10a768c863 o video
- more timing tweaking - still not correct
2020-01-05 18:58:28 +00:00
steve
76b5d9503a o panel
- implemented panel

o controller
	- mapped back and start button on xbox controller to select and
		reset buttons on panel
2020-01-05 18:58:27 +00:00
steve
7142d2d989 o traps
- can't add more than one of the same trap type

o symbols
	- rearranged symbol definitions
2020-01-05 18:58:27 +00:00
steve
913727407a o symbols
- added universal symbols file
	- chip memory definitions no longer include symbol definitions.
		they use the new universal symbols file

o cpu
	- moved instruction_result from cpu package to result package

o disassembly
	- style parameters moved to new result package

o memory / debugger
	- improved PEEK command implementation
	- can now use symbolic addresses
2020-01-05 18:58:27 +00:00
steve
ff98bd9362 o memory
- removed chipWriteRegisters map. ChipWrite() now requires a
	uint16 value, given by the "chip write registers" enumerations.
	significant speed increase due to no longer having to access a
	map multiple times every video cycle
2020-01-05 18:58:27 +00:00
steve
0d1d4a0f97 o debugger
- added ONSTEP command. similar to ONHALT but run every step
	- implemented LAST command. debugger no longer runs the result
		of the last instruction unless it is part of the ONSTEP
		command sequence
	- fixed printing of HEX. step mode video no longer crashes if
		print style includes hex.

o video
	- sketched in collisions support

o cpu
	- BIT instruction fixed (zero flag is result of AND with
		accumulator but sign and overflow flags are set with
		reference to the value from memory)
2020-01-05 18:58:27 +00:00
steve
7792e4efb7 o controller
- added up/down for player 0

o video
	- fixed player sprite reflection
2020-01-05 18:58:27 +00:00
steve
ef47c46803 o cpu
- implemented decimal mode (for ADC and SBC)
	- overflow flag not affected (yet?)
	- fixed how binary mode SBC reacts to an operand of zero
2020-01-05 18:58:27 +00:00
steve
6957a52adc o controller
- added basic controller support
	- uses third-party package:
		- github.com/splace/joysticks
2020-01-05 18:58:27 +00:00
steve
1a59db31d1 o implemented disassembly
- symbol loading
	- printing of disassembly now uses symbols (if available)
	- run mode disasm now works as expected

o errors
	- added GopherError - started to replace calls to fmt.Errorf()
	with instantiations of GopherError

o debugger
	- prompt now shows (brief) disassembly of next instruction to be
	executed
2020-01-05 18:58:27 +00:00
steve
a16ca04b12 o video
- implemented trigger lists for missile/players
	- implemented player sprite
2020-01-05 18:58:27 +00:00
steve
c99f379f20 o memory
- improved/clarified comments
	- removed clear() functions - never needed
2020-01-05 18:58:27 +00:00
steve
b9e3dd9617 o debugger
- debugger can be launched without specifying a cartridge
	- tidied up commands package
	- sketched in filename tab-completion
	- corrected tab-completion comments
2020-01-05 18:58:27 +00:00
steve
07c2c068b4 o debugger / vcs
- fixed crash caused by reset attempt when in the middle of an instruction
2020-01-05 18:58:26 +00:00
steve
9b645709b7 o colorterm / ansi
- tidied up ansi module

o breakpoints / traps
	- corrected comments
	- fixed multiple traps

o lint check
	- tidy up in response to lint check

o reverted String() to use MachineInfo() rather than MachineInfoTerse()
2020-01-05 18:58:26 +00:00
steve
480c60d4f9 o debugger
- implemented traps
	- tidied up breakpoint implementations

o tia / video
	- first pass at playfield rendering
2020-01-05 18:58:26 +00:00
steve
f06d958487 o vcs
- video stepping doesn't callback to debugger when CPU isn't ready (like cpu
		stepping)
	- RIOT now only runs once per CPU cycle, instead of once per video cycle
		timer now runs as expected

o tia/video
	- tidied up sprite types for easier debugging/thinking

o television
	- MachineInfo* now reports on whether tv is performing out-of-spec

o sdl tv
	- added overlays
		- cursor
		- screen boundary
		- pixel guide

o debugger
	- replaced strings.Split(s, " ") and a small amount of post-processing,
		with a single call to strings.Fields() - I've just discovered it.
	- added STEPMODE command
	- STEPMODE VIDEO will now print video step result (what it can of instruction
		result)
	- implemented script loading and running - no SCRIPT command just yet though
		this is intended for initialisation for the time being
	- added VERBOSITY and DEBUGGERSTATE commands

o cpu
	- better, more complete, printing for instruction result

o sprite/drawSig
  - counting drawSig the wrong way, causing pixels in sprites to be
    flipped horizontally
2020-01-05 18:58:26 +00:00
steve
09f1e21149 o debugger
- implemented video stepping
  - STEP command now has optional argument CPU or VIDEO
  - subsequent calls to STEP (or implied STEP) will default to previous
    selection of STEP CPU or STEP VIDEO

o changed vcs.go and gopher.go to reflect changes required by video
  stepping implementation

o debugger
  - ONBREAK now called ONHALT
  - ONHALT command sequence can now be specified
2020-01-05 18:58:26 +00:00
steve
04ede0d08d o riot/timer
- implemented riot timer

o debugger
  - added CLEAR BREAKS command
2020-01-05 18:58:26 +00:00
steve
b18a329706 o SDL TV
- first version - simply to get something onto the screen
  - embeds headlessTV

o HeadlessTV
  - implemented TVState type for frameNum, scanline and horizPos fields
  - TVState satisfies BreakTarger interface in the debugger

o Breakpoints
  - altered breakpoint to account for changes made for TVState

o Debugger
  - implemented SHOW and HIDE

o clarified commentary
2020-01-05 18:58:26 +00:00
steve
bd1ca32c11 o tia/video
- implemented video in part
  - implemented sprite framework - ball sprite completed
  - reorganised existing tia code in repsonse to new code

o debugger
  - tweaked existing commands and how they work
2020-01-05 18:58:26 +00:00
steve
5496f7277c o television
- implemented headless TV

o debugger
  - VERBOSE is now called HALT - as in "auto command halt"
  - no way of setting what command(s) to run on halt just yet
  - a real verbose command that flips between verbose and terse printing
    of machine state

o polycounter
  - separated Reset() and SetResetPattern()
2020-01-05 18:58:26 +00:00
steve
74c80421f3 o tia
- filled in more of the TIA implementation
  - RSYNC works correctly
  - polycounter and other components altered as required

o television
  - sketched in television interface
  - implemented dummy television

o debugger
  - syntax normalisation -- allowing variations in how we specify hex numbers
  - added VERBOSE command

o renamed mflib package to assert
  - Assert function renamed to CheckValueVCS
2020-01-05 18:58:26 +00:00
steve
04f4d34ca7 o tia
- began implementation of tia
  - implemented polycounter more or less fully

o polished up error handling
2020-01-05 18:58:26 +00:00
steve
8105706f7c o debugger
- added MEMMAP command

o tidy up
  - changed pointer recievers to value receivers when the method does
    not mutate the type instance
  - I'm not sure about this but I like if for now - this way it is
    clearer, to me at least, which methods mutate and which don't

o memory
  - small reorganisation of memory package in preparation for
    implementation of the video chips

o renamed project to "gopher2600"
2020-01-05 18:58:26 +00:00
steve
72e647161e o cpu
- removed go routine implementation of cycle stepping; far too slow
  - replaced with a callback implementation. I'm thinking that it might
    not be as flexible but that in the long run that it doesn't matter.
    besides, the speed difference is definitely worth it.
2020-01-05 18:58:26 +00:00
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
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