+++ /dev/null
-
- a56 - a DSP5600X assembler - version 1.3
-
-/*
- * Copyright (C) 1990-1998 Quinn C. Jensen
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. The author makes no representations
- * about the suitability of this software for any purpose. It is
- * provided "as is" without express or implied warranty.
- *
- */
-
-V1.3 CHANGES
-
- - Added intrinsic transcendental functions for constant literal
- expressions (pi, sin, cos, tan atan, asin, acos, exp, ln, log,
- pow)
-
- - Added warnings for control register load/use hazards
-
- - More sophisticated constant expression evaluation including
- implicit float/integer conversion. Results of expressions
- are typed and so formatted in the listing and symbol table.
-
- - Various fixes including stray pointers, etc. (Thanks to
- Dirk Farin farindk@trick.informatik.uni-stuttgart.de)
-
-Known bugs/deficiencies:
-
- - MOVE to a control reg generates bogus code (always use MOVEC,
- MOVEM, and MOVEP)
-
-Wish list
-
- - Add support for new instructions and modes
-
-
----------------------------------------------------------------------------
-
-OVERVIEW
-
-This program was written as a vehicle to learn the intricacies
-of the DSP56001 instruction set, and to provide a tool for Unix-based
-DSP code development (for those of us without a NeXT machine.)
-
-The intent was to provide compatibility with Motorola assembler's syntax.
-But since the author did not have Motorola's assembler or its documentation,
-it is no doubt far from compatible. Only a few pseudo-ops are implemented--
-probably only partially.
-
-Macros are not supported, except through the use of an external macro
-preprocessor, such as /lib/cpp. To facilitate cpp macro expansion, multiple
-assembler statements on a single input line are delimited with an '@', e.g.:
-
- #define JCHEQ(c,label) move #c,x0 @cmp x0,a @jeq label
-
- #define JCHNE(c,label) move #c,x0 @cmp x0,a @jne label
-
-
-SUPPORTED PSEUDO-OPS
-
-The following is a list of the pseudo-ops that are recognized:
-
- <symbol> = <expression> ;assign a symbol
- <label> EQU <expression> ;ditto
-
- ALIGN <number> ;set location pointer
- ;to next integral
- ;multiple of <number>
-
- ORG <space:> <expression> ;new location pointer
- ORG <space:> <expression>, <space:> <expression>
-
- DC <dc_list> ;declare constants
-
- DS <number> ;reserve <number>
- ;words of space
-
- <label> DSM <number> ;reserve space for
- ;properly aligned
- ;modulo-addressed
- ;buffer of size
- ;<number>, assigning
- ;the aligned starting
- ;address to <label>
-
- PAGE <number>, <number>, <number>, <number> ;ignored
-
- INCLUDE <file> ;file inclusion
-
- END ;end
-
-In addition, a "PSECT" pseudo-op was implemented. It allows program sections
-to be defined and bopped in and out of, each with its own location counter and
-space. The Motorola assembler probably does not have this pseudo-op, but no
-doubt supports the concept in some way.
-
- PSECT <name> <space:><begin_addr>:<end_addr> ;define
-
- PSECT <name> ;switch to psect <name>
-
-
-FUTURE DIRECTION
-
-The assembler probably generates bogus code here and there, and no doubt
-does not handle all of the syntax. I welcome all comments, fixes and
-enhancements.
-
-TO MAKE AND USE
-
-Type "make".
-
-The resulting program, a56, is used as follows:
-
- a56 [-b] [-l] [-o output-file] file [...]
-
-An assembler listing is sent to the standard-output and an ascii-formatted
-object file (a56.out) is produced. The "-b" option adds binary to the listing.
-"-l" causes included files to be listed. "-o" directs the output to the
-specified file rather than the default, a56.out.
-
-A separate program, toomf, converts a56.out into "OMF" format suitable for
-downloading to the 56001 via the sloader.a56 program.
-
- toomf < a56.out > file.omf
-
-AUTHOR
-
-11/28/91
-v1.1 8/6/92
-v1.2 5/2/94
-v1.3 3/18/98
-
-Quinn C. Jensen
-1374 N 40 E
-Orem, UT 84057
-
-http://www.zdomain.com/~jensenq/
-
-home: jensenq@zdomain.com (preferred address for a56 correspondence)
-work: jensenq@novell.com