Commit graph

37 commits

Author SHA1 Message Date
JetSetIlly
178f05f17b updated go minimum version to 1.20
applied gofmt to source tree to update the documentation comments
2023-02-12 13:09:07 +00:00
JetSetIlly
3cc2eb7b4a moved LEB decoding to a new leb128 package
added tests using data from DWARF4 standard
2022-11-20 20:24:37 +00:00
JetSetIlly
040695b4c7 added CappedWriter to test package
renamed test.Writer to test.CompareWriter
2022-11-01 13:01:35 +00:00
JetSetIlly
2a732201ce implemented a ring io.Writer for testing purposes
updated arm to output to test.RingWriter rather than straight to stdout
2022-10-25 15:51:14 +01:00
JetSetIlly
1cefa61cea added Abort on Illegal Memory Access option for ARM emulation (default: off)
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
2021-07-15 10:38:37 +01:00
JetSetIlly
1951a0ef32 corrected test.Equate() function 2021-03-14 18:03:49 +00:00
JetSetIlly
d6463e0dae lint errors 2021-02-24 06:59:30 +00:00
JetSetIlly
31374965e9 enable all govet linting checks (except composite and shadow) 2020-10-16 16:55:07 +01:00
JetSetIlly
9e159b97d8 added more linters to golangci-lint config
godot --fix has been run to make sure all comments end in a full-stop

specified nolint directive to apply to specific linter
2020-10-16 16:31:07 +01:00
JetSetIlly
b41c6d0301 removed unnecessary whitespace (golangci-lint -E whitespace --fix)
update Makefile lint target
2020-10-16 10:29:09 +01:00
JetSetIlly
e6e3a63be8 spelling errors in comments (golangci-lint -E misspell --fix)
update Makefile lint target
2020-10-15 22:02:51 +01:00
JetSetIlly
a2aee094a0 added logger package
small changes to how terminal prompt is used

reworked terminal print styles for clarity
2020-08-03 23:24:39 +01:00
JetSetIlly
298a5d343f updated copyright notice in all files
the note about historical versions also being covered wasn't strictly
needed and was ugly. the LICENCE being in the root file from the very
first commit is sufficient.
2020-07-26 20:18:56 +01:00
JetSetIlly
ed1dad7260 added some missting doc files 2020-07-26 18:00:18 +01:00
JetSetIlly
80f035368b clarified critical sections in sdlimgui pixelrenderer 2020-03-29 07:06:57 +01:00
steve
b9b93024d7 added thread assertions to test package
build with -tags="assertions"
2020-02-08 07:55:14 +00:00
steve
913b96dc5d path package tests 2020-01-07 19:47:08 +00:00
steve
d0b023bea2 documentation updates 2020-01-06 10:11:21 +00:00
steve
16b15fad95 o added licence headers to all files 2020-01-05 18:58:43 +00:00
steve
e3ccbcbcd1 o commandline
- added support for placeholder labels
    - improved error messages
    - better help command

o debugger
    - command template is now labelled

o test
    - corrected "expect success" message
2020-01-05 18:58:43 +00:00
steve
704ff4d185 o test
- added Equate() function
    - reworked and renamed registers/assert package. now called
	registers/test
2020-01-05 18:58:40 +00:00
steve
15e418411d o test
- added Writer type. used for comparing buffered output with
	example strings
    - used by modalflag and symbols test package, although it may be
	used by other packages in the future
    - added ExpectedSuccess() and ExpectedFailure() functions
2020-01-05 18:58:40 +00:00
steve
8ad481e132 o debugger / playmode
- removed references to SdlPlay and SdlDebug
    - constructors for debugger and playmode now expect instances of GUI
    and Television, rather than creating them
    - this should help future porting efforts

o peripherals
    - renamed Events to Actions
    - to avoid confusion with Events in the GUI package

o television
    - renamed StellaTelevision to television; a better name because
    it serves as a reference implementation and is the only television
    implementation currently needed.
    - originally, PixelRenderers were implemented as Television that
    embedded StellaTelevision; it made sense to use a more unique name
    - note that we're still keeping and using the Television interface
    - reworked specifications file
2020-01-05 18:58:39 +00:00
steve
28d7352b52 o cartridgeloader
- moved from memory package
2020-01-05 18:58:39 +00:00
steve
2aadee3158 o sdl
- implemented SdlPlay
    - simplified and more efficient SDL interface
    - renamed PixelTV to SdlDebug
    - SdlDebug implies debugging is allowed so removed AllowDebugging
	request from gui interface
    - removed stability code from SdlDebug

