home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 5
/
DATAFILE_PDCD5.iso
/
utilities
/
m
/
motorola
/
!AsRef
/
DOS
/
README_TXT
< prev
Wrap
Text File
|
1990-12-23
|
12KB
|
251 lines
Motorola's Freeware Assemblers
"Version 1.2"
Welcome to "Version 1.2" of Motorola's Freeware
Assemblers. I've put the version number in quotes because I'm
not certain that anyone's been keeping track... I consider the
correction and enhancements made by Bruce Olney as Version 1.1,
so I'm calling my contribution "Version 1.2". My contribution
consists of activation of the END directive, corrected forward
reference handling, allowance of long file or path names (MAC
users, this may help you), improved handling of multiple source
files, improved error detection and reporting (both input code
and assembler operation), allowance of a little more leeway in
operand syntax, and some miscellaneous changes.
This file contains a more detailed listing of the changes
mentioned above, as well as some corrections for another file
you'll want: ASREF.MAN. ASREF.MAN is the manual for the
freeware assemblers. Look for ASREF.ARC, which can be "de-
archived" with PKXARC to yield ASREF.MAN. The archive this file
came from contains the assemblers compiled and ready to run for
the IBM PC and compatibles (compiled with QuickC 2.0, compact
memory model, except ASHC5 was compiled with QuickC 2.5). If you
need the source code for the assemblers, look for FASRC1P2.ARC.
Hopefully, a generous MAC user will upload an archive of the
assemblers compiled for the MAC. I'll take the liberty of
suggesting the name FASMA1P2.ARC. The file ASEMBLER.DOC
(included in the archive you got this file from) contains a brief
rundown on the freeware assemblers for those acquainted with
Motorola's other development products. I have edited
ASEMBLER.DOC only a little; it does not include much of the
information presented here.
I have used good 68HCx05 code to test AS5, so it should be
nearly bug free. Since most of the code is common to all the
assemblers, the others should be in reasonably good shape but
are untested. If you discover bugs, please report them on
Motorola's Freeware BBS. If you wish to contact me about these
assemblers, I may be reached (in order of preference) on
Motorola's Freeware BBS (512) 891-3733
the JDR Microdevices BBS (408) 559-0253
or the Radio-Electronics BBS (516) 293-2283
Thank you to all who have worked on these assemblers
before me, and best wishes to all who use them. Just in case any
copyright worries should pop up, I hereby release to the public
domain this document and all of the changes and I have written
into these assemblers.
Greg Thoman
1990 December 24
THE END DIRECTIVE
Past versions of the assemblers ignored the END directive.
Now, END terminates assembly of the current source file without
affecting assembly of subsequent source files and lets you
specify your program's entry point. The syntax is:
[label] END [expression] [;comment]
where the brackets indicate optional items and are NOT included
in your code. The label follows the same rules as all other
labels: it must start in the first column, must begin with a
letter, an underscore, or a period, and may contain letters,
digits, underscores, periods, and dollar signs. The expression,
if used, sets your program's entry point. Thus, it will usually
be a program label; however, it can be any valid expression that
evaluates to the address you want.
Comments following the END directive should start with a
semicolon to prevent confusion in case there's no expression to
evaluate. The expression evaluator will probably find a comment
distasteful.
You may use the END directive at the end of each source
file in a group, and may use it more than once in the same file
(the first END will stop assembly of that file, so the assembler
will never see any later ENDs). If the assembler encounters END
with an expression more than once you'll get a warning if the
expressions evaluate to the same address. If the expressions
evaluate to different addresses, you'll get an error.
FORWARD REFERENCE HANDLING
The assemblers were deleting the forward reference file
before attempting to use it. "Version 1.2" deletes the forward
reference file after assembly is finished. This may reduce the
number of "phasing errors" you run into, but they'll still be
around.
LONG FILE OR PATH NAMES
The assemblers now attempt to use your C compiler's
definition of FILENAME_MAX to set the filename buffer size.
I believe this is an ANSI item and may not be defined on non-ANSI
compilers. If FILENAME_MAX is not defined by your compiler, the
assemblers will use their maximum buffer size (512 bytes in
"Version 1.2"). Thus, you should be able to use full path names
and work among subdirectories.
This may help MAC users who have had to run the assemblers
from the root "folder" of a floppy drive. Try it out!
MULTIPLE SOURCE FILES
The assembler now outputs the message " Assembling <file
name>", where <file name> is the name of the file about to be
assembled, as it begins assembly of each file in pass 2. If you
are having the assembler create a listing file, these messages
will break the listing file up so you can see which source file
is which.
Warnings and error messages now report the line number
within the source file where a problem was found instead of the
cumulative line number. This makes error correction easier. The
listing, cross reference, and symbol table use the cumulative
line number.
ERROR DETECTION AND REPORTING
Error and warning messages always give the name of the
source file where a problem was found.
Some error messages are now less cryptic, and error
messages always start with "Error".
Use of NUL as a character constant now generates an error
message.
The assemblers now count the number of warnings issued and
output it after assembly.
Warnings are output on both passes. If you're generating
a listing, it will start with a list of warning messages and each
suspect line will be accompanied by its warning message.
The assemblers now warn of over-length labels and error on
over-length mnemonics or directives.
Any unrecognized option on the command line is a fatal
error, and the assembler will output a list of allowed options.
All memory allocation operations are checked for failure.
All file operations are checked for failure.
OPERAND SYNTAX
Character constants are now allowed to have a closing
single quote. Thus, 'a and 'a' are the same to the assemblers.
The OPT directive now allows multiple options, as
described in ASREF.MAN.