Initial Commit
This commit is contained in:
179
man1/wdc816as.1
Normal file
179
man1/wdc816as.1
Normal file
@@ -0,0 +1,179 @@
|
||||
.Dd December 29, 2016
|
||||
.Dt WDC816AS 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdc816as ,
|
||||
.Nm wdc02as
|
||||
.Nd WDC assembler
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl GSL1
|
||||
.Op Fl I Ar path
|
||||
.Op Fl D Ar symbol Ns Op = Ns Ar value
|
||||
.Op Fl O Ar outfile
|
||||
.Ar sourcefile
|
||||
.Sh DESCRIPTION
|
||||
The WDC macro assembler,
|
||||
.Nm ,
|
||||
provides all the tools and facilities to do professional assembly language
|
||||
program development.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl 1
|
||||
Version 1.0 of the assembler used slightly different control characters. In
|
||||
particular, the macro concatenation character
|
||||
.Ql |
|
||||
was changed to
|
||||
.Ql @ ,
|
||||
the bit-wise inclusive OR character
|
||||
.Ql ^
|
||||
was changed to
|
||||
.Ql | ,
|
||||
and the bit-wise exclusive OR character
|
||||
.Ql ^
|
||||
was added. This option changes the characters back to the 1.0 versions
|
||||
for compatibility.
|
||||
.It Fl D
|
||||
This option is used to define an absolute symbol at run time. The symbol
|
||||
can then be used in conditional statements to change the code generated.
|
||||
The symbol can be followed with an equal sign and an absolute decimal
|
||||
value. If no value is specified, then the symbol is given the value one.
|
||||
For example the following command line:
|
||||
.Pp
|
||||
.Dl Nm Fl D Ns Ar COUNT=3 Fl D Ns Ar DEBUG Ar FILE.ASM
|
||||
.Pp
|
||||
will set the absolute symbol COUNT to the value 3 and the symbol DEBUG to
|
||||
the value 1. Specifying these options is equivalent to the following
|
||||
statements appearing at the beginning of the source file:
|
||||
.Pp
|
||||
.Bd -literal -offset indent
|
||||
COUNT GEQU 3
|
||||
DEBUG GEQU 1
|
||||
.Ed
|
||||
.It Fl G
|
||||
The assembler and linker can now produce source level debugging information
|
||||
for programs. When this option is specified, the assembler will generate
|
||||
special object file records which indicate the number of bytes generated
|
||||
for each source line in the file. Information is also generated to
|
||||
determine the source file containing the source line. This option will
|
||||
increase the size of object modules generated by the assembler. The
|
||||
.Li INCDEBUG
|
||||
directive can be used to control the generation of source information
|
||||
for included files. The
|
||||
.Fl G
|
||||
option creates the
|
||||
.Pa .bin
|
||||
file used with the WDC Debugger
|
||||
.Nm ( WDCDB.EXE )
|
||||
and the
|
||||
.Pa WDCDB.INI
|
||||
files.
|
||||
.It Fl I
|
||||
When the assembler encounters an
|
||||
.Li INCLUDE
|
||||
or
|
||||
.Li APPEND
|
||||
directive, the assembler looks in specific directories in a specific
|
||||
order for the named file. First, the current directory is checked. Next,
|
||||
any directories that have been specified using the
|
||||
.Fl I
|
||||
option will be searched. Finally, if an environment variable called
|
||||
.Ev WDC_INC_65816
|
||||
or
|
||||
.Ev WDC_INC_6502
|
||||
has been defined, then any directories specified in that variable
|
||||
will be searched.
|
||||
.Pp
|
||||
For example, if one of the following lines is in the
|
||||
.Pa AUTOEXEC.BAT
|
||||
file:
|
||||
.Pp
|
||||
.Bd -literal -offset indent
|
||||
SET WDC_INC_65816=C:\eWDC\eINCLUDE;C:\eWDC\eMACROS
|
||||
SET WDC_INC_6502=C:\eWDC\eINCLUDE;C:\eWDC\eMACROS
|
||||
.Ed
|
||||
.Pp
|
||||
then, the command:
|
||||
.Pp
|
||||
.Dl Nm Fl I Ar C:\eMYINC Ar PROG
|
||||
.Pp
|
||||
will assemble the file
|
||||
.Ar PROG.ASM .
|
||||
If the file contains any
|
||||
.Li INCLUDE
|
||||
or
|
||||
.Li APPEND
|
||||
directives, then the assembler will look for the specified file in this order:
|
||||
.Pp
|
||||
.Bd -literal -offset indent
|
||||
current directory
|
||||
C:\eMYINC
|
||||
C:\eWDC\eINCLUDE
|
||||
C:\eWDC\eMACROS
|
||||
.Ed
|
||||
.It Fl K
|
||||
This option causes the path name specifying the name of the listing file to
|
||||
be placed in the reserved word
|
||||
.Dv __FILE__ .
|
||||
.It Fl L
|
||||
This option instructs the assembler to generate a listing file that will
|
||||
have the same root name as the output name and an extension of
|
||||
.Pa .LST .
|
||||
The format and output control of the listing file are controlled by
|
||||
assembler directives within the source file.
|
||||
.It Fl O
|
||||
This option is used to specify the name of the output file. Normally, the
|
||||
output file has the same root name as the source file, and the extension is
|
||||
changed to
|
||||
.Pa .OBJ .
|
||||
For example, the command:
|
||||
.Pp
|
||||
.Dl Nm Ar MYPROG.ASM
|
||||
.Pp
|
||||
will generate an output file called
|
||||
.Ar MYPROG.OBJ .
|
||||
If the
|
||||
.Fl O
|
||||
option is used, the output file name can be specified directly. For example:
|
||||
.Pp
|
||||
.Dl Nm Fl O Ar JUNK.REL Ar MYPROG.ASM
|
||||
.Pp
|
||||
will place the same output into a file called
|
||||
.Ar JUNK.REL .
|
||||
.It Fl S
|
||||
Normally, labels that aren't declared global are not placed in the object
|
||||
module since the assembler resolves all references to them. If the
|
||||
.Fl S
|
||||
option is specified, the symbols are included in the object file so that
|
||||
the linker may pass them on to a symbol file that can be used when
|
||||
debugging.
|
||||
.It Fl V
|
||||
This is the Verbose option. This option displays the amount of
|
||||
RAM needed to assemble the program.
|
||||
.It Fl W
|
||||
This option causes a change in the default page width to 132, creating
|
||||
a wide listing.
|
||||
.El
|
||||
.Sh ENVIRONMENT
|
||||
The following environment variables affect the execution of
|
||||
.Nm :
|
||||
.Bl -tag -width indent
|
||||
.It Ev WDC_INC_65816 , WDC_INC_6502
|
||||
A semi-colon separated list of directories to search if an
|
||||
input file cannot be found in the current directory or in any
|
||||
directories specified via the
|
||||
.Fl I
|
||||
flag.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.\" .Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.\" .Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.Xr wdcln 1 ,
|
||||
.Xr wdclib 1 ,
|
||||
.Xr wdcobj 1 ,
|
||||
.Xr wdcsym 1
|
||||
129
man1/wdclib.1
Normal file
129
man1/wdclib.1
Normal file
@@ -0,0 +1,129 @@
|
||||
.Dd December 24, 2016
|
||||
.Dt WDCLIB 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdclib
|
||||
.Nd WDC librarian
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl F Ar argfile
|
||||
.Op Fl A | D | L | S | X
|
||||
.Ar library
|
||||
.Op Ar objfile ...
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
is a utility program that manipulates libraries of object modules.
|
||||
.Nm
|
||||
makes it possible to create a library of commonly used functions. This
|
||||
library can be very efficiently searched and any modules required by the
|
||||
program can be extracted from the library and placed in the output file.
|
||||
.Pp
|
||||
Since several object
|
||||
modules may be contained in the same original source file,
|
||||
.Nm
|
||||
keeps track of the name of the file that each module comes from.
|
||||
This allows all the modules associated with a file to be manipulated
|
||||
without tediously typing in the name of each module. Options may be
|
||||
specified individually or together.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl A
|
||||
This option tells
|
||||
.Nm
|
||||
to add the specified files to the library. The symbol dictionary is updated
|
||||
to include the names of symbols defined in the object modules in the files.
|
||||
If none of the options
|
||||
.Fl A , D ,
|
||||
or
|
||||
.Fl X
|
||||
are given, the default is to assume option
|
||||
.Fl A .
|
||||
To create a library from a set of object files, use the command:
|
||||
.Pp
|
||||
.Dl Nm Fl A Ar MYLIB.LIB Ar LIBSRC1.OBJ Ar LIBSRC2.OBJ Ar LIBSRC3.OBJ
|
||||
.Pp
|
||||
which will create a library file called
|
||||
.Ar MYLIB.LIB
|
||||
and add all the modules
|
||||
from the three object files. If
|
||||
.Ar MYLIB.LIB
|
||||
already existed, the modules
|
||||
from the three object files will be added to the library.
|
||||
.It Fl D
|
||||
The modules in the library that originally came from the named files are
|
||||
deleted from the library. Modules must be deleted before being replaced
|
||||
with new ones.
|
||||
.Pp
|
||||
The following example shows how to remove the modules associated with an
|
||||
object file.
|
||||
.Pp
|
||||
.Dl Nm Fl D Ar MYLIB.LIB Ar LIBSRC3.OBJ
|
||||
.Pp
|
||||
All of the modules associated with the file
|
||||
.Ar LIBSRC3.OBJ
|
||||
will be deleted from the library.
|
||||
.Pp
|
||||
This example shows how to replace a file in a library.
|
||||
.Pp
|
||||
.Dl Nm Fl D Ar MYLIB.LIB Ar LIBSRC2.OBJ
|
||||
.Dl Nm Fl A Ar MYLIB.LIB Ar LIBSRC2.OBJ
|
||||
.Pp
|
||||
The modules associated with
|
||||
.Ar LIBSRC2.OBJ
|
||||
will first be deleted from the library and then added from the new version
|
||||
of the file. The following options display information about the library
|
||||
file after the modification arguments, if any, have been processed.
|
||||
.It Fl F
|
||||
This option must be followed by the name of a text file. The file will be
|
||||
read and arguments will be extracted from the file. When the end of file
|
||||
is reached, additional arguments are again extracted from the command
|
||||
line. This allows more object modules than will fit on the standard command
|
||||
line to be processed at one time.
|
||||
.Pp
|
||||
For example, these commands add all files with a
|
||||
.Ar .OBJ
|
||||
extension to the library.
|
||||
.Pp
|
||||
.Dl Nm DIR Ar *.OBJ > Pa OBJLIST
|
||||
.Dl Nm Fl A Ar MYLIB.LIB Fl F Ar OBJLIST
|
||||
.It Fl L
|
||||
This option causes a list of the files in the library to be printed.
|
||||
Associated with each file name is a file number. This number will also
|
||||
appear in the symbol listing which indicates which file contains the
|
||||
module that defines that symbol. This command will display the names
|
||||
of all files added to a library.
|
||||
.Pp
|
||||
.Dl Nm Fl L Ar MYLIB.LIB
|
||||
.Pp
|
||||
This command adds two files to the library.
|
||||
.Pp
|
||||
.Dl Nm Fl AL Ar MYLIB.LIB Ar LIBSRC1.OBJ Ar LIBSRC2.OBJ
|
||||
.Pp
|
||||
After the files are added, a list of all the files in the library will
|
||||
be printed.
|
||||
.It Fl S
|
||||
This option causes the dictionary of symbols contained in the library to
|
||||
be printed. The dictionary is printed in alphabetical order. The number
|
||||
of the file that defined the symbol along with the offset into the
|
||||
library of the module that defined it are printed beside the symbol name.
|
||||
.It Fl X
|
||||
The modules in the library that originally came from the named files
|
||||
are extracted from the library and placed into files with the same
|
||||
name. After extraction, the modules in the library are deleted.
|
||||
.Pp
|
||||
The following example extracts two files from a library.
|
||||
.Pp
|
||||
.Dl Nm Fl X Ar MYLIB.LIB Ar LIBSRC3.OBJ Ar LIBSRC1.OBJ
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.Xr wdcln 1 ,
|
||||
.\" .Xr wdclib 1 ,
|
||||
.Xr wdcobj 1 ,
|
||||
.Xr wdcsym 1
|
||||
405
man1/wdcln.1
Normal file
405
man1/wdcln.1
Normal file
@@ -0,0 +1,405 @@
|
||||
.Dd December 28, 2016
|
||||
.Dt WDCLN 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdclib
|
||||
.Nd WDC linker
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl BEGNQTVWX
|
||||
.Op Fl Hxx
|
||||
.Op Fl Mxx
|
||||
.Op Fl Sxx
|
||||
.Op Fl O Ar output
|
||||
.Op Fl Zsec=XX,XX
|
||||
.Op Fl Asec=XX,XX
|
||||
.Op Fl C=XX,XX
|
||||
.Op Fl D=XX,XX
|
||||
.Op Fl K=XX,XX
|
||||
.Op Fl U=XX,XX
|
||||
.Op Fl F Ar argfile
|
||||
.Op Fl L Ar library
|
||||
.Op Ar objfile ...
|
||||
.Sh DESCRIPTION
|
||||
The WDC linker,
|
||||
.Nm ,
|
||||
reads one or more object files and/or libraries and merges them into a
|
||||
singleoutput file. References from one module to another are resolved
|
||||
during the link. The linker operates in two passes. In the first pass,
|
||||
each object module is scanned to determine what symbols are defined and
|
||||
what symbols are referenced. Symbols that are defined are entered into a
|
||||
symbol table. When other object modules want the address of a symbol they
|
||||
will look in the symbol table. If the symbol is not in the symbol table
|
||||
it is added to a list of undefined symbols. If a later module defines the
|
||||
symbol it is removed from the undefined list. If a library is encountered,
|
||||
it's dictionary is repeatedly scanned for any symbols that match any of
|
||||
the symbols in the undefined list. If such a symbol is found, the module
|
||||
that defines it is loaded from the library and its symbols are handled
|
||||
just like a normal object module. Through this process, only object modules
|
||||
that are needed are loaded from the library. Libraries are usually placed
|
||||
at the end of the list of object files. At the end of the first pass, all
|
||||
undefined symbol references should be resolved. During the second pass,
|
||||
the linker reads each object module a second time. As it reads each
|
||||
module, it generates the final output file based on the information in
|
||||
the object module.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl A
|
||||
This option is used to specify the relocation and ROM address of the named
|
||||
section. The option is followed by information in the following format:
|
||||
.Pp
|
||||
.Dl Fl A Ns Ar section Ns = Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
where section is the name of the section to be located. The section name
|
||||
is followed by an
|
||||
.Ql =
|
||||
sign which in turn is followed by the relocation
|
||||
address and ROM address separated by a comma. All addresses are assumed
|
||||
to be hexadecimal numbers. If the comma and ROM address are not present,
|
||||
it is assumed that the relocation address will be used for the ROM address
|
||||
as well. If the comma is present and either the relocation address or
|
||||
the ROM address is missing, then the specified address is assumed to be
|
||||
the end of the previously specified section.
|
||||
.It Fl B
|
||||
This option is used to create a file with the same root name as the output
|
||||
file and with the extension
|
||||
.Pa .BNK .
|
||||
This file is similar to the map file and contains bank information.
|
||||
.It Fl C
|
||||
This option is used to specify the relocation address and the ROM address
|
||||
of the predefined CODE section. The format is:
|
||||
.Pp
|
||||
.Dl Fl C Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
which is similar to the
|
||||
.Fl A
|
||||
option without the section name.
|
||||
.It Fl D
|
||||
This option is used to specify the relocation address and the ROM address
|
||||
of the predefined DATA section. The format is:
|
||||
.Pp
|
||||
.Dl Fl D Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
which is similar to the
|
||||
.Fl A
|
||||
option without the section name.
|
||||
.It Fl E
|
||||
This option is used to create a file with the same root name as the output
|
||||
file and with the extension
|
||||
.Pa .ERR .
|
||||
This file contains any warnings or error messages generated during the link.
|
||||
.It Fl F
|
||||
This option causes the linker to continue reading options and file names
|
||||
from a file. When done, it then continues reading arguments from the command
|
||||
line. The name of the file follows the option
|
||||
.Fl F .
|
||||
Lines beginning with a
|
||||
.Ql #
|
||||
character are ignored. For example, the following
|
||||
command links
|
||||
.Pa PROG.OBJ
|
||||
with
|
||||
.Pa SUB1.OBJ , ... , SUB4.OBJ ,
|
||||
and
|
||||
.Pa TC.LIB .
|
||||
It reads some arguments from the file
|
||||
.Pa PROG.LNK :
|
||||
.Pp
|
||||
.Dl Nm Pa PROG.OBJ Fl F Ar PROG.LNK Pa TC.LIB
|
||||
.Pp
|
||||
where
|
||||
.Pa PROG.LNK
|
||||
contains:
|
||||
.Bd -literal -offset indent
|
||||
-O PROG.OUT
|
||||
SUB1.OBJ
|
||||
SUB2.OBJ
|
||||
SUB3.OBJ
|
||||
SUB4.OBJ
|
||||
.Ed
|
||||
.Pp
|
||||
.Em WARNING:
|
||||
There is a limit of 5000 files for the source level information
|
||||
contained in reading file names from a file (Include files are counted
|
||||
in this total).
|
||||
.It Fl G
|
||||
This option tell the linker to generate source level information. When
|
||||
specified by itself with no additional symbol style option, the WDC symbol
|
||||
file format is generated. Otherwise, if the
|
||||
.Fl SN
|
||||
Extended MicroTek symbol format option is specified, the source information
|
||||
is added as special records.
|
||||
.It Fl H
|
||||
This option is used to select the format of the hex output file. Four formats
|
||||
are currently supported. The following table shows the name of the format,
|
||||
the option used to generate it, address field size.
|
||||
.Pp
|
||||
.Bl -column "Option" "File" "Size" "Format"
|
||||
.It Sy "Option" Ta Sy "File" Ta Sy "Size" Ta Sy "Format"
|
||||
.It Fl HB Ta Pa .BIN Ta -- Ta Straight Binary
|
||||
.It Fl HI Ta Pa .HEX Ta 16 Ta Intel Hex
|
||||
.It Fl HIE Ta Pa .HEX Ta 32 Ta Extended Intel Hex
|
||||
.It Fl HM19 Ta Pa .S19 Ta 16 Ta Motorola S19
|
||||
.It Fl HM28 Ta Pa .S28 Ta 24 Ta Motorola S28
|
||||
.It Fl HM37 Ta Pa .S37 Ta 32 Ta Motorola S37
|
||||
.It Fl HN Ta Pa .ISX Ta 24 Ta Nintendo Binary
|
||||
.It Fl HT Ta Pa .TEK Ta 16 Ta Tektronix Hex
|
||||
.It Fl HZ Ta Pa .BIN Ta 24 Ta WDC Binary
|
||||
.El
|
||||
.Pp
|
||||
The following binary format is generated if
|
||||
.Fl HZ
|
||||
is specified to the linker:
|
||||
.Pp
|
||||
.Bl -inset -compact -offset indent
|
||||
.It Initial byte 'Z' as signature.
|
||||
.El
|
||||
Then for each block:
|
||||
.Bl -inset -compact -offset indent
|
||||
.It 3 byte address
|
||||
.It 3 byte length length bytes of data
|
||||
.It The final block has an address and length of 0.
|
||||
.It The default is Motorola S19.
|
||||
.El
|
||||
.It Fl J
|
||||
This option causes the module info to be placed in alphabetical order.
|
||||
By default, module info is sorted by section.
|
||||
.It Fl K
|
||||
This option is used to specify the relocation address and the ROM address
|
||||
of the predefined KDATA section. The format is:
|
||||
.Pp
|
||||
.Dl Fl K Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
which is similar to the
|
||||
.Fl A
|
||||
option without the section name.
|
||||
.It Fl L
|
||||
This option takes the following characters and adds
|
||||
.Pa .LIB
|
||||
to form the name of the library. The default library directories specified
|
||||
in the
|
||||
.Ev WDC_LIB
|
||||
environment variable are then searched for the fully defined file name.
|
||||
.Pp
|
||||
For example, the command:
|
||||
.Pp
|
||||
.Dl Nm Fl J Fl L Ns Ar CL
|
||||
.Pp
|
||||
will look for the file
|
||||
.Pa CL.LIB .
|
||||
.Pp
|
||||
.Em Note:
|
||||
The order of the libraries is important! The linker will pull in the
|
||||
functions it needs from the
|
||||
.Em first
|
||||
library it sees. For example,
|
||||
the following command:
|
||||
.Pp
|
||||
.Dl Nm Pa Sample.obj Fl L Ns Ar MS Fl L Ns Ar CS
|
||||
.Pp
|
||||
will pull in the
|
||||
.Fn scanf
|
||||
and
|
||||
.Fn printf
|
||||
functions from the floating point library as it is specified first. This
|
||||
will result in larger code size! Therefore, If you are using floating
|
||||
point math, put
|
||||
.Fl L Ns Ar MS
|
||||
before
|
||||
.Fl L Ns Ar CS
|
||||
so the proper functions are included.
|
||||
.Pp
|
||||
If you are NOT using floating point math, do not include
|
||||
.Fl L Ns Ar MS
|
||||
on the command line, or put it after
|
||||
.Fl L Ns Ar CS
|
||||
.Pp
|
||||
.Em Note:
|
||||
For the W65C02, use
|
||||
.Pa c.lib
|
||||
and/or
|
||||
.Pa m.lib .
|
||||
For the W65C816, use
|
||||
.Pa coc.lib , col.lib , com.lib , ms.lib , mm.lib , mc.lib , ml.lib ,
|
||||
.Pa cs.lib , cm.lib , cc.lib ,
|
||||
and/or
|
||||
.Pa cl.lib.
|
||||
.It Fl M
|
||||
This option is used to select a special machine mode. Currently, the only
|
||||
available machine modes are
|
||||
.Fl MN , MN80 ,
|
||||
and
|
||||
.Fl MN21
|
||||
which stand for Nintendo, slow and fast, and Nintendo Mode 21 respectively.
|
||||
.It Fl N
|
||||
If this option is specified, the linker will not place any symbols defined
|
||||
in a
|
||||
.Pa .QCK
|
||||
file into the symbol file. This is useful if the
|
||||
.Pa .QCK
|
||||
file is created from a large amount of data whose symbols are not required
|
||||
after linking. The symbol file can be significantly smaller if the data
|
||||
symbols are discarded.
|
||||
.It Fl O
|
||||
Option
|
||||
.Fl O
|
||||
can be used to specify the name of the file to which the linker is to
|
||||
write the executable program. The name of this file is in the parameter
|
||||
that follows
|
||||
.Fl O .
|
||||
For example, the following command writes the executable program to the
|
||||
file
|
||||
.Pa PROG.OUT :
|
||||
.Pp
|
||||
.Dl Nm Fl O Ar PROG.OUT Pa PROG.OBJ Pa TC.LIB
|
||||
.Pp
|
||||
If this option is not used, the linker derives the name of the executable
|
||||
file from that of the first input file with the extension changed to
|
||||
reflect the type of hex file being generated.
|
||||
.It Fl P
|
||||
This option sets the fill characters in the hex output file. The default,
|
||||
(no
|
||||
.Fl P Ns No ),
|
||||
does not add any fill characters to the hex output file. If this option is
|
||||
specified as
|
||||
.Fl PFF ,
|
||||
it will fill in the blank areas of the hex output file with
|
||||
.Li $FF Ns \(aqs
|
||||
(all 1\(aqs). If this option is specified as
|
||||
.Fl P00 ,
|
||||
it will fill in the blank areas of the hex output file with zeros (0\(aqs).
|
||||
.It Fl Q
|
||||
As the linker reads files and modules, it displays the name of each module.
|
||||
Each subsequent module name overwrites the preceding name. This option
|
||||
tells the linker not to display module names.
|
||||
.\"
|
||||
.\" -S
|
||||
.\"
|
||||
.It Fl S
|
||||
This option controls the generation of symbol file information. By default,
|
||||
no symbol file is generated. When this option is specified, a symbol file
|
||||
is generated which can be used to aid in debugging the application.
|
||||
.Pp
|
||||
The following table shows the options and the formats generated.
|
||||
.Pp
|
||||
.Bl -column "Option" "Format"
|
||||
.It Sy "Option" Ta Sy "Format"
|
||||
.It Fl S2 Ta 2500AD symbol format
|
||||
.It Fl SM Ta MicroTek symbol format
|
||||
.It Fl SN Ta Extended MicroTek symbol format
|
||||
.It Fl SQ Ta Quick link object file
|
||||
.It Fl SZ Ta WDC symbol format
|
||||
.El
|
||||
.Pp
|
||||
The linker supports an extension to the Extended MicroTek symbol file format.
|
||||
.Pp
|
||||
The linker generates the following additional symbol records if the
|
||||
.Fl G
|
||||
(source level info) option and
|
||||
.Fl SN
|
||||
options have been selected.
|
||||
.Pp
|
||||
.Bl -tag -width indent -compact
|
||||
.It 0-9
|
||||
Standard MicroTek symbol type - global symbols
|
||||
.It 50-59
|
||||
Standard MicroTek symbol type - local symbols
|
||||
.It 101
|
||||
Single character name that is the status Register as specified by
|
||||
LONGA/LONGI
|
||||
directives. In other words, if
|
||||
LONGA ON
|
||||
is specified a 101 record will be generated with a
|
||||
$20 as the ps value.
|
||||
.It 102
|
||||
A two character name (low,high) that is the line number associated
|
||||
with this address.
|
||||
.It 103
|
||||
The name is the source file name associated with the object module.
|
||||
.It 120+N
|
||||
A zero length name with the address being the starting address for
|
||||
section N. Section 1 is CODE, section 2 is DATA, section 3 is UDATA.
|
||||
Other sections can probably be ignored unless you want to handle them.
|
||||
.It 150+N
|
||||
A zero length name with the address being the ending address for section N.
|
||||
.El
|
||||
.\"
|
||||
.\" -T
|
||||
.\"
|
||||
.It Fl T
|
||||
This option instructs the linker to generate a text map file with the
|
||||
extension
|
||||
.Pa .MAP .
|
||||
The final address of each symbol is listed.
|
||||
.It Fl U
|
||||
This option is used to specify the relocation address and the ROM address
|
||||
of the predefined UDATA section. The format is:
|
||||
.Pp
|
||||
.Dl Fl U Ns Op Ad XXXX Ns Op , Ns Ad XXXX
|
||||
.Pp
|
||||
which is similar to the
|
||||
.Fl A
|
||||
option without the section name. The UDATA section is a little different
|
||||
since it never needs to be in the ROM at all since it contains
|
||||
uninitialized data.
|
||||
.Fl V
|
||||
This option displays additional information to the screen giving the names
|
||||
of variables and their locations.
|
||||
.It Fl W
|
||||
This option disables warnings from the linker. The linker will warn if a
|
||||
symbol defined in a program module overrides a symbol defined in a library
|
||||
module. This warning is useful for preventing hard to track down errors
|
||||
such as when the user defines a routine called write that overrides the
|
||||
library write routine.
|
||||
.Pp
|
||||
.Em Note:
|
||||
This option not used after V3.10
|
||||
.It Fl X
|
||||
This option directs the linker to use EMM memory mapping to provide
|
||||
additional space for linking programs with large numbers of symbols. It
|
||||
must be the first option specified.
|
||||
.\" -Z
|
||||
.It Fl Z
|
||||
This option is used to specify the top and bottom address to use when
|
||||
spreading the indicated section of various modules across multiple
|
||||
banks of memory. The format is:
|
||||
.Pp
|
||||
.Dl Fl Z Ns Ar section Ns = Ns Op Cm bottom Ns Op , Ns Cm top
|
||||
.Pp
|
||||
The section specified by
|
||||
.Ar section
|
||||
will be marked for spreading. The default bottom is
|
||||
.Ad 0000
|
||||
and the default top is
|
||||
.Ad $1:0000 .
|
||||
If no bottom or top is specified, the default is used. The first byte of
|
||||
the section is specified using the ROM and relative org directives.
|
||||
.Pp
|
||||
The sub-options for
|
||||
.Fl Z
|
||||
are:
|
||||
.Fl Z Ns Ar section Ns = ,
|
||||
.Fl Z Ns Ar code Ns = ,
|
||||
and
|
||||
.Fl Z Ns Ar data Ns = .
|
||||
.El
|
||||
.Sh ENVIRONMENT
|
||||
The following environment variables affect the execution of
|
||||
.Nm :
|
||||
.Bl -tag -width indent
|
||||
.It Ev WDC_LIB
|
||||
A semi-colon separated list of directories to search if an
|
||||
input file cannot be found in the current directory.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.\" .Xr wdcln 1 ,
|
||||
.Xr wdclib 1 ,
|
||||
.Xr wdcobj 1 ,
|
||||
.Xr wdcsym 1
|
||||
77
man1/wdcobj.1
Normal file
77
man1/wdcobj.1
Normal file
@@ -0,0 +1,77 @@
|
||||
.Dd December 28, 2016
|
||||
.Dt WDCOBJ 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdcobj
|
||||
.Nd Examine WDC object modules
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl DLRS
|
||||
.Ar objfile
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
utility provides a means to examine object modules created by the
|
||||
.Nm WDCxAS
|
||||
assembler.
|
||||
.Nm
|
||||
will print out the size and type of each section defined in the module, the
|
||||
names of all symbols defined or referenced by the object module, and if
|
||||
desired, each of the data records in the file. The
|
||||
.Nm
|
||||
utility is of limited usefulness to the typical programmer and is included
|
||||
for completeness. Options allow control of the information displayed.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl D
|
||||
This option causes display of any source debug information records present
|
||||
in the object module. The appropriate options must have been specified when
|
||||
compiling or assembling for debug information to be present. The default is
|
||||
to NOT display debug information.
|
||||
.It Fl L
|
||||
Normally, when the records are displayed, all the data in the record is
|
||||
displayed in hexadecimal format. When option
|
||||
.Fl L
|
||||
is specified, the data in the record is not displayed. This option is useful
|
||||
for examining the structure of a file without displaying all the individual
|
||||
data.
|
||||
.Pp
|
||||
To examine the individual records in an object module but without seeing all
|
||||
of the data bytes, use the command:
|
||||
.Pp
|
||||
.Dl Nm Fl L Ar PROG.OBJ
|
||||
.Pp
|
||||
.It Fl R
|
||||
This option causes display of each of the individual records in the object
|
||||
module. Information about the object file format is available on request.
|
||||
.Pp
|
||||
To examine the individual records in an object module, use the command:
|
||||
.Pp
|
||||
.Dl Nm Fl R Ar PROG.OBJ
|
||||
.Pp
|
||||
.It Fl S
|
||||
Normally, when
|
||||
.Nm
|
||||
is run, the information for the sections is followed by the symbol
|
||||
information. When the
|
||||
.Fl S
|
||||
option is specified, the symbol information is suppressed.
|
||||
.Pp
|
||||
The following command displays just the section names and types of all
|
||||
modules in the file
|
||||
.Ar PROG.OBJ :
|
||||
.Pp
|
||||
.Dl Nm Fl S Ar PROG.OBJ
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.Xr wdcln 1 ,
|
||||
.Xr wdclib 1 ,
|
||||
.\" .Xr wdcobj 1 ,
|
||||
.Xr wdcsym 1
|
||||
84
man1/wdcsym.1
Normal file
84
man1/wdcsym.1
Normal file
@@ -0,0 +1,84 @@
|
||||
.Dd December 28, 2016
|
||||
.Dt WDCSYM 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm wdcsym
|
||||
.Nd Examine WDC symbol tables
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl ALS
|
||||
.Ar symfile
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
utility provides a means to examine symbol files generated by the
|
||||
.Nm WDCLN linker.
|
||||
.Nm
|
||||
will print out the sections defined in the target program and if desired the
|
||||
line tables, symbol records, auxiliary records and global symbols.
|
||||
.Pp
|
||||
Note:This is only for
|
||||
.Em ZARDOZ
|
||||
symbol files. See the
|
||||
.Nm WDCLN
|
||||
manual and the
|
||||
.Fl G
|
||||
and
|
||||
.Fl HZ
|
||||
options.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width indent
|
||||
.It Fl A
|
||||
This option causes the display of the auxiliary table. This table contains
|
||||
typing information, array sizes and other information used in source level
|
||||
debugging. Only one table is present in the symbol file and is referenced
|
||||
by all sections and modules.
|
||||
.It Fl L
|
||||
This option causes the display of the line information data for each section
|
||||
in the symbol file.
|
||||
.It Fl S
|
||||
This option causes the display of all global symbol records in the symbol
|
||||
file. Normally, the global symbol records are suppressed.
|
||||
.Pp
|
||||
The following command displays the section information, and symbols for all
|
||||
sections and the global symbols as well.
|
||||
.Pp
|
||||
.Dl Nm Fl S Ar PROG.SYM
|
||||
.Pp
|
||||
.El
|
||||
The basic structure of the file is outlined as follows:
|
||||
.Bl -inset -compact -offset indent
|
||||
.It File Header
|
||||
.It Module 1 Information
|
||||
.Bl -inset -compact -offset indent
|
||||
.It Section 1 Information
|
||||
.It ...
|
||||
.It Section N Information
|
||||
.It Line Record Information
|
||||
.El
|
||||
.It Module 2 Information
|
||||
.Bl -inset -compact -offset indent
|
||||
.It ...
|
||||
.El
|
||||
.It Module N Information
|
||||
.Bl -inset -compact -offset indent
|
||||
.It ...
|
||||
.El
|
||||
.It Global Symbol Records
|
||||
.It String Table
|
||||
.It Auxiliary Record Table
|
||||
.It Source File Information
|
||||
.It End of file
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr wdc02as 1 ,
|
||||
.Xr wdc02cc 1 ,
|
||||
.Xr wdc02op 1 ,
|
||||
.Xr wdc816as 1 ,
|
||||
.Xr wdc816cc 1 ,
|
||||
.Xr wdc816op 1 ,
|
||||
.Xr wdcdb 1 ,
|
||||
.Xr wdcln 1 ,
|
||||
.\" .Xr wdclib 1 ,
|
||||
.Xr wdcobj 1
|
||||
.\" .Xr wdcsym 1
|
||||
Reference in New Issue
Block a user