o television
    - added stability detection to base television implementation
    - added top/bottom scanline figures to specification types. more
	intuitive to work with in some contexts
2020-01-05 18:58:39 +00:00
steve
59413405e9 o television
- reworking of comments and naming for clarity

o gui
    - reworking of comments and naming for clarity
    - moved overlay code to gui
    - removed overlay package and renamed concept back to metapixels
2020-01-05 18:58:39 +00:00
steve
a734782969 o cpu
- streamlined how CPU results are created and stored
    - speeds up execution a little

o debugger
    - implemented Disable() function for consoles
    - used to stop output when running initialisation script
2020-01-05 18:58:38 +00:00
steve
a1bd179139 o cartridge
- Attaching of cartridges now uses CartridgeLoader type
    - CartridgeLoader type allows the caller to specify the cartridge
	path and the format of the cartridge, if fingerprinting needs to
	be overridden
    - An expected hash value for the loaded cartridge can also be
	supplied

o regression / playback
    - regression database and playback scripts now include entries
	specifying the cartridge format
2020-01-05 18:58:38 +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
468d34fdc5 o television
- renamed HeadlessTV to BasicTelevision
    - imagetv and digesttv moved to a single package (called renderers)
    - for example, an SDL GUI and a digestTV instance can now use the
	same BasicTelevision instance
    - hooks now implemented as a Renderer interface
    - simplified GetState() interface

o debugger
    - debugger now initialises an instance of digestTV, using the same
	underlying BasicTelevision as the SDL GUI
    - added DIGEST command
2020-01-05 18:58:33 +00:00
steve
d04462a0fc o scribe
- added recording and playback of controller input

o cpu
    - cpu now correctly propagates errors from video cycle callback
2020-01-05 18:58:32 +00:00
steve
5a223794d4 o gui
- separated gui specific elements from television package
    - sdl implementation moved to gui package
2020-01-05 18:58:32 +00:00
steve
52e847a51b o gopher/vcs
- simplified run and stepping frontend to vcs hardware
    - improved fps mode

o television
    - removed extraneous members in headless class
    - corrected setting of visible screen size
2020-01-05 18:58:31 +00:00
steve
520bfb9b56 o debugger
- color terminal input loop now responds to gui events correctly
    - fixed debugger/memory layer
    - debugger/memory layer also now searches cartridge specific symbols

o television
    - altered semantics of status requests (for clarity)
    - added Reset() to television interface
    - HeadlessTV implements Reset()

o regression testing
    - now shows complete paths to cartridge file
    - fixes confusion in regression output when cartridges with the same
    name appear in different folders

o video/future
    - rerolled future group Tick() function
2020-01-05 18:58:30 +00:00
steve
37aeb96bfe o tia
- reverted motion clock timings from 480ff22670eb8898b0d15d5f884257232db584bf
    - this visually breaks Keystone Kapers ROM again but this was
    definitely not the right solution because the fix broke both Yar's
    Revenge and the stress-test-cards.

* I really now need to implement automatic regression tests

o debugger
    - implemented grepping of disassembly
2020-01-05 18:58:30 +00:00
steve
5b2f51197a o sdltv
- window is now resized according how and when VBLANK is
    switched on and off
    - implemented stability check to limit when window resizing occurs
    - Dragster now works correctly

o television
    - improved how out-of-spec television signals are handled
    - added new request type SETVISIBILITYWHENSTABLE
    - SETVISIBILITY request type now accepts optional second argument
    for whether the screen should be updated when visiblity is true
    (some code paths will deadlock otherwise)
    - updated Signal() interface - now propagates errors correctly

o gopher2600
    - run mode now uses SETVISIBILITYWHENSTABLE
2020-01-05 18:58:30 +00:00
steve
49d429b6bf o cpu
- implemented BRK and RTI instructions - not fully tested
    - tidied up when NoSideEffect is checked

o debugger
    - fixed breakAndTrapCallback
    - fixed instruction result validity check crash caused when
	instruction step resulted a runtime error

o cartridge
    - added support for half-size cartridges
    - tidied up error handling

o various commentary cleanups/clarifications

o move test files to test/ directory
2020-01-05 18:58:29 +00:00