  
 'masm6502.zoo' was originally named 'distrib.zoo', I renamed it so it was
easier to tell what it was.  Its v1.06 of a 6502 macro assembler that runs
on PCs and now on Sun Unix systems.  It can be used to develop 64/128
programs on these platforms.  Below is the CRC32 followed by the readme
file from the archive...
  
crc32 = 2186396720 for "masm6502.zoo".
 
MASM6502:  6502 Macro Assembler, Version 1.06
Copyright (c) 1989-1992, Thomas J. Klehr
All Rights Reserved

This subdirectory contains files for a 6510 cross-assembler. The
created C64/128 program that can then be transferred to the C64/128
for execution.  Binaries exist for IBM compatibles and Sun machines.

Comments or inquiries about the program can be sent to the following
E-mail address:
            klehr@bae.bellcore.com

In this archive file you will find 12 files. Below is a brief
explanation of each of the files and the file-type.

	readme		a	this file
	masm6502.exe	b	executable for IBM compatible
	masm6502.sparc	b	executable for Sparc
	masm6502.sun3	b	executable for Sun3
	opcodes.dat	a	data file needed by executable
	bo.asm		a	sample assembly file
	bo-orig.cbm	b	sample output file
	bo-orig.lst	a	sample listing file
	masm2.tex	a	brief documentation (ugly LaTeX)
	masm2.doc	a	brief documentation (text)
	masm2.dvi	b	DVI version of masm2.tex
	masm2.ps	a	PostScript version of masm2.tex

The program should be invoked as follows:

	masm6502 [-o output_file] [-l list_file] [-f opcode_file] asm_file

If no output file is given, the output goes to stdout.  If no list
file is given, the listing goes to /dev/null (NUL for MSDOS).  If the
opcode file is not given on the command line, or if it is not found,
the program searches for the file "opcodes.dat" in the directory where
the program was found (MSDOS only) or for the file ".masm6502rc" in
the user's home directory (UNIX only).  Finally, if each of these
methods fails, it will look for the file "opcodes.dat" in the current
directory.  The space between the option and the filename is optional.

The error/warning reporting mechanism does not produce line numbers
for all errors.  In order to see where the error/warning is located,
it is best to create a listing file and look there.

The input format must have at least one space (or tab) character at
the beginning of a line, if there is no label.  This is a harsh
restriction, but it works.

BO.ASM is a program I wrote to fill up the screen with garbage, and
then create a ball that bounces around, removing the characters it
hits.  Although incomplete, it gives an idea what the input should be
like.

Note that the syntax of the ".if" directives has been changed in this
version.  There is only one directive (".if") which expands the
following text if the expression evaluates to a non-zero value.

Also, the relational operators were added to the expression syntax.
These include ==, !=, <=, >=, <, and >.  In addition, = may be used
for ==.

Also note that the following characters are no longer allowed to
appear in symbols:  !, {, }, [, and ].  It was rather naive to allow
them in the first place.

-----------------------------------------------------------------------

You should test your copy of the program by assembling the sample
input file, BO.ASM:

	masm6502 -o bo-new.out -l bo-new.lst -f opcodes.dat bo.asm

Then compare the original and new versions of the output file and the
listing file.

-----------------------------------------------------------------------

Version 1.06 (12/92):

  Fixed fopen of read-only files bug on MS-DOS.

Version 1.05 (12/92):

  Fixed relative addressing bug.

Version 1.04 (10/92):

  Added command line interface.

Version 1.03 (9/92):

  Modified for UNIX (Sun 3 & Sparc's).

Version 1.02 (6/91):

  Fixed relative addressing bug (or so I thought).

Version 1.01 (9/90):

  First release.

-----------------------------------------------------------------------
 
