summaryrefslogtreecommitdiffhomepage
path: root/doc
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2001-09-13 00:13:39 +0000
committerJose Antonio Ortega Ruiz <jao@gnu.org>2001-09-13 00:13:39 +0000
commitc56fcb4f85eabd8a0d54c30ca9a459599d90a612 (patch)
tree0b1f37fcc1f5dbb188fe94f5ce77641214e8bdd7 /doc
parente806d1a4a20a527d8239482becc8cc24257197f5 (diff)
downloadmdk-c56fcb4f85eabd8a0d54c30ca9a459599d90a612.tar.gz
mdk-c56fcb4f85eabd8a0d54c30ca9a459599d90a612.tar.bz2
partial doc update for version 0.5
Diffstat (limited to 'doc')
-rw-r--r--doc/mdk.texi43
-rw-r--r--doc/mdk_bugs.texi2
-rw-r--r--doc/mdk_copying.texi2
-rw-r--r--doc/mdk_emixvm.texi2
-rw-r--r--doc/mdk_findex.texi11
-rw-r--r--doc/mdk_gmixvm.texi8
-rw-r--r--doc/mdk_gstart.texi239
-rw-r--r--doc/mdk_index.texi8
-rw-r--r--doc/mdk_install.texi47
-rw-r--r--doc/mdk_intro.texi5
-rw-r--r--doc/mdk_mixasm.texi4
-rw-r--r--doc/mdk_mixvm.texi4
-rw-r--r--doc/mdk_tut.texi4
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