F2 reboots with debugger active if have breakpoints,

F7 can enter debugger from logo screen,
Ctrl-Shift-F9 Toggle 50% Scan Lines
This commit is contained in:
mpohoreski 2009-02-17 01:36:34 +00:00
parent 16ac36b947
commit 6f3668fbca

View File

@ -753,6 +753,12 @@ LRESULT CALLBACK FrameWndProc (
//bool bCtrlDown = (GetKeyState(VK_CONTROL) < 0) ? true : false; //bool bCtrlDown = (GetKeyState(VK_CONTROL) < 0) ? true : false;
//bool bShiftDown = (GetKeyState(VK_SHIFT ) < 0) ? true : false; //bool bShiftDown = (GetKeyState(VK_SHIFT ) < 0) ? true : false;
// F9 Next Video Mode
// ^F9 Next Char Set
// #F9 Prev Video Mode
// ^#F9 Toggle 50% Scan Lines
// @F9 -Can't use Alt-F9 as Alt is Open-Apple = Joystick Button #1
if ( g_bCtrlKey && !g_bShiftKey ) //CTRL+F9 if ( g_bCtrlKey && !g_bShiftKey ) //CTRL+F9
{ {
g_nCharsetType++; // Cycle through available charsets (Ctrl + F9) g_nCharsetType++; // Cycle through available charsets (Ctrl + F9)
@ -762,12 +768,12 @@ LRESULT CALLBACK FrameWndProc (
} }
} }
else // Cycle through available video modes else // Cycle through available video modes
if ( g_bAltKey ) // g_bCtrlKey && g_bShiftKey ) // ALT+F9 if ( g_bCtrlKey && g_bShiftKey ) // ALT+F9
{ {
g_uHalfScanLines = !g_uHalfScanLines; g_uHalfScanLines = !g_uHalfScanLines;
} }
else else
if ( !g_bShiftKey ) // Backwards??? Drop Down Combo Box is in correct order if ( !g_bShiftKey ) // Drop Down Combo Box is in correct order
{ {
g_eVideoType++; g_eVideoType++;
if (g_eVideoType >= VT_NUM_MODES) if (g_eVideoType >= VT_NUM_MODES)
@ -1281,13 +1287,31 @@ void ProcessButtonClick (int button) {
break; break;
case BTN_RUN: case BTN_RUN:
if (g_nAppMode == MODE_LOGO) if (g_nAppMode == MODE_LOGO)
DiskBoot(); {
else if (g_nAppMode == MODE_RUNNING) DiskBoot();
ResetMachineState(); g_nAppMode = MODE_RUNNING;
if ((g_nAppMode == MODE_DEBUG) || (g_nAppMode == MODE_STEPPING)) }
DebugEnd(); else
g_nAppMode = MODE_RUNNING; if (g_nAppMode == MODE_RUNNING)
{
ResetMachineState();
g_nAppMode = MODE_RUNNING;
}
if ((g_nAppMode == MODE_DEBUG) || (g_nAppMode == MODE_STEPPING))
{
// If any breakpoints active,
if (g_nBreakpoints)
{
// switch to MODE_STEPPING
CmdGo( 0 );
}
else
{
DebugEnd();
g_nAppMode = MODE_RUNNING;
}
}
DrawStatusArea((HDC)0,DRAW_TITLE); DrawStatusArea((HDC)0,DRAW_TITLE);
VideoRedrawScreen(); VideoRedrawScreen();
g_bResetTiming = true; g_bResetTiming = true;
@ -1316,7 +1340,10 @@ void ProcessButtonClick (int button) {
{ {
ResetMachineState(); ResetMachineState();
} }
else // bugfix: can't enter debugger into machine is actually running
// bug/feature: allow F7 to enter debugger even though emulator isn't "running"
//else
if (g_nAppMode == MODE_STEPPING) if (g_nAppMode == MODE_STEPPING)
{ {
DebuggerInputConsoleChar( DEBUG_EXIT_KEY ); DebuggerInputConsoleChar( DEBUG_EXIT_KEY );
@ -1675,6 +1702,12 @@ HDC FrameGetVideoDC (LPBYTE *pAddr_, LONG *pPitch_)
{ {
g_pDDPrimarySurface->Restore(); g_pDDPrimarySurface->Restore();
g_pDDPrimarySurface->Lock(&rect,&surfacedesc,DDLOCK_WAIT,NULL); g_pDDPrimarySurface->Lock(&rect,&surfacedesc,DDLOCK_WAIT,NULL);
// DD Full Screen Palette
// if (g_pDDPal)
// {
// g_pDDPrimarySurface->SetPalette(g_pDDPal); // this sets the palette for the primary surface
// }
} }
*pAddr_ = (LPBYTE)surfacedesc.lpSurface+(VIEWPORTCY-1)*surfacedesc.lPitch; *pAddr_ = (LPBYTE)surfacedesc.lpSurface+(VIEWPORTCY-1)*surfacedesc.lPitch;
*pPitch_ = -surfacedesc.lPitch; *pPitch_ = -surfacedesc.lPitch;