Tune the installed manual pages.

This commit slightly improves the formatting of the manuals.  My
OpenBSD machine uses mandoc(1) to format manuals.  I check the manuals
with `mandoc -T lint` and fix most of the warnings.  I also make
other changes where mandoc didn't warn me.

roff(7) says, "Each sentence should terminate at the end of an input
line," but we often forgot this rule.  I insert some newlines after
sentences that had ended mid-line.

roff(7) also says that blank lines "are only permitted within literal
contexts."  I delete blank lines.  This removes some extra blank lines
from mandoc's output.  If I do want a blank line in the output, I call
".sp 1" to make it in man(7).  If I want a blank line in the source,
but not the output, I put a plain dot "." so roff ignores it.

Hyphens used for command-line options, like \-a, should be escaped by
a backslash.  I insert a few missing backslashes.

mandoc warns if the date in .TH doesn't look like a date.  Our manuals
had a missing date or the RCS keyword "$Revision$".  Git doesn't
expand RCS keywords.  I put in today's date, 2017-01-18.

Some manuals used tab characters in filled mode.  That doesn't work.
I use .nf to turn off filled mode, or I use .IP in man(7) to make the
indentation without a tab character.

ack(1) defined a macro .SB but never used it, so I delete the
definition.  I also remove a call to the missing macro .RF.

mandoc warns about empty paragraphs.  I deleted them.  mandoc also
warned about these macro pairs in anm(1):

    .SM
    .B text

The .SM did nothing because the .B text is on a different line.  I
changed each pair to .SB for small bold text.

I make a few other small changes.
This commit is contained in:
George Koehler 2017-01-18 23:02:30 -05:00
parent d7df126730
commit f91bc2804d
17 changed files with 166 additions and 179 deletions

View file

