Commit graph

2968 commits

Author SHA1 Message Date
steve
c7ee93312e o debugger
- initisalisation script is now an argument to debugger.Start()
	rather than calling from gopher2600
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
37504437d4 o cpu
- fixed decimal mode subtraction and addition
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
06cca94acd o disassembly
- if no cartridge file has no symbols file then the standard VCS
		symbols are used

o cpu
	- fixed "noSideEffects" version of JSR
2020-01-05 18:58:27 +00:00
steve
34ca0409a9 o television
- performance improvement: color definitions are now a plain
		array not a map
	- introduced SignalAttributes type. more convenient

o video
	- tidied up collisions code
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
63fa147a16 o debugger
- ONHALT now performs the new command sequence straight away
	- added RAM command
	- HEX output alongside disassembly
2020-01-05 18:58:27 +00:00
steve
4e9f48630b o debugger
- added SYMBOL command. searches for address label, returns
		address
	- fixed disassembly output for ROMs without a symbol file
	- improved disassembly a little bit. now attempts to disassemble
		entire of cartridge memory and doesn't bail out of loop
		at first sign of an unimplemented instruction. cpu
		package now returns a ProgramCounterCycled error when
		program counter reads past end of memory

o video
	- tweaked horizontal movement
	- fixed player vertical delay (tested with Pitfall ROM)
	- fixed ball enable detection (0x02 not 0x20. doh!)

o cpu
	- implemented LAX command
	- renamed 3 byte NOP to DOP
	- added program counter information to unimplemented instruction
		error

o gopher 2600
	- error message now returned and displayed in run mode

o
2020-01-05 18:58:27 +00:00
steve
b2a0c9b9ea o video sprites
- fixed sprite rendering

o cpu
	- fixed zero/negative detection for non-accumulator versions of
		INC and DEC
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
9df59c9aea o player sprite
- fully implemented player sprite

o playfield
	- fixed reflection indexing

o debugger
	- tweaked command parsing

o corrected CPU instruction definitions
	- 0x19 was missing (mistakenly specified to be 0x10)
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
21dbb029f4 o debugger
- improved command parsing, although still lacking in required
	features
	- clear/listing of breaks/traps now handled by CLEAR and LIST
	commands
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
fb1a07d803 o video
- ball, missile and player sprite types added - tidy up of
	sprite class
	- properties moved from video type to the correct sprite type
	- delayCounter now renamed and reworked as future. it was felt
	that needlessly conflicted with the VCS concept of vertical
	delay
	- completed horizontal movement for all sprite types

o correction of assorted linting errors
2020-01-05 18:58:27 +00:00
steve
6f2ac8efd1 o cpu
- fixed bug caused by RMW version of instructions working on the
	accumulator rather than the memory value via a temporary
	register

o debugger / traps
	- fixed segfault caused by attempting to set a trap for illegal target

o video / playfield
	- fixed bug when writing value to playfield
	- clarified names and comments
	- fixed write delay for playfield registers
2020-01-05 18:58:27 +00:00
steve
3b29679983 o colorterm / input
- fixed delete key detection
2020-01-05 18:58:27 +00:00
steve
7fa4861f5c o playfield
- fixed write delay
	- added PLAYFIELD command in debugger

o debugger
	- fixed prompt when in video step-mode
	- fixed STEPMODE parsing
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
3739f89202 o fixed tabcompletion
- panic when list of options is empty

o debugger
	- debugger now initialises with plain terminal
	- other terminals are still specified on debugger.Start()
	- this fixes a bug caused when trying to print error messages
	from a startup script
	- conversion of user input to upper cause is now more selective
	- SCRIPT command added
2020-01-05 18:58:27 +00:00
steve
f6427d23d6 o debugger
- sketched in HELP command
2020-01-05 18:58:27 +00:00
steve
30f3abf90a o debugger
- finished basic tab completion
	- doesn't support command arguments but is does support option
		cycling and timeouts
2020-01-05 18:58:27 +00:00
steve
9d3d9d10ac o debugger
- refactored user interface types and functions - now in ui
	package
	- sketched in tab completion
2020-01-05 18:58:27 +00:00
steve
9919016ef0 o tidied up easyterm
- added keycodes
	- easyterm now handles terminal resizing transparently
		- not tested or used yet
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
b5cf097363 o colorterm
- implemented cursor navigation
	- implemented history
	- ansi source file moved into it's own package
	- created easyterm - wraps termios with additional functions
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
fe6f382f17 o debugger / breakpoints
- generalised parsing of targets for breakpoints
  - parseTarget() can now be used in other contexts (eg. traps)
2020-01-05 18:58:26 +00:00
steve
18e207400e o cpu
- fixed page fault detection in addressing modes: PreIndexedIndirect,
    AbsoluteIndexedX and AbsoluteIndexedY
2020-01-05 18:58:26 +00:00
steve
d5735dcc7f o debugger / breakpoints
- breakpoint checker will now not break on conditions already broken
    upon - it will only break when conditions of current break targets
    actually change
2020-01-05 18:58:26 +00:00
steve
de3c30beda o gopher2600
- cartridge file now required on command line when launching

*** versions prior to this used literal strings to specify the
cartridge, which may or may not exist if previous versions are checked
out of the repository
2020-01-05 18:58:26 +00:00
steve
cd70c444b9 o fixed cpu_test 2020-01-05 18:58:26 +00:00
steve
c19f7c8c39 o video
- completed horizontal movement

o gopher2600
  - added new mode TVFPS, to test perfomance with the SDL TV window
    active
2020-01-05 18:58:26 +00:00
steve
ecfe977291 o television
- implemented colored pixels
2020-01-05 18:58:26 +00:00
steve
57dbfb2cbb o television
- introduced the concept of pausing for the television; meaning that we can
    render the screen differently depending on whether emulation is paused
  - tv will now show previous frame "underneath" the current frame
    when paused - useful to be able to see what frame will probably look
    like once frame has been rendered
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
1916a556fe o color terminal
- improved ansi color
  - moved ui package to debugger/colorterm

o debugger
  - replaced SHOW and HIDE commands with DISPLAY command
  - DISPLAY command takes optional argument OFF
  - replaced CLEAR BREAKS command with BREAK CLEAR

o sprites
  - improved MachineInfo() messages
  - ball sprite now ticks/pixels correctly

o debugger/breakpoints
  - tidied up breakpoints implementation
2020-01-05 18:58:26 +00:00
steve
8248a52735 o debugger/ui
- debugger now expects a type that satisfies UI interface

o tia/video
  - implemented MachineInfoTerse() for sprite types
2020-01-05 18:58:26 +00:00
steve
70e2352862 o every object that requires it now implemets MachineInfo and MacheinInfoTerse()
- this replaces the previous String() and StringTerse() functions
  - String() now calls MachineInfo() in every instance, for convenience
2020-01-05 18:58:26 +00:00
steve
ac3dd75b18 o debugger
- reworked print routines so that they are more easily replacable
  - added print profiles, to allow formatting of output

o ui
  - implemented basic color terminal

o tia
  - reworked so that tia sub-components are accessible from outside of
    tia package - useful for the debugger
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