* Minor tidy
* Changes:
. semicolon now Comment EOL
. double fwd-slash now Divide floor
. (single fwd-slash unassigned)
* . fwd-slash now parsed in Range_GetPrefix()
. WIP: 'bp bank/addr'
* Add error msgs
* Extend Breakpoint_t struct
* Update cmd 'bpl' to support displaying prefixes
* Do prefix checks & output error msgs
* Add _CheckBreakpointValueWithPrefix()
. support bank, for BP_OP_EQUAL
Stop reason: include BP id
* WIP: fix BPs (non-BPM)
* Fix cmd 'bpr'
* Stop reason: don't show BP id for BP_HIT_REG (as it already includes it)
Add comment about nArgs from calling funcs
Refactor _CmdBreakpointAddCommonArg(): nArgs
* Stop reason for memory BP: show full prefixed address
* Stop reason: output BP id in consistenct way
* Support ROM prefix filter
* Complete addr prefix logic
* Improve logic
* BP: 'HDD DMA to/from memory' - use common hit id function
* Support rw bank 100
* Support double forward-slash at start of line as a comment
* Refactor: use debugger naming convention for vars
* Changed prefix errors from 'bad' to 'out-of-range'
* DebugInitialize(): Reset g_breakpointHitID
* Refactor: use debugger var naming convention & formatting style
* Switch divide-operator to the underscore char, and allow double-fslash as a comment anywhere on a line
* Update help for debugger calculator
* Update help for debugger breakpoints
* Update help for debugger breakpoints (conditional)
* Fix help:breakpoints.html & fix ArgsGetRegisterVlaue() to do case-insensitive compare
* Fix underscore to be treated as a alphanumeric in a few edge cases
* Revert to using '//' as divide operator
* Help: update debugger Breakpoints & Calculalor pages
* Help: update debugger Calculator (missed one)
* Detabify and align
* Display (1) or (2) prefix for LC1 or LC2 breakpoint
* #1419 Added Aux.1 and Aux.N indicators
* Display (1) or (2) suffix for LC1 or LC2 breakpoint
* Extend cmd 'bpl' to display BP's end addr
* Show both bank and slot together
* Fix spacing for BP with range
* Add: FG_INFO_BP_MEM, FG_INFO_MEM_WRITE, BG_INFO_MEM_BANK_LC, FG_INFO_MEM_BANK_LC colors
* Cleanup
* Add 3x5 mini hex numbers
* Mini hex font to have rounded 0,A,C glyphs
* Display 2 hex Bank now
* Support edge-case for bank 0x100
* Tidy up end red spacer
* Refactor & introduce new struct AddressPrefix_t
* Fix a few bugs:
. bpl: fix end addr
. fix for 'R' and 'W' not coloured for single-byte BPs (eg. bpmr 100)
---------
Co-authored-by: michaelangel007 <michaelangel007@sharedcraft.com>
Better support the IIe's aux slot when it's empty or has the 80-col(1KiB) card.
- any h/w using this alternate CPU emulation, (ie. aux=empty or 80-col(1KiB)), then the 'mem' cache is completely bypassed.
Debugger: change all the direct 'mem' accesses to go via ReadByteFromMemory().
TestCPU6502: test the alt CPU emulation code too.
* Debugger: add new flags to breakpoints.
Stop / no stop.
Hit count
Keep temp breakpoint alive so they can be inspected.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
* Debugger: ensure temporary breakpoints are removed when the execution restarts.
This code:
_BWZ_Clear(pBP, iBreakpoint);
was actually a bug since the function needs the root points of all breakpoints, not to a particular one.
* Breakpoints: some extra tweaks.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
* Remove reundant code and comment.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
* Breakpoints: coding standards.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
---------
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
When the debugger is active (eg. breakpoints enabled) then trap on HDD r/w's that match the BPM[R|W].
NB. the breakpoint will fire after the whole HDD r/w operation has completed.
Extend LBR so that it includes the control-flow on a taken interrupt
Add a new command 'brkint <0|1>' to support Break on Interrupt
Internal: in core emulation loop, moved IRQ/NMI check to start of loop so that just the "interrupt vectoring" case can be single-stepped (instead of previously opcode + interrupt vector).
Debugger help chm: update Breakpoints section to include BRK, BRKOP and BRKINT
This reduces the chances of incompatibility between gcc and vs.
99% is "const char *" literals.
1 case of a goto jumping over a variable declaration (but it is not needed).
Changes to ease code compilation in GCC.
Disk_t and HDD contain a std::string and for this reason they need a proper constructor, ZeroMemory is not guaranteed to work.
. ie: ESC, F7 and Pause key
Debugger: Fix for MODE_STEPPING when jump from $C3xx to $C8xx:
. Don't break on floating-bus, as Expansion ROM will be switched in on
this access.
IORead_Cxxx(): Fix the logic for IO_SELECT when not slot-3
. Improved break on FB or IO: account for slot empty (or not) & if expansion ROM enable
Memory:
. IORead_Cxxx(): Fix for Apple II support for when slot-3 is empty
. Apple II type was erroneously testing //e soft-switches
. Move the BRK and invalid opcodes checks out of main emulation's Fetch() and into DebugContinueStepping()
. Added a new break condition: when PC reads floating bus or I/O memory
. On a break condition, output a 'Stop Reason' message to the console
. Debug 'G(o)' cmd now defaults to normal speed (and precise video updates)
. New debug 'GG' cmd enables full speed (and periodic video updates)
. Single-stepping (normal or full speed) now routed through ContinueExecution()
. Removed Cpu6502()/Cpu65C02() check for debug breakpoints
. Removed the (undocumented) SHIFT+F7 feature to exit debugger for 'normal speed breakpoints'
. Removed the g_bDebugNormalSpeedBreakpoints variable