www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www doc/Press-use/MDK/mdk_ack.texi.~1.6.~ doc/P...


From: Karl Berry
Subject: www doc/Press-use/MDK/mdk_ack.texi.~1.6.~ doc/P...
Date: Thu, 21 Jun 2007 13:49:52 +0000

CVSROOT:        /web/www
Module name:    www
Changes by:     Karl Berry <karl>       07/06/21 13:49:51

Removed files:
        doc/Press-use/MDK: mdk_ack.texi.~1.6.~ mdk_gstart.texi.~1.16.~ 
                           mdk_install.texi.~1.12.~ 
                           mdk_intro.texi.~1.7.~ mdk_tut.texi.~1.11.~ 
        gear           : BlueSuedeGnu-print.html~ DynamicDuo-print.html~ 
                         FSFS-tshirt.html~ Happy-tshirt.html~ 
                         gear.html.~1.3.~ gear.html.~1.5.~ 
        graphics/presentation: Foo2.html~ Slide1.html.~1.3.~ 
                               Slide1.html~ Slide2.html.~1.5.~ 
                               Slide2.html.~1.6.~ Slide2.html~ 
                               Slide2A.html~ Slide3.html.~1.1.~ 
                               Slide3.html.~1.2.~ Slide3.html~ 
                               Slide3A.html~ Slide4.html.~1.1.~ 
                               Slide4.html~ Slide5.html.~1.1.~ 
                               Slide5.html~ Slide5A.html~ Slide5B.html~ 
                               Slide6.html.~1.1.~ Slide6.html~ 
        gwm/gwm-about  : libredoc2.html~ 
        software/chinese: philosophy.zh.html~ philosophy.zhs.html~ 

Log message:
        remove backup files from live repository

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/doc/Press-use/MDK/mdk_ack.texi.%1261.6.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/doc/Press-use/MDK/mdk_gstart.texi.%1261.16.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/doc/Press-use/MDK/mdk_install.texi.%1261.12.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/doc/Press-use/MDK/mdk_intro.texi.%1261.7.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/doc/Press-use/MDK/mdk_tut.texi.%1261.11.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/gear/BlueSuedeGnu-print.html%126?cvsroot=www&r1=1.2&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/gear/DynamicDuo-print.html%126?cvsroot=www&r1=1.2&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/gear/FSFS-tshirt.html%126?cvsroot=www&r1=1.2&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/gear/Happy-tshirt.html%126?cvsroot=www&r1=1.2&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/gear/gear.html.%1261.3.%126?cvsroot=www&r1=1.2&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/gear/gear.html.%1261.5.%126?cvsroot=www&r1=1.2&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Foo2.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide1.html.%1261.3.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide1.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide2.html.%1261.5.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide2.html.%1261.6.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide2.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide2A.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide3.html.%1261.1.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide3.html.%1261.2.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide3.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide3A.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide4.html.%1261.1.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide4.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide5.html.%1261.1.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide5.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide5A.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide5B.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide6.html.%1261.1.%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/presentation/Slide6.html%126?cvsroot=www&r1=1.1&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/gwm/gwm-about/libredoc2.html%126?cvsroot=www&r1=1.3&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/chinese/philosophy.zh.html%126?cvsroot=www&r1=1.3&r2=0
http://web.cvs.savannah.gnu.org/viewcvs/www/software/chinese/philosophy.zhs.html%126?cvsroot=www&r1=1.4&r2=0

Patches:
Index: doc/Press-use/MDK/mdk_ack.texi.~1.6.~
===================================================================
RCS file: doc/Press-use/MDK/mdk_ack.texi.~1.6.~
diff -N doc/Press-use/MDK/mdk_ack.texi.~1.6.~
--- doc/Press-use/MDK/mdk_ack.texi.~1.6.~       28 Jul 2003 18:18:00 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,86 +0,0 @@
address@hidden -*-texinfo-*-
address@hidden This is part of the GNU MDK Reference Manual.
address@hidden Copyright (C) 2000, 2001, 2002, 2003
address@hidden   Free Software Foundation, Inc.
address@hidden See the file mdk.texi for copying conditions.
-
address@hidden $Id: mdk_ack.texi.~1.6.~,v 1.1 2003/07/28 18:18:00 opus Exp $
-
address@hidden Acknowledgments, Installing MDK, Introduction, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Acknowledgements
-
-Many people have further contributed to @sc{mdk} by reporting problems,
-suggesting various improvements, or submitting actual code. Here is
-a list of these people. Help me keep it complete and exempt of errors.
-
address@hidden @bullet
address@hidden Richard Stallman (@email{rms@@gnu.org})
-suggested various improvements to the documentation.
-
address@hidden Philip Ellis King (@email{pking@@pdq.net})
-provided MIXAL test programs pinpointing bugs in the first @sc{mdk}
-release, and useful discussions as well. Philip has also contributed
-with the Emacs port of @code{mixvm} and influenced the @code{gmixvm} GUI
-design with insightful comments and prototypes.
-
address@hidden Pieter E J Pareit (@email{pieter.pareit@@skynet.be})
-is the author of the Emacs MIXAL mode, and has also contributed many
-bug fixes.
-
address@hidden Agustin Navarro (@email{anp@@cantv.net})
-tested the installation on Mandrake and RedHat and helped debugging the
-package configuration. He created and maintains the @sc{mdk} RedHat and
-Mandrake packages.
-
address@hidden Francesc Xavier Noria (@email{fxn@@retemail.es})
-kindly and thoroughly reviewed the @sc{mdk} documentation, providing
-insightful advice.
-
address@hidden Ying-Chieh Liao (@email{ijliao@@csie.nctu.edu.tw})
-tested @sc{mdk} on a FreeBSD system, and developed and maintains a port for
-it.
-
address@hidden Adrian Bunk (@email{bunk@@fs.tum.de})
-created and maintained the @sc{mdk} Debian packages.
-
address@hidden Baruch Even (@email{baruch@@debian.org})
-is the current maintainer of the Debian official packages.
-
address@hidden Nelson H. F. Beebe (@email{beebe@@math.utah.edu})
-has tested @sc{mdk} in a lot of Unix platforms, suggesting portability
-enhancements to the source code.
-
address@hidden Eli Bendersky (@email{spur4444@@yahoo.com})
- reported several bugs in the documentation.
-
address@hidden Ronald Cole (@email{ronald@@forte-intl.com})
-created RPM packages for version 1.0.
-
address@hidden Christoph von Nathusius (@email{nathusiu@@gmx.net})
-tested @sc{mdk} on Windows/Cygwin.
-
address@hidden Stephen Ramsay (@email{sjr3a@@virginia.edu})
-tested @sc{mdk} on Sun/Solaris.
-
address@hidden Johan Swanljung (@email{johanswa@@yahoo.com})
-tested @sc{mdk} on Mac OS X, and helped fix the configuration process
-to support this platfom.
-
address@hidden Jason Uhlenkott
-also reported the pmem problem.
-
address@hidden Andrew Hood (@email{ajhood@@fl.net.au})
-reported a bug in @code{gmixvm} initialisation.
-
address@hidden Radu Butnaru (@email{rbb@@email.ro})
-reported a bug in mixvm's MOVE implementation.
-
address@hidden Milan Bella (@email{milanbella@@hotmail.com})
-reported a bug in @sc{mdk} documentation.
-
address@hidden @sc{mdk} was inspired by Darius Bacon's
address@hidden://www.accesscom.com/~darius/, MIXAL program}.
-
address@hidden itemize
-

