diff options
-rw-r--r-- | doc/mdk_gstart.texi | 26 | ||||
-rw-r--r-- | doc/mdk_install.texi | 4 | ||||
-rw-r--r-- | doc/mdk_intro.texi | 2 | ||||
-rw-r--r-- | doc/mdk_mixasm.texi | 2 | ||||
-rw-r--r-- | doc/mdk_mixguile.texi | 12 | ||||
-rw-r--r-- | doc/mdk_mixvm.texi | 20 | ||||
-rw-r--r-- | doc/mdk_tut.texi | 28 |
7 files changed, 47 insertions, 47 deletions
diff --git a/doc/mdk_gstart.texi b/doc/mdk_gstart.texi index 4f25e3d..3b74f8d 100644 --- a/doc/mdk_gstart.texi +++ b/doc/mdk_gstart.texi @@ -39,7 +39,7 @@ assembly language: * (3) * label ins operand comment (4) TERM EQU 19 the MIX console device number (5) - ORIG 1000 start address (6) + ORIG 3000 start address (6) START OUT MSG(TERM) output data at address MSG (7) HLT halt execution (8) MSG ALF "MIXAL" (9) @@ -66,7 +66,7 @@ in each non-comment line are: an optional label, which either refers to the current memory address (as @code{START} and @code{MSG} in lines 7 and 9) or a defined symbol (@code{TERM}) (if present, the label must always start at the first -column in its line, for the first whitespace in the line maks the +column in its line, for the first whitespace in the line marks the beginning of the second field), @item an operation mnemonic, which can represent either a MIX instruction @@ -162,7 +162,7 @@ your program into memory, execute it (producing any output due to MIXAL @code{OUT} instructions present in the program), and exit when it encounters a @code{HLT} instruction. In interactive mode, you will enter a shell prompt which allows you issuing commands to the running -virtual machine. This commands will permit you to load, run and debug +virtual machine. These commands will permit you to load, run and debug programs, as well as to inspect the MIX computer state (register contents, memory cells contents and so on). @@ -220,7 +220,7 @@ MIXAL HELLO WORLD Sometimes, you will prefer to store the results of your program in MIX registers rather than writing them to a device. In such cases, -@code{mixvm}'s @code{-d} flag is your friend: it makes @code{mixvm} to +@code{mixvm}'s @code{-d} flag is your friend: it makes @code{mixvm} dump the contents of its registers and flags after executing the loaded program. For instance, typing the following command at your shell's prompt @@ -284,7 +284,7 @@ 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, +program into memory. This is accomplished by the @code{load} command, which takes as an argument the name of the @file{.mix} file to be loaded. Thus, typing @@ -378,7 +378,7 @@ MIX > @cindex @code{help} @noindent -Use the comand @code{help} to obtain a list of all available commands, +Use the command @code{help} to obtain a list of all available commands, and @code{help COMMAND} for help on a specific command, e.g. @example @@ -429,7 +429,7 @@ MIX > @end example @noindent (As an aside, the above sample also shows how the virtual machine -handles cummulative time statistics and automatic program restart). +handles cumulative time statistics and automatic program restart). @cindex @code{sbpa} @cindex breakpoints @@ -499,7 +499,7 @@ MIX > @end example Other useful commands for debugging are @code{strace} (which turns on -tracing of executed intructions), @code{pbt} (which prints a backtrace +tracing of executed instructions), @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}. @@ -596,7 +596,7 @@ advantage of the Guile interpreter. The @code{mix-} function counterparts of the @code{mixvm} commands don't return any value, and are evaluated only for their side-effects (possibly including informational messages to the standard output and/or -error stream). When writting your own Scheme functions to manipulate the +error stream). When writing your own Scheme functions to manipulate the MIX virtual machine within @code{mixguile} (@pxref{Defining new functions}), you'll probably need Scheme functions returning the value of the registers, memory cells and so on. Don't worry: @code{mixguile} @@ -822,7 +822,7 @@ Stopped at line 6: HLT guile> @end example -As a second, more elaborated, example, let's define hooks which print +As a second, more elaborate, example, let's define hooks which print the address and contents of a cell being modified using @code{smem}. The hook functions could be something like this: @@ -855,7 +855,7 @@ and we can install them using (mix-add-post-hook 'smem smem-post-hook) @end example @noindent -Aferwards, a sample execution of @code{mix-smem} would look like this: +Afterwards, a sample execution of @code{mix-smem} would look like this: @example guile> (mix-smem 2000 100) @@ -964,7 +964,7 @@ scripts that perform a set of commands for you. This is done using the accepts all the command options of @code{guile}; type @code{mixguile -h} for a list of all available command options). For instance, if you have a very useful MIX program @file{foo.mix} which you want to run often, -you don't have to fire a MIX virtual machine, load and run it every +you don't have to fire up a MIX virtual machine, load and run it every time; you can write a Scheme script instead: @example @@ -1014,7 +1014,7 @@ script (not just running and dumping the registers). For additional In the previous section (@pxref{Using mixguile}) we have seen how the Guile shell @code{mixguile} offers you the possibility of using Scheme -to manipulate a MIx virtual machine and extend the set of commands +to manipulate a MIX virtual machine and extend the set of commands offered by @code{mixvm} and @code{gmixvm}. This possibility is not limited to the @code{mixguile} shell. Actually, both @code{mixvm} and @code{gmixvm} incorporate an embedded Guile interpreter, and can diff --git a/doc/mdk_install.texi b/doc/mdk_install.texi index e6cfc33..ac87bbb 100644 --- a/doc/mdk_install.texi +++ b/doc/mdk_install.texi @@ -111,7 +111,7 @@ where the last one must be run as root. The first command, @code{configure}, will setup the makefiles for your system. In particular, @code{configure} will look for GTK+ and libglade, -and, if they are present, will generate the appropiate makefiles for +and, if they are present, will generate the appropriate makefiles for building the @code{gmixvm} graphical user interface. Upon completion, you should see a message with the configuration results like the following: @@ -249,7 +249,7 @@ Solaris 2.8/gcc 2.95.3 (Stephen Ramsay) MS Windows 98 SE/Cygwin 1.1.8-2 (Christoph von Nathusius)@footnote{Caveats: Christoph has only tested @code{mixvm} and @code{mixasm} on this platform, using @code{gcc} 2.95.3-2, @code{GLIB} -1.2.10 and @code{GNUreadline} 4.1-2. He has reported missing history +1.2.10 and @code{GNU readline} 4.1-2. He has reported missing history functionalities on a first try. If you find problems with history/readline functionality, please try a newer/manually installed readline version.} diff --git a/doc/mdk_intro.texi b/doc/mdk_intro.texi index 8997800..bbf7588 100644 --- a/doc/mdk_intro.texi +++ b/doc/mdk_intro.texi @@ -11,7 +11,7 @@ In his book series @cite{The Art of Computer Programming} (published by Addison Wesley), D. Knuth uses an imaginary computer, the MIX, and its -associated machine-code and assembly languages to ilustrate the +associated machine-code and assembly languages to illustrate the concepts and algorithms as they are presented. The MIX's architecture is a simplified version of those found in real diff --git a/doc/mdk_mixasm.texi b/doc/mdk_mixasm.texi index ff3df0d..4276f1a 100644 --- a/doc/mdk_mixasm.texi +++ b/doc/mdk_mixasm.texi @@ -79,7 +79,7 @@ using this option. @defopt -l @defoptx @w{--list[=list_file]} @cindex .mls file -This option causes @code{mixasm} to produce, in addion to the +This option causes @code{mixasm} to produce, in addition 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 extension to @file{.mls} if no argument is provided; otherwise, the diff --git a/doc/mdk_mixguile.texi b/doc/mdk_mixguile.texi index 27c3b26..5566a16 100644 --- a/doc/mdk_mixguile.texi +++ b/doc/mdk_mixguile.texi @@ -136,7 +136,7 @@ command wrappers are implemented using a generic command dispatching function: @defun mixvm-cmd command argument -Dispatchs the given @var{command} to the MIX virtual appending the +Dispatches the given @var{command} to the MIX virtual machine appending the provided @var{argument}. Both @var{command} and @code{argument} must be strings. The net result is as writing "@var{command} @var{argument}" at the @code{mixvm} or @code{gmixvm} command prompt. @@ -180,7 +180,7 @@ presented in the previous section by adding error checking: (mix-load (cadr args)) ;; execute it if mix-load succeeded (if (mix-last-result) (mix-run)) - ;; print the contents of registers if the above commands succeded + ;; print the contents of registers if the above commands succeeded (if (mix-last-result) (mix-pall)))) @end example @@ -253,7 +253,7 @@ explicit or conditional breakpoint is found during the execution of a MIX program. The following functions let you install hooks: @defun mix-add-pre-hook command hook -Adds a function to the list of pre-hooks associated with the give +Adds a function to the list of pre-hooks associated with the given @var{command}. @var{command} is a string naming the corresponding @code{mixvm} command, and @var{hook} is a function which takes a single argument: a string list of the commands arguments. The following scheme code defines @@ -273,7 +273,7 @@ corresponding command (or its associated Scheme wrapper function). @end defun @defun mix-add-post-hook command hook -Adds a function to the list of pre-hooks associated with the give +Adds a function to the list of pre-hooks associated with the given @var{command}. The arguments have the same meaning as in @code{mix-add-pre-hook}. @end defun @@ -307,7 +307,7 @@ Break hook functions are entirely implemented in Scheme using regular post-hooks for the @code{next} and @code{run} commands. If you are curious, you can check the Scheme source code at @file{@emph{prefix}/share/mdk/mixguile-vm-stat.scm} (where @emph{prefix} -stands for your root install directory, usualy @code{/usr} or +stands for your root install directory, usually @code{/usr} or @code{/usr/local}. @end defun @@ -331,7 +331,7 @@ functions: @defun mixvm-status @defunx mix-vm-status Return the current status of the virtual machine, as a number -(@code{mixvm-status}) or as a symbol (@code{mix-vm-status}). Posible +(@code{mixvm-status}) or as a symbol (@code{mix-vm-status}). Possible return values are: @multitable {aamixvmaastatusaa} {aamixvmastatusaaaaaaa} {return valuesaaaaaaaaaaaaaaaaaaaaaaaaaa} @item @code{(mixvm-status)} @tab @code{(mix-vm-status)} @tab diff --git a/doc/mdk_mixvm.texi b/doc/mdk_mixvm.texi index 3dcf712..580f641 100644 --- a/doc/mdk_mixvm.texi +++ b/doc/mdk_mixvm.texi @@ -65,7 +65,7 @@ the virtual machine's state after execution. @defopt -d @defoptx --dump -This option must be used in conjuction with @code{-r}, and tells +This option must be used in conjunction with @code{-r}, and tells @code{mixvm} to print the value of the virtual machine's registers, comparison flag and overflow toggle after executing the program named @var{FILE}. See @xref{Non-interactive mode}, for sample usage. @@ -73,7 +73,7 @@ comparison flag and overflow toggle after executing the program named @defopt -t @defoptx --time -This option must be used in conjuction with @code{-r}, and tells +This option must be used in conjunction with @code{-r}, and tells @code{mixvm} to print virtual time statistics for the program's execution. @end defopt @@ -128,7 +128,7 @@ already familiar with these command line editing capabilities, as they are present in many GNU utilities, e.g. the @code{bash} shell)@footnote{The readline functionality will be available if you have compiled @sc{mdk} with readline support, i.e., if GNU readline is -installed in your system. This is ofte the case in GNU/Linux and BSD +installed in your system. This is often the case in GNU/Linux and BSD systems}. In a nutshell, readline provides command completion using the @kbd{TAB} key and command history using the cursor keys. A history file containing the last commands typed in previous sessions is stored in the @@ -316,7 +316,7 @@ sbpr I1 @noindent will cause an interruption during program execution whenever the -contents or register @code{I1} changes. A previously set breakpoint is +contents of register @code{I1} changes. A previously set breakpoint is cleared using the @code{cbpr} command. @end deffn @@ -332,7 +332,7 @@ sbpm 1000 @noindent will cause an interruption during program execution whenever the -contents or of the memory cell number 1000 changes. A previously set +contents of the memory cell number 1000 changes. A previously set breakpoint is cleared using the @code{cbpm} command. @end deffn @@ -488,7 +488,7 @@ New symbols can be defined using the @code{ssym} command: @deffn {debug command} ssym SYM WEXP Defines the symbol named @var{SYM} with the value resulting from -evaluating @var{WEXP}, an w-expression. The newly defined symbol can be +evaluating @var{WEXP}, a w-expression. The newly defined symbol can be used in subsequent @code{weval} commands, as part of the expression to be evaluated. E.g., @@ -571,7 +571,7 @@ rI5: + 00 00 (0000) rI6: + 00 00 (0000) MIX > @end example -As you can see in the above sample, the contents is printed as the sign +As you can see in the above sample, the contents are printed as the sign plus the values of the MIX bytes stored in the register and, between parenthesis, the decimal representation of its module. @@ -581,7 +581,7 @@ flag and overflow toggle. Finally, @code{sreg} Sets the contents of the given register to @var{value}, expressed as a decimal constant. If @var{value} exceeds the maximum value storable in the given register, @code{VALUE mod -MAXIMU_VALUE} is stored, e.g. +MAXIMUM_VALUE} is stored, e.g. @example MIX > sreg I1 1000 @@ -629,7 +629,7 @@ MIX > pmem 3000 MIX > @end example -The memory contents is displayed both as the set of five MIX bytes plus +The memory contents are displayed both as the set of five MIX bytes plus sign composing the stored MIX word and, between parenthesis, the decimal representation of the module of the stored value. @@ -728,7 +728,7 @@ double quotes (e.g., @code{prompt ">> "}). If you have compiled @sc{mdk} with @code{libguile} support (@pxref{Special configure flags}), @code{mixvm} will start and -initialise an embedded Guile Scheme interpret when it is invoked. That +initialise an embedded Guile Scheme interpreter when it is invoked. That means that you have at your disposal, at @code{mixvm}'s command prompt, all the Scheme primitives described in @ref{Using mixguile} and @ref{mixguile}, as well as any other function or hook that you have diff --git a/doc/mdk_tut.texi b/doc/mdk_tut.texi index 821e52f..e2d3a15 100644 --- a/doc/mdk_tut.texi +++ b/doc/mdk_tut.texi @@ -182,7 +182,7 @@ above components, and which is able to execute a rich set of instructions (constituting its machine language, similar to those commonly found in real CPUs), including arithmetic, logical, storing, comparison and jump instructions. Being a typical von Neumann computer, -the MIX CPU fetchs binary instructions from memory sequentially (unless +the MIX CPU fetches binary instructions from memory sequentially (unless a jump instruction is found), and stores the address of the next instruction to be executed in an internal register called @dfn{location counter} (also known as program counter in other architectures). @@ -198,7 +198,7 @@ of the available MIX binary instructions. The following subsections fully describe the instruction set of the MIX computer. We begin with a description of the structure of binary instructions and the notation used to refer to their subfields. The -remaininig subsections are devoted to describing the actual instructions +remaining subsections are devoted to describing the actual instructions available to the MIX programmer. @menu @@ -466,7 +466,7 @@ of the register @samp{A}, so that we are able to handle 10-byte numbers whose more significant bytes are those of @samp{rA} (the sign of this 10-byte number is that of @samp{rA}: @samp{rX}'s sign is ignored). -Addition and substraction of MIX words can give rise to overflows, since +Addition and subtraction of MIX words can give rise to overflows, since the result is stored in a register with room to only 5 bytes (plus sign). When this occurs, the operation result modulo @w{1,073,741,823} (the maximum value storable in a MIX word) is stored in @samp{rA}, and @@ -521,7 +521,7 @@ can use the binary instruction @w{+ 31 16 00 03 48}, or, symbolically, ENNA 2000 @end example @noindent -Used in conjuction with the store operations (@samp{STA}, @samp{STX}, +Used in conjunction with the store operations (@samp{STA}, @samp{STX}, etc.), these instructions also allow you to set memory cells contents to concrete values. @@ -672,7 +672,7 @@ Transfer a block of words from memory (starting at address M) to the specified unit. OPCODE = 37, MOD = I/O unit. @item IOC -Perfom a control operation (given by M) on the specified unit. +Perform a control operation (given by M) on the specified unit. OPCODE = 35, MOD = I/O unit. @item JRED Jump to M if the specified unit is ready. @@ -827,9 +827,9 @@ counter, while @samp{HLT} usually marks program termination. @cindex time When writing MIXAL programs (or any kind of programs, for that -matter), whe shall often be interested in their execution -time. Loosely speaking, we will interested in the answer to the -question: how long takes a program to execute? Of course, this +matter), we shall often be interested in their execution +time. Loosely speaking, we will be interested in the answer to the +question: how long does it take a program to execute? Of course, this execution time will be a function of the input size, and the answer to our question is commonly given as the asymptotic behaviour as a function of the input size. At any rate, to compute this asymptotic @@ -950,7 +950,7 @@ defaults to 0 (i.e., no use of indexing) and can only be used when is an expression evaluating to the mod subfield of the instruction. Its default value, when omitted, depends on @code{OPCODE}, @item COMMENT -any number of spaces after the operand mark the beggining of a comment, +any number of spaces after the operand mark the beginning of a comment, i.e. any text separated by white space from the operand is ignored by the assembler (note that spaces are not allowed within the @samp{OPERAND} field). @@ -964,8 +964,8 @@ column number at which each of these instruction parts must start. The MIXAL assembler included in @sc{mdk}, @code{mixasm}, does not impose such restriction.}. -We have already listed the mnemonics associated will each MIX -instructions; sample MIXAL instructions representing MIX instructions +We have already listed the mnemonics associated with each MIX +instruction; sample MIXAL instructions representing MIX instructions are: @example HERE LDA 2000 HERE represents the current location counter @@ -1014,8 +1014,8 @@ directive to mark the initial value of the assembler's location counter instruction). Thus, a minimal MIXAL program would be @example - ORIG 2000 set the initial compilation adress - NOP this instruction will be loaded at adress 2000 + ORIG 2000 set the initial compilation address + NOP this instruction will be loaded at address 2000 HLT and this one at address 2001 END 2000 end of program; start at address 2000 this line is not parsed by the assembler @@ -1065,7 +1065,7 @@ the assembler encounters the following code snippet it will assign to the memory cell number 1150 the contents @w{- 00 06 61 11 49} (which corresponds to the decimal value -1823473). -Finally, the @code{ALF} directive let's you specify the memory contents +Finally, the @code{ALF} directive lets you specify the memory contents as a set of five (optionally quoted) characters, which are translated by the assembler to their byte values, conforming in that way the binary word that is to be stored in the corresponding memory cell. This |