Commit Graph

45 Commits

Author SHA1 Message Date
stephena 0388ab89e5 Added a new directive called PGFX, used for playfield graphics (the
previously defined GFX directive is now used for player graphics
only).  The 6502 core tracks each of these separately, which provides
for more accurate disassembly.

Modified debugger font and disassembler to show GFX and PGFX with
special characters, instead of using 'X' as Distella does.  This also
allows gives much more informative disassembled outout.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2156 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-21 17:46:23 +00:00
stephena bd06b3db1e Fixed bug in OSX port, where the name of the application wasn't shown
in Activity Monitor.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2154 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-12 15:29:22 +00:00
stephena e8c91c7876 Fixed infinite loop in Distella; a section of code needed to use 32-bit
values instead of 16-bit.

Fixed compilation of System class and M6502 disassembly tracking when
compiling without debugger support.  In this case, the tracking is not
done, and all related operations are completely #ifdef'ed out (resulting
in no extra speed/memory usage at all).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2152 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-11 23:06:37 +00:00
stephena 5624d30d93 The emulation core now tracks access to DATA areas (currently, any address
used as a peek operand).  Still TODO is deal with poke areas, which would
be relevant in carts with extended RAM.

The interaction between the internal tracking and Distella is now much
tighter, in that knowledge gained by Distella is used in the core code,
and vice versa.  This allows the best of both worlds, where the internal
tracking finds stuff at runtime (that couldn't be found in a static
analysis), and Distella tracks potential paths (that haven't occurred at
runtime yet).

Added 'type' debugger prompt command, which basically queries an address
for its disassembly type (CODE/GFX/DATA, etc).

Added debugger commands to query the last address used in an operation
for various registers, but they're only stubs at the moment.

Updated the bankswitch schemes to deal with accesses in and around the
hotspot areas.  Previously, peek accesses in these areas weren't being
recorded as DATA areas.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2145 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-10 20:24:22 +00:00
stephena 5d0b25cd48 Re-added 'REFERENCED' type to Distella, instead of always using 'DATA'. I just
realized that not all things that are referenced are actually data; code can be
referenced too.

Implemented handling of 'DATA' directive.  This is very similar to 'GFX',
except X's are not shown for the bits, and the disassembled bytes are always
in hex.  For now, it can only be activated manually with a cfg command.
Its real value will become apparent once the emulation tracks when
addresses are actually accessed, differentiating from addresses that are
never referenced (ie, 'ROW').  This will fix the current deficiency in 
modifying DATA values (it can't be done, since they're packed into 16 bytes per
line and not changable).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2144 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-09 17:55:22 +00:00
stephena fa3dc7cc38 Beginning the process of more properly integrating Distella (and disassembly
in general) into the emulation core.  For now, this means integrating the
directive names into CartDebug, and having Distella using those same names.
The new directive names were determined by discussion with Omegamatrix on
AtariAge, and are listed in order of decreasing hierarchy:

  SKIP  (the 'bit' trick to skip over sections of code)
  CODE  (addresses accessible to the program counter)
  GFX   (addresses where data is loaded into TIA GRPx registers)
  DATA  (addresses referenced somewhere in the ROM)
  ROW   (addresses never referenced at all)

The next TODO item is to have the 6502 core set these values during emulation.
This is currently (crudely) done with a true/false setting in System::peek,
where true corresponds to CODE.  This will be extended, so that false
corresponds to DATA.  Eventually GFX will also be detected, by watching writes
to the TIA GRPx registers.  Still to work out is how to detect SKIP sections.
Anything not marked with one of the above directives will be marked as ROW,
which essentially means ROM space that is never used.  This will have the
nice side effect of detecting dead ROM space, potentially leading to space
optimizations.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2143 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-07 22:34:22 +00:00
stephena 64ca5275d2 Fixed disassembly output error for 'relative' opcodes; only the signed
operand should be shown, not the two-byte address which it resolves into.

Bumped version # for another test release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2140 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-03 18:48:44 +00:00
stephena 4b44dcb948 Added 'showaddr' commandline argument and associated UI item (right-click in
disassembly listing) to show/hide opcode/instruction addresses.

The disassembler now includes hints from current PC location *and* 'code
access points' from the emulation core.  Testing has shown that some ROMs
don't show completely accurate disassembled output unless both options are
used.