Index: doc/Press-use/MDK/mdk_gstart.texi.~1.16.~
===================================================================
RCS file: doc/Press-use/MDK/mdk_gstart.texi.~1.16.~
diff -N doc/Press-use/MDK/mdk_gstart.texi.~1.16.~
--- doc/Press-use/MDK/mdk_gstart.texi.~1.16.~   28 Jul 2003 18:18:00 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,1057 +0,0 @@
address@hidden -*-texinfo-*-
address@hidden This is part of the GNU MDK Reference Manual.
address@hidden Copyright (C) 2000, 2001, 2002, 2003
address@hidden   Free Software Foundation, Inc.
address@hidden See the file mdk.texi for copying conditions.
-
address@hidden $Id: mdk_gstart.texi.~1.16.~,v 1.1 2003/07/28 18:18:00 opus Exp $
-
address@hidden Getting started, Emacs tools, MIX and MIXAL tutorial, Top
address@hidden Getting started
address@hidden 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
-and its assembly language MIXAL (as described in Knuth's TAOCP) is
-assumed; for a compact reminder, see @ref{MIX and MIXAL tutorial}.
-
address@hidden
-* 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 programs.
-* Using mixguile::              Using the Scheme interpreter to run and
-                                debug your programs.
-* Using Scheme in mixvm and gmixvm::
address@hidden menu
-
address@hidden Writing a source file, Compiling, Getting started, Getting 
started
address@hidden Writing a source file
address@hidden MIXAL
address@hidden source file
address@hidden .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
-assembly language:
-
address@hidden
-*                                                        (1)
-* hello.mixal: say 'hello world' in MIXAL                (2)
-*                                                        (3)
-* label ins    operand     comment                       (4)
-TERM    EQU    19          the MIX console device number (5)
-        ORIG   1000        start address                 (6)
-START   OUT    MSG(TERM)   output data at address MSG    (7)
-        HLT                halt execution                (8)
-MSG     ALF    "MIXAL"                                   (9)
-        ALF    " HELL"                                   (10)
-        ALF    "O WOR"                                   (11)
-        ALF    "LD   "                                   (12)
-        END    START       end of the program            (13)
address@hidden example
-
address@hidden MIXAL source files should have the extension @file{.mixal}
-when used with the @sc{mdk} utilities. As you can see in the above
-sample, each line in a MIXAL file can be divided into four fields
-separated by an arbitrary amount of whitespace characters (blanks and or
-tabs). While in Knuth's definition of MIXAL each field must start at a
-fixed pre-defined column number, the @sc{mdk} assembler loosens this
-requirement and lets you format the file as you see fit. The only
-restrictions retained are for comment lines (like 1-4) which must begin
-with an asterisk (*) placed at column 1, and for the label field (see
-below) which, if present, must also start at column 1. The four fields
-in each non-comment line are:
-
address@hidden @minus
address@hidden
-an optional label, which either refers to the current memory address (as
address@hidden 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
-beginning of the second field),
address@hidden
-an operation mnemonic, which can represent either a MIX instruction
-(@code{OUT} and @code{HLT} in lines 7 and 8 above), or an assembly
-pseudoinstruction (e.g., the @code{ORIG} pseudoinstruction in line
address@hidden an @code{ORIG} directive is not used, the program will
-be loaded by the virtual machine at address 0. @code{ORIG} allows
-allocating the executable code where you see fit.}.
address@hidden
-an optional operand for the (pseudo)instruction, and
address@hidden
-an optional free text comment.
address@hidden itemize
-
address@hidden Lines 9-12 of the @file{hello.mixal} file above also show the
-second (and last) difference between Knuth's MIXAL definition and ours:
-the operand of the @code{ALF} pseudoinstruction (a word of five
-characters) must be quoted using ""@footnote{In Knuth's definition,
-the operand always starts at a fixed column number, and the use of
-quotation is therefore unnecessary. As @code{mixasm} releases this
-requirement, marking the beginning and end of the @code{ALF} operand
-disambiguates the parser's recognition of this operand when it includes
-blanks. Note that double-quotes (") are not part of the MIX character
-set, and, therefore, no escape characters are needed within
address@hidden's operands.}.
-
-The workings of this sample program should be straightforward if you are
-familiar with MIXAL. See TAOCP vol. 1 for a thorough definition or
address@hidden and MIXAL tutorial}, for a tutorial.
-
address@hidden Compiling, Running the program, Writing a source file, Getting 
started
address@hidden Compiling
address@hidden compiling
address@hidden binary programs
address@hidden virtual machine
address@hidden assembler
address@hidden @code{mixasm}
-
-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:
-
address@hidden
-mixasm -g hello @key{RET}
address@hidden example
-
address@hidden .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
-information in the executable file (for a complete description of all
-the compilation options, see @ref{mixasm}). Now, your are ready to run
-your first MIX program, as described in the following section.
-
-
address@hidden Running the program, Using mixguile, Compiling, Getting started
address@hidden Running the program
address@hidden @code{mixvm}
address@hidden non-interactive mode
address@hidden interactive mode
-
-MIX is a mythical computer, so it is no use ordering it from your
-favorite hardware provider. @sc{mdk} provides three software simulators of
-the computer, though. They are
-
address@hidden @bullet
address@hidden
address@hidden, a command line oriented simulator,
address@hidden
address@hidden, a GTK based graphical interface to @code{mixvm}, and
address@hidden
address@hidden, a Guile shell with a built-in MIX simulator.
address@hidden 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
address@hidden'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
address@hidden mode. In the second case, @code{mixvm} will load
-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
-programs, as well as to inspect the MIX computer state (register
-contents, memory cells contents and so on).
-
address@hidden
-* Non-interactive mode::        Running your programs non-interactively.
-* Interactive mode::            Running programs interactively.
-* Debugging::                   Commands for debugging your programs.
address@hidden menu
-
address@hidden Non-interactive mode, Interactive mode, Running the program, 
Running the program
address@hidden  node-name,  next,  previous,  up
address@hidden Non-interactive mode
address@hidden non-interactive mode
-
-To make @code{mixvm} work in non-interactive mode, use the @code{-r}
-flag. Thus, to run our @file{hello.mix} program, simply type
-
address@hidden
-mixvm -r hello @key{RET}
address@hidden example
-
address@hidden at your command prompt, and you will get the following output:
-
address@hidden
-MIXAL HELLO WORLD
address@hidden example
-
address@hidden Since our hello world program uses MIX's device number 19 as
-its output device (@pxref{Writing a source file}), the output is
-redirected to the shell's standard output. Had you used any other MIX
-output devices (disks, drums, line printer, etc.), @code{mixvm} would
-have created a file named after the device used (e.g. @file{disk4.dev})
-and written its output address@hidden device files are stored, by
-default, in a directory called @file{.mdk}, which is created in your
-home directory the first time @code{mixvm} is run. You can change this
-default directory using the command @code{devdir} when running
address@hidden in interactive mode (@pxref{Configuration commands})}.
-
-The virtual machine can also report the execution time of the program,
-according to the (virtual) time spent in each of the binary instructions
-(@pxref{Execution times}). Printing of execution time statistics is
-activated with the @code{-t} flag; running
-
address@hidden
-mixvm -t -r hello @key{RET}
address@hidden example
-
address@hidden
-produces the following output:
-
address@hidden
-MIXAL HELLO WORLD
-** Execution time: 11
address@hidden example
-
-Sometimes, you will prefer to store the results of your program in MIX
-registers rather than writing them to a device. In such cases,
address@hidden's @code{-d} flag is your friend: it makes @code{mixvm} to
-dump the contents of its registers and flags after executing the loaded
-program. For instance, typing the following command at your shell's
-prompt
-
address@hidden
-mixvm -d -r hello
address@hidden example
-
address@hidden you will obtain the following output:
-
address@hidden
-MIXAL HELLO WORLD
-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)
-Overflow: F
-Cmp: E
address@hidden example
-
address@hidden which, in addition to the program's outputs and execution
-time, gives you the contents of the MIX registers and the values of the
-overflow toggle and comparison flag (admittedly, rather uninteresting in
-our sample).
-
-As you can see, running programs non-interactively has many
-limitations. You cannot peek the virtual machine's memory contents, not
-to mention stepping through your program's instructions or setting
address@hidden @code{mixguile} program allows you to execute
-arbitrary combinations of @code{mixvm} commands (using Scheme)
-non-interactively. @xref{Scheme scripts}.}. Enter interactive mode.
-
address@hidden Interactive mode, Debugging, Non-interactive mode, Running the 
program
address@hidden  node-name,  next,  previous,  up
address@hidden Interactive mode
address@hidden interactive mode
-
-To enter the MIX virtual machine interactive mode, simply type
-
address@hidden
-mixvm @key{RET}
address@hidden example
-
address@hidden at your shell command prompt. This command enters the
address@hidden command shell. You will be presented the following command
-prompt:
-
address@hidden
-MIX >
address@hidden example
-
address@hidden The virtual machine is initialised and ready to accept your
-commands. The @code{mixvm} command shell uses GNU's readline, so that
-you have at your disposal command completion (using @key{TAB}) and
-history functionality, as well as other line editing shortcuts common to
-all utilities using this library (for a complete description of
-readline's line editing usage, see @ref{Command Line
-Editing,,,Readline}.)
-
address@hidden @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
-loaded. Thus, typing
-
address@hidden
-MIX > load hello @key{RET}
-Program loaded. Start address: 3000
-MIX >
address@hidden example
-
address@hidden will load @file{hello.mix} into the virtual machine's memory
-and set the program counter to the address of the first instruction. You
-can obtain the contents of the program counter using the command
address@hidden:
-
address@hidden @code{pc}
address@hidden
-MIX > pc
-Current address: 3000
-MIX >
address@hidden example
-
address@hidden @code{run}
-After loading it, you are ready to run the program, using, as you surely
-have guessed, the @code{run} command:
-
address@hidden
-MIX > run
-Running ...
-MIXAL HELLO WORLD
-... done
-Elapsed time: 11 /Total program time: 11 (Total uptime: 11)
-MIX >
address@hidden example
-
address@hidden Note that now the timing statistics are richer. You obtain the
-elapsed execution time (i.e., the time spent executing instructions
-since the last breakpoint), the total execution time for the program up
-to now (which in our case coincides with the elapsed time, since there
-were no breakpoints), and the total uptime for the virtual machine (you
-can load and run more than one program in the same
-session)@footnote{Printing of timing statistics can be disabled using
-the command @code{timing} (@pxref{Configuration commands}).}. After
-running the program, the program counter will point to the address after
-the one containing the @code{HLT} instruction. In our case, asking the
-value of the program counter after executing the program will give us
-
address@hidden
-MIX > pc
-Current address: 3002
-MIX >
address@hidden example
-
address@hidden @code{pmem}
address@hidden You can check the contents of a memory cell giving its address
-as an argument of the command @code{pmem}, like this
-
address@hidden
-MIX > pmem 3001
-3001: + 00 00 00 02 05 (0000000133)
-MIX >
address@hidden example
-
address@hidden
-and convince yourself that address 3001 contains the binary
-representation of the instruction @code{HLT}. An address range of the
-form FROM-TO can also be used as the argument of @code{pmem}:
-
address@hidden
-MIX > pmem 3000-3006
-3000: + 46 58 00 19 37 (0786957541)
-3001: + 00 00 00 02 05 (0000000133)
-3002: + 14 09 27 01 13 (0237350989)
-3003: + 00 08 05 13 13 (0002118477)
-3004: + 16 00 26 16 19 (0268542995)
-3005: + 13 04 00 00 00 (0219152384)
-3006: + 00 00 00 00 00 (0000000000)
-MIX >
address@hidden example
-
address@hidden @code{preg}
address@hidden
-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
-can type
-
address@hidden
-MIX > preg A
-rA: + 00 00 00 00 00 (0000000000)
-MIX >
address@hidden example
-
address@hidden @code{help}
address@hidden
-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.
-
address@hidden
-MIX > help run
-run             Run loaded or given MIX code file. Usage: run [FILENAME]
-MIX >
address@hidden example
-
address@hidden
-For a complete list of commands available at the MIX propmt,
address@hidden In the following subsection, you will find a quick tour
-over commands useful for debugging your programs.
-
address@hidden Debugging,  , Interactive mode, Running the program
address@hidden  node-name,  next,  previous,  up
address@hidden Debugging commands
-
address@hidden @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
-two-instruction @file{hello.mix} sample you can do the following:
-
address@hidden
-MIX > load hello
-Program loaded. Start address: 3000
-MIX > pc
-Current address: 3000
-MIX > next
-MIXAL HELLO WORLD
-Elapsed time: 1 /Total program time: 1 (Total uptime: 1)
-MIX > pc
-Current address: 3001
-MIX > next
-End of program reached at address 3002
-Elapsed time: 10 /Total program time: 11 (Total uptime: 11)
-MIX > pc
-Current address: 3002
-MIX > next
-MIXAL HELLO WORLD
-Elapsed time: 1 /Total program time: 1 (Total uptime: 12)
-MIX >
-MIX > run
-Running ...
-... done
-Elapsed time: 10 /Total program time: 11 (Total uptime: 22)
-MIX >
address@hidden example
address@hidden
-(As an aside, the above sample also shows how the virtual machine
-handles cummulative time statistics and automatic program restart).
-
address@hidden @code{sbpa}
address@hidden breakpoints
-
-You can set a breakpoint at a given address using the command
address@hidden (set breakpoint at address). When a breakpoint is set,
address@hidden will stop before executing the instruction at the given
-address. Typing @code{run} again will resume program execution. Coming
-back to our hello world example, we would have:
-
address@hidden
-MIX > sbpa 3001
-Breakpoint set at address 3001
-MIX > run
-Running ...
-MIXAL HELLO WORLD
-... stopped: breakpoint at line 8 (address 3001)
-Elapsed time: 1 /Total program time: 1 (Total uptime: 23)
-MIX > run
-Running ...
-... done
-Elapsed time: 10 /Total program time: 11 (Total uptime: 33)
-MIX >
address@hidden example
-
address@hidden @code{sbp}
address@hidden breakpoints
address@hidden
-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
-tell us the line in the source file corresponding to the breakpoint we
-are setting. As a matter of fact, you can directly set breakpoints at
-source code lines using the command @code{sbp LINE_NO}, e.g.
-
address@hidden
-MIX > sbp 4
-Breakpoint set at line 7
-MIX >
address@hidden example
-
address@hidden
address@hidden sets the breakpoint at the first meaningful source code line;
-thus, in the above example we have requested a breakpoint at a line
-which does not correspond to a MIX instruction and the breakpoint is set
-at the first line containing a real instruction after the given one. To
-unset breakpoints, use @code{cbpa ADDRESS} and @code{cbp LINE_NO}, or
address@hidden to remove all currently set breakpoints. You can also set
-conditional breakpoints, i.e., tell @code{mixvm} to interrupt program
-execution whenever a register, a memory cell, the comparison flag or the
-overflow toggle change using the commands @address@hidden
-(@pxref{Debug commands}).
-
address@hidden @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
-MIXAL program has, therefore, an associated symbol table which you can
-inspect using the @code{psym} command. For our hello world sample, you
-will obtain the following output:
-
address@hidden
-MIX > psym
-START:  3000
-TERM:  19
-MSG:  3002
-MIX >
address@hidden example
-
-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}.
-
address@hidden Using mixguile, Using Scheme in mixvm and gmixvm, Running the 
program, Getting started
address@hidden 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
address@hidden, @code{mixguile} can be run both in interactive and
-non-interactive modes. The following subsections provide a quick tour on
-using this MIX emulator.
-
address@hidden
-* The mixguile shell::          Using the Scheme MIX virtual machine.
-* Additional functions::        Scheme functions accessing the VM.
-* Defining new functions::      Defining your own Scheme functions.
-* Hook functions::              Using command and break hook functions.
-* Scheme scripts::
address@hidden menu
-
address@hidden The mixguile shell, Additional functions, Using mixguile, Using 
mixguile
address@hidden The @code{mixguile} shell
address@hidden Scheme
address@hidden @code{mixguile}
address@hidden REPL
-
-If you simply type
-
address@hidden
-mixguile @key{RET}
address@hidden example
address@hidden
-at the command prompt, you'll be presented a Guile shell prompt like
-this
-
address@hidden
-guile>
address@hidden example
address@hidden
-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
address@hidden to its name. Thus, to load our hello world program, you can
-simply enter
-
address@hidden
-guile> (mix-load "hello")
-Program loaded. Start address: 3000
-guile>
address@hidden example
address@hidden
-and run it using @code{mix-run}:
-
address@hidden
-guile> (mix-run)
-Running ...
-MIXAL HELLO WORLD
-... done
-Elapsed time: 11 /Total program time: 11 (Total uptime: 11)
-guile>
address@hidden example
address@hidden
-In the same way, you can execute it step by step using the Scheme
-function @code{mix-next} or set a breakpoint:
-
address@hidden
-guile> (mix-sbp 4)
-Breakpoint set at line 5
-guile>
address@hidden example
address@hidden
-or, if you one to peek at a register contents:
-
address@hidden
-guile> (mix-preg 'A)
-rA: + 00 00 00 00 00 (0000000000)
-guile>
address@hidden example
-
-You get the idea: you have at your disposal all the @code{mixvm} and
address@hidden 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.
-
address@hidden Additional functions, Defining new functions, The mixguile 
shell, Using mixguile
address@hidden Additional MIX Scheme functions
-
-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
-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}
-also offers you such functions. For instance, to access the (numerical)
-value of a register you can use @code{mix-reg}:
-
address@hidden
-guile> (mix-reg 'I2)
-0
-guile>
address@hidden example
address@hidden
-Note that, unlike @code{(mix-preg 'I2)}, the expression @code{(mix-reg
-'I2)} in the above example evaluates to a Scheme number and does not
-produce any side-effect:
-
address@hidden
-guile> (number? (mix-reg 'I2))
-#t
-guile> (number? (mix-preg 'I2))
-rI2: + 00 00 (0000)
-#f
-guile>
address@hidden example
-
-In a similar fashion, you can access the memory contents using
address@hidden(mix-cell)}, or the program counter using @code{(mix-loc)}:
-
address@hidden
-guile> (mix-cell 3000)
-786957541
-guile> (mix-loc)
-3002
-guile>
address@hidden example
-
-Other functions returning the contents of the virtual machine components
-are @code{mix-cmp} and @code{mix-over}, which eval to the value of the
-comparison flag and the overflow toggle respectively. For a complete
-list of these additional functions, @xref{mixguile}.
-
-In the next section, we'll see a sample of using these functions to
-extend @code{mixguile}'s functionality.
-
address@hidden Defining new functions, Hook functions, Additional functions, 
Using mixguile
address@hidden Defining new functions
address@hidden 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:
-
address@hidden
-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>
address@hidden example
address@hidden
-and use it to run your programs:
-
address@hidden
-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>
address@hidden example
-
-
-Or, maybe, you want a function which sets a breakpoint at a specified
-line number before executing it:
-
address@hidden
-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>
address@hidden 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:
-
address@hidden
-guile> (define my-run
-         (lambda (file)
-           (mix-load file)
-           (let ((start (mix-loc)))
-             (mix-run)
-             (mix-pmem start (mix-loc)))))
-guile> (my-run "hello")
-Program loaded. Start address: 3000
-Running ...
-MIXAL HELLO WORLD
-... done
-Elapsed time: 11 /Total program time: 11 (Total uptime: 11)
-3000: + 46 58 00 19 37 (0786957541)
-3001: + 00 00 00 02 05 (0000000133)
-3002: + 14 09 27 01 13 (0237350989)
-guile>
address@hidden 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
address@hidden You can write it in a file, and load it using Scheme's
address@hidden function. For instance, you can create a file named, say,
address@hidden with your definitions (or any Scheme expression)
-and load it at the @code{mixguile} prompt:
-
address@hidden
-guile> (load "functions.scm")
address@hidden example
-
-Alternatively, you can make @code{mixguile} to load it for you. When
address@hidden starts, it looks for a file named @file{mixguile.scm} in
-your MDK configuration directory (@file{~/.mdk}) and, if it exists,
-loads it before entering the REPL. Therefore, you can copy your
-definitions in that file, or load the @file{functions.scm} file in
address@hidden
-
address@hidden Hook functions, Scheme scripts, Defining new functions, Using 
mixguile
address@hidden Hook functions
address@hidden hook function
address@hidden pre-hook
address@hidden post-hook
-
-Hooks are functions called before or after a given event occurs. In
address@hidden, you can define command and break hooks, which are
-associated, respectively, with command execution and program
-interruption events. The following sections give you a tutorial on using
-hook functions within @code{mixguile}.
-
address@hidden
-* Command hooks::
-* Break hooks::
address@hidden menu
-
address@hidden Command hooks, Break hooks, Hook functions, Hook functions
address@hidden Command hooks
-
-In the previous section, we have seen how to extend @code{mixguile}'s
-functionality through the use of user defined functions. Frequently,
-you'll write new functions that improve in some way the workings of a
-built-in @code{mixvm} command, following this pattern:
-
address@hidden a
address@hidden
-Prepare the command execution
address@hidden
-Execute the desired command
address@hidden
-Perform post execution operations
address@hidden enumerate
-
-We call the functions executed in step (a) @dfn{pre-hook}s, and those of
-step @dfn{post-hook}s of the given command. @code{mixguile} lets you
-specify pre- and post-hooks for any @code{mixvm} command using the
address@hidden and  @code{mix-add-post-hook} functions, which
-take as arguments a symbol naming the command and a function to be
-executed before (resp. after) the command. In other words,
address@hidden will execute for you steps (a) and (c) above whenever
-you eval (b). The hook functions must take a single argument, which is a
-string list of the command's arguments. As an example, let us define the
-following hooks for the @code{next} command:
-
address@hidden
-(define next-pre-hook
-  (lambda (arglist)
-    (mix-slog #f)))
-
-(define next-post-hook
-  (lambda (arglist)
-    (display "Stopped at line ")
-    (display (mix-src-line-no))
-    (display ": ")
-    (display (mix-src-line))
-    (newline)
-    (mix-slog #t)))
address@hidden example
address@hidden
-In these functions, we are using the function @code{mix-slog} to turn
-off the informational messages produced by the virtual machine, since we
-are providing our own ones in the post hook function. To install these
-hooks, we would write:
-
address@hidden
-(mix-add-pre-hook 'next next-pre-hook)
-(mix-add-post-hook 'next next-post-hook)
address@hidden example
address@hidden
-Assuming we have put the above expressions in @code{mixguile}'s
-initialisation file, we would obtain the following results when
-evaluating @code{mix-next}:
-
address@hidden
-guile> (mix-next)
-MIXAL HELLO WORLD
-Stopped at line 6:             HLT
-guile>
address@hidden example
-
-As a second, more elaborated, 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:
-
address@hidden
-(define smem-pre-hook
-  (lambda (arglist)
-    (if (eq? (length arglist) 2)
-        (begin
-          (display "Changing address ")
-          (display (car arglist))
-          (newline)
-          (display "Old contents: ")
-          (display (mix-cell (string->number (car arglist))))
-          (newline))
-        (error "Wrong arguments" arglist))))
-
-(define smem-post-hook
-  (lambda (arglist)
-    (if (eq? (length arglist) 2)
-        (begin
-          (display "New contents: ")
-          (display (mix-cell (string->number (car arglist))))
-          (newline)))))
address@hidden example
address@hidden
-and we can install them using
-
address@hidden
-(mix-add-pre-hook 'smem smem-pre-hook)
-(mix-add-post-hook 'smem smem-post-hook)
address@hidden example
address@hidden
-Aferwards, a sample execution of @code{mix-smem} would look like this:
-
address@hidden
-guile> (mix-smem 2000 100)
-Changing address 2000
-Old contents: 0
-New contents: 100
-guile>
address@hidden example
-
address@hidden global hook
-
-You can add any number of hooks to a given command. They will be
-executed in the same order as they are registered. You can also define
-global post (pre) hooks, which will be called before (after) any
address@hidden command is executed. Global hook functions must admit two
-arguments, namely, a string naming the invoked command and a string list
-of its arguments, and they are installed using the Scheme functions
address@hidden and @code{mix-add-global-post-hook}. A
-simple example of global hook would be:
-
address@hidden
-guile> (define pre-hook
-         (lambda (cmd args)
-           (display cmd)
-           (display " invoked with arguments ")
-           (display args)
-           (newline)))
-guile> (mix-add-global-pre-hook pre-hook)
-ok
-guile> (mix-pmem 120 125)
-pmem invoked with arguments (120-125)
-0120: + 00 00 00 00 00 (0000000000)
-0121: + 00 00 00 00 00 (0000000000)
-0122: + 00 00 00 00 00 (0000000000)
-0123: + 00 00 00 00 00 (0000000000)
-0124: + 00 00 00 00 00 (0000000000)
-0125: + 00 00 00 00 00 (0000000000)
-guile>
address@hidden example
-
-Note that if you invoke @code{mixvm} commands within a global hook, its
-associated command hooks will be run. Thus, if you have installed both
-the @code{next} hooks described earlier and the global hook above,
-executing @code{mix-next} will yield the following result:
-
address@hidden
-guile> (mix-next 5)
-next invoked with arguments (5)
-slog invoked with arguments (off)
-MIXAL HELLO WORLD
-Stopped at line 7: MSG         ALF   "MIXAL"
-slog invoked with arguments (on)
-guile>
address@hidden example
-
-Adventurous readers may see the above global hook as the beginning of a
-command log utility or a macro recorder that saves your commands for
-replay.
-
address@hidden Break hooks,  , Command hooks, Hook functions
address@hidden Break hooks
-
address@hidden break hook
-
-We have seen in the previous section how to associate hooks to command
-execution, but they are not the whole story. You can also associate hook
-functions to program interruption, that is, specify functions that
-should be called every time the execution of a MIX program is stopped
-due to the presence of a breakpoint, either explicit or
-conditional. Break hooks take as arguments the line number and memory
-address at which the break occurred. A simple hook that logs the line
-and address of the breakpoint could be defined as:
-
address@hidden
-(define break-hook
-  (lambda (line address)
-    (display "Breakpoint encountered at line ")
-    (display line)
-    (display " and address ")
-    (display address)
-    (newline)))
address@hidden example
address@hidden
-and installed for explicit and conditional breakpoints using
-
address@hidden
-(mix-add-break-hook break-hook)
-(mix-add-cond-break-hook break-hook)
address@hidden example
address@hidden
-after that, every time the virtual machine encounters a breakpoint,
address@hidden shall be evaluated for address@hidden may have
-noticed that break hooks can be implemented in terms of command hooks
-associated to @code{mix-run} and @code{mix-next}. As a matter of fact,
-they @emph{are} implemented this way: take a look at the file
address@hidden@emph{install_dir}/share/mdk/mix-vm-stat.scm} if you are 
curious.}.
-
address@hidden Scheme scripts,  , Hook functions, Using mixguile
address@hidden Scheme scripts
address@hidden Scheme script
address@hidden non-interactive
-
-Another useful way of using @code{mixguile} is writing executable
-scripts that perform a set of commands for you. This is done using the
address@hidden switch @code{-s} (being a Guile shell, @code{mixguile}
-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
-time; you can write a Scheme script instead:
-
address@hidden
-#! /usr/bin/mixguile -s
-!#
-;;; runprimes: execute the primes.mix program
-
-;; load the file you want to run
-(mix-load "../samples/primes")
-;; execute it
-(mix-run)
-;; print the contents of registers
-(mix-pall)
-;; ...
address@hidden example
-
-Just save the above script to a file named, say, @file{runtest}, make it
-executable (@code{chmod +x runtest}), and, well, execute it from the
-Unix shell:
-
address@hidden
-$ ./runtest
-Program loaded. Start address: 3000
-Running ...
-... done
-Elapsed time: 190908 /Total program time: 190908 (Total uptime: 190908)
-rA: + 30 30 30 30 30 (0511305630)
-rX: + 30 30 32 32 39 (0511313959)
-rJ: + 47 18 (3026)
-rI1: + 00 00 (0000)     rI2: + 55 51 (3571)
-rI3: + 00 19 (0019)     rI4: + 31 51 (2035)
-rI5: + 00 00 (0000)     rI6: + 00 00 (0000)
-Overflow: F
-Cmp: L
-$
address@hidden example
-
-Note that this is far more flexible that running programs
-non-interactively using @code{mixvm} (@pxref{Non-interactive mode}), for
-you can execute any combination of commands you want from a Scheme
-script (not just running and dumping the registers). For additional
address@hidden command line options, see @ref{Invoking mixguile}.
-
address@hidden Using Scheme in mixvm and gmixvm,  , Using mixguile, Getting 
started
address@hidden  Using Scheme in @code{mixvm} and @code{gmixvm}
address@hidden @code{scmf}
-
-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
-offered by @code{mixvm} and @code{gmixvm}. This possibility is not
-limited to the @code{mixguile} shell. Actually, both @code{mixvm} and
address@hidden incorporate an embedded Guile interpreter, and can
-evaluate Scheme expressions. To evaluate a single-line expression at the
address@hidden or @code{gmixvm} command prompt, simply write it and press
-return (the command parser will recognise it as a Scheme expression
-because it is parenthesized, and will pass it to the Guile
-interpreter). A sample @code{mixvm} session using Scheme expressions
-could be:
-
address@hidden
-MIX > load hello
-Program loaded. Start address: 3000
-MIX > (define a (mix-loc))
-MIX > run
-Running ...
-MIXAL HELLO WORLD
-... done
-Elapsed time: 11 /Total program time: 11 (Total uptime: 11)
-MIX > (mix-pmem a)
-3000: + 46 58 00 19 37 (0786957541)
-MIX > (mix-pmem (mix-loc))
-3002: + 14 09 27 01 13 (0237350989)
-MIX >
address@hidden example
-
-You can also load and evaluate a file, using the @code{scmf}
-command like this:
-
address@hidden
-MIX> scmf /path/to/file/file.scm
address@hidden example
-
-Therefore, you have at your disposal all the @code{mixguile} goodies
-described above (new functions, new command definitions, hooks...)
-inside @code{mixvm} and @code{gmixvm}. In other words, these programs
-are extensible using Scheme. See @ref{Using mixguile} for examples of
-how to do it.
-

Index: doc/Press-use/MDK/mdk_install.texi.~1.12.~
===================================================================
RCS file: doc/Press-use/MDK/mdk_install.texi.~1.12.~
diff -N doc/Press-use/MDK/mdk_install.texi.~1.12.~
--- doc/Press-use/MDK/mdk_install.texi.~1.12.~  28 Jul 2003 18:18:00 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,286 +0,0 @@
address@hidden -*-texinfo-*-
address@hidden This is part of the GNU MDK Reference Manual.
address@hidden Copyright (C) 2000, 2001, 2002, 2003
address@hidden   Free Software Foundation, Inc.
address@hidden See the file mdk.texi for copying conditions.
-
address@hidden Installing MDK, MIX and MIXAL tutorial, Acknowledgments, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Installing @sc{mdk}
-
address@hidden
-* Download::
-* Requirements::
-* Basic installation::
-* Emacs support::
-* Special configure flags::
-* Supported platforms::
address@hidden menu
-
address@hidden Download, Requirements, Installing MDK, Installing MDK
address@hidden  node-name,  next,  previous,  up
address@hidden Download the source tarball
-
-GNU @sc{mdk} is distributed as a source tarball available for download in
-the following @acronym{URL}s:
-
address@hidden @bullet
address@hidden
address@hidden://ftp.gnu.org/pub/gnu/mdk}
address@hidden
address@hidden://www.gnu.org/prep/ftp.html, GNU mirrors}
address@hidden
address@hidden://sourceforge.net/project/showfiles.php?group_id=13897}
address@hidden itemize
-
-The above sites contain the latest stable releases of @sc{mdk}. The
-development branch is available at:
-
address@hidden @bullet
address@hidden
address@hidden://savannah.gnu.org/cvs/?group_id=118}
address@hidden itemize
-
-After you have downloaded the source tarball, unpack it in a directory
-of your choice using the command:
-
address@hidden
-tar xfvz mdk-X.Y.tar.gz
address@hidden example
-
address@hidden
-where @var{X.Y} stands for the downloaded version (the current stable
-release being version @value{VERSION}).
-
address@hidden Requirements, Basic installation, Download, Installing MDK
address@hidden  node-name,  next,  previous,  up
address@hidden Requirements
-
-In order to build and install @sc{mdk}, you will need the following
-libraries installed in your system:
-
address@hidden @minus
address@hidden
address@hidden://www.gtk.org, GLIB 1.2.0} (required)
address@hidden
address@hidden://www.gnu.org/software/flex/flex.html, GNU Flex 2.3} (required)
address@hidden
address@hidden://www.gtk.org, GTK 1.2.0} (optional)
address@hidden
address@hidden://ftp.gnome.org/pub/GNOME/stable/sources/libglade/, Libglade}
-(optional)
address@hidden
address@hidden://cnswww.cns.cwru.edu/php/chet/readline/rltop.html, GNU
-Readline}
-(optional)
address@hidden
address@hidden://www.gnu.org/software/guile, GNU Libguile 1.3} (optional)
address@hidden itemize
-
-If present, readline and history are used to provide command completion
-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}. Finally, if
-libguile is found, the @sc{mdk} utilities will be compiled with Guile
-support and will be extensible using Scheme.
-
address@hidden note}: you need both the libraries @emph{and} the
-headers; this means both the library package and the @file{-dev} package
-if you do not compile your libraries yourself (ex: installing
address@hidden and @file{libgtk1.2-dev} on Debian).
-
address@hidden Basic installation, Emacs support, Requirements, Installing MDK
address@hidden  node-name,  next,  previous,  up
address@hidden Basic installation
-
address@hidden uses GNU Autoconf and Automake tools, and, therefore, should
-be built and installed without hassle using the following commands
-inside the source directory:
-
address@hidden
-./configure
-make
-make install
address@hidden example
-
address@hidden
-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
-building the @code{gmixvm} graphical user interface. Upon completion,
-you should see a message with the configuration results like the
-following:
-
address@hidden
-*** GNU MDK 1.0 has been successfully configured. ***
-
-Type 'make' to build the following utilities:
-    - mixasm (MIX assembler)
-    - mixvm (MIX virtual machine, with readline support,
-             with guile support)
-    - gmixvm (mixvm GTK+ GUI, with guile support)
-    - mixguile (the mixvm guile shell)
address@hidden example
-
address@hidden
-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
-in the following locations:
-
address@hidden @minus
address@hidden
address@hidden/mixasm}
address@hidden
address@hidden/mixvm}
address@hidden
address@hidden/gmixvm}
address@hidden
address@hidden/mixguile}
address@hidden itemize
-
-You can run these programs from within their directories, but I
-recommend you to install them in proper locations using @code{make
-install} from a root shell.
-
address@hidden Emacs support, Special configure flags, Basic installation, 
Installing MDK
address@hidden  node-name,  next,  previous,  up
address@hidden Emacs support
-
address@hidden includes extensive support for Emacs. Upon installation, all
-the elisp code is installed in @file{PREFIX/share/mdk}, where
address@hidden stands for your installation root directory (e.g.
address@hidden/usr/local}). You can copy the elisp files to a directory that
-is in your load-path, or you can add the above directory to it.
-Assuming that the installing prefix is @file{/usr/local},
-you can do it by adding to your @file{.emacs} file the following line:
-
address@hidden
-(setq load-path (cons "/usr/local/share/mdk" load-path))
address@hidden lisp
-
address@hidden programs can be written using Emacs and the elisp program
address@hidden/mdk/mixal-mode.el}, contributed by @value{PIETER}. It
-provides font locking, interactive help, compiling assistance and
-invocation of the @code{MIX} virtual machine via a new major mode
-called @code{mixal-mode}. To start @code{mixal-mode} automatically
-whenever you edit a @code{MIXAL} source file, add the following lines
-to your @file{.emacs} file:
-
address@hidden
-(autoload 'mixal-mode "mixal-mode" t)
-(add-to-list 'auto-mode-alist '("\\.mixal\\'" . mixal-mode))
address@hidden lisp
-
-In addition, @code{mixvm} can be run within an Emacs @acronym{GUD}
-buffer using the elisp program @file{share/mdk/mixvm.el}, contributed
-by @value{PHILIP}. @file{mixvm.el} provides an interface between
address@hidden's @code{mixvm} and Emacs, via @acronym{GUD}. Place this file
-in your load-path, optionally adding the following line to your
address@hidden file:
-
address@hidden
-(autoload 'mixvm "mixvm" "mixvm/gud interaction" t)
address@hidden lisp
-
-
address@hidden Special configure flags, Supported platforms, Emacs support, 
Installing MDK
address@hidden  node-name,  next,  previous,  up
address@hidden Special configure flags
-
-You can fine-tune the configuration process using the following
-switches with configure:
-
address@hidden @w{--enable-gui[=yes|no]}
address@hidden --disable-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.
address@hidden defopt
-
address@hidden @w{--with-guile[=yes|no]}
address@hidden --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.
address@hidden defopt
-
address@hidden @w{--with-readline[=yes|no]}
address@hidden --without-readline
-Enables/disables the GNU Readline support for @code{mixvm}.  If the
-required libraries are missing (@pxref{Requirements}) the configure
-script with automatically disable this feature.
address@hidden defopt
-
-For additional, boilerplate configure options, see the @file{INSTALL}
-file, or run
-
address@hidden
-configure --help
address@hidden example
-
address@hidden Supported platforms,  , Special configure flags, Installing MDK
address@hidden  node-name,  next,  previous,  up
address@hidden Supported platforms
-
-GNU MDK has been tested in the following platforms:
-
address@hidden
address@hidden
-Debian GNU/Linux 2.2, 2.3, 3.0, 3.1
address@hidden
-Redhat GNU/Linux 8.0 (Ronald Cole), 7.0 (Agustin Navarro), 6.2
-(Roberto Ferrero)
address@hidden
-Mandrake 8.0 (Agustin Navarro)
address@hidden
-FreeBSD 4.2, 4.3, 4.4, 4.5 (Ying-Chieh Liao)
address@hidden
-Solaris 2.8/gcc 2.95.3 (Stephen Ramsay)
address@hidden
-MS Windows 98 SE/Cygwin 1.1.8-2 (Christoph von
-Nathusius)@footnote{Caveats: Christoph has only tested @code{mixvm} and
address@hidden 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
-functionalities on a first try. If you find problems with
-history/readline functionality, please try a newer/manually installed
-readline version.}
address@hidden
-Mac OS X 10.1.2 (Johan Swanljung)
address@hidden
-AMD Athlon, GNU/Linux version 2.4.2-2smp (Red Hat 7.1 (Seawolf)) (N.
-H. F. Beebe)
address@hidden
-Apple PowerPC G3, GNU/Linux 2.2.18-4hpmac (Red Hat Linux/PPC
-2000 Q4) (N. H. F. Beebe)
address@hidden
-DEC Alpha, GNU/Linux 2.2.19-6.2.1 (Red Hat 6.2) (N. H. F. Beebe)
address@hidden
-Compaq/DEC Alpha OSF/1 4.0F [ONLY after adding rsync's snprintf()
-implementation] (N. H. F. Beebe)
address@hidden
-IBM PowerPC AIX 4.2 (N. H. F. Beebe)
address@hidden
-Intel Pentium III, GNU/Linux 2.4.9-31smp (Red Hat 7.2 (Enigma)) (N. H.
-F. Beebe)
address@hidden
-SGI Origin 200, IRIX 6.5 (N.
-H. F. Beebe)
address@hidden
-Sun SPARC, GNU/Linux 2.2.19-6.2.1 (Red Hat 6.2) (N. H. F. Beebe)
address@hidden
-Sun SPARC, Solaris 2.8 (N. H. F. Beebe)
address@hidden itemize
-
address@hidden will probably work on any GNU/Linux or BSD platform. If you
-try it in a platform not listed above, please send a mail to
address@hidden@@gnu.org, the author}.
-
-
-
-

Index: doc/Press-use/MDK/mdk_intro.texi.~1.7.~
===================================================================
RCS file: doc/Press-use/MDK/mdk_intro.texi.~1.7.~
diff -N doc/Press-use/MDK/mdk_intro.texi.~1.7.~
--- doc/Press-use/MDK/mdk_intro.texi.~1.7.~     28 Jul 2003 18:18:00 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,70 +0,0 @@
address@hidden -*-texinfo-*-
address@hidden This is part of the GNU MDK Reference Manual.
address@hidden Copyright (C) 2000, 2001, 2003
address@hidden   Free Software Foundation, Inc.
address@hidden See the file mdk.texi for copying conditions.
-
address@hidden $Id: mdk_intro.texi.~1.7.~,v 1.1 2003/07/28 18:18:00 opus Exp $
-
address@hidden Introduction, Acknowledgments, Top, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Introduction
address@hidden Introduction
-
-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
-concepts and algorithms as they are presented.
-
-The MIX's architecture is a simplified version of those found in real
-CISC CPUs, and the MIX assembly language (MIXAL) provides a set of
-primitives that will be very familiar to any person with a minimum
-experience in assembly programming. The MIX/MIXAL definition is powerful
-and complete enough to provide a virtual development platform for
-writing quite complex programs, and close enough to real computers to be
-worth using when learning programming techniques. At any rate, if you
-want to learn or improve your programming skills, a MIX development
-environment would come in handy.
-
-The @sc{mdk} package aims at providing such virtual development
-environment on a GNU box. Thus, @sc{mdk} offers you a set of utilities
-to simulate the MIX computer and to write, compile, run and debug MIXAL
-programs. As of version @value{VERSION}, @sc{mdk} includes
-the following programs:
-
address@hidden @code
address@hidden mixasm
-MIXAL assembler. Assembler which translates MIXAL source files into
-programs that can be run (and debugged) by @code{mixvm}, @code{mixguile}
-or @code{gmixvm}.
address@hidden mixvm
-MIX virtual machine. Emulation of the MIX computer with a @acronym{CLI}.
address@hidden gmixvm
-A GTK+ GUI for the MIX virtual machine. Provides all of @code{mixvm}
-functionality accessible through a graphical interface.
address@hidden mixguile
-A Guile shell, with an embedded MIX virtual machine and built-in
-commands to manipulate it using Scheme.
address@hidden mixal-mode.el
-An Emacs major mode for MIXAL source files editing, providing syntax
-highlighting, documentation lookup and invocation of @code{mixvm}
-within Emacs.
address@hidden mixvm.el
-This elisp program allows running @code{mixvm} inside an Emacs GUD
-buffer, providing concurrent edition and debugging of MIXAL programs.
address@hidden table
-
address@hidden and @code{gmixvm} implement a simulator of the MIX
-computer, giving you a virtual machine for executing and debugging MIX
-programs. These binary programs could be written by hand, but it is
-easier to produce them compiling MIXAL source files, using the MIXAL
-assembler @code{mixasm}. On the other hand, @code{mixguile} offers you
-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
address@hidden are also able to interpret Scheme scripts (using an
-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.

Index: doc/Press-use/MDK/mdk_tut.texi.~1.11.~
===================================================================
RCS file: doc/Press-use/MDK/mdk_tut.texi.~1.11.~
diff -N doc/Press-use/MDK/mdk_tut.texi.~1.11.~
--- doc/Press-use/MDK/mdk_tut.texi.~1.11.~      28 Jul 2003 18:18:00 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,1315 +0,0 @@
address@hidden -*-texinfo-*-
address@hidden This is part of the GNU MDK Reference Manual.
address@hidden Copyright (C) 2000, 2001, 2002, 2003
address@hidden   Free Software Foundation, Inc.
address@hidden See the file mdk.texi for copying conditions.
-
address@hidden $Id: mdk_tut.texi.~1.11.~,v 1.1 2003/07/28 18:18:00 opus Exp $
-
address@hidden MIX and MIXAL tutorial, Getting started, Installing MDK, Top
address@hidden  node-name,  next,  previous,  up
address@hidden MIX and MIXAL tutorial
address@hidden MIX
address@hidden MIXAL
-
-In the book series @cite{The Art of Computer Programming}, by D. Knuth,
-a virtual computer, the MIX, is used by the author (together with the
-set of binary instructions that the virtual CPU accepts) to illustrate
-the algorithms and skills that every serious programmer should
-master. Like any other real computer, there is a symbolic assembler
-language that can be used to program the MIX: the MIX assembly language,
-or MIXAL for short.  In the following subsections you will find a tutorial
-on these topics, which will teach you the basics of the MIX architecture
-and how to program a MIX computer using MIXAL.
-
address@hidden
-* The MIX computer::            Architecture and instruction set
-                                of the MIX computer.
-* MIXAL::                       The MIX assembly language.
address@hidden menu
-
address@hidden The MIX computer, MIXAL, MIX and MIXAL tutorial, MIX and MIXAL 
tutorial
address@hidden  node-name,  next,  previous,  up
address@hidden The MIX computer
-
-In this section, you will find a description of the MIX computer,
-its components and instruction set.
-
address@hidden
-* MIX architecture::
-* MIX instruction set::
address@hidden menu
-
address@hidden MIX architecture, MIX instruction set, The MIX computer, The MIX 
computer
address@hidden  node-name,  next,  previous,  up
address@hidden MIX architecture
address@hidden byte
address@hidden MIX byte
address@hidden word
address@hidden MIX word
address@hidden MIX architecture
address@hidden MIX computer
address@hidden register
address@hidden MIX register
address@hidden field specification
address@hidden fspec
address@hidden instruction
address@hidden MIX instruction
address@hidden address
address@hidden memory cell
address@hidden cell
address@hidden memory
address@hidden index
-
-The basic information storage unit in the MIX computer is the
address@hidden, which stores positive values in the range 0-63 . Note that a
-MIX byte can be then represented as 6 bits, instead of the common 8 bits
-for a @emph{regular} byte. Unless otherwise stated, we shall use the
-word @dfn{byte} to refer to a MIX 6-bit byte.
-
-A MIX @dfn{word} is defined as a set of 5 bytes plus a sign. The bytes
-within a word are numbered from 1 to 5, being byte number one the most
-significant one. The sign is denoted by index 0. Graphically,
-
address@hidden
- -----------------------------------------------
-|   0   |   1   |   2   |   3   |   4   |   5   |
- -----------------------------------------------
-|  +/-  | byte  | byte  | byte  | byte  | byte  |
- -----------------------------------------------
address@hidden example
address@hidden
-Sample MIX words are @samp{- 12 00 11 01 63} and @samp{+ 12 11 34 43
-00}.
-
-You can refer to subfields within a word using a @dfn{field
-specification} or @dfn{fspec} of the form ``(@var{L}:@var{R})'', where
address@hidden denotes the first byte, and @var{R} the last byte of the
-subfield.
-When @var{L} is zero, the subfield includes the word's
-sign. An fspec can also be represented as a single value @code{F}, given
-by @code{F = 8*L + R} (thus the fspec @samp{(1:3)}, denoting the first
-three bytes of a word, is represented by the integer 11).
-
-The MIX computer stores information in @dfn{registers}, that can store
-either a word or two bytes and sign (see below), and @dfn{memory cells},
-each one containing a word. Specifically, the MIX computer has 4000
-memory cells with addresses 0 to 3999 (i.e., two bytes are enough to
-address a memory cell) and the following registers:
-
address@hidden rA
address@hidden rX
address@hidden rJ
address@hidden rIn
address@hidden register
-
address@hidden @asis
address@hidden @code{rA}
-A register. General purpose register holding a word. Usually its
-contents serves as the operand of arithmetic and storing instructions.
address@hidden @code{rX}
-X register. General purpose register holding a word. Often it acts as an
-extension or a replacement of @samp{rA}.
address@hidden @code{rJ}
-J (jump) register. This register stores positive two-byte values,
-usually representing a jump address.
address@hidden @code{rI1}, @code{rI2}, @code{rI3}, @code{rI4}, @code{rI5}, 
@code{rI6}
-Index registers. These six registers can store a signed two-byte
-value. Their contents are used as indexing values for the computation of
-effective memory addresses.
address@hidden table
-
address@hidden @sc{ov}
address@hidden @sc{cm}
address@hidden @code{un}
address@hidden overflow toggle
address@hidden comparison indicator
address@hidden input-output devices
address@hidden
-In addition, the MIX computer contains:
-
address@hidden @minus
address@hidden
-An @dfn{overflow toggle} (a single bit with values @dfn{on} or
address@hidden). In this manual, this toggle is denoted @sc{ov}.
address@hidden
-A @dfn{comparison indicator} (having three values: @dfn{EQUAL},
address@hidden or @dfn{LESS}). In this manual, this indicator is denoted
address@hidden, and its possible values are abbreviated as @dfn{E}, @dfn{G} and
address@hidden
address@hidden
-Input-output block devices. Each device is labelled as @code{un}, where
address@hidden runs from 0 to 20. In Knuth's definition, @code{u0} through
address@hidden are magnetic tape units, @code{u8} through @code{15} are disks
-and drums, @code{u16} is a card reader, @code{u17} is a card writer,
address@hidden is
-a line printer and, @code{u19} is a typewriter terminal, and @code{u20},
-a paper tape. Our implementation maps these devices to disk files,
-except for @code{u19}, which represents the standard output.
address@hidden itemize
-
-As noted above, the MIX computer communicates with the external world by
-a set of input-output devices which can be ``connected'' to it. The
-computer interchanges information using blocks of words whose length
-depends on the device at hand (@pxref{Devices}). These words are
-interpreted by the device either as binary information (for devices
-0-16), or as representing printable characters (devices 17-20). In the
-last case, each MIX byte is mapped onto a character according to the
-following table:
-
address@hidden  {00} {C} {00} {C} {00} {C} {00} {C}
address@hidden  00 @tab  @tab 01 @tab A @tab 02 @tab B @tab 03 @tab C
address@hidden  04 @tab D @tab 05 @tab E @tab 06 @tab F @tab 07 @tab G
address@hidden  08 @tab H @tab 09 @tab I @tab 10 @tab d @tab 11 @tab J
address@hidden  12 @tab K @tab 13 @tab L @tab 14 @tab M @tab 15 @tab N
address@hidden  16 @tab O @tab 17 @tab P @tab 18 @tab Q @tab 19 @tab R
address@hidden  20 @tab s @tab 21 @tab p @tab 22 @tab S @tab 23 @tab T
address@hidden  24 @tab U @tab 25 @tab V @tab 26 @tab W @tab 27 @tab X
address@hidden  28 @tab Y @tab 29 @tab Z @tab 30 @tab 0 @tab 31 @tab 1
address@hidden  32 @tab 2 @tab 33 @tab 3 @tab 34 @tab 4 @tab 35 @tab 5
address@hidden  36 @tab 6 @tab 37 @tab 7 @tab 38 @tab 8 @tab 39 @tab 9
address@hidden  40 @tab . @tab 41 @tab , @tab 42 @tab ( @tab 43 @tab )
address@hidden  44 @tab + @tab 45 @tab - @tab 46 @tab * @tab 47 @tab /
address@hidden  48 @tab = @tab 49 @tab $ @tab 50 @tab < @tab 51 @tab >
address@hidden  52 @tab @@ @tab 53 @tab ; @tab 54 @tab : @tab 55 @tab '
address@hidden multitable
address@hidden
-The value 0 represents a whitespace. Lowercase letters (d, s, p)
-correspond to symbols not representable as ASCII characters (uppercase
-delta, sigma and gamma, respectively), and byte values 56-63 have no
-associated character.
-
-Finally, the MIX computer features a virtual CPU which controls the
-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
-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).
-
-The next section, @xref{MIX instruction set}, gives a complete description
-of the available MIX binary instructions.
-
address@hidden MIX instruction set,  , MIX architecture, The MIX computer
address@hidden  node-name,  next,  previous,  up
address@hidden MIX instruction set
address@hidden instruction set
-
-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
-available to the MIX programmer.
-
address@hidden
-* Instruction structure::
-* Loading operators::
-* Storing operators::
-* Arithmetic operators::
-* Address transfer operators::
-* Comparison operators::
-* Jump operators::
-* Input-output operators::
-* Conversion operators::
-* Shift operators::
-* Miscellaneous operators::
-* Execution times::
address@hidden menu
-
address@hidden Instruction structure, Loading operators, MIX instruction set, 
MIX instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Instruction structure
-
-MIX @dfn{instructions} are codified as words with the following subfield
-structure:
-
address@hidden @columnfractions .15 .20 .65
address@hidden @emph{Subfield} @tab @emph{fspec} @tab @emph{Description}
address@hidden ADDRESS @tab (0:2)
address@hidden The first two bytes plus sign are the @dfn{address} field. 
Combined
-with the INDEX field, denotes the memory address to be used by the
-instruction.
address@hidden INDEX @tab (3:3)
address@hidden The third byte is the @dfn{index}, normally used for indexing the
address@hidden actual memory address the instruction refers to, is
-obtained by adding to ADDRESS the value of the @samp{rI} register
-denoted by INDEX.}.
address@hidden MOD @tab (4:4)
address@hidden Byte four is used either as an operation code modifier or as a 
field
-specification.
address@hidden OPCODE @tab (5:5)
address@hidden The last (least significant) byte in the word denotes the 
operation
-code.
address@hidden multitable
-
address@hidden
-or, graphically,
-
address@hidden
- ------------------------------------------------
-|   0   |   1   |   2   |   3   |   4   |   5    |
- ------------------------------------------------
-|        ADDRESS        | INDEX |  MOD  | OPCODE |
- ------------------------------------------------
address@hidden example
-
-For a given instruction, @samp{M} stands for
-the memory address obtained after indexing the ADDRESS subfield
-(using its INDEX byte), and @samp{V} is the contents of the
-subfield indicated by MOD of the memory cell with address @samp{M}. For
-instance, suppose that we have the following contents of MIX registers
-and memory cells:
-
address@hidden
-[rI2] = + 00 63
-[31] = - 10 11 00 11 22
address@hidden example
address@hidden
-where @samp{[n]} denotes the contents of the nth memory cell and
address@hidden the contents of register @address@hidden general,
address@hidden will denote the contents of entity @samp{X}; thus, by
-definition, @address@hidden = [M](MOD)}}.}.  Let us consider the binary
-instruction @address@hidden = - 00 32 02 11 10}}. For this instruction we
-have:
-
address@hidden
-ADDRESS = - 00 32 = -32
-INDEX = 02 = 2
-MOD = 11 = (1:3)
-OPCODE = 10
-
-M = ADDRESS + [rI2] = -32 + 63 = 31
-V = [M](MOD) = (- 10 11 00 11 22)(1:3) = + 00 00 10 11 00
address@hidden example
-
-Note that, when computing @samp{V} using a word and an fspec, we apply
-a left padding to the bytes selected by @samp{MOD} to obtain a
-complete word as the result.
-
-In the following subsections, we will
-assign to each MIX instruction a mnemonic, or symbolic name. For
-instance, the mnemonic of @samp{OPCODE} 10 is @samp{LD2}. Thus we can
-rewrite the above instruction as
-
address@hidden
-LD2  -32,2(1:3)
address@hidden example
address@hidden
-or, for a generic instruction:
-
address@hidden
-MNEMONIC  ADDRESS,INDEX(MOD)
address@hidden example
address@hidden
-Some instructions are identified by both the OPCODE and the MOD
-fields. In these cases, the MOD will not appear in the above symbolic
-representation. Also when ADDRESS or INDEX are zero, they can be
-omitted.  Finally, MOD defaults to (0:5) (meaning the
-whole word).
-
address@hidden Loading operators, Storing operators, Instruction structure, MIX 
instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Loading operators
address@hidden loading operators
-
-The following instructions are used to load memory contents into a
-register.
-
address@hidden @code
address@hidden LDA
-Put in rA the contents of cell no. M.
-OPCODE = 8, MOD = fspec. @code{rA <- V}.
address@hidden LDX
-Put in rX the contents of cell no. M.
-OPCODE = 15, MOD = fspec. @code{rX <- V}.
address@hidden LDi
-Put in rIi the contents of cell no. M.
-OPCODE = 8 + i, MOD = fspec. @code{rIi <- V}.
address@hidden LDAN
-Put in rA the contents of cell no. M, with opposite sign.
-OPCODE = 16, MOD = fspec. @code{rA <- -V}.
address@hidden LDXN
-Put in rX the contents of cell no. M, with opposite sign.
-OPCODE = 23, MOD = fspec. @code{rX <- -V}.
address@hidden LDiN
-Put in rIi the contents of cell no. M, with opposite sign.
-OPCODE = 16 + i, MOD = fspec. @code{rIi <- -V}.
address@hidden ftable
-
-In all the above load instructions the @samp{MOD} field selects the
-bytes of the memory cell with address @samp{M} which are loaded into the
-requisite register (indicated by the @samp{OPCODE}).  For instance, the
-word @address@hidden 00 13 01 27 11}} represents the instruction
-
address@hidden
-LD3    13,1(3:3)
- ^      ^ ^  ^
- |      | |  |
- |      | |   --- MOD = 27 = 3*8 + 3
- |      |  --- INDEX = 1
- |       --- ADDRESS = 00 13
-  --- OPCODE = 11
address@hidden example
-Let us suppose that, prior to this instruction execution, the state of
-the MIX computer is the following:
-
address@hidden
-[rI1] = - 00 01
-[rI3] = + 24 12
-[12] = - 01 02 03 04 05
address@hidden example
address@hidden
-As, in this case, @address@hidden = 13 + [rI1] = 12}}, we have
-
address@hidden
-V = [M](3:3) = (- 01 02 03 04 05)(3:3)
-  = + 00 00 00 00 03
address@hidden example
address@hidden
-(note that the specified subfield is left-padded with null bytes to
-complete a word). Hence, the MIX state, after the instruction execution,
-will be
-
address@hidden
-[rI1] = - 00 01
-[rI3] = + 00 03
-[12] = - 01 02 03 04 05
address@hidden example
-
-To further illustrate loading operators, the following table shows the
-contents of @samp{rX} after different @samp{LDX} instructions:
-
address@hidden @samp
address@hidden LDX 12(0:0)     [rX] = - 00 00 00 00 00
address@hidden LDX 12(0:1)     [rX] = - 00 00 00 00 01
address@hidden LDX 12(3:5)     [rX] = + 00 00 03 04 05
address@hidden LDX 12(3:4)     [rX] = + 00 00 00 03 04
address@hidden LDX 12(0:5)     [rX] = - 01 02 03 04 05
address@hidden table
-
-
address@hidden Storing operators, Arithmetic operators, Loading operators, MIX 
instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Storing operators
address@hidden storing operators
-
-The following instructions are the inverse of the load
-operations: they are used to store a subfield of a register
-into a memory location. Here, MOD represents the subfield of the memory
-cell that is to be overwritten with bytes from a register. These bytes
-are taken beginning by the rightmost side of the register.
-
address@hidden @code
address@hidden STA
-Store rA. OPCODE = 24, MOD = fspec. @code{V <- rA}.
address@hidden STX
-Store rX. OPCODE = 31, MOD = fspec. @code{V <- rX}.
address@hidden STi
-Store rIi. OPCODE = 24 + i, MOD = fspec. @code{V <- rIi}.
address@hidden STJ
-Store rJ. OPCODE = 32, MOD = fspec. @code{V <- rJ}.
address@hidden STZ
-Store zero. OPCODE = 33, MOD = fspec. @code{V <- 0}.
address@hidden ftable
-
-By way of example, consider the instruction @samp{STA 1200(2:3)}. It
-causes the MIX to fetch bytes no. 4 and 5 of register A and copy them to
-bytes 2 and 3 of memory cell no. 1200 (remember that, for these
-instructions, MOD specifies a subfield of @emph{the memory
-address}). The other bytes of the memory cell retain their
-values. Thus, if prior to the instruction execution we have
-
address@hidden
-[1200] = - 20 21 22 23 24
-[rA] = + 01 02 03 04 05
address@hidden example
address@hidden
-we will end up with
-
address@hidden
-[1200] = - 20 04 05 23 24
-[rA] = + 01 02 03 04 05
address@hidden example
-
-As a second example, @samp{ST2 1000(0)} will set the sign of
address@hidden to that of @samp{[rI2]}.
-
address@hidden Arithmetic operators, Address transfer operators, Storing 
operators, MIX instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Arithmetic operators
address@hidden arithmetic operators
-
-The following instructions perform arithmetic operations between rA and
-rX register and memory contents.
-
address@hidden @code
address@hidden ADD
-Add and set OV if overflow. OPCODE = 1, MOD = fspec.
address@hidden@code{rA <- rA +V}}.
address@hidden SUB
-Sub and set OV if overflow. OPCODE = 2, MOD = fspec.
address@hidden@code{rA <- rA - V}}.
address@hidden MUL
-Multiply V times rA and store the 10-bytes product in rAX.
-OPCODE = 3, MOD = fspec. @address@hidden <- rA x V}}.
address@hidden DIV
-rAX is considered a 10-bytes number, and it is divided by V.
-OPCODE = 4, MOD = fspec. @address@hidden <- rAX / V}}, @code{rX} <- reminder.
address@hidden ftable
-
-In all the above instructions, @samp{[rA]} is one of the operands
-of the binary arithmetic operation, the other being @samp{V} (that is,
-the specified subfield of the memory cell with address @samp{M}), padded
-with zero bytes on its left-side to complete a word. In multiplication
-and division, the register @samp{X} comes into play as a right-extension
-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
-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
-the overflow toggle is set to TRUE.
-
address@hidden Address transfer operators, Comparison operators, Arithmetic 
operators, MIX instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Address transfer operators
address@hidden address transfer operators
-
-In these instructions, @samp{M} (the address of the instruction after
-indexing) is used as a number instead of as the address of a memory
-cell. Consequently, @samp{M} can have any valid word value (i.e., it's
-not limited to the 0-3999 range of a memory address).
-
address@hidden @code
address@hidden ENTA
-Enter @samp{M} in [rA]. OPCODE = 48, MOD = 2. @code{rA <- M}.
address@hidden ENTX
-Enter @samp{M} in [rX]. OPCODE = 55, MOD = 2. @code{rX <- M}.
address@hidden ENTi
-Enter @samp{M} in [rIi]. OPCODE = 48 + i, MOD = 2. @code{rIi <- M}.
address@hidden ENNA
-Enter @samp{-M} in [rA]. OPCODE = 48, MOD = 3. @code{rA <- -M}.
address@hidden ENNX
-Enter @samp{-M} in [rX]. OPCODE = 55, MOD = 3. @code{rX <- -M}.
address@hidden ENNi
-Enter @samp{-M} in [rIi]. OPCODE = 48 + i, MOD = 3. @code{rIi <- -M}.
address@hidden INCA
-Increase [rA] by @samp{M}. OPCODE = 48, MOD = 0. @code{rA <- rA + M}.
address@hidden INCX
-Increase [rX] by @samp{M}. OPCODE = 55, MOD = 0. @code{rX <- rX + M}.
address@hidden INCi
-Increase [rIi] by @samp{M}. OPCODE = 48 + i, MOD = 0. @code{rIi <- rIi + M}.
address@hidden DECA
-Decrease [rA] by @samp{M}. OPCODE = 48, MOD = 1. @code{rA <- rA - M}.
address@hidden DECX
-Decrease [rX] by @samp{M}. OPCODE = 55, MOD = 1. @code{rX <- rX - M}.
address@hidden DECi
-Decrease [rIi] by @samp{M}. OPCODE = 48 + i, MaOD = 0. @code{rIi <- rIi - M}.
address@hidden ftable
-
-In the above instructions, the subfield @samp{ADDRESS} acts as an
-immediate (indexed) operand, and allow us to set directly the contents
-of the MIX registers without an indirection to the memory cells (in a
-real CPU this would mean that they are faster that the previously
-discussed instructions, whose operands are fetched from memory). So, if
-you want to store in @samp{rA} the value -2000 (- 00 00 00 31 16), you
-can use the binary instruction @w{+ 31 16 00 03 48}, or, symbolically,
-
address@hidden
-ENNA 2000
address@hidden example
address@hidden
-Used in conjuction with the store operations (@samp{STA}, @samp{STX},
-etc.), these instructions also allow you to set memory cells contents to
-concrete values.
-
-Note that in these address transfer operators, the @samp{MOD} field is
-not a subfield specificator, but serves to define (together with
address@hidden) the concrete operation to be performed.
-
address@hidden Comparison operators, Jump operators, Address transfer 
operators, MIX instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Comparison operators
address@hidden comparison operators
-
-So far, we have learned how to move values around between the MIX
-registers and its memory cells, and also how to perform arithmetic
-operations using these values. But, in order to write non-trivial
-programs, other functionalities are needed. One of the most common is
-the ability to compare two values, which, combined with jumps, will
-allow the execution of conditional statements.
-The following instructions compare the value of a register with @samp{V}, and
-set the @sc{cm} indicator to the result of the comparison (i.e. to
address@hidden, @samp{G} or @samp{L}, equal, greater or lesser respectively).
-
address@hidden @code
address@hidden CMPA
-Compare [rA] with V. OPCODE = 56, MOD = fspec.
address@hidden CMPX
-Compare [rX] with V. OPCODE = 63, MOD = fspec.
address@hidden CMPi
-Compare [rIi] with V. OPCODE = 56 + i, MOD = fspec.
address@hidden ftable
-
-As explained above, these instructions modify the value of the MIX
-comparison indicator; but maybe you are asking yourself how do you use
-this value: enter jump operators, in the next subsection.
-
address@hidden Jump operators, Input-output operators, Comparison operators, 
MIX instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Jump operators
address@hidden jump operators
-
-The MIX computer has an internal register, called the @dfn{location
-counter}, which stores the address of the next instruction to be fetched
-and executed by the virtual CPU. You cannot directly modify the contents
-of this internal register with a load instruction: after fetching the
-current instruction from memory, it is automatically increased in one
-unit by the MIX. However, there is a set of instructions (which we call
-jump instructions) which can alter the contents of the location counter
-provided some condition is met. When this occurs, the value of the next
-instruction address that would have been fetched in the absence of the
-jump is stored in @samp{rJ} (except for @code{JSJ}), and the location
-counter is set to the value of @samp{M} (so that the next instruction is
-fetched from this new address). Later on, you can return to the point
-when the jump occurred reading the address stored in @samp{rJ}.
-
-The MIX computer provides the following jump instructions:
-With these instructions you force a jump to the specified address. Use
address@hidden if you do not care about the return address.
-
address@hidden @code
address@hidden JMP
-Unconditional jump. OPCODE = 39, MOD = 0.
address@hidden JSJ
-Unconditional jump, but rJ is not modified. OPCODE = 39, MOD = 1.
address@hidden ftable
-
-These instructions check the overflow toggle to decide whether to jump
-or not.
-
address@hidden @code
address@hidden JOV
-Jump if OV is set (and turn it off). OPCODE = 39, MOD = 2.
address@hidden JNOV
-Jump if OV is not set (and turn it off). OPCODE = 39, MOD = 3.
address@hidden ftable
-
-In the following instructions, the jump is conditioned to the contents of the
-comparison flag:
-
address@hidden @code
address@hidden JL
-Jump if @address@hidden = L}}. OPCODE = 39, MOD = 4.
address@hidden JE
-Jump if @address@hidden = E}}. OPCODE = 39, MOD = 5.
address@hidden JG
-Jump if @address@hidden = G}}. OPCODE = 39, MOD = 6.
address@hidden JGE
-Jump if @code{[CM]} does not equal @code{L}. OPCODE = 39, MOD = 7.
address@hidden JNE
-Jump if @code{[CM]} does not equal @code{E}. OPCODE = 39, MOD = 8.
address@hidden JLE
-Jump if @code{[CM]} does not equal @code{G}. OPCODE = 39, MOD = 9.
address@hidden ftable
-
-You can also jump conditioned to the value stored in the MIX registers,
-using the following instructions:
-
address@hidden @code
address@hidden JAN
address@hidden JAZ
address@hidden JAP
address@hidden JANN
address@hidden JANZ
address@hidden JANP
-Jump if the content of rA is, respectively, negative, zero, positive,
-non-negative, non-zero or non-positive.
-OPCODE = 40, MOD = 0, 1, 2, 3, 4, 5.
address@hidden JXN
address@hidden JXZ
address@hidden JXP
address@hidden JXNN
address@hidden JXNZ
address@hidden JXNP
-Jump if the content of rX is, respectively, negative, zero, positive,
-non-negative, non-zero or non-positive.
-OPCODE = 47, MOD = 0, 1, 2, 3, 4, 5.
address@hidden JiN
address@hidden JiZ
address@hidden JiP
address@hidden JiNN
address@hidden JiNZ
address@hidden JiNP
-Jump if the content of rIi is, respectively, negative, zero, positive,
-non-negative, non-zero or non-positive.
-OPCODE = 40 + i, MOD = 0, 1, 2, 3, 4, 5.
address@hidden ftable
-
-
address@hidden Input-output operators, Conversion operators, Jump operators, 
MIX instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Input-output operators
address@hidden input-output operators
-
-As explained in previous sections (@pxref{MIX architecture}), the MIX
-computer can interact with a series of block devices. To that end, you
-have at your disposal the following instructions:
-
address@hidden @code
address@hidden IN
-Transfer a block of words from the specified unit to memory, starting at
-address M.
-OPCODE = 36, MOD = I/O unit.
address@hidden OUT
-Transfer a block of words from memory (starting at address M) to the
-specified unit.
-OPCODE = 37, MOD = I/O unit.
address@hidden IOC
-Perfom a control operation (given by M) on the specified unit.
-OPCODE = 35, MOD = I/O unit.
address@hidden JRED
-Jump to M if the specified unit is ready.
-OPCODE = 38, MOD = I/O unit.
address@hidden JBUS
-Jump to M if the specified unit is busy.
-OPCODE = 34, MOD = I/O unit.
address@hidden ftable
address@hidden
-In all the above instructions, the @samp{MOD} subfile must be in the
-range 0-20, since it denotes the operation's target device. The
address@hidden instruction only makes sense for tape devices (@samp{MOD} =
-0-7 or 20): it shifts the read/write pointer by the number of words
-given by @samp{M} (if it equals zero, the tape is rewound)@footnote{In
-Knuth's original definition, there are other control operations
-available, but they do not make sense when implementing the block
-devices as disk files (as we do in @sc{mdk} simulator). For the same
-reason, @sc{mdk} devices are always ready, since all input-output
-operations are performed using synchronous system calls.}.
-
-
address@hidden Conversion operators, Shift operators, Input-output operators, 
MIX instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Conversion operators
address@hidden conversion operators
-
-The following instructions convert between numerical values and their
-character representations.
-
address@hidden @code
address@hidden NUM
-Convert rAX, assumed to contain a character representation of a number,
-to its numerical value and store it in rA.
-OPCODE = 5, MOD = 0.
address@hidden CHAR
-Convert the number stored in rA to a character representation and store
-it in rAX.
-OPCODE = 5, MOD = 1.
address@hidden ftable
address@hidden
-Digits are represented in MIX by the range of values 30-39 (digits
-0-9). Thus, if the contents of @samp{rA} and @samp{rX} are, for instance,
-
address@hidden
-[rA] = + 30 30 31 32 33
-[rX] = + 31 35 39 30 34
address@hidden example
address@hidden
-the represented number is 0012315904, and @samp{NUM} will store this
-value in @samp{rA} (i.e., we end up with @samp{[rA]} = @w{+ 0 46 62 52
-0} = 12315904).
-
-If any byte in @samp{rA} or @samp{rB} does not belong to the range
-30-39, it is interpreted by @samp{NUM} as the digit obtained by taking
-its value modulo 10. E.g. values 0, 10, 20, 30, 40, 50, 60 all represent the
-digit 0; 2, 12, 22, etc. represent the digit 2, and so on. For
-instance, the number 0012315904 mentioned above could also be
-represented as
-
address@hidden
-[rA] = + 10 40 31 52 23
-[rX] = + 11 35 49 20 54
address@hidden example
-
address@hidden performs the inverse operation, using only the values 30
-to 39 for representing digits 0-9.
-
address@hidden Shift operators, Miscellaneous operators, Conversion operators, 
MIX instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Shift operators
address@hidden shift
address@hidden shift operators
-
-The following instructions perform byte-wise shifts of the contents of
address@hidden and @samp{rX}.
-
address@hidden @code
address@hidden SLA
address@hidden SRA
address@hidden SLAX
address@hidden SRAX
address@hidden SLC
address@hidden SRC
-Shift rA or rAX left, right, or rAX circularly (see example below)
-left or right. M specifies the number of bytes to be shifted.
-OPCODE = 6, MOD = 0, 1, 2, 3, 4, 5.
address@hidden ftable
address@hidden
-If we begin with, say, @samp{[rA]} = @w{- 01 02 03 04 05}, we would
-have the following modifications to @samp{rA} contents when performing
-the instructions on the left column:
-
address@hidden {SLA 00} {[rA] = - 00 00 00 00 00}
address@hidden SLA 2 @tab [rA] = - 03 04 05 00 00
address@hidden SLA 6 @tab [rA] = - 00 00 00 00 00
address@hidden SRA 1 @tab [rA] = - 00 01 02 03 04
address@hidden multitable
address@hidden
-Note that the sign is unaffected by shift operations. On the other
-hand, @samp{SLC}, @samp{SRC}, @samp{SLAX} and @samp{SRAX} treat
address@hidden and @samp{rX} as a single 10-bytes register (ignoring again
-the signs). For instance, if we begin with @samp{[rA]} = @w{+ 01 02 03
-04 05} and @samp{[rX]} = @w{- 06 07 08 09 10}, we would have:
-
address@hidden {SLC 00} {[rA] = - 00 00 00 00 00} {[rA] = - 00 00 00 00 00}
address@hidden SLC 3 @tab [rA] =  + 04 05 06 07 08 @tab [rX] = - 09 10 01 02 03
address@hidden SLAX 3 @tab [rA] = + 04 05 06 07 08 @tab [rX] = - 09 10 00 00 00
address@hidden SRC 4 @tab [rA] =  + 07 08 09 10 01 @tab [rX] = - 02 03 04 05 06
address@hidden SRAX 4 @tab [rA] =  + 00 00 00 00 01 @tab [rX] = - 02 03 04 05 06
address@hidden multitable
-
address@hidden Miscellaneous operators, Execution times, Shift operators, MIX 
instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Miscellaneous operators
address@hidden miscellaneous operators
-
-Finally, we list in the following table three miscellaneous MIX
-instructions which do not fit in any of the previous subsections:
-
address@hidden @code
address@hidden MOVE
-Move MOD words from M to the location stored in rI1.
-OPCODE = 7, MOD = no. of words.
address@hidden NOP
-No operation. OPCODE = 0, MOD = 0.
address@hidden HLT
-Halt. Stops instruction fetching. OPCODE = 5, MOD = 2.
address@hidden ftable
address@hidden
-The only effect of executing @samp{NOP} is increasing the location
-counter, while @samp{HLT} usually marks program termination.
-
address@hidden Execution times,  , Miscellaneous operators, MIX instruction set
address@hidden  node-name,  next,  previous,  up
address@hidden Execution times
-
address@hidden exection time
address@hidden 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
-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
-behaviour, we need a measure of how long execution of a single
-instruction takes in our (virtual) CPU. Therefore, each MIX
-instruction will have an associated execution time, given in arbitrary
-units (in a real computer, the value of this unit will depend on the
-hardware configuration). When our MIX virtual machine executes
-programs, it will (optionally) give you the value of their execution
-time based upon the execution time of each single instruction.
-
-In the following table, the execution times (in the above mentioned
-arbitrary units) of the MIX instructions are given.
-
address@hidden {INSSSS} {01} {INSSSS} {01} {INSSSS} {01} {INSSSS} {01}
address@hidden @code{NOP} @tab 1 @tab @code{ADD} @tab 2 @tab @code{SUB}
address@hidden 2 @tab @code{MUL} @tab 10
address@hidden @code{DIV} @tab 12 @tab @code{NUM} @tab 10 @tab @code{CHAR}
address@hidden 10 @tab @code{HLT} @tab 10
address@hidden @code{SLx} @tab 2 @tab @code{SRx} @tab 2 @tab @code{LDx}
address@hidden  2 @tab @code{STx} @tab 2
address@hidden @code{JBUS} @tab 1 @tab @code{IOC} @tab 1 @tab @code{IN}
address@hidden  address@hidden @code{OUT} @tab 1
address@hidden @code{JRED} @tab 1 @tab @code{Jx} @tab 1 @tab @code{INCx}
address@hidden  1 @tab @code{DECx} @tab 1
address@hidden @code{ENTx} @tab 1 @tab @code{ENNx} @tab 1 @tab @code{CMPx}
address@hidden  1 @tab @code{MOVE} @tab 1+2F
address@hidden multitable
-
-In the above table, 'F' stands for the number of blocks to be moved
-(given by the @code{FSPEC} subfield of the instruction); @code{SLx} and
address@hidden are a short cut for the byte-shifting operations; @code{LDx}
-denote all the loading operations; @code{STx} are the storing
-operations; @code{Jx} stands for all the jump operations, and so on with
-the rest of abbreviations.
-
address@hidden MIXAL,  , The MIX computer, MIX and MIXAL tutorial
address@hidden  node-name,  next,  previous,  up
address@hidden MIXAL
address@hidden MIXAL
address@hidden MIX assembly language
address@hidden assembly
-
-In the previous sections we have listed all the available MIX binary
-instructions. As we have shown, each instruction is represented by a
-word which is fetched from memory and executed by the MIX virtual
-CPU. As is the case with real computers, the MIX knows how to decode
-instructions in binary format (the so--called machine language), but a
-human programmer would have a tough time if she were to write her
-programs in machine language. Fortunately, the MIX computer can be
-programmed using an assembly language, MIXAL, which provides a symbolic
-way of writing the binary instructions understood by the imaginary MIX
-computer. If you have used assembler languages before, you will find
-MIXAL a very familiar language. MIXAL source files are translated
-to machine language by a MIX assembler, which produces a binary file (the
-actual MIX program) which can be directly loaded into the MIX memory and
-subsequently executed.
-
-In this section, we describe MIXAL, the MIX assembly language. The
-implementation of the MIX assembler program and MIX computer simulator
-provided by @sc{mdk} are described later on (@pxref{Getting started}).
-
address@hidden
-* Basic structure::             Writing basic MIXAL programs.
-* MIXAL directives::            Assembler directives.
-* Expressions::                 Evaluation of expressions.
-* W-expressions::               Evaluation of w-expressions.
-* Local symbols::               Special symbol table entries.
-* Literal constants::           Specifying an immediate operand.
address@hidden menu
-
address@hidden Basic structure, MIXAL directives, MIXAL, MIXAL
address@hidden  node-name,  next,  previous,  up
address@hidden Basic program structure
-
-The MIX assembler reads MIXAL files line by line, producing, when
-required, a binary instruction, which is associated to a predefined
-memory address. To keep track of the current address, the assembler
-maintains an internal location counter which is incremented each time an
-instruction is compiled. In addition to MIX instructions, you can
-include in MIXAL file assembly directives (or pseudoinstructions)
-addressed at the assembler itself (for instance, telling it where the
-program starts and ends, or to reposition the location counter; see below).
-
-MIX instructions and assembler address@hidden shall call them,
-collectively, MIXAL instructions.} are written in MIXAL (one per
-source file line) according to the following pattern:
-
address@hidden
-[LABEL]   MNEMONIC  [OPERAND]   [COMMENT]
address@hidden example
-
address@hidden
-where @samp{OPERAND} is of the form
-
address@hidden
-[ADDRESS][,INDEX][(MOD)]
address@hidden example
-
-Items between square brackets are optional, and
-
address@hidden @code
address@hidden LABEL
-is an alphanumeric identifier (a @dfn{symbol}) which gets the current
-value of the location counter, and can be used in subsequent
-expressions,
address@hidden MNEMONIC
-is a literal denoting the operation code of the instruction
-(e.g. @code{LDA}, @code{STA}; see @pxref{MIX instruction set}) or an
-assembly pseudoinstruction (e.g. @code{ORG}, @code{EQU}),
address@hidden ADDRESS
-is an expression evaluating to the address subfield of the instruction,
address@hidden INDEX
-is an expression evaluating to the index subfield of the instruction, which
-defaults to 0 (i.e., no use of indexing) and can only be used when
address@hidden is present,
address@hidden MOD
-is an expression evaluating to the mod subfield of the instruction. Its
-default value, when omitted, depends on @code{OPCODE},
address@hidden COMMENT
-any number of spaces after the operand mark the beggining 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
address@hidden field).
address@hidden table
-
-Note that spaces are @emph{not} allowed between the @code{ADDRESS},
address@hidden and @code{MOD} fields if they are present. White space is
-used to separate the label, operation code and operand parts of the
address@hidden fact, Knuth's definition of MIXAL restricts the
-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
-are:
address@hidden
-HERE     LDA  2000         HERE represents the current location counter
-         LDX  HERE,2(1:3)  this is a comment
-         JMP  1234
address@hidden example
-
address@hidden MIXAL directives, Expressions, Basic structure, MIXAL
address@hidden  node-name,  next,  previous,  up
address@hidden MIXAL directives
-
-MIXAL instructions can be either one of the MIX machine instructions
-(@pxref{MIX instruction set}) or one of the following assembly
-pseudoinstructions:
-
address@hidden @code
address@hidden ORIG
-Sets the value of the memory address to which following instructions
-will be allocated after compilation.
address@hidden EQU
-Used to define a symbol's value, e.g. @address@hidden  EQU  2*200/3}}.
address@hidden CON
-The value of the given expression is copied directly into the current
-memory address.
address@hidden ALF
-Takes as operand five characters, constituting the five bytes of a word
-which is copied directly into the current memory address.
address@hidden END
-Marks the end of the program. Its operand gives the start address for
-program execution.
address@hidden ftable
-
-The operand of @code{ORIG}, @code{EQU}, @code{CON} and @code{END} can be
-any expression evaluating to a constant MIX word, i.e., either a simple
-MIXAL expression (composed of numbers, symbols and binary operators,
address@hidden) or a w-expression (@pxref{W-expressions}).
-
-All MIXAL programs must contain an @code{END} directive, with a twofold
-end: first, it marks the end of the assembler job, and, in the second
-place, its (mandatory) operand indicates the start address for the
-compiled program (that is, the address at which the virtual MIX machine
-must begin fetching instructions after loading the program). It is also
-very common (although not mandatory) to include at least an @code{ORIG}
-directive to mark the initial value of the assembler's location counter
-(remember that it stores the address associated with each compiled MIX
-instruction). Thus, a minimal MIXAL program would be
-
address@hidden
-          ORIG  2000    set the initial compilation adress
-          NOP           this instruction will be loaded at adress 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
address@hidden example
address@hidden
-The assembler will generate two binary instructions (@code{NOP} (@w{+ 00
-00 00 00 00}) and @code{HLT} (+ 00 00 02 05)), which will be loaded at
-addresses 2000 and 2001. Execution of the program will begin at address
-2000. Every MIXAL program should also include a @code{HLT} instruction,
-which will mark the end of program execution (but not of program
-compilation).
-
-The @code{EQU} directive allows the definition of symbolic names for
-specific values. For instance, we could rewrite the above program as
-follows:
-
address@hidden
-START     EQU   2000
-          ORIG  START
-          NOP
-          HLT
-          END   START
address@hidden example
address@hidden
-which would give rise to the same compiled code. Symbolic constants (or
-symbols, for short) can also be implicitly defined placing them in the
address@hidden field of a MIXAL instruction: in this case, the assembler
-assigns to the symbol the value of the location counter before compiling
-the line. Hence, a third way of writing our trivial program is
-
address@hidden
-          ORIG  2000
-START     NOP
-          HLT
-          END   START
address@hidden example
-
-The @code{CON} directive allows you to directly specify the contents of
-the memory address pointed by the location counter. For instance, when
-the assembler encounters the following code snippet
-
address@hidden
-          ORIG  1150
-          CON   -1823473
address@hidden example
address@hidden
-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
-as a set of five (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 directive
-comes in handy when you need to store printable messages in a memory
-address, as in the following example:
-
address@hidden
-          OUT  MSG       MSG is not yet defined here (future reference)
-MSG       ALF  "THIS "   MSG gets defined here
-          ALF  "IS A "
-          ALF  "MESSA"
-          ALF  "GE.  "
address@hidden example
address@hidden
-The above snippet also shows the use of a @dfn{future reference}, that
-is, the usage of a symbol (@code{MSG} in the example) prior of its actual
-definition. The MIXAL assembler is able to handle future references
-subject to some limitations which are described in the following section
-(@pxref{Expressions}).
-
address@hidden comments
-
-Any line starting with an asterisk is treated as a comment and ignored
-by the assembler.
-
address@hidden
-* This is a comment: this line is ignored.
-    * This line is an error: * must be in column 1.
address@hidden example
-
-As noted in the previous section, comments can also be located after the
address@hidden field of an instruction, separated from it by white
-space, as in
-
address@hidden
-LABEL     LDA   100  This is also a comment
address@hidden example
-
address@hidden Expressions, W-expressions, MIXAL directives, MIXAL
address@hidden  node-name,  next,  previous,  up
address@hidden Expressions
address@hidden operator
address@hidden binary operator
address@hidden unary operator
-The @code{ADDRESS}, @code{INDEX} and @code{MOD} fields of a MIXAL
-instruction can be expressions, formed by numbers, identifiers and
-binary operators (@code{+ - * / // :}). @code{+} and @code{-} can also
-be used as unary operators. Operator precedence is from left to right:
-there is no other operator precedence rule, and parentheses cannot be
-used for grouping. A stand-alone asterisk denotes the current memory
-location; thus, for instance,
-
address@hidden
-     4+2**
address@hidden example
-
address@hidden
-evaluates to 6 (4 plus 2) times the current memory location. White space
-is not allowed within expressions.
-
-The special binary operator @code{:} has the same meaning as in fspecs,
-i.e.,
-
address@hidden
-A:B = 8*A + B
address@hidden example
address@hidden
-while @code{A//B} stands for the quotient of the ten-byte number 
@address@hidden 00
-00 00 00 00} (that is, A right-padded with 5 null bytes or, what amounts
-to the same, multiplied by 64 to the fifth power) divided by
address@hidden Sample expressions are:
-
address@hidden
-18-8*3 = 30
-14/3 = 4
-1+3:11 = 4:11 = 43
-1//64 = (01 00 00 00 00 00)/(00 00 00 01 00) = (01 00 00 00 00)
address@hidden example
address@hidden
-Note that all MIXAL expressions evaluate to a MIX word (by definition).
-
-All symbols appearing within an expression must be previously defined. Future
-references are only allowed when appearing standalone (or modified by
-an unary operator) in the @code{ADDRESS} part of a MIXAL instruction,
-e.g.
-
address@hidden
-* OK: stand alone future reference
-         STA  -S1(1:5)
-* ERROR: future reference in expression
-         LDX  2-S1
-S1       LD1  2000
address@hidden example
-
address@hidden W-expressions, Local symbols, Expressions, MIXAL
address@hidden  node-name,  next,  previous,  up
address@hidden W-expressions
address@hidden w-expressions
-
-Besides expressions, as described above (@pxref{Expressions}), the MIXAL
-assembler is able to handle the so called @dfn{w-expressions} as the
-operands of the directives @code{ORIG}, @code{EQU}, @code{CON} and
address@hidden (@pxref{MIXAL directives}). The general form of a
-w-expression is the following:
-
address@hidden
-     WEXP = EXP[(EXP)][,WEXP]
address@hidden example
address@hidden
-where @code{EXP} stands for an expression and square brackets denote
-optional items. Thus, a w-expression is made by an expression, followed
-by an optional expression between parenthesis, followed by any number
-of similar constructs separated by commas. Sample w-expressions are:
-
address@hidden
-2000
-235(3)
-S1+3(S2),3000
-S1,S2(3:5),23
address@hidden example
-
-W-expressions are evaluated from left to right as follows:
-
address@hidden
address@hidden
-Start with an accumulated result @samp{w} equal to 0.
address@hidden
-Take the first expression of the comma-separated list and evaluate
-it. For instance, if the w-expression is @samp{S1+2(2:4),2000(S2)}, we
-evaluate first @samp{S1+2}; let's suppose that @samp{S1} equals
-265230: then @samp{S1+2 = 265232 = + 00 01 00 48 16}.
address@hidden
-Evaluate the expression within parenthesis, reducing it to an f-spec
-of the form @samp{L:R}. In our previous example, the expression
-between parenthesis already has the desired form: 2:4.
address@hidden
-Substitute the bytes of the accumulated result @samp{w} designated by
-the f-spec using those of the previous expression value. In our sample,
address@hidden = + 00 00 00 00 00}, and we must substitute bytes 2, 3 and 4 of
address@hidden using values from 265232. We need 3 bytes, and we take the
-least significant ones: 00, 48, and 16, and insert them in positions
-2, 3 and 4 of @samp{w}, obtaining @samp{w = + 00 00 48 16 00}.
address@hidden
-Repeat this operation with the remaining terms, acting on the new
-value of @samp{w}. In our example, if, say, @samp{S2 = 1:1}, we must
-substitute the first byte of @samp{w} using one byte (the least
-significant) from 2000, that is, 16 (since 2000 = + 00 00 00 31 16)
-and, therefore, we obtain @samp{w = + 16 00 48 16 00}; summing up, we
-have obtained @samp{265232(1:4),2000(1:1) = + 16 00 48 16 00 =
-268633088}.
address@hidden itemize
-
-As a second example, in the w-expression
address@hidden
-1(1:2),66(4:5)
address@hidden example
address@hidden
-we first take two bytes from 1 (00 and 01) and store them as bytes 1 and
-2 of the result (obtaining @address@hidden 00 01 00 00 00}}) and, afterwards,
-take two bytes from 66 (01 and 02) and store them as bytes 4 and 5 of
-the result, obtaining @address@hidden 00 01 00 01 02}} (262210). The process
-is repeated for each new comma-separated example. For instance:
-
address@hidden
-1(1:1),2(2:2),3(3:3),4(4:4) = 01 02 03 04 00
address@hidden example
-
-As stated before, w-expressions can only appear as the operands of MIXAL
-directives taking a constant value (@code{ORIG}, @code{EQU}, @code{CON}
-and @code{END}). Future references are @emph{not} allowed within
-w-expressions (i.e., all symbols appearing in a w-expression must be
-defined before it is used).
-
address@hidden Local symbols, Literal constants, W-expressions, MIXAL
address@hidden  node-name,  next,  previous,  up
address@hidden Local symbols
address@hidden local symbols
-
-Besides user defined symbols, MIXAL programmers can use the so called
address@hidden symbols}, which are symbols of the form @code{[1-9][HBF]}. A
-local symbol @code{nB} refers to the address of the last previous
-occurrence of @code{nH} as a label, while @code{nF} refers to the next
address@hidden occurrence. Unlike user defined symbols, @code{nH} can appear
-multiple times in the @code{LABEL} part of different MIXAL
-instructions. The following code shows an instance of local symbols'
-usage:
-
address@hidden
-* line 1
-1H    LDA  100
-* line 2: 1B refers to address of line 1, 3F refers to address of line 4
-      STA  3F,2(1B//2)
-* line 3: redefinition of 1H
-1H    STZ
-* line 4: 1B refers to address of line 3
-3H    JMP  1B
address@hidden example
-
-Note that a @code{B} local symbol never refers to a definition in its
-own line, that is, in the following program:
-
address@hidden
-               ORIG 1999
-ST             NOP
-3H             EQU 69
-3H             ENTA 3B  local symbol 3B refers to 3H in previous line
-               HLT
-               END ST
address@hidden example
address@hidden
-the contents of @samp{rA} is set to 69 and @emph{not} to 2001. An
-specially tricky case occurs when using local symbols in conjunction
-with @code{ORIG} pseudoinstructions. To address@hidden author wants to
-thank Philip E. King for pointing these two special cases of local
-symbol usage to him.},
-
address@hidden
-               ORIG 1999
-ST             NOP
-3H             CON 10
-               ENT1 *
-               LDA 3B
-** rI1 is 2001, rA is 10.  So far so good!
-3H             ORIG 3B+1000
-** at this point 3H equals 2003
-** and the location counter equals 3000.
-               ENT2 *
-               LDX 3B
-** rI2 contains 3000, rX contains 2003.
-               HLT
-               END ST
address@hidden example
-
address@hidden Literal constants,  , Local symbols, MIXAL
address@hidden  node-name,  next,  previous,  up
address@hidden Literal constants
address@hidden literal constants
-
-MIXAL allows the introduction of @dfn{literal constants}, which are
-automatically stored in memory addresses after the end of the program by
-the assembler. Literal constants are denoted as @code{=wexp=}, where
address@hidden is a w-expression (@pxref{W-expressions}). For instance, the
-code
-
address@hidden
-L         EQU   5
-          LDA   =20-L=
address@hidden example
-
-causes the assembler to add after the program's end an instruction
-with contents 15 (@samp{20-L}), and to assemble the above code as the
-instruction @address@hidden LDA a}}, where @code{a} stands for the address
-in which the value 15 is stored. In other words, the compiled code is
-equivalent to the following:
-
address@hidden
-L         EQU  5
-          LDA  a
address@hidden
-a         CON  20-L
-          END  start
address@hidden example
-

