Commit graph

51 commits

Author SHA1 Message Date
steve
16b15fad95 o added licence headers to all files 2020-01-05 18:58:43 +00:00
steve
1fa62f5c21 o debugger
- improved help messages
    - remove EXIT command, leaving just the QUIT command
    - QUIT command now terminates a script recording session rather than
    causing the debugger to quit
    - renamed granularity to quantum. reframed all commentary/help
      messages in these terms
    - CARTRDIGE BANK prints error as appropriate
    - removed HEXLOAD. functionality subsumed into POKE command
    - DISPLAY DEBUG ON/OFF is now DEBUG MASK/UNMASK

o symbols
    - fixed table listing
    - using index instead of index into array (eye roll)

o cartridge / atari
    - fixed bank switching boundary check
2020-01-05 18:58:43 +00:00
steve
b934a1c55c o sdl / audio
- do not allow sdl to output the silence value because some audio
      devices turn off as soon as silence is received. this causes sound
	to be clipped and in some cases, never to be output at all.
2020-01-05 18:58:43 +00:00
steve
352efe7aa5 o audio
- "fixed" acutalVol value if control register is zero
2020-01-05 18:58:42 +00:00
steve
30f35f2dc2 o debugger
- removed dead commands
    - added WATCH tests
    - added TRAP tests
    - fixed HELP printing. I feel I've fixed this before. I must have
      removed the fix inadvertantly.
2020-01-05 18:58:42 +00:00
steve
0630722590 o vcs
- correct propagation of error from polycounter
    - removed VCSError message
2020-01-05 18:58:42 +00:00
steve
485b8c5fe5 o debugger
- renamed CurrentValue to TargetValue() in Target interface
2020-01-05 18:58:42 +00:00
steve
50dd2e3f8d o breakpoints
- fixed breaks with more than one AND condition
    - duplicate breakpoint detection improved
2020-01-05 18:58:42 +00:00
steve
6c210ee6c1 o debugger
- reorganised packages within the debugger package
    - commentary and documentation

o terminal
    - renaming of console to terminal in all instances
2020-01-05 18:58:41 +00:00
steve
3aa859a686 o replaced all instance of new(obj) with &new{} 2020-01-05 18:58:40 +00:00
steve
46d89baf21 o targets
- tidy up. removed ShortLabel

o registers
    - tidy up. removed some needless conversion functions
2020-01-05 18:58:39 +00:00
steve
acc10f8d97 o errors
- renamed FormattedError to AtariError
    - renamed NewFormattedError to New
    - implemented Is() and IsAny() for more convenient testing
    + changed all error testing to use Is() and IsAny()
    - renamed FatalError to PanicError to better indicate the intent
2020-01-05 18:58:38 +00:00
steve
e6d6d3f0f9 o tia/player
- reworking of timings
    - improved MachineInfo() text
    - work on NUSIZ * more to be done

o stella tv
    - error if no flyback signal has been sent

o metavideo
    - improved metavideo
    - now visualises delayed effects
2020-01-05 18:58:36 +00:00
steve
2a683ebc5a o debugger
- renamed STEPMODE to GRANULARITY
    - video granularity prompt no longer printed in bold type. easier to distinguish
    between that a cpu granularity prompt
2020-01-05 18:58:35 +00:00
steve
9ddf980348 o SDL / GUI
- keyboard events now include modifier keys

o debugger / playmode
    - only react to keyboard presses with the correct modifier
    - fixes problems when workspace switching with ALT-1 etc.

o hardware / vcs
    - renamed MC attribute to CPU

o television / basic
    - better emulation of Stella's method of counting pixels
    - improves A/B testing
    - implemented an out-of-spec HsyncSimple signal to help with this

o tia
    - now sens HsyncSimple signal in addition to Hsync signal
2020-01-05 18:58:35 +00:00
steve
73e08a943e o project
- "TODO" comments notation changed to "!!TODO" to help with vim-todo
    - TODO file changed to FUTURE to better indicate its purpose and not
    to confuse with the autogenerated todo.txt
2020-01-05 18:58:35 +00:00
steve
ba1e840215 o debugger
- CPU command can now SET cpu registers
2020-01-05 18:58:34 +00:00
steve
8800312527 o breakpoints
- ANDing of breakpoints now works correctly
    - listing of ANDed breakpoints now correct
    - corrected command template for BREAK

o debugger
    - STEP command template and parsing corrected
2020-01-05 18:58:34 +00:00
steve
6272b90892 o debugger/script
- renamed Recorder to Scribe
    - any references to script "recording" has been altered

o errors
    - some effort expended tidying up error messages display and
    construction
    - commandline package now uses errors package

o removed panics that would be better served with errors