Updated most of the remaining bankswitch schemes to use the new 'code access
points' functionality during disassembly, allowing for very accurate
disassembled output.  Note that the more esoteric schemes (AR, 4A50, FE, MC)
are supported for now.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2139 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-03 18:19:09 +00:00
stephena 5fe91e2841 Greatly improved the disassembler output, but having Stella keep track of
addresses used as part of code execution (ie, from the PC) during emulation.
This gives Distella much more information than can be determined from a
static analysis alone, resulting in an extremely accurate disassembly.
This also allows to generate very accurate debugger .cfg files.

Not all carts have been ported to this new scheme yet, particularly ones
having extended RAM that can be mapped out dynamically.

Note that this new scheme doubles the amount of RAM used for storing ROM
images, so up to 128KB extra will be used.  There's also a small runtime
check for each instruction executed.  Preliminary testing doesn't show
any slowdowns, but we'll see how it goes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2138 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-03 00:23:13 +00:00
stephena d6a38c8e44 Changed several string invocations to use references instead. For the
Cart class it's simply an optimization, but the Distella change actually
modifies the list of addresses (vs. modifying a copy of the list).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2137 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-30 15:56:38 +00:00
stephena db8fd2465f Added 'clearconfig' debugger prompt command, to quickly remove all
directives associated with a given bank (or all banks).  Sometimes the
directives are so borked that's it's easier to remove them all at once.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2127 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-07 22:03:20 +00:00
stephena 7f75957e11 When a ROM doesn't exist and is temporarily inserted into the properties
database, it now has its extension removed (.bin, .a26, etc).

Symbol and config files are now loaded when the debugger is first entered,
not when the ROM is actually loaded.  This speeds up ROM loading, since
the user may never need to access these file (ie, they may never enter the
debugger).

The debugger 'loadconfig' and 'saveconfig' commands are now implemented.

Bumped version # for next test release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2126 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-06 23:29:05 +00:00
stephena 8f68c677d4 Added commandline argument 'gfxformat', also accessible from a right
mouse button context menu in the disassembly listing.  This is used to
set the default display format for GFX data sections (currently, binary
and hex are supported).