Index: gear/BlueSuedeGnu-print.html~
===================================================================
RCS file: gear/BlueSuedeGnu-print.html~
diff -N gear/BlueSuedeGnu-print.html~
--- gear/BlueSuedeGnu-print.html~       5 May 2005 19:37:09 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,107 +0,0 @@
-<!-- This is a boilerplate for the web pages used in the GNU project. -->
-<!--      Please change it according to specifications -->
-<!--      and THEN DELETE THESE LINES !!!! -->
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
-<TITLE>GNU Gear: Blue Suede Gnu Art Print - GNU Project - Free Software 
Foundation (FSF)</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<H3>GNU Gear: Blue Suede Gnu Art Print</H3>
-<A HREF="/graphics/agnuhead.html"><IMG SRC="/graphics/gnu-head-sm.jpg"
-   ALT=" [image of the Head of a GNU] "
-   WIDTH="129" HEIGHT="122"></A>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/poster-gpl.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-<center>
-
-<h3>Blue Suede Gnu Art Print</h3>
-
-<img src="BlueSuedeGnu-print.png" alt="[Image of the Blue Suede Gnu
-       Art Print]">
-<br>
-
-<!-- <a href="/gear/poster-gpl-full.html">A larger image of the poster is
-available</a> (430K). -->
-
-</center>
-<p>
-This is a print is made from the original artist's drawing for a quilt
-made several years ago. It was awarded to the winner of the Software
-Freedom Award.
-<p>
-
-<ul>
-<li> Signed by both the artist and Richard Stallman in pencil in the
-white border area just below the image.
-<li> English Measurements:
-<ul><li> Total print size: 8 1/2" wide x 11" tall
-    <li> Image area: 6 13/16" wide x 10 1/4" tall </ul>
-<li> Metric Measurements:
-<ul><li> Total print size: 21.5 cm wide by 28 cm tall
-    <li> Image area: 17.5cm wide by 26 cm tall </ul>
-<li> Limited edition print is numbered. Only 24 prints in series.
-<li> Price $125.00, unframed
-</ul>
-
-<a href="https://agia.fsf.org/#posters";>Order Now!</a><p><br>
-
-
-<a href="/gear/gear.html">See more GNU Gear</a>, or check out <a
-href="/doc/gnupresspub.html">GNU Press' site</a> for printed free software
-books available for purchase.
-
-<p>
-
-<HR>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/poster-gpl.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-Return to <A HREF="/home.html">GNU's home page</A>.
-<P>
-
-Please send FSF &amp; GNU inquiries &amp; questions to 
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-There are also <A HREF="/home.html#ContactInfo">other ways to
-contact</A> the FSF.
-<P>
-
-Please send comments on these web pages to
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>,
-send other questions to
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-<P>
-Copyright (C) 2001 Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA  02110,  USA
-<P>
-Verbatim copying and distribution of this entire article is
-permitted in any medium, provided this notice is preserved.
-<P>
-Updated:
-<!-- timestamp start -->
-$Date: 2005/05/05 19:37:09 $ $Author: novalis $
-<!-- timestamp end -->
-<HR>
-</BODY>
-</HTML>
-

