checks that linters exist before proceeding. project URL for each linter
in the Makefile comments
only go-errorlint and unconvert used at the moment
fixed all lint errors for the added linters
the SYMBOL command can now tab-complete the current list of symbols
there is more work to be done here to allow other commands such as BREAK
and WATCH to tab-complete on symbols/labels
clarified terminology for symbols package in doc.go
added extension directive. allows validation and tab-completion of a
command to be extended with additional parameters
added mapper.TerminalCommand interface. this interface works in
conjunction with the commandline package Extension interface
ELF mapper implements mapper.TerminalCommand and commandline.Extension
interfaces to give the CARTRIDGE command some ELF specific options
updated QUANTUM and STEP commands to accoodate new quantum
control window changed to support the three quantum options
improved/corrected the conditions under which the ONSTEP command is run
disassembly.ExecutedEntry() updates existing entry
curated package predated the standard errors package introduced in
go1.13
the standard package does a better job of what curated attempted to do
the change of package also gave me a opportunity to clean up the error
messages a little bit
identified the functions in the debugger package that are used by the
lazyvalues package. it is planned that the lazyvalues system will be
replaced by a Borrow() mechanism so this is a change with a limited life
expectancy
go-wav, statsview and memviz all indirectly used gopkg.in/yaml.v3 which
I do not want to depend upon
WAV functionality is no longer available for wav writing or reading
(supercharger tapes). will try to reintroduce functionality in the
future
added terminal.UserQuit sentinal error to better handle quit events.
future versions should probably remove 'running' variable and rely on
this error and filter accordingly
now takes into consideration the attached terminal. added
IsRealTerminal() to terminal.Input interface to support this
reworked script package error messages
RawEventImm was added originally to allow GUI events to preempt all
other pushed RawEvents. this was needed because of how lazy value update
requests were pushed. we've throttle these requests now so we no longer
need the preempt channel
PushGotoCoords() was added because we wanted to use the RawEventImm
channel. pusing the GOTO command is now fast enough for discrete calls.
we may want to reimplement it if we need to send many GOTO commands -
similar to how PushRewind() is required in place of REWIND commands
thumb program will abort if illegal memory access is detected
illegal accesses will always be logged even if the option is off
program will always abort on illegal PC fetch even if the option is off
debugger and playmode refer to userinput package rather than the common
code being in the playmode package
GUI events are now userinput events
more versatile handling of EventData in controller package. parsing of
EventData is handled by the controller types as required. added
EventDataPlayback type to ports package to help distinguish source of
data.
EventDataStick used to specify stick data value. used to help
distinguish between setting a stick direction and toggle a stick
direction. the latter case is useful for (physical) gamepad input and
the former for input from a keyboard.
Gamepad analogue stick can be used for paddle input. PaddleFire removed
and Fire used instead.
version number of playback file increased to 1.1. version detection of
recorder.IsPlaybackFile() improved.
replacement for GuiStateRewinding request removed in previous commit
particularly effective when rewind snapshot frequency is greater than
one frame
colorterm should now work correctly with RawEvents and RawEventImm (I
don't really use colorterm anymore but this corrects an oversight)
removed some logical dead-ends
introduced the concept of restarting the input loop. this is important
when resetting the emulation for example. if the machine is reset during
a video cycle then the emulation will resume inside the video inputloop.
however the reset machine expects to be inside a cpu inputloop, causing
havoc. also used to ensure the rewind system works correctly.
restarting the input loop is tricky. it requires a RawEventReturn channel
that works like the RawEvent channel but returns control to the input
loop on completion.
added GetFeature() to gui interface to better support the rewind
subsystem. renamed ReqFeature() to SetFeature(). Added FeatureReqData
type for clarity.