Readme: | Short: Cross-assembler for 65xx/R65C02/65816 Author: Andre Fachat, Cameron Kaiser <ckaiser@floodgap.com> Uploader: polluks+aminet sdf lonestar org (Stefan Haubenthal) Type: dev/cross Version: 2.3.10 Architecture: ppc-morphos URL: http://www.floodgap.com/retrotech/xa/
XA is a 6502 cross compiler:
- under GNU public license
- can produce _relocatable_ binaries
- The full fileformat description and 6502 file loader included.
- also included relocation and info utilites, as well as linker
- for any ANSI-C compliant computer (only utilities need 'stat' call for file size).
- fast by hashtables
- Rockwell CMOS opcodes
- running under DOS and any ANSI C system (Unix, Amiga, Atari ST)
I developed this cross assembler for the 6502 CPU family quite some time ago on my Atari ST. The assembler has successfully been ported to Amiga and Unix computer (ported? just compiled... :-) Lately I came across the problem to need relocatable 6502 binary files, so I revised the assembler from version 2.0.7 to 2.1.0, adding a (admittedly proprietary) 6502 relocatable binary format. But there are not many other formats around and they didn't fit my needs. I have developed this format myself and it is under the GNU public license. With version 2.1.1 the 'official' version of the fileformat is supported.
To compile it, just type "make" (if you have the GNU gcc. If not, edit the Makefile for the compiler options). This produces "xa", the cross assembler; "uncpk", a small packing utility (where the C64 counterpart is in the examples subdirectory), "printcbm", that lists C64 BASIC files and 'file65' that prints some information about o65 files. The "loader" in the loader subdirectory is a basic 6502 implementation of a relocating binary loader. "file65" prints file information on 'o65' relocatable files. "reloc65" can relocate 'o65' files.
If you want to use it under DOS, you have to have the GO32 DOS crosscompiling tools to compile. Then just type "make dos" and you'll end up with the appropriate DOS binaries. This has been tested only under i386 Linux, however. Another archive with the DOS binaries included is provided.
One problem on the Atari was it's broken "malloc". Therefore I used to alloc everything in one chunk and divide the memory by hand. So everything was kind of statically allocated. This is almost gone now. Only the temporary storage between pass1 and pass2 and the preprocessor are still allocated in one chunk (size definitions in xah.h). The rest is allocated as needed.
The docs are in the 'doc' subdir. There also is a description of the 6502 relocatable binary format. If you think some things could be expressed in a better way, feel free and mail me to improve my english ;-) [ The documentation is now maintained in man(1) format in man/ . -- CK ]
Andre
|