Index: gear/DynamicDuo-print.html~
===================================================================
RCS file: gear/DynamicDuo-print.html~
diff -N gear/DynamicDuo-print.html~
--- gear/DynamicDuo-print.html~ 5 May 2005 19:37:09 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,120 +0,0 @@
-<!-- This is a boilerplate for the web pages used in the GNU project. -->
-<!--      Please change it according to specifications -->
-<!--      and THEN DELETE THESE LINES !!!! -->
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
-<TITLE>GNU Gear: Dynamic Duo Art Print - GNU Project - Free Software 
Foundation (FSF)</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<H3>GNU Gear: Dynamic Duo Art Print</H3>
-<A HREF="/graphics/agnuhead.html"><IMG SRC="/graphics/gnu-head-sm.jpg"
-   ALT=" [image of the Head of a GNU] "
-   WIDTH="129" HEIGHT="122"></A>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/poster-gpl.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-<center>
-
-<h3>Dynamic Duo Art Print</h3>
-
-<img src="DynamicDuo-print.png" alt="[Image of the Dynamic Duo
-       Art Print]">
-<br>
-
-<!-- <a href="/gear/poster-gpl-full.html">A larger image of the poster is
-available</a> (430K). -->
-
-</center>
-
-<h3>About the Artist</h3>
-<p>
-Lissanne Lake has been a professional illustrator and artist for over
-15 years.  She has done over 80 book covers, mostly in the science
-fiction and fantasy genres, including covers for Terry Pratchett,
-Thomas Disch, and Scott Cunningham.  She has also done original
-illustrations for magazines, games, product boxes, record albums, and
-collectible card games.  A tarot deck featuring her work was published
-in 2001.  Her works have been exhibited in numerous gallery shows and
-she had been the Artist Guest of Honor at many science fiction
-conventions.
-<p>
-
-
-<h3>About the Print</h3>
-
-<p>
-This is a print of the original drawing by Lissanne Lake for a popular
-      design made several years ago.  The art print shows the image on
-      a sky-blue background with fluffy white clouds.  This image is
-      the basis of the Dynamic Duo stickers we hand out at events and
-      a discontinued T-shirt produced in 1999.
-<p>
-<ul>
-<li> Signed by both Lissanne Lake and Richard Stallman in gold ink
-<li> Measurement: 
-<ul><li> English measurement: 10 14/16" wide by 13 15/16" tall
-    <li> Metric Measurement: ~27.5 cm wide by ~35.5 cm tall</ul>
-<li> Limited edition print not numbered
-<li> Price $150.00, unframed
-</ul>
-<a href="https://agia.fsf.org/#posters";>Order Now!</a><p><br>
-
-
-<a href="/gear/gear.html">See more GNU Gear</a>, or check out <a
-href="/doc/gnupresspub.html">GNU Press' site</a> for printed free software
-books available for purchase.
-
-<p>
-
-<HR>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/poster-gpl.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-Return to <A HREF="/home.html">GNU's home page</A>.
-<P>
-
-Please send FSF &amp; GNU inquiries &amp; questions to 
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-There are also <A HREF="/home.html#ContactInfo">other ways to
-contact</A> the FSF.
-<P>
-
-Please send comments on these web pages to
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>,
-send other questions to
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-<P>
-Copyright (C) 2001 Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA  02110,  USA
-<P>
-Verbatim copying and distribution of this entire article is
-permitted in any medium, provided this notice is preserved.
-<P>
-Updated:
-<!-- timestamp start -->
-$Date: 2005/05/05 19:37:09 $ $Author: novalis $
-<!-- timestamp end -->
-<HR>
-</BODY>
-</HTML>
-