o removed extraneous calls to fmt.Println and fmt.Printf
2020-01-05 18:58:33 +00:00
steve
cf90552b0a o breaks/traps
- added witchspace as a target - purely to help me debug the
disassembly process but at the same time, it has improved how targets
are defined.
2020-01-05 18:58:32 +00:00
steve
46b8173b7b o replaced debugger/input package with debugger/commandline
- improved how command template are compiled
    - verification and tab completion is now more robust
    - missing repeat groups

o debugger
    - extended PLAYER and MISSILE commands
    - combined STICK1 and STICK2 into one STICK command
2020-01-05 18:58:32 +00:00
steve
3205951fe1 o cpu
- added XAA command

o debugger
    - renamed ui package to console package
    - GUI instance now passed to NewDebugger, rather than created
    internally

o regression
    - begun refactor
2020-01-05 18:58:32 +00:00
steve
7da83ecade o debugger / breakpoints
- fixed duplicate detection
    - fixed parsing of breakpoint values >16bit (I misread the
      ParseInt() documentation)

o disassembly / commands
    - GREP results now provide context

o gopher2600
    - initscript now definable on the command line

o tia / playfield
    - implemented "scoremode"
    * I'd totally forgotten about this 2600 feature and was trying to
    understand why the "28c3 intro" demo wasn't showing the atari logo
    at the top of the screen. at the same time I had stumbled across
    SvOlli's Revision 2013 lecture where he mentions it. lucky. I would
    have spent a couple of hours probably, scratching my noggin.
2020-01-05 18:58:32 +00:00
steve
6d597c5035 o errors
- renamed GopherError to FormattedError
    - reading files now handled by ioutil.ReadAll(), rather than
    os.Read()
2020-01-05 18:58:32 +00:00
steve
eace335cce o sprite
- fixed bug that caused sprite position to be misrecorded
    - caused by reckoning the effects of HMOVE from the reset position
    rather than the current (possibly already adjusted) position

o debugger / colorterm
    - implemented HOME/END keys for input loop

o monitor / sdltv staterecorder
    - generalised colour assignment
    - not perfect but more flexible

o debugger / breakpoints
    - parsing of negative numbers now allowed
2020-01-05 18:58:32 +00:00
steve
d05ba0c823 o breakpoints
- better duplication detection
    - listing of breakpoints now prints target value in the targets
	canonical format

o debugger
    - fixed how debugger reacts to SDLTV right mouse button - not
	duplicating breakpoints

o tia / video
    - calculation of sprite pixel corrected
    - reworked code for clarity
    - moved TIA HMOVE into its own package to prevent circular imports
	between the TIA tia and video packages.

o sdltv
    - improved cursor display - the currently affected pixel is now
	visible "through the cursor"
2020-01-05 18:58:31 +00:00
steve
74d8f6e297 o debugger
- implemented DROP command
2020-01-05 18:58:28 +00:00
steve
3a20e6d394 o breakpoints
- reworked breakpoints so that we can AND conditions together
	- breakpoints are now checked every video cycle regardless of
	current step mode - this is required if we want to break on
	attributes like Horiz Pos (HP) which may jump over values in CPU
	step mode
2020-01-05 18:58:28 +00:00
steve
e96f052c1f o debugger/input
- parser package renamed to input
	- tokeniser moved to input
	- command templates are now specified using a simple markup
	language
2020-01-05 18:58:28 +00:00
steve
d744e6229a o debugger
- better lexing/parsing of command input
	- break/trap on instruction effect (read, write, etc.)
	(we had to implement a more flexible way of satisfying the
	target interface for this. it works but it's a bit ugly)
2020-01-05 18:58:28 +00:00
steve
d569fb4bca o targets
- started to generalise targets a little. preparation for future
		changes

o register
	- split register operations into a separate file - for clarity
2020-01-05 18:58:28 +00:00
steve
d5895261bd o television
- refactored SDL television
	- implemented close window for SDL windows
	- backquote key toggles screen-mode (debug guides on/off)
	- window resizes to fit screen-mode
	- sketched in mouse support for SDL implementation
	   - the intention here is to be able to select breakpoints
	     with the mouse

o concurrency
	- made sure shared memory is locked for all go routines

o errors
	- reworked gopher errors a little
2020-01-05 18:58:28 +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
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
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
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
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
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
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
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
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
eb17bc1f63 o registers
- replaced both register implementations with just one that uses
    32 bit integers as the underlying implementation. very smart and
    very quick by comparison to the bit array implementation.
2020-01-05 18:58:26 +00:00
steve
ac05b88ac9 o cpu
- registers must now be labelled, although the label can be the empty string
  - this means that we specify the name for the register once, at
    creation time, and not everywhere we print out information

o debugger
  - breakpoints now takes advantage of register labels
2020-01-05 18:58:26 +00:00
steve
b41fae1204 o breakpoints
- improved breakpoint parsing/processing
2020-01-05 18:58:26 +00:00