'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. -----------------------------------------------------------------------