Index: gear/FSFS-tshirt.html~
===================================================================
RCS file: gear/FSFS-tshirt.html~
diff -N gear/FSFS-tshirt.html~
--- gear/FSFS-tshirt.html~      5 May 2005 19:37:09 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
-<TITLE>GNU Gear: Free Software, Free Society T-Shirt</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<H3>GNU Gear: <it>Free Software, Free Society</it> T-shirt</H3>
-<A HREF="/graphics/agnuhead.html"><IMG SRC="/graphics/gnu-head-sm.jpg"
-   ALT=" [image of the Head of a GNU] "
-   WIDTH="129" HEIGHT="122"></A>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/FSFS-tshirt.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-<center>
-
-<img src="FSFS-Tee.png" alt="[Image of Free Software, Free Society Book
-       Logo]">
-
-</center>
-<br>
-Mid-sized text, printed on the front only. Heavyweight cotton.<br>
-Available in White with gray letters and in  Natural with brown
-      letters.<br> Sizes M, L, XL and 2XL are $20.00 each.<br>  Size 3XL is
-      $23.00 due to higher material costs from our supplier.<br>
-<A HREF="https://agia.fsf.org/#clothing";>Order Now</A><br>
-<p>
-<a href="/gear/gear.html">See more GNU Gear</a>, or check
-out <a href="/doc/gnupresspub.html">GNU Press' site</a> for
-printed free software books available for purchase.
-
-<p>
-
-<HR>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/01-tshirt.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-Return to <A HREF="/home.html">GNU's home page</A>.
-<P>
-
-Please send FSF &amp; GNU inquiries &amp; questions to 
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-There are also <A HREF="/home.html#ContactInfo">other ways to
-contact</A> the FSF.
-<P>
-
-Please send comments on these web pages to
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>,
-send other questions to
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-<P>
-Copyright (C) 2003 Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA  02110,  USA
-<P>
-Verbatim copying and distribution of this entire article is
-permitted in any medium, provided this notice is preserved.
-<P>
-Updated:
-<!-- timestamp start -->
-$Date: 2005/05/05 19:37:09 $ $Author: novalis $
-<!-- timestamp end -->
-<HR>
-</BODY>
-</HTML>
-