@ -1,68 +1,53 @@
.TH EM_B 6 .TH EM_B 6 2017-01-18
.ad .ad
.SH NAME .SH NAME
em_b \- ACK B compiler em_b \- ACK B compiler
.SH SYNOPSIS .SH SYNOPSIS
.B ~em/lib/ack/em_b .B ~em/lib/ack/em_b
.RI [ options ] .RI [ options ]
.SH DESCRIPTION .SH DESCRIPTION
.I em_b .I em_b
is a port of the ABC B compiler to the ACK. Interested parties will be is a port of the ABC B compiler to the ACK.
Interested parties will be
interested in the upstream distribution here: interested in the upstream distribution here:
.nf .nf
.sp .sp
https://github.com/aap/abc https://github.com/aap/abc
.fi .fi
.PP
However, the version here has been heavily modified --- bug reports should be However, the version here has been heavily modified \(em bug reports should be
filed with the ACK, not with the upstream compiler. filed with the ACK, not with the upstream compiler.
.PP .PP
Since B was designed for machines with word addressing, some hacking is Since B was designed for machines with word addressing, some hacking is
required to make it work on modern, byte addressed machines. The generated required to make it work on modern, byte addressed machines.
The generated
code expects B variables to contain word addresses, and then generates code expects B variables to contain word addresses, and then generates
code to transform these into native addresses before use (which, code to transform these into native addresses before use (which,
unfortunately, impacts performance). However, the ACK's linker doesn't know unfortunately, impacts performance).
However, the ACK's linker doesn't know
how to emit word addresses into the program's data sections, and so a how to emit word addresses into the program's data sections, and so a
separate fixup stage has to happen at runtime, just before \fBmain()\fP, separate fixup stage has to happen at runtime, just before \fBmain()\fP,
to convert the byte addresses into word addresses. to convert the byte addresses into word addresses.
.PP .PP
The end result is that using multiple source files with B is somewhat The end result is that using multiple source files with B is somewhat
unwieldy, requiring each module to be explicitly named and then an extra unwieldy, requiring each module to be explicitly named and then an extra
stage to generate the fixup code. See the \fBack\fP(1) and \fBabmodules\fP(1) stage to generate the fixup code.
for details. See the \fBack\fP(1) and \fBabmodules\fP(1) for details.
.SH OPTIONS .SH OPTIONS
.I em_b .I em_b
accepts the following flags: accepts the following flags:
.IP \-w\ \fIsize\fP .IP \-w\ \fIsize\fP
Sets the word size, used for scaling addresses. Usually either 2 or 4. Sets the word size, used for scaling addresses.
Usually either 2 or 4.
.IP \-B\ \fIname\fP .IP \-B\ \fIname\fP
Sets the name of the module currently being compiled (used to generate the Sets the name of the module currently being compiled (used to generate the
fixup table symbol name). Defaults to \fImain\fP if not specified. fixup table symbol name).
Defaults to \fImain\fP if not specified.
.IP \-i\ \fIfilename\fP .IP \-i\ \fIfilename\fP
The source B file. The source B file.
.IP \-o\ \fIfilename\fP .IP \-o\ \fIfilename\fP
The output compact EM bytecode file. The output compact EM bytecode file.
.SH SEE ALSO .SH SEE ALSO
\fIack\fR(1), \fIabmodules\fR(1) \fIack\fR(1), \fIabmodules\fR(1)
.SH REMARKS .SH REMARKS
It is very unlikely the \fIem_b\fP will ever be useful for anything. It is very unlikely the \fIem_b\fP will ever be useful for anything.

View file

@ -1,4 +1,4 @@
.TH EM_M2 6 "$Revision$" .TH EM_M2 6 2017-01-18
.ad .ad
.SH NAME .SH NAME
em_m2 \- ACK Modula\-2 compiler em_m2 \- ACK Modula\-2 compiler
@ -17,7 +17,7 @@ The input is taken from
while the while the
EM code is written on EM code is written on
.IR destination . .IR destination .
.br .PP
.I Option .I Option
is a, possibly empty, sequence of the following combinations: is a, possibly empty, sequence of the following combinations:
.IP \fB\-I\fIdirname\fR .IP \fB\-I\fIdirname\fR
@ -65,7 +65,8 @@ make all procedure names global, so that \fIadb\fR(1) understands them.
.IP \fB\-g\fR .IP \fB\-g\fR
produce a DBX-style symbol table. produce a DBX-style symbol table.
.IP \fB\-l\fR .IP \fB\-l\fR
enable local extensions. Currently, there are two local extensions: enable local extensions.
Currently, there are two local extensions:
procedure constants, and the type LONGCARD. procedure constants, and the type LONGCARD.
.IP \fB\-s\fR .IP \fB\-s\fR
make INTEGER ranges symmetric, t.i., MIN(INTEGER) = - MAX(INTEGER). make INTEGER ranges symmetric, t.i., MIN(INTEGER) = - MAX(INTEGER).
@ -77,11 +78,11 @@ disable all range checks.
enable extra array bound checks, for machines that do not implement the enable extra array bound checks, for machines that do not implement the
EM ones. EM ones.
.IP \fB-U\fR .IP \fB-U\fR
allow for underscores within identifiers. Identifiers may not start with allow for underscores within identifiers.
Identifiers may not start with
an underscore, even if this flag is given. an underscore, even if this flag is given.
.IP \fB-3\fR .IP \fB-3\fR
only accept Modula-2 programs that strictly conform to [1]. only accept Modula-2 programs that strictly conform to [1].
.LP
.SH SEE ALSO .SH SEE ALSO
\fIack\fR(1), \fImodula-2\fR(1) \fIack\fR(1), \fImodula-2\fR(1)
.IP [1] .IP [1]

View file

@ -1,4 +1,4 @@
.TH EM_PC 6 "$Revision$" .TH EM_PC 6 2017-01-18
.ad .ad
.SH NAME .SH NAME
em_pc \- Pascal compiler em_pc \- Pascal compiler
@ -45,9 +45,9 @@ and the \fIn\fR parameter for the alignment of that type.
Absence of \fIm\fR or \fIn\fR causes a default value to be retained. Absence of \fIm\fR or \fIn\fR causes a default value to be retained.
.IP \fB\-w\fR .IP \fB\-w\fR
suppress warning messages. suppress warning messages.
.IP
.IP \fB\-R\fR .IP \fB\-R\fR
disable range checks. Additionally, the run-time tests to see if disable range checks.
Additionally, the run-time tests to see if
a function is assigned, are skipped. a function is assigned, are skipped.
.IP \fB\-A\fR .IP \fB\-A\fR
enable extra array bound checks, for machines that do not implement the enable extra array bound checks, for machines that do not implement the
@ -55,26 +55,28 @@ EM ones.
.IP \fB\-C\fR .IP \fB\-C\fR
the lower case and upper case letters are treated differently. the lower case and upper case letters are treated differently.
.IP "\fB\-u\fR, \fB\-U\fR" .IP "\fB\-u\fR, \fB\-U\fR"
allow underscores in identifiers. It is not allowed to start an identifier allow underscores in identifiers.
It is not allowed to start an identifier
with an underscore. with an underscore.
.IP \fB\-a\fR .IP \fB\-a\fR
don't generate code for assertions. don't generate code for assertions.
.IP \fB\-c\fR .IP \fB\-c\fR
allow C-like strings. This option is mainly intended for usage with allow C-like strings.
C-functions. This option will cause the type 'string' to be known. This option is mainly intended for usage with C-functions.
This option will cause the type 'string' to be known.
.IP \fB\-d\fR .IP \fB\-d\fR
allow the type 'long'. allow the type 'long'.
.IP \fB\-i\fR\fIn\fR .IP \fB\-i\fR\fIn\fR
set the size of integer sets to \fIn\fR. When not used, a default value is set the size of integer sets to \fIn\fR. When not used, a default value is
retained. retained.
.IP \fB\-s\fR .IP \fB\-s\fR
allow only standard Pascal. This disables the \fB\-c\fR, \fB\-d\fR, \fB\-u\fR, allow only standard Pascal.
\fB\-U\fR and \fB\-C\fR This disables the \fB\-c\fR, \fB\-d\fR, \fB\-u\fR,
options. Furthermore, assertions are not recognized at all (instead of just \fB\-U\fR and \fB\-C\fR options.
Furthermore, assertions are not recognized at all (instead of just
being skipped). being skipped).
.IP \fB\-t\fR .IP \fB\-t\fR
trace calls and exits of procedures and functions. trace calls and exits of procedures and functions.
.PP
.SH FILES .SH FILES
.IR ~em/lib/em_pc : .IR ~em/lib/em_pc :
binary of the Pascal compiler. binary of the Pascal compiler.

View file

@ -1,23 +1,12 @@
.\" $Id$ .TH ACK 1 2017-01-18
.de SB
.\" SuBheader
.sp 1
.PP
.nr Sf \\n(.f
.ft B
\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
.ft \\n(Sf
.sp 1
..
.TH ACK 1 "$Revision$"
.ad .ad
.
.SH NAME .SH NAME
ack \- Amsterdam Compiler Kit ack \- Amsterdam Compiler Kit
.
.SH SYNOPSIS .SH SYNOPSIS
\fBack\fP arguments \fBack\fP arguments
.
.SH DESCRIPTION .SH DESCRIPTION
This program transforms sources in several This program transforms sources in several
languages to load files for a variety of machines, languages to load files for a variety of machines,
@ -73,10 +62,8 @@ Optimized compact EM assembly code.
Machine assembly language code. Machine assembly language code.
.IP .o .IP .o
Object file. Object file.
.PP .
.SH OPTIONS .SH OPTIONS
\fIAck\fP accepts the following flags: \fIAck\fP accepts the following flags:
.IP \-m\fImachine\fP .IP \-m\fImachine\fP
This flag tells \fIack\fP to generate a load file for \fImachine\fP. This flag tells \fIack\fP to generate a load file for \fImachine\fP.
@ -106,7 +93,8 @@ Note: \fIack\fP refuses to overwrite argument \fI.e\fP files.
Preserve all intermediate files. Preserve all intermediate files.
If two \fB\-t\fP are used, If two \fB\-t\fP are used,
\fIack\fP also preserves output of failed transformations. \fIack\fP also preserves output of failed transformations.
.
.sp 1
.IP \-w .IP \-w
Suppress all warning messages. Suppress all warning messages.
.IP \-v .IP \-v
@ -118,7 +106,8 @@ Tell the C-compiler to conform to "Kernighan & Ritchie" C.
Tell \fIack\fP to use the ANSI C compiler instead of the old one. Tell \fIack\fP to use the ANSI C compiler instead of the old one.
.IP \-fp .IP \-fp
Use the software floating point package, if present. Use the software floating point package, if present.
.
.sp 1
.IP \-I\fIdir\fP .IP \-I\fIdir\fP
\&\`#include\' files whose names do not begin with \`/\' are \&\`#include\' files whose names do not begin with \`/\' are
always sought first in the directory of the \fIfile\fP argument, always sought first in the directory of the \fIfile\fP argument,
@ -136,7 +125,8 @@ preprocessing.
Don't generate line directives. Don't generate line directives.
.IP \-C .IP \-C
Leave C-comments in. Leave C-comments in.
.
.sp 1
.IP \-p .IP \-p
This flag tells both the Pascal and C front ends to include This flag tells both the Pascal and C front ends to include
code enabling the user to do some monitoring/debugging. code enabling the user to do some monitoring/debugging.
@ -144,13 +134,16 @@ Each time a routine is entered the routine \fBprocentry\fP
is called and just before each return \fBprocexit\fP is called. is called and just before each return \fBprocexit\fP is called.
These routines are supplied with one parameter, a pointer These routines are supplied with one parameter, a pointer
to a string containing the name of the routine. to a string containing the name of the routine.
.
.sp 1
.IP \-B\fIname\fP .IP \-B\fIname\fP
Tells the B front end what the name of the module being compiled is, for use Tells the B front end what the name of the module being compiled is, for use
with separate compilation. Defaults to with separate compilation.
Defaults to
.I main .I main
if not specified. See the section below on compiling B. if not specified. See the section below on compiling B.
.
.sp 1
.IP \-O .IP \-O
.IP \-O\fInum\fP .IP \-O\fInum\fP
.IP \-O\fIopt1,opt2,...\fP .IP \-O\fIopt1,opt2,...\fP
@ -239,7 +232,8 @@ for higher levels: as for \-O4.
Disable the generation of code by the front ends to Disable the generation of code by the front ends to
record line number and source file name at run-time. record line number and source file name at run-time.
(This is the default for C and Fortran). (This is the default for C and Fortran).
.
.sp 1
.IP \-l\fIname\fP .IP \-l\fIname\fP
Tells \fIack\fP to insert a library module at this point. Tells \fIack\fP to insert a library module at this point.
For example: the library \fImon\fP contains the For example: the library \fImon\fP contains the
@ -259,13 +253,14 @@ These flags tell \fIack\fP to include the libraries needed when
a file with \fIsuffix\fP would be included in the arguments. a file with \fIsuffix\fP would be included in the arguments.
.IP \-LIB .IP \-LIB
This flag tells the peephole optimizer This flag tells the peephole optimizer
.RF em_opt 6 em_opt(6)
to add information about the visibility of the names used to add information about the visibility of the names used
to each output module. to each output module.
This is needed by This is needed by
assembler/linkers when these modules are to be inserted assembler/linkers when these modules are to be inserted
in libraries. in libraries.
.
.sp 1
.IP \-{xxx} .IP \-{xxx}
The string starting after \`{\' and terminated by a \`}\' is passed The string starting after \`{\' and terminated by a \`}\' is passed
as an option string to the Pascal compiler and supersedes corresponding as an option string to the Pascal compiler and supersedes corresponding
@ -293,7 +288,8 @@ the defaults per program.
The changed options are recorded in the "e.out" header. The changed options are recorded in the "e.out" header.
These flags \-\- and \-+ are passed to the assembler for this purpose. These flags \-\- and \-+ are passed to the assembler for this purpose.
So, \-\-t and \-+pfce invert the defaults. So, \-\-t and \-+pfce invert the defaults.
.
.sp 1
.IP \-R\fIprogram=xxx\fP .IP \-R\fIprogram=xxx\fP
Replace the \fIprogram\fP by the pathname \fIxxx\fP. Replace the \fIprogram\fP by the pathname \fIxxx\fP.
The program names referred to later in this manual are allowed here. The program names referred to later in this manual are allowed here.
@ -320,7 +316,7 @@ Sparc, Vax, Intel 80386.
.PP .PP
All arguments without a suffix or with an unrecognized suffix All arguments without a suffix or with an unrecognized suffix
are passed to the loaders, as for flags. are passed to the loaders, as for flags.
.
.SH PREPROCESSOR .SH PREPROCESSOR
All C source programs are run through the preprocessor All C source programs are run through the preprocessor
before they are fed to the compiler proper. before they are fed to the compiler proper.
@ -341,40 +337,37 @@ EM_WSIZE:wordsize:EM_PSIZE:pointer size
EM_SSIZE:size of shorts (C):EM_LSIZE:size of longs (C+Pascal) EM_SSIZE:size of shorts (C):EM_LSIZE:size of longs (C+Pascal)
EM_FSIZE:size of floats (C):EM_DSIZE:size of doubles (C+Pascal) EM_FSIZE:size of floats (C):EM_DSIZE:size of doubles (C+Pascal)
.TE .TE
.sp 1 .PP
The name of the \fImachine\fP or something like it when The name of the \fImachine\fP or something like it when
the machine name is numeric is also defined (as 1). the machine name is numeric is also defined (as 1).
As the ANSI C rules forbid this, in ANSI C, underscores are prepended to As the ANSI C rules forbid this, in ANSI C, underscores are prepended to
these names. these names.
.PP .PP
The default directories searched for include files differ for each machine. The default directories searched for include files differ for each machine.
.
.SH COMPILING B .SH COMPILING B
B programs have special needs when compiled with the ACK.
B programs have special needs when compiled with the ACK. B modules have to be B modules have to be
initialised before use, to convert pointer addresses to word addresses; this is initialised before use, to convert pointer addresses to word addresses; this is
done automatically when compiling a single B source file to an executable, but done automatically when compiling a single B source file to an executable, but
must be done manually when using separate compilation. must be done manually when using separate compilation.
.PP .PP
To do this, compile your B modules with the \fI-B\fP option as usual, and then To do this, compile your B modules with the \fI-B\fP option as usual, and then
use the use the
.B abmodules .B abmodules
program to scan the object files and emit a C file which performs the program to scan the object files and emit a C file which performs the
initialisation. Then compile this as well into an object file, and link the initialisation.
whole lot together. The result will be a runnable executable. Then compile this as well into an object file, and link the
whole lot together.
The result will be a runnable executable.
.PP .PP
Beware --- referring to an uninitialised module will cause your program to Beware \(em referring to an uninitialised module will cause your program to
crash! crash!
.PP .PP
The default initialiser in the B standard library looks for a module called The default initialiser in the B standard library looks for a module called
\fBmain\fP. \fBmain\fP.
.PP .PP
For example: For example:
.nf .nf
.sp .sp
ack -c -mpc86 thismodule.b -Bthismodule ack -c -mpc86 thismodule.b -Bthismodule
@ -384,7 +377,7 @@ abmodules -o binit.c thismodule.o thatmodule.o theothermodule.o
ack -c -mpc86 binit.c ack -c -mpc86 binit.c
ack -mpc86 -o pc86.exe thismodule.o thatmodule.o theothermodule.o binit.o ack -mpc86 -o pc86.exe thismodule.o thatmodule.o theothermodule.o binit.o
.fi .fi
.
.SH PROGRAMS .SH PROGRAMS
\fIAck\fP uses one or more programs in each phase of the \fIAck\fP uses one or more programs in each phase of the
transformation. transformation.
@ -421,7 +414,7 @@ input:name:output:description
\&.o:cv:a.out:Conversion from Ack object to machine object \&.o:cv:a.out:Conversion from Ack object to machine object
.TE .TE
.in -2 .in -2
.
.SH "ENVIRONMENT VARIABLES" .SH "ENVIRONMENT VARIABLES"
.IP ACKDIR .IP ACKDIR
If set, this environment variable overrides ack's idea of its home If set, this environment variable overrides ack's idea of its home
@ -432,13 +425,14 @@ machine it compiles for.
.IP ACKFE .IP ACKFE
If set, this environment variable tells ack where to get the front-end If set, this environment variable tells ack where to get the front-end
description file. description file.
.
.SH "SEE ALSO" .SH "SEE ALSO"
.PD 0
em_opt(6), em_ass(6), em_cg(6), ack.out(5) em_opt(6), em_ass(6), em_cg(6), ack.out(5)
.IP [1] .IP [1]
A.S. Tanenbaum, Hans van Staveren, Ed Keizer and Johan A.S. Tanenbaum, Hans van Staveren, Ed Keizer and Johan
Stevenson, \fIDescription of a machine architecture for use with Stevenson, \fIDescription of a machine architecture for use with
block structured languages\fP, Informatica rapport IR-81. block structured languages\fP, Informatica rapport IR-81.
.PD 0
.IP [2] .IP [2]
K. Jensen and N. Wirth, K. Jensen and N. Wirth,
\fIPASCAL, User manual and report\fP Springer Verlag. \fIPASCAL, User manual and report\fP Springer Verlag.
@ -463,12 +457,13 @@ Informatica rapport IR-99.
.IP [11] .IP [11]
C.J.H. Jacobs, \fIThe ACK Modula-2 Compiler\fP. C.J.H. Jacobs, \fIThe ACK Modula-2 Compiler\fP.
.PD .PD
.
.SH DIAGNOSTICS .SH DIAGNOSTICS
.PD
The diagnostics are intended to be self\-explanatory. The diagnostics are intended to be self\-explanatory.
.
.SH BUGS .SH BUGS
Not all warning messages are superseded by \fB\-w\fP. Not all warning messages are superseded by \fB\-w\fP.
.br .PP
Argument assembly files are not preprocessed when fed into the Argument assembly files are not preprocessed when fed into the
universal assembler/loader. universal assembler/loader.
.SH AUTHOR .SH AUTHOR

View file

@ -1,18 +1,17 @@
.TH ABMODULES 1 .TH ABMODULES 1 2017-01-18
.SH NAME .SH NAME
abmodules \- find B modules abmodules \- find B modules
.SH SYNOPSIS .SH SYNOPSIS
abmodules [ \-o outputfile.c ] [ file ... ] abmodules [ \-o outputfile.c ] [ file ... ]
.SH DESCRIPTION .SH DESCRIPTION
.I abmodules .I abmodules
finds B modules in a set of ack.out(5) format object files, and either lists finds B modules in a set of ack.out(5) format object files, and either lists
them or generates a C file which initialises the modules. them or generates a C file which initialises the modules.
.PP .PP
This tool is used for multiple compilation of B programs; B modules must be This tool is used for multiple compilation of B programs; B modules must be
initiaised before use, and this tool generates the initialisation code for initialised before use, and this tool generates the initialisation code for
programs containing an abitrary number of modules. See em_b(6) for details. programs containing an abitrary number of modules.
See em_b(6) for details.
.PP .PP
Options are: Options are:
.TP .TP
@ -20,8 +19,7 @@ Options are:
Write C source to Write C source to
.I filename .I filename
containing a definition of a binit() function which will initalise all modules containing a definition of a binit() function which will initalise all modules
found. If not present, a simple list of module names is written to stdout found.
instead. If not present, a simple list of module names is written to stdout instead.
.SH SEE ALSO .SH SEE ALSO
ack.out(5), em_b(6) ack.out(5), em_b(6)

View file

@ -1,9 +1,10 @@
.TH AELFLOD 1 "$Revision$" .TH AELFLOD 1 2017-01-18
.SH NAME .SH NAME
aelflod \- ACK ELF loader aelflod \- ACK ELF loader
.SH SYNOPSIS .SH SYNOPSIS
.B aelflod .B aelflod
[-a\fInumber\fP] [-b] [-h] [-l] [-m\fInumber\fP] [-v] inputfile outputfile [\-a\fInumber\fP] [\-b] [\-h] [\-l] [\-m\fInumber\fP] [\-v]
inputfile outputfile
.SH DESCRIPTION .SH DESCRIPTION
.I aelflod .I aelflod
converts an absolute ack.out file into a simple binary memory converts an absolute ack.out file into a simple binary memory

View file

@ -1,4 +1,4 @@
.TH ANM 1 "$Revision$" .TH ANM 1 2017-01-18
.SH NAME .SH NAME
anm \- print name list anm \- print name list
.SH SYNOPSIS .SH SYNOPSIS
@ -7,7 +7,8 @@ anm [ \-gnoprus ] [ file ... ]
.I Anm .I Anm
prints the name list (symbol table) of each ack.out(5) format object prints the name list (symbol table) of each ack.out(5) format object
.I file .I file
in the argument list. If an argument is an aal(1) or arch(1) archive, in the argument list.
If an argument is an aal(1) or arch(1) archive,
a listing of each object file in the archive will be produced. a listing of each object file in the archive will be produced.
If no If no
.I file .I file
@ -18,32 +19,24 @@ are listed.
Each symbol name is preceded by its value, a section indicator Each symbol name is preceded by its value, a section indicator
and a type indicator. and a type indicator.
A section indicator can be A section indicator can be
.SM .SB U
.B U
(undefined symbol), (undefined symbol),
.SM .SB A
.B A
(absolute symbol), (absolute symbol),
.SM .SB C
.B C
(common symbol), a section number (section related symbol), (common symbol), a section number (section related symbol),
or or
.SM .SB \-
.B -
(other symbol). (other symbol).
A type indicator can be A type indicator can be
.SM .SB F
.B F
(filename), (filename),
.SM .SB M
.B M
(module name), (module name),
.SM .SB E
.B E
(external (global) symbol), (external (global) symbol),
or or
.SM .SB \-
.B -
(local symbol). (local symbol).
The output is sorted alphabetically. The output is sorted alphabetically.
.PP .PP
@ -69,6 +62,5 @@ Print only undefined symbols.
.TP .TP
.B \-s .B \-s
Sort in section order. Sort in section order.
.sh FILES
.SH SEE ALSO .SH SEE ALSO
ack.out(5) ack.out(5)

View file

@ -1,12 +1,12 @@
.TH ASLOD 1 "$Revision$" .TH ASHOW 1 2017-01-18
.SH NAME .SH NAME
ashow \- make the contents of an ACK object file human readable ashow \- make the contents of an ACK object file human readable
.SH SYNOPSIS .SH SYNOPSIS
ashow inputfile inputfile... ashow inputfile inputfile...
.SH DESCRIPTION .SH DESCRIPTION
.I ashow .I ashow
dumps the contents of an ack.out file in human-readable form. It shows dumps the contents of an ack.out file in human-readable form.
It shows
details of all symbols, relocation entries, sections, and other information. details of all symbols, relocation entries, sections, and other information.
.SH "SEE ALSO" .SH "SEE ALSO"
ack.out(5) ack.out(5)

View file

@ -1,4 +1,4 @@
.TH ASIZE 1 "$Revision$" .TH ASIZE 1 2017-01-18
.SH NAME .SH NAME
asize \- size of an object file asize \- size of an object file
.SH SYNOPSIS .SH SYNOPSIS

View file

@ -1,9 +1,9 @@
.TH ASLOD 1 "$Revision$" .TH ASLOD 1 2017-01-18
.SH NAME .SH NAME
aslod \- ACK simple loader aslod \- ACK simple loader
.SH SYNOPSIS .SH SYNOPSIS
.B aslod .B aslod
[-h] [-v] inputfile outputfile [\-h] [\-v] inputfile outputfile
.SH DESCRIPTION .SH DESCRIPTION
.I aslod .I aslod
converts an absolute ack.out file into a simple binary memory dump. converts an absolute ack.out file into a simple binary memory dump.

View file

@ -1,4 +1,4 @@
.TH ASTRIP 1 "$Revision$" .TH ASTRIP 1 2017-01-18
.SH NAME .SH NAME
astrip \- remove symbols and relocation information astrip \- remove symbols and relocation information
.SH SYNOPSIS .SH SYNOPSIS
@ -11,6 +11,7 @@ ack.out(5) format object files.
This is useful to save space after a program has been This is useful to save space after a program has been
debugged. debugged.
.SH FILES .SH FILES
/tmp/s? temporary file .IP /tmp/s? 16n
temporary file
.SH "SEE ALSO" .SH "SEE ALSO"
ack.out(5) ack.out(5)

View file

@ -1,5 +1,4 @@
.\" $Id$ .TH AAL 1 2017-01-18
.TH AAL 1 "$Revision$"
.ad .ad
.SH NAME .SH NAME
aal \- archive and library maintainer aal \- archive and library maintainer
@ -18,10 +17,10 @@ only understands archives made with
.PP .PP
.I Key .I Key
is one character from the set is one character from the set
.B qdrtx, .BR qdrtx ,
optionally concatenated with optionally concatenated with
one or more of one or more of
.B vlc. .BR vlc .
.I Afile .I Afile
is the archive file. is the archive file.
The The
@ -82,9 +81,10 @@ The create option supresses the normal message that is produced when
.I afile .I afile
is created. is created.
.SH FILES .SH FILES
/tmp/ar.* temporaries .IP /tmp/ar.* 16
temporaries
.SH "SEE ALSO" .SH "SEE ALSO"
led(6), arch(5), led(6), arch(5)
.SH BUGS .SH BUGS
If the same file is mentioned twice in an argument list, If the same file is mentioned twice in an argument list,
it may be put in the archive twice. it may be put in the archive twice.

View file

@ -1,4 +1,4 @@
.TH "ACK.OUT" 5 "$Revision$" .TH "ACK.OUT" 5 2017-01-18
.ad .ad
.SH NAME .SH NAME
ack.out\ \-\ ACK-assembler and link editor output ack.out\ \-\ ACK-assembler and link editor output
@ -55,7 +55,9 @@ struct outhead {
}; };
.fi .fi
.PP .PP
.nf
#define HF_LINK 0x0004 /* unresolved references left */ #define HF_LINK 0x0004 /* unresolved references left */
.fi
.PP .PP
The fields of this structure have the following purpose: The fields of this structure have the following purpose:
.nr x \w'oh_magic\ \ \ 'u .nr x \w'oh_magic\ \ \ 'u
@ -131,9 +133,10 @@ in tact.
.br .br
The next part of an object file contains the sections themselves. The next part of an object file contains the sections themselves.
Usually, the LED program places the sections right behind one another in the Usually, the LED program places the sections right behind one another in the
target machine, taking the target machine, taking the alignment requirements into account.
alignment requirements into account. However, the user is allowed to give However, the user is allowed to give
the start addresses of each section. But if the user gave a start address for the start addresses of each section.
But if the user gave a start address for
say section 2, but not for section 3, section 3 will be put say section 2, but not for section 3, section 3 will be put
right behind section 2. right behind section 2.
.PP .PP
@ -194,13 +197,16 @@ The fields of this structure have the following purpose:
Contains several flags: One of RELO1, RELO2 and RELO4 is set, indicating the Contains several flags: One of RELO1, RELO2 and RELO4 is set, indicating the
size of the relocatable datum, RELPC is set when the datum is size of the relocatable datum, RELPC is set when the datum is
relocated pc relative, RELBR and RELWR indicate byte and word order of relocated pc relative, RELBR and RELWR indicate byte and word order of
the relocatable datum. RELBR and RELWR are needed here. It is not sufficient the relocatable datum.
RELBR and RELWR are needed here.
It is not sufficient
to have flags for them in the header of the object file, because some to have flags for them in the header of the object file, because some
machines (NS 32016) use several of the possible combinations in their machines (NS 32016) use several of the possible combinations in their
instruction encoding. instruction encoding.
.IP or_sect \nxu .IP or_sect \nxu
Contains the section number of the referenc\fIing\fR section. This is a number Contains the section number of the referenc\fIing\fR section.
that lies between S_MIN and S_MAX. The section indicated with number S_MIN This is a number that lies between S_MIN and S_MAX.
The section indicated with number S_MIN
is the first section in the sections-section, etc. is the first section in the sections-section, etc.
.IP or_addr \nxu .IP or_addr \nxu
Contains the address of the relocatable datum, in the form of an Contains the address of the relocatable datum, in the form of an
@ -209,10 +215,12 @@ offset from the base of the section indicated in the \fIor_sect\fR field.
Usually contains the index of the referenced symbol in the symbol table, Usually contains the index of the referenced symbol in the symbol table,
starting at 0. starting at 0.
In this case, the reference is to an undefined external symbol, a common In this case, the reference is to an undefined external symbol, a common
symbol, or a section name. The relocatable datum then contains symbol, or a section name.
The relocatable datum then contains
an offset from the indicated symbol or the start of the indicated section. an offset from the indicated symbol or the start of the indicated section.
It may, however, also have the same value as It may, however, also have the same value as
the \fIoh_nname\fR field of the header. In this case the relocatable datum the \fIoh_nname\fR field of the header.
In this case the relocatable datum
is an absolute number, and the datum is relocated pc relative. is an absolute number, and the datum is relocated pc relative.
The relocatable datum must then be relocated with respect to the The relocatable datum must then be relocated with respect to the
base address of its section. base address of its section.
@ -250,12 +258,13 @@ struct outname {
.PP .PP
The members of this structure have the following purpose: The members of this structure have the following purpose:
.IP on_foff \nxu .IP on_foff \nxu
Contains the offset of the name from the beginning of the file. The name Contains the offset of the name from the beginning of the file.
extends from the offset to the next null byte. The name extends from the offset to the next null byte.
.IP on_type \nxu .IP on_type \nxu
The S_TYP field of this member contains the section number of the symbol. The S_TYP field of this member contains the section number of the symbol.
Here, this number may be S_ABS for an absolute item, or S_UND, for an Here, this number may be S_ABS for an absolute item, or S_UND, for an
undefined item. The S_EXT flag is set in this member if the symbol is external. undefined item.
The S_EXT flag is set in this member if the symbol is external.
The S_ETC field has the following flags: The S_ETC field has the following flags:
S_SCT is set if the symbol represents a section name, S_SCT is set if the symbol represents a section name,
S_COM is set if the symbol represents a common name, S_COM is set if the symbol represents a common name,
@ -265,15 +274,16 @@ and S_MOD is set if the symbol refers to an assembler source file item.
.IP on_desc \nxu .IP on_desc \nxu
Currently not used. Currently not used.
.IP on_valu \nxu .IP on_valu \nxu
Is not used if the symbol refers to an undefined item. For absolute items Is not used if the symbol refers to an undefined item.
For absolute items
it contains the value, for common names it contains the size, and it contains the value, for common names it contains the size, and
for anything else it contains the offset from the beginning of the section. for anything else it contains the offset from the beginning of the section.
In a fully linked binary, the beginning of the section is added. In a fully linked binary, the beginning of the section is added.
.PP .PP
.B The string area. .B The string area.
.br .br
The last part of an object file contains the name list. This is just a The last part of an object file contains the name list.
sequence of null-terminated strings. This is just a sequence of null-terminated strings.
.PP .PP
The relocation information, the symbol table, and the name list do not The relocation information, the symbol table, and the name list do not
have to be present, but then of course we do not have a relocatable have to be present, but then of course we do not have a relocatable
@ -283,7 +293,6 @@ object file.
.br .br
The following miscellaneous defines might come in handy when reading The following miscellaneous defines might come in handy when reading
object files: object files:
.fi
.PP .PP
.nf .nf
/* /*

View file

@ -1,4 +1,4 @@
.TH LED 6 "$Revision$" .TH LED 6 2017-01-18
.ad .ad
.SH NAME .SH NAME
led \- link editor led \- link editor
@ -104,7 +104,8 @@ at load time. This flag disables the \fB\-r\fP flag.
.TP .TP
.B \-n .B \-n
Usually, after linking, a value in the namelist represents an absolute Usually, after linking, a value in the namelist represents an absolute
address. Sometimes, particularly when using the \fB\-c\fR flag, it may be address.
Sometimes, particularly when using the \fB\-c\fR flag, it may be
useful to have as value the offset with respect to the beginning of the useful to have as value the offset with respect to the beginning of the
corresponding section. The \fB\-n\fR flag enables this. corresponding section. The \fB\-n\fR flag enables this.
.TP .TP
@ -129,9 +130,12 @@ chose to link it (which unresolved reference it resolves).
This option is useful in resolving 'multiply defined' problems. This option is useful in resolving 'multiply defined' problems.
.SH FILES .SH FILES
~em/lib.bin/em_led ~em/lib.bin/em_led
a.out output file .PD 0
.IP a.out 24n
output file
.PD
.SH "SEE ALSO" .SH "SEE ALSO"
ack(1) ack(1),
arch(1) arch(1),
ack.out.h(5) ack.out.h(5),
uni_ass(6) uni_ass(6)

View file

@ -1,5 +1,4 @@
.\" $Id$ .TH EM_DECODE 6 2017-01-18
.TH EM_DECODE 6 "$Revision$"
.ad .ad
.SH NAME .SH NAME
em_decode, em_encode \- compact to readable EM and v.v. em_decode, em_encode \- compact to readable EM and v.v.

View file

@ -1,4 +1,4 @@
.TH ESIZE I .TH ESIZE 1 2017-01-18
.SH NAME .SH NAME
esize \- print info from e.out header esize \- print info from e.out header
.SH SYNOPSIS .SH SYNOPSIS
@ -9,7 +9,8 @@ esize \- print info from e.out header
prints information from the prints information from the
.I e.out .I e.out
headers of the indicated files, including flags, word and pointer sizes, headers of the indicated files, including flags, word and pointer sizes,
text and data sizes, etc. All values are in decimal. text and data sizes, etc.
All values are in decimal.
.PP .PP
If no parameters are given, the header of If no parameters are given, the header of
.I e.out .I e.out

View file

@ -1,11 +1,10 @@
.\" $Id$ .TH EM_OPT 6 2017-01-18
.TH EM_OPT 6 "$Revision$"
.ad .ad
.SH NAME .SH NAME
em_opt \- EM peephole optimizer em_opt \- EM peephole optimizer
.SH SYNOPSIS .SH SYNOPSIS
.B ~em/lib.bin/em_opt .B ~em/lib.bin/em_opt
[-Ln] [-m[l]<num>] [ argument ] [\-Ln] [\-m[l]<num>] [ argument ]
.SH DESCRIPTION .SH DESCRIPTION
Em_opt reads a compact EM-program, argument or standard input, Em_opt reads a compact EM-program, argument or standard input,
and produces another compact EM program on standard output and produces another compact EM program on standard output
@ -15,22 +14,22 @@ Some other functions are here that make this program mandatory
before running a codegenerator, before running a codegenerator,
it may be left out when interpretation is wanted. it may be left out when interpretation is wanted.
Flags recognized are: Flags recognized are:
.IP -L .IP \-L
Make a library module. Make a library module.
This means that the output will start with a message giving This means that the output will start with a message giving
the names of all exported entities in this module. the names of all exported entities in this module.
.IP -n .IP \-n
Do not optimize. Do not optimize.
No peephole optimizations will be performed, No peephole optimizations will be performed,
other functions will be carried out. other functions will be carried out.
.IP -m<num> .IP \-m<num>
Try to replace multiplies with constants by combinations of shifts and adds, Try to replace multiplies with constants by combinations of shifts and adds,
but no more than <num> of them. Integer overflow detection is lost with this but no more than <num> of them.
option. Integer overflow detection is lost with this option.
.IP -ml<num> .IP \-ml<num>
Like -m<num>, but also for long multiplies. Like \-m<num>, but also for long multiplies.
.SH "FILES" .SH "FILES"
/tmp/emopt??????, is used when the -L flag is given only. /tmp/emopt??????, is used when the \-L flag is given only.
.SH "SEE ALSO" .SH "SEE ALSO"
ack(1) ack(1)
.PD 0 .PD 0