Index: trunk/minix/man/man9/as.9
===================================================================
--- trunk/minix/man/man9/as.9	(revision 9)
+++ 	(revision )
@@ -1,412 +1,0 @@
-.so mnx.mac
-.TH AS 9
-.\" unchecked (kjb)
-.CD "as \(en assembler"
-.SE "AS\(emASSEMBLER [IBM]"
-.SP 1
-.PP
-This document describes the language accepted by the 80386 assembler
-that is part of the Amsterdam Compiler Kit.  Note that only the syntax is
-described, only a few 386 instructions are shown as examples.
-.SS "Tokens, Numbers, Character Constants, and Strings"
-.PP
-The syntax of numbers is the same as in C.
-The constants 32, 040, and 0x20 all represent the same number, but are
-written in decimal, octal, and hex, respectively.
-The rules for character constants and strings are also the same as in C.
-For example, \(fma\(fm is a character constant.
-A typical string is "string".
-Expressions may be formed with C operators, but must use [ and ] for
-parentheses.  (Normal parentheses are claimed by the operand syntax.)
-.SS "Symbols"
-.PP
-Symbols contain letters and digits, as well as three special characters:
-dot, tilde, and underscore.
-The first character may not be a digit or tilde.
-.PP
-The names of the 80386 registers are reserved.  These are:
-.HS
-~~~al, bl, cl, dl
-.br
-~~~ah, bh, ch, dh
-.br
-~~~ax, bx, cx, dx, eax, ebx, ecx, edx
-.br
-~~~si, di, bp, sp, esi, edi, ebp, esp
-.br
-~~~cs, ds, ss, es, fs, gs
-.HS
-The xx and exx variants of the eight general registers are treated as
-synonyms by the assembler.  Normally "ax" is the 16-bit low half of the
-32-bit "eax" register.  The assembler determines if a 16 or 32 bit
-operation is meant solely by looking at the instruction or the
-instruction prefixes.  It is however best to use the proper registers
-when writing assembly to not confuse those who read the code.
-.HS
-The last group of 6 segment registers are used for selector + offset mode
-addressing, in which the effective address is at a given offset in one of
-the 6 segments.
-.PP
-Names of instructions and pseudo-ops are not reserved.  
-Alphabetic characters in opcodes and pseudo-ops must be in lower case.
-.SS "Separators"
-.PP
-Commas, blanks, and tabs are separators and can be interspersed freely 
-between tokens, but not within tokens.
-Commas are only legal between operands.
-.SS "Comments"
-.PP
-The comment character is \*(OQ!\*(CQ.  
-The rest of the line is ignored.
-.SS "Opcodes"
-.PP
-The opcodes are listed below.
-Notes: (1) Different names for the same instruction are separated by \*(OQ/\*(CQ.
-(2) Square brackets ([]) indicate that 0 or 1 of the enclosed characters 
-can be included.
-(3) Curly brackets ({}) work similarly, except that one of the
-enclosed characters \fImust\fR be included.
-Thus square brackets indicate an option, whereas curly brackets indicate
-that a choice must be made.
-.sp
-.if t .ta 0.25i 1.2i 3i
-.if n .ta 2 10 24
-.nf
-.B "Data Transfer"
-.HS
-	mov[b]	dest, source	! Move word/byte from source to dest
-	pop	dest	! Pop stack 
-	push	source	! Push stack 
-	xchg[b]	op1, op2	! Exchange word/byte 
-	xlat		! Translate 
-	o16		! Operate on a 16 bit object instead of 32 bit
-
-.B "Input/Output"
-.HS
-	in[b]	source	! Input from source I/O port
-	in[b]		! Input from DX I/O port
-	out[b]	dest	! Output to dest I/O port
-	out[b]		! Output to DX I/O port
-
-.B "Address Object"
-.HS
-	lds	reg,source	! Load reg and DS from source
-	les	reg,source	! Load reg and ES from source
-	lea	reg,source	! Load effect address of source to reg and DS
-	{cdsefg}seg		! Specify seg register for next instruction
-	a16		! Use 16 bit addressing mode instead of 32 bit
-
-.B "Flag Transfer"
-.HS
-	lahf		! Load AH from flag register
-	popf		! Pop flags 
-	pushf		! Push flags 
-	sahf		! Store AH in flag register
-
-.B "Addition"
-.HS
-	aaa		! Adjust result of BCD addition
-	add[b]	dest,source	! Add 
-	adc[b]	dest,source	! Add with carry 
-	daa		! Decimal Adjust after addition
-	inc[b]	dest	! Increment by 1
-
-.B "Subtraction"
-.HS
-	aas		! Adjust result of BCD subtraction
-	sub[b]	dest,source	! Subtract 
-	sbb[b]	dest,source	! Subtract with borrow from dest
-	das		! Decimal adjust after subtraction
-	dec[b]	dest	! Decrement by one
-	neg[b]	dest	! Negate 
-	cmp[b]	dest,source	! Compare
-
-.B "Multiplication"
-.HS
-	aam		! Adjust result of BCD multiply
-	imul[b]	source	! Signed multiply
-	mul[b]	source	! Unsigned multiply
-
-.B "Division"
-.HS
-	aad		! Adjust AX for BCD division
-	o16 cbw		! Sign extend AL into AH
-	o16 cwd		! Sign extend AX into DX
-	cwde		! Sign extend AX into EAX
-	cdq		! Sign extend EAX into EDX
-	idiv[b]	source	! Signed divide
-	div[b]	source	! Unsigned divide
-
-.B "Logical"
-.HS
-	and[b]	dest,source	! Logical and
-	not[b]	dest	! Logical not
-	or[b]	dest,source	! Logical inclusive or
-	test[b]	dest,source	! Logical test
-	xor[b]	dest,source	! Logical exclusive or
-
-.B "Shift"
-.HS
-	sal[b]/shl[b]	dest,CL	! Shift logical left
-	sar[b]	dest,CL	! Shift arithmetic right
-	shr[b]	dest,CL	! Shift logical right
-
-.B "Rotate"
-.HS
-	rcl[b]	dest,CL	! Rotate left, with carry
-	rcr[b]	dest,CL	! Rotate right, with carry
-	rol[b]	dest,CL	! Rotate left
-	ror[b]	dest,CL	! Rotate right
-
-.B "String Manipulation"
-.HS
-	cmps[b]		! Compare string element ds:esi with es:edi
-	lods[b]		! Load from ds:esi into AL, AX, or EAX
-	movs[b]		! Move from ds:esi to es:edi
-	rep		! Repeat next instruction until ECX=0
-	repe/repz		! Repeat next instruction until ECX=0 and ZF=1
-	repne/repnz		! Repeat next instruction until ECX!=0 and ZF=0
-	scas[b]		! Compare ds:esi with AL/AX/EAX
-	stos[b]		! Store AL/AX/EAX in es:edi
-
-.fi
-.B "Control Transfer"
-.PP
-\fIAs\fR accepts a number of special jump opcodes that can assemble to
-instructions with either a byte displacement, which can only reach to targets
-within \(mi126 to +129 bytes of the branch, or an instruction with a 32-bit
-displacement.  The assembler automatically chooses a byte or word displacement
-instruction.
-.PP
-The English translation of the opcodes should be obvious, with
-\*(OQl(ess)\*(CQ and \*(OQg(reater)\*(CQ for signed comparisions, and
-\*(OQb(elow)\*(CQ and \*(OQa(bove)*(CQ for unsigned comparisions.  There are
-lots of synonyms to allow you to write "jump if not that" instead of "jump
-if this".
-.PP
-The \*(OQcall\*(CQ, \*(OQjmp\*(CQ, and \*(OQret\*(CQ instructions can be 
-either intrasegment or
-intersegment.  The intersegment versions are indicated with 
-the suffix \*(OQf\*(CQ.
-
-.if t .ta 0.25i 1.2i 3i
-.if n .ta 2 10 24
-.nf
-.B Unconditional
-.HS
-	jmp[f]	dest	! jump to dest (8 or 32-bit displacement)
-	call[f]	dest	! call procedure
-	ret[f]		! return from procedure
-
-.B "Conditional"
-.HS
-	ja/jnbe		! if above/not below or equal (unsigned)
-	jae/jnb/jnc		! if above or equal/not below/not carry (uns.)
-	jb/jnae/jc		! if not above nor equal/below/carry (unsigned)
-	jbe/jna		! if below or equal/not above (unsigned)
-	jg/jnle		! if greater/not less nor equal (signed)
-	jge/jnl		! if greater or equal/not less (signed)
-	jl/jnqe		! if less/not greater nor equal (signed)
-	jle/jgl		! if less or equal/not greater (signed)
-	je/jz		! if equal/zero
-	jne/jnz		! if not equal/not zero
-	jno		! if overflow not set
-	jo		! if overflow set
-	jnp/jpo		! if parity not set/parity odd
-	jp/jpe		! if parity set/parity even
-	jns		! if sign not set
-	js		! if sign set
-
-.B "Iteration Control"
-.HS
-	jcxz	dest	! jump if ECX = 0
-	loop	dest	! Decrement ECX and jump if CX != 0
-	loope/loopz	dest	! Decrement ECX and jump if ECX = 0 and ZF = 1
-	loopne/loopnz	dest	! Decrement ECX and jump if ECX != 0 and ZF = 0
-
-.B "Interrupt"
-.HS
-	int	n	! Software interrupt n
-	into		! Interrupt if overflow set
-	iretd		! Return from interrupt
-
-.B "Flag Operations"
-.HS
-	clc		! Clear carry flag
-	cld		! Clear direction flag
-	cli		! Clear interrupt enable flag
-	cmc		! Complement carry flag
-	stc		! Set carry flag
-	std		! Set direction flag
-	sti		! Set interrupt enable flag
-
-.fi
-.SS "Location Counter"
-.PP
-The special symbol \*(OQ.\*(CQ is the location counter and its value 
-is the address of the first byte of the instruction in which the symbol 
-appears and can be used in expressions.
-.SS "Segments"
-.PP
-There are four different assembly segments: text, rom, data and bss.
-Segments are declared and selected by the \fI.sect\fR pseudo-op.  It is
-customary to declare all segments at the top of an assembly file like
-this:
-.HS
-~~~.sect .text; .sect .rom; .sect .data; .sect .bss
-.HS
-The assembler accepts up to 16 different segments, but
-.MX
-expects only four to be used.  Anything can in principle be assembled
-into any segment, but the
-.MX
-bss segment may only contain uninitialized data.
-Note that the \*(OQ.\*(CQ symbol refers to the location in the current
-segment.
-.SS "Labels"
-.PP
-There are two types: name and numeric.  Name labels consist of a name
-followed by a colon (:).
-.PP
-The numeric labels are single digits.  The nearest 0: label may be
-referenced as 0f in the forward direction, or 0b backwards.
-.SS "Statement Syntax"
-.PP
-Each line consists of a single statement.
-Blank or comment lines are allowed.
-.SS "Instruction Statements"
-.PP
-The most general form of an instruction is
-.HS
-~~~label: opcode operand1, operand2    ! comment
-.HS
-.SS "Expression Semantics"
-.PP
-.tr ~~
-The following operators can be used:
-+ \(mi * / & | ^ ~ << (shift left) >> (shift right) \(mi (unary minus).
-.tr ~
-32-bit integer arithmetic is used.  
-Division produces a truncated quotient.
-.SS "Addressing Modes"
-.PP
-Below is a list of the addressing modes supported.
-Each one is followed by an example.
-.HS
-.ta 0.25i 3i
-.nf
-	constant	mov eax, 123456
-	direct access	mov eax, (counter)
-	register	mov eax, esi
-	indirect	mov eax, (esi)
-	base + disp.	mov eax, 6(ebp)
-	scaled index	mov eax, (4*esi)
-	base + index	mov eax, (ebp)(2*esi)
-	base + index + disp.	mov eax, 10(edi)(1*esi)
-.HS
-.fi
-Any of the constants or symbols may be replacement by expressions.  Direct
-access, constants and displacements may be any type of expression.  A scaled
-index with scale 1 may be written without the \*(OQ1*\*(CQ.
-.SS "Call and Jmp"
-.PP
-The \*(OQcall\*(CQ and \*(OQjmp\*(CQ instructions can be interpreted
-as a load into the instruction pointer.
-.HS
-.ta 0.25i 3i
-.nf
-	call _routine	! Direct, intrasegment
-	call (subloc)	! Indirect, intrasegment
-	call 6(ebp)	! Indirect, intrasegment
-	call ebx	! Direct, intrasegment
-	call (ebx)	! Indirect, intrasegment
-	callf (subloc)	! Indirect, intersegment
-	callf seg:offs	! Direct, intersegment
-.HS
-.fi
-.SP 1
-.SS "Symbol Assigment"
-.SP 1
-.PP
-Symbols can acquire values in one of two ways.
-Using a symbol as a label sets it to \*(OQ.\*(CQ for the current
-segment with type relocatable.  
-Alternative, a symbol may be given a name via an assignment of the form
-.HS
-~~~symbol = expression 
-.HS
-in which the symbol is assigned the value and type of its arguments.
-.SP 1
-.SS "Storage Allocation"
-.SP 1
-.PP
-Space can be reserved for bytes, words, and longs using pseudo-ops.
-They take one or more operands, and for each generate a value
-whose size is a byte, word (2 bytes) or long (4 bytes).  For example:
-.HS
-.if t .ta 0.25i 3i
-.if n .ta 2 24
-	.data1 2, 6	! allocate 2 bytes initialized to 2 and 6
-.br
-	.data2 3, 0x10	! allocate 2 words initialized to 3 and 16
-.br
-	.data4 010	! allocate a longword initialized to 8
-.br
-	.space 40	! allocates 40 bytes of zeros
-.HS
-allocates 50 (decimal) bytes of storage, initializing the first two
-bytes to 2 and 6, the next two words to 3 and 16, then one longword with
-value 8 (010 octal), last 40 bytes of zeros.
-.SS "String Allocation"
-.PP
-The pseudo-ops \fI.ascii\fR and \fI.asciz\fR
-take one string argument and generate the ASCII character
-codes for the letters in the string. 
-The latter automatically terminates the string with a null (0) byte.
-For example,
-.HS
-~~~.ascii "hello"
-.br
-~~~.asciz "world\en"
-.HS
-.SS "Alignment"
-.PP
-Sometimes it is necessary to force the next item to begin at a word, longword
-or even a 16 byte address boundary.
-The \fI.align\fR pseudo-op zero or more null byte if the current location
-is a multiple of the argument of .align.
-.SS "Segment Control"
-.PP
-Every item assembled goes in one of the four segments: text, rom, data,
-or bss.  By using the \fI.sect\fR pseudo-op with argument
-\fI.text, .rom, .data\fR or \fI.bss\fR, the programmer can force the
-next items to go in a particular segment.
-.SS "External Names"
-.PP
-A symbol can be given global scope by including it in a \fI.define\fR pseudo-op.
-Multiple names may be listed, separate by commas.
-It must be used to export symbols defined in the current program.
-Names not defined in the current program are treated as "undefined
-external" automatically, although it is customary to make this explicit
-with the \fI.extern\fR pseudo-op.
-.SS "Common"
-.PP
-The \fI.comm\fR pseudo-op declares storage that can be common to more than 
-one module.  There are two arguments: a name and an absolute expression giving
-the size in bytes of the area named by the symbol.  
-The type of the symbol becomes
-external.  The statement can appear in any segment.
-If you think this has something to do with FORTRAN, you are right.
-.SS "Examples"
-.PP
-In the kernel directory, there are several assembly code files that are
-worth inspecting as examples.
-However, note that these files, are designed to first be
-run through the C preprocessor.  (The very first character is a # to signal
-this.)  Thus they contain numerous constructs
-that are not pure assembler.
-For true assembler examples, compile any C program provided with 
-.MX
-using the \fB\(enS\fR flag.
-This will result in an assembly language file with a suffix with the same
-name as the C source file, but ending with the .s suffix.
Index: trunk/minix/man/man9/awk.9
===================================================================
--- trunk/minix/man/man9/awk.9	(revision 9)
+++ 	(revision )
@@ -1,248 +1,0 @@
-.so mnx.mac
-.TH AWK 9
-.CD "awk \(en pattern matching language"
-.SX "awk \fIrules\fR [\fIfile\fR] ...
-.FL "\fR(none)"
-.EX "awk rules input" "Process \fIinput\fR according to \fIrules\fR"
-.EX "awk rules \(en  >out" "Input from terminal, output to \fIout\fR"
-.PP
-AWK is a programming language devised by Aho, Weinberger, and Kernighan
-at Bell Labs (hence the name).
-\fIAwk\fR programs search files for
-specific patterns and performs \*(OQactions\*(CQ for every occurrence
-of these patterns.  The patterns can be \*(OQregular expressions\*(CQ
-as used in the \fIed\fR editor.  The actions are expressed
-using a subset of the C language.
-.PP
-The patterns and actions are usually placed in a \*(OQrules\*(CQ file
-whose name must be the first argument in the command line,
-preceded by the flag \fB\(enf\fR.  Otherwise, the first argument on the
-command line is taken to be a string containing the rules
-themselves. All other arguments are taken to be the names of text
-files on which the rules are to be applied, with \fB\(en\fR being the
-standard input.  To take rules from the standard input, use \fB\(enf \(en\fR.
-.PP
-The command:
-.HS
-.Cx "awk  rules  prog.\d\s+2*\s0\u"
-.HS
-would read the patterns and actions rules from the file \fIrules\fR
-and apply them to all the arguments.
-.PP
-The general format of a rules file is:
-.HS
-~~~<pattern> { <action> }
-~~~<pattern> { <action> }
-~~~...
-.HS
-There may be any number of these <pattern> { <action> }
-sequences in the rules file.  \fIAwk\fR reads a line of input from
-the current input file and applies every <pattern> { <action> }
-in sequence to the line.
-.PP
-If the <pattern> corresponding to any { <action> } is missing,
-the action is applied to every line of input.  The default
-{ <action> } is to print the matched input line.
-.SS "Patterns"
-.PP
-The <pattern>s may consist of any valid C expression.  If the
-<pattern> consists of two expressions separated by a comma, it
-is taken to be a range and the <action> is performed on all
-lines of input that match the range.  <pattern>s may contain
-\*(OQregular expressions\*(CQ delimited by an @ symbol.  Regular
-expressions can be thought of as a generalized \*(OQwildcard\*(CQ
-string matching mechanism, similar to that used by many
-operating systems to specify file names.  Regular expressions
-may contain any of the following characters:
-.HS
-.in +0.75i
-.ta +0.5i
-.ti -0.5i
-x	An ordinary character
-.ti -0.5i
-\\	The backslash quotes any character
-.ti -0.5i
-^	A circumflex at the beginning of an expr matches the beginning of a line.
-.ti -0.5i
-$	A dollar-sign at the end of an expression matches the end of a line.
-.ti -0.5i
-\&.	A period matches any single character except newline.
-.ti -0.5i
-*	An expression followed by an asterisk matches zero or more occurrences
-of that expression: \*(OQfo*\*(CQ matches \*(OQf\*(CQ, \*(OQfo\*(CQ, \*(OQfoo\*(CQ, \*(OQfooo\*(CQ, etc.
-.ti -0.5i
-+	An expression followed by a plus sign matches one or more occurrences 
-of that expression: \*(OQfo+\*(CQ matches \*(OQfo\*(CQ, \*(OQfoo\*(CQ, \*(OQfooo\*(CQ, etc.
-.ti -0.5i
-[]	A string enclosed in square brackets matches any single character in that 
-string, but no others.  If the first character in the string is a circumflex, the 
-expression matches any character except newline and the characters in the 
-string.  For example, \*(OQ[xyz]\*(CQ matches \*(OQxx\*(CQ and \*(OQzyx\*(CQ, while 
-\*(OQ[^xyz]\*(CQ matches \*(OQabc\*(CQ but not \*(OQaxb\*(CQ.  A range of characters may be 
-specified by two characters separated by \*(OQ-\*(CQ.
-.in -0.75i
-.SS "Actions"
-.PP
-Actions are expressed as a subset of the C language.  All
-variables are global and default to int's if not formally
-declared.  
-Only char's and int's and pointers and arrays of
-char and int are allowed.  \fIAwk\fR allows only decimal integer
-constants to be used\(emno hex (0xnn) or octal (0nn). String
-and character constants may contain all of the special C
-escapes (\\n, \\r, etc.).
-.PP
-\fIAwk\fR supports the \*(OQif\*(CQ, \*(OQelse\*(CQ, 
-\*(OQwhile\*(CQ and \*(OQbreak\*(CQ flow of
-control constructs, which behave exactly as in C.
-.PP
-Also supported are the following unary and binary operators,
-listed in order from highest to lowest precedence:
-.HS
-.ta 0.25i 1.75i 3.0i
-.nf
-\fB	Operator	Type	Associativity\fR
-	() []	unary	left to right
-.tr ~~
-	! ~ ++ \(en\(en \(en * &	unary	right to left
-.tr ~
-	* / %	binary	left to right
-	+ \(en	binary	left to right
-	<< >>	binary	left to right
-	< <= > >=	binary	left to right
-	== !=	binary	left to right
-	&	binary	left to right
-	^	binary	left to right
-	|	binary	left to right
-	&&	binary	left to right
-	||	binary	left to right
-	=	binary	right to left
-.fi
-.HS
-Comments are introduced by a '#' symbol and are terminated by
-the first newline character.  The standard \*(OQ/*\*(CQ and \*(OQ*/\*(CQ
-comment delimiters are not supported and will result in a
-syntax error.
-.SP 0.5
-.SS "Fields"
-.SP 0.5
-.PP
-When \fIawk\fR reads a line from the current input file, the
-record is automatically separated into \*(OQfields.\*(CQ  A field is
-simply a string of consecutive characters delimited by either
-the beginning or end of line, or a \*(OQfield separator\*(CQ character.
-Initially, the field separators are the space and tab character.
-The special unary operator '$' is used to reference one of the
-fields in the current input record (line).  The fields are
-numbered sequentially starting at 1.  The expression \*(OQ$0\*(CQ
-references the entire input line.
-.PP
-Similarly, the \*(OQrecord separator\*(CQ is used to determine the end
-of an input \*(OQline,\*(CQ initially the newline character.  The field
-and record separators may be changed programatically by one of
-the actions and will remain in effect until changed again.
-.PP
-Multiple (up to 10) field separators are allowed at a time, but
-only one record separator.
-.PP
-Fields behave exactly like strings; and can be used in the same
-context as a character array.  These \*(OQarrays\*(CQ can be considered
-to have been declared as:
-.SP 0.15
-.HS
-~~~~~char ($n)[ 128 ];
-.HS
-.SP 0.15
-In other words, they are 128 bytes long.  Notice that the
-parentheses are necessary because the operators [] and $
-associate from right to left; without them, the statement
-would have parsed as:
-.HS
-.SP 0.15
-~~~~~char $(1[ 128 ]);
-.HS
-.SP 0.15
-which is obviously ridiculous.
-.PP
-If the contents of one of these field arrays is altered, the
-\*(OQ$0\*(CQ field will reflect this change.  For example, this
-expression:
-.HS
-.SP 0.15
-~~~~~*$4 = 'A';
-.HS
-.SP 0.15
-will change the first character of the fourth field to an upper-
-case letter 'A'.  Then, when the following input line:
-.HS
-.SP 0.15
-~~~~~120 PRINT "Name         address        Zip"
-.SP 0.15
-.HS
-is processed, it would be printed as:
-.HS
-.SP 0.15
-~~~~~120 PRINT "Name         Address        Zip"
-.HS
-.SP 0.15
-Fields may also be modified with the strcpy() function (see
-below).  For example, the expression:
-.HS
-~~~~~strcpy( $4, "Addr." );
-.HS
-applied to the same line above would yield:
-.HS
-~~~~~120 PRINT "Name         Addr.        Zip"
-.HS
-.SS "Predefined Variables"
-.PP
-The following variables are pre-defined:
-.HS
-.in +1.5i
-.ta +1.25i
-.ti -1.25i
-FS	Field separator (see below).
-.ti -1.25i
-RS	Record separator (see below also).
-.ti -1.25i
-NF	Number of fields in current input record (line).
-.ti -1.25i
-NR	Number of records processed thus far.
-.ti -1.25i
-FILENAME	Name of current input file.
-.ti -1.25i
-BEGIN	A special <pattern> that matches the beginning of input text.
-.ti -1.25i
-END	A special <pattern> that matches the end of input text.
-.in -1.5i
-.HS
-\fIAwk\fR also provides some useful built-in functions for string
-manipulation and printing:
-.HS
-.in +1.5i
-.ta +1.25i
-.ti -1.25i
-print(arg)	Simple printing of strings only, terminated by '\\n'.
-.ti -1.25i
-printf(arg...)	Exactly the printf() function from C.
-.ti -1.25i
-getline()	Reads the next record and returns 0 on end of file.
-.ti -1.25i
-nextfile()	Closes the current input file and begins processing the next file
-.ti -1.25i
-strlen(s)	Returns the length of its string argument.
-.ti -1.25i
-strcpy(s,t)	Copies the string \*(OQt\*(CQ to the string \*(OQs\*(CQ.
-.ti -1.25i
-strcmp(s,t)	Compares the \*(OQs\*(CQ to \*(OQt\*(CQ and returns 0 if they match.
-.ti -1.25i
-toupper(c)	Returns its character argument converted to upper-case.
-.ti -1.25i
-tolower(c)	Returns its character argument converted to lower-case.
-.ti -1.25i
-match(s,@re@)	Compares the string \*(OQs\*(CQ to the regular expression \*(OQre\*(CQ and 
-returns the number of matches found (zero if none).
-.in -1.5i
-.SS "Authors"
-.PP
-\fIAwk\fR was written by Saeko Hirabauashi and Kouichi Hirabayashi.
Index: trunk/minix/man/man9/de.9
===================================================================
--- trunk/minix/man/man9/de.9	(revision 9)
+++ 	(revision )
@@ -1,313 +1,0 @@
-.so mnx.mac
-.TH DE 9
-.CD "de \(en disk editor"
-.SX "de\fR [\fB\(enw\fR] \fIblock_device"
-.SX "de \(enr \fIfile
-.FL "\(enr" "Recover a file that has been removed"
-.FL "\(enw" "Enable writing, so device can be modified"
-.EX "de \(enr /usr/ast/prog.c" "Undo the effects of: \fIrm /usr/ast/prog.c\fR"
-.EX "de \(enw /dev/fd0" "Edit \fI/dev/fd0\fR for writing"
-.PP
-The \fIde\fR program allows a system administrator to examine and modify
-a \s-2MINIX\s0 file system device. 
-Commands are available to move to any address on the disk
-and display the disk block contents. This information may
-be presented in one of three visual modes: as two-byte words,
-as ASCII characters or as a bit map. The disk may be searched
-for a string of characters. If the \fB\(enw\fR option is given,
-\fIde\fR will open the device for writing and words may be
-modified.
-Without this flag, writing is prohibited.
-Lost blocks and files can be recovered using a variety of
-commands. The \fB\(enr\fR option supports automated recovery of
-files removed by \fIunlink\fR.
-.SS "Positioning"
-.PP
-Disks are divided into blocks (also called \*(OQzones\*(CQ) of 1024
-bytes. \fIDe\fR keeps a current address on the disk as a
-block number and a byte offset within the block. In some
-visual modes the offset is rounded off, for example, in
-\*(OQword\*(CQ mode the offset must be even.
-.PP
-There are different types of blocks on a file system device,
-including a super block, bit maps, i-nodes and data blocks.
-\fIDe\fR knows the type of the current block, but will allow
-most positioning commands and visual modes to function
-anywhere on the disk.
-.PP
-The \fIf\fR command (or PGDN on the keypad) moves forward to the
-next block, similarly \fIb\fR (PGUP) moves backwards one block.
-\fIF\fR (END) moves to the last block and \fIB\fR (HOME) moves to the
-first block.
-.PP
-The arrow keys (or 
-\fIu\fR, \fId\fR, \fIl\fR, and \fIr\fR) change the current
-address by small increments. The size of the increment
-depends on the current display mode, as shown below. The
-various sizes suit each display and pointers move on the
-screen to follow each press of an arrow key.
-.HS
-.if t .ta .75iR 1.5iR 2.25iR 3.0iR 3.75iR
-.if n .ta .75i 1.5i 2.25i 3.0i 3.75i
-.nf
-\fB	Mode	Up	Down	Left	Right\fR
-	Word	\(mi2	+2	\(mi32	+32
-	Block	\(mi64	+64	\(mi1	+1
-	Map	\(mi256	+256	\(mi4	+4
-.fi
-.HS
-The \fIg\fR command allows movement to any specified block.
-Like all commands that take arguments, a prompt and
-subsequent input are written to the bottom line of the
-screen. Numerical entry may be decimal, octal or
-hexadecimal, for example 234, \(mi1, 070, 0xf3, \(miX3C.
-.PP
-While checking an i-node one may want to move to a block
-listed as a zone of the file. The \fIG\fR command takes the
-contents at the current address in the device as a block
-number and indirectly jumps to that block.
-.PP
-The address may be set to the start of any i-node using
-the \fI\fR command and supplying an i-node number. The \fII\fR
-command maps a given file name into an i-node address.
-The file must exist on the current device and this
-device must be mounted.
-.SS "The Display"
-.PP
-The first line of the display contains the device name,
-the name of the current output file (if one is open) and
-the current search string. If \fIde\fR is being run with
-the \fB\(enw\fR option then the device name is flagged with \*(OQ(w).\*(CQ
-If a string is too long to fit on the line it is marked with \*(OQ...\*(CQ.
-.PP
-The second line contains the current block number, the
-total number of blocks, and the type of the current block.
-The types are: boot, super, i-node bit map, zone bit map,
-i-nodes and data block.
-If the current address is
-within a data block then the string \*(OQin use\*(CQ is displayed
-if the block corresponds to a set in the zone bit map.
-.PP
-The third line shows the offset in the current block. If
-the current address is within either the i-node or zone bit
-maps then the i-node or block number corresponding to the
-current bit is shown. If the current address is within an
-i-node then the i-node number and \*(OQin use\*(CQ status is displayed.
-If the address is within a bit map or i-node block, but past
-the last usable entry, then the string \*(OQpadding\*(CQ is shown.
-.PP
-The rest of the screen is used to display data from the
-current block. There are three visual display modes:
-\*(OQword,\*(CQ \*(OQblock,\*(CQ and \*(OQmap.\*(CQ 
-The \fIv\fR command followed by
-\fIw\fR, \fIb\fR, or \fIm\fR sets the current display mode.
-.PP
-In \*(OQword\*(CQ mode 16 words, of two bytes each, are shown in
-either base 2, 8, 10 or 16. The current base is displayed
-to the far right of the screen. It can be changed using the
-\fIo\fR command followed by either an \fIh\fR (hexadecimal), \fId\fR
-(decimal), \fIo\fR (octal) or \fIb\fR (binary).
-.PP
-\fIDe\fR knows where i-nodes are, and will display the
-contents in a readable format, including the \fIrwx\fR bits,
-the user name and the time field. If the current page
-is at the beginning of the super block, or an executable
-file or an \fIar\fR archive, then \fIde\fR will also inform
-the user. In all other cases the contents of the 16
-words are shown to the right as equivalent ASCII
-characters.
-.PP
-In \*(OQblock\*(CQ mode a whole block of 1024 bytes is displayed
-as ASCII characters, 64 columns by 16 lines. Control codes
-are shown as highlighted characters. If the high order bit
-is set in any of the 1024 bytes then an \*(OQMSB\*(CQ flag is shown
-on the far right of the screen, but these bytes are not
-individually marked.
-.PP
-In \*(OQmap\*(CQ mode 2048 bits (256 bytes) are displayed from the
-top to the bottom (32 bits) and from the left to the right
-of the screen. Bit zero of a byte is towards the top of the
-screen. This visual mode is generally used to observe
-the bit map blocks. The number of set bits displayed is
-written on the far right of the screen.
-.SS "Searching"
-.PP
-A search for an ASCII string is initiated by the \fI/\fR command.
-Control characters not used for other purposes may be
-entered in the search string, for example CTRL-J is an end-of-line 
-character. The search is from the current position to
-the end of the current device.
-.PP
-Once a search string has been defined by a use of \fI/\fR, the
-next search may be initiated with the \fIn\fR command, (a \fI/\fR
-followed immediately by an ENTER is equivalent to an \fIn\fR).
-.PP
-Whenever a search is in progress \fIde\fR will append
-one \fI.\fR to the prompt line for every 500 blocks searched. If the
-string is found between the end of the file system and the
-actual end of the device, then the current address is set to
-the end of the file system.
-.PP
-Some of the positioning commands push the current address
-and visual mode in a stack before going to a new address.
-These commands are 
-\fIB\fR, \fIF\fR, \fIg\fR, \fIG\fR, \fIi\fR, \fII\fR, \fIn\fR, \fIx\fR and 
-\fI/\fR. 
-The \fIp\fR
-(previous) command pops the last address and visual mode
-from the stack. This stack is eight entries deep.
-.SS "Modifying the File System"
-.PP
-The \fIs\fR command will prompt for a data word and store it at
-the current address on the disk. This is used to change
-information that can not be easily changed by any other
-means.
-.PP
-The data word is 16 bits wide, it may be entered in decimal,
-octal or hexadecimal. Remember that the \fB\(enw\fR option must
-be specified for the \fIs\fR command to operate. Be careful
-when modifying a mounted file system.
-.SS "Recovering Files"
-.PP
-Any block on the disk may be written to an output file.
-This is used to recover blocks marked as free on the
-disk. A write command will request a file name the first
-time it is used, on subsequent writes the data is appended
-to the current output file.
-.PP
-The name of the current output file is changed using the
-\fIc\fR command. This file should be on a different file system,
-to avoid overwriting an i-node or block before it is
-recovered.
-.PP
-An ASCII block is usually recovered using the \fIw\fR command.
-All bytes will have their most significant bit cleared before
-being written to the output file. Bytes containing '\\0'
-or '\\177' are not copied. The \fIW\fR command writes the current
-block (1024 bytes exactly) to the output file.
-.PP
-When a file is deleted using \fIunlink\fR the i-node number
-in the directory is zeroed, but before its removal, it is
-copied into the end of the file name field. This allows
-the i-node of a deleted file to be found by searching
-through a directory. The \fIx\fR command asks for the path
-name of a lost file, extracts the old i-node number and
-changes the current disk address to the start of the
-i-node.
-.PP
-Once an i-node is found, all of the freed blocks may be
-recovered by checking the i-node zone fields, using 'G'
-to go to a block, writing it back out using 'w', going
-back to the i-node with \fIp\fR and advancing to the next
-block. This file extraction process is automated by using
-the \fIX\fR command, which goes through the i-node, indirect
-and double indirect blocks finding all the block pointers
-and recovering all the blocks of the file.
-.PP
-The \fIX\fR command closes the current output file and asks
-for the name of a new output file. All of the disk blocks
-must be marked as free, if they are not the command stops
-and the file must be recovered manually.
-.PP
-When extracting lost blocks \fIde\fR will maintain \*(OQholes\*(CQ in
-the file. Thus, a recovered sparse file does not allocate
-unused blocks and will keep its efficient storage scheme.
-This property of the \fIX\fR command may be used to move a sparse
-file from one device to another.
-.PP
-Automatic recovery may be initiated by the \fB\(enr\fR option on
-the command line. Also specified is the path name of a
-file just removed by \fIunlink\fR. \fIDe\fR determines which
-mounted file system device held the file and opens it for
-reading. The lost i-node is found and the file extracted by
-automatically performing an \fIx\fR and an \fIX\fR command.
-.PP
-The recovered file will be written to \fI/tmp\fR. \fIDe\fR will
-refuse to automatically recover a file on the same file
-system as \fI/tmp\fR. The lost file must have belonged to the
-user. If automatic recovery will not complete, then manual
-recovery may be performed.
-.SS "Miscellaneous"
-.PP
-The user can terminate a session with \fIde\fR by typing
-\fIq\fR, CTRL-D, or the key associated with SIGQUIT.
-.PP
-The \fIm\fR command invokes the \s-2MINIX\s0 \fIsh\fR shell as a subprocess.
-.PP
-For help while using \fIde\fR use \fIh\fR.
-.SS "Command Summary"
-.LP
-.ta 0.25i 1.0i 1.5i
-.nf
-.sp
-	PGUP	b	Back one block
-	PGDN	f	Forward one block
-	HOME	B	Goto first block
-	END	F	Goto last block
-	UP	u	Move back 2/64/256 bytes
-	DOWN	d	Move forward 2/64/256 bytes
-	LEFT	l	Move back 32/1/4 bytes
-	RIGHT	r	Move forward 32/1/4 bytes
-		g	Goto specified block
-		G	Goto block indirectly
-		i	Goto specified i-node
-		I	Filename to i-node
-		/	Search
-		n	Next occurrence
-		p	Previous address
-		h	Help
-	EOF	q	Quit
-		m	\s-2MINIX\s0 shell
-		v	Visual mode (w b m)
-		o	Output base (h d o b)
-		c	Change file name
-		w	Write ASCII block
-		W	Write block exactly
-		x	Extract lost directory entry
-		X	Extract lost file blocks
-		s	Store word
-.fi
-.sp
-NOTES:
-When entering a line in response to a prompt from \fIde\fR
-there are a couple of editing characters available. The
-previous character may be erased by typing CTRL-H and the
-whole line may be erased by typing CTRL-U. ENTER terminates
-the input. If DELETE or a non-ASCII character is typed
-then the command requesting the input is aborted.
-.PP
-The commands \fIG\fR, \fIs\fR and \fIX\fR will only function if
-the current visual display mode is \*(OQword.\*(CQ 
-The commands
-\fIi\fR, \fII\fR and \fIx\fR change the mode to \*(OQword\*(CQ on
-completion. The commands \fIG\fR and \fI/\fR change the mode
-to \*(OQblock\*(CQ. These restrictions and automatic mode
-conversions are intended to aid the user.
-.PP
-The \*(OQmap\*(CQ mode uses special graphic characters, and
-only functions if the user is at the console.
-.PP
-\fIDe\fR generates warnings for illegal user input or if
-erroneous data is found on the disk, for example a
-corrupted magic number. Warnings appear in the middle
-of the screen for two seconds, then the current page
-is redrawn. Some minor errors, for example, setting
-an unknown visual mode, simply ring the bell. Major
-errors, for example I/O problems on the file system
-device cause an immediate exit from \fIde\fR.
-.PP
-The i-node and zone bit maps are read from the device
-when \fIde\fR starts up. These determine whether \*(OQin use\*(CQ
-or \*(OQnot in use\*(CQ is displayed in the status field at
-the top of the screen. The bit maps are not re-read
-while using \fIde\fR and will become out-of-date if
-observing a mounted file system.
-.PP
-\fIDe\fR requires termcap definitions for \*(OQcm\*(CQ and \*(OQcl\*(CQ.
-Furthermore, \*(OQso\*(CQ and \*(OQse\*(CQ will also be used if available. 
-The ANSI strings generated by the keypad arrows are recognized,
-as well as any single character codes defined by \*(OQku\*(CQ,
-\*(OQkd\*(CQ, \*(OQkl\*(CQ and \*(OQkr\*(CQ.
-.SS "Author"
-.PP
-The \fIde\fR program was written by Terrence Holm.
Index: trunk/minix/man/man9/dis88.9
===================================================================
--- trunk/minix/man/man9/dis88.9	(revision 9)
+++ 	(revision )
@@ -1,84 +1,0 @@
-.so mnx.mac
-.TH DIS88 9
-.CD "dis88 \(en disassembler [IBM]"
-.SX "dis88\fR [\fB\(eno\fR] \fIinfile\fR [\fIoutfile\fR]"
-.FL "\(eno" "List the object code along with the assembly code"
-.EX "dis88 a.out >listing" "Disassemble \fIa.out\fR"
-.EX "dis88 \(eno a.out listing" "Ditto, but with object code"
-.PP
-\fIDis88\fR disassembles 8088 object code to the assembly language format
-used by 
-.MX  .
-It makes full use of
-symbol table information, supports separate 
-instruction and data space, and generates synthetic labels when needed. 
-It does not support 8087 mnemonics, symbolic data segment references, or 
-the ESC mnemonic.
-.PP
-The program is invoked by:
-.HS
-.Cx "dis88 [\(eno] infile [outfile]"
-.HS
-The \(eno flag causes object code to be listed. 
-If no outfile is given, \fIstdout\fR is used.
-.PP
-The text segment of an object file is always padded to an even address.
-In addition, if the file has split I/D space, the text segment will be padded
-to a paragraph boundary (i.e., an address divisible by 16). Due to padding, the
-disassembler may produce a few spurious, but harmless, instructions at the end
-of the text segment.
-.PP
-Because the information to which initialized data refers cannot generally
-be inferred from context, the data segment is treated literally. Byte values
-(in hexadecimal) are output, and long stretches of null data are represented by
-appropriate \fI.zerow\fR pseudo-ops. 
-Disassembly of the bss segment, on the other
-hand, is quite straightforward, because uninitialized data is all zero by 
-definition. 
-No data is output in the bss segment, but symbolic labels are output
-as appropriate.
-.PP
-The output of operands in symbolic form is complicated somewhat by the
-existence of assembler symbolic constants and segment override opcodes. Thus,
-the program's symbol lookup routine attempts to apply a certain amount of
-intelligence when it is asked to find a symbol. If it cannot match on a symbol
-of the preferred type, it may output a symbol of some other type, depending on
-preassigned (and somewhat arbitrary) rankings within each type. Finally, if
-all else fails, it will output a string containing the address sought as a hex
-constant. For user convenience, the targets of branches are also output, in
-comments, as hexadecimal constants.
-.SS "Error Messages"
-.PP
-Various error messages may be generated as a result of problems encountered
-during the disassembly.
-They are listed below
-.HS.
-.in +3.20i
-.ta +2.75i +0.2i
-.ti -2.95i
-Cannot access input file	\(en	Input file cannot be opened or read
-.ti -2.95i
-Cannot open output file	\(en	Output file cannot be created
-.ti -2.95i
-Input file not in object format	\(en	Bad magic number
-.ti -2.95i
-Not an 8086/8088 object file	\(en	CPU ID of the file header is incorrect
-.ti -2.95i
-Reloc table overflow	\(en	Relocation table exceeds 1500 entries
-.ti -2.95i
-Symbol table overflow	\(en	Symbol table exceeds 1500 entries
-.ti -2.95i
-Lseek error	\(en	Input file corrupted (should never happen)
-.ti -2.95i
-Warning: no symbols	\(en	Symbol table is missing (use ast)
-.ti -2.95i
-Cannot reopen input file	\(en	Input file was removed during execution
-.in -3.20i
-.SS "Author"
-.PP
-\fIDis88\fR  was written and
-copyrighted by G. M. Harding and is included here by permission. It may be
-freely redistributed provided that complete source code, with all copyright
-notices, accompanies any redistribution. This provision also applies to any
-modifications you may make. You are urged to comment such changes, giving,
-as a minimum, your name and complete address.
Index: trunk/minix/man/man9/elle.9
===================================================================
--- trunk/minix/man/man9/elle.9	(revision 9)
+++ 	(revision )
@@ -1,557 +1,0 @@
-.so mnx.mac
-.TH ELLE 9
-.CD "elle \(en ELLE Looks Like Emacs"
-.SX "elle \fIfile\fR [\fIfile2\fR]"
-.FL "\fR(none)"
-.EY "elle file.c" "Start the editor"
-.PP
-\fIELLE\fR (ELLE Looks Like Emacs) is an Emacs clone for 
-.MX .  
-ELLE is not full Emacs but it has about 80 commands and is quite fast.
-.SP 0.5
-.SS "Key bindings"
-.SP 0.5
-.PP
-\fIMined\fR only has a small number of commands.  All of them are either of
-the form CTRL-x or are on the numeric keypad.  Emacs, in contrast, has so
-many commands, that not only are all the CTRL-x commands used up, but so
-are all the ESC x (escape followed by x; escape is not a shift character,
-like CTRL).  Even this is not enough, so CTRL-X is used as a prefix for
-additional commands.  Thus CTRL-X CTRL-L is a command, and so is CTRL-X K.
-Note that what is conventionally written as CTRL-X K really means CTRL-X k.
-In some contexts it is traditional to write CTRL-X as ^X.
-Please note that they mean the same thing.
-.PP
-As a result, many Emacs commands need three or four key strokes to 
-execute.  Some people think 3-4 key strokes is too many.
-For this reason, Emacs and ELLE allow users to assign their own key bindings.
-In ELLE this is done with \*(OQuser profiles.\*(CQ  A user profile is a file listing
-which function is invoked by which key stroke.  The user profile is then
-compiled by a program called ellec into binary form.  When ELLE starts up
-it checks to see if a file .ellepro.b1 exists in $HOME.  If it does, this
-file is read in and overrides the default bindings.  
-.PP
-A user profile that simulates the \fImined\fR commands fairly
-well is provided.  
-Its installation is described later.  If you have never used Emacs, 
-it is suggested that you use the \fImined\fR profile.  
-If you normally use Emacs, then
-do not install the \fImined\fR profile.  You can also make your own using
-\fIellec\fR.
-There is no Mock Lisp.
-.PP
-ELLE has a character-oriented view of the world, not a line oriented
-view, like \fIed\fR.  
-It does not have magic characters for searching.
-However, you can use line feed in search patterns.  
-For example, to find a line consisting of the three characters
-\*(OQfoo\*(CQ all by themselves on a line, using the mined
-bindings (see below), use the pattern: CTRL-\\ CTRL-J f o o CTRL-\\ CTRL-J.
-The CTRL-\ means to interpret the next character literally, in this case it
-is CTRL-J, which is line feed.  You can also search for patterns involving 
-multiple lines.  For example, to find a line ending in an \*(OQx\*(CQ followed by a
-line beginning with a \*(OQy\*(CQ, use as pattern: x CTRL-\ CTRL-J y.
-.SS "Mined Key Bindings"
-.PP
-These are the key bindings if the binary user profile, \fI.ellepro.b1\fR,
-is installed in $HOME.  The ESCAPE key followed by a number followed by a
-command causes that command to be executed \*(OQnumber\*(CQ times.  This applies
-both to control characters and insertable characters.  CTRL-X refers to a
-\*(OQcontrol character.\*(CQ  ESC x refers to an escape character 
-followed by x.
-In other words, ^X is a synonym for CTRL-X.
-^X Y refers to CTRL-X followed by y.  To abort the current command and go
-back to the main loop of the editor, type CTRL-G, rather than CTRL-\\.
-.PP
-Only a few commands are of the form CTRL-X Y.  All of these are also
-bound to CTRL-X CTRL-Y, so you can hold down CTRL and then hit X Y, or
-release control after the X, as you prefer.
-.PP
-The key bindings that are not listed should not be used.
-Some of them actually do things.
-For example, the ANSI escape codes ESC [ x are bound 
-to ^X Y for a variety of y.
-.PP
-Some commands work on regions.
-A region is defined as the text between the most recently set mark 
-and the cursor.
-.SP 0.5
-.SS "Mined Commands"
-.SP 0.5
-.PP
-If the \fImined\fR profile,
-.I .ellepro.b1 
-is installed in your home directory, the following commands will work.
-.sp
-.in +1.75i
-.ta +1.25i
-.ti -1.5i
-\fBCURSOR MOTION\fR
-.ti -1.25i
-arrows	Move the cursor in the indicated direction
-.ti -1.25i
-CTRL-A	Move cursor to start of current line
-.ti -1.25i
-CTRL-Z	Move cursor to end of current line
-.ti -1.25i
-CTRL-F	Move cursor forward word 
-.ti -1.25i
-CTRL-B	Move cursor backward to start of previous word 
-.sp
-.ti -1.5i
-\fBSCREEN MOTION\fR
-.ti -1.25i
-Home key	Move to first character of the file
-.ti -1.25i
-End key	Move to last character of the file
-.ti -1.25i
-PgUp key	Scroll window up 22 lines (closer to start of the file)
-.ti -1.25i
-PgDn key	Scroll window down 22 lines (closer to end of the file)
-.ti -1.25i
-CTRL-U	Scroll window up 1 line
-.ti -1.25i
-CTRL-D	Scroll window down 1 line
-.ti -1.25i
-ESC ,	Move to top of screen
-.ti -1.25i
-CTRL-_	Move to bottom of screen
-.sp
-.ti -1.5i
-\fBMODIFYING TEXT\fR
-.ti -1.25i
-DEL key	Delete the character under the cursor
-.ti -1.25i
-Backsp	Delete the character to left of the cursor
-.ti -1.25i
-CTRL-N	Delete the next word
-.ti -1.25i
-CTRL-P	Delete the previous word
-.ti -1.25i
-CTRL-T	Delete tail of line (all characters from cursor to end of line)
-.ti -1.25i
-CTRL-O	Open up the line (insert line feed and back up)
-.ti -1.25i
-ESC G	Get and insert a file at the cursor position (CTRL-G in mined)
-.sp
-.ti -1.5i
-\fBREGIONS\fR
-.ti -1.25i
-CTRL-^	Set mark at current position for use with CTRL-C and CTRL-K
-.ti -1.25i
-CTRL-C	Copy the text between the mark and the cursor into the buffer
-.ti -1.25i
-CTRL-K	Delete text between mark and cursor; also copy it to the buffer
-.ti -1.25i
-CTRL-Y	Yank contents of the buffer out and insert it at the cursor
-.sp
-.ti -1.5i
-\fBMISCELLANEOUS\fR
-.ti -1.25i
-numeric +	Search forward (prompts for expression)
-.ti -1.25i
-numeric \(mi	Search backward (prompts for expression)
-.ti -1.25i
-CTRL-]	ESC n CTRL-[ goes to line n (slightly different syntax than mined)
-.ti -1.25i
-CTRL-R	Global replace pattern with string (from cursor to end)
-.ti -1.25i
-CTRL-L	Replace pattern with string within the current line only
-.ti -1.25i
-CTRL-W	Write the edited file back to the disk
-.ti -1.25i
-CTRL-S	Fork off a shell (use CTRL-D to get back to the editor)
-.ti -1.25i
-CTRL-G	Abort whatever the editor was doing and wait for command (CTRL-\)
-.ti -1.25i
-CTRL-E	Redraw screen with cursor line positioned in the middle
-.ti -1.25i
-CTRL-V	Visit (edit) a new file
-.ti -1.25i
-CTRL-Q	Write buffer to a file
-.ti -1.25i
-ESC X	Exit the editor
-.SP 0.5
-.in -1.75i
-.SS "Non-Mined Commands"
-.LP
-.SP 0.5
-.in +1.75i
-.ta +1.25i
-.ti -1.5i
-\fBCURSOR MOTION\fR
-.ti -1.25i
-ESC P	Forward paragraph (a paragraph is a line beginning with a dot)
-.ti -1.25i
-ESC ]	Backward paragraph
-.ti -1.25i
-ESC .	Indent this line as much as the previous one
-.sp
-.ti -1.5i
-\fBMODIFYING TEXT\fR
-.ti -1.25i
-CTRL-\\	Insert the next character (used for inserting control characters)
-.ti -1.25i
-ESC T	Transpose characters
-.ti -1.25i
-ESC W	Transpose words
-.ti -1.25i
-ESC =	Delete white space (horizontal space)
-.ti -1.25i
-ESC |	Delete blank lines (vertical space)
-.sp
-.ti -1.5i
-\fBREGIONS\fR
-.ti -1.25i
-ESC M	Mark current paragraph
-.ti -1.25i
-ESC ^	Exchange cursor and mark
-.ti -1.25i
-ESC Y	Yank back the next-to-the-last kill (CTRL-Y yanks the last one)
-.ti -1.25i
-ESC A	Append next kill to kill buffer
-.sp
-.ti -1.5i
-\fBKEYBOARD MACROS\fR
-.ti -1.25i
-ESC /	Start Keyboard Macro
-.ti -1.25i
-ESC \\	End Keyboard Macro
-.ti -1.25i
-ESC *	View Keyboard Macro (the PrtSc key on the numeric pad is also a *)
-.ti -1.25i
-ESC E	Execute Keyboard Macro
-.sp
-.ti -1.5i
-\fBWINDOW MANAGEMENT\fR
-.ti -1.25i
-^X 1	Enter one window mode
-.ti -1.25i
-^X 2	Enter two window mode
-.ti -1.25i
-^X L	Make the current window larger
-.ti -1.25i
-^X P	Make the window more petit/petite (Yes, Virginia, they are English)
-.ti -1.25i
-^X N	Next window
-.ti -1.25i
-^X W	New window
-.sp
-.ti -1.5i
-\fBBUFFER MANAGEMENT\fR
-.ti -1.25i
-numeric 5	Display the list of current files and buffers
-.ti -1.25i
-ESC B	Select a buffer
-.ti -1.25i
-ESC S	Select an existing buffer
-.ti -1.25i
-ESC N	Mark a buffer as NOT modified (even if it really is)
-.sp
-.ti -1.5i
-\fBUPPER AND LOW CASE MANIPULATION\fR
-.ti -1.25i
-ESC I	Set first character of word to upper case
-.ti -1.25i
-ESC C	Capitalize current word
-.ti -1.25i
-ESC O	Make current word ordinary (i.e., lower case)
-.ti -1.25i
-ESC U	Set entire region between mark and cursor to upper case
-.ti -1.25i
-ESC L	Set entire region between mark and cursor to lower case
-.sp
-.ti -1.5i
-\fBMISCELLANEOUS\fR
-.ti -1.25i
-ESC F	Find file and read it into its own buffer
-.ti -1.25i
-ESC Z	Incremental search
-.ti -1.25i
-ESC Q	Like CTRL-R, but queries at each occurrence (type ? for options)
-.ti -1.25i
-ESC R	Reset the user profile from a file
-.ti -1.25i
-ESC H	Help (ELLE prompts for the 1 or 2 character command to describe)
-.ti -1.25i
-ESC ;	Insert a comment in a C program (generates /* */ for you)
-.ti -1.25i
-^X X	Exit the editor (same as ESC X and CTRL-X CTRL-X)
-.in -1.75i
-.fi
-.sp
-The major differences between ELLE 
-with the \fImined\fR profile and \fImined\fR itself are:
-.sp
-.nf
-.in +0.25i
-1. The definition of a \*(OQword\*(CQ is different for forward and backward word
-2. The mark is set with CTRL-^ instead of CTRL-@
-3. Use CTRL-G to abort a command instead of CTRL-\\
-4. Use CTRL-\ to literally insert the next character, instead of ALT
-5. CTRL-E adjusts the window to put the cursor in the middle of it
-6. To get and insert a file, use ESC G instead of CTRL-G
-7. To go to line n, type ESC n CTRL-[ instead of CTRL-[ n
-8. You exit with CTRL-X CTRL-X and then answer the question with \*(OQy\*(CQ.
-9. There are many new commands, windows, larger files, etc.
-.fi
-.in -0.25i
-.sp
-.SS "Emacs Key Bindings"
-.PP
-If you do not have the \fImined\fR profile installed, you get the standard
-Emacs key bindings.
-These are listed below. 
-Commands not listed are not implemented.
-.sp
-.in +1.75i
-.ta +1.25i
-.ti -1.5i
-\fBCURSOR MOVEMENT\fR
-.ti -1.25i
-CTRL-F	Forward one character.
-.ti -1.25i
-CTRL-B	Backward one character.
-.ti -1.25i
-CTRL-H	Same as CTRL-B: move backward one character.
-.ti -1.25i
-ESC F	Forward one word.
-.ti -1.25i
-ESC B	Backward one word.
-.ti -1.25i
-CTRL-A	Beginning of current line.
-.ti -1.25i
-CTRL-E	End of current line.
-.ti -1.25i
-CTRL-N	Next line (goes to the next line).
-.ti -1.25i
-CTRL-P	Previous line (goes to the previous line).
-.ti -1.25i
-CTRL-V	Beginning of next screenful.
-.ti -1.25i
-ESC V	Beginning of previous screenful.
-.ti -1.25i
-ESC ]~	Forward Paragraph.
-.ti -1.25i
-ESC [~	Backward Paragraph.
-.ti -1.25i
-ESC <	Beginning of whole buffer.
-.ti -1.25i
-ESC >	End of whole buffer.
-.sp
-.ti -1.5i
-\fBDELETING\fR
-.ti -1.25i
-CTRL-D	Deletes forward one character (the one the cursor is under).
-.ti -1.25i
-DELETE	Deletes backward one character (the one to left of cursor).
-.ti -1.25i
-ESC D	Kills forward one word.
-.ti -1.25i
-ESC DEL	Kills backward one word.
-.ti -1.25i
-CTRL-K	Kills the rest of the line (to the right of the cursor).
-.ti -1.25i
-ESC \\	Deletes spaces around the cursor.
-.ti -1.25i
-^X CTRL-O	Deletes blank lines around the cursor.
-.sp
-.ti -1.5i
-\fBCASE CHANGE\fR
-.ti -1.25i
-ESC C	Capitalizes word : first letter becomes uppercase; rest lower
-.ti -1.25i
-ESC L	Makes the whole next word lowercase.
-.ti -1.25i
-ESC U	Makes the whole next word uppercase.
-.ti -1.25i
-^X CTRL-L	Makes whole region lowercase.
-.ti -1.25i
-^X CTRL-U	Makes whole region uppercase.
-.sp
-.ti -1.5i
-\fBSEARCHING\fR (If no string is given, previous string is used)
-.ti -1.25i
-CTRL-S	Incremental Search forward; prompts \*(OQI-search:\*(CQ
-.ti -1.25i
-CTRL-R	Reverse Incremental Search; prompts \*(OQR-search:\*(CQ
-.HS
-During an incremental search, the following characters have special effects:
-.HS
-.in +1.2i
-.ta +1.0i +0.2i
-.ti -1.2i
-\*(OQnormal\*(CQ 	-	Begin searching immediately.
-.ti -1.2i
-^G	-	Cancel I-search, return to start.
-.ti -1.2i
-DEL	-	Erase last char, return to last match.
-.ti -1.2i
-^S, ^R	-	Repeat search (or change direction).
-.ti -1.2i
-ESC or CR	-	Exit I-search at current point.
-.sp
-.in -1.2i
-.ta +1.25i
-.ti -1.25i
-ESC %	Query Replace. Interactive replace. Type \*(OQ?\*(CQ to see options.
-.ti -1.25i
-^X %	Replace String.	Like Query Replace, but not interactive
-.sp
-.ti -1.5i
-\fBMARKING AREAS\fR
-.ti -1.25i
-CTRL-^	Set mark
-.ti -1.25i
-^X CTRL-X	Exchange cursor and mark.
-.ti -1.25i
-ESC H	Mark Paragraph. Sets mark and cursor to surround a para.
-.ti -1.25i
-CTRL-W	Wipe-out -- kills a \*(OQregion\*(CQ:
-.ti -1.25i
-ESC W	Copy region. Like CTRL-W then CTRL-Y but modifies buffer
-.ti -1.25i
-CTRL-Y	Yanks-back (un-kills) whatever you have most recently killed.
-.ti -1.25i
-ESC Y	Yanks-back (un-kills) the next most recently killed text.
-.ti -1.25i
-ESC CTRL-W	Append Next Kill. Accumulates stuff from several kills
-.sp
-.ti -1.5i
-\fBFILLING TEXT\fR
-.ti -1.25i
-ESC Q	Fill the paragraph to the size of the Fill Column.
-.ti -1.25i
-ESC G	Fill the region.
-.ti -1.25i
-^X F	Set Fill Column. ESC Q will use this line size.
-.ti -1.25i
-^X .	Set Fill Prefix. Asks for prefix string 
-.ti -1.25i
-^X T	Toggles Auto Fill Mode.
-.sp
-.ti -1.5i
-\fBWINDOWS\fR
-.ti -1.25i
-^X 2	Make two windows (split screen).
-.ti -1.25i
-^X 1	Make one window (delete window) (make one screen).
-.ti -1.25i
-^X O	Go to Other window.
-.ti -1.25i
-^X ^	Grow window: makes current window bigger.
-.sp
-.ti -1.5i
-\fBBUFFERS\fR
-.ti -1.25i
-^X CTRL-F	Find a file and make a buffer for it.
-.ti -1.25i
-^X B	Select Buffer: goes to specified buffer or makes new one
-.ti -1.25i
-^X CTRL-B	Show the names of the buffers used in this editing session.
-.ti -1.25i
-^X K	Kill Buffer.
-.ti -1.25i
-ESC tilde	Say buffer is not modified.
-.ti -1.25i
-^X CTRL-M	Toggle EOL mode (per-buffer flag).
-.sp
-.ti -1.5i
-\fBKEYBOARD MACRO\fR
-.ti -1.25i
-^X (	Start collecting a keyboard macro.
-.ti -1.25i
-^X )	Stop collecting.
-.ti -1.25i
-^X E	Execute the collected macro.
-.ti -1.25i
-^X *	Display the collected macro.
-.sp
-.ti -1.5i
-\fBFILES\fR
-.ti -1.25i
-^X CTRL-I	Insert a file where cursor is.
-.ti -1.25i
-^X CTRL-R	Read a new file into current buffer.
-.ti -1.25i
-^X CTRL-V	Same as ^X ^R above (reads a file).
-.ti -1.25i
-^X CTRL-W	Write buffer out to new file name.
-.ti -1.25i
-^X CTRL-S	Save file: write out buffer to its file name.
-.ti -1.25i
-^X CTRL-E	Write region out to new file name.
-.sp
-.ti -1.5i
-\fBMISCELLANEOUS\fR
-.ti -1.25i
-^X CTRL-Z	Exit from ELLE.  
-.ti -1.25i
-^X !	Escape to shell (CTRL-D to return)
-.ti -1.25i
-CTRL-O	Open up line	
-.ti -1.25i
-LINEFEED	Same as typing RETURN and TAB.
-.ti -1.25i
-CTRL-T	Transposes characters.
-.ti -1.25i
-ESC T	Transposes words.
-.ti -1.25i
-CTRL-U	Makes the next command happen four times.
-.ti -1.25i
-CTRL-U number	Makes the next command happen \*(OQnumber\*(CQ times.  
-.ti -1.25i
-ESC number	Same as CTRL-U number.
-.ti -1.25i
-CTRL-L	Refreshes screen.
-.ti -1.25i
-CTRL-U CTRL-L	Refresh only the line cursor is on.
-.ti -1.25i
-CTRL-U n CTRL-L Change window so the cursor is on line n
-.ti -1.25i
-CTRL-Q	Quote: insert the next character no matter what it is.
-.ti -1.25i
-CTRL-G	Quit: use to avoid answering a question.
-.ti -1.25i
-ESC ;	Inserts comment (for writing C programs).
-.ti -1.25i
-ESC I	Inserts indentation equal to previous line.
-.ti -1.25i
-ESC M	Move to end of this line's indentation.
-.ti -1.25i
-CTRL-_	Describe a command (if the command database is online)
-.sp
-.ti -1.5i
-\fBUNUSED CONTROLS\fR
-.ti -1.25i
-CTRL-C	Not used.
-.ti -1.25i
-CTRL-Z	Not used.
-.ti -1.25i
-CTRL-]	Not used.
-.fi
-.in -1.75i
-.sp	
-.SP 0.5
-.SS "ELLE profile"
-.PP
-It is possible to create your own user profile.
-The mechanism is different from Emacs, since ELLE does not have Mock Lisp.
-Proceed as follows.
-.LI
-.IT
-Modify \fI.ellepro.e\fR to suit your taste.
-.IT
-Install \fI.ellepro.e\fR in your home directory.
-.IT
-Type:
-.HS
-.Cx "ellec \(enProfile"
-.HS
-.IT
-Check to see if \fI.ellepro.b1\fR has been created.
-If it has, you are ready to go.
-.LX
-.SS "Author"
-.PP
-ELLE was written by Ken Harrenstien of SRI (klh@sri.com).
Index: trunk/minix/man/man9/elvis.9
===================================================================
--- trunk/minix/man/man9/elvis.9	(revision 9)
+++ 	(revision )
@@ -1,1258 +1,0 @@
-.so mnx.mac
-.TH ELVIS 9
-.CD "elvis \(en clone of the Berkeley vi editor"
-.SX "elvis \fR[\fB\(enRerv\fR] [\fB\(ent \fItag\fR] \fR[\fIfile\fR] ..."
-.FL "\(enR" "Set the read-only option"
-.FL "\(ene" "Start up emulating \fIex\fR"
-.FL "\(enr" "Tell the user to use \fIelvrec\fR instead
-.FL "\(ent" "Start editing at the given tag"
-.FL "\(env" "Start up emulating \fIvi\fR"
-.EX "elvis" "Call the editor"
-.EX "elvis prog.c" "edit \fIprog.c\fR"
-.PP
-\fIElvis\fR is a full-screen editor closely modeled on the famous Berkeley
-\fIvi\fR editor.
-It provides essentially the same interface to the user as \fIvi\fR, but the 
-code is completely new, written from scratch.
-This document provides a brief introduction to \fIvi\fR.
-It is not intended as a tutorial for beginners.
-Most books on
-.Ux
-cover \fIvi\fR.
-.PP
-Like \fIvi\fR, \fIelvis\fR can operate as a screen editor
-(\fIvi\fR mode) or as a line editor (\fIex\fR) mode.  
-It can be called either as \fIelvis\fR \fIvi\fR,or as \fIex\fR, 
-depending on which is desired.
-They are all links to the same file.
-.SS "Vi Commands"
-.PP
-Below is a list of the \fIvi\fR commands supported.
-The following symbols are used in the table:
-.HS
-.in +1.25i
-.ta +1.0i
-.ti -1.0i
-count	Integer parameter telling how many or how much
-.ti -1.0i
-key	One character parameter to the command
-.ti -1.0i
-inp	Interactive input expected
-.ti -1.0i
-mv	Indicates how much for commands like \fIdelete\fR and \fIchange\fR:
-.in +0.8i
-.ta +0.3i
-.ti -0.3i
-(	Previous sentence
-.ti -0.3i
-)	Next sentence
-.ti -0.3i
-{	Previous paragraph
-.ti -0.3i
-}	Next paragraph (delimited by blank line, \fI.PP, .LP, .IP\fR etc.)
-.ti -0.3i
-[	Previous section (delimited by \fI.SH\fR or \fI.NH\fR)
-.br
-A repeated command character means the scope is this line
-.in -0.8i
-.ta +1.0i
-.ti -1.0i
-MOVE	Indicates commands that may also be used where \fImv\fR is specified
-.ti -1.0i
-EDIT	These commands affect text and may be repeated by the \fI.\fR command
-.in -1.25i
-.HS
-In addition to the above notation, the caret (^) is used as an abbreviation
-for CTRL.
-For example, ^A means CTRL-A.
-.HS
-.in +2i
-.ta +1i +1i +3.3i
-.ti -2i
-\fBCount~~~~	Command	Description	Type\fR
-.ti -2i
-	^A	(Not defined)
-.ti -2i
-	^B	Move toward the top of the file by 1 screenful
-.ti -2i
-	^C	(Not defined)
-.ti -2i
-count	^D	Scroll down \fIcount\fR lines (default 1/2 screen)
-.ti -2i
-count	^E	Scroll up \fIcount\fR lines
-.ti -2i
-	^F	Move toward the bottom of the file by 1 screenful
-.ti -2i
-	^G	Show file status, and the current line 
-.ti -2i
-count	^H	Move left, like \fIh\fR	MOVE
-.ti -2i
-	^I	(Not defined)
-.ti -2i
-count	^J	Move down	MOVE
-.ti -2i
-	^K	(Not defined)
-.ti -2i
-	^l	Redraw the screen
-.ti -2i
-count	^M	Move to the front of the next line	MOVE
-.ti -2i
-count	^N	Move down	MOVE
-.ti -2i
-	^O	(Not defined)
-.ti -2i
-count	^P	Move up	MOVE
-.ti -2i
-	^Q	(Not defined)
-.ti -2i
-	^R	Redraw the screen
-.ti -2i
-	^S	(Not defined)
-.ti -2i
-	^T	(Not defined)
-.ti -2i
-count	^U	Scroll up \fIcount\fR lines (default 1/2 screen)
-.ti -2i
-	^V	(Not defined)
-.ti -2i
-	^W	(Not defined)
-.ti -2i
-	^X	(Not defined)
-.ti -2i
-count	^Y	Scroll down \fIcount\fR lines
-.ti -2i
-	^Z	(Not defined)
-.ti -2i
-	ESC	(Not defined)
-.ti -2i
-	^\e	(Not defined)
-.ti -2i
-	^]	If the cursor is on a tag name, go to that tag
-.ti -2i
-	^^	Save this file and edit the previous file
-.ti -2i
-	^_	(Not defined)
-.ti -2i
-count	SPACE	Move right,like \fIl\fR	MOVE
-.ti -2i
-	! mv	Run the selected lines thru an external filter program
-.ti -2i
-	" key	Select which cut buffer to use next
-.ti -2i
-	#	(Not defined)
-.ti -2i
-	$	Move to the rear of the current line	MOVE
-.ti -2i
-	%	move to the matching (){}[] character	MOVE
-.ti -2i
-	&	(Not defined)
-.ti -2i
-	' key	Move to a marked line	MOVE
-.ti -2i
-count	(	Move backward \fIcount\fR sentences	MOVE
-.ti -2i
-count	)	Move forward \fIcount\fR sentences	MOVE
-.ti -2i
-	*	(Not defined)
-.ti -2i
-count	+	Move to the front of the next line	MOVE
-.ti -2i
-count	,	Repeat the previous [\fIfFtT\fR] but the other way	MOVE
-.ti -2i
-count	\(en	Move to the front of the preceding line	MOVE
-.ti -2i
-	.	Repeat the previous \*(OQedit\*(CQ command
-.ti -2i
-	 /	Text search forward for a given regular expr	MOVE
-.ti -2i
-	0	If not part of count, move to 1st char of this line	MOVE
-.ti -2i
-	1	Part of count
-.ti -2i
-	2	Part of count
-.ti -2i
-	3	Part of count
-.ti -2i
-	4	Part of count
-.ti -2i
-	5	Part of count
-.ti -2i
-	6	Part of count
-.ti -2i
-	7	Part of count
-.ti -2i
-	8	Part of count
-.ti -2i
-	9	Part of count
-.ti -2i
-	:	Text. Run single \fIex\fR cmd
-.ti -2i
-count	;	Repeat the previous [fFtT] cmd	MOVE
-.ti -2i
-count	< mv	Shift text left	EDIT
-.ti -2i
-	=	(Not defined)
-.ti -2i
-count	> mv	Shift text right	EDIT
-.ti -2i
-	? text	Search backward for a given regular expression	MOVE
-.ti -2i
-	@	(Not defined)
-.ti -2i
-count	A inp	Append at end of the line	EDIT
-.ti -2i
-count	B	Move back Word	MOVE
-.ti -2i
-	C inp	Change text from cursor through end of line	EDIT
-.ti -2i
-	D	Delete text from  cursor through end of line	EDIT
-.ti -2i
-count	E	Move end of Word	MOVE
-.ti -2i
-count	F key	Move leftward to a given character	MOVE
-.ti -2i
-count	G	Move to line #\fIcount\fR (default is the bottom line)	MOVE
-.ti -2i
-count	H	Move to home row (the line at the top of the screen)
-.ti -2i
-count	I inp	Insert at the front of the line (after indents)	EDIT
-.ti -2i
-count	J	Join lines, to form one big line	EDIT
-.ti -2i
-	K	Look up keyword
-.ti -2i
-count	L	Move to last row (the line at the bottom of the screen)
-.ti -2i
-	M	Move to middle row (the line in the middle)
-.ti -2i
-	N	Repeat previous search, but the opposite way	MOVE
-.ti -2i
-count	O inp	Open up a new line above the current line	EDIT
-.ti -2i
-	P	Paste text before the cursor
-.ti -2i
-	Q	Quit to EX mode
-.ti -2i
-	R inp	Overtype	EDIT
-.ti -2i
-count	S inp	Change lines, like \fIcount\fRcc
-.ti -2i
-count	T key	Move leftward \fIalmost\fR to a given character	MOVE
-.ti -2i
-	U	Undo all recent changes to the current line
-.ti -2i
-	V	(Not defined)
-.ti -2i
-count	W	Move forward \fIcount\fR Words	MOVE
-.ti -2i
-count	X	Delete the character(s) to the left of the cursor	EDIT
-.ti -2i
-count	Y	Yank text line(s) (copy them into a cut buffer)
-.ti -2i
-	Z Z	Save the file & exit
-.ti -2i
-	[ [	Move back 1 section	MOVE
-.ti -2i
-	\e	(Not defined)
-.ti -2i
-	] ]	Move forward 1 section					MOVE
-.ti -2i
-	^	Move to the front of the current line (after indent)	MOVE
-.ti -2i
-	\(ul	(Not defined)
-.ti -2i
-	` key	Move to a marked character	MOVE
-.ti -2i
-count	a inp	Insert text after the cursor	EDIT
-.ti -2i
-count	b	Move back \fIcount\fR words	MOVE
-.ti -2i
-	c mv	Change text	EDIT
-.ti -2i
-	d mv	Delete text	EDIT
-.ti -2i
-count	e	Move forward to the end of the current word	MOVE
-.ti -2i
-count	f key	Move rightward to a given character	MOVE
-.ti -2i
-	g	(Not defined)
-.ti -2i
-count	h	Move left	MOVE
-.ti -2i
-count	i inp	Insert text at the cursor	EDIT
-.ti -2i
-count	j	Move down	MOVE
-.ti -2i
-count	k	Move up	MOVE
-.ti -2i
-count	l	Move right	MOVE
-.ti -2i
-	m key	Mark a line or character
-.ti -2i
-	n	Repeat the previous search	MOVE
-.ti -2i
-count	o inp	Open a new line below the current line	EDIT
-.ti -2i
-	p	Paste text after the cursor
-.ti -2i
-	q	(Not defined)
-.ti -2i
-count	r key	Replace \fIcount\fR chars by a given character	EDIT
-.ti -2i
-count	s inp	Replace \fIcount\fR chars with text from the user	EDIT
-.ti -2i
-count	t key	Move rightward \fIalmost\fR to a given character	MOVE
-.ti -2i
-	u	Undo the previous edit command
-.ti -2i
-	v	(Not defined)
-.ti -2i
-count	w	Move forward \fIcount\fR words	MOVE
-.ti -2i
-count	x	Delete the character that the cursor's on	EDIT
-.ti -2i
-	y mv	Yank text (copy it into a cut buffer)
-.ti -2i
-	z key	Scroll current line to the screen's +=top -=bottom .=middle
-.ti -2i
-count	{	Move back \fIcount\fR paragraphs	MOVE
-.ti -2i
-count	|	Move to column \fIcount\fR (the leftmost column is 1)
-.ti -2i
-count	}	Move forward \fIcount\fR paragraphs	MOVE
-.ti -2i
-.tr ~~
-count	\(ap	Switch a character between upper & lower case	EDIT
-.tr ~
-.ti -2i
-	DEL	(Not defined)
-.in -2i
-.SS "Ex Commands"
-.PP
-Below is a list of the \fIex\fR commands supported.  All can be abbreviated.
-.UU "General"
-.LP
-.nf
-.ta 1.2i 2.4i
-[line]	append
-	args	[files]
-	cd	[directory]
-	chdir	[directory]
-[line][,line]	change
-[line][,line]	copy	line
-[line][,line]	debug[!]
-[line][,line]	Delete	[\*(CQx]
-	edit[!]	[file]
-	ex[!]	[file]
-	file
-[line][,line]	global	/regexp/ command
-[line]	Insert
-[line][,line]	join
-[line][,line]	list
-	map[!]	key mapped_to
-[line]	mark	x
-	mkexrc
-[line][,line]	Move	line
-	next[!]	[files]
-	Next[!]
-	previous[!]
-[line][,line]	print
-[line]	put	[\*(CQx]
-	quit[!]
-[line]	read	file
-	rewind[!]
-	set	[options]
-[line][,line]	substitute	/regexp/replacement/[p][g]
-	tag[!]	tagname
-[line][,line]	to	line
-	Undo
-	unmap[!]	key
-	validate[!]
-	version
-[line][,line]	vglobal	/regexp/ command
-	visual
-	wq
-[line][,line]	write[!]	[[>>]file]
-	xit[!]
-[line][,line]	yank	[\*(CQx]
-[line][,line]	!	command
-[line][,line]	<
-[line][,line]	=
-[line][,line]	>
-.SP 0.25
-.UU "Text Entry"
-.SP 0.25
-.LP
-.ta 1.2i 2.4i
-.nf
-[line]	append
-[line][,line]	change [\*(CQx]
-[line]	Insert
-.fi
-
-The (a)ppend command inserts text after the specified line.
-
-The (i)nsert command inserts text before the specified line.
-
-The (c)hange command copies the range of lines into a cut buffer,
-deletes them, and inserts new text where the old text used to be.
-
-For all of these commands, you indicate the end of the text you're
-inserting by hitting ^D or by entering a line which contains only
-a period.
-.SP 0.25
-.UU "Cut & Paste"
-.SP 0.25
-.LP
-.ta 1.2i 2.4i
-.nf
-[line][,line]	Delete [\*(CQx]
-[line][,line]	yank [\*(CQx]
-[line]	put[!] [\*(CQx]
-[line][,line]	copy line
-[line][,line]	to line
-[line][,line]	Move line
-
-.fi
-The (d)elete command copies the specified range of lines into a
-cut buffer, and then deletes them.
-
-The (y)ank command copies the specified range of lines into a cut
-buffer, but does \fInot\fR delete them.
-
-The (pu)t command inserts text from a cut buffer after the specified
-line\(emor before it if the ! is present.
-
-The (co)py and (t)o commands yank the specified range of lines and then
-immediately paste them after some other line.
-
-The (m)ove command deletes the specified range of lines and then
-immediately pastes them after some other line.  If the destination
-line comes after the deleted text, then it will be adjusted
-automatically to account for the deleted lines.
-.UU "Displaying Text"
-.LP
-.ta 1.2i 2.4i
-.nf
-[line][,line]	print
-[line][,line]	list
-
-.fi
-The (p)rint command displays the specified range of lines.
-
-The (l)ist command also displays them, but it is careful to make
-control characters visible.
-.UU "Global Operations"
-.LP
-.ta 1.2i 2.4i
-.nf
-[line][,line]	global /regexp/ command
-[line][,line]	vglobal /regexp/ command
-
-.fi
-The (g)lobal command searches through the lines of the specified range
-(or through the whole file if no range is specified) for lines that
-contain a given regular expression.  It then moves the cursor to each
-of these lines and runs some other command on them.
-
-The (v)global command is similar, but it searches for lines that
-\fIdo not\fR contain the regular expression.
-.UU "Line Editing"
-.LP
-.ta 1.2i 2.4i
-.nf
-[line][,line]	join
-[line][,line]	! program
-[line][,line]	<
-[line][,line]	>
-[line][,line]	substitute /regexp/replacement/[p][g]
-
-.fi
-The (j)oin command concatenates all lines in the specified range together
-to form one big line.  If only a single line is specified, then the
-following line is catenated onto it.
-
-The ! command runs an external filter program, and feeds the specified
-range of lines to it's stdin.  The lines are then replaced by the
-output of the filter.  A typical example would be \*(OQ:'a,'z!sort -n\*(CQ to
-sort the lines 'a,'z according to their numeric values.
-
-The < and > commands shift the specified range of lines left or right,
-normally by the width of 1 tab character.  The \*(OQshiftwidth\*(CQ option
-determines the shifting amount.
-
-The (s)ubstitute command finds the regular expression in each line,
-and replaces it with the replacement text.  The \*(OQp\*(CQ option causes
-the altered lines to be printed, and the \*(OQg\*(CQ option permits all
-instances of the regular expression to be found & replaced.  (Without
-\*(OQg\*(CQ, only the first occurrence is replaced.)
-.SP 0.25
-.UU "Undo"
-.SP 0.25
-.LP
-.ta 1.2i 2.4i
-.nf
-	undo
-
-.fi
-The (u)ndo command restores the file to the state it was in before your
-most recent command which changed text.
-.SP 0.25
-.UU "Configuration & Status"
-.SP 0.25
-.LP
-.ta 1.2i 2.4i
-.nf
-	map[!] [key mapped_to]
-	unmap[!] key
-	set [options]
-	mkexrc
-[line]	mark x
-	visual
-	version
-[line][,line]	=
-	file
-
-.fi
-The (ma)p command allows you to configure \fIelvis\fR to recognize your
-function keys, and treat them as though they transmitted some other
-sequence of characters.  Normally this mapping is done only when in
-the visual command mode, but with the [!]	present it will map keys
-under all contexts.  When this command is given with no arguments,
-it prints a table showing all mappings currently in effect.  When
-called with two arguments, the first is the sequence that your
-function key really sends, and the second is the sequence that you
-want \fIelvis\fR to treat it as having sent.
-
-The (unm)ap command removes key definitions that were made via the
-map command.
-
-The (se)t command allows you examine or set various options.  With
-no arguments, it displays the values of options that have been
-changed.  With the single argument \*(OQall\*(CQ it displays the values of
-all options, regardless of whether they've been explicitly set or
-not.  Otherwise, the arguments are treated as options to be set.
-
-The (mk)exrc command saves the current configuration to a file
-called \fI.exrc\fR in the current directory.
-
-The mar(k) command defines a named mark to refer to a specific place
-in the file.  This mark may be used later to specify lines for other
-commands.
-
-The (vi)sual command puts the editor into visual mode.  Instead of
-emulating ex, \fIelvis\fR will start emulating vi.
-
-The (ve)rsion command tells you that what version of \fIelvis\fR this is.
-
-The = command tells you what line you specified, or, if you specified
-a range of lines, it will tell you both endpoints and the number of
-lines included in the range.
-
-The file command tells you the name of the file, whether it has been
-modified, the number of lines in the file, and the current line number.
-.UU "Multiple Files"
-.LP
-.ta 1.2i 2.4i
-.nf
-	args [files]
-	next[!] [files]
-	Next[!]
-	previous[!]
-	rewind[!]
-
-.fi
-When you invoke \fIelvis\fR from your shell's command line, any filenames
-that you give to \fIelvis\fR as arguments are stored in the args list.  The
-(ar)gs command will display this list, or define a new one.
-
-The (n)ext command switches from the current file to the next one in
-the args list.  You may specify a new args list here, too.
-
-The (N)ext and (pre)vious commands (they're really aliases for the same
-command) switch from the current file to the preceding file in the
-args list.
-
-The (rew)ind command switches from the current file to the first file
-in the args list.
-.SP 1
-.UU "Switching Files"
-.SP 1
-.LP
-.ta 1.2i 2.4i
-.nf
-	edit[!] [file]
-	tag[!] tagname
-
-.fi
-The (e)dit command allows to switch from the current file to some other
-file.  This has nothing to do with the args list, by the way.
-
-The (ta)g command looks up a given tagname in a file called \*(OQtags".
-This tells it which file the tag is in, and how to find it in that file.
-\fIElvis\fR then switches to the tag's file and finds the tag.
-.SP 1
-.UU "Exiting"
-.SP 1
-.LP
-.ta 1.2i 2.4i
-.nf
-	quit[!]
-	wq
-	xit
-
-.fi
-The (q)uit command exits from the editor without saving your file.
-
-The (wq) and (x)it commands (really two names for the same command)
-both write the file before exiting.
-.UU "File I/O"
-.LP
-.ta 1.2i 2.4i
-.nf
-[line]	read file
-[line][,line]	write[!][[>>]file]
-
-.fi
-The (r)ead command gets text from another file and inserts it after
-the specified line.
-
-.fi
-The (w)rite command writes the whole file, or just part of it, to
-some other file.  The !, if present, will permit the lines to be
-written even if you've set the readonly option.  If you precede the
-filename by >> then the lies will be appended to the file.
-.UU "Directory"
-.LP
-.ta 1.2i 2.4i
-.nf
-	cd [directory]
-	chdir [directory]
-	shell
-
-.fi
-The (cd) and (chd)ir commands (really two names for one command)
-switch the current working directory.
-
-The (sh)ell command starts an interactive shell.
-.SP 0.5
-.UU "Debugging"
-.SP 0.5
-.LP
-.ta 1.2i 2.4i
-.nf
-[line][,line]	debug[!]
-	validate[!]
-
-.fi
-These commands are only available if you compile \fIelvis\fR with the
-\fB-DDEBUG\fR flag.
-
-The de(b)ug command lists stats for the blocks which contain the
-specified range of lines.  If the ! is present, then the contents
-of those blocks is displayed, too.
-
-The (va)lidate command checks certain variables for internal
-consistency.  Normally it does not output anything unless it detects
-a problem.  With the !, though, it will always produce *some*
-output.
-.SP 0.5
-.SS "Extensions"
-.SP 0.5
-.PP.
-.ta 1i
-.in +0.25i
-In addition to the standard commands, a variety of extra features are
-present in \fIelvis\fR that are not present in \fIvi\fR.
-They are described below.
-
-.ti -0.25i
-.B .exrc
-.br
-\fIElvis\fR first runs a \fI.exrc\fR file (if there is one) from your $HOME
-directory. After that, it runs a \fI.exrc\fR (if there is one) from the
-current directory.  The one in the current directory may override
-settings made by the one in the $HOME directory.
-
-.ti -0.25i
-.B :mkexrc
-.ti -0.25i
-.B :mk
-.br
-This EX command saves the current :set and :map configurations in
-the \*(OQ.exrc\*(CQ file in your current directory.
-
-.ti -0.25i
-.B :args
-.ti -0.25i
-.B :ar
-.br
-You can use the :args command to define a new args list, as in:
-
-	:args *.h
-
-After you have defined a new args list, the next time you issue a
-:next command \fIelvis\fR will switch to the first file of the new list.
-
-.ti -0.25i
-.B :Next
-.ti -0.25i
-.B :previous
-.ti -0.25i
-.B :N
-.ti -0.25i
-.B :pre
-.br
-These commands move backwards through the args list.
-
-.ti -0.25i
-.B zz
-.br
-In VI, the (lowercase) \*(OQzz\*(CQ command will center the current line on
-the screen, like \*(OQz="
-
-.ti -0.25i
-.B .
-.br
-The default count value for . is the same as the previous command
-which . is meant to repeat.  However, you can supply a new count
-if you wish.  
-For example, after \*(OQ3dw\*(CQ, \*(OQ.\*(CQ will delete 3 words,
-but \*(OQ5.\*(CQ will delete 5 words.
-
-.ti -0.25i
-\fB"\fR
-.br
-The text which was most recently input (via a \*(OQcw\*(CQ command, or
-something similar) is saved in a cut buffer called ". (which is a
-pretty hard name to write in an English sentence).  You can use this
-with the \*(OQp\*(CQ or \*(OQP\*(CQ commands thusly:
-.HS
-	".p
-.HS
-.ti -0.25i
-.B K
-.br
-You can move the cursor onto a word and press shift-K to have \fIelvis\fR
-run a reference program to look that word up.  This command alone is
-worth the price of admission!  See the ctags and ref programs.
-
-.ti -0.25i
-.B input
-.br
-You can backspace back past the beginning of the line.
-If you type CTRL-A, then the text that you input last time is
-inserted.  You will remain in input mode, so you can backspace over
-part of it, or add more to it.  (This is sort of like CTRL-@ on
-the real vi, except that CTRL-A really works.)
-
-Real \fIvi\fR can only remember up to 128 characters of input, but \fIelvis\fR
-can remember any amount.
-
-.ti -0.25i
-.B :set
-charattr
-.ti -0.25i
-.B :se
-ca
-.br
-\fIElvis\fR can display \*(OQbackslash-f\*(CQ style character attributes on the
-screen as you edit.  The following example shows the recognized
-attributes:
-
-	normal \fBboldface\fR \fIitalics\fR 
-
-NOTE: you must compile \fIelvis\fR without the \(enDSET_NOCHARATTR flag for
-this to work.
-.in -0.25i
-.SS "Omissions"
-.PP
-A few \fIvi\fR features are missing.
-The replace mode is a hack.  It does not save the text that it overwrites.
-.PP
-Long lines are displayed differently\(emwhere the real vi would wrap a long
-line onto several rows of the screen, \fIelvis\fR simply displays part of the line,
-and allows you to scroll the screen sideways to see the rest of it.
-.PP
-The \*(OQ:preserve\*(CQ and \*(OQ:recover\*(CQ commands are missing, as 
-is the \fB\(enr\fR flag.
-\*(OQ:Preserve" is practically never used and since use of \*(OQ:recover\\*(CQ
-is so rare, it was decided to implement it as a separate program.  There's no
-need to load the recovery code into memory every time you edit a file.
-.PP
-LISP support is missing.
-The \*(OQ@\*(CQ and \*(OQ:@\*(CQ commands are missing.
-You cannot APPEND to a cut buffer.
-.SS "Options"
-.PP
-A variety of options can be set as described below:
-.HS
-.nf
-.in +0.25i
-.ta 0.9i 1.35i 2.1i 3.0i
-\fBName	Abbr	Type	Default	Description\fR
-autoindent	as	Bool	FALSE	autoindent during input?
-autowrite	aw	Bool	FALSE	write file for :n command?
-charattr	ca	Bool	FALSE	display bold & underline chars?
-columns	co	Number	80	width of screen, in characters
-directory	dir	String	/usr/tmp	where tmp files are kept
-errorbells	eb	Bool	TRUE	ring bell on error?
-exrefresh	er	Bool	TRUE	EX mode calls write() often?
-ignorecase	ic	Bool	FALSE	searches: upper/lowercase OK?
-keytime	kt	Number	1	allow slow receipt of ESC seq?
-keywordprg	kp	String	/usr/bin/ref	program to run for shift-K
-lines	ln	Number	25	height of screen, in lines
-list	li	Bool	FALSE	show tabs as \*(OQ^I\*(CQ?
-magic	ma	Bool	TRUE	searches: allow metacharacters?
-paragraphs	pa	String	PPppPApa	paragraphs start with .PP, etc.
-readonly	ro	Bool	FALSE	no file should be written back?
-report	re	Number	5	report changes to X lines?
-scroll	sc	Number	12	default #lines for ^U and ^D
-sections	se	String	SEseSHsh	sections start with .SE, etc.
-shell	sh	String	\fI/bin/sh\fR	shell program, from environment
-shiftwidth	sw	Number	8	width of < or > commands
-sidescroll	ss	Number	8	#chars to scroll sideways by
-sync	sy	Bool	FALSE	call sync() after each change?
-tabstop	ts	Number	8	width of a tab character
-term	te	String	"?"	terminal type, from environment
-vbell	vb	Bool	TRUE	use visible bell if possible?
-warn	wa	Bool	TRUE	warn if file not saved for :!cmd
-wrapmargin	wm	Number	0	Insert newline after which col?
-wrapscan	ws	Bool	TRUE	searches: wrap at EOF?
-
-.fi
-.ti -0.25i
-.B autoindent
-.br
-During input mode, the autoindent option will cause each added line
-to begin with the same amount of leading whitespace as the line above
-it.  Without autoindent, added lines are initially empty.
-
-.ti -0.25i
-.B autowrite
-.br
-When you're editing one file and decide to switch to another\(emvia
-the :tag command, or :next command, perhaps\(emif your current
-file has been modified, then \fIelvis\fR will normally print an error
-message and refuse to switch.
-
-However, if the autowrite option is on, then \fIelvis\fR will write the
-modified version of the current file and successfully switch to the
-new file.
-
-.ti -0.25i
-.B charattr
-.br
-Many text formatting programs allow you to designate portions of
-your text to be underlined, italicized, or boldface by embedding
-the special strings \\fU, \\fI, and \\fB in your text.  The special
-string \\fR marks the end of underlined or boldface text.
-
-\fIElvis\fR normally treats those special strings just like any other
-text.
-However, if the \fIcharattr\fR option is on, then \fIelvis\fR will interpret
-those special strings correctly, to display underlined or boldface
-text on the screen.  (This only works, of course, if your terminal
-can display underlined and boldface, and if the TERMCAP entry says
-how to do it.)
-
-.ti -0.25i
-.B columns
-.br
-This is a \*(OQread only\*(CQ option.  You cannot change its value, but you
-can have \fIelvis\fR print it.  It shows how wide your screen is.
-
-.ti -0.25i
-.B directory
-.br
-Elvis uses temporary files to store changed text.
-This option allows you to control where those temporary files will be.
-Ideally, you should store them on in fast non-volatile memory,
-such as a hard disk.
-
-This option can only be set in the ".exrc" file.
-
-.ti -0.25i
-.B errorbells
-.br
-Normally, \fIelvis\fR will ring your terminal's bell if you make an error.
-However, in noerrorbells mode, your terminal will remain silent.
-
-.ti -0.25i
-.B exrefresh
-.br
-The EX mode of \fIelvis\fR writes many lines to the screen.  You can make
-\fIelvis\fR either write each line to the screen separately, or save up
-many lines and write them all at once.
-
-The exrefresh option is normally on, so each line is written to the
-screen separately.
-
-You may wish to turn the exrefresh option off (:se noer) if the
-\*(OQwrite\*(CQ system call is costly on your machine, or if you're using a
-windowing environment.  (Windowing environments scroll text a lot
-faster when you write many lines at once.)
-
-This option has no effect in \fIvi\fR mode.
-
-.ti -0.25i
-.B ignorecase
-.br
-Normally, when \fIelvis\fR searches for text, it treats uppercase letters
-as being different for lowercase letters.
-
-When the ignorecase option is on, uppercase and lowercase are treated
-as equal.
-
-.ti -0.25i
-.B keytime
-.br
-The arrow keys of most terminals send a multi-character sequence.
-It takes a measurable amount of time for these sequences to be
-transmitted.  The keytime option allows you to control the maximum
-amount of time to allow for an arrow key (or other mapped key) to
-be received in full.
-
-The default keytime value is 2.  Because of the way 
-.Ux
-timekeeping works, the actual amount of time allowed will vary slightly, but it
-will always be between 1 and 2 seconds.
-
-If you set keytime to 1, then the actual amount of time allowed will
-be between 0 and 1 second.  This will generally make the keyboard's
-response be a little faster (mostly for the ESC key), but on those
-occasions where the time allowed happens to be closer to 0 than 1
-second, \fIelvis\fR may fail to allow enough time for an arrow key's
-sequence to be received fully.  Ugh.
-
-As a special case, you can set keytime to 0 to disable this time
-limit stuff altogether.  The big problem here is:  If your arrow
-keys' sequences start with an ESC, then every time you hit your ESC
-key \fIelvis\fR will wait... and wait... to see if maybe that ESC was
-part of an arrow key's sequence.
-
-NOTE: this option is a generalization of the timeout option of the
-real vi.
-
-.ti -0.25i
-.B keywordprg
-.br
-\fIElvis\fR has a special keyword lookup feature.  You move the cursor
-onto a word, and hit shift-K, and \fIelvis\fR uses another program to
-look up the word and display information about it.
-
-This option says which program gets run.  It should contain the full
-pathname of the program; your whole execution path is \fInot\fR checked.
-
-The default value of this option is \fI/usr/bin/ref\fR, which is a
-program that looks up the definition of a function in C.  It looks
-up the function name in a file called \*(OQrefs\*(CQ which is created by
-ctags.
-
-You can substitute other programs, such as an English dictionary
-program or the online manual.  \fIelvis\fR runs the program, using the
-keyword as its only argument.  The program should write information
-to stdout.  The program's exit status should be 0, unless you want
-\fIelvis\fR to print \*(OQ<<< failed >>>".
-
-.ti -0.25i
-.B lines
-.br
-This \*(OQread only\*(CQ option shows how many lines you screen has.
-
-.ti -0.25i
-.B list
-.br
-Normally (in \*(OQnolist" mode) \fIelvis\fR will expand tabs to the proper
-number of spaces on the screen, so that the file appears the same would it would
-be if you printed it or looked at it with \fImore\fR.
-
-Sometimes, though, it can be handy to have the tabs displayed as \*(OQ^I".
-In \*(OQlist" mode, \fIelvis\fR does this, and also displays a \*(OQ$"
-after the end of the line.
-
-.ti -0.25i
-.B magic
-.br
-The search mechanism in \fIelvis\fR can accept \*(OQregular 
-expressions\*(CQ\(emstrings in which certain characters have special meaning.
-The magic option is normally on, which causes these characters to
-be treated specially.
-If you turn the magic option off (:se noma), then all characters
-except ^ and $ are treated literally.   ^ and $ retain their special
-meanings regardless of the setting of magic.
-
-.ti -0.25i
-.B paragraphs
-.br
-The { and } commands move the cursor forward or backward in increments
-of one paragraph.  Paragraphs may be separated by blank lines, or by
-a \*(OQdot\*(CQ command of a text formatter.  Different text formatters use
-different \*(OQdot\*(CQ commands.  This option allows you to configure \fIelvis\fR
-to work with your text formatter.
-
-It is assumed that your formatter uses commands that start with a
-".\*(CQ character at the front of a line, and then have a one- or
-two-character command name.
-
-The value of the paragraphs option is a string in which each pair
-of characters is one possible form of your text formatter's paragraph
-command.
-
-.ti -0.25i
-.B readonly
-.br
-Normally, \fIelvis\fR will let you write back any file to which you have
-write permission.  If you do not have write permission, then you
-can only write the changed version of the file to a \fIdifferent\fR
-file.
-
-If you set the readonly option, then \fIelvis\fR will pretend you do not
-have write permission to \fIany\fR file you edit.  It is useful when
-you really only mean to use \fIelvis\fR to look at a file, not to change
-it.  This way you cannot change it accidentally.
-
-This option is normally off, unless you use the \*(OQview\*(CQ alias of \fIelvis\fR.
-\*(OQView\*(CQ is like \fIvi\fR except that the readonly option is on.
-
-.ti -0.25i
-.B report
-.br
-Commands in \fIelvis\fR may affect many lines.  For commands that affect
-a lot of lines, \fIelvis\fR will output a message saying what was done and
-how many lines were affected.  This option allows you to define
-what \*(OQa lot of lines\*(CQ means.  The default is 5, so any command which
-affects 5 or more lines will cause a message to be shown.
-
-.ti -0.25i
-.B scroll
-.br
-The CTRL-U and CTRL-D keys normally scroll backward or forward
-by half a screenful, but this is adjustable.  The value of this option
-says how many lines those keys should scroll by.
-
-.ti -0.25i
-.B sections
-.br
-The [[ and ]] commands move the cursor backward or forward in
-increment of 1 section.  Sections may be delimited by a { character
-in column 1 (which is useful for C source code) or by means of
-a text formatter's \*(OQdot\*(CQ commands.
-
-This option allows you to configure \fIelvis\fR to work with your text
-formatter's \*(OQsection\*(CQ command, in exactly the same way that the
-paragraphs option makes it work with the formatter's \*(OQparagraphs"
-command.
-
-.ti -0.25i
-.B shell
-.br
-When \fIelvis\fR forks a shell (perhaps for the :! or :shell commands)
-this is the program that is uses as a shell.  This is \fI/bin/sh\fR
-by default, unless you have set the SHELL environment variable,
-it which case the default value is copied from the environment.
-
-.ti -0.25i
-.B shiftwidth
-.br
-The < and > commands shift text left or right by some uniform number
-of columns.  The shiftwidth option defines that uniform number.
-The default is 8.
-
-.ti -0.25i
-.B sidescroll
-.br
-For long lines, \fIelvis\fR scrolls sideways.  (This is different from
-the real \fIvi\fR, which wraps a single long line onto several rows of
-the screen.)
-To minimize the number of scrolls needed, \fIelvis\fR moves the screen
-sideways by several characters at a time.  The value of this option
-says how many characters' widths to scroll at a time.
-Generally, the faster your screen can be redrawn, the lower the value
-you will want in this option.
-
-.ti -0.25i
-.B sync
-.br
-If the system crashes during an edit session, then most of your work
-can be recovered from the temporary file that \fIelvis\fR uses to store
-changes.  However, sometimes 
-.MX
-will not copy changes to the
-hard disk immediately, so recovery might not be possible.  The [no]sync
-option lets you control this.
-In nosync mode (which is the default), \fIelvis\fR lets the operating system
-control when data is written to the disk.  This is generally faster.
-In sync mode, \fIelvis\fR forces all changes out to disk every time you make
-a change.  This is generally safer, but slower.
-
-.ti -0.25i
-.B tabstop
-.br
-Tab characters are normally 8 characters wide, but you can change
-their widths by means of this option.
-
-.ti -0.25i
-.B term
-.br
-This \*(OQread only\*(CQ option shows the name of the termcap entry that
-\fIelvis\fR is using for your terminal.
-
-.ti -0.25i
-.B vbell
-.br
-If your termcap entry describes a visible alternative to ringing
-your terminal's bell, then this option will say whether the visible
-version gets used or not.  Normally it will be.
-
-If your termcap does NOT include a visible bell capability, then
-the vbell option will be off, and you cannot turn it on.
-
-.ti -0.25i
-.B warn
-.br
-\fIElvis\fR will normally warn you if you run a shell command without saving
-your changed version of a file.
-The \*(OQnowarn" option prevents this warning.
-
-.ti -0.25i
-.B wrapmargin
-.br
-Normally (with wrapmargin=0) \fIelvis\fR will let you type in extremely long
-lines, if you wish.
-However, with wrapmargin set to something other that 0 (wrapmargin=65
-is nice), \fIelvis\fR will automatically cause long lines to be \*(OQwrapped"
-on a word break for lines longer than wrapmargin's setting.
-
-.ti -0.25i
-.B wrapscan
-.br
-Normally, when you search for something, \fIelvis\fR will find it no matter
-where it is in the file.  \fIelvis\fR starts at the cursor position, and
-searches forward.  If \fIelvis\fR hits EOF without finding what you're
-looking for, then it wraps around to continue searching from line 1.
-
-If you turn off the wrapscan option (:se nows), then when \fIelvis\fR hits
-EOF during a search, it will stop and say so.
-.in -0.25i
-.SS "Cflags"
-.PP
-\fIElvis\fR uses many preprocessor symbols to control compilation.
-Most of these flags allow you to disable small sets of features.
-\s-2MINIX\s0-ST users will probably want all features enabled, but
-\s-2MINIX\s0-PC users will have to disable one or two feature sets
-because otherwise \fIelvis\fR would be too large to compile and run.
-
-These symbols can be defined via flags passed to the compiler.
-The best way to do this is to edit the Makefile, and append the flag
-to the \*(OQCFLAGS=\*(CQ line.
-After you do that, you must recompile elvis completely by saying
-.HS
-.Cx "make  clean"
-.br
-.Cx "make"
-.HS
-.in +0.25i
-.ti -0.25i
-.B \(enDM_SYSV
-.br
-This flag causes \fIelvis\fR to use System-V ioctl() calls for controlling
-your terminal; normally it uses v7/BSD/\s-2MINIX\s0 ioctl() calls.
-
-.ti -0.25i
-.B \(enDDATE
-.br
-The symbol DATE should be defined to look like a string constant,
-giving the date when \fIelvis\fR was compiled.
-This date is reported by the \*(OQ:version\*(CQ command.
-
-You can also leave DATE undefined, in which case \*(OQ:version\*(CQ will not
-report the compilation date.
-
-.ti -0.25i
-.B \(enDCRUNCH
-.br
-This flag causes several large often-used macros to be replaced by
-equivalent functions.
-This saves about 4K of space in the \*(OQ.text\*(CQ segment, and it does not
-cost you any features.
-
-.ti -0.25i
-.B \(enDDEBUG
-.br
-This adds many internal consistency checks and the \*(OQ:debug\*(CQ 
-and \*(OQ:validate\*(CQ
-commands.  It increases the size of \*(OQtext\*(CQ by about 5K bytes.
-
-.ti -0.25i
-.B \(enDNO_CHARATTR
-.br
-This permanenently disables the \*(OQcharattr\*(CQ option.
-It reduces the size of \*(OQ.text\*(CQ by about 850 bytes.
-
-.ti -0.25i
-.B \(enDNO_RECYCLE
-.br
-Normally, \fIelvis\fR will recycle space in the temporary file which contains
-totally obsolete text.
-The \fB\(enDNO_RECYCLE\fR option disables this, making your \*(OQ.text\*(CQ  segment 
-smaller by about 1K but also permitting the temporary file to grow very 
-quickly.
-If you have less than two megabytes of free space on your disk,
-then do not even consider using this flag.
-
-.ti -0.25i
-.B \(enDNO_SENTENCE
-.br
-This leaves out the \*(OQ(\*(CQ and \*(OQ)\*(CQ visual commands, and 
-removes the code that allows the \*(OQ[[\*(CQ, \*(OQ]]\*(CQ, \*(OQ{\*(CQ, 
-and \*(OQ}\*(CQ commands to recognize \fRnroff\fR macros.
-The \*(OQ[[\*(CQ and \*(OQ]]\*(CQ commands will still move to the start of 
-the previous/next C function source code, though, and \*(OQ{\*(CQ 
-and \*(OQ}\*(CQ will move to the previous/next blank line.
-This saves about 650 bytes from the \*(OQ.text\*(CQ segment.
-
-.ti -0.25i
-.B \(enDNO_CHARSEARCH
-.br
-This leaves out the visual commands which locate a given character in the
-current line: \*(OQf\*(CQ, \*(OQt\*(CQ, \*(OQF\*(CQ, \*(OQT\*(CQ, \*(OQ;\*(CQ, and \*(OQ,\*(CQ.
-This saves about 900 bytes.
-
-.ti -0.25i
-.B \(enDNO_EXTENSIONS
-.br
-This leaves out the \*(OQ:mkexrc\*(CQ command, and the \*(OQK\*(CQ and \*(OQ#\*(CQ visual commands.
-Other extensions are either inherent in the design of \fIelvis\fR,
-or are too tiny to be worth removing.
-This saves about 500 bytes.
-
-.ti -0.25i
-.B \(enDNO_MAGIC
-.br
-This permanently disables the \*(OQmagic\*(CQ option, so that most 
-meta-characters in a regular expression are not recognized.  
-This saves about 3K bytes from the \*(OQ.text\*(CQ segment.
-.HS
-.in -0.25i
-.SS "Termcap"
-\fIElvis\fR can use standard termcap entries,
-but it also recognizes and uses several extra capabilities, if you give them.
-All of these are optional.
-.nf
-.in +0.25i
-.ta 1.5i
-.HS
-\fBCapability	Description\fR
-:PU=:	sequence received from the <PgUp> key
-:PD=:	sequence received from the <PgDn> key
-:HM=:	sequence received from the <Home> key
-:EN=:	sequence received from the <End> key
-:VB=:	sequence sent to start bold printing
-:Vb=:	sequence sent to end bold printing
-.in -0.25i
-.SS "Author"
-.PP
-\fIElvis\fR was written by Steve Kirkendall.
-He can be reached by email at: kirkenda@cs.pdx.edu
-for comments regarding \fIelvis\fR.
Index: trunk/minix/man/man9/kermit.9
===================================================================
--- trunk/minix/man/man9/kermit.9	(revision 9)
+++ 	(revision )
@@ -1,130 +1,0 @@
-.so mnx.mac
-.TH KERMIT 9
-.CD "kermit \(en transfer a file using the kermit protocol"
-.SX "kermit"
-.FL "\fR(many)"
-.EY "kermit" "Start kermit"
-.PP
-This is a slightly lobotomized \fIkermit\fR.
-The help command, the script facility, and the automatic dial support
-have been removed.  
-The ? and ESC commands still work, so there is still reasonable built-in help.
-The only V7 \fIkermit\fR feature that does not work is the ability to see
-whether there are input characters waiting.  This means that you will not
-be able to ask for status during a file transfer (though
-this is not critical, because \fIkermit\fR prints a dot every so often and
-other special characters whenever there is an error or timeout).
-.PP
-Start \fIkermit\fR, and then type the following to open a 2400 baud session,
-for example:
-.HS
-.nf
-.Cx "set line /dev/tty1"
-.Cx "set speed 2400"
-.Cx "connect"
-.HS
-.fi
-(It is more convenient if you put these commands in \fI.kermrc\fR in your
-home directory, so that they get done automatically whenever you
-run \fIkermit\fR.)  This will connect you to the modem or whatever on
-the serial port.  Now log into the other system.
-.PP
-When you want to transfer files, run \fIkermit\fR on the other system.
-To it, type
-.HS
-.Cx "server"
-.HS
-This puts its \fIkermit\fR into a sort of \*(OQslave mode\*(CQ where it expects
-commands from the \fIkermit\fR running on your \s-2MINIX\s0 system.  Now come back
-to the command level on \s-2MINIX\s0 \fIkermit\fR, by typing the escape character
-followed by \fIc\fR.  (\fIKermit\fR will tell you 
-the current escape character when
-you do the connect command.)  At this point you can issue various
-commands. 
-Your \fIkermit\fR will coordinate things with \fIkermit\fR on the other
-machine so that you only have to type commands at one end.  Common
-commands are
-.HS
-.Cx "get \fI\s+2filename\fP\s0"
-.br
-.Cx "put \fI\s+2filename\fP\s0"
-.br
-.Cx "remote \fI\s+2dir\fP\s0"
-.HS
-\fRFilenames can include wildcards.  By default, \fIkermit\fR works in a
-system-independent, text mode.  (In effect it assumes that the
-whole world is \s-2MS-DOS\s0 and converts end of line and file names
-accordingly.)  To send binary files, you will want to type
-.HS
-.Cx "set file type bin"
-.HS
-on both ends before starting any transfers.  This disables
-CR LF to newline conversion.  If both of your systems are some
-flavor of \s-2UNIX\s0, you might as well put this in \fI.kermrc\fR on both
-ends and run in binary mode all the time.  Also, if both systems
-are \s-2UNIX\s0 it is recommended that you use
-.HS
-.Cx "set file name lit"
-.HS
-on both ends.  This causes it to keep file names unchanged,
-rather than mapping to legal \s-2MS-DOS\s0 names.
-.PP
-Here is a typical \fI.kermrc\fR for use on
-.MX :
-.HS
-.nf
-.Cx "set line /dev/tty1"
-.Cx "set speed 1200"
-.Cx "set esc 29"
-.Cx "set file type bin"
-.Cx "set file name lit"
-.Cx "set retry 90"
-.Cx "set prompt MINIX kermit>"
-.Cx "connect"
-.fi
-.PP
-On the other end of the line, for example, the host at your local computer
-center to which you want to transfer files, a typical profile might be:
-.HS
-.nf
-.Cx "set rec packet 1000"
-.Cx "set fil name lit"
-.Cx "set fil type bin"
-.Cx "server"
-.fi
-.HS
-.PP
-\fIKermit\fR has many other options and features.  For a pleasant and
-highly readable description of it, see the following book:
-.HS
-.in +0.25i
-.nf
-Title: Kermit: A File Transfer Protocol
-Author: Frank da Cruz
-Publisher: Digital Press
-Date: 1987
-ISBN: 0-932376-88
-.fi
-.in -0.25i
-.HS
-.PP
-For information about recent \fIkermit\fR developments, versions for other
-systems, and so forth, please contact:
-.nf
-.HS
-.in +0.25i
-Christine M. Gianone
-Manager, Kermit Development and Distribution
-University Center for Computing Activities
-Columbia University
-612 West 115th Street
-New York, N.Y. 10025
-.in -0.25i
-.HS
-.fi
-Over 400 versions of \fIkermit\fR are available, so it is likely there is one
-for any computer your
-.MX
-system might want to talk to.
-Columbia University also publishes a newsletter about \fIkermit\fR that can be
-requested from the above address.
Index: trunk/minix/man/man9/m4.9
===================================================================
--- trunk/minix/man/man9/m4.9	(revision 9)
+++ 	(revision )
@@ -1,185 +1,0 @@
-.so mnx.mac
-.TH M4 9
-.CD "m4 \(en macro processor"
-.SX "m4\fR [\fB\(enD \fIname\fR = \fIvalue\fR]\fR [\fB\(enU \fIname\fR] 
-.FL "\(enD" "Define a symbol"
-.FL "\(enU" "Undefine a symbol"
-.EY "m4 <m4test" "Run M4"
-.PP
-\fIM4\fR is a macro processor intended as a front end
-for Ratfor, Pascal, and other languages that do not have a built-in macro 
-processing capability.  M4 reads standard input, the processed text is 
-written on the standard output.
-.PP
-The options and their effects are as follows:
-
-.in +0.5i
-.ta 1.25i
-\(enD name[=val]	Defines name to val, or to null in val's absence.
-.br
-\(enU name	Undefines name.
-.in -0.5i
-
-.PP
-Macro calls have the form: name(arg1,arg2, ..., argn)
-
-The \*(OQ(\*(CQ must immediately follow the name of the macro.  
-If the name of a 
-defined macro is not followed by a ( it is taken to be a call of that macro 
-with no arguments, i.e. name().  Potential macro names consist of alphabetic 
-letters and digits.
-.PP
-Leading unquoted blanks, tabs and newlines are ignored while collecting 
-arguments.  Left and right single quotes are used to quote strings.  The value 
-of a quoted string is the string stripped of the quotes.
-.PP
-When a macro name is recognized, its arguments are collected by searching 
-for a matching ).  If fewer arguments are supplied than are in the macro 
-definition, the trailing arguments are taken to be null.  Macro evaluation 
-proceeds normally during the collection of the arguments, and any commas or 
-right parentheses which happen to turn up within the value of a nested call 
-are as effective as those in the original input text.  (This is typically 
-referred as  inside-out macro expansion.)  After argument collection, the 
-value of the macro is pushed back onto the input stream and rescanned.  
-.PP
-M4 makes available the following built-in macros.  They may be 
-redefined, but once this is done the original meaning is lost.  Their values 
-are null unless otherwise stated.
-.PP
-\fBdefine "(name [, val])"\fR the second argument is installed as the value of 
-the macro whose name is the first argument.  If there is no second argument, 
-the value is null.  Each occurrence of $ n in the replacement text, where n is 
-a digit, is replaced by the n -th argument.  Argument 0 is the name of the 
-macro; missing arguments are replaced by the null string.
-.PP
-\fBdefn "(name [, name ...])"\fR returns the quoted definition of its 
-argument(s). Useful in renaming macros.
-.PP
-\fBundefine "(name [, name ...])"\fR removes the definition of the macro(s) 
-named. If there is more than one definition for the named macro, (due to 
-previous use of pushdef) all definitions are removed.
-.PP
-\fBpushdef "(name [, val])"\fR like define, but saves any previous definition 
-by stacking the current definition.
-.PP
-\fBpopdef "(name [, name ...])"\fR removes current definition of its 
-argument(s), exposing the previous one if any.
-.PP
-\fBifdef "(name, if-def [, ifnot-def])"\fR if the first argument is defined, 
-the value is the second argument, otherwise the third.  If there is no third 
-argument, the value is null.  A word indicating the current operating system 
-is predefined.  (e.g. unix or vms).
-.PP
-\fBshift "(arg, arg, arg, ...)"\fR returns all but its first argument.  The 
-other arguments are quoted and pushed back with commas in between.  The 
-quoting nullifies the effect of the extra scan that will subsequently be 
-performed.
-.PP
-\fBchangequote "(lqchar, rqchar)"\fR change quote symbols to the first and 
-second arguments.  With no arguments, the quotes are reset back to the default 
-characters. (i.e., `').
-.PP
-\fBchangecom "(lcchar, rcchar)"\fR change left and right comment markers from 
-the default # and newline.  With no arguments, the comment mechanism is reset 
-back to the default characters.  With one argument, the left marker becomes 
-the argument and the right marker becomes newline.  With two arguments, both 
-markers are affected.
-.PP
-\fBdivert "(divnum)"\fR maintains 10 output streams, numbered 0-9.  Initially 
-stream 0 is the current stream. The divert macro changes the current output 
-stream to its (digit-string) argument.  Output diverted to a stream other than 
-0 through 9 is lost.
-.PP
-\fBundivert "([divnum [, divnum ...]])"\fR causes immediate output of text from 
-diversions named as argument(s), or all diversions if no argument.  Text may 
-be undiverted into another diversion.  Undiverting discards the diverted text. 
-At the end of input processing, M4 forces an automatic undivert unless is 
-defined.
-.PP
-\fBdivnum "()"\fR returns the value of the current output stream.
-.PP
-\fBdnl "()"\fR reads and discards characters up to and including the next 
-newline.
-.PP
-\fBifelse "(arg, arg, if-same [, ifnot-same | arg, arg ...])"\fR has three or 
-more arguments.  If the first argument is the same string as the second, then 
-the value is the third argument.  If not, and if there are more than four 
-arguments, the process is repeated with arguments 4, 5, 6 and 7.  Otherwise, 
-the value is either the fourth string, or, if it is not present, null.
-.PP
-\fBincr "(num)"\fR returns the value of its argument incremented by 1.  The 
-value of the argument is calculated by interpreting an initial digit-string as 
-a decimal number.
-.PP
-\fBdecr "(num)"\fR returns the value of its argument decremented by 1.
-.PP
-\fBeval "(expression)"\fR evaluates its argument as a constant expression, 
-using integer arithmetic.  The evaluation mechanism is very similar to that of 
-cpp (#if expression).  The expression can involve only integer constants and 
-character constants, possibly connected by the binary operators
-.HS
-.in +0.5i
-*    /    %    +    -    >>   <<    <    >   <=   >=   ==   !=   &    ^    |     &&   ||
-.in -0.5i
-.HS
-or the unary operators - ! or tilde or by the ternary operator ? : .  
-Parentheses may be used for grouping. Octal numbers may be specified as in C.
-.PP
-\fBlen "(string)"\fR returns the number of characters in its argument.
-.PP
-\fBindex "(search-string, string)"\fR returns the position in its first 
-argument where the second argument begins (zero origin), or 1 if the second 
-argument does not occur.
-.PP
-\fBsubstr "(string, index [, length])"\fR returns a substring of its first 
-argument. The second argument is a zero origin number selecting the first 
-character (internally treated as an expression); the third argument indicates 
-the length of the substring.  A missing third argument is taken to be large 
-enough to extend to the end of the first string. 
-.PP
-\fBtranslit  "(source, from [, to])"\fR transliterates the characters in its 
-first argument from the set given by the second argument to the set given by 
-the third.  If the third argument is shorter than the second, all extra 
-characters in the second argument are deleted from the first argument. If the 
-third argument is missing altogether, all characters in the second argument 
-are deleted from the first argument.
-.PP
-\fBinclude "(filename)"\fR returns the contents of the file that is 
-named in the argument.
-.PP
-\fBsinclude "(filename)"\fRis identical to include, except that it says nothing 
-if the file is inaccessable.
-.PP
-\fBpaste "(filename)"\fR returns the contents of the file named in the argument
-without any processing, unlike include.
-.PP
-\fBspaste "(filename)"\fR is identical to paste, except that it says nothing if
-the file is inaccessibl[De.
-.PP
-\fBsyscmd "(command)"\fR executes the 
-.Ux
-command given in the first argument.  
-No value is returned.
-.PP
-\fBsysval "()"\fR is the return code from the last call to syscmd.
- .PP
-\fBmaketemp \*(OQ(string)"\fR fills in a string of XXXXXX in its argument with the 
-current process ID.
-.PP
-\fBm4exit "([exitcode])"\fR causes immediate exit from M4.  Argument 1, if 
-given, is the exit code; the default is 0.
-.PP
-\fBm4wrap "(m4-macro-or-built-n)"\fR argument 1 will be pushed back at final 
-EOF; example: m4wrap(`dumptable()').
-.PP
-\fBerrprint "(str [, str, str, ...])"\fR prints its argument(s) on stderr. If 
-there is more than one argument, each argument is separated by a space during 
-the output.  An arbitrary number of arguments may be supplied.
-.PP
-\fBdumpdef "([name, name, ...])"\fR prints current names and definitions, for 
-the named items, or for all if no arguments are given.
-.SP 1
-.SS "Author"
-.SP 1
-.PP
-\fIM4\fR was written by Ozan S. Yigif.
Index: trunk/minix/man/man9/macros.9
===================================================================
--- trunk/minix/man/man9/macros.9	(revision 9)
+++ 	(revision )
@@ -1,1465 +1,0 @@
-.so mnx.mac
-.TH MACROS 9
-.\" Macro package for producing books (based on -ms)
-.nr PS 12
-.nr PZ 12
-.\"	RT -  reset everything to normal state
-.de RT
-.if !\\n(1T .BG
-.ce 0
-.if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .di
-.ul 0
-.if \\n(QP \{\
-.	ll +\\n(QIu
-.	in -\\n(QIu
-.	nr QP -1\}
-.if \\n(NX<=1 .if \\n(AJ=0 .ll \\n(LLu
-.if \\n(IF=0 \{\
-.	ps \\n(PS
-.	if \\n(VS>=41 .vs \\n(VSu
-.	if \\n(VS<=40 .vs \\n(VSp\}
-.if \\n(IP .in -\\n(I\\n(IRu
-.if \\n(IP=0 .nr I0 \\n(PIu
-.if \\n(IP .nr IP -1
-.ft 1
-.bd 1
-.ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
-.fi
-..
-.	\"IZ - initialization
-.de IZ
-.nr TN 0
-.em EM
-.if n .ds [. [
-.if t .ds [. \s-2\v'-.4m'\f1
-.if n .ds .] ]
-.if t .ds .] \v'.4m'\s+2\fP
-.if n .ds [o ""
-.if n .ds [c ""
-.if t .ds [o ``
-.if t .ds [c ''
-.ch FO \\n(YYu
-.if \\n(FM=0 .nr FM 1i
-.nr YY -\\n(FMu
-.nr XX 0 1
-.nr IP 0
-.nr PI 5n
-.nr QI 5n
-.nr I0 \\n(PIu
-.nr PZ 12
-.nr VZ 13.8p
-.nr PS \n(PZ
-.nr VS \\n(VZu
-.if !\\n(PD .if n .nr PD 1v
-.if !\\n(PD .if t .nr PD 0.3v
-.nr ML 3v
-.ps \\n(PS
-.if \\n(VS>=41 .vs \\n(VSu
-.if \\n(VS<=40 .vs \\n(VSp
-.nr IR 0
-.nr TB 0
-.nr SJ \\n(.j
-.nr LL 6i
-.ll \\n(LLu
-.nr LT \\n(.l
-.lt \\n(LTu
-.ev 1
-.nr FL \\n(LLu*11u/12u
-.ll \\n(FLu
-.ps 10
-.vs 12p
-.ev
-.if \\*(CH .ds CH "\(hy \\\\n(PN \(hy
-.wh 0 NP
-.wh -\\n(FMu FO
-.ch FO 16i
-.wh -\\n(FMu FX
-.ch FO -\\n(FMu
-.if t .wh -\\n(FMu/2u BT
-.if n .wh -\\n(FMu/2u-1v BT
-..
-.	\"KS keep - for keep release features. As in IFM
-.de KS
-.nr KN \\n(.u
-.if \\n(IK=0 .if \\n(IF=0 .KQ
-.nr IK +1
-..
-.	\"KQ - real keep processor
-.de KQ
-.br
-.nr KI \\n(.i
-.ev 2
-.br
-.in \\n(KIu
-.ps \\n(PS
-.if \\n(VS>40 .vs \\n(VSu
-.if \\n(VS<=39 .vs \\n(VSp
-.ll \\n(LLu
-.lt \\n(LTu
-.if \\n(NX>1 .ll \\n(CWu
-.if \\n(NX>1 .lt \\n(CWu
-.di KK
-.nr TB 0
-.nr KV 0
-..
-.	\"KF - floating keep
-.de KF
-.nr KN \\n(.u
-.if !\\n(IK .FQ
-.nr IK +1
-..
-.	\"FQ real floating keep processor
-.de FQ
-.nr KI \\n(.i
-.ev 2
-.br
-.in \\n(KIu
-.ps \\n(PS
-.if \\n(VS>40 .vs \\n(VSu
-.if \\n(VS<=39 .vs \\n(VSp
-.ll \\n(LLu
-.lt \\n(LTu
-.if \\n(NX>1 .ll \\n(CWu
-.if \\n(NX>1 .lt \\n(CWu
-.di KK
-.nr TB 1
-.nr KV 0
-..
-.	\"KP - keep full page
-.de KP
-.nr KV 1
-..
-.	\"KE release - everything between keep and release is together
-.de KE
-.if \\n(IK .if !\\n(IK-1 .if \\n(IF=0 .RQ
-.if \\n(IK .nr IK -1
-..
-.	\"RQ real release
-.de RQ
-.br
-.di
-.nr NF 0
-.if \\n(dn-\\n(.t .nr NF 1
-.if \\n(TC .nr NF 1
-.if \\n(KV .nr NF 1 \" if KV on full page needed, doesn't fit
-.if \\n(NF .if !\\n(TB .sp 11i
-.if !\\n(NF .if \\n(TB .nr TB 0
-.nf
-.rs
-.nr TC 5
-.in 0
-.ls 1
-.if \\n(TB=0 .ev
-.if \\n(TB=0 .br
-.if \\n(TB=0 .ev 2
-.if \\n(TB=0 .KK
-.ls
-.ce 0
-.if \\n(TB=0 .rm KK
-.if \\n(TB .da KJ
-.if \\n(TB \!.KD \\n(dn \\n(KV
-.if \\n(TB .KK
-.if \\n(TB .di
-.nr TC \\n(TB
-.if \\n(KN .fi
-.in
-.ev
-..
-.de EQ  \"equation, breakout and display
-.nr EF \\n(.u
-.rm EE
-.nr LE 1	\" 1 is center
-.ds EL \\$1
-.if "\\$1"L" .ds EL \\$2
-.if "\\$1"L" .nr LE 0
-.if "\\$1"C" .ds EL \\$2
-.if "\\$1"I" .nr LE 0
-.if "\\$1"I" .ds EE \\h'|10n'
-.if "\\$1"I" .if !"\\$3"" .ds EE \\h'\\$3'
-.if "\\$1"I" .ds EL \\$2
-.if \\n(YE>0 .nf
-.di EZ
-..
-.de EN  \" end of a displayed equation
-.br
-.di
-.rm EZ
-.nr ZN \\n(dn
-.if \\n(ZN>0 .if \\n(YE=0 .LP
-.if \\n(ZN=0 .if !"\\*(EL"" .nr ZN 1
-.if "\\n(.z"" .if \\n(ZN>0 .if !\\n(nl=\\n(PE .if t .sp .5
-.if "\\n(.z"" .if \\n(ZN>0 .if !\\n(nl=\\n(PE .if n .sp 1
-.if !"\\n(.z"" .if \\n(ZN>0 .if !\\n(.d=\\n(PE .if t .sp .5
-.if !"\\n(.z"" .if \\n(ZN>0 .if !\\n(.d=\\n(PE .if n .sp 1
-'pc
-.if \\n(BD>0 .nr LE 0 \" can't mean centering in this case.
-.if \\n(MK>0 .if \\n(LE=1 .ds EE \\h'|10n'
-.if \\n(MK>0 .nr LE 0 \" don't center if mark/lineup
-'lt \\n(.lu
-.if \\n(EP=0 .if \\n(ZN>0 .if \\n(LE>0 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts
-.if \\n(EP=0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD=0 .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts
-.if \\n(EP=0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
-.if \\n(EP=0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 \!\\*(10\\t\\*(EL
-.if \\n(EP>0 .if \\n(ZN>0 .if \\n(LE>0 .tl \(ts\\*(EL\(ts\\*(10\(ts\(ts
-.if \\n(EP>0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD=0 .tl \(ts\\*(EL\\*(EE\\*(10\(ts\(ts\(ts
-.if \\n(EP>0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
-.if \\n(EP>0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 \!\\h'-\\\\n(.iu'\\*(EL\\h'|0'\\*(10
-.\".di EZ \" GCOS patch
-.\"\\*(10 \" GCOS patch
-.\".br \" GCOS patch
-.\".di \" GCOS patch
-.\".rm EZ \" GCOS patch
-'lt \\n(LLu
-'pc %
-.if \\n(YE>0 .if \\n(EF>0 .fi
-.rm EL 10 11 12 13 14 15 16 17 18 19 20 21 22 23
-.rr 10 11 12 13 14 15 16 17 18 19 20 21 22 23
-.if \\n(ZN>0 .if t .sp .5
-.if \\n(ZN>0 .if n .sp
-.if "\\n(.z"" .nr PE \\n(nl
-.if !"\\n(.z"" .nr PE \\n(.d
-.nr z 72-((\\n(nl-\\n(HM)%72)
-.if \\n(nl<\\n(HM .nr z 0
-.if \\nz>0 .if \\nz<60 .sp \\nzu  \"force post equation text to whole line
-.if \\nz>59 .if \\nz<72 .sp \\nzu-72u   \"move backwards a fraction of a pica
-..
-.de ME
-.nr SJ \\n(.j
-.if \\n(LL>0 .nr LT \\n(LL
-.nr YE 1
-.if \\n(PO=0 .nr PO \\n(.o
-.if \\n(mo-0 .ds MO January
-.if \\n(mo-1 .ds MO February
-.if \\n(mo-2 .ds MO March
-.if \\n(mo-3 .ds MO April
-.if \\n(mo-4 .ds MO May
-.if \\n(mo-5 .ds MO June
-.if \\n(mo-6 .ds MO July
-.if \\n(mo-7 .ds MO August
-.if \\n(mo-8 .ds MO September
-.if \\n(mo-9 .ds MO October
-.if \\n(mo-10 .ds MO November
-.if \\n(mo-11 .ds MO December
-.if \\n(dw-0 .ds DW Sunday
-.if \\n(dw-1 .ds DW Monday
-.if \\n(dw-2 .ds DW Tuesday
-.if \\n(dw-3 .ds DW Wednesday
-.if \\n(dw-4 .ds DW Thursday
-.if \\n(dw-5 .ds DW Friday
-.if \\n(dw-6 .ds DW Saturday
-.if "\\*(DY"" .ds DY \\*(MO \\n(dy, 19\\n(yr
-.if "\\*(CF"" .if n .ds CF "\\*(DY
-..
-.	\"EM end up macro - process left over keep-release
-.de EM
-.br
-.if \\n(TB=0 .if t .wh -1p CM
-.if \\n(TB \&\c
-.if \\n(TB 'bp
-.if \\n(TB .NP
-.if \\n(TB .ch CM 160
-..
-.	\"NP new page
-.de NP
-.if \\n(FM+\\n(HM>=\\n(.p .tm Margins bigger than page length.
-.if \\n(FM+\\n(HM>=\\n(.p .ab
-.if \\n(FM+\\n(HM>=\\n(.p .ex
-.nr PX \\n(.s
-.nr PF \\n(.f
-.nr PV \\n(.v
-.if t .CM
-.if \\n(HM=0 .nr HM 1i
-'sp \\n(HMu/2u
-.lt \\n(LTu
-.ps \\n(PS
-.vs \\n(PS+2
-.ft 1
-.if \\n(PO>0 .po \\n(POu
-.PT
-.ps \\n(PX
-.vs \\n(PVu
-.ft \\n(PF
-'sp |\\n(HMu
-.nr XX 0 1
-.nr YY 0-\\n(FMu
-.ch FO 16i
-.ch FX 17i
-.ch FO \\n(.pu-\\n(FMu
-.ch FX \\n(.pu-\\n(FMu
-.if \\n(MF .FV
-.nr MF 0
-.mk
-.os
-.ev 1
-.if \\n(TD=0 .if \\n(TC<5  .XK
-.nr TC 0
-.ns
-.ev
-.nr TQ \\n(.i
-.nr TK \\n(.u
-.if \\n(IT>0 \{\
-.	in 0
-.	nf
-.	TT
-.	in \\n(TQu
-.	if \\n(TK .fi\
-\}
-.mk #T
-.if t .if \\n(.o+\\n(LL>7.75i .tm Offset (\\n(.o) + line length (\\n(LL) exceeds 7.75 inches, too wide
-..
-.de XK
-.nr TD 1
-.nf
-.ls 1
-.in 0
-.rn KJ KL
-.KL
-.rm KL
-.if "\\n(.z"KJ" .di
-.nr TB 0
-.if "\\n(.z"KJ" .nr TB 1
-.br
-.in
-.ls
-.fi
-.if (\\n(nl+1v)>(\\n(.p-\\n(FM) .if \\n(NX>1 .RC
-.if (\\n(nl+1v)>(\\n(.p-\\n(FM) .if \\n(NX<1 .bp
-.nr TD 0
-..
-.de KD
-.nr KM 0
-.if "\\n(.z"" .if \\$2>0 .if \\n(nl>\\n(HM .if (\\n(nl+1v)<(\\n(.p-\\n(FM) .di KJ
-.if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2>0 .sp 15i \" full page figure must have new page
-.if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2=0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i
-.if "\\n(.z"KJ" .nr KM 1 \" KM is 1 if in a rediversion of keeps
-.if \\n(KM>0 \!.KD \\$1 \\$2
-.nr KR \\n(.t
-.if \\n(nl<=\\n(HM .nr KR 32767
-.if \\n(KM=0 .if \\n(KR<\\$1 .di KJ
-.if \\n(KM=0 .if \\n(KR<\\$1 .nr KM 1
-.if \\n(KM=0 .if \\$2>0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i
-.rs
-.if \\n(KM=0 .if \\$2>0 .sp \\n(.tu-\\$1u
-..
-.de PT
-.lt \\n(LLu
-.pc %
-.nr PN \\n%
-....if \\n%-1 .tl '\\*(LH'\\*(CH'\\*(RH'
-.lt \\n(.lu
-..
-.	\"FO - footer of page
-.de FO
-.rn FO FZ
-.if \\n(K1>0 .tm This memo has a multi-page cover sheet.  You are
-.if \\n(K1>0 .tm rebuked in the name of the Committee on Technical Memoranda.
-.if \\n(IT>0 .nr T. 1
-.if \\n(IT>0 .if \\n(FC=0  .T# 1
-.if \\n(IT>0 .br
-.nr FC +1
-.if \\n(NX<2 .nr WF 0
-.nr dn 0
-.if \\n(FC<=1 .if \\n(XX .XF
-.rn FZ FO
-.nr MF 0
-.if \\n(dn  .nr MF 1
-.if !\\n(WF .nr YY 0-\\n(FMu
-.if !\\n(WF .ch FO \\n(YYu
-.if !\\n(dn .nr WF 0
-.if \\n(FC<=1 .if \\n(XX=0  .if \\n(NX>1 .RC
-.nr x 7176u-\\n(.d
-.if \nL=1 .if \\n(FC<=1 .if \\n(XX=0  .if \\n(NX<1 'tm Chap=\\na  page=\\n%   short=\\nx    
-.if \\n(FC<=1 .if \\n(XX=0  .if \\n(NX<1 'bp
-.nr FC -1
-.if \\n(ML>0 .ne \\n(MLu
-..
-.	\"2C - begin double column
-.de 2C
-.MC \" default MC is double column
-..
-.de MC \" multiple columns- arg is line length
-.nr L1 \\n(LL*7/15
-.if \\n(.$>0 .nr L1 \\$1n
-.nr GW 0-1
-.if \\n(.$>1 .nr GW \\$1n
-.nr NQ \\n(LL/\\n(L1
-.if \\n(NQ<1 .nr NQ 1
-.if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
-.if \\n(1T=0 \{\
-.	BG
-.	if n .sp 4
-.	if t .sp 2\}
-.if \\n(NX=0 .nr NX 1
-.if !\\n(NX=\\n(NQ \{\
-.	RT
-.	if \\n(NX>1 .bp
-.	mk
-.	nr NC 1
-.	po \\n(POu\}
-.if \\n(NQ>1 .hy 14
-.nr NX \\n(NQ
-.nr CW \\n(L1
-.ll \\n(CWu
-.nr FL \\n(CWu*11u/12u
-.if \\n(NX>1 .nr GW (\\n(LL-(\\n(NX*\\n(CW))/(\\n(NX-1)
-.nr RO \\n(CW+\\n(GW
-.ns
-..
-.de RC
-.ie \\n(NC>=\\n(NX .C2
-.el .C1
-..
-.de C1
-.rt
-.po +\\n(ROu
-.nr NC +1
-.if \\n(NC>\\n(NX .nr NC 1
-.nr XX 0 1
-.if \\n(MF .FV
-.ch FX \\n(.pu-\\n(FMu
-.ev 1
-.if \\n(TB .XK
-.nr TC 0
-.ev
-.nr TQ \\n(.i
-.if \\n(IT>0 .in 0
-.if \\n(IT>0 .TT
-.if \\n(IT>0 .in \\n(TQu
-.mk #T
-.ns
-..
-.de C2
-.po \\n(POu
-.nr NC +1
-.if \\n(NC>\\n(NX .nr NC 1
-'bp
-..
-.	\"1C - return to single column format
-.de 1C
-.MC \\n(LLu
-.hy 14
-..
-.	\".de R3
-.	\".pl 102
-.	\".nr LT \\n(.l
-.	\"..
-.de BT
-.nr PX \\n(.s
-.nr PF \\n(.f
-.ft 1
-.ps \\n(PS
-'lt \\n(LTu
-.po \\n(POu
-.if \\n%>0 .tl '\\*(LF'\\*(CF'\\*(RF'
-.ft \\n(PF
-.ps \\n(PX
-..
-.	\"PP - paragraph
-.de PP
-.RT
-.if \\n(1T .sp \\n(PDu
-.ti +\\n(PIu
-..
-.	\"SH - (unnumbered) section heading
-.de SH
-.ti \\n(.iu
-.RT
-.if \\n(1T .sp 1
-.if !\\n(1T .BG
-.RT
-.ne 4
-.ft 3
-..
-.	\"NH - numbered heading
-.de NH
-.RT
-.if \\n(1T .sp 1
-.if !\\n(1T .BG
-.RT
-.ne 4
-.ft 3
-.nr NS \\$1
-.if !\\n(.$ .nr NS 1
-.if !\\n(NS .nr NS 1
-.nr H\\n(NS +1
-.if !\\n(NS-4 .nr H5 0
-.if !\\n(NS-3 .nr H4 0
-.if !\\n(NS-2 .nr H3 0
-.if !\\n(NS-1 .nr H2 0
-.if !\\$1 .if \\n(.$ .nr H1 1
-.ds SN \\n(H1.
-.if \\na=0 .ds SN \\*(CN.
-.ti \\n(.iu
-.if \\n(NS-1 .as SN \\n(H2.
-.if \\n(NS-2 .as SN \\n(H3.
-.if \\n(NS-3 .as SN \\n(H4.
-.if \\n(NS-4 .as SN \\n(H5.
-\\*(SN
-..
-.	\"BG - begin, execute at first PP
-.de BG
-.br
-.ME
-.rm ME
-.di
-.ce 0
-.nr KI 0
-.hy 14
-.nr 1T 1
-.S\\n(ST
-.rm S0
-.rm S1
-.rm S2
-.rm S3
-.rm OD
-.rm OK
-.rm TX
-.rm AX
-.rm WT
-.rm CS
-.rm TM
-.rm IM
-.rm MF
-.rm MR
-.rm RP
-.rm I1
-.rm I2
-.rm I3
-.rm I4
-.rm I5
-.rm CB
-.rm E1
-.rm E2
-.de TL
-.ft 3
-.sp
-.if n .ul 100
-.ce 100
-.ps +2
-\\..
-.de AU
-.ft 2
-.if n .ul 0
-.ce 100
-.sp
-.NL
-\\..
-.de AI
-.ft 1
-.ce 100
-.if n .ul 0
-.if n .sp
-.if t .sp .5
-.NL
-\\..
-.RA
-.rm RA
-.rn FJ FS
-.rn FK FE
-.nf
-.ev 1
-.ps \\n(PS-2
-.vs \\n(.s+2p
-.ev
-.if \\n(KG=0 .nr FP 0 
-.if \\n(GA>1 .if \\n(KG=0 .nr GA 0 \" next UNIX must be flagged.
-.nr KG 0 
-.if \\n(FP>0 .FS
-.if \\n(FP>0 .FG
-.if \\n(FP>0 .FE
-.br
-.if \\n(TV>0 .if n .sp 2
-.if \\n(TV>0 .if t .sp 1
-.fi
-.ll \\n(LLu
-..
-.de RA \"redefine abstract macros
-.de AB
-.br
-.if !\\n(1T .BG
-.ce 1
-.sp 1
-.if \\n(.$=0 ABSTRACT
-.if \\n(.$>0 .if !"\\$1"-" .if !"\\$1"no"  \\$1
-.if \\n(.$=0 .sp
-.if \\n(.$>0 .if !"\\$1"-" .if !"\\$1"no" .sp
-.sp 1
-.nr AJ 1
-.in +\\n(.lu/12u
-.ll -\\n(.lu/12u
-.RT
-\\..
-.de AE
-.nr AJ 0
-.br
-.in 0
-.ll \\n(LLu
-.if \\n(VS>=41 .vs \\n(VSu
-.if \\n(VS<=40 .vs \\n(VSp
-\\..
-..
-.	\"IP - indented paragraph
-.de IP
-.RT
-.if !\\n(IP .nr IP +1
-.sp \\n(PDu
-.if \\n(.$-1 .nr I\\n(IR \\$2n
-.in +\\n(I\\n(IRu
-.nr TY \\n(TZ-\\n(.i
-.ta \\n(I\\n(IRu \\n(TYuR
-.if \\n(.$>0 \{\
-.ti -\\n(I\\n(IRu
-\&\\$1\t\c\}
-..
-.	\"LP - left aligned (block) paragraph
-.de LP
-.ti \\n(.iu
-.RT
-.if \\n(1T .sp \\n(PDu
-..
-.de QP
-.ti \\n(.iu
-.RT
-.if \\n(1T .sp \\n(PDu
-.ne 1.1
-.nr QP 1
-.in +\\n(QIu
-.ll -\\n(QIu
-.ti \\n(.iu
-..
-.	\"IE - synonym for .LP
-.de IE
-.LP
-..
-.	\"LB - label paragraph
-.de LB
-.in +\\n(I\\n(IRu
-.ta \\n(I\\n(IRu
-.if \\n(.$ .ti -\\n(I\\n(IRu
-.if \\n(.$ \&\\$1\t\c
-..
-.de XP
-.RT
-.if !\\n(IP .nr IP +1
-.sp \\n(PDu
-.ne 3
-.if \\n(.$=3 .nr I\\n(IR \\$3n
-.if \\n(.$=4 .nr I\\n(IR \\$4n
-.nr J\\n(IR \\n(IRu/2u
-.if \\n(.$=4 .nr J\\n(IR \\$3n
-.in +\\n(I\\n(IRu
-.ta \\n(J\\n(IRu \\n(I\\n(IRu
-.ti -\\n(I\\n(IRu
-\0\\$1\t\\$2\t\c
-..
-.	\"RS - prepare for double indenting
-.de RS
-.nr IS \\n(IP
-.RT
-.nr IP \\n(IS
-.if \\n(IP>0 .in +\\n(I\\n(IRu
-.nr IR +1
-.nr I\\n(IR \\n(PIu
-.in +\\n(I\\n(IRu
-.nr TY \\n(TZ-\\n(.i
-.ta \\n(TYuR
-..
-.	\"RE - retreat to the left
-.de RE
-.nr IS \\n(IP
-.RT
-.nr IP \\n(IS
-.if \\n(IR>0 .nr IR -1
-.if \\n(IP<=0 .in -\\n(I\\n(IRu
-..
-.de TC
-.nr TZ \\n(.lu
-.if \\n(.$ .nr TZ \\$1n
-.ta \\n(TZuR
-..
-.de TD
-.LP
-.nr TZ 0
-..
-.	\"CM - cut mark
-.de CM
-.po 0
-.lt 7.6i
-.ft 1
-.ps 10
-.vs 4p
-.po
-.vs
-.lt
-.ps
-.ft
-..
-.	\"B - bold font
-.de B
-.nr PQ \\n(.f
-.if t .ft 3
-.if "\\$1"" .if n .ul 1000
-.if !"\\$1"" .if n .ul 1
-.if t .if !"\\$1"" \&\\$1\\f\\n(PQ\\$2
-.if n .if \\n(.$=1 \&\\$1
-.if n .if \\n(.$>1 \&\\$1\\c
-.if n .if \\n(.$>1 \\&\\$2
-..
-.	\"R - Roman font
-.de R
-.if n .ul 0
-.ft 1
-..
-.	\"I - italic font
-.de I
-.nr PQ \\n(.f
-.if t .ft 2
-.if "\\$1"" .if n .ul 1000
-.if !"\\$1"" .if n .ul 1
-.if t .if !"\\$1"" \&\\$1\\f\\n(PQ\\$2
-.if n .if \\n(.$=1 \&\\$1
-.if n .if \\n(.$>1 \&\\$1\\c
-.if n .if \\n(.$>1 \\&\\$2
-..
-.	\"TA - tabs set in ens or chars
-.de TA
-.ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n
-..
-.	\"SM - make smaller size
-.de SM
-.if \\n(.$>0 \&\\$3\s-2\\$1\s0\\$2
-.if \\n(.$=0 .ps -2
-..
-.	\"LG - make larger size
-.de LG
-.ps +2
-..
-.	\"NL - return to normal size
-.de NL
-.ps \\n(PS
-..
-.	\"DA - force date; ND - no date or new date.
-.de DA
-.if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
-.ds CF \\*(DY
-..
-.de ND
-.ME
-.rm ME
-.ds DY \\$1 \\$2 \\$3 \\$4
-.rm CF
-..
-.de FN
-.FS
-..
-.	\"FS - begin footnote
-.de FJ
-'ce 0
-.di
-.ev1
-.ll \\n(FLu
-.da FF
-.br
-.if \\n(IF>0 .tm Footnote within footnote-illegal.
-.nr IF 1
-.if !\\n+(XX-1 .FA
-..
-.	\"FE - footnote end
-.de FK
-.br
-.in 0
-.nr IF 0
-.di
-.ev
-.if !\\n(XX-1 .nr dn +\\n(.v
-.nr YY -\\n(dn
-.if \\n(NX=0 .nr WF 1
-.if \\n(dl>\\n(CW .nr WF 1
-.if (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
-.if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) .if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
-.if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) .if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
-.if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) .if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)
-..
-.\"	First page footer.
-.de FS
-.ev1
-.br
-.ll \\n(FLu
-.da FG
-..
-.de FE
-.br
-.di
-.nr FP \\n(dn
-.if \\n(1T=0 .nr KG 1 \"not in abstract repeat next page.
-.if "\\n(.z"OD" .nr KG 0 \" if in OK, don't repeat.
-.ev
-..
-.de FA
-.if n __________________________
-.if t \l'1i'
-.br
-..
-.de FV
-.FS
-.nf
-.ls 1
-.FY
-.ls
-.fi
-.FE
-..
-.de FX
-.if \\n(XX>0 .di FY
-.if \\n(XX>0 .ns
-..
-.de XF
-.if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
-.ev1
-.nf
-.ls 1
-.FF
-.rm FF
-.nr XX 0 1
-.br
-.ls
-.di
-.fi
-.ev
-..
-.de FL
-.ev1
-.nr FL \\$1n
-.ll \\$1
-.ev
-..
-.de UL \" underline argument, don't italicize
-.if t \\$1\l'|0\(ul'\\$2
-.if n .I \\$1 \\$2
-..
-.de UX
-UNIX
-..
-.de US
-the
-.UX
-operating system
-..
-.de QS
-.br
-.LP
-.in +\\n(QIu
-.ll -\\n(QIu
-..
-.de QE
-.br
-.ll +\\n(QIu
-.in -\\n(QIu
-.LP
-..
-.de B1 \" begin boxed stuff
-.br
-.di BB
-.nr BC 0
-.if "\\$1"C" .nr BC 1
-.nr BE 1
-..
-.de B2 \" end boxed stuff
-.br
-.nr BI 1n
-.if \\n(.$>0 .nr BI \\$1n
-.di
-.nr BE 0
-.nr BW \\n(dl
-.nr BH \\n(dn
-.ne \\n(BHu+\\n(.Vu
-.nr BQ \\n(.j
-.nf
-.ti 0
-.if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u
-.in +\\n(BIu
-.BB
-.in -\\n(BIu
-.nr BW +2*\\n(BI
-.sp -1
-\l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu'
-.if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u
-.if \\n(BQ .fi
-.br
-..
-.de AT
-.nf
-.sp
-.ne 2
-Attached:
-..
-.de CT
-.nf
-.sp
-.ne 2
-.ie \\n(.$ Copy to \\$1:
-.el Copy to:
-..
-.de BX
-.if t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
-.if n \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
-..
-.IZ
-.rm IZ
-.\" ------------------- VARIABLES ------------------------------
-.\" \na - Current chapter
-.\" \nb - Current section
-.\" \nc - Current subsection 
-.\" \nd - Set to 0 initially, 1 by PT,  2 by .PB  Used to control running head
-.\" \ne - Current equation number
-.\" \ng - Used to count items in numbered lists
-.\" \nh - Counts number of times CP has been invoked
-.\" \nj - Set to 1 iff footer page number needed
-.\" \nk - Last figure number used
-.\" \nL - 1 if depth printed for each page
-.\" \nl - 1 old Agfa length to be used
-.\" \np - Numbers end-of-chapter problems
-.\" \nq - 1 for double spaced text, smaller vert. margins
-.\" \ns - initial page number
-.\" \nt - Variable part of spacing inside .BI macro
-.\" \nv - Scratch register in lower case roman numerals
-.\" \nx - Scratch register
-.\" ------------------- GENERAL PARAMETERS ---------------------
-.nr BO 43		\" number of lines of text per page
-.nr PO 1.3i
-.po \n(PO
-.if \nq=1 .ls 2		\" -rq1 invokes double spacing
-.nr LL 5.67i
-.if t \{
-.nr PL 29.73c
-.nr PI 0.25i\}
-.if n \{
-.nr LL 80m
-.nr PL 11.0i
-.nr PI 3m\}
-.pl \n(PLu
-.nr HM (\n(PLu-(\n(BOu*\n(VSu))/2u
-.nr FM \n(PLu-(\n(HMu+((\n(BOu-1u)*\n(VSu)+1u)
-.nr xx \n(HMu%\n(VZu
-.nr HM \n(HMu-\n(xxu
-.nr FM \n(FMu+\n(xxu
-.nr t 0 0
-.\" ------------------- INITIALIZATION -------------------------
-.nr d 0 0
-.nr e 0 1
-.nr h 0 1
-.nr j 1 0
-.nr t 0 0
-.tr ~
-.ds CT "~	\"initially empty
-.ND		\"suppress date on bottom of page
-.af v i		\"register v is in lower case roman
-.ch FO -\n(FMu
-.ch BT -\n(FMu+0.5P
-.\" ------------------- ALIGN TEXT TO A WHOLE NUMBER OF PICAS ----
-.de AL
-'nr xx \\n(.du%\\n(VZu
-'nr xy \\n(VZu-\\n(xx
-'if \\n(xy=\\n(VZu .nr xy 0
-'sp \\n(xyu
-..
-.\" ------------------- DIVISION OF TEXT INTO LOGICAL UNITS ----
-.\"	Define chapter number
-.de CP
-.ds CN \\$1
-.ds CX CHAP.
-.if '\\$1'A' .ds CX APPENDIX
-.if '\\$1'B' .ds CX APPENDIX
-.if '\\$1'C' .ds CX APPENDIX
-.if '\\$1'D' .ds CX APPENDIX
-.if '\\$1'E' .ds CX APPENDIX
-.if '\\$1'F' .ds CX APPENDIX
-.if '\\$1'A' .nr a 0 0
-.if '\\$1'B' .nr a 0 0
-.if '\\$1'C' .nr a 0 0
-.if '\\$1'D' .nr a 0 0
-.if '\\$1'E' .nr a 0 0
-.if '\\$1'F' .nr a 0 0
-.nr H1 \\$1 0
-.nr H2 0 1
-.nr a \\$1 0
-.nr b 0 1
-.nr c 0 1
-.nr d 1 1
-.nr e 0 1
-.nr k 0 1
-.nr s \\n%
-.if \\nq=1 .PH 6
-.ll \\n(LLu
-.nr LT \\n(LLu
-.lt \\n(LLu
-.ll \\n(LLu
-.pl \n(PLu
-.po \n(POu
-.in 0
-.nr PS \\n(PZ
-.nr VS \\n(VZu
-.nr PD 0i
-.ds ST
-.ds CT \\$2
-.if !'\\$3'' .as CT " \\$3
-.if \\nh .bp
-.rs
-.sp 16P
-.B
-.ps 30
-.vs 32
-.ce 1
-\\$1
-.sp 4P
-.ps 18
-.vs 20
-.ce 1
-\\$2
-.sp 0.25i
-.if !'\\$3'' .ce 1
-.if !'\\$3'' \\$3
-.ps 10
-.vs 12
-.R
-.nr x \\n(.pu/2u
-.sp |\\nxu
-.nr h +1 1
-.tr _\\(ru
-.AL
-..
-.de SP
-.sp \\$1	\"used for temporary (page balancing ) fill
-..
-.de HS
-.sp 0.5
-..
-.\"	Major section (numbered)
-.de SE
-.nr b +1 1
-.nr c 0 1
-.ds ST \\$1
-.sp 1
-.NH 2
-\\$1
-.sp 1
-..
-.\"	Subsection (numbered)
-.de SS
-.nr c +1 1
-.NH 3
-\\$1
-.sp 1
-..
-.de UU
-.SH
-\\$1
-.sp 1
-..
-.\"-------------------- PAGE TRANSITION MACROS USED BY -MS ------
-.de PH	\"select special running heads
-.nr d \\$1
-.if \\$1=4 .nr j 1
-.ds CT \\$2
-..
-.de PT
-.AL
-.pc %
-.PN \\n%
-'sp |\\n(HMu-0.35i
-.ps 10
-.\"
-.\" nd = 0 means no running head this time, normal next time
-.if \\nd=0 \{\
-.tl ''''	\" no running head on initial page transition
-.nr j 1 0\}
-.\"
-.\" nd = 1 is normal case: chapter heading even (left) and section odd(right)
-.if \\nd=1\{\
-.if e .tl '\fB\s+2%\s-2\fR'\\*(CT'\\*(CX~ \\*(CN' \"normal case even page
-.if o .if \\nb>0 .tl 'SEC.~ \\*(CN.\\nb'\\*(ST'\fB\s+2%\s-2\fR'
-.if o .if \\nb=0 .tl '''\fB\s+2%\s-2\fR'\}
-.if o .if \\nb=-999 .tl '\\*(CX~ \\*(CN'\\*(CT'\fB\s+2%\s-2\fR'\}
-.\"
-.\" nd = 2 is for PROBLEMS; even normal, odd  CHAP. ... PROBLEMS %
-.if \\nd=2\{\
-.if e .tl '\fB\s+2%\s-2\fR'\\*(CT'\\*(CX~ \\*(CN' \"even page PROBLEMS
-.if o .if \\nd=2 .tl '\\*(CX~ \\*(CN'PROBLEMS'\fB\s+2%\s-2\fR' \}
-.\"
-.\" nd = 3 is for index, problem solutions & other cases with same odd even hd
-.if \\nd=3\{\
-.if e .tl '\fB\s+2%\s-2\fR'\\*(CT''
-.if o .tl ''\\*(CT'\fB\s+2%\s-2\fR'\}
-.\"
-.\" nd = 4 is like nd = 3, except page numbers are lower case roman
-.if \\nd=4\{\
-.nr v \\n%
-.if e .tl '\fB\s+2\\nv\s-2\fR'\\*(CT''
-.if o .tl ''\\*(CT'\fB\s+2\\nv\s-2\fR'\}
-.\"
-.\" nd = 5 suppresses running heads like nd=0, only it keeps them suppressed
-.if \\nd=5 .tl ''''
-.\" nd = 6 gives page number in right-hand corner only
-.if \\nd=6 .tl '''%'
-.if \\nd=0 .nr d 1 0	\" henceforth normal running heads
-..
-.de BT
-.if \\n%=\\ns\{\
-.nr x \\n(HMu+(\\n(BO*\\n(VSu)+2P
-'sp |\\nxu
-.nr v \\n%
-.ie \\nd=4 .tl ''\fB\s-1\\nv\s0\fP''
-.el .tl ''\fB\s-1\\n%\s0\fP''\}
-.nr j 0 0
-.if \\nd=0 .nr d 1 0
-..
-.\"--------------- CHECK FOR INITIAL PAGE NUMBER ---------------
-.de PC
-.if \n%<\\$1\{
-.tm You forgot to set the page number.  Run aborted. Use troff -n
-.ex\}
-.if \n%>\\$2\{
-.tm You forgot to set the page number.  Run aborted. Use troff -n
-.ex\}
-..
-.\"-------------------- LISTS OF THINGS ------------------------
-.\"	Start list
-.de LI
-.nr g 0 1
-.in +0.25i
-.nr LL -0.25i
-.ll -0.25i
-.ne 3v
-.HS
-..
-.\"	End list
-.de LX
-.sp 1
-.in -0.25i
-.nr LL +0.25i
-.ll +0.25i
-.LP
-..
-.\"	List item
-.de IT
-.HS
-.nr g \\ng+1 1
-.ie \\ng<10 .IP \0\\ng. 4
-.el .IP \\ng. 4
-..
-.\"Short unnumbered lines
-.de UN
-.HS
-..
-.\"-------------------- END OF CHAPTER EXERCISES ---------------
-.de PB
-.nr d 2 0
-.if \\nq=1 .PH 6
-.ne 1.5i
-.sp 0.5i
-.ce 1
-.B PROBLEMS
-.sp 1
-.nr p 0 1
-..
-.de PR
-.ps 11
-.vs 13
-.nr PS 11
-.nr VS 13.01p
-.HS
-.nr p +1 1
-.in \w'00.  'u
-.ti -\w'00.  'u
-.if \\np>9 \fB\\np.\fR~~\c
-.if \\np<10 \fB\0\\np.\fR~~\c
-..
-.de AA
-.sp 3
-.if n .nr LL 84m
-.nr PS \\n(PZ
-.nr VS \\n(VZu
-.nr a \\$1 1
-.nr b 0 0
-.nr p 0 1
-.ce 1
-.nr x 1
-.if '\\$1'A' .nr x 0
-.if '\\$1'B' .nr x 0
-.if '\\$1'C' .nr x 0
-.if \\nq=1 .PH 6
-.if \\nx\fBSOLUTIONS TO CHAPTER \\$1 PROBLEMS\fR
-.if !\\nx\fBSOLUTIONS TO APPENDIX \\$1 PROBLEMS\fR
-.sp 1v
-..
-.de AN
-.HS
-.ps \\n(PZ
-.vs \\n(VSu
-.nr PS \\n(PZ
-.nr VS \\n(VZu
-.nr p +1 1
-.in \w'00.  'u
-.ti -\w'00.  'u
-.if \\np>9 \fB\\np.\fR~~\c
-.if \\np<10 \fB\0\\np.\fR~~\c
-..
-.\"-------------------- BIBLIOGRAPHY ---------------------------
-.de BB
-.sp 2
-.in 0.25i
-..
-.de BI
-.ps 10
-.vs 12
-.sp \\ntu
-.HS
-.if n .HS
-.ti -0.30i
-.R
-..
-.\"-------------------- QUOTES ---------------------------------
-.ds OQ `\h'-1p'`
-.ds CQ '\h'-1p''
-.\"-------------------- FIGS.-----------------------------------
-.de FC 
-'sp 1v
-.ps 10
-.vs 12
-.in +0.5i
-.ll -0.5i
-.B
-.if '\\$1'C' .ce 1
-Fig.\|\|\|\\*(CN-\\n+k.~\c
-.R
-..
-.de BF
-.KF
-'sp 1v
-.nr TP \\n(.s
-.nr TV \\n(.v
-.nr TF \\n(.f
-.nr r 0 0
-.if \\nq=0 .if  "\\$1"PAGE" .KP
-.if \\nq=0 .if  "\\$1"PAGE" .nr r 1 0
-.if \\nq=0 .if !"\\$1"PAGE" .sp \\$1
-.if \\nq=1 .sp 0.5i
-.FC \\$2
-..
-.de EF
-.in -0.5i
-.ll +0.5i
-.ps \\n(TP
-.vs \\n(TV
-.ft \\n(TF
-'if \\nr==0 'sp 30u
-'AL
-.KE
-..
-.de NF
-.nr x \\nk+1
-.ie !'\\$1'X' Fig.~\\*(CN-\\nx\\$1
-.el Figure \\*(CN-\\nx\\$2
-..
-.de PF
-.ie !'\\$1'X' Fig.~\\*(CN-\\nk\\$1
-.el Figure \\*(CN-\\nk\\$2
-..
-.\"-------------------- MULTIPLE BLANK PAGES -------------------
-.de MP
-.if \\$1 \{\
-.KF
-.KP
-.KE
-.MP \\$1-1
-.if \\$1<2 .nr k +1 1
-\}
-..
-.\"-------------------- TABLE OF CONTENTS ----------------------
-.de XT
-.if t .ta 0.4i 0.8i 0.9i \\n(LLuR
-.if n .ta 0.3i 1.0i 1.1i 5.0iR
-.ps 11
-.vs 13
-.nr a \\$1 0
-.nr b 0 1
-.nr c 0 1
-.sp 0.40i
-.ne 0.3i
-.B
-\\s18\\$1\\s12	\\$2	\\$3\\fR\\s11
-.br
-.if !'\\$4''	\\fB\\$4\\fR
-.R
-.sp 0.5v
-..
-.de XE
-.nr b +1 1
-.nr c 0 1
-.HS
-	\\na.\\nb	\\$1   \\$2
-..
-.de XS
-.nr c +1 1
-		\\na.\\nb.\\nc   \\$1   \\$2
-..
-.\"------------------- INDEX -----------------------------------
-.de IL
-.nr PS \\n(PZ-2
-.nr VS 12.01p
-.LP
-.nf
-.na
-.sp 2v
-.ne 2
-\fB\s+4\\$1\\s0\fR
-.sp 1v
-..
-.\"------------------- NEW .B MACRO ----------------------------
-.rm B
-.de B
-.nr PQ \\n(.f
-.ft 3
-.if !"\\$1"" \&\\$1\\f\\n(PQ\\$2
-..
-.\"--------------------- FIXES NEEDED TO -MS -------------------
-.\" Remove .if n .ul 1000 from .NH
-.\" Remove .if n .ul 1000 from .SH
-.\" Fix to allow letters as chapter "numbers"
-.\"
-.\" Here is the b3mac file
-.nr Cs 10
-.fp 5 H
-.ds fm \(fm
-.ds em \(em
-.de F
-\\fI\\$1\\fR\\$2
-..
-.de CC
-.HS
-~~~~~\\s\\n(Cs\\f5\\$1\\fP\\s0
-.HS
-.LP
-..
-.de Cx
-~~~~~\\s\\n(Cs\\f5\\$1\\fP\\s0\\$2
-..
-.de Cb
-.in +0.25i
-\\s\\n(Cs
-.HS
-\\f5
-..
-.de Ce
-.HS
-\\fR
-.nr PS \\n(PZ
-.nr VS \\n(VZ
-.LP
-.in -0.25i
-..
-.de SY
-\\$3\s-2\\$1\s+2\\$2
-..
-.de SM
-\\$3\s-1\\$1\s+1\\$2
-..
-.de FN
-\&\\fI\\$1\\fR\\$2
-..
-.de DI
-\&\\fI\\$1\\fR\\$2
-..
-.de FI
-\&\\fI\\$1\\fR\\$2
-..
-.de LN
-.nr x \\$1+\\$2
-\\$4line
-.L4 \\nx \\$3
-..
-.de LS
-.nr x \\$1+\\$2
-.nr y \\$1+\\$3
-.nr z \\nx+1
-\\$5lines
-.L4 \\nx
-.ie \\ny=\\nz and
-.el to
-.L4 \\ny \\$4
-..
-.ds SQ \(fm\h'-0.05c'\(fm
-.de L4
-.ie \\$1<10 000\\$1\\$2
-.el .ie \\$1<100 00\\$1\\$2
-.el .ie \\$1<1000 0\\$1\\$2
-.el \\$1\\$2
-..
-.de KW
-\f5\\$1\\$2\fR
-..
-.ds M0 MINIX
-.ds M1 \\s-1MINIX\\s+1
-.ds M2 \\s-2MINIX\\s+2
-.ds M9 \\s-1MINIX\\s+1
-.ds m0 minix
-.de MX
-\s-1MINIX 3\s-1\\$1
-..
-.de Ux
-\s-2UNIX\s+2\\$1
-..
-.tr _\(ru
-.de UX
-\s-2UNIX\s+2\\$1
-..
-.ds Mx \\s-1MINIX\\s0
-.ds Mp \\s-1MINIX-PC\\s0
-.ds Ms \\s-1MINIX-ST\\s0
-.de CW
-\f5
-..
-.de Bu
-.HS
-.IP "\0\(bu" 4
-..
-.de CD
-.ne 2
-.if t .ta 0.9i 1.15i 2.75i 3.25i 3.75i
-.if n .ta 11m 15m 40m
-.nr x 0 0
-.nr y 0 0
-.nr z 0 0
-.if n #\\$1
-.if n .br
-\\fBCommand:\&	\\$1\\fR
-.br
-..
-.de SX
-.if \\nx<=0 \\fBSyntax:\&	\\$1
-.if \\nx>0 \&	\\fB\\$1
-.nr x 1 1
-.br
-..
-.de FL
-.if \\ny<=0 \\fBFlags:\&	\\fB\\$1	\\fR\\$2
-.if \\ny>0 \& 	\\fB\\$1	\\fR\\$2
-.nr y 1 1
-.br
-..
-.de EX
-.br
-.nf
-.if \\nz<=0 \\fB\&Examples:	\\fR\\$1	\\fR# \\$2
-.if \\nz>0 \&	\\fR\\$1	\\fR# \\$2
-.nr z 1 1
-.br
-..
-.de EY
-.br
-.nf
-.if \\nz<=0 \\fB\&Example:	\\fR\\$1	\\fR# \\$2
-.if \\nz>0 \&	\\fR\\$1	\\fR# \\$2
-.nr z 1 1
-.br
-..
Index: trunk/minix/man/man9/mined.9
===================================================================
--- trunk/minix/man/man9/mined.9	(revision 9)
+++ 	(revision )
@@ -1,200 +1,0 @@
-.so mnx.mac
-.TH MINED 9
-.CD "mined \(en \*(M2 editor"
-.SX "mined\fR [\fIfile\fR]
-.FL "\fR(none)"
-.EX "mined /user/ast/book.3" "Edit an existing file"
-.EX "mined" "Call editor to create a new file"
-.EX "ls \(enl | mined" "Use \fImined\fR as a pager to inspect listing"
-.PP
-\fIMined\fR is a simple screen editor.
-At any instant, a window of 24 lines is visible on the screen.
-The current position in the file is shown by the cursor.
-Ordinary characters typed in are inserted at the cursor.
-Control characters and keys on the numeric keypad (at the right-hand side
-of the keyboard) are used to move the cursor and perform other functions.
-.PP
-Commands exist to move forward and backward a word, and delete words
-either in front of the cursor or behind it.
-A word in this context is a sequence of characters delimited on both ends by
-white space (space, tab, line feed, start of file, or end of file).
-The commands for deleting characters and words also work on line feeds, making
-it possible to join two consecutive lines by deleting the line feed between them.
-.PP
-The editor maintains one save buffer (not displayed).
-Commands are present to move text from the file to the buffer, from the buffer
-to the file, and to write the buffer onto a new file.
-If the edited text cannot be written out due to a full disk, it may still
-be possible to copy the whole text to the save buffer and then write it to a
-different file on a different disk with CTRL-Q.
-It may also be possible to escape from the editor with CTRL-S and remove
-some files.
-.PP
-Some of the commands prompt for arguments (file names, search patterns, etc.).
-All commands that might result in loss of the file being edited prompt to ask
-for confirmation.
-.PP
-A key (command or ordinary character) can be repeated
-.I n
-times by typing
-.I "ESC n key"
-where 
-.I ESC
-is the \*(OQescape\*(CQ key.
-.PP
-Forward and backward searching requires a regular expression as the search
-pattern.
-Regular expressions follow the same rules as in the 
-.Ux
-editor,
-.I ed .
-These rules can be stated as:
-.LI
-.IT
-Any displayable character matches itself.
-.IT
-\&. (period) matches any character except line feed.
-.IT
-\&^ (circumflex) matches the start of the line.
-.IT
-\&$ (dollar sign) matches the end of the line.
-.IT
-\&\\c matches the character \fIc\fR (including period, circumflex, etc).
-.IT
-[\fIstring\fR] matches any of the characters in the string.
-.IT
-[^string] matches any of the characters except those in the string.
-.IT
-[\fIx\(eny\fR] matches any characters between \fIx\fR and \fIy\fR (e.g., [\fIa\(enz\fR]).
-.IT
-Pattern\(** matches any number of occurrences of \fIpattern\fR.
-.LX
-Some examples of regular expressions are:
-.HS
-.in +1.25i
-.ta +1.0i
-.ti -1.0i
-The boy	matches the string \*(OQThe boy\*(CQ
-.ti -1.0i
-^$	matches any empty line.
-.ti -1.0i
-^.$	matches any line containing exactly 1 character
-.ti -1.0i
-^A.*\\.$	matches any line starting with an \fIA\fR, ending with a period.
-.ti -1.0i
-^[A\(enZ]*$	matches any line containing only capital letters (or empty).
-.ti -1.0i
-[A\(enZ0\(en9]	matches any line containing either a capital letter or a digit.
-.ti -1.0i
-\&.*X$	matches any line ending in \*(OQX\*(CQ
-.ti -1.0i
-A.*B	matches any line containing an \*(OQA\*(CQ and then a \*(OQB\*(CQ
-.in -1.25i
-.sp
-.PP
-Control characters cannot be entered into a file simply by typing them because
-all of them are editor commands.
-To enter a control character, depress the ALT key, and then while holding it
-down, hit the ESC key.
-Release both ALT and ESC and type the control character.
-Control characters are displayed in reverse video.
-.PP
-The 
-.I mined
-commands are as follows.
-.sp
-.in +1.25i
-.ta +1.0i
-.ti -1.25i
-\fBCURSOR MOTION\fR
-.ti -1.0i
-\fBarrows\fR	Move the cursor in the indicated direction
-.ti -1.0i
-\fBCTRL-A\fR	Move cursor to start of current line
-.ti -1.0i
-\fBCTRL-Z\fR	Move cursor to end of current line
-.ti -1.0i
-\fBCTRL-^\fR	Move cursor to top of screen
-.ti -1.0i
-\fBCTRL-_\fR	Move cursor to end of screen
-.ti -1.0i
-\fBCTRL-F\fR	Move cursor forward to start of next word 
-.ti -1.0i
-\fBCTRL-B\fR	Move cursor backward to start of previous word 
-
-.ti -1.25i
-\fBSCREEN MOTION\fR
-.ti -1.0i
-\fBHome key\fR	Move to first character of the file
-.ti -1.0i
-\fBEnd key\fR	Move to last character of the file
-.ti -1.0i
-\fBPgUp key\fR	Scroll window up 23 lines (closer to start of the file)
-.ti -1.0i
-\fBPgDn key\fR	Scroll window down 23 lines (closer to end of the file)
-.ti -1.0i
-\fBCTRL-U\fR	Scroll window up 1 line
-.ti -1.0i
-\fBCTRL-D\fR	Scroll window down 1 line
-
-.ti -1.25i
-\fBMODIFYING TEXT\fR
-.ti -1.0i
-\fBDel key\fR	Delete the character under the cursor
-.ti -1.0i
-\fBBackspace\fR	Delete the character to left of the cursor
-.ti -1.0i
-\fBCTRL-N\fR	Delete the next word
-.ti -1.0i
-\fBCTRL-P\fR	Delete the previous word
-.ti -1.0i
-\fBCTRL-T\fR	Delete tail of line (all characters from cursor to end of line)
-.ti -1.0i
-\fBCTRL-O\fR	Open up the line (insert line feed and back up)
-.ti -1.0i
-\fBCTRL-G\fR	Get and insert a file at the cursor position
-
-.ti -1.25i
-\fBBUFFER OPERATIONS\fR
-.ti -1.0i
-\fBCTRL-@\fR	Set mark at current position for use with CTRL-C and CTRL-K
-.ti -1.0i
-\fBCTRL-C\fR	Copy the text between the mark and the cursor into the buffer
-.ti -1.0i
-\fBCTRL-K\fR	Delete text between mark and cursor; also copy it to the buffer
-.ti -1.0i
-\fBCTRL-Y\fR	Yank contents of the buffer out and insert it at the cursor
-.ti -1.0i
-\fBCTRL-Q\fR	Write the contents of the buffer onto a file
-
-.ti -1.25i
-\fBMISCELLANEOUS\fR
-.ti -1.0i
-\fBnumeric +\fR	Search forward (prompts for regular expression)
-.ti -1.0i
-\fBnumeric \(mi\fR	Search backward (prompts for regular expression)
-.ti -1.0i
-\fBnumeric 5\fR	Display the file status
-.ti -1.0i
-\fBCTRL-]\fR	Go to specific line
-.ti -1.0i
-\fBCTRL-R\fR	Global replace \fIpattern\fR with \fIstring\fR (from cursor to end)
-.ti -1.0i
-\fBCTRL-L\fR	Line replace \fIpattern\fR with \fIstring\fR 
-.ti -1.0i
-\fBCTRL-W\fR	Write the edited file back to the disk
-.ti -1.0i
-\fBCTRL-X\fR	Exit the editor
-.ti -1.0i
-\fBCTRL-S\fR	Fork off a shell (use CTRL-D to get back to the editor)
-.ti -1.0i
-\fBCTRL-\\\fR	Abort whatever the editor was doing and wait for command
-.ti -1.0i
-\fBCTRL-E\fR	Erase screen and redraw it
-.ti -1.0i
-\fBCTRL-V\fR	Visit (edit) a new file
-.in -1.25i
-
-.SS "Author"
-.PP
-\fIMined\fR was designed by Andy Tanenbaum and written by Michiel Huisjes.