Index: gear/Happy-tshirt.html~
===================================================================
RCS file: gear/Happy-tshirt.html~
diff -N gear/Happy-tshirt.html~
--- gear/Happy-tshirt.html~     5 May 2005 19:37:09 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
-<TITLE>GNU Gear: Happy Hacking T-Shirt</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<H3>GNU Gear: <it>Happy Hacking</it> T-shirt</H3>
-<A HREF="/graphics/agnuhead.html"><IMG SRC="/graphics/gnu-head-sm.jpg"
-   ALT=" [image of the Head of a GNU] "
-hours
-   WIDTH="129" HEIGHT="122"></A>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/FSFS-tshirt.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-<center>
-<h3><b>Front of T-shirt logo</b></h3>
-<img src="Happy-hacking-logo3.png" alt="[Image of Front of Happy
-       Hacking T-Shirt Logo]">
-
-<h3><b>Back of T-shirt logo</b></h3>
-<img src="Happy-back2.png" alt="[Image of Back of Happy Hacking T-Shirt
-       Logo]">
-
-</center>
-<br><br> Heavyweight cotton shirt, Black only. Images in bright CRT
-green.<br> Available in sizes S, M, L, XL and 2XL at $20.00 each.<br>
-Sizes 3XL and 4XL are $23.00 each due to higher material costs from
-our supplier.<br> <A HREF="https://agia.fsf.org/#clothing";>Order
-Now</A><br>
-<p>
-<a href="/gear/gear.html">See more GNU Gear</a>, or check
-out <a href="/doc/gnupresspub.html">GNU Press' site</a> for
-printed free software books available for purchase.
-
-<p>
-
-<HR>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/01-tshirt.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-Return to <A HREF="/home.html">GNU's home page</A>.
-<P>
-
-Please send FSF &amp; GNU inquiries &amp; questions to 
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-There are also <A HREF="/home.html#ContactInfo">other ways to
-contact</A> the FSF.
-<P>
-
-Please send comments on these web pages to
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>,
-send other questions to
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-<P>
-Copyright (C) 2003 Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA  02110,  USA
-<P>
-Verbatim copying and distribution of this entire article is
-permitted in any medium, provided this notice is preserved.
-<P>
-Updated:
-<!-- timestamp start -->
-$Date: 2005/05/05 19:37:09 $ $Author: novalis $
-<!-- timestamp end -->
-<HR>
-</BODY>
-</HTML>
-

Index: gear/gear.html.~1.3.~
===================================================================
RCS file: gear/gear.html.~1.3.~
diff -N gear/gear.html.~1.3.~
--- gear/gear.html.~1.3.~       5 May 2005 19:37:09 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,89 +0,0 @@
-<!-- This is a boilerplate for the web pages used in the GNU project. -->
-<!--      Please change it according to specifications -->
-<!--      and THEN DELETE THESE LINES !!!! -->
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
-<TITLE>GNU Gear - GNU Project - Free Software Foundation (FSF)</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<H3>GNU Gear</H3>
-<A HREF="/graphics/agnuhead.html"><IMG SRC="/graphics/gnu-head-sm.jpg"
-   ALT=" [image of the Head of a GNU] "
-   WIDTH="129" HEIGHT="122"></A>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/gear.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-All items are available for ordering by our <a
-href="https://agia.fsf.org/#posters";>on-line ordering form</a>.  There are <a
-href="/order/order.html">other ways to order</a> as well.
-<P>
-
-<ul>
-<li><a href="/gear/poster-gpl.html"><i>New:</i> GPL Preamble Poster</a>
-<li><a href="/gear/emblem-items.html">GNU Emblem Items -- Stick-on Emblem,
-Classic Pin, Leather Keychain, and Tie Clip</a>
-<li><a href="/gear/baseball-cap.html">Baseball Cap</a>
-<li><a href="/gear/98-tshirt.html">Classic Typing Gnu T-Shirt</a>
-<li><a href="/gear/01-tshirt.html">GNU Age T-Shirt</a>
-</ul>
-
-<p>
-
-See <a href="/doc/gnupresspub.html">GNU Press' site</a> for other
-      items, such as printed free software books and CDs available for
-      purchase.
-
-<p>
-
-<HR>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/gear.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-Return to <A HREF="/home.html">GNU's home page</A>.
-<P>
-
-Please send FSF &amp; GNU inquiries &amp; questions to 
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-There are also <A HREF="/home.html#ContactInfo">other ways to
-contact</A> the FSF.
-<P>
-
-Please send comments on these web pages to
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>,
-send other questions to
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-<P>
-Copyright (C) 2001 Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA  02110,  USA
-<P>
-Verbatim copying and distribution of this entire article is
-permitted in any medium, provided this notice is preserved.
-<P>
-Updated:
-<!-- timestamp start -->
-$Date: 2005/05/05 19:37:09 $ $Author: novalis $
-<!-- timestamp end -->
-<HR>
-</BODY>
-</HTML>
-

Index: gear/gear.html.~1.5.~
===================================================================
RCS file: gear/gear.html.~1.5.~
diff -N gear/gear.html.~1.5.~
--- gear/gear.html.~1.5.~       5 May 2005 19:37:09 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,93 +0,0 @@
-<!-- This is a boilerplate for the web pages used in the GNU project. -->
-<!--      Please change it according to specifications -->
-<!--      and THEN DELETE THESE LINES !!!! -->
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
-<TITLE>GNU Gear - GNU Project - Free Software Foundation (FSF)</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<H3>GNU Gear</H3>
-<A HREF="/graphics/agnuhead.html"><IMG SRC="/graphics/gnu-head-sm.jpg"
-   ALT=" [image of the Head of a GNU] "
-   WIDTH="129" HEIGHT="122"></A>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/gear.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-All items are available for ordering by our <a
-href="https://agia.fsf.org/#posters";>on-line ordering form</a>. <a
-href="/order/order.html">Printable order form</a>
-<P>
-<h3>Two New T-Shirts For Summer 2003!</h3>
-<ul>
-<li><a href="/gear/FSFS-tshirt.html"><b><h4>NEW! </b><it>Free Software,
-           Free Society</it> T-Shirt</h4></a>
-<li><a href="/gear/Happy-tshirt.html"><b><h4>NEW! </b><it>Happy Hacking
-           </it> T-Shirt</h4></a>
-<li><a href="/gear/98-tshirt.html">Classic Typing Gnu T-Shirt</a>
-<li><a href="/gear/01-tshirt.html">GNU Age T-Shirt</a>
-<li><a href="/gear/baseball-cap.html">Baseball Cap</a>
-<li><a href="/gear/poster-gpl.html">GPL Preamble Poster</a>
-<li><a href="/gear/emblem-items.html">GNU Emblem Items -- Stick-on Emblem,
-Classic Pin, Keychain, and Tie Clip</a>
-
-</ul>
-
-<p>
-
-See <a href="/doc/gnupresspub.html">GNU Press' site</a> for printed
-manuals and CDs available for purchase.
-
-<p>
-
-<HR>
-
-[
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-  <A HREF="/gear/gear.html">English</A>
-<!-- | A HREF="/boilerplate.LG.html" LANGUAGE /A  -->
-<!-- Please keep this list alphabetical -->
-<!-- PLEASE UPDATE THE LIST AT THE BOTTOM (OR TOP) OF THE PAGE TOO! -->
-]
-
-<P>
-Return to <A HREF="/home.html">GNU's home page</A>.
-<P>
-
-Please send FSF &amp; GNU inquiries &amp; questions to 
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-There are also <A HREF="/home.html#ContactInfo">other ways to
-contact</A> the FSF.
-<P>
-
-Please send comments on these web pages to
-
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>,
-send other questions to
-<A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
-<P>
-Copyright (C) 2001 Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA  02110,  USA
-<P>
-Verbatim copying and distribution of this entire article is
-permitted in any medium, provided this notice is preserved.
-<P>
-Updated:
-<!-- timestamp start -->
-$Date: 2005/05/05 19:37:09 $ $Author: novalis $
-<!-- timestamp end -->
-<HR>
-</BODY>
-</HTML>
-

