Some dependent packages on some platforms may also define HAVE_DLOPEN
and that definition may have different syntax or semantics. This change
avoids the potential symbol conflict.
As reported in #1098
- A prompt answer which exactly matches a topic name is given
preference over the potential ambiguity of other topics which start
with the same text.
- Prompt with the parent topic's prompt when a just displayed subtopic
has no subtopics.
- Allow either ^D or ^Z entered to act as EOF.
These changes reflect the behavior of the VMS help system which the
hierarchical help system is modeled on.
- Add column header to output of HELP device register list.
- Format HELP output for REGISTER, SET and SHOW commands to accommodate long
descriptor text (wrapping as needed).
- Add HELP DEVICE * to display help for all devices
Historically this functionality was reimplemented within each
DEVICE simulator often with slightly different implementations
and inconsistencies. Solving this globally within SCP required
changes in many places, but should henceforth be reasonably
managed.
As discussed in #1034
Some simulator reset routines may reference the RUN target PC value
while others may change the PC, so we set the PC value both before
and after any reset is performed.
As reported in #1020
The new REG_DEPOSIT register flag bit indicates that updates to a
REGister with this flag specified will invoke the sim_vm_reg_update
routine after the data has been updated.
Previously, the RUN command would gather and set the desired
PC start address, but then it would invoke the reset logic for all
DEVICEs. The CPU DEVICE's reset routine might reasonably
initialize the PC to a known state which would the overwrite
the PC specified on the RUN command. This change performs
the reset before setting the PC to the specified value (or it's
previous value if no PC was supplied on the RUN command).
New sim_video APIs have been added to make it possible for a simulator
to open multiple windows. Two slightly updated functions are:
t_stat vid_open_window (VID_DISPLAY **vptr, DEVICE *dptr, const char *title, uint32 width, uint32 height, int flags);
Like vid_open, but return a dynamically allocated VID_DISPLAY struct
and return it in *vptr.
t_stat vid_close_all (void);
Close all currently opened windows.
In addition, these new functions correspond completely to the old set
of sim_video functions, except the first argument is a VID_DISPLAY
pointer: vid_close_window, vid_map_rgb_window, vid_draw_window,
vid_refresh_window, vid_set_cursor_window, vid_show_video_window,
vid_is_fullscreen_window, vid_set_fullscreen_window,
vid_set_cursor_position_window.