Phew, I sure seem to forget a lot of stuff today...
Attached is another fix (this time to make the
power button work).
PS Lorenzo, I've reproduced the strange
behavior of the breakpoints (that they work
only once), I'll have a look at it soon.
-- Ramon
diff -Nur freemware-old/user/plugins/bochs/io.cc freemware/user/plugins/bochs/io.cc
--- freemware-old/user/plugins/bochs/io.cc Mon Jan 10 00:05:53 2000
+++ freemware/user/plugins/bochs/io.cc Mon Jan 10 00:07:57 2000
@@ -51,6 +51,7 @@
extern char *ptr;
extern int abort_vm;
+extern int break_vm;
int
plugin_init(int argc, char *argv[])
@@ -133,6 +134,7 @@
vfprintf(stderr, fmt, ap);
va_end(ap);
+ break_vm = 1;
abort_vm = 1;
}
diff -Nur freemware-old/user/plugins/bochs/state_file.cc
freemware/user/plugins/bochs/state_file.cc
--- freemware-old/user/plugins/bochs/state_file.cc Mon Jan 10 00:05:53 2000
+++ freemware/user/plugins/bochs/state_file.cc Mon Jan 10 00:07:21 2000
@@ -25,6 +25,7 @@
#include "bochs.h"
extern "C" int abort_vm;
+extern "C" int break_vm;
@@ -37,72 +38,84 @@
void state_file::write(Bit8u)
{
fprintf(stderr, "bochs: # state_file::write(Bit8u)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::write(Bit16u)
{
fprintf(stderr, "bochs: # state_file::write(Bit16u)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::write(Bit32u)
{
fprintf(stderr, "bochs: # state_file::write(Bit32u)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::write(Bit64u)
{
fprintf(stderr, "bochs: # state_file::write(Bit64u)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::write(const void *, size_t)
{
fprintf(stderr, "bochs: # state_file::write(const void *, size_t)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::read(Bit8u &)
{
fprintf(stderr, "bochs: # state_file::read(uint8 &)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::read(Bit16u &)
{
fprintf(stderr, "bochs: # state_file::read(uint16 &)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::read(Bit32u &)
{
fprintf(stderr, "bochs: # state_file::read(uint32 &)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::read(Bit64u &)
{
fprintf(stderr, "bochs: # state_file::read(uint64 &)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::read(void *, size_t)
{
fprintf(stderr, "bochs: # state_file::read(void *, size_t)\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::write_check(const char *)
{
fprintf(stderr, "bochs: # state_file::write_check()\n");
+ break_vm = 1;
abort_vm = 1;
}
void state_file::read_check (const char *)
{
fprintf(stderr, "bochs: # state_file::read_check()\n");
+ break_vm = 1;
abort_vm = 1;
}