- 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
- 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.
- 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.
- 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
- 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
- renamed STEPMODE to GRANULARITY
- video granularity prompt no longer printed in bold type. easier to distinguish
between that a cpu granularity prompt
- 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
- "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
- 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
- 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
- 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
- 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
- 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.
- 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
- 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"
- 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
- 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)
- 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
- 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
- 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()
- breakpoint checker will now not break on conditions already broken
upon - it will only break when conditions of current break targets
actually change
- 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
- 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
- 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
- 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
- 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()
- 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"
- 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.
- 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