Index: graphics/presentation/Foo2.html~
===================================================================
RCS file: graphics/presentation/Foo2.html~
diff -N graphics/presentation/Foo2.html~
--- graphics/presentation/Foo2.html~    12 Mar 2003 22:15:30 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-
-<h2>GNU Press exists to raise awareness and funds for software
-      freedom</h2>
-<h4>
-<ul>
-<li>Introduces many people to software freedom philosophy
-<ul>
-<li> software first 
-<li> then manuals 
-<li> then philosophy
-</ul>
-<br><br>
-<li>Historically, sales were 2/3 of FSF income
-<ul>
-<li>In 1993...
-<li>Total annual income $608,650
-<li>All products sold $381,609 <it>(63%)</it>
-<li>All Donations recieved $164,649 <it>(37%)</it>
-</h4>
-</ul></ul>
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide1.html">Previous slide</A>
-<A HREF="Slide3.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide1.html.~1.3.~
===================================================================
RCS file: graphics/presentation/Slide1.html.~1.3.~
diff -N graphics/presentation/Slide1.html.~1.3.~
--- graphics/presentation/Slide1.html.~1.3.~    12 Mar 2003 22:15:30 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-<center>
-<H1><u>GNU Press</u></H1>
-
-<P>
-
-<A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="155" HEIGHT="225" /A>
-<P>
-
-
-<A HREF="Slide2.html">Next Slide</A>
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide1.html~
===================================================================
RCS file: graphics/presentation/Slide1.html~
diff -N graphics/presentation/Slide1.html~
--- graphics/presentation/Slide1.html~  12 Mar 2003 18:33:52 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<H1><u>GNU Press</u></H1>
-
-<P>
-
-<A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="155" HEIGHT="225" /A>
-
-
-
-
-<P>
-
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide2.html.~1.5.~
===================================================================
RCS file: graphics/presentation/Slide2.html.~1.5.~
diff -N graphics/presentation/Slide2.html.~1.5.~
--- graphics/presentation/Slide2.html.~1.5.~    12 Mar 2003 22:15:30 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<big><big>
-<h2>GNU Press exists to raise awareness and funds for software
-      freedom</h2>
-<hr>
-<h4>
-
-Introduces many people to philosophy
-<ul>
-<li> software first 
-<li> then manuals 
-<li> then philosophy
-</ul>
-<br><br>
-Historically, sales were 2/3 of FSF income
-<ul>
-<li>In 1993...
-<li>Total annual income $608,650
-<li>All products sold $381,609 <it>(63%)</it>
-<li>All Donations recieved $164,649 <it>(37%)</it>
-</h4></big></big>
-</ul>
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide1.html">Previous slide</A>
-<A HREF="Slide3.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide2.html.~1.6.~
===================================================================
RCS file: graphics/presentation/Slide2.html.~1.6.~
diff -N graphics/presentation/Slide2.html.~1.6.~
--- graphics/presentation/Slide2.html.~1.6.~    13 Mar 2003 18:39:02 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-<h2><big><big>GNU Press exists to raise awareness and funds for software
-      freedom</h2><hr></big></big>
-<big><big>
-<h4>Introduces many people to philosophy
-<ul>
-<li> software first 
-<li> then manuals 
-<li> then philosophy
-</ul>
-
-Historically, sales were 2/3 of FSF income
-<ul>
-<li>In 1993...
-<li>Total annual income $608,650
-<li>All products sold $381,609 <it>(63%)</it>
-<li>All Donations recieved $164,649 <it>(37%)</it>
-</ul></h4>
-</big></big>
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide1.html">Previous slide</A>
-<A HREF="Slide3.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide2.html~
===================================================================
RCS file: graphics/presentation/Slide2.html~
diff -N graphics/presentation/Slide2.html~
--- graphics/presentation/Slide2.html~  12 Mar 2003 18:33:52 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<H1><u>GNU Press</u></H1>
-
-<P>
-
-<A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="155" HEIGHT="225" /A>
-<P>
-<center>
-<A HREF="SLIDE1.HTML">Previous slide</A>
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide2A.html~
===================================================================
RCS file: graphics/presentation/Slide2A.html~
diff -N graphics/presentation/Slide2A.html~
--- graphics/presentation/Slide2A.html~ 13 Mar 2003 18:39:02 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-<h2><big><big>GNU Press exists to raise awareness and funds for software
-      freedom</h2><hr></big></big>
-<big><big>
-<h4>Historically, sales were 2/3 of FSF income
-<ul>
-<li>In 1993...
-<li>Total annual income $608,650
-<li>All products sold $381,609 <it>(63%)</it>
-<li>All Donations recieved $164,649 <it>(37%)</it>
-</ul></h4>
-</big></big>
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide1.html">Previous slide</A>
-<A HREF="Slide3.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide3.html.~1.1.~
===================================================================
RCS file: graphics/presentation/Slide3.html.~1.1.~
diff -N graphics/presentation/Slide3.html.~1.1.~
--- graphics/presentation/Slide3.html.~1.1.~    12 Mar 2003 22:15:30 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<big><big>
-<h2>Profits come from software media sales, not manual sales</h2>
-<h4>
-<ul>
-<li>Product prices are higher
-<li>Production costs are lower
-</ul>
-</big></big></h4>
-
-
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide2.html">Previous slide</A>
-<A HREF="Slide4.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide3.html.~1.2.~
===================================================================
RCS file: graphics/presentation/Slide3.html.~1.2.~
diff -N graphics/presentation/Slide3.html.~1.2.~
--- graphics/presentation/Slide3.html.~1.2.~    13 Mar 2003 18:39:02 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<h2><big><big>Manual sales and Software sales meet different 
goals</h2></big></big>
-<hr>
-<h4><big><big>Software sales create profit
-<ul>
-<li>Product prices are higher
-<li>Production costs are lower
-</ul>
-
-Manual sales spread the word
-<ul>
-<li>Spreads the philosophy
-<li>Creates proficient free software users
-</ul></h4></big></big>
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide2.html">Previous slide</A>
-<A HREF="Slide4.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide3.html~
===================================================================
RCS file: graphics/presentation/Slide3.html~
diff -N graphics/presentation/Slide3.html~
--- graphics/presentation/Slide3.html~  12 Mar 2003 22:15:30 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<big><big>
-<h2>GNU Press exists to raise awareness and funds for software
-      freedom</h2>
-<hr>
-<h4>
-<ul>
-<li>Introduces many people to philosophy
-<ul>
-<li> software first 
-<li> then manuals 
-<li> then philosophy
-</ul>
-<br><br>
-<li>Historically, sales were 2/3 of FSF income
-<ul>
-<li>In 1993...
-<li>Total annual income $608,650
-<li>All products sold $381,609 <it>(63%)</it>
-<li>All Donations recieved $164,649 <it>(37%)</it>
-</h4></big></big>
-</ul></ul>
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide1.html">Previous slide</A>
-<A HREF="Slide3.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide3A.html~
===================================================================
RCS file: graphics/presentation/Slide3A.html~
diff -N graphics/presentation/Slide3A.html~
--- graphics/presentation/Slide3A.html~ 13 Mar 2003 18:39:02 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<h2><big><big>Manual sales and Software sales meet different 
goals</h2></big></big>
-<hr>
-<h4><big><big>Manual sales help spread the word
-<ul>
-<li>Creates proficient free software users
-<li>Spreads the philosophy
-</ul></h4></big></big>
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide2.html">Previous slide</A>
-<A HREF="Slide4.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide4.html.~1.1.~
===================================================================
RCS file: graphics/presentation/Slide4.html.~1.1.~
diff -N graphics/presentation/Slide4.html.~1.1.~
--- graphics/presentation/Slide4.html.~1.1.~    13 Mar 2003 18:39:02 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<h2><big><big>How you can help GNU Press help Free Software</h2></big></big>
-<hr>
-<h4><big><big>
-<ul>
-<li>Have your company purchase software CDs and manuals
-<li>Write a new manual yourself
-<li>Edit a manual awaiting publication
-<li>Buy a T-shirt and wear it with Pride
-</ul>
-</big></big></h4>
-
-
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide3.html">Previous slide</A>
-<A HREF="Slide5.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide4.html~
===================================================================
RCS file: graphics/presentation/Slide4.html~
diff -N graphics/presentation/Slide4.html~
--- graphics/presentation/Slide4.html~  12 Mar 2003 22:15:30 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<big><big>
-<h2>How you can help GNU Press help Free Software</h2>
-<hr>
-<h4>
-<ul>
-<li>Have your company purchase software CDs and manuals
-<li>Write a new manual yourself
-<li>Edit a manual awaiting publication
-<li>Buy a T-shirt and wear it with Pride
-</ul>
-</big></big></h4>
-
-
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide3.html">Previous slide</A>
-<A HREF="Slide5.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide5.html.~1.1.~
===================================================================
RCS file: graphics/presentation/Slide5.html.~1.1.~
diff -N graphics/presentation/Slide5.html.~1.1.~
--- graphics/presentation/Slide5.html.~1.1.~    13 Mar 2003 18:39:02 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,54 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<h2><big><big>How you can help GNU Press help Free Software</h2></big></big>
-<hr>
-<h4><big><big>
-<ul>
-<li>Have your company purchase software CDs and manuals
-<ul>
-<li>Order a reference manual or two for yourself
-<li>Subscribe to the Source Code CD
-<li>Tell us your purchase authority limit, and we will make
-               something fit it!
-</ul>
-<li>Write a new manual
-<ul>
-<li>Fully document your program so others can learn it
-<li>Ask me for a list of programs needing manuals
-<li>Collaberate with others
-</ul>
-<li>Edit a manual awaiting publication
-<ul>
-<li>Currently hiring editors for Spring/Summer
-<li>Need Texinfo, TeX or LaTeX and/or DocBook knowledge
-<li>Some titles require C Programming knowledge
-</ul>
-</big></big></h4>
-
-
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide4.html">Previous slide</A>
-<A HREF="Slide6.html">Next slide</A>
-
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide5.html~
===================================================================
RCS file: graphics/presentation/Slide5.html~
diff -N graphics/presentation/Slide5.html~
--- graphics/presentation/Slide5.html~  12 Mar 2003 22:15:30 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,53 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<h2><big><big>How you can help GNU Press help Free Software</h2></big></big>
-<hr>
-<h4><big><big>
-<ul>
-<li>Have your company purchase software CDs and manuals
-<ul>
-<li>Order a reference manual or two for yourself
-<li>Subscribe to the Source Code CD
-<li>Tell us your purchase authority limit, and we will make
-               something fit it!
-</ul>
-<li>Write a new manual
-<ul>
-<li>Fully document your program so others can learn it
-<li>Ask me for a list of programs needing manuals
-<li>Collaberate with others
-</ul>
-<li>Edit a manual awaiting publication
-<ul>
-<li>Currently hiring editors for Spring/Summer
-<li>Need Texinfo, TeX or LaTeX and/or DocBook knowledge
-<li>Some titles require C Programming knowledge
-</ul>
-</big></big></h4>
-
-
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide4.html">Previous slide</A>
-
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide5A.html~
===================================================================
RCS file: graphics/presentation/Slide5A.html~
diff -N graphics/presentation/Slide5A.html~
--- graphics/presentation/Slide5A.html~ 13 Mar 2003 18:39:03 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<h2><big><big>How you can help GNU Press help Free Software</h2></big></big>
-<hr>
-<h4><big><big>
-Write a new manual
-<ul>
-<li>Fully document your program so others can learn it
-<li>Ask me for a list of programs needing manuals
-<li>Collaberate with others
-</ul>
-</big></big></h4>
-
-
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide4.html">Previous slide</A>
-<A HREF="Slide6.html">Next slide</A>
-
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide5B.html~
===================================================================
RCS file: graphics/presentation/Slide5B.html~
diff -N graphics/presentation/Slide5B.html~
--- graphics/presentation/Slide5B.html~ 13 Mar 2003 18:39:06 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<h2><big><big>How you can help GNU Press help Free Software</h2></big></big>
-<hr>
-<h4><big><big>
-Edit a manual awaiting publication
-<ul>
-<li>Currently hiring editors for Spring/Summer
-<li>Need Texinfo, TeX or LaTeX and/or DocBook knowledge
-<li>Some titles require C Programming knowledge
-</ul>
-</big></big></h4>
-
-
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide4.html">Previous slide</A>
-<A HREF="Slide6.html">Next slide</A>
-
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide6.html.~1.1.~
===================================================================
RCS file: graphics/presentation/Slide6.html.~1.1.~
diff -N graphics/presentation/Slide6.html.~1.1.~
--- graphics/presentation/Slide6.html.~1.1.~    13 Mar 2003 18:39:10 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<h2><big><big>How you can help GNU Press help Free Software</h2></big></big>
-<hr>
-<h4><big><big>
-<ul>
-<li>Have your company purchase software CDs and manuals
-<li>Write a new manual yourself
-<li>Edit a manual awaiting publication
-<li>Buy a T-shirt and wear it with Pride
-</ul>
-</big></big></h4>
-
-
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide5.html">Previous slide</A>
-<A HREF="Slide5.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: graphics/presentation/Slide6.html~
===================================================================
RCS file: graphics/presentation/Slide6.html~
diff -N graphics/presentation/Slide6.html~
--- graphics/presentation/Slide6.html~  12 Mar 2003 22:15:30 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<HTML>
-<HEAD>
-<TITLE>First Associate Membership Meeting Presentation</TITLE>
-<LINK REV="made" HREF="mailto:address@hidden";>
-</HEAD>
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" 
VLINK="#9900DD">
-<hr>
-<hr>
-
-<h2><big><big>How you can help GNU Press help Free Software</h2></big></big>
-<hr>
-<h4><big><big>
-<ul>
-<li>Have your company purchase software CDs and manuals
-<li>Write a new manual yourself
-<li>Edit a manual awaiting publication
-<li>Buy a T-shirt and wear it with Pride
-</ul>
-</big></big></h4>
-
-
-
-
-<!-- A HREF="GNU-PRESS-logo.png"><IMG
-   SRC="GNU-PRESS-logo.png" WIDTH="55" HEIGHT="88" /A --!>
-<P>
-<center>
-<br>
-<A HREF="Slide3.html">Previous slide</A>
-<A HREF="Slide5.html">Next slide</A>
-
-</center>
-
-<hr>
-
-<HR>
-</BODY>
-</HTML>

Index: gwm/gwm-about/libredoc2.html~
===================================================================
RCS file: gwm/gwm-about/libredoc2.html~
diff -N gwm/gwm-about/libredoc2.html~
--- gwm/gwm-about/libredoc2.html~       5 May 2005 19:37:11 -0000       1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,227 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
-<HEAD>
-<TITLE>Libre Documentation</TITLE>
-
-<META NAME="generator" CONTENT="txt2html v1.28">
-</HEAD>
-<BODY>
-<P>
-<h1>Libre Documentation</h1><BR>
-
-<h3>By Tabatha Persad, <a href="address@hidden" 
name="address@hidden">address@hidden</a></H3><BR>
-
-<H2>Libre Documentation and Libre Software Defined</H2>
-
-<P>
-In order to better understand what is meant by the term "Libre Documentation," 
we need to explore what Libre means.
-
-<P>
-To better illustrate this, let us look at the definition of Libre from a 
"Libre Software" standpoint.  Libre Software is also known as "Free Software," 
but this is usually where the definition becomes skewed.
-
-<P>
-What most people define as free software is not necessarily really free 
because it may be restricted, in that the user may not have access to the 
source code.  The term "free" with respect to software and documentation is 
often misinterpreted to mean "gratis", or free of cost.
-
-<P>
-In an open source community, this is not an accurate representation of free 
software, so instead, the term Libre is used.  In Spanish and French, Libre, as 
opposed to Gratis, indicates liberty or freedom rather than price.
-
-<P>
-In order for a software application to be considered Libre, these following 
conditions need to be met:
-
-<OL>
-  <LI>The user has the liberty or freedom to run the program, for any purpose.
-  <LI>The user has the liberty to understand how the program works and adapt 
it to his or her needs.  This means the source code of the program is available 
to view and edit.
-  <LI>The user has the liberty to make improvements to the software and 
release those improvements to the public, for the benefit of the entire 
community.
-  <LI>The user has the liberty to redistribute copies or modified copies of 
the program.
-
-</OL>
-<P>
-Likewise, for Libre Documentation, the same definition applies.  Libre 
Documentation is documentation that one can copy or enhance as long as these 
inherent freedoms are met.  In addition, for documentation to be classified as 
Libre, we need to consider the following:
-
-<OL>
-  <LI>Documents should come with a human readable and editable source (html, 
txt, xml are ok, pdf dvi or ps are not, since they cannot be edited without 
proprietary software)
-  <LI>They should be copylefted so that new versions can be created from the 
exisiting base, just like a software fork
-  <LI>They may be sold, or given away - this freedom should not be impaired by 
additional requirements (such as 'no commercial printing allowed')
-
-
-</OL>
-<BR>
-<P>
-<H2>Protecting Documentation and Software with Licenses</H2>
-
-<P>
-In order to protect these freedoms, software licenses have been developed, to 
ensure that the software is able to meet the "Libre" qualifications. The 
license also protects these programs from becoming proprietary, or commercial, 
whereby the source code becomes closed off from the user.
-
-<P>
-Licenses have also been developed for Libre Documentation, most notably the 
GNU Free Documentation License, or FDL.  Other documentation licenses include 
the FreeBSD Documentation License, Apple's Common Documentation License, and 
the Open Publication License, however it must be stated that some are 
restrictive and not compatible with the GNU FDL.
-
-<P>
-The GNU Free Documentation License states its purpose clearly in the preamble, 
which is quoted below:
-
-<P>
-<STRONG>"0. PREAMBLE</STRONG>
-
-<P>
-The purpose of this License is to make a manual, textbook, or other written 
document "free" in the sense of freedom: to assure everyone the effective 
freedom to copy and redistribute it, with or without modifying it, either 
commercially or noncommercially.  Secondarily, this License preserves for the 
author and the publisher a way to get credit for their work, while not being 
considered responsible for modifications made by others.
-
-<P>
-This license is a kind of "copyleft", which means that derivative works of the 
document must themselves be free in the same sense.  It complements the GNU 
General Public License, which is a copyleft license designed for free software.
-
-<P>
-We have designed this License in order to use it for manuals for free 
software, because free software needs free documentation:  a free program 
should come with manuals providing the same freedoms that the software does.  
But this License is not limited to software manuals; it can be used for any 
textual work, regardless of subject matter or whether it is published as a 
printed book.  We recommend this License principally for works whose purpose is 
instruction or reference."
-
-<BR>
-<BR>
-<P>
-<H2>Copyright vs. Copyleft</H2>
-
-<P>
-Copyrights exist in order to protect authors of documentation or software from 
unauthorized copying or selling of their work.  A copyright infers that only 
with the author's permission may such activities take place.
-
-<P>
-A Copyleft, on the other hand, provides a method for software or documentation 
to be modified, and distributed back to the community, provided it remains 
Libre.
-
-<P>
-In the case of Libre Documentation, an author can place his or her copyright 
into the document, and use distribution terms, such as those in the GNU Free 
Documentation License, which gives everyone the rights to use, modify, and 
redistribute the code, but only if those distribution terms remain unchanged.  
This ensures that the source code and the freedoms are legally inseparable.  
This is known as "copyleft".
-
-<P>
-If a program or document was uncopyrighted and in the public domain, changes 
could be made and the program or document could be re-distributed as a 
proprietary product.  The copyleft ensures that not only is the original source 
free, but that all modifications must be made free, and permission is granted 
for all who follow in modifying that same program or document, provided they 
abide by these terms.
-
-<P>
-Applying a free software or free documentation license to an application or 
document qualifies the product as Libre, and protects the open source community 
at large from it becoming commercial or proprietary.
-
-<BR>
-<BR>
-<P>
-<H2>Resources:</H2>
-
-<OL>
-  <LI>The GWM Objectives,<a href="http://www.7un.net/gnu/index.php"; 
name="http://www.7un.net/gnu/index.php";>http://www.7un.net/gnu/index.php</a>
-  <LI>The GNU Free Documentation License,<a 
href="http://www.gnu.org/copyleft/fdl.html"; 
name="http://www.gnu.org/copyleft/fdl.html";>http://www.gnu.org/copyleft/fdl.html</a>
-  <LI>Categories of Free and Non-Free Software,<a 
href="http://www.gnu.org/philosophy/categories.html"; 
name="http://www.gnu.org/philosophy/categories.html";>http://www.gnu.org/philosophy/categories.html</a>
-  <LI>Various Licenses and Comments About Them,<a 
href="http://www.gnu.org/licenses/license-list.html"; 
name="http://www.gnu.org/licenses/license-list.html";>http://www.gnu.org/licenses/license-list.html</a>
-
-</OL>
-<BR>
-<P><H2>Copyright:</H2></P>
-
-<P>Copyright (c) 2002, Tabatha Persad, <a href="address@hidden" 
name="address@hidden">address@hidden</a></P>
-
-<P>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".
-<BR>
-<P><H2>GNU Free Documentation License</H2></P>
-
-<P>Version 1.1, March 2000
-
-<P>Copyright (C) 2000  Free Software Foundation, Inc.
-51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
-<P>0. PREAMBLE
-
-<P>The purpose of this License is to make a manual, textbook, or other written 
document "free" in the sense of freedom: to assure everyone the effective 
freedom to copy and redistribute it, with or without modifying it, either 
commercially or noncommercially. Secondarily, this License preserves for the 
author and publisher a way to get credit for their work, while not being 
considered responsible for modifications made by others.
-
-<P>This License is a kind of "copyleft", which means that derivative works of 
the document must themselves be free in the same sense. It complements the GNU 
General Public License, which is a copyleft license designed for free software.
-
-<P>We have designed this License in order to use it for manuals for free 
software, because free software needs free documentation: a free program should 
come with manuals providing the same freedoms that the software does. But this 
License is not limited to software manuals; it can be used for any textual 
work, regardless of subject matter or whether it is published as a printed 
book. We recommend this License principally for works whose purpose is 
instruction or reference.
-
-<P>1. APPLICABILITY AND DEFINITIONS
-
-<P>This License applies to any manual or other work that contains a notice 
placed by the copyright holder saying it can be distributed under the terms of 
this License. The "Document", below, refers to any such manual or work. Any 
member of the public is a licensee, and is addressed as "you".
-
-<P>A "Modified Version" of the Document means any work containing the Document 
or a portion of it, either copied verbatim, or with modifications and/or 
translated into another language.
-
-<P>A "Secondary Section" is a named appendix or a front-matter section of the 
Document that deals exclusively with the relationship of the publishers or 
authors of the Document to the Document's overall subject (or to related 
matters) and contains nothing that could fall directly within that overall 
subject. (For example, if the Document is in part a textbook of mathematics, a 
Secondary Section may not explain any mathematics.) The relationship could be a 
matter of historical connection with the subject or with related matters, or of 
legal, commercial, philosophical, ethical or political position regarding them.
-
-<P>The "Invariant Sections" are certain Secondary Sections whose titles are 
designated, as being those of Invariant Sections, in the notice that says that 
the Document is released under this License.
-
-<P>The "Cover Texts" are certain short passages of text that are listed, as 
Front-Cover Texts or Back-Cover Texts, in the notice that says that the 
Document is released under this License.
-
-<P>A "Transparent" copy of the Document means a machine-readable copy, 
represented in a format whose specification is available to the general public, 
whose contents can be viewed and edited directly and straightforwardly with 
generic text editors or (for images composed of pixels) generic paint programs 
or (for drawings) some widely available drawing editor, and that is suitable 
for input to text formatters or for automatic translation to a variety of 
formats suitable for input to text formatters. A copy made in an otherwise 
Transparent file format whose markup has been designed to thwart or discourage 
subsequent modification by readers is not Transparent. A copy that is not 
"Transparent" is called "Opaque".
-
-<P>Examples of suitable formats for Transparent copies include plain ASCII 
without markup, Texinfo input format, LaTeX input format, SGML or XML using a 
publicly available DTD, and standard-conforming simple HTML designed for human 
modification. Opaque formats include PostScript, PDF, proprietary formats that 
can be read and edited only by proprietary word processors, SGML or XML for 
which the DTD and/or processing tools are not generally available, and the 
machine-generated HTML produced by some word processors for output purposes 
only.
-
-<P>The "Title Page" means, for a printed book, the title page itself, plus 
such following pages as are needed to hold, legibly, the material this License 
requires to appear in the title page. For works in formats which do not have 
any title page as such, "Title Page" means the text near the most prominent 
appearance of the work's title, preceding the beginning of the body of the text.
-
-<P>2. VERBATIM COPYING
-
-<P>You may copy and distribute the Document in any medium, either commercially 
or noncommercially, provided that this License, the copyright notices, and the 
license notice saying this License applies to the Document are reproduced in 
all copies, and that you add no other conditions whatsoever to those of this 
License. You may not use technical measures to obstruct or control the reading 
or further copying of the copies you make or distribute. However, you may 
accept compensation in exchange for copies. If you distribute a large enough 
number of copies you must also follow the conditions in section 3.
-
-<P>You may also lend copies, under the same conditions stated above, and you 
may publicly display copies.
-
-<P>3. COPYING IN QUANTITY
-
-<P>If you publish printed copies of the Document numbering more than 100, and 
the Document's license notice requires Cover Texts, you must enclose the copies 
in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover 
Texts on the front cover, and Back-Cover Texts on the back cover. Both covers 
must also clearly and legibly identify you as the publisher of these copies. 
The front cover must present the full title with all words of the title equally 
prominent and visible. You may add other material on the covers in addition. 
Copying with changes limited to the covers, as long as they preserve the title 
of the Document and satisfy these conditions, can be treated as verbatim 
copying in other respects.
-
-<P>If the required texts for either cover are too voluminous to fit legibly, 
you should put the first ones listed (as many as fit reasonably) on the actual 
cover, and continue the rest onto adjacent pages.
-
-<P>If you publish or distribute Opaque copies of the Document numbering more 
than 100, you must either include a machine-readable Transparent copy along 
with each Opaque copy, or state in or with each Opaque copy a 
publicly-accessible computer-network location containing a complete Transparent 
copy of the Document, free of added material, which the general network-using 
public has access to download anonymously at no charge using public-standard 
network protocols. If you use the latter option, you must take reasonably 
prudent steps, when you begin distribution of Opaque copies in quantity, to 
ensure that this Transparent copy will remain thus accessible at the stated 
location until at least one year after the last time you distribute an Opaque 
copy (directly or through your agents or retailers) of that edition to the 
public.
-
-<P>It is requested, but not required, that you contact the authors of the 
Document well before redistributing any large number of copies, to give them a 
chance to provide you with an updated version of the Document.
-
-<P>4. MODIFICATIONS
-
-<P>You may copy and distribute a Modified Version of the Document under the 
conditions of sections 2 and 3 above, provided that you release the Modified 
Version under precisely this License, with the Modified Version filling the 
role of the Document, thus licensing distribution and modification of the 
Modified Version to whoever possesses a copy of it. In addition, you must do 
these things in the Modified Version:
-
-<OL>
-   <LI> * A. Use in the Title Page (and on the covers, if any) a title 
distinct from that of the Document, and from those of previous versions (which 
should, if there were any, be listed in the History section of the Document). 
You may use the same title as a previous version if the original publisher of 
that version gives permission.
-   <LI> * B. List on the Title Page, as authors, one or more persons or 
entities responsible for authorship of the modifications in the Modified 
Version, together with at least five of the principal authors of the Document 
(all of its principal authors, if it has less than five).
-   <LI> * C. State on the Title page the name of the publisher of the Modified 
Version, as the publisher.
-   <LI> * D. Preserve all the copyright notices of the Document.
-   <LI> * E. Add an appropriate copyright notice for your modifications 
adjacent to the other copyright notices.
-   <LI> * F. Include, immediately after the copyright notices, a license 
notice giving the public permission to use the Modified Version under the terms 
of this License, in the form shown in the Addendum below.
-   <LI> * G. Preserve in that license notice the full lists of Invariant 
Sections and required Cover Texts given in the Document's license notice.
-   <LI> * H. Include an unaltered copy of this License.
-   <LI> * I. Preserve the section entitled "History", and its title, and add 
to it an item stating at least the title, year, new authors, and publisher of 
the Modified Version as given on the Title Page. If there is no section 
entitled "History" in the Document, create one stating the title, year, 
authors, and publisher of the Document as given on its Title Page, then add an 
item describing the Modified Version as stated in the previous sentence.
-   <LI> * J. Preserve the network location, if any, given in the Document for 
public access to a Transparent copy of the Document, and likewise the network 
locations given in the Document for previous versions it was based on. These 
may be placed in the "History" section. You may omit a network location for a 
work that was published at least four years before the Document itself, or if 
the original publisher of the version it refers to gives permission.
-   <LI> * K. In any section entitled "Acknowledgements" or "Dedications", 
preserve the section's title, and preserve in the section all the substance and 
tone of each of the contributor acknowledgements and/or dedications given 
therein.
-   <LI> * L. Preserve all the Invariant Sections of the Document, unaltered in 
their text and in their titles. Section numbers or the equivalent are not 
considered part of the section titles.
-   <LI> * M. Delete any section entitled "Endorsements". Such a section may 
not be included in the Modified Version.
-   <LI> * N. Do not retitle any existing section as "Endorsements" or to 
conflict in title with any Invariant Section.
-</OL>
-
-<P>If the Modified Version includes new front-matter sections or appendices 
that qualify as Secondary Sections and contain no material copied from the 
Document, you may at your option designate some or all of these sections as 
invariant. To do this, add their titles to the list of Invariant Sections in 
the Modified Version's license notice. These titles must be distinct from any 
other section titles.
-
-<P>You may add a section entitled "Endorsements", provided it contains nothing 
but endorsements of your Modified Version by various parties--for example, 
statements of peer review or that the text has been approved by an organization 
as the authoritative definition of a standard.
-
-<P>You may add a passage of up to five words as a Front-Cover Text, and a 
passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover 
Texts in the Modified Version. Only one passage of Front-Cover Text and one of 
Back-Cover Text may be added by (or through arrangements made by) any one 
entity. If the Document already includes a cover text for the same cover, 
previously added by you or by arrangement made by the same entity you are 
acting on behalf of, you may not add another; but you may replace the old one, 
on explicit permission from the previous publisher that added the old one.
-
-<P>The author(s) and publisher(s) of the Document do not by this License give 
permission to use their names for publicity for or to assert or imply 
endorsement of any Modified Version.
-
-<P>5. COMBINING DOCUMENTS
-
-<P>You may combine the Document with other documents released under this 
License, under the terms defined in section 4 above for modified versions, 
provided that you include in the combination all of the Invariant Sections of 
all of the original documents, unmodified, and list them all as Invariant 
Sections of your combined work in its license notice.
-
-<P>The combined work need only contain one copy of this License, and multiple 
identical Invariant Sections may be replaced with a single copy. If there are 
multiple Invariant Sections with the same name but different contents, make the 
title of each such section unique by adding at the end of it, in parentheses, 
the name of the original author or publisher of that section if known, or else 
a unique number. Make the same adjustment to the section titles in the list of 
Invariant Sections in the license notice of the combined work.
-
-<P>In the combination, you must combine any sections entitled "History" in the 
various original documents, forming one section entitled "History"; likewise 
combine any sections entitled "Acknowledgements", and any sections entitled 
"Dedications". You must delete all sections entitled "Endorsements."
-
-<P>6. COLLECTIONS OF DOCUMENTS
-
-<P>You may make a collection consisting of the Document and other documents 
released under this License, and replace the individual copies of this License 
in the various documents with a single copy that is included in the collection, 
provided that you follow the rules of this License for verbatim copying of each 
of the documents in all other respects.
-
-<P>You may extract a single document from such a collection, and distribute it 
individually under this License, provided you insert a copy of this License 
into the extracted document, and follow this License in all other respects 
regarding verbatim copying of that document.
-
-<P>7. AGGREGATION WITH INDEPENDENT WORKS
-
-<P>A compilation of the Document or its derivatives with other separate and 
independent documents or works, in or on a volume of a storage or distribution 
medium, does not as a whole count as a Modified Version of the Document, 
provided no compilation copyright is claimed for the compilation. Such a 
compilation is called an "aggregate", and this License does not apply to the 
other self-contained works thus compiled with the Document, on account of their 
being thus compiled, if they are not themselves derivative works of the 
Document.
-
-<P>If the Cover Text requirement of section 3 is applicable to these copies of 
the Document, then if the Document is less than one quarter of the entire 
aggregate, the Document's Cover Texts may be placed on covers that surround 
only the Document within the aggregate. Otherwise they must appear on covers 
around the whole aggregate.
-
-<P>8. TRANSLATION
-
-<P>Translation is considered a kind of modification, so you may distribute 
translations of the Document under the terms of section 4. Replacing Invariant 
Sections with translations requires special permission from their copyright 
holders, but you may include translations of some or all Invariant Sections in 
addition to the original versions of these Invariant Sections. You may include 
a translation of this License provided that you also include the original 
English version of this License. In case of a disagreement between the 
translation and the original English version of this License, the original 
English version will prevail.
-
-<P>9. TERMINATION
-
-<P>You may not copy, modify, sublicense, or distribute the Document except as 
expressly provided for under this License. Any other attempt to copy, modify, 
sublicense or distribute the Document is void, and will automatically terminate 
your rights under this License. However, parties who have received copies, or 
rights, from you under this License will not have their licenses terminated so 
long as such parties remain in full compliance.
-
-<P>10. FUTURE REVISIONS OF THIS LICENSE
-
-<P>The Free Software Foundation may publish new, revised versions of the GNU 
Free Documentation License from time to time. Such new versions will be similar 
in spirit to the present version, but may differ in detail to address new 
problems or concerns. See http://www.gnu.org/copyleft/.
-
-<P>Each version of the License is given a distinguishing version number. If 
the Document specifies that a particular numbered version of this License "or 
any later version" applies to it, you have the option of following the terms 
and conditions either of that specified version or of any later version that 
has been published (not as a draft) by the Free Software Foundation. If the 
Document does not specify a version number of this License, you may choose any 
version ever published (not as a draft) by the Free Software Foundation.
-
-</BODY>
-</HTML>

