diff options
-rw-r--r-- | doc/mdk.texi | 43 | ||||
-rw-r--r-- | doc/mdk_bugs.texi | 2 | ||||
-rw-r--r-- | doc/mdk_copying.texi | 2 | ||||
-rw-r--r-- | doc/mdk_emixvm.texi | 2 | ||||
-rw-r--r-- | doc/mdk_findex.texi | 11 | ||||
-rw-r--r-- | doc/mdk_gmixvm.texi | 8 | ||||
-rw-r--r-- | doc/mdk_gstart.texi | 239 | ||||
-rw-r--r-- | doc/mdk_index.texi | 8 | ||||
-rw-r--r-- | doc/mdk_install.texi | 47 | ||||
-rw-r--r-- | doc/mdk_intro.texi | 5 | ||||
-rw-r--r-- | doc/mdk_mixasm.texi | 4 | ||||
-rw-r--r-- | doc/mdk_mixvm.texi | 4 | ||||
-rw-r--r-- | doc/mdk_tut.texi | 4 |
13 files changed, 320 insertions, 59 deletions
diff --git a/doc/mdk.texi b/doc/mdk.texi index 3a6c238..6999267 100644 --- a/doc/mdk.texi +++ b/doc/mdk.texi @@ -12,9 +12,9 @@ @end direntry -@set UPDATED 9 June 2001 -@set EDITION 0.4 -@set VERSION 0.4 +@set UPDATED September 10th, 2001 +@set EDITION 0.5 +@set VERSION 0.5 @set JAO Jose Antonio Ortega Ruiz @set PHILIP Philip E. King @footnotestyle separate @@ -67,12 +67,12 @@ Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided also that the -sections entitled ``Copying'' and ``GNU General Public License'' are -included exactly as in the original, and provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. +Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, +Version 1.1 or any later version published by the Free Software +Foundation; with no Invariant Sections, no Front-Cover Texts and +no Back-Cover Texts. A copy of the license is included in the +section entitled "GNU Free Documentation License". Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, @@ -111,7 +111,15 @@ helpful discussions, as well as actual code (@pxref{mixvm.el}). * mixasm:: Invoking the MIXAL assembler. * Problems:: Reporting bugs. * Copying:: @sc{mdk} licensing terms. +* Acknowledgments:: * Concept Index:: Index of concepts. +* Instructions and commands:: Index of MIXAL instructions and MIXVM commands. + + + + + + @@ -176,7 +184,9 @@ Getting started * Writing a source file:: A sample MIXAL source file. * Compiling:: Using @code{mixasm} to compile source files into binary format. -* Running the program:: Running and debugging your program. +* Running the program:: Running and debugging your programs. +* Using mixguile:: Using the Scheme interpreter to run and + debug your programs. Running the program @@ -184,6 +194,12 @@ Running the program * Interactive mode:: Running programs interactively. * Debugging:: Commands for debugging your programs. +Using @code{mixguile} + +* The mixguile shell:: +* Additional functions:: +* Defining new functions:: + @code{mixvm}, the MIX computer simulator * Invocation:: Options when invoking @code{mixvm}. @@ -227,12 +243,13 @@ Copying @include mdk_gmixvm.texi @include mdk_mixasm.texi @include mdk_bugs.texi -@c @include gpl.texi -@c @include fdl.texi @include mdk_copying.texi +@include mdk_ack.texi @include mdk_index.texi - +@include mdk_findex.texi @shortcontents @contents @bye + +$Id: mdk.texi,v 1.13 2001/09/13 00:13:39 jao Exp $ diff --git a/doc/mdk_bugs.texi b/doc/mdk_bugs.texi index 990e595..65ceb1a 100644 --- a/doc/mdk_bugs.texi +++ b/doc/mdk_bugs.texi @@ -4,6 +4,8 @@ @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. +@c $Id: mdk_bugs.texi,v 1.3 2001/09/13 00:13:39 jao Exp $ + @node Problems, Copying, mixasm, Top @chapter Reporting Bugs @cindex bugs diff --git a/doc/mdk_copying.texi b/doc/mdk_copying.texi index bbcd225..bfb6b34 100644 --- a/doc/mdk_copying.texi +++ b/doc/mdk_copying.texi @@ -1,4 +1,4 @@ -@node Copying, Concept Index, Problems, Top +@node Copying, Acknowledgments, Problems, Top @appendix Copying @menu diff --git a/doc/mdk_emixvm.texi b/doc/mdk_emixvm.texi index 6a6efb4..111e9de 100644 --- a/doc/mdk_emixvm.texi +++ b/doc/mdk_emixvm.texi @@ -4,6 +4,8 @@ @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. +@c $Id: mdk_emixvm.texi,v 1.3 2001/09/13 00:13:39 jao Exp $ + @node mixvm.el, mixvm, Getting started, Top @comment node-name, next, previous, up @chapter mixvm.el diff --git a/doc/mdk_findex.texi b/doc/mdk_findex.texi new file mode 100644 index 0000000..64ac31b --- /dev/null +++ b/doc/mdk_findex.texi @@ -0,0 +1,11 @@ +@c -*-texinfo-*- +@c This is part of the GNU MDK Reference Manual. +@c Copyright (C) 2000, 2001 +@c Free Software Foundation, Inc. +@c See the file mdk.texi for copying conditions. + +@c $Id: mdk_findex.texi,v 1.1 2001/09/13 00:13:39 jao Exp $ + +@node Instructions and commands, , Concept Index, Top +@unnumbered Instructions and commands +@printindex fn diff --git a/doc/mdk_gmixvm.texi b/doc/mdk_gmixvm.texi index 153550e..b5823bb 100644 --- a/doc/mdk_gmixvm.texi +++ b/doc/mdk_gmixvm.texi @@ -4,7 +4,7 @@ @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. -@c $Id: mdk_gmixvm.texi,v 1.11 2001/09/10 20:35:03 jao Exp $ +@c $Id: mdk_gmixvm.texi,v 1.12 2001/09/13 00:13:39 jao Exp $ @node gmixvm, mixasm, mixvm, Top @comment node-name, next, previous, up @@ -271,7 +271,7 @@ using the menu entry @code{@w{Settings->External programs}}, or using the Exits the application. @end deffn -@deffn View Toolbar(s) +@deffn View @w{Toolbar(s)} Toggles the toolbar(s) in the @code{gmixvm} window(s) (in split mode there are multiple windows and, hence, multiple toolbars). @end deffn @@ -286,8 +286,8 @@ and let you turn on/off the visibility of the corresponding @end deffn -@deffn View Split windows -@deffn View One window +@deffn View @w{Split windows} +@deffnx View @w{One window} Change the mode between one and split windows. diff --git a/doc/mdk_gstart.texi b/doc/mdk_gstart.texi index 70ded05..b35fea7 100644 --- a/doc/mdk_gstart.texi +++ b/doc/mdk_gstart.texi @@ -4,9 +4,11 @@ @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. +@c $Id: mdk_gstart.texi,v 1.6 2001/09/13 00:13:39 jao Exp $ + @node Getting started, mixvm.el, MIX and MIXAL tutorial, Top -@comment node-name, next, previous, up @chapter Getting started +@cindex tutorial In this chapter, you will find a sample code-compile-run-debug session using the @sc{mdk} utilities. Familiarity with the MIX mythical computer @@ -17,14 +19,16 @@ assumed; for a compact reminder, see @ref{MIX and MIXAL tutorial}. * Writing a source file:: A sample MIXAL source file. * Compiling:: Using @code{mixasm} to compile source files into binary format. -* Running the program:: Running and debugging your program. +* Running the program:: Running and debugging your programs. +* Using mixguile:: Using the Scheme interpreter to run and + debug your programs. @end menu @node Writing a source file, Compiling, Getting started, Getting started -@comment node-name, next, previous, up @section Writing a source file @cindex MIXAL @cindex source file +@cindex .mixal file MIXAL programs can be written as ASCII files with your editor of choice. Here you have the mandatory @emph{hello world} as written in the MIXAL @@ -87,10 +91,9 @@ blanks}. The workings of this sample program should be straightforward if you are familiar with MIXAL. See TAOCP vol. 1 for a thorought definition or -@ref{MIX and MIXAL tutorial}, for a quick tutorial. +@ref{MIX and MIXAL tutorial}, for a tutorial. @node Compiling, Running the program, Writing a source file, Getting started -@comment node-name, next, previous, up @section Compiling @cindex compiling @cindex binary programs @@ -98,18 +101,20 @@ familiar with MIXAL. See TAOCP vol. 1 for a thorought definition or @cindex assembler @cindex @code{mixasm} -A simulator of the MIX computer, called @code{mixvm} (MIX virtual -machine) is included in the @sc{mdk} tools. It is able to run binary -files containing MIX instructions written in their binary +Three simulators of the MIX computer, called @code{mixvm}, @code{gmixvm} +and @code{mixguile}, are included in the @sc{mdk} tools. They are able to +run binary files containing MIX instructions written in their binary representation. You can translate MIXAL source files into this binary form using @code{mixasm}, the MIXAL assembler. So, in order to compile -the @file{hello.mixal} file, you can type the following -command at your shell prompt: +the @file{hello.mixal} file, you can type the following command at your +shell prompt: @example mixasm -g hello @key{RET} @end example +@cindex .mix file + If the source file contains no errors, this will produce a binary file called @file{hello.mix} which can be loaded and run by the MIX virtual machine. The @code{-g} flag tells the assembler to include debug @@ -118,18 +123,34 @@ the compilation options, see @ref{mixasm}.) Now, your are ready to run your first MIX program, as described in the following section. -@node Running the program, , Compiling, Getting started -@comment node-name, next, previous, up +@node Running the program, Using mixguile, Compiling, Getting started @section Running the program @cindex @code{mixvm} @cindex non-interactive mode @cindex interactive mode MIX is a mythical computer, so it is no use ordering it from your -favorite hardware provider. @sc{mdk} provides a software simulator of -the computer, though. It is called @code{mixvm}, which stands for -@dfn{MIX virtual machine}. Using it, you can run your MIXAL programs, -after compiling them with @code{mixasm} into binary @file{.mix} +favorite hardware provider. @sc{mdk} provides three software simulators of +the computer, though. They are + +@itemize @bullet +@item +@code{mixvm}, a command line oriented simulator, +@item +@code{gmixvm}, a GTK based graphical interface to @code{mixvm}, and +@item +@code{mixguile}, a Guile shell with a built-in MIX simulator. +@end itemize + +All three simulators accept the same set of user commands, but offer a +different user interface, as noted above. In this section we shall +describe some of these commands, and show you how to use them from +@code{mixvm}'s command line. You can use them as well at @code{gmixvm}'s +command prompt (@pxref{gmixvm}), or using the built-in Scheme primitives +of @code{mixguile} (@pxref{Using mixguile}). + +Using the MIX simulators, you can run your MIXAL programs, after +compiling them with @code{mixasm} into binary @file{.mix} files. @code{mixvm} can be used either in @dfn{interactive} or @dfn{non-interactive} mode. In the second case, @code{mixvm} will load your program into memory, execute it (producing any output due to MIXAL @@ -242,6 +263,7 @@ all utilities using this library (for a complete description of readline's line editing usage, see @ref{Command Line Editing,,,Readline}.) +@cindex @code{load} Usually, the first thing you will want to do is loading a compiled MIX program into memory. This is acomplished by the @code{load} command, which takes as an argument the name of the @file{.mix} file to be @@ -258,12 +280,14 @@ and set the program counter to the address of the first instruction. You can obtain the contents of the program counter using the command @code{pc}: +@cindex @code{pc} @example MIX > pc Current address: 3000 MIX > @end example +@cindex @code{run} After loading it, you are ready to run the program, using, as you surely have guessed, the @code{run} command: @@ -294,6 +318,7 @@ Current address: 3002 MIX > @end example +@cindex @code{pmem} @noindent You can check the contents of a memory cell giving its address as an argument of the command @code{pmem}, like this @@ -320,6 +345,7 @@ MIX > pmem 3000-3006 MIX > @end example +@cindex @code{preg} @noindent In a similar manner, you can look at the contents of the MIX registers and flags. For instance, to ask for the contents of the A register you @@ -331,6 +357,7 @@ rA: + 00 00 00 00 00 (0000000000) MIX > @end example +@cindex @code{help} @noindent Use the comand @code{help} to obtain a list of all available commands, and @code{help COMMAND} for help on a specific command, e.g. @@ -350,6 +377,7 @@ over commands useful for debugging your programs. @comment node-name, next, previous, up @subsection Debugging commands +@cindex @code{next} The interactive mode of @code{mixvm} lets you step by step execution of programs as well as breakpoint setting. Use @code{next} to step through the program, running its instructions one by one. To run our @@ -383,6 +411,9 @@ MIX > @end example (As an aside, the above sample also shows how the virtual machine handles cummulative time statistics and automatic program restart). +@cindex @code{sbpa} +@cindex breakpoints + You can set a breakpoint at a given address using the command @code{sbpa} (set breakpoint at address). When a breakpoint is set, @code{run} will stop before executing the instruction at the given @@ -404,6 +435,8 @@ Elapsed time: 10 /Total program time: 11 (Total uptime: 33) MIX > @end example +@cindex @code{sbp} +@cindex breakpoints @noindent Note that, since we compiled @file{hello.mixal} with debug info enabled (the @code{-g} flag of @code{mixasm}), the virtual machine is able to @@ -429,6 +462,7 @@ execution whenever a register, a memory cell, the comparison flag or the overflow toggle change using the commands @w{@code{sbp[rmco]}} (@pxref{Debug commands}). +@cindex @code{psym} MIXAL lets you define symbolic constants, either using the @code{EQU} pseudoinstruction or starting an instruction line with a label (which assigns to the label the value of the current memory address). Each @@ -444,8 +478,179 @@ MSG: 3002 MIX > @end example -Other useful commands for debugging are @code{tracing} (which turns on +Other useful commands for debugging are @code{strace} (which turns on tracing of executed intructions), @code{pbt} (which prints a backtrace of executed instructions) and @code{weval} (which evaluates w-expressions on the fly). For a complete description of all available MIX commands, @xref{mixvm}. + +@node Using mixguile, , Running the program, Getting started +@section Using @code{mixguile} + +With @code{mixguile} you can run a MIX simulator embedded in a Guile +shell, that is, using Scheme functions and programs. As with +@code{mixvm}, @code{mixguile} can be run both in interactive and +non-interactive modes. The following subsections provide a quick tour on +using this MIX emulator. + +@menu +* The mixguile shell:: +* Additional functions:: +* Defining new functions:: +@end menu + +@node The mixguile shell, Additional functions, Using mixguile, Using mixguile +@subsection The @code{mixguile} shell +@cindex Scheme +@cindex @code{mixguile} +@cindex REPL + +If you simply type + +@example +mixguile @key{RET} +@end example +@noindent +at the command prompt, you'll be presented a Guile shell prompt like +this + +@example +guile> +@end example +@noindent +At this point, you have entered a Scheme read-eval-print loop (REPL) +which offers you all the Guile functionality plus a new set of built-in +procedures to execute and debug MIX programs. Each of the @code{mixvm} +commands described in the previous sections (and in @pxref{mixvm}) have +a Scheme function counterpart named after it by prepending the prefix +@code{mix-} to its name. Thus, to load our hello world program, you can +simply enter + +@example +guile> (mix-load "hello") +Program loaded. Start address: 3000 +guile> +@end example +@noindent +and run it using @code{mix-run}: + +@example +guile> (mix-run) +Running ... +MIXAL HELLO WORLD +... done +Elapsed time: 11 /Total program time: 11 (Total uptime: 11) +guile> +@end example +@noindent +In the same way, you can execute it step by step using the Scheme +function @code{mix-next} or set a breakpoint: + +@example +guile> (mix-sbp 4) +Breakpoint set at line 5 +guile> +@end example +@noindent +or, if you one to peek at a register contents: + +@example +guile> (mix-preg 'A) +rA: + 00 00 00 00 00 (0000000000) +guile> +@end example + +You get the idea: you have at your disposal all the @code{mixvm} and +@code{gmixvm} commands by means of @code{mix-} functions. But, in case +you are wondering, this is only the beginning. You also have at your +disposal a whole Scheme interpreter, and you can, for instance, define +new functions combining the @code{mix-} and all other Scheme +primitives. In the next sections, you'll find examples of how to take +advantage of the Guile interpreter. + +@node Additional functions, Defining new functions, The mixguile shell, Using mixguile +@subsection Additional MIX Scheme functions + +@node Defining new functions, , Additional functions, Using mixguile +@subsection Definining new functions +@cindex Scheme functions + +Scheme is a powerful language, and you can use it inside @code{mixguile} +to easily extend the MIX interpreter's capabilities. For example, you +can easily define a function that loads a file, prints its name, +executes it and, finally, shows the registers contents, all in one shot: + +@example +guile> (define my-load-and-run @key{RET} + (lambda (file) @key{RET} + (mix-load file) @key{RET} + (display "File loaded: ") @key{RET} + (mix-pprog) @key{RET} + (mix-run) @key{RET} + (mix-preg))) @key{RET} +guile> +@end example +@noindent +and use it to run your programs: + +@example +guile> (my-load-and-run "hello") +Program loaded. Start address: 3000 +File loaded: hello.mix +Running ... +MIXAL HELLO WORLD +... done +Elapsed time: 11 /Total program time: 11 (Total uptime: 33) +rA: + 00 00 00 00 00 (0000000000) +rX: + 00 00 00 00 00 (0000000000) +rJ: + 00 00 (0000) +rI1: + 00 00 (0000) rI2: + 00 00 (0000) +rI3: + 00 00 (0000) rI4: + 00 00 (0000) +rI5: + 00 00 (0000) rI6: + 00 00 (0000) +guile> +@end example + + +Or, maybe, you want a function which sets a breakpoint at a specified +line number before executing it: + +@example +guile> (define my-load-and-run-with-bp + (lambda (file line) + (mix-load file) + (mix-sbp line) + (mix-run))) +guile> (my-load-and-run-with-bp "samples/primes" 10) +Program loaded. Start address: 3000 +Breakpoint set at line 10 +Running ... +... stopped: breakpoint at line 10 (address 3001) +Elapsed time: 1 /Total program time: 1 (Total uptime: 45) +guile> +@end example + +As you can see, the possibilities are virtually unlimited. Of course, +you don't need to type a function definition each time you start +@code{mixguile}. You can write it in a file, and load it using Scheme's +@code{load} function. For instance, you can create a file named, say, +@file{functions.scm} with the contents: + +@example +(define my-load-and-run-with-bp + (lambda (file line) + (mix-load file) + (mix-sbp line) + (mix-run))) +@end example + +and load it at the @code{mixguile} prompt: + +@example +guile> (load "functions.scm") +@end example + + + +As a third example, the following function loads a program, runs it and +prints the contents of the memory between the program's start and end +addresses: diff --git a/doc/mdk_index.texi b/doc/mdk_index.texi index 12f3d78..9c3a1db 100644 --- a/doc/mdk_index.texi +++ b/doc/mdk_index.texi @@ -4,13 +4,11 @@ @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. -@node Concept Index, , Copying, Top +@c $Id: mdk_index.texi,v 1.4 2001/09/13 00:13:39 jao Exp $ + +@node Concept Index, Instructions and commands, Acknowledgments, Top @unnumbered Concept Index @cindex tail recursion @printindex cp -@c @node MIXAL instructions, , Concept Index, Top -@comment node-name, next, previous, up -@c @unnumbered MIXAL instructions -@c @printindex fn diff --git a/doc/mdk_install.texi b/doc/mdk_install.texi index bf13742..a9aa9a8 100644 --- a/doc/mdk_install.texi +++ b/doc/mdk_install.texi @@ -64,18 +64,24 @@ libraries installed in your system: @item @uref{http://www.gnu.org/software/flex/flex.html, GNU Flex 2.3} (required) @item -@uref{http://www.gtk.org, GTK+ 1.2.0} (optional) +@uref{http://www.gtk.org, GTK 1.2.0} (optional) @item -@uref{ftp://ftp.gnome.org/pub/GNOME/stable/sources/libglade/, libglade} +@uref{ftp://ftp.gnome.org/pub/GNOME/stable/sources/libglade/, Libglade} (optional) @item -GNU readline and history libraries (optional) +@uref{http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html, GNU +Readline} +(optional) +@item +@uref{http://www.gnu.org/software/guile, GNU Libguile 1.3} (optional) @end itemize If present, readline and history are used to provide command completion -and history management to the command line MIX virtual machine, @code{mixvm} +and history management to the command line MIX virtual machine, @code{mixvm}. GTK+ and libglade are needed if you want to build the graphical -interface to the MIX virtual machine, @code{gmixvm}. +interface to the MIX virtual machine, @code{gmixvm}. Finally, if +libguile is found, the @sc{mdk} utilities will be compiled with Guile +support and will be extensible using Scheme. @strong{Please note}: you need both the libraries @emph{and} the headers; this means both the library package and the @file{-dev} package @@ -107,16 +113,17 @@ you should see a message with the configuration results like the following: @example -*** GNU MDK 0.3 has been successfully configured. *** +*** GNU MDK 0.5 has been successfully configured. *** -Type make to build the following utilities: +Type 'make' to build the following utilities: - mixasm (MIX assembler) - - mixvm (MIX virtual machine, with readline support) - - gmixvm (mixvm GTK+ GUI) + - mixvm (MIX virtual machine, with readline support, with guile support) + - gmixvm (mixvm GTK+ GUI, with guile support) + - mixguile (the mixvm guile shell) @end example @noindent -where the last line may be missing if you lack the above mentioned +where the last lines may be missing if you lack the above mentioned libraries. The next command, @code{make}, will actually build the @sc{mdk} programs @@ -129,6 +136,8 @@ in the following locations: @file{mixutils/mixvm} @item @file{mixgtk/gmixvm} +@item +@file{mixguile/mixguile} @end itemize You can run these programs from within their directories, but I @@ -159,15 +168,23 @@ optionally adding the following line to your @file{.emacs} file: You can fine tunning the configuration process using the following switches with configure: -@defopt --enable-gui[=yes|no] +@defopt @w{--enable-gui[=yes|no]} @defoptx --disable-gui -Enables/disables the built of the MIX virtual machine GUI +Enables/disables the build of the MIX virtual machine GUI (@code{gmixvm}). If the required libraries are missing (@pxref{Requirements}) the configure script with automatically disable this feature. @end defopt -@defopt --with-readline[=yes|no] +@defopt @w{--with-guile[=yes|no]} +@defoptx --without-guile +Enables/disables the Guile support for @code{mixvm} and @code{gmixvm}, +and the build of @code{mixguile}. If the +required libraries are missing (@pxref{Requirements}) the configure +script with automatically disable this feature. +@end defopt + +@defopt @w{--with-readline[=yes|no]} @defoptx --without-readline Enables/disables the GNU Readline support for @code{mixvm}. If the required libraries are missing (@pxref{Requirements}) the configure @@ -193,7 +210,9 @@ Debian GNU/Linux 2.2/2.3 @item Redhat GNU/Linux 7.0 (Agustin Navarro), 6.2 (Roberto Ferrero) @item -FreeBSD 4.2 (Ying-Chieh Liao) +Mandrake 8.0 (Agustin Navarro) +@item +FreeBSD 4.2, 4.3 (Ying-Chieh Liao) @item Solaris 2.8/gcc 2.95.3 (Stephen Ramsay) @item diff --git a/doc/mdk_intro.texi b/doc/mdk_intro.texi index 36a5a96..5464980 100644 --- a/doc/mdk_intro.texi +++ b/doc/mdk_intro.texi @@ -4,7 +4,7 @@ @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. -@c $Id: mdk_intro.texi,v 1.3 2001/09/10 23:42:14 jao Exp $ +@c $Id: mdk_intro.texi,v 1.4 2001/09/13 00:13:39 jao Exp $ @node Introduction, Installing MDK, Top, Top @comment node-name, next, previous, up @@ -59,7 +59,8 @@ the possibility of manipulating a MIX virtual machine through a set of Scheme functions, so that you can use this programming language to interact with the virtual machine. In addition, @code{mixvm} and @code{gmixvm} are also able to interpret Scheme scripts (using an -embedded Guile interpreter), that is, they are extensible using Scheme. +embedded Guile interpreter), that is, you can use Scheme as an extension +language to add new functionalities to these programs. This manual gives you a tutorial of MIX and MIXAL, and a thorough description of the use of the @sc{mdk} utilities. diff --git a/doc/mdk_mixasm.texi b/doc/mdk_mixasm.texi index 2524d89..7d08ef9 100644 --- a/doc/mdk_mixasm.texi +++ b/doc/mdk_mixasm.texi @@ -4,6 +4,8 @@ @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. +@c $Id: mdk_mixasm.texi,v 1.3 2001/09/13 00:13:39 jao Exp $ + @node mixasm, Problems, gmixvm, Top @comment node-name, next, previous, up @chapter @code{mixasm}, the MIXAL assembler @@ -76,7 +78,7 @@ using this option. @end defopt @defopt -l -@defoptx --list[=list_file] +@defoptx @w{--list[=list_file]} This option causes @code{mixasm} to produce, in addion to the @file{.mix} file, an ASCII file containing a summary of the compilation results. The file is named after the MIXAL source file, changing its diff --git a/doc/mdk_mixvm.texi b/doc/mdk_mixvm.texi index 480abbc..67c429c 100644 --- a/doc/mdk_mixvm.texi +++ b/doc/mdk_mixvm.texi @@ -4,6 +4,8 @@ @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. +@c $Id: mdk_mixvm.texi,v 1.7 2001/09/13 00:13:39 jao Exp $ + @node mixvm, gmixvm, mixvm.el, Top @comment node-name, next, previous, up @chapter @code{mixvm}, the MIX computer simulator @@ -661,7 +663,7 @@ your favourite editor). The device files are stored, by default, in the directory @file{~/.mdk}; this location can be changed using the @code{mixvm} command @code{devdir} (@pxref{Configuration commands}). -@multitable {the device name} { xx-xx } {filename[x-x].dev} {bin i/o } +@multitable {the device name} { xx-xx } {filename[x-x].dev} {bin i/o/char } @item @emph{Device} @tab @emph{No.} @tab @emph{filename} @tab @emph{type} @item Tape @tab 0-7 @tab @file{tape[0-7].dev} @tab bin i/o @item Disks @tab 8-15 @tab @file{disk[0-7].dev} @tab bin i/o diff --git a/doc/mdk_tut.texi b/doc/mdk_tut.texi index c22b50e..917919f 100644 --- a/doc/mdk_tut.texi +++ b/doc/mdk_tut.texi @@ -4,6 +4,8 @@ @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. +@c $Id: mdk_tut.texi,v 1.4 2001/09/13 00:13:39 jao Exp $ + @node MIX and MIXAL tutorial, Getting started, Installing MDK, Top @comment node-name, next, previous, up @chapter MIX and MIXAL tutorial @@ -809,7 +811,7 @@ arbitrary units) of the MIX instructions are given. @item @code{JRED} @tab 1 @tab @code{Jx} @tab 1 @tab @code{INCx} @tab 1 @tab @code{DECx} @tab 1 @item @code{ENTx} @tab 1 @tab @code{ENNx} @tab 1 @tab @code{CMPx} -@tab 1 @tab @code{MOVE} @tab 1+F +@tab 1 @tab @code{MOVE} @tab 1+2F @end multitable In the above table, 'F' stands for the number of blocks to be moved |