@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.