Index: software/chinese/philosophy.zh.html~
===================================================================
RCS file: software/chinese/philosophy.zh.html~
diff -N software/chinese/philosophy.zh.html~
--- software/chinese/philosophy.zh.html~        8 Jul 2006 03:34:58 -0000       
1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
-<!-- X-URL http://www.gnu.org/software/chinese/index.zh.html
-     -->
-
-<!-- Maintainers (list yourself here if you modified this page):
-     * Chao-Hong Liu of chliu at gnu.org
-     * Syue-Ping Ma of qqsnow at pchome dot com dot tw -->
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-          PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
-
-<head>
-  <title>¤¤¤å½Ķ¤p²Õ - GNU ­pµe - ¦Û¥Ñ³nÅé°òª÷·|¡]FSF¡^</title>
-  <meta http-equiv="content-type" content="text/html; charset=big5">
-<link rev="made" href="mailto:wcai(at)gnu.org">
-<link rel="stylesheet" href="index.css" type="text/css" />
-</head>
-
-<body>
-<a href="/brave-gnu-world/rungnu/rungnu-jr.html"><img 
src="/brave-gnu-world/rungnu/gnu-tn.jpg" border="0" /></a>
-<div id="title">
-¶l±H²M³æ
-</div>
-
-<p />
-[ <b><a href="/software/chinese/index.zh.html">­º­¶</a></b>
-| <a href="/software/chinese/philosophy.zh.html">­õ¾Ç</a>
-<!--
-| <a href="/software/chinese/people.zh.html">¦¨­û</a>
--->
-| <a href="/software/chinese/mailman.zh.html">¶l±H²M³æ</a>
-| <a href="/software/chinese/otcl.zh.html">½Ķ¤§¹Ú</a>
-| <a href="/software/chinese/cgnuinfo.zh.html">¤¤¤å GNU ¸ê°T</a>
-| <a href="/software/chinese/gfdled.zh.html">¦Û¥Ñ¤å¥óªA°È</a>
-]
--
-[ <a href="/chinese/index.html">address@hidden</a>
-| <a href="/software/chinese/gnuctt.zh.html">GNUCTT.net</a>
-]
-
-<!-- begin of this topic -->
-
-<p>address@hidden</p>
-
-<ul>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/info-chinese/";>address@hidden</a></b><br
 />address@hidden</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-translators/";>feedback(at)gnuctt.net</a></b><br
 /> GNU/CTT ªº¥DÅé</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-volunteers/";>address@hidden</a></b><br
 />¦¹¶l±H²M³æ¯S§OÅwªï¾Ç¥Íªº¥[¤J¡A·í±zÀ°¦£ÂsÄý GNU address@hidden</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-hackers/";>address@hidden</a></b><br
 />address@hidden</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-authors/";>address@hidden</a></b><br
 />­Y±z·Q¬° GNU ­pµe¼¶¼g¤¤¤å¦Û¥Ñ¤å¥ó®É¡A½Ð»P¨ó½Õ¤H­ûÁpµ¸</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-coordinators/";>feedback(at)gnuctt.net</a></b><br
 />­Y±z·Q¦¨¬° GNU/CTT ªº¨ó½Õ¤H­û®É</li>
-</ul>
-
-¨ä¤¤«e¤T­Ó¶l±H²M³æ±z¥i¥H¦Û¦æ¥[¤J©Î²¾°£¡A½Ð¨ì <a 
href="https://savannah.gnu.org/projects/chinese/";>CTT ­pµe­º­¶</a> 
¨ú±o¬ÛÃö¸ê°T¡C­n¥[¤J«á¤T­Ó¶l±H²M³æ¡A½Ð»P <a 
href="mailto:wcai(at)gnu.org">¨ó½Õ¤H­û</a> Ápµ¸¡C 
<em>ª`·N¡G¨Ï¥Î¦¹¨Ç¶l±H²M³æ®É¡A½Ð¤Å©ó title ¦C¨Ï¥Î¤¤¤å</em> ¡C <a 
href="mailto:wcai(at)gnu.org">¨ó½Õ¤H­û</a> 
·|address@hidden@®Éµ¹¤©¥²­nªº¨ó§U¡A¨Ã«O»Ù±zÀò±oÀ³¦³ªº¦WÁn¡C<p />
-
-<!-- end of this topic -->
-
-<hr />
-<a href="/home.zh.html">ªð¦^ GNU ­º­¶</a> ¡C<p />
-½Ð±N¦³Ãö ¦Û¥Ñ³nÅé°òª÷·| »P GNU ªº ¬d¸ß »P °ÝÃD¡]¥H­^¤å¡^°e¨ì <a 
href="mailto:address@hidden";><em>address@hidden</em></a> ¡F<br />
-©Î¥H¤¤¤å°e¨ì <a href="mailto:wcai(at)gnu.org"><em>wcai(at)gnu.org</em></a> 
¡A<br />
-±z¤]¥i¥H¨Ï¥Î <a href="/home.zh.html#ContactInfo">¨ä¥¦¤èªkÁpô</a> 
¦Û¥Ñ³nÅé°òª÷·|¡C<p />
-½Ð±N¦³Ãö GNU ¤¤¤å½Ķ¤p²Õ ªº·N¨£¡]¥H­^¤å©Î¤¤¤å¡^°e¨ì <a 
href="mailto:feedback(at)gnuctt.net"><em>feedback(at)gnuctt.net</em></a> ¡A <br 
/>
-¦³Ãö GNU ¤¤¤åºô­¶ ªº·N¨£¡]¥H­^¤å©Î¤¤¤å¡^°e¨ì <a 
href="mailto:feedback(at)gnuctt.net"><em>feedback(at)gnuctt.net</em></a> ¡A<br 
/>
-¦³Ãö ­ì©l­^¤åºô­¶ ªº·N¨£¡]¥H­^¤å¡^°e¨ì <a 
href="mailto:address@hidden";><em>address@hidden</em></a> ¡A<br />¨ä¥¦°ÝÃD«h°e¨ì 
<a href="mailto:wcai(at)gnu.org"><em>wcai(at)gnu.org</em></a> ¡C<p />
-Copyright (C) 2003 Free Software Foundation<p />
-Permission is granted to make and distribute verbatim copies of this 
transcript as long as the copyright and this permission notice appear.<p />
-¤¹³\¦b¤£Åܧó¤å¥ó¤º®eªº«e´£¤U¥Zµn¥»¤å°Æ¥»¦b¥ô¦ó§Î¦¡ªº´CÅ餤¡A¦ý»Ý«O¯dª©Åv«Å§i©M¦¹Án©ú¡C<p
 />
-<!-- hhmts start -->
-Last modified: Fri Jul  4 12:19:34 CEST 2003
-<!-- hhmts end -->
-</body>
-</html>

Index: software/chinese/philosophy.zhs.html~
===================================================================
RCS file: software/chinese/philosophy.zhs.html~
diff -N software/chinese/philosophy.zhs.html~
--- software/chinese/philosophy.zhs.html~       8 Jul 2006 03:34:58 -0000       
1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
-<!-- X-URL http://www.gnu.org/software/chinese/philosophy.cn.html
-     -->
-
-<!-- Maintainers (list yourself here if you modified this page):
-     * Chao-Hong Liu of chliu at gnu.org
-     * Syue-Ping Ma of qqsnow at pchome dot com dot tw -->
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
-          PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-          " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
-
-<head>
-  <title>¤¤¤å½Ķ¤p²Õ - GNU ¤uµ{ - ¦Û¥Ñ³n¥ó°òª÷·|¡]FSF¡^</title>
-  <meta http-equiv="content-type" content="text/html; charset=gb2312">
-<link rev="made" href="mailto:wcai(at)gnu.org">
-<link rel="stylesheet" href="index.css" type="text/css" />
-</head>
-
-<body>
-<a href="/brave-gnu-world/rungnu/rungnu-jr.html"><img 
src="/brave-gnu-world/rungnu/gnu-tn.jpg" border="0" /></a>
-<div id="title">
-¶l±H²M³æ
-</div>
-
-<p />
-[ <b><a href="/software/chinese/index.cn.html">­º­¶</a></b>
-| <a href="/software/chinese/philosophy.cn.html">­õ¾Ç</a>
-<!--
-| <a href="/software/chinese/people.cn.html">¦¨­û</a>
--->
-| <a href="/software/chinese/mailman.cn.html">¶l±H²M³æ</a>
-| <a href="/software/chinese/otcl.cn.html">½Ķ¤§¹Ú</a>
-| <a href="/software/chinese/cgnuinfo.cn.html">¤¤¤å GNU «H®§</a>
-| <a href="/software/chinese/gfdled.cn.html">¦Û¥Ñ¤åÀɪA°È</a>
-]
--
-[ <a href="/chinese/index.html">address@hidden</a>
-| <a href="/software/chinese/gnuctt.cn.html">GNUCTT.net</a>
-]
-
-<!-- begin of this topic -->
-
-<p>address@hidden</p>
-
-<ul>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/info-chinese/";>address@hidden</a></b><br
 />address@hidden</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-translators/";>feedback(at)gnuctt.net</a></b><br
 /> GNU/CTT ªº¥DÅé</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-volunteers/";>address@hidden</a></b><br
 />¦¹¶l±H²M³æ¯S§OÅwªï¾Ç¥Íªº¥[¤J¡A·í±zÀ°¦£ÂsÄý GNU address@hidden</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-hackers/";>address@hidden</a></b><br
 />address@hidden</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-authors/";>address@hidden</a></b><br
 />­Y±z·Q¬° GNU ¤uµ{¼¶¼g¤¤¤å¦Û¥Ñ¤åÀɮɡA½Ð»P¨ó½Õ¤H­ûÁpµ¸</li>
-<li><b><a 
href="http://mail.gnu.org/mailman/listinfo/chinese-coordinators/";>feedback(at)gnuctt.net</a></b><br
 />­Y±z·Q¦¨¬° GNU/CTT ªº¨ó½Õ¤H­û®É</li>
-</ul>
-
-¨ä¤¤«e¤T­Ó¶l±H²M³æ±z¥i¥H¦Û¦æ¥[¤J©Î²¾°£¡A½Ð¨ì <a 
href="https://savannah.gnu.org/projects/chinese/";>CTT ¤uµ{­º­¶</a> 
¨ú±o¬ÛÃö«H®§¡C­n¥[¤J«á¤T­Ó¶l±H²M³æ¡A½Ð»P <a 
href="mailto:wcai(at)gnu.org">¨ó½Õ¤H­û</a> Ápµ¸¡C 
<em>ª`·N¡G¨Ï¥Î¦¹¨Ç¶l±H²M³æ®É¡A½Ð¤Å©ó title ¦C¨Ï¥Î¤¤¤å</em> ¡C <a 
href="mailto:wcai(at)gnu.org">¨ó½Õ¤H­û</a> 
·|address@hidden@®Éµ¹¤©¥²­nªº¨ó§U¡A¨Ã«O»Ù±zÀò±oÀ³¦³ªº¦WÁn¡C<p />
-
-<!-- end of this topic -->
-
-<hr />
-<a href="/home.cn.html">ªð¦^ GNU ­º­¶</a> ¡C<p />
-½Ð±N¦³Ãö ¦Û¥Ñ³n¥ó°òª÷·| »P GNU ªº ¬d¸ß »P °ÝÃD¡]¥H­^¤å¡^°e¨ì <a 
href="mailto:address@hidden";><em>address@hidden</em></a> ¡F<br />
-©Î¥H¤¤¤å°e¨ì <a href="mailto:wcai(at)gnu.org"><em>wcai(at)gnu.org</em></a> 
¡A<br />
-±z¤]¥i¥H¨Ï¥Î <a href="/home.cn.html#ContactInfo">¨ä¥¦¤èªkÁpô</a> 
¦Û¥Ñ³n¥ó°òª÷·|¡C<p />
-½Ð±N¦³Ãö GNU ¤¤¤å½Ķ¤p²Õ ªº·N¨£¡]¥H­^¤å©Î¤¤¤å¡^°e¨ì <a 
href="mailto:feedback(at)gnuctt.net"><em>feedback(at)gnuctt.net</em></a> ¡A <br 
/>
-¦³Ãö GNU ¤¤¤åºô­¶ ªº·N¨£¡]¥H­^¤å©Î¤¤¤å¡^°e¨ì <a 
href="mailto:feedback(at)gnuctt.net"><em>feedback(at)gnuctt.net</em></a> ¡A<br 
/>
-¦³Ãö ­ì©l­^¤åºô­¶ ªº·N¨£¡]¥H­^¤å¡^°e¨ì <a 
href="mailto:address@hidden";><em>address@hidden</em></a> ¡A<br />¨ä¥¦°ÝÃD«h°e¨ì 
<a href="mailto:wcai(at)gnu.org"><em>wcai(at)gnu.org</em></a> ¡C<p />
-Copyright (C) 2003 Free Software Foundation<p />
-Permission is granted to make and distribute verbatim copies of this 
transcript as long as the copyright and this permission notice appear.<p />
-¤¹³\¦b¤£Åܧó¤åÀɤº®eªº«e´£¤U¥Zµn¥»¤å°Æ¥»¦b¥ô¦ó§Î¦¡ªº´CÅ餤¡A¦ý»Ý«O¯dª©Åv«Å§i©M¦¹Án©ú¡C<p
 />
-<!-- hhmts start -->
-Last modified: Fri Jul  4 12:19:34 CEST 2003
-<!-- hhmts end -->
-</body>
-</html>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]