summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2012-01-26 10:28:50 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2012-01-26 10:28:50 +0000
commit960b0edc7523f5266bf8469d260a28ca761e127a (patch)
tree1cd3813e904b511483f4ddcf7ccfbc20f97b7701
parent7c58c635f040320ac82576687871013d015b14b8 (diff)
Sync with MESS, including OG's fix for exiting with debugger active (no whatsnew)
-rw-r--r--src/emu/cpu/m6502/m4510.c6
-rw-r--r--src/emu/debug/debugcmd.c5
-rw-r--r--src/emu/debug/debugcpu.c4
-rw-r--r--src/emu/imagedev/flopdrv.c8
-rw-r--r--src/emu/video/pc_vga.c3
5 files changed, 15 insertions, 11 deletions
diff --git a/src/emu/cpu/m6502/m4510.c b/src/emu/cpu/m6502/m4510.c
index c59207d260e..4e824ccb188 100644
--- a/src/emu/cpu/m6502/m4510.c
+++ b/src/emu/cpu/m6502/m4510.c
@@ -221,8 +221,10 @@ static CPU_INIT( m4510 )
}
else
{
- devcb_write8 nullcb = DEVCB_NULL;
- cpustate->out_port_func.resolve(nullcb, *device);
+ devcb_read8 nullrcb = DEVCB_NULL;
+ devcb_write8 nullwcb = DEVCB_NULL;
+ cpustate->in_port_func.resolve(nullrcb, *device);
+ cpustate->out_port_func.resolve(nullwcb, *device);
}
}
diff --git a/src/emu/debug/debugcmd.c b/src/emu/debug/debugcmd.c
index 4711418c06d..5bba55c55d3 100644
--- a/src/emu/debug/debugcmd.c
+++ b/src/emu/debug/debugcmd.c
@@ -390,11 +390,6 @@ void debug_command_init(running_machine &machine)
static void debug_command_exit(running_machine &machine)
{
- /* turn off all traces */
- device_iterator iter(machine.root_device());
- for (device_t *device = iter.first(); device != NULL; device = iter.next())
- device->debug()->trace(NULL, 0, NULL);
-
if (cheat.length)
auto_free(machine, cheat.cheatmap);
}
diff --git a/src/emu/debug/debugcpu.c b/src/emu/debug/debugcpu.c
index 9e46112abf6..e87eaec0c02 100644
--- a/src/emu/debug/debugcpu.c
+++ b/src/emu/debug/debugcpu.c
@@ -1674,6 +1674,8 @@ device_debug::device_debug(device_t &device)
memset(m_pc_history, 0, sizeof(m_pc_history));
memset(m_wplist, 0, sizeof(m_wplist));
+ m_comment_change = 0;
+
// find out which interfaces we have to work with
device.interface(m_exec);
device.interface(m_memory);
@@ -1726,6 +1728,8 @@ device_debug::device_debug(device_t &device)
device_debug::~device_debug()
{
+ auto_free(m_device.machine(), m_trace);
+
// free breakpoints and watchpoints
breakpoint_clear_all();
watchpoint_clear_all();
diff --git a/src/emu/imagedev/flopdrv.c b/src/emu/imagedev/flopdrv.c
index 8cfa30174f0..72c4998da05 100644
--- a/src/emu/imagedev/flopdrv.c
+++ b/src/emu/imagedev/flopdrv.c
@@ -750,10 +750,10 @@ device_t *floppy_get_device_by_type(running_machine &machine,int ftype,int drive
int floppy_get_drive(device_t *image)
{
int drive =0;
- if (strcmp(image->tag(), FLOPPY_0) == 0) drive = 0;
- if (strcmp(image->tag(), FLOPPY_1) == 0) drive = 1;
- if (strcmp(image->tag(), FLOPPY_2) == 0) drive = 2;
- if (strcmp(image->tag(), FLOPPY_3) == 0) drive = 3;
+ if (strcmp(image->tag(), ":" FLOPPY_0) == 0) drive = 0;
+ if (strcmp(image->tag(), ":" FLOPPY_1) == 0) drive = 1;
+ if (strcmp(image->tag(), ":" FLOPPY_2) == 0) drive = 2;
+ if (strcmp(image->tag(), ":" FLOPPY_3) == 0) drive = 3;
return drive;
}
diff --git a/src/emu/video/pc_vga.c b/src/emu/video/pc_vga.c
index 0873bfd16f5..9e9cc13d11a 100644
--- a/src/emu/video/pc_vga.c
+++ b/src/emu/video/pc_vga.c
@@ -206,6 +206,9 @@ static VIDEO_RESET( vga );
void pc_video_start(running_machine &machine)
{
// ...
+
+ // Avoid an infinite loop when displaying. 0 is not possible anyway.
+ vga.crtc.maximum_scan_line = 1;
}
static void vga_vh_text(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect)