summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>1996-11-03 22:33:35 +0100
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:33:35 +0200
commitc218c617b5be443b7968308506969ad2b726d73c (patch)
tree0051f396af56133d24fcf2ab757fabc78c1a09bf /man
parent0936b9aeab611665645a4e6bafaded7ca76dd189 (diff)
parent0d2fbe9b1bd284ce2cad55be17e8f2c896031a25 (diff)
downloaddev86-c218c617b5be443b7968308506969ad2b726d73c.tar.gz
Import Dev86src-0.0.8.tar.gzv0.0.8
Diffstat (limited to 'man')
-rw-r--r--man/Makefile16
-rw-r--r--man/as86.1354
-rw-r--r--man/bcc.1322
-rw-r--r--man/elks.11
-rw-r--r--man/elksemu.145
-rw-r--r--man/ld86.1107
6 files changed, 845 insertions, 0 deletions
diff --git a/man/Makefile b/man/Makefile
new file mode 100644
index 0000000..38faaaa
--- /dev/null
+++ b/man/Makefile
@@ -0,0 +1,16 @@
+ifneq ($(TOPDIR),)
+include $(TOPDIR)/Make.defs
+else
+MANDIR=/usr/man
+endif
+
+MAN1PG=as86.1 bcc.1 elks.1 elksemu.1 ld86.1
+MAN1DIR=$(MANDIR)/man1
+
+all:
+
+install:
+ install -m 755 -o man -g other -d $(MAN1DIR)
+ install -m 644 -o man -g other $(MAN1PG) $(MAN1DIR)
+
+clean:
diff --git a/man/as86.1 b/man/as86.1
new file mode 100644
index 0000000..420ac38
--- /dev/null
+++ b/man/as86.1
@@ -0,0 +1,354 @@
+.TH as86 1 "Oct, 1996"
+.BY Bruce Evans
+.nh
+.SH NAME
+as86 \- Assembler for 8086..80386 processors
+.SH SYNOPSIS
+.B as86
+.RB [ -03agjuw ]
+.RB [ -lm [ list ]]
+.RB [ -n\ name ]
+.RB [ -o\ obj ]
+.RB [ -b [ bin ]]
+.RB [ -s\ sym ]
+.B src
+
+.B as86_encap\ prog.s\ prog.v
+.RB [ prefix_ ]
+.RB [ as86\ options ]
+
+.SH DESCRIPTION
+.B as86
+is an assembler for the 8086..80386 processors, it's syntax is closer
+to the intel/microsoft form rather than the more normal generic form of
+the unix system assembler.
+
+The
+.B src
+file can be '-' to assemble the standard input.
+
+This assembler can be compiled to support the 6809 cpu and may even work.
+
+.B as86_encap
+is a shell script to call as86 and convert the created binary into a C file
+.B prog.v
+to be included in or linked with programs like boot block installers.
+The
+.B prefix_
+argument is a prefix to be added to all variables defined by the source,
+it defaults to the name of the source file. The variables defined include
+.B prefix_start
+.B prefix_size
+and
+.B prefix_data
+to define and contain the code, plus integers containing the values of all
+exported labels.
+Either or both the
+.B prog.s
+and
+.B prog.v
+arguments can be '-' for standard in/out.
+
+.\" The 'src' file can be '-' for stdin but ONLY on 'big' machines.
+
+.SH OPTIONS
+
+.\"defaults (off or none except for these; no output is produced without a flag):
+.\"-03 native
+.\"list stdout (beware of clobbering next arg)
+.\"name basename of the source name
+
+.TP
+.B -0
+start with 16-bit code segment
+.TP
+.B -3
+start with 32-bit code segment
+.TP
+.B -a
+enable partial compatibility with Minix asld
+.TP
+.B -g
+only put global symbols in object or symbol file
+.TP
+.B -j
+force all jumps to be long, don't use this with hand written assembler
+use the
+.B br\ bmi\ bcc
+style opcodes or the
+.B jmp\ near
+style. The former generates 8086 compatible sequences the latter is 386 only
+for the conditional jumps.
+.TP
+.B -l
+produce list file, filename may follow
+.TP
+.B -m
+print macro expansions in listing
+.TP
+.B -n
+name of module follows (goes in object instead of source name)
+.TP
+.B -o
+produce object file, filename follows
+.TP
+.B -b
+produce a raw binary file, filename may follow.
+This is a 'raw' binary file with no header, if there's no
+.B -s
+option the file starts at location 0.
+.TP
+.B -s
+produce an ASCII symbol file, filename follows.
+The format of this table is designed to be easy to parse for encapsulation
+and related activities in relation to binary files created with the
+.B -b
+option. If a binary file doesn't start at location zero the first two
+items in the table are the start and end addresses of the binary file.
+.TP
+.B -u
+take undefined symbols as imported-with-unspecified segment
+.TP
+.B -w
+don't print warnings
+.P
+.SH AS86 SOURCE
+Conditionals
+.TP
+.B IF, ELSE, ELSEIF, ENDIF
+Numeric condition
+.TP
+.B IFC, ELSEIFC
+String compare (str1,str2)
+.TP
+.B FAIL .FAIL
+Generate user error.
+.P
+Segment related
+.TP
+.B .TEXT .ROM .DATA .BSS
+Set current segment. These can be preceded by the keyword
+.B .SECT
+.TP
+.B LOC
+Set numeric segment 0=TEXT, 3=DATA,ROM,BSS, 15=MAX
+.P
+Label type definition
+.TP
+.B EXPORT PUBLIC .DEFINE
+Export label defined in this object
+.TP
+.B ENTRY
+Force linker to include label in a.out
+.TP
+.B .GLOBL .GLOBAL
+Define label as external and force import even if it isn't used.
+.TP
+.B EXTRN EXTERN IMPORT .EXTERN
+Import list of externally defined labels
+.br
+NB: It doesn't make sense to use imports for raw binary files.
+.TP
+.B .ENTER
+Mark entry for old binary file (obs)
+.P
+Data definition
+.TP
+.B DB .DATA1 .BYTE FCB
+List of 1 byte objects.
+.TP
+.B DW .DATA2 .SHORT FDB .WORD
+List of 2 byte objects.
+.TP
+.B DD .DATA4 .LONG
+List of 4 byte objects.
+.TP
+.B .ASCII FCC
+Ascii string copied to output.
+.TP
+.B .ASCIZ
+Ascii string copied to output with trailing
+.B nul
+byte.
+.P
+Space definition
+.TP
+.B .BLKB RMB .SPACE
+Space is counted in bytes.
+.TP
+.B .BLKW .ZEROW
+Space is counted in words. (2 bytes each)
+.TP
+.B COMM .COMM LCOMM .LCOMM
+Common area data definition
+.P
+Other useful pseudo operations.
+.TP
+.B .ALIGN .EVEN
+Alignment
+.TP
+.B EQU
+Define label
+.TP
+.B SET
+Define re-definable label
+.TP
+.B ORG .ORG
+Set assemble location
+.TP
+.B BLOCK
+Set assemble location and stack old one
+.TP
+.B ENDB
+Return to stacked assemble location
+.TP
+.B GET INCLUDE
+Insert new file (no quotes on name)
+.TP
+.B USE16
+Define default operand size as 16 bit
+.TP
+.B USE32
+Define default operand size as 32 bit
+.TP
+.B END
+End of compilation for this file.
+.TP
+.B .WARN
+Switch warnings
+.TP
+.B .LIST
+Listings on/off (1,-1)
+.TP
+.B .MACLIST
+Macro listings on/off (1,-1)
+.P
+Macros, now working, the general form is like this.
+
+ MACRO sax
+ mov ax,#?1
+ MEND
+ sax(1)
+
+.TP
+Unimplemented/unused.
+.TP
+IDENT
+Define object identity string.
+.TP
+SETDP
+Set DP value on 6809
+.TP
+MAP
+Set binary symbol table map number.
+.TP
+Registers
+.br
+BP BX DI SI
+.br
+EAX EBP EBX ECX EDI EDX ESI ESP
+.br
+AX CX DX SP
+.br
+AH AL BH BL CH CL DH DL
+.br
+CS DS ES FS GS SS
+.br
+CR0 CR2 CR3 DR0 DR1 DR2 DR3 DR6 DR7
+.br
+TR3 TR4 TR5 TR6 TR7 ST
+.TP
+Operand type specifiers
+BYTE DWORD FWORD FAR PTR PWORD QWORD TBYTE WORD NEAR
+.TP
+General instructions understood.
+AAA AAD AAM AAS ADC ADD AND ARPL BCC BCS BEQ BGE BGT BHI BHIS BLE BLO
+BLOS BLT BMI BNE BOUND BPC BPL BPS BR BVC BVS CALL CALLF CALLI CBW CLC
+CLD CLI CMC CMP CMPS CMPSB CMPSD CMPSW CMPW CSEG CWD CWDE CDQ DAA DAS
+DSEG DEC DIV ENTER ESEG FSEG GSEG HLT IDIV IMUL IN INC INS INSB INSD
+INSW INT INTO INW IRET IRETD J JA JAE JB JBE JC JCXE JCXZ JECXE JECXZ JE
+JG JGE JL JLE JMP JMPF JMPI JNA JNAE JNB JNBE JNC JNE JNG JNGE JNL JNLE
+JNO JNP JNS JNZ JO JP JPE JPO JS JZ LAHF LDS LEA LEAVE LES LOCK LODB
+LODS LODSB LODSD LODSW LODW LOOP LOOPE LOOPNE LOOPNZ LOOPZ MOV MOVS
+MOVSB MOVSD MOVSW MOVW MUL NEG NOP NOT OR OUT OUTS OUTSB OUTSD OUTSW
+OUTW POP POPA POPAD POPF POPFD PUSH PUSHA PUSHAD PUSHF PUSHFD RCL RCR
+ROL ROR REP REPE REPNE REPNZ REPZ RET RETF RETI SAHF SAL SAR SBB SCAB
+SCAS SCASB SCASD SCASW SCAW SEG SHL SHR SSEG STC STD STI STOB STOS STOSB
+STOSD STOSW STOW SUB TEST WAIT XCHG XLAT XLATB XOR
+.TP
+And more...
+BSF BSR BSWAP BT BTC BTR BTS CLTS CMPXCHG INVD INVLPG LAR LFS LGDT LGS
+LIDT LLDT LMSW LSL LSS LTR MOVSX MOVZX SETA SETAE SETB SETBE SETC SETE
+SETG SETGE SETL SETLE SETNA SETNAE SETNB SETNBE SETNC SETNE SETNG SETNGE
+SETNL SETNLE SETNO SETNP SETNS SETNZ SETO SETP SETPE SETPO SETS SETZ
+SGDT SIDT SHLD SHRD SLDT SMSW STR VERR VERW WBINVD XADD ADCB ADDB ANDB
+CMPB DECB DIVB IDIVB IMULB INB INCB MOVB MULB NEGB NOTB ORB OUTB RCLB
+RCRB ROLB RORB SALB SARB SHLB SHRB SBBB SUBB TESTB XCHGB XORB
+.TP
+Floating point
+F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX FCOM FCOMP FCOMPP FCOS
+FDECSTP FDISI FDIV FDIVP FDIVR FDIVRP FENI FFREE FIADD FICOM FICOMP
+FIDIV FIDIVR FILD FIMUL FINCSTP FINIT FIST FISTP FISUB FISUBR FLD FLD1
+FLDL2E FLDL2T FLDCW FLDENV FLDLG2 FLDLN2 FLDPI FLDZ FMUL FMULP FNCLEX
+FNDISI FNENI FNINIT FNOP FNSAVE FNSTCW FNSTENV FNSTSW FPATAN FPREM
+FPREM1 FPTAN FRNDINT FRSTOR FSAVE FSCALE FSETPM FSIN FSINCOS FSQRT FST
+FSTCW FSTENV FSTP FSTSW FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP
+FUCOMPP FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1
+.P
+.SH Using GASP
+
+The Gnu assembler preprocessor provides some reasonable implementations
+of user biased pseudo opcodes.
+
+It can be invoked in a form similar to:
+.TP
+.B gasp
+.RB [ -a... ]
+.B file.s
+.RB [ file2.s ]
+.B |
+.br
+.B as86
+.RB [ ... ]
+.B -
+.RB [ -o\ obj ]\ [ -b\ bin ]
+.P
+Be aware though that Gasp generates an error for
+.B .org
+commands, if you're not using alternate syntax you can use
+.B org
+instead, otherwise use
+.BR block
+and
+.BR endb .
+The directive
+.B export
+is translated into
+.BR .global ,
+which forces an import, if you are making a file using
+.B -b
+use
+.B public
+or
+.B .define
+instead.
+
+The GASP list options have no support in as86.
+.SH SEE ALSO
+as(1), ld86(1), bcc(1)
+.SH BUGS
+The 6809 version does not support -0, -3, -a or -j.
+
+If this assembler is compiled with BCC this is classed as a 'small'
+compiler, so there is a maximum input line length of 256 characters.
+
+The
+.B .text
+and
+.B .data
+pseudo operators are not useful for raw binary files.
+
+When using the
+.B org
+directive the assembler can generate object files that may break ld86(1).
+
diff --git a/man/bcc.1 b/man/bcc.1
new file mode 100644
index 0000000..7f6097f
--- /dev/null
+++ b/man/bcc.1
@@ -0,0 +1,322 @@
+.TH bcc 1 "Oct, 1996"
+.BY Bruce Evans
+.nh
+.SH NAME
+bcc \- Bruce's C compiler
+.SH SYNOPSIS
+.B bcc
+.RB [ -03EGNOPSVcegv ]
+.RB [ -Aas_option ]
+.RB [ -Bexecutable_prefix ]
+.RB [ -Ddefine ]
+.RB [ -Uundef ]
+.RB [ -Mc_mode ]
+.RB [ -o\ outfile ]
+.RB [ -ansi ]
+.RB [ -Ccc1_option ]
+.RB [ -Iinclude_dir ]
+.RB [ -Lld_option ]
+.RB [ -Ttmpdir ]
+.RB [ -Qc386_option ]
+.RB [ ld_options ]
+.RB [ infiles ]
+.SH DESCRIPTION
+.B Bcc
+is a simple C compiler that produces 8086 assembler, in addition compiler
+compile time options allow 80386 or 6809 versions. The compiler understands
+traditional K&R C with just the restriction that bit fields are mapped to
+one of the other integer types.
+
+The default operation is to produce an 8086 executable called
+.B a.out
+from the source file.
+
+.SH OPTIONS
+.TP
+.B -ansi
+Pass the C source through
+.B unprotoize(1)
+after preprocessing and before code generation. This will allow
+.I some
+ansi C to be compiled but it is definitly
+.B NOT
+a true ansi-C compiler.
+.TP
+.B -0
+8086 target (works on 80386 host, but not 6809)
+.TP
+.B -3
+80386 target (may work on 8086 host, but not 6809)
+.TP
+.B -A
+pass remainder of option to assembler (e.g. -A-l -Alistfile for a listing)
+.TP
+.B -B
+prefix for executable search path (as usual; the search order is all paths
+specified using
+.BR -B ,
+in order, then the path given in the environment variable
+.B BCC_EXEC_PREFIX
+if that is set, then the compiled-in defaults
+(something like /usr/lib/bcc/ followed by /usr/bin/)
+.TP
+.B -C
+pass remainder of option to bcc-cc1, see code generation options.
+.TP
+.B -D
+preprocessor define
+.TP
+.B -E
+produce preprocessor output to standard out.
+.TP
+.B -G
+produce GCC objects (only useful for i386 code)
+.TP
+.B -Ixyz
+include search 'xyz' path
+.TP
+.B -I
+don't add default include to search list
+.TP
+.B -Lxyz
+add directory name 'xyz' to the head of the list of library directories searched
+.TP
+.B -L
+don't add default library to search list
+.TP
+.B -Md
+alters the arguments for all passes to produce MSDOS executable COM files.
+.TP
+.B -Mf
+sets the code generator to pass the
+.B -c
+and
+.B -f
+arguments to the code generator for smaller faster code. Note this code is
+not compatible with the standard calling conventions so a different version
+of the C library is linked too.
+.TP
+.B -Ms
+alters the arguments for all passes and selects C-library
+to produce standalone Linux-86 executables
+.TP
+.B -N
+makes the linker produce a native a.out file (Linux OMAGIC) if combined
+with -3 the executable will run under Linux-i386.
+.TP
+.B -O
+optimize (does nothing)
+.TP
+.B -P
+produce preprocessor output with no line numbers to standard output.
+.TP
+.B -Q
+pass full option to c386 (Only for c386 version)
+.TP
+.B -S
+produce assembler file
+.TP
+.B -T
+temporary directory (overrides previous value and default; default is
+from the environment variable TMPDIR if that is set, otherwise /tmp)
+.TP
+.B -U
+preprocessor undefine
+.TP
+.B -V
+print names of files being compiled
+.TP
+.B -X
+pass remainder of option to linker (e.g. -X-Ofile is passed to the linker
+as -Ofile)
+.TP
+.B -c
+produce object file
+.TP
+.B -e
+run the preprocess pass separately. This takes less memory, and may help
+or harm by giving more traditional semantics like token pasting with /**/.
+.TP
+.B -f
+error (float emulation not supported)
+.TP
+.B -g
+produce debugging info (does nothing)
+.TP
+.B -o
+output file name follows (assembler, object or executable) (as usual)
+.TP
+.B -p
+error (profiling not supported)
+.TP
+.B -t
+error (substitution of some cc passes not supported)
+.TP
+.B -v
+print names and args of subprocesses being run. Two or more -v's print
+names of files being unlinked. Three or more -v's print names of paths
+being searched.
+.P
+Other options are passed to the linker, in particular -i-, -lx, -M, -m, -s.
+The -i option is always passed to the linker but can be cancelled using -i-.
+
+.SH CODE GENERATOR OPTIONS
+These are all options that the code generator pass
+.B bcc-cc1
+understands, only some will be useful for the
+.B -C
+option of bcc. The code generator is normally used as a combined C preprocessor
+and generator but the
+.B -e
+and
+.B -ansi
+options of bcc split the operation.
+.TP
+.B -0
+8086 target (works even on 80386 host, not on 6809)
+.TP
+.B -3
+80386 target (may work even on 8086 host, not on 6809)
+.TP
+.B -D
+define (as usual)
+.TP
+.B -E
+produce preprocessor output (as usual)
+.TP
+.B -I
+include search path (as usual)
+.TP
+.B -P
+produce preprocessor output with no line numbers (as usual)
+.TP
+.B -c
+produce code with caller saving regs before function calls
+.TP
+.B -d
+print debugging information in assembly output
+.TP
+.B -f
+produce code with 1st argument passed in a register (AX, EAX or X)
+.TP
+.B -l
+produce code for 2 3 1 0 long byte order (only works in 16-bit code),
+a special library of compiler helper functions is needed for this mode.
+.TP
+.B -o
+assembler output file name follows
+.TP
+.B -p
+produce (almost) position-independent code (only for the 6809)
+.TP
+.B -t
+print source code in assembly output
+.TP
+.B -w
+print what cc1 thinks is the location counter in assembly output
+.P
+All the options except -D, -I and -o may be turned off by following the
+option letter by a '-'. Options are processed left to right so the last
+setting has precedence.
+
+.SH PREPROCESSOR DEFINES
+The preprocessor has a number of manifest constants.
+.TP
+.B __BCC__ 1
+The compiler identifier, normally used to avoid compiler limitations.
+.TP
+.B __FILE__
+stringized name of current input file
+.TP
+.B __LINE__
+current line number
+.TP
+.B __MSDOS__ 1
+compiler is configured for generating MSDOS executable COM files.
+.TP
+.B __STANDALONE__ 1
+compiler is configured for generating standalone executables.
+.TP
+.B __AS386_16__ 1
+compiler is generating 16 bit 8086 assembler and the
+.B #asm
+keyword is available for including 8086 code.
+.TP
+.B __AS386_32__ 1
+compiler is generating 32 bit 80386 assembler and the
+.B #asm
+keyword is available for including 80386 code.
+.TP
+.B __CALLER_SAVES__ 1
+compiler calling conventions are altered so the calling function must save the
+.I SI
+and
+.I DI
+registers if they are in use (ESI and EDI on the 80386)
+.TP
+.B __FIRST_ARG_IN_AX__ 1
+compiler calling conventions are altered so the calling function is passing
+the first argument to the function in the
+.I AX
+(or
+.I EAX
+)
+register.
+.TP
+.B __LONG_BIG_ENDIAN__ 1
+alters the word order of code generated by the 8086 compiler.
+.P
+These defines only occur in the 6809 version of the compiler.
+.TP
+.B __AS09__ 1
+compiler is generating 6809 code
+.TP
+.B __FIRST_ARG_IN_X__ 1
+the first argument to functions is passed in the
+.I X
+register.
+.TP
+.B __POS_INDEPENDENT__ 1
+the code generated is (almost) position independent.
+.P
+.SH ENVIRONMENT
+.TP
+.B BCC_EXEC_PREFIX
+default directory to seach for compiler passes
+.TP
+.B TMPDIR
+directory to place temporary files (default /tmp)
+.P
+.SH DIRECTORIES
+All the include, library and compiler components are stored under the
+.I /usr/bcc
+directory under Linux-86, this is laid out the same as a
+.I /usr
+filesystem and if bcc is to be the primary compiler on a system it should
+be moved there. The configuration for this is in the
+.B bcc.c
+source file only, all other executables are independent of location.
+
+The library installation also creates the file
+.BR /usr/lib/liberror.txt ,
+this path is hardcoded into the C library.
+
+The
+.B bcc
+executable itself is in /usr/bin and the
+.B as86
+and
+.B ld86
+executables can be placed there also, but be aware that some programs
+will require the old operation of the
+.B -r
+argument to ld86 (eg compiling DOSEMU)
+
+.SH SEE ALSO
+unprotoize(1), as86(1), ld86(1), elksemu(1)
+.SH BUGS
+The compiler cannot generate 8086 floating point code, if it's made to
+try it produces a nasty mixture of 8086 and 80386 code that really
+upsets the assembler.
+
+The bcc.c compiler driver source is very untidy.
diff --git a/man/elks.1 b/man/elks.1
new file mode 100644
index 0000000..c9ba65e
--- /dev/null
+++ b/man/elks.1
@@ -0,0 +1 @@
+.so man1/elksemu.1
diff --git a/man/elksemu.1 b/man/elksemu.1
new file mode 100644
index 0000000..ad6eecc
--- /dev/null
+++ b/man/elksemu.1
@@ -0,0 +1,45 @@
+.TH elksemu 1 "Oct, 1996"
+.BY Me!
+.nh
+.SH NAME
+elksemu \- Embedded Linux Kernel Environment emulator
+.SH SYNOPSIS
+.B /lib/elksemu
+.B program
+.RB [ arguments ]
+.SH DESCRIPTION
+.B Elksemu
+is a program that allows 8086
+.B ELKS
+programs to be run under Linux-i386. These programs can be compiled using
+the
+.B bcc(1)
+C compiler.
+
+It is not usual to invoke
+.I /lib/elksemu
+directly, either the simple patch or kernel module distributed with it
+will cause the kernel to run
+.I /lib/elksemu
+with the correct arguments whenever the user tries to execute an ELKS
+executable directly.
+
+.SH OPTIONS
+There are no flag options to elksemu, the first argument is the name of the
+program to run the rest are arguments that are passed to the Elks program.
+
+The
+.B elksemu
+program is normally installed suid-root and in this event it is able to
+run execute only (chmod 111) elks executables and act correctly on the
+suid permission bits on those executable. This may be considered a
+security hazard so elksemu does
+.I not
+have to be installed suid-root.
+
+.SH SEE ALSO
+bcc(1), as86(1), ld86(1)
+.SH BUGS
+Elksemu is incomplete.
+
+The program may still have security bugs!
diff --git a/man/ld86.1 b/man/ld86.1
new file mode 100644
index 0000000..aa83919
--- /dev/null
+++ b/man/ld86.1
@@ -0,0 +1,107 @@
+.TH ld86 1 "Oct, 1996"
+.BY Bruce Evans
+.nh
+.SH NAME
+ld86 \- Linker for as86(1)
+.SH SYNOPSIS
+.BR ld86
+.RB [ -03MNdimrstz [-]]
+.RB [ -llib_extension ]
+.RB [ -o\ outfile ]
+.RB [ -Ccrtfile ]
+.RB [ -Llibdir ]
+.RB [ -Olibfile ]
+.RB [ -Ttextaddr ]
+.RB [ -Ddataaddr ]
+.B infile...
+
+.SH DESCRIPTION
+This linker understands only the object files produced by the as86 assembler,
+it can link them into either an impure or a separate I&D executable.
+
+The linking defaults are everything off or none except for
+.B -0
+and the output file is
+.BR a.out .
+There is
+.I not
+a standard library location defined in the linker.
+
+.SH OPTIONS
+.TP
+.B -0
+produce header with 16-bit magic
+.\"and use library subdir i86 for -lx
+.TP
+.B -3
+produce header with 32-bit magic
+.\"and use library subdir i386 for -lx
+.TP
+.B -d
+delete the header from the output file, used for MSDOS COM files. As a side
+effect this also includes -s as there's nowhere to put a symbol table.
+.TP
+.B -Cx
+add file libdir-from-search/crtx.o to list of files linked
+.TP
+.B -D
+data base address follows (in format suitable for strtoul)
+.TP
+.B -Lx
+add dir name x to the head of the list of library dirs searched
+.TP
+.B -M
+print symbols linked on stdout
+.TP
+.B -N
+Create a native Linux OMAGIC output file. If the contents are i386 code the
+binary can be either linked by GCC or executed by linux.
+.TP
+.B -Ox
+add library libdir-from-search/x to list of files linked
+.TP
+.B -T
+text base address follows (in format suitable for strtoul)
+.TP
+.B -i
+separate I&D output
+.TP
+.B -lx
+add library libdir-from-search/libx.a to list of files linked
+.TP
+.B -m
+print modules linked on stdout
+.TP
+.B -o
+output file name follows
+.TP
+.B -s
+strip symbols
+.TP
+.B -r
+Generate a relocatable object from one source object, note this only works
+when creating native (-N) binaries.
+.TP
+.B -t
+trace modules being looked at on stdout
+.TP
+.B -z
+produce "unmapped zero page" executables
+.P
+All the options not taking an argument may be turned off by following the
+option letter by a '-', as for cc1.
+.SH HISTORY
+
+The 6809 version does not support -i.
+
+The previous versions of the linker could produce an 8086 executable with
+segments of a size >64k, now only i386 executables may have segments
+this large.
+
+The output format for the -r option has changed.
+
+.SH BUGS
+The linker cannot deal with reverse seeks caused by
+.B org
+instructions in the object file. Unlike previous versions the current one
+traps the error rather than trying to fill up the hard disk.