crash in the mouse code. The particular problem was that init_done
was never initialized to zero, but it always turned out to be zero
on my system. This may explain why it worked for me but crashed
for him.
bochs debugger needed to be updated in the same way. Instead of
using "bx_options.rom.path" as a string, it's now
bx_options.rom.path->getptr () to get the value of the parameter.
data structures, see bx_init_options in main.cc. The implementation
of this menu and all its choices is 17 lines long, see do_mem_options_menu
in gui/control.cc.
now the whole "Bochs Memory Options" menu uses new style parameters.
The next step is to remove the hardcoded stuff that generates and runs
this menu, and replace it with general menu building code. All you should
need to create this menu is the string "Bochs Memory Options", and the
IDs of the bx_param_c options that should appear on the menu. The
bx_param_c structure for each parameter tell what type it is, how to
display it, constraints on the value, what to do when the parameter
changes.
declared as bx_param_c * types in the bx_options structure. They are
initialized in main.cc (bx_init_options) with default values.
Access to parameters of this type should always be like this:
bx_options.mouse_enabled->get ();
bx_options.mouse_enabled->set (newval);
Eventually I will be transferring all options to this format.
when main.cc no longer had one. Now compiling with debugger is working
with the control panel. To get the control panel, you have to click
the snapshot button, and to get the debugger, you have to press ^C.
These should be better integrated (maybe a control panel menu choice
that jumps into the debugger and a debugger command that starts the
runtime control panel...)
better name given what the options actually are.
- now runtime menu behaves more like the others: it updates its floppy
disk image, etc.
- add "ask" as a legal choice for log action
- now runtime menu has both ways of editing log options
a read-only disk image. For systems such as DOS that actually use the
BIOS services, it was also necessary to add code in int13_diskette_function
to recognize a write-protected error and return the correct error
status code (AH=3, Carry Set).
now floppy.cc no longer crashes if you try to open a write-protected
disk or read-only disk image. Instead, it tries a second time to
open the image read-only and only panics if this also fails. If the
image is opened read-only, a readonly flag is set
(bx_floppy.s.media[drive].read_only). If you try to write the floppy
when this flag is set, the write silently fails except for some messages
into the log. Instead of failing silently we should learn what the
floppy controller would really do in this situation and emulate it.