Fixed bug in several debugger input areas to accept the '\' symbol.
This symbol is needed when entering data in binary format (it must
prefix the data if the default base for that field isn't binary).

Added 'jump' debugger prompt command, used to scroll the disassembly
to the given address (or there-abouts, if the address isn't valid).

Editing data in the disassembly now won't cause the display to jump to
the current PC.  The display will only move to the PC when it actually
changes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2123 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-05 17:57:21 +00:00
stephena 00d64f9f02 Further improvements to adding directives to the disassembler.
There was a bug in the linked list code causing directives to be added
incorrectly.  Also, merging is now done when possible instead of
creating new nodes.  This keeps the directive count as small as possible,
and also helps with memory (less allocations happening).

Fixed bug in printing the 'ORG' directive; it was being printed
before the bank was disassembled, so on the first run it was always 0.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2122 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-01 16:44:31 +00:00
stephena f8b2621ab5 Many big improvements to disassembler directives. Directives are no
longer simply added to a list, but intelligently 'merged' (so that
the entire range represented by all directives contains no overlap).
This makes the disassembly a little faster, since it doesn't have to
iterate redundantly.  Still TODO in this area is intelligent insertion
for the same type (ie, if inserting in between like blocks, the
blocks should coalesce, instead of being clipped and then a new range
inserted in between).

Added 'loadconfig' and 'saveconfig' debugger prompt commands, which
will eventually access Distella-like config files.  No implementation
is present yet.

Added 'listconfig' debugger command, which lists all directives
currently defined by the user, as well as the directives resulting
from a disassembly of a bank (taking into account extra knowledge
that Stella has WRT cached entry points).  This command can show
information for a specified bank, or all banks in the cart.

User-defined directives can now be removed; simply issue the same
command that caused an insertion (ie, attempting to insert the same
type and range will remove it instead).

Fixed bug in Distella processing of directives; similar to the
standalone Distella, directives should be processed *before* any
automatic code determination is done.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2121 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-31 16:37:27 +00:00
stephena e0dd8b1451 First pass at extending the disassembler to support CODE/DATA/GFX commands
from a Distella config file.  For now, the commands are only accessible
within the debugger prompt, and can only be added (no removal/editing).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2120 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-30 12:04:56 +00:00
stephena f742f67788 Optimized Distella in the case of 2K ROMs. Now only half the
address space is shown (either $F000 - $F7FF or $F800 - $FFFF).
This eliminates a lot of .byte directives that are invalid in
2K mode anyway, and speeds up the disassembly a little.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2113 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-23 12:07:09 +00:00
stephena b2ed949082 Some final changes for the 3.2 release, including documentation updates.
Added 'ramrandom' commmandline argument, used to toggle randomizing or
zeroing or all RAM in the system (both zero-page and SARA).

Disassembler now properly supports all test cases, including rewinding
within the debugger.

Added preliminary support for disassembling from zero-page RAM.

Bumped version # for final release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2100 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-19 21:48:28 +00:00
stephena d007c3502f Several big improvements to the debugger:
The disassembler now accepts a range of start addresses and remembers
old entry points, so the disassembly becomes more complete each time
the debugger is used.

Changes to address offsets within the same bank are now supported
(ie, changing from $fxxx to $dxxx within the same bank properly
updates the display).

Re-added ability to manually change banks from the debugger prompt
and the disassembly UI.  This now works correctly with the Distella
code.

Cleanup of the Cartridge::bank(...) API: if a bank cannot be changed,
the calling code will now know about it.  This fixes confusion with
some ROMs, whereby changing a bank in the debugger prompt would print
a success message even if the operation failed.

Note that these changes have broken rewind in the debugger.  Actually,
it only exposes problems that the rewind functionality already had :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2098 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-16 16:41:24 +00:00
stephena 4735feda13 Mostly completed support for showing .sym label information in the
disassembly output.  Still TODO is add some visual improvements
(ie, align the cycle counts to not take too much space, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2041 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-04 16:33:56 +00:00
stephena befafd5d62 Second pass at integrating .sym labels into disassembly output.
There's currently a problem in the internal code I have, so I need
to submit in pieces until it's tracked down.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2040 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-03 12:54:45 +00:00
stephena 88f7f656e6 First pass at integrating dasm '.sym' labels into the disassembly output.
For now, only the infrastructure is being modified.

Make disassembly output a little nicer by drawing a vertical line
separating disassembly text from the actual raw bytes.

Some changes to the SDL sound code initialization, which will (hopefully)
eventually lead to a fix for those users with ATI video drivers, and
not having sound after the first game has been played.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2039 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-03 12:41:49 +00:00
stephena 0c1029076c First pass at making Distella aware of labels defined in a .sym file
or from the user.  Before this is done, the parser needs to recognize
variable-length labels (right now, it used fixed spacing and assumes
the largest label is 8 characters).

Fixed bug in Distella; a label was being printed with an incorrect
quote symbol, which would break parsing of that line.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2038 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-05-12 00:04:14 +00:00
stephena b3a16fc0a5 Fixed another Distella bug wrt RELATIVE addressing. This fixes an
issue I noticed River Raid, where labels were being generated above
0x10000 (the maximum should be 0xFFFF).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2002 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-10 21:57:49 +00:00
stephena 2193c94b12 Updated boilerplate on top of each source file to include
'Stephen Anthony' (aka, me) in addition to Brad Mott as copyright
holders for Stella.  I think I've been with the project long
enough now (almost 10 years) to justify being specifically mentioned
above and beyond 'the Stella Team'.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2001 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-10 21:37:23 +00:00
stephena ea6ea9a7bd Renamed 'autocode' commandline argument and associated UI item
to 'resolvedata', since that more accurately describes what it does.
Also, it now accepts arguments as strings (never, always, auto)
instead of 0, 1, 2.

Updated main documentation for changes in OSX port 'basedir'.

Updated debugger documentation for recent command additions, and
provided new snapshots where the UI has changed.

It seems to be getting close to a new release - perhaps this
coming Friday.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1999 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-10 20:00:16 +00:00
stephena 56b6e74f04 Finally updated the Changelog, which should have been done way before
this.  That's the main problem with long delays between releases; I
forget exactly what's changed.

Fixed bug in Distella in handling relative addressing.  Wraparound
was potentially occuring on a 32-bit integer, which caused a crash
when accessing a 4K array.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1990 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-06 21:47:46 +00:00
stephena e536a9ee00 Some minor cleanups to the Distella class.
The debugger 'disasm' command now works again for addresses below
0x1000, and it also now correctly accepts the number of lines to
output in the disassembly.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1989 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-06 15:15:44 +00:00
stephena dc22bc6b04 Some cleanups to the RomListWidget. Long '.byte' lines no longer spill
over onto the opposite side of the screen.  Breakpoints set by clicking
in RomListWidget only apply if they've actually been enabled.  This
fixes a bug whereby a breakpoint could look like it is enabled when
it really isn't.  Related to this, breakpoints cannot be set for
disassembly lines that don't contain a valid address or an empty
bytes area (basically, empty lines and lines containing '.byte' items).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1970 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-22 17:24:08 +00:00
stephena 0ed4a9fa79 OK, I've finally gotten back to Stella development and fixing the
disassembler.  Hopefully this will lead to a new release very soon.

Added 'autocode' commandline argument and associated UI item (in the
RomWidget debugger area), which controls how Distella will use the
'automatic code determination' option.  If set to 0/never, this is
completely disabled.  If set to 1/always, it is always enabled.
The default is 2/automatic, whereby it is first turned on, and then
turned off if the disassembly doesn't contain the current PC address.

RomListWidget has now been completely reworked, so that it informs
RomWidget of its intent to change breakpoints and patch ROM.  If
either of these fail, the action won't be performed, and more
importantly, it won't appear onscreen as if the action has succeeded.
This fixes an old bug whereby patching could fail, yet the onscreen
ROM data was actually changed.  Related to this, the list has been
made as efficient as possible, and its contents are never un-necessarily
copied.  Also, lines in the disassembly that cannot be modified no
longer show an edit area.

Due to the way the new disassembly works, you can no longer switch between
banks in the RomWidget (Distella would probably fail to disassemble in
such as case).

EditTextWidget can now indicate its contents have changed when adding
text to it.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1966 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-18 16:36:12 +00:00
stephena 2cc0d60940 First pass at adding 'hints' to each Cart class that its bank has changed.
This is very useful for conditional re-disassembly, since many bankswitch
schemes consist of ROM only, and once disassembled, cannot possibly have
a different disassembly at some later point.  This is mostly done for such
static schemes (2K, 4K, etc), but more work is required for carts with
extended RAM.  Basically, the cart knows best how its been accessed, so
it makes sense to have the hints there.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1965 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-06 18:56:36 +00:00
stephena e0310e8f35 Checking in WIP for Distella integration. Moved the internal text
handling to C++ stringstreams instead of C-style character arrays,
which fixed some segfaults (sprintf is evil).

First pass at tying the number of banks to the disassembly.  The idea
is that the startup bank (which is now identified by the cart) always
starts at address at 0xfffc, while the other banks are defined by the
PC at the first time we enter the debugger.  This is still a WIP,
since there's no actual checking done yet to see if the current PC
is in the current disassembly.

Added 'ctrlcombo' commandline argument, which completely disables
checking for Control-x key combos.  This is useful when playing
2-player games where the 'f', 'r' and 'Control' keys are supposed
to be treated separately.  Previously, pressing Control and 'r' or
'f' processed some other action (change framerate, reload rom, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1964 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-05 22:02:12 +00:00
stephena 6de4e358e1 More changes to CartDebug. Labels read from a symbol list or defined on
the debugger commandline are now reflected in most parts of the debugger UI.
Still TODO is have DiStella use those labels in the disassembly, and deal
with the formatting issues this will entail.

Still completely broken are built-in functions, getting an equate address
based on label, and tab-completions.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1963 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-28 17:12:16 +00:00
stephena 0c6f564fa8 Fixed segfault where output from DiStella::disasm wasn't being parsed
correctly.  Disabled built-in functions until I get to that area of
code, since I'm tired of seeing an error message every time I test
new changes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1962 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-27 23:21:14 +00:00
stephena 8b22097cb6 Further improvements to read vs. write mode in the debugger for TIA
addresses.

Fixed a bug in processing accumulator-access opcodes in the debugger;
an uninitialized char array was causing a segfault.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1961 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-27 22:46:20 +00:00
stephena a150ece7ae Updated DiStella disassembly to differentiate between the intent of an
instruction (read vs. write) for those addresses that have different
meanings based on how they're accessed.  For now (and probably forever),
this only affects TIA addresses.

These ideas were ported from the old Stella disassembler.  Perhaps they
should be ported to distella as well, since it makes for more accurate
results.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1960 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-27 21:24:24 +00:00
stephena 67f53ceb6b ContextMenu dialog now properly works with scrolled content (both with
the mouse and the keyboard arrow keys).  Still TODO is change the scroll
placeholder text into something that looks a little nicer (perhaps a
graphic arrow or something).

Added output of field header names when using 'listrominfo'.  This makes
it very easy to see what each column actually represents.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1954 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-24 14:46:05 +00:00
stephena 691c9b2e1d Added support for the Sega Genesis gamepad controller. This
controller uses the directional pad and button 'B' as a normal
joystick, but can also use button 'C' as a second 2600 button
(with the logic reversed).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1950 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-23 14:49:12 +00:00
stephena 8ca34a4d90 Checking in WIP for DiStella integration. The disassembly is now shown in
the RomListWidget instead of being printed to the terminal.  There are still
graphical glitches with this, but for a first pass, it's nice to see actual
Distella output in Stella.

Partially working 'disasm' command from the PromptWidget.  Currently, it
only disassembles cart address space (aka, 0x1000 or above).

Removed the old disassembly code from CartDebug.  Still TODO is fix the
label stuff, both in getting DiStella to use it, and adding/removing
labels.  This is greatly reduced now that we only have to worry about
user labels.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1934 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-07 21:23:26 +00:00
stephena 03191759ab More DiStella cleanups; the disassembly now properly uses peek() and dpeek()
methods from Debugger directly.  As well, the start address is now passed
into DiStella::disassemble() directly; decision to start from the reset
vector is done outside DiStella.  This is in preparation for starting
the disassembly from any valid address.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1933 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-02 22:21:03 +00:00
stephena deedb04709 DiStella::disassemble is now called from RomWidget! Of course, the output
isn't actually sent to the UI yet (it's still printed to the console), but
at least the two parts of the code are now talking to each other.  Note
that the disassembly window in the debugger will be empty until I get this
changeover complete.  And with that, I'm not feeling well, so I'm taking
the rest of the night off.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1932 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-01 22:24:38 +00:00
stephena 91f1406ed4 Checking in WIP of converting DiStella to use the System class
from within Stella (vs. reading ROM data from a file).
Compilation is currently broken.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1931 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-01 20:00:50 +00:00
stephena 898d16b863 Further improvements to the DiStella class. The output is now properly
parsed into a DisassemblyList structure.  For now, this is just being
printed out again.  The next change will be to pass this to RomWidget
and have it displayed in the UI.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1929 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-31 19:41:57 +00:00
stephena 231958dbdf Checking in current progress of DiStella class. The code now directs all
output to a specified function instead of the console.  The formatting is
also in a very fixed format.  That makes the next part easier; parsing
the output into a DisassemblyList structure that Stella can deal with
and show in the RomWidget.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1928 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-31 02:07:19 +00:00
stephena 28114a8c51 OK, this is the first pass at a huge reorganization of the debugger
classes.  First off, the distella code has been integrated into a
DiStella class.  This code isn't yet tied to the debugger, but it does
at least compile and generate valid output.

The RamDebug class has been replaced by a CartDebug class, which
takes responsibility for the previous RamDebug stuff as well as 
things related to Cart address space (read from write ports,
disassembly, etc).

Fixed E7 bankswitching when reading from the write port in the upper
256byte area.

Fixed 'read from write port functionality' in general for all carts
that supported it previously.  Basically, if _rwport is enabled, the
address is checked to be an actual read (vs. one that's part of a
normal write cycle), *and* it's actually an illegal access (each
cart/bankswitch type now provides a hint to indicate this condition).

Still TODO is clean up the rework, properly integrate DiStella, and
fix labels and defines (which seem to be completely broken).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1922 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-17 16:48:45 +00:00