Short: PhxAss V4.32 68xxx Macro Assembler Author: frank@phoenix.owl.de (Frank Wille) Uploader: frank@phoenix.owl.de Version: 4.32 Type: dev/asm Replaces: dev/asm/PhxAss430* Requires: OS2.04 PhxAss V4.32 is a highly optimizing macro assembler for Motorola's 680x0 CPUs, 6888x FPUs and 68851 MMU (of course, the 030, 040 and 060 MMUs are also supported). It requires OS2.04 (V37) and 1 MB RAM as minimum. Most important features: o PhxAss is FREEWARE. o Fast: 15000-30000 lines per minute with standard Amigas, 50000-350000 with A4000/040 (even more with a 060 :). o Resident. o Symbolic and Source Level Debugging. Possibility to enable Source Level Debugging for high level languages too. o Automatic generation of executables (if possible). o Creates relocatable Amiga-DOS objects or absolute code (written into a file (raw or Motorola S-Format), into memory or directly onto disk). o Small Code and Small Data support (also support for __MERGED sections). o Listing file, Cross Reference Listing, Equates file. o Complete floating point support: You may use complex floating point expressions, including float functions (sine, logarithm, square root, power, etc.), everywhere in your source, e.g. defining float EQUates or SETs. o Switches for nine different optimizations. o Locale symbols (xxx$ and .xxx type). o Up to 36 macro parameters. o Support for Motorola's old and new operand style (even in 68000 mode). o Use of locale.library (english, german, swedish, italian, danish, hungarian and french ). o Nearly all directives of the most popular assemblers like Seka, DevPac or AS (Aztec) are supported. Example: INCBIN, INCDIR, CODE_C, REPT, RS, RSRESET, EQUR, REG, OFFSET, XDEF, XREF, PUBLIC, ... You will find two different versions of PhxAss in this distribution: 1. PhxAss: The standard 680x0,FPU,MMU macro assembler. 2. GigaPhxAss: Identical to PhxAss, but source codes are not limited to 65535 lines. Quite useful for assembling huge Reassembler outputs. CHANGES SINCE PHXASS V4.30 (last Aminet release): Fixed Bugs: o The support for the ASCII-characters $c0-$fe in symbol names didn't work very well, especially in the case when a symbol was introduced by such a character. o ([xrefsym,PC],od) generated wrong informations in the HUNK_EXT block. o PhxAss generated an unnecessary line feed in the cross reference listing after exactly six references. o When the DC-Align option was active, a label in the same line like the DC directive could get a wrong value. o Hex-, binary- and octal constants without a single digit didn't invoke an error message. o PhxAss displays a warning, when a near addressing mode has come out of range while 020+ code generation is enabled (68000/010 mode would cause an error message anyway). New Features: o The XREF sub type EXT_RELREF32 ($88) for 32-bit PC-relative references is supported. External symbols may be used in really all addressing modes. o PhxAss uses buffered I/O (FWrite) for creating the output file. o PhxAss uses its own buffered I/O routines instead those which the dos.library offers. The size of the buffer is adjustable by the new CLI parameter BUFSIZE/K/N, which defaults to 8192. o The '%' character is allowed in the middle of a symbol name. o Macro parameters may have up to 127 characters now. o The IDNT directives additionally accepts the syntax where the unit name is specified in the label field, e.g.: unitname idnt 2,1 testprogram o For the bit manipulation instructions, like BTST, BCHG, BSET, BCLR, PhxAss no longer generates an error but only a warning, if the bit-number is out of range. o Besides #$xxxx, #:xxxx is also allowed in the operand of an FPU in- struction, to specify a hexadecimal constant. o New assembler directives. Structure offset: SO, CLRSO, SETSO. Frame offset: FO, CLRFO, SETFO. Code generation: MC680x0. o PhxAss can generate S-Records of variable length for 16-bit and 32-bit addresses, controlled by the new directive STYPE.