summaryrefslogtreecommitdiffhomepage
path: root/doc/mdk_gmixvm.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/mdk_gmixvm.texi')
-rw-r--r--doc/mdk_gmixvm.texi118
1 files changed, 118 insertions, 0 deletions
diff --git a/doc/mdk_gmixvm.texi b/doc/mdk_gmixvm.texi
new file mode 100644
index 0000000..f3ed33b
--- /dev/null
+++ b/doc/mdk_gmixvm.texi
@@ -0,0 +1,118 @@
+@node gmixvm, mixasm, mixvm, Top
+@comment node-name, next, previous, up
+@chapter gmixvm
+@cindex @code{gmixvm}
+@cindex GUI
+@cindex GTK+
+
+@menu
+* Invoking @code{gmixvm}:: Invoking the GTK+ interface.
+* MIX virtual machine:: The MIX virtual machine window.
+* Menu and status bars:: Available menu commands.
+@end menu
+
+@node Invoking @code{gmixvm}, MIX virtual machine, gmixvm, gmixvm
+@comment node-name, next, previous, up
+@section Invoking @code{gmixvm}
+
+If you have built @sc{mdk} with GTK+ support (@pxref{Installing MDK}), a
+graphical front-end for the MIX virtual machine will be available in
+your system. You can invoke it by typing
+
+@example
+gmixvm @kbd{RET}
+@end example
+
+@noindent
+at your command prompt. The @code{gmixvm} main window will appear,
+offering you a graphical interface to run and debug your MIX programs.
+
+@image{ss_mix}
+
+Apart from the menu and status bars, we can distinguish two zones (or
+halves) in this main window. In the upper half of @code{gmixvm}'s main
+window there is a notebook with three pages, namely,
+
+@itemize
+@item
+a MIX virtual machine view, which shows you the registers, flags, memory
+contents and time statistics of the virtual machine;
+@item
+a MIXAL source view, which shows the MIXAL file and lets you manage
+breakpoints;
+@item
+a Devices view, which shows you the output to character based MIX block
+devices.
+@end itemize
+
+@noindent
+On the other hand, the main window's lower half presents you a
+@code{mixvm} command prompt and a logging area where results of the
+issued commands are presented.
+
+The following sections describe the above mentioned components of
+@code{gmixvm}.
+
+@node MIX virtual machine, Menu and status bars, Invoking @code{gmixvm}, gmixvm
+@comment node-name, next, previous, up
+@section MIX virtual machine
+
+The first notebook's page displays the current status of the virtual
+machine. There you can find the registers' contents, the value of the
+comparison and overflow flags, the location pointer, a list with all MIX
+memory cells and their contents, and the time statistics (including
+total uptime, elapsed time since the last run command and total
+execution time for the currently loaded MIX program).
+
+Clicking any register entry, you will be prompted for a new register's
+contents
+@ifnotinfo
+(as shown in the next figure).
+@image{ss_worddlg}
+@end ifnotinfo
+
+In the same manner, click on any address of the memory cells list to be
+prompted for the new contents of the clicked cell. If you click the
+address column's title, a dialog asking you for a memory address will
+appear; if you introduce a valid address, this will be the first cell
+displayed in the scrollable list after you click the OK button.
+
+
+@node Menu and status bars, , MIX virtual machine, gmixvm
+@comment node-name, next, previous, up
+@section Menu and status bars
+
+The menu bar gives you access to the following commands:
+
+@deffn File Load...
+Opens a file dialog that lets you specify a binary MIX file to be loaded
+in the virtual machine's memory. It is equivalent to the @code{mixvm}'s
+@code{load} command (@pxref{File commands}).
+@end deffn
+
+@deffn File Exit
+Exits the application.
+@end deffn
+
+@deffn Debug Run
+Runs the currently loaded MIX program, up to the next breakpoint. It is
+equivalent to the @code{mixvm}'s @code{run} command (@pxref{Debug
+commands}).
+@end deffn
+
+@deffn Debug Next
+Executes the next MIX instruction. It is equivalent to the
+@code{mixvm}'s @code{next} command (@pxref{Debug commands}).
+@end deffn
+
+@deffn Debug Clear breakpoints
+Clears all currently set breakpoints. It is equivalent to the
+@code{mixvm}'s @code{cabp} command.
+@end deffn
+
+@deffn Help About...
+Shows information about @code{gmixvm}'s version and copyright.
+@end deffn
+
+On the other hand, the status bar displays the name of the last loaded
+MIX file.