Short: PhxAss V4.36 68xxx Macro Assembler Author: frank@phoenix.owl.de (Frank Wille) Uploader: frank@phoenix.owl.de Version: 4.36 Type: dev/asm Replaces: dev/asm/PhxAss435* Requires: OS2.04 PhxAss V4.36 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 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 can 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 ten 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 locale.library usage (english, german, swedish, norwegian, italian, danish, dutch, 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, OUTPUT ... o PhxAss is able to stay resident in memory. 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.35 (last Aminet release): Fixed Bugs: o The PUBLIC directive didn't work in a macro. o "IFND " had the side effect to disable optimization for all sections which were defined after the current one. o Assigning an address to a global symbol with EQU had the same effect like a global label. As a result this EQU ended a local label block. Example: start bra .l1 symbol equ start .l1 rts o Branch optimization made a BRA.W *+6 from JMP *+6. It has to be BRA.W *+4. o PhxAss didn't create an object file, if a source text contained no code. Now an empty object will be created to prevent problems with Makefiles. New Features: o DS/DCB/BLK with a large does no longer require more time to assemble than with a small . o Displays the message "Illegal PHXOPTIONS file" if the format of the PHXOPTIONS file is incorrect. o ZEROPADDING/S forces PhxAss to use zero bytes for CNOP-padding instead NOP instructions. o New directive IMAGE for AsmOne compatibility. Behaves the same like INCBIN link incbin}. o Directives for compatibilty with OMA 3.x: EQURL (behaves like REG) and FEQURL (behaves like FREG). o CMPI #0 and SUBI #0 will be optimized to TST, if (n)ormal optimization is enabled. o (outerDisp,[...]) will be automatically converted into the 020+ addressing mode ([...],outerDisp).