may not be able to add column labels because we need the vertical space
for buttons. Also, the ByteGrid is now drawn correctly.
Added initial infrastructure for a tab to reload itself, either on command
or when a new tab is selected.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@515 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
rather than the result of each command. This makes breakpoints a little
nicer (you see the state as soon as you hit the breakpoint).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@511 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
directly.
Updated M6502 classes to call Debugger::start when a breakpoint is hit.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@510 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
clears breakpoints, and the 6502 core emits a "hit breakpoint" message
to standard error when it sees a breakpoint. Still TODO is to figure out
how to enter the debugger from within the 6502 core! (Stephen?)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@509 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
color; this will have to change. This makes it much easier to navigate
with the keyboard, since it's now easy to see which widget you've tabbed to.
Added some copyright stuff to the debugger classes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@506 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Debugger, which gets used by both DebuggerParser and D6502, but
neither one keeps a pointer to it permanently.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@505 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Still TODO is somehow draw around the currently active widget,
to show which widget is actually active.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@504 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
CVS). This means you can now edit the contents of a ListWidget, and
do something with those new contents based on the signal that's emitted.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@499 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
is working except for changing values (but you can still use the RAM tab
to do that).
Basically, the rules are as follows:
1) Only works on decimal input for now.
2) Search with empty input returns all addresses (128 bytes).
3) Comparing a value after a search inspects the current result set
for the given value.
4) Compare can make use of 'comparitive' operators '+' and '-'. If
specified at the start of input, they search by offset.
Typical uses are as follows:
1) Search for a '3', then compare to a '2'. This finds the memory location
that at first contained 3, then later changed to 2 (maybe you lost a life or
something).
2) Search for all values (leave input blank), then compare to '-1'. This
finds all memory locations that have decreased by 1 (useful when you don't
know where to start).
I guess after this, Stella will officially be banned from hi-score contests :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@497 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the 'Tab' key, though.
Fixed Unicode issues whereby modifier keys couldn't be used as gaming keys.
Made the 'Left Control' key be one of the defaults for 'Player 1 Fire'. The
other two are 'Joystick 0, button 0' and 'Space' key.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@496 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
case-insensitively!
We look for labels *first*, so if there were a label "aa", it'd
be impossible to input the hex value "aa" (the label would take
precedence). This doesn't matter for now, since the labels are hard-coded
and none of them conflict with anything, but in the future we'll be
loading symbol files... even then, I don't think anyone's dumb enough
to create a label that looks like a hex value, but it could happen...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@495 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
perfect: it doesn't take into account the extra cycles added by things
like taking a branch or crossing a page boundary. However, it's still
somewhat useful and *dead* simple to implement this way.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@488 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
location for a certain value (ie, finding out which location holds # of lives).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@486 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
contained in the Debugger class methods, since they need to be accessible
from both the console and the GUI code.
Implemented console commands for dumping RAM (ram) and TIA (tia), and
implemented the console 'quit' command (it returns to emulation mode).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@484 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
The "trace" command is now implemented (though it doesn't skip over
JSR's like it's supposed to yet, so it does what "step" will do).
After each command, we now emit the values of all the CPU regs and a
disassembly of the next instruction, like gdb and good old DEBUG.COM do.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@483 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
moved. That means you can click on the arrows in a scrollbar, and keeping
the button pressed will keep clicking the arrows.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@480 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Dialog. This was necessary since it seems Dialogs can't contain other
dialogs in the GUI core.
Added keyboard navigation to the TabWidget class. For now, it's only
enabled for the Debugger. Ctrl-Tab/Shift-Ctrl-Tab switches to the
next/previous tab (respectively), and Tab/Shift-Tab switches to the
next/previous widget in the current tab.
There's still a bit of work to do, but the infrastructure is there.
That's it, I'm taking the night off, because this deceptively simple
concept has taken about a day to implement ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@479 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
to a TabWidget and PromptWidget, and it's going to take some time.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@478 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
command that works as yet is "quit", and it doesn't actually quit
anything :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@475 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
of the FrameBuffer (since fonts should only be created once, and the
FrameBuffer is deleted and re-created many times).
Added a default font to the Widget class, as well as a setFont() method.
So each widget can individually choose its own font.
Added a monospaced font. It's currently used only in the PromptDialog,
but due to the above changes, it can be used anywhere.
Tweaked some keys in the PromptDialog. Shift-(Home, End, PageUp, PageDown)
now control the scrollbar, and without shift, those keys control the current
line editing/navigation.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@473 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
of line (Ctrl-U) now works, as do shifted characters.
Still TODO is use a monospaced font for the debugger widgets, and
possibly add some new colors, etc.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@472 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Added typical Unix shell shortcut keys (still TODO is Ctrl-U)
Fixed delete action causing crashes
Made cursor redraw at the correct place
Still TODO: use Unicode to accurately represent keypresses onscreen.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@471 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
quite working correctly, but at least text appears when you type.
Changed the debugging TAB interface to use buttons instead. It seems
this is a deficiency in the ScummVM GUI code, and I don't really want
to figure out how to fix it. Of course, now the buttons have to be
embedded in each dialog box, somehow ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@469 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
passed to the emulation core. For example, when pressing 'Alt-Enter' to
toggle fullscreen mode while in the launcher, the 'Enter' was also starting
the selected ROM. Now all keys that are pressed with modifiers are
swallowed before they reach the core.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@468 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba