Short: PhxAss V4.20 68xxx Macro Assembler Author: frank@phoenix.owl.de (Frank Wille, Phoenix/Phantasm) Uploader: fwille@techfak.uni-bielefeld.de Type: dev/asm This archive contains the Assembler PhxAss V4.20 and the Linker PhxLnk V4.17. *** PHXASS *** PhxAss V4.20 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 Fast: 15000-30000 lines per minute with standard Amigas, 50000-350000 with A4000/040. o Resident. o Symbolic and Source Level Debugging. 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 locale.library usage (english, german, swedish, italian, danish 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, ... o Further development and support is guaranteed for years, because I'll *never* change my system (Amiga forever!). o Finally: Although Shareware, there are no disabled functions in PhxAss! You will find four different versions of PhxAss in this distribution: 1. PhxAss: The standard 680x0,FPU,MMU macro assembler. 2. SmallPhxAss: This is a 68000-only version without floating point support. 3. FreePhxAss: This program is FREEWARE! It is intended for developers of PD-Compilers, who want to include PhxAss in their compiler package. 4. GigaPhxAss: Identical to PhxAss, but source codes are not limited to 65535 lines. Quite useful for assembling huge Reassembler outputs. CHANGES SINCE PHXASS V4.18 (last Aminet release): Fixed Bugs: o Long range branches, which were explicitely defined as Byte branches, were made to Word instead Long. This caused an error in the following branch optimizations. o Distance shifts didn't work with equates (EQU). o Distance shifts didn't get the correct value in the listing file. o Forgot to close two math-libraries during clean-up. o Usage of scaling in 68000 mode will generate an error message now. o ASL will be optimized to ADD by (n)ormal optimization (if possible). o \@ generates '_000' labels instead '000'. So you will be no longer forced to change you exec/types.i include file. o It is possible again, to create an object file which contains only absolute XDEFs. It was already possible before v4.00, I think. ;) o Now you will get an error message, when a symbol inside a macro was defined twice. o When both Data and Bss sections were empty in small data mode, PhxAss generated an object file with 65535 size fields in the hunk header. New Features: o Relocatable symbols will be suffixed by a ' in the listing file. o SECTION allows a numerical third parameter to select the type of the section (should be $40000000 or $80000000, of course!). o Freeware-PhxAss assembles 68030-060, FPU and MMU code too. o Dutch catalog. o EQUR works with register symbols. o New directive FREG. It's like REG, but for the FPU registers. So FMOVEMs without any registers, which could be generated by a compiler, can be removed by optimization. o Support for PHXOPTIONS option files, which are created by PhxOpts from Johan Johanssen. PhxOpts offers a GUI for presetting the options of PhxAss. But of course, the command line options have still priority. o PHXASSINC has moved to ENV:PhxAss/ like the global PHXOPTIONS. o New directives SAVE and RESTORE to save name and type of the current section. Useful in macros. *** PHXLNK *** PhxLnk is FREEWARE and supports all features of a standard Amiga-DOS linker (like BLink), except of overlay hunks and automatic link vectors (ALV). Implemented functions: o Links object files and libraries (SAS/C extended libraries too) o Sections can be forced to Chip-memory o Small Code, Small Data o SAS/C-Blink Small Data compatibility available o '_MERGED' sections are recognized automatically (and coalesced like Small Data sections) o Symbolic and Source Level Debugging (PowerVisor compatibility included) o Debug blocks are removed on request o Deletes empty sections o Zero bytes at the end of a section will be deleted and appear in the HUNK_HEADER block only o User may define absolute external symbols o Generates HUNK_RELOC32SHORT blocks by default CHANGES SINCE PHXLNK V4.17 (last Aminet release): o Dutch catalog.