home *** CD-ROM | disk | FTP | other *** search
- This was taken off of Motorola's Dr. BuB DSP support BBS.
- Details about how to log on are located in file 'dr.bub'.
-
- 1) Free DSP Software
- 1) DSP56000/1 - General Purpose DSP
- 1) Introduction to the DSP56000 library (READ FIRST)
-
- LIBRARY ORGANIZATION:
- The software libraries are grouped into menus by topic. For example
- all FFT routines are grouped with their support routines into one
- menu. Dr. Bub will be adding programs to existing menus as well as
- adding more menu topics as application programs are tested and
- documented.
-
- FILE ORGANIZATION:
- In each topic menu application programs are grouped together with
- their help files and test files. The file naming convention is:
-
- xxxxxxx.asm The application program or assembler MACRO.
- The file name xxxxxxx indicates the type of
- program such as fftr2e.asm for a radix 2 fft
- application.
-
- xxxxxxx.hlp A text help file for the application program.
- The .hlp files explain the application, give
- performance numbers, application notes, tips on
- usage, limitations, etc.
- Press RETURN to continue or q RETURN to exit to menu:
-
- xxxxxxxt.asm Most of the application programs include a test
- program that demonstrates the usage of the
- application program. Test programs have the same
- name as the application with a 't' appended.
-
- xxxxxxxt.hlp Some test programs also have help files
-
-
- USAGE NOTES:
- 1. The DSP56000 software can be downloaded using: KERMIT, XMODEM,
- YMODEM, or ASCII. Dr. Bub allows the use of a "*" wildcard when
- downloading.
-
- 2. Periodically check the version numbers. Bug fixes and
- improvements are noted by a new version number and last update. If
- you find a problem, please leave us a message on Dr. BuB.
-
- 3. The test programs use a set of standard equates which are
- contained in the ioequ.asm file provided in the STANDARD I/O EQUATE
- FILES menu. Press RETURN to continue or q RETURN to exit to menu:
- 4. Many test programs use INCLUDE assembler directives which assume
- that the application program and the ioequ.asm file are in a "dsplib"
- subdirectory on your system.
-
- 5. The INCLUDE assembler directives used in many test program files
- may need to be modified to reference the desired files and to match
- your computer's file path naming convention.
-
- 2) Standard I/O Equate Files
- 3) FFTs
- 4) FIR/IIR Filters
- --- FIR and IIR FILTERS ---
- The following files contain FIR and IIR filter programs, macros, help
- files, and test routines for the DSP56000/1.
-
- +-------------------------------------------------------------------+
- | You will need to remember the document id for further reference. |
- +-------------------------------------------------------------------+
-
- DOCUMENT
- ID VERSION SYNOPSIS SIZE UPDATED
- ---------- ------- -------- ---- -------
- fir.asm 1.0 Direct Form FIR Filter 545 7/15/87
- fir.hlp Help for fir.asm 2161 7/15/87
- firt.asm 1.0 Test program for fir.asm 1164 7/16/87
- iir1.asm 1.0 Direct Form Second Order All Pole 656 7/15/87
- IIR Filter
- iir1.hlp Help for iir1.asm 1786 7/15/87
- iir1t.asm 1.0 Test program for iir1.asm 1157 7/16/87
- iir2.asm 1.0 Direct Form Second Order All Pole 801 7/15/87
- IIR Filter with Scaling
- iir2.hlp Help for iir2.asm 2286 7/15/87
- iir2t.asm 1.0 Test program for iir2.asm 1311 7/16/87
- iir3.asm 1.0 Direct Form arbitrary Order All 776 7/15/87
- Pole IIR Filter
- iir3.hlp Help for iir3.asm 2605 7/15/87
- iir3t.asm 1.0 Test program for iir3.asm 1309 7/16/87
- iir4.asm 1.0 Second Order Direct Canonic IIR Filter 713 7/15/87
- (Biquad IIR Filter)
- iir4.hlp Help for iir4.asm 2255 7/15/87
- iir4t.asm 1.0 Test program for iir4.asm 1202 7/16/87
- iir5.asm 1.0 Second Order Direct Canonic IIR Filter 842 7/15/87
- with Scaling (Biquad IIR Filter)
- iir5.hlp Help for iir5.asm 2803 7/15/87
- iir5t.asm 1.0 Test program for iir5.asm 1289 7/16/87
- iir6.asm 1.0 Arbitrary Order Direct Canonic IIR 923 7/15/87
- Filter
- iir6.hlp Help for iir6.asm 3020 7/15/87
- iir6t.asm 1.0 Test program for iir6.asm 1377 7/16/87
- iir7.asm 1.0 Cascaded Biquad IIR Filters 900 7/15/87
- iir7.hlp Help for iir7.asm 3947 7/15/87
- iir7t.asm 1.0 Test program for iir7.asm 1432 7/16/87
- lms.hlp 1.0 LMS Adaptive Filter Algorithm 5818 4/08/88
- transiir.asm 1.0 Implements the transposed IIR filter 1981 8/19/88
- transiir.hlp 1.0 Help file for transiir.asm 974 8/19/88
-
- FIR & IIR filters:
- fir.asm fir.hlp firt.asm iir1.asm
- iir1.hlp iir1t.asm iir2.asm iir2.hlp
- iir2t.asm iir3.asm iir3.hlp iir3t.asm
- iir4.asm iir4.hlp iir4t.asm iir5.asm
- iir5.hlp iir5t.asm iir6.asm iir6.hlp
- iir6t.asm iir7.asm iir7.hlp iir7t.asm
- lms.hlp transiir.asm transiir.hlp
-
- 5) Lattice Filters
- 6) Matrix Operations
- 7) Functions
- 8) Companding Routines
- --- Companded CODEC to Linear PCM Data Conversion ---
- The following files contain function routines and macros for the
- DSP56000/1 to perform conversions between companded CODEC and Linear
- PCM data.
- +----------------------------------------------------------------+
- |You will need to remember the document id for further reference.|
- +----------------------------------------------------------------+
-
- DOCUMENT
- ID VERSION SYNOPSIS SIZE UPDATED
- ---------- ------- -------- ---- -------
- loglin.asm 1.0 Companded CODEC to linear PCM data 4572 4/20/87
- conversion
- loglin.hlp Help for loglin.asm 1479 4/20/87
- loglint.asm 1.0 Test program for loglin.asm 2184 4/20/87
- loglint.hlp Help for loglint.asm 1993 4/20/87
- linlog.asm 1.1 Linear PCM to companded CODEC data 4847 8/17/88
- conversion
- linlog.hlp Help for linlog.asm 1714 4/20/87
-
- CODEC:
- linlog.asm linlog.hlp loglin.asm loglin.hlp loglint.asm
- loglint.hlp
-
- 9) Speech
- --- Speech ---
- The following files contain function routines and macros for the
- DSP56000/1 to perform speech processing and analysis.
-
- +-------------------------------------------------------------------+
- | You will need to remember the document id for further reference. |
- +-------------------------------------------------------------------+
-
- DOCUMENT
- ID VERSION SYNOPSIS SIZE UPDATED
- ---------- ------- -------- ---- -------
- lgsol1.asm 2.0 Leroux-Gueguen solution for PARCOR 4861 6/02/87
- (LPC) coefficients
- lgsol1.hlp Help for lgsol1.asm 3971 6/02/87
- ----------
- durbin1.asm 1.2 Durbin Solution for PARCOR 6360 6/05/87
- (LPC) coefficients
- durbin1.hlp Help for durbin1.asm 3616 6/05/87
-
- Speech:
- durbin1.asm durbin1.hlp lgsol1.asm lgsol1.hlp
-
- a) Sorting & Searching
- b) Floating Point Library
- c) Error Coding Routines
- 2) DSP56200 - Digital Adaptive Filter
- 3) Software Tools and Utilities
- --- Tools and Utilities ---
-
- +---------------------------------------------------------------------+
- |NOTE:You will need to remember the document id for further reference.|
- +---------------------------------------------------------------------+
-
- DOCUMENT
- ID VERSION SYNOPSIS SIZE UPDATED
- --------- ------- -------- ---- -------
- srec.c 1.7 Utility to convert DSP56000 OMF format 37038 7/07/88
- to SREC.
- srec.h 1.0 Include file for srec.c 3599 4/18/88
- srec.exe 1.7 Srec executable for IBM PC 19547 7/07/88
- sloader.asm 1.1 Serial loader from the SCI port for the 3986 5/24/88
- DSP56001
- sloader.hlp 1.1 Help for sloader.asm 2598 5/24/88
- sloader.p 1.1 Serial loader s-record file for download 736 5/24/88
- to EPROM
- parity.asm 1.0 Parity calculation of a 24-bit number in 1641 5/24/88
- accumulator A
- parity.hlp 1.0 Help for parity.asm 936 5/24/88
- parityt.asm 1.0 Test program for parity.asm 685 5/24/88
- parityt.hlp 1.0 Help for parityt.asm 259 5/24/88
- dspbug Ordering information for free debug 799 5/26/88
- monitor for DSP56000/1
-
- parity.asm parity.hlp parityt.asm parityt.hlp sloader.asm
- sloader.hlp sloader.p srec.c srec.h srec.exe
- dspbug
-
- 2) Motorola DSP Documentation
- 3) Answers to Frequently Asked Questions
- ANSWER
- ID VERSION SYNOPSIS SIZE UPDATED
- ---------- ------- -------- ---- -------
- a1 1.1 Parallel Data Moves 3898 5/22/87
- a2 1.0 Operating Temperature 450 4/09/86
- a3 1.0 Data Shifting 8662 5/17/86
- a4 1.0 Stop/Wait Mode 478 8/19/86
- a5 1.1 Samples 773 11/03/87
- a6 1.0 Bootstrap Program 732 2/23/87
- a7 1.1 DSP56000 Programs 878 5/18/87
- a8 1.0 P,X,Y Address Spaces 2339 1/07/87
- a9 1.0 DSP56000 Simulator 1253 1/07/87
- a10 1.1 DSP56001 ROM Contents 1445 5/18/87
- a11 1.0 VAX, SUN Assembler/Simulator 1183 1/07/87
- a12 1.0 DSP56000 C Compiler 562 1/07/87
- a13 1.1 1024-point FFT 7743 5/18/87
- a14 1.1 DSP56001 Development System 977 5/18/87
- a15 1.0 What is Convergent Rounding? 2414 3/24/87
- a16 1.0 Rev. 1.1 Simulator/Assembler Updates? 830 2/24/87
- a17 1.0 DSP56000 Assembler Rev.1.1 Release Notes 2177 3/06/87
- a18 1.0 DSP56000 Host Port Register Use in DMA 975 3/04/87
- Mode
- a19 1.0 "Free" FIR Output w/DSP56200 Adaptive 3571 3/05/87
- Mode
- a20 1.0 Using Decimal-Fractional #s With DSP5620 5851 3/05/87
- a21 1.0 DSP56000 Simulator Timing Questions 4558 3/10/87
- a22 1.2 Common Benchmarks for the DSP56000/1 2677 6/02/87
- a23 1.0 Multi-Channel Adaptive Filter w/DSP56200 7406 4/16/87
- a24 1.0 XMODEM File Transfer Problems w/Dr. BuB? 591 4/16/87
- a25 1.0 DSP56000/1 compatible CODECs 985 5/29/87
- a26 1.0 DSP56000 Simulator Session Example 9645 6/02/87
- a27 1.0 DSP56000 Assembler Rev.2.0 Release Notes 1641 11/02/87
- a28 1.0 Radix 4 and Radix 8 complex FFT software 538 11/05/87
- a29 1.0 Complex FFT with Real Data 918 11/05/87
- a30 1.0 Connecting SCSI to the DSP56000/1 3481 3/03/88
- a31 1.0 Other Motorola Bulletin Boards 811 3/22/88
- a32 1.0 Interrupt processing and the instruction 3569 3/22/88
- pipeline
- a33 1.0 Sockets available for DSP56000/1 1820 4/07/88
- a34 1.0 Separate RD and WR signals on DSP56000/1 2451 10/06/88
- a35 1.0 Information about military products 593 12/21/88
- a36 1.0 How Dr. BuB answers questions 1264 1/05/89
-
-
- Enter answer id: a26
- +-------------------------------------------------------------------------+
- | |
- | Can you give me an example of how to use the DSP56000/1 Simulator ? |
- | |
- +-------------------------------------------------------------------------+
- Example DSP56000/1 Simulator Session using Input and Output Data Files
-
- The example DSP56000/1 Simulator session described below was developed for
- an IBM PC environment. The example session assumes the following file
- directory structure:
- +----------+
- | DSP56001 |
- +----------+
- |
- |
- -------------------------
- | |
- | |
- +-----+ +-----+
- | ASM | | SIM |
- +-----+ +-----+
-
- Files: asm56000.exe sim56000.exe
- lgsol1.asm lgin.io
- < lgsol1.lod > -------- < lgsol1.lod >
- < lgsol1.lst > < lgout.io >
-
- Note: Files that are created by the DSP56000/1 Assembler or Simulator are
- shown above in < brackets >. The user does not need to create these
- files prior to working through the session described below. All other
- files should exist in their respective directories as shown above.
- The prompt from the ASM directory will be shown as "DSP56001\ASM>",
- the prompt from the SIM directory will be shown as "DSP56001\SIM>" and
- the prompt from within the DSP56000/1 Simulator will be shown as ">".
-
- Steps: 1) Obtain DSP56000/1 assembly language source file.
-
- The assembly language program to be simulated can be created
- using an editor or downloaded from Dr. BuB. For this example,
- the assembly language source file "lgsol1.asm" should be
- downloaded from Dr. BuB. Remember to copy the downloaded file
- "lgsol1.asm" into the ASM directory as shown above.
-
- 2) Assemble the assembly language source file "lgsol1.asm" using the
- DSP56000/1 Assembler.
-
- DSP56001\ASM>asm56000 -b -l lgsol1.asm
-
- This command assembles the DSP56000/1 assembly language source
- file "lgsol1.asm" which was downloaded from Dr. BuB. The
- assembler output listing is placed in the file "lgsol1.lst" and
- the assembler output load file is placed in the file "lgsol1.lod".
-
- 3) Create the input data file to be used by the DSP56000/1 Simulator.
-
- DSP560001\ASM>cd ..\SIM
- DSP560001\SIM> (Use the editor program of your choice
- to create the input data file "lgin.io".)
- DSP560001\SIM>type lgin.io
-
- The first command changes the current directory to the SIM
- directory. The second command will vary depending upon the
- editor used to create the simulator's input data file "lgin.io".
- Note that this file should be located in the SIM directory as
- shown above. The third command is used to verify that the
- contents of the newly created input data file are correct.
-
- Note: The contents of the DSP56000/1 Simulator input file
- "lgin.io" are shown later in this file for reference.
-
- 4) Simulate the assembly language program using the DSP56000/1
- Simulator.
-
- DSP56001\SIM>copy ..\ASM\lgsol1.lod
- DSP56001\SIM>sim56000
-
- The first command copies the assembler output load file
- "lgsol1.lod" from the ASM directory to the SIM directory.
- The second command invokes the DSP56000/1 Simulator.
-
- Once the DSP56000/1 Simulator has been invoked, the simulator's
- prompt ">" should appear as shown below. The following simulator
- commands should then be entered, one at a time, as shown.
-
- >reset s
-
- This command sets the simulator to the reset state.
-
- >change bcr 0
-
- This command changes the Port A Bus Control Register
- (bcr) contents to 0. This means that all external
- memory and external I/O accesses will require zero
- wait states for purposes of simulation.
-
- >display on x:0..$a x:$20..$29
-
- This command enables the display of two banks of
- X memory in the DSP56000/1.
-
- >load lgsol1
-
- This command loads the file "lgsol1.lod" into the
- simulator. The simulator should initialize the contents
- of the Program Counter (pc) register to the top of the
- lgsol1 program at p:$100.
-
- >input y:$ffff lgin.io
-
- This command defines the file "lgin.io" as an input file
- to the DSP56000/1 Simulator. Thus, all read operations
- from the DSP56000/1 external I/O memory location y:$ffff
- will get their data value from the file "lgin.io".
-
- >output y:$fffe lgout.io
-
- This command defines the file "lgout.io" as an output
- file to the DSP56000/1 Simulator. Thus, all write
- operations to the DSP56000/1 external I/O memory
- location y:$fffe will put their data value into the
- file "lgout.io".
-
- >break pc>$139
-
- This command defines a breakpoint for any program memory
- location greater than p:$139. If the Program Counter
- (pc) register should ever exceed p:$139, program
- simulation will halt and display the currently enabled
- registers and memory locations.
-
- >display
-
- This command displays all of the currently enabled
- registers and memory locations. This command is used
- here to verify that all changes have been made and that
- everything is in order prior to actual simulation.
-
- >go
-
- This command enables program simulation beginning at
- the current value of the Program Counter (pc). Program
- simulation will continue until a previously defined
- breakpoint is encountered.
-
- >quit
-
- This command exits the DSP56000/1 Simulator and returns
- the "DSP56001\SIM>" prompt. Note that the DSP56000/1
- Simulator output file "lgout.io" will not be available
- for inspection until the simulator has been terminated
- using the "quit" command.
-
- 5) Verify that the contents of the DSP56000/1 Simulator output file
- "lgout.io" are correct.
-
- DSP560001\SIM>type lgout.io
-
- Note: The contents of the DSP56000/1 Simulator output file
- "lgout.io" are shown later in this file for reference.
-
- DSP56000/1 Simulator Input Data File: "lgin.io"
-
- +------------------------------------------------------------+
- | 1 |
- | 400000 200000 200000 200000 200000 200000 |
- | 200000 200000 200000 200000 200000 |
- +------------------------------------------------------------+
-
- The first value in the input data file represents the number of
- speech data frames to be processed by the "lgsol1" program. This
- program performs Linear Predictive Coding (LPC) analysis on speech
- data using the Leroux - Gueguen (LG) algorithm. The following eleven
- (11) values in the input data file represent the normalized
- autocorrelation coefficients required to perform a tenth order LPC
- analysis.
-
- Note: All DSP56000/1 input data files must be composed of standard
- ASCII characters.
-
- DSP56000/1 Simulator Output Data File: "lgout.io"
-
- +------------------------------------------------------------+
- | C00000 |
- | D55556 |
- | E00000 |
- | E66667 |
- | EAAAAC |
- | EDB6DD |
- | F00001 |
- | F1C71D |
- | F33333 |
- | F45D18 |
- +------------------------------------------------------------+
-
- The ten values in the output data file shown above are the output
- of the LG LPC algorithm. These ten (10) values represent the desired
- reflection coefficents (K's) produced by the tenth order LPC
- analysis.
-
- Note: All DSP56000/1 output data files are composed of standard
- ASCII characters.
- 4) Pose a Question or Make a Comment
- 1) Read editor documentation
- To use the Motorola DSP bulletin board note editor
- you only need to know the following:
-
- 0. Backspace is <ctrl-h>.
-
- 1. There are two main modes to this editor, INSERT and
- COMMAND.
-
- 2. When you enter the editor, you're in INSERT mode.
-
- 3. To exit INSERT mode and enter COMMAND mode, you need
- to enter a blank line. Doing this will bring up a list
- of valid editor commands.
-
- 4. To exit COMMAND mode and return to INSERT mode (typing
- at the end of the note) use the Continue command.
-
-
- BELOW is a description of the editor commands with examples.
-
-
- Abort - Stop note from being posted.
-
- Continue - Continue typing a note. Begins on the next
- line number.
-
- Delete - Remove a single line from a note.
-
- Edit - Edit any portion of a line. To do this you will
- need to "mark" off the ends of the portion of the
- line in question with "^". THE CHANGE will be put
- AFTER the first ^ and BEFORE the last ^.
-
- To insert in a line, put the ^'s next to each other.
-
- To delete or replace in a line separate the ^'s
- by any number of spaces. EVERYTHING between the ^'s
- will be lost. If you enter a new line, when prompted,
- everything between the ^'s will be replaced with the
- new string, otherwise the area between the ^'s is deleted.
-
- EXAMPLES:
-
- INSERT
- this is a test
- ^^
- Enter new string: NEW STRING
- New string is --->
- this NEW STRING is a test
-
- REPLACE
- this is a test
- ^ ^
- Enter new string: WAS
- New string is --->
- this WAS a test
-
-
- DELETE
- this is a test
- ^ ^
- Enter new string:
- New string is --->
- this test
-
- Insert - Insert one or more lines of text before an
- identified line.
-
- List - Show the current state of the note
-
- Save - Send the message.
-
- ? - This message
-
- 2) Enter question or comment
- 5) Motorola Training Courses Information
- 6) Third Party Information
- 7) Available Products and Printed Documentation
- >>>> SUPPORT PRODUCTS <<<<
-
- DSP56000 C-Cross Compiler
- DSP56KCC
- This package contains a Kernighan and Ritchie C compiler, C
- preprocessor. Ask for brochure BR541/D or look on Dr. BuB in "Motorola
- DSP documentation" item d9.
-
-
- 32010 to DSP56001 Translator Software Package
- DSP320to56001
- The DSP320to56001 translator software will convert any 32010 code
- into code for Motorola's powerful signal processor chip, the
- DSP56001. The primary features of DSP320to56001 are:
- * Translation of any 32010 applications software into
- DSP56001 source code.
- * Two modes of operation 1) translates to 56001 source code
- for potential optimization and assembly with the
- DSP56000SASMA 2) translates and runs 32010 code "as is"
- directly on the DSP56000ADS.
- * Runs on IBM-PC, XT or AT* under MS-DOS**.
- * C source code of DSP320to56001 program is provided.
- Ask for brochure BR522/D for more information.
- -----
- DSP56000 Development Software Package
- DSP56000CLASA
- This package contains a macro cross-assembler, linker/librarian,
- multi-DSP simulator, disassembler, and user interface for
- developing DSP56000 and DSP56001 software and applications.
- Over 800 pages of documentation is provided including
- user's manuals for the macro cross-assembler and simulator,
- the technical summary and user's manual for the DSP56000,
- and the license agreement and software warranty.
- DSP56000CLASA runs on the IBM-PC, XT, or AT* under
- MS-DOS** and the price is $495. You may purchase this
- software package via your local Motorola Semiconductor
- sales office or Motorola distributor.
- -----
- Application Development System for DSP56000 Family Products
- DSP56000ADS
- The DSP56001-based Application Development System (ADS) is a
- three-component development tool for designing, debugging,
- and evaluating DSP56000 and DSP56001 target system equipment.
- The ADS simplifies evaluation of the user's prototype
- hardware/software product by making all of the essential
- DSP56000 timing and I/O circuitry easily accessible.
- This product is described in more detail in brochure BR517.
- -----
- * IBM-PC, XT, AT are trademarks of Intl. Business Machines
- ** MS-DOS is a trademark of Microsoft Corp.
-
- >>>> DOCUMENTATION <<<<
-
- 1) BR282 -- DSP56000 Technical Summary
- 2) BR283 -- DSP56200 Technical Summary
- 3) BR526 -- DSP56000CLASx Software Summary
- 4) BR297 -- Dr.BuB Electronic Bulletin Board
- 5) DSP56001/D -- DSP56001 Technical Summary
- 6) DSP56000 UM/AD -- DSP56000 User's Manual
- 7) DSP56200/D -- DSP56200 Advance Information
- 8) BR517 -- DSP56000ADS Applications Development System
- 9) BR522/D -- DSP320to56001 Translator Software Summary
- 10) BR541/D -- DSP56000/1 Family C Language Compiler
-
- Software Summary
-
- 11) APR1 -- Digital Sine-Wave Synthesis Using the DSP56001
- 12) APR2/D -- Digital Stereo 10-Band Graphic Equalizer
- Using the DSP56001
- 13) DSP56ADC16/D -- DSP56ADC16 16-bit Sigma-Delta Analog-to-Digital
- Converter, Advance Information
-
- >>>> Literature Distribution Centers <<<<
-
- USA -- Motorola Literature Distribution
- P.O. Box 20912
- Phoenix, Az 85036
-
- EUROPE -- Motorola Ltd; European Literature Center
- 88 Tanners Drive
- Blakelands Milton Keynes
- MK145BP, England
-
- Asia/Pacific -- Motorola Semiconductors H.K. Ltd.
- P.O. Box 80300
- Cheung Sha Wan Post Office
- Kowloon Hong Kong
-
- 8) Motorola Sales Offices
- 9) Product Updates
- +------------------------------------------------------------------------+
- FILE
- ID VERSION SYNOPSIS SIZE UPDATED
- ---------- ------- -------- ---- -------
- u1 1.0 DSP56000 Assembler Rev 1.1 Release Notes 2177 6/02/88
- u2 1.0 DSP56000 Assembler Rev 2.0 Release Notes 6952 6/02/88
- u3 1.0 XSP56001 2B38E/4B38E Silicon Design Memo 3498 2/19/88
- ------
- u1 - Release Notes -- Motorola DSP56000 Macro Cross Assembler Version 1.10
-
- 1) There is a bug in versions 1.00 and 1.10 of the assembler that causes a
- divide-by-zero error when an integer is used as the divisor in a
- floating point divide operation (e.g. 3.456/2). The workaround is to
- write the divisor in floating point format (3.456/2.0).
-
- 2) The assembler reference manual contains an error in the description of
- the logical negate operator on page 3-5. The last sentence of the
- paragraph reads "If BUF had a value of 1000, !BUF would have a value of
- 1." Logically negating BUF (!BUF) would actually yield a zero value
- here.
-
- 3) Another error in the manual appears on page 5-4, in the N_R_MUL macro
- coding example at the top of the page. The operands of the DO
- instruction are transposed; the instruction should read "DO #N,_END."
-
- 4) In the SWAP_REG and SWAP_SYM macros shown on pages 5-6 and 5-7,
- respectively, the last move instruction in the macros reads "MOVE
- X0,R\REG1." This instruction should be "MOVE X0,R\REG2."
-
- 5) In Appendix C, "Instruction Set Summary," section C.6, "Program Control
- Instructions," the RTI and RTS instructions DO NOT ALLOW parallel data
- moves. Therefore none of the program control instructions allow
- parallel data moves.
-
- 6) If an address register is written in an instruction and subsequently
- used as a pointer in the following instruction, the assembler correctly
- generates an error flag. This is because due to pipelining the new
- contents of the register are not available until the next following
- instruction. However, there is a bug in the assembler such that if a
- transfer conditional (Tcc) instruction writes to an address register and
- the following instruction uses that register as a pointer, the assembler
- does not generate the expected error flag. Here is an example:
-
- TGE X0,A R0,R1 ; Write to register R1
- MOVE X:(R1),X1 ; R1 used as pointer here;
- ; Assembler should generate error,
- ; but does not
-
- ------
- u2 - Release Notes -- Motorola DSP56000 Macro Cross Assembler Version 2.00
- Motorola DSP56000 Cross Linker/Librarian Version 1.00
-
-
- 1) There is a bug in version 2.00 of the assembler which relates to the
- use of counter modifiers in the ORG directive. When in the assembler
- relative mode using the ORG directive with either the L or H counter
- modifiers (e.g. ORG XL:, ORG YH:, etc.) it is possible that the counter
- information will not make it to the link file, causing incorrect code
- generation in some cases. The only workaround is to use sections
- instead of the L and H modifiers whenever a new set of counters is
- required; the default counters are not affected. This bug affects all
- implementations and is corrected in 2.01 and subsequent versions of the
- assembler.
-
- 2) In versions 2.00 and 2.01 of the assembler the EQU directive will not
- correctly handle relative arguments. If the EQU directive is given a
- relocatable operand (such as '*', the current program counter value) it
- will not reflect in the link file that this is a relocatable value.
- This problem frequently crops up when the following programming idiom is
- used to establish a label value:
-
- FOO EQU *
-
- In this particular case, the EQU is used simply to assign the current
- value of the program counter to the symbol FOO, which can also be done
- by coding FOO on a line by itself. In other instances, however, there
- is no simple workaround, short of editing the link file directly. This
- problem is fixed in version 2.02 and subsequent releases of the
- assembler.
-
- 3) Two local label bugs have been found, one affecting all implementations,
- the other apparently only a problem on PCs. In the first case the
- assembler was not switching local label lists during macro expansion
- on the second pass. The second bug is very sporadic and occurs as a
- result of improper use of freed dynamic memory space. In both cases the
- assembler will complain that the local label in question is undefined
- on pass 2.
-
- 4) The description of the assembler message "Phasing error" in the manual
- is too stringent. Phasing errors IN ISOLATION constitute an internal
- assembler error. However, cascading phasing errors can result from a
- number of other error conditions which cause the value of labels and
- the program counter to get out of synch. If there are other explicable
- errors in the assembly in conjunction with phasing errors, it is
- recommended that these errors be investigated and corrected first.
- The phasing errors might possibly disappear as a result.
-
- 5) Under the description of the -B and -L command line options in chapter
- 1, the assembler manual states that if a pathname (e.g. a directory
- path) is not supplied along with the filename, the file will be created
- in the current directory. In version 2.00 this is true only if an
- explicit filename is supplied. If the filename is omitted, "the
- assembler will use the basename (filename without extension) of the
- first filename encountered in the source input file list and append the
- appropriate file type...to the basename." This means that if the first
- filename encountered in the source input file list includes a directory
- path, the object/listing file will be written to that directory. In
- subsequent releases (2.01 and later) this behavior has been changed such
- that unless an explicit directory path is specified, the output files
- will go to the current directory as documented.
-
- 6) In chapter 3 of the assembler manual the descriptions of the shift
- operators in expressions are backwards. The shift right operator
- causes the left operand to be shifted to the right by the number
- of bits specified by the right operand, and the sign bit is extended.
- The shift left operator causes the left operand to be shifted to the
- left (and zero-filled) by the number of bits specified by the right
- operand.
-
- 7) In relocatable mode the argument to the END directive is not passed
- correctly as a relative value to the link file, and subsequently to
- the load file. This can cause loading software to incorrectly set
- the starting address for program execution.
-
- 8) The assembler does not correctly flag a force of I/O short addressing
- to or from P memory. For example, given the following instruction:
-
- MOVEP Y:(R7),P:<<$FFEE
-
- The assembler should issue an error, but instead generates an
- improperly encoded instruction.
-
- 9) The assembler may not be able to find macros invoked with the same
- name from different sections if the macros are defined via the MACLIB
- directive. A bug in the MACLIB check code causes a macro looked up
- through MACLIB to be passed over ??lls.
-
- 10) If the assembler S or CRE options are used and the same set of symbols
- are defined both inside and outside of a section a segmentation
- violation can result on Sun and VAX machines. This is because the count
- of symbols is not accurate when symbols by the same name are defined
- privately inside a section and then again in the global name space.
-
- 11) The librarian will only accept lowercase command line options. Also,
- a library name specified in uppercase but without extension will not
- have the .LIB extension appended correctly.
-
- 12) If the assembler PAGE directive is used without arguments inside a
- macro, when the macro is expanded the PAGE directive will case a page
- eject (form feed) even if the NOMEX option is given.
-
- 13) The assembler will generate an inappropriate error message when two
- relative terms are subtracted. The subtraction will not be done.
-
- 14) It is possible for the assembler to get out of phase if local labels
- are used in conjunction with structured control statements. The
- assembler will complain about undefined symbols on pass 2, citing a
- local label that has been placed between a structured control statement
- initializer (.FOR, .WHILE, .REPEAT) and its ending statement (.ENDF,
- .ENDW, .UNTIL).
-
- 15) The standalone version of the assembler for the Macintosh (ASM56000SA)
- does not handle negative fractional values properly. If the assembler
- sees DC -0.5 it should produce a hex value of C00000, but instead
- saturates with a positive signed value (7FFFFF). This is not a problem
- in any of the other assembler implementations, including the MPW version
- for the Macintosh.
-
- 16) The linker will not properly resolve external references to symbols
- in library modules which contain sections with more than one memory
- space. When scanning the library for eligible symbols, the linker
- does not recognize SYMBOL records beyond the first one. If the module
- is removed from the library it will be linked correctly.
-
- ------
- u3 - Digital Signal Processor Operation
- (512)440-2030
-
- SUPERSEDES ANY PREVIOUS ERRATA
- February 19, 1988
-
- XSP56001 2B38E/4B38E Silicon Design Memo
-
- This memo lists and explains the only known discrepancies in the
- B38E mask set of the XSP56001. These discrepancies will be
- corrected in future DSP56001 mask sets.
-
- 1. If one uses the 8 bit synchronous data format (WDS2, WDS1,
- WSD0 = 000) of the Serial Communications Interface (SCI) with an
- external transmitter clock (TCM = 1), the transmitter will transmit
- two bits when the external clock begins, even when the transmitter
- is disabled (TE = 0). After transmitting these two bits the device will
- continue to drive the Transmit Data line (TXD) with the value of the
- last bit transmitted. The user can avoid this situation by writing all
- ones ($FF) to the Transmit Data Register (STX) when the SCI is
- initialized. This will cause the first two transmitted bits to be ones;
- since there is no start bit in the synchronous mode, the TXD line will
- remain at a one, i.e., it's idle condition.
-
- 2. If one is doing hardware development support for the
- DSP56000, the following comments will be of interest. If a
- peripheral interrupt is pending, enabled, and ready to be serviced
- when the TRACE INTERRUPT is generated, that peripheral interrupt
- will only be partially serviced by the DSP56001. This condition will
- not arise if one disables all peripheral interrupts prior to tracing. We
- have implemented the following solution in the DSP56001ADS
- Application Development System monitor program software. First,
- save the Interrupt Priority Register (IPR) value (located at X:$FFFF),
- then clear the IPR. Set the Trace bit on the stack, then execute the
- RTI to trace one instruction. After tracing is complete, the IPR
- register is read. The previously saved value is restored only if the
- IPR is equal to zero. Also, refer to Page 8-7 in the DSP56000 User's
- Manual.
-
- Note: Tracing a MOVE #0,X:$FFFF instruction is not detectable and
- will cause the IPR value prior to the trace to be moved into the IPR
- register after the trace mode interrupt.
-
- 3. When Bus Request is asserted, Bus Grant will be negated for
- one instruction cycle after a read-modify-write instruction, e.g., BSET,
- is executed from internal program memory on internal X and Y
- memory locations.
-
- 4. Fast interrupt service routines consisting of a single two-word
- instruction that return to a conditional JSR (condition true) cause
- both the loop and the trace flags to be cleared and corrupt the
- interrupt mask bits (I1,I0) in the Status Register (SR) that is stacked.
- This condition may have a low probability of occurrence in the user's
- program, but for complete software reliability it is strongly
- recommended that the user restrict fast interrupt routines to only
- two single word instructions.
-
- 5. When operating in the Host DMA transfer mode (read or write),
- the user must not switch bit transfer modes prior to completing the
- current byte/word. A change in the data bit transfer rate prior to
- completion of the current data bit/word will result in subsequent
- data being corrupted. The user must therefore complete all byte
- transfers for the programmed word size. For example, if doing a 24-
- bit DMA transfer HACK must be asserted three times to transfer all
- three bytes before the Interrupt Control Register (ICR) bits HM0 and
- HM1 can be changed successfully.
-
- 6. HR/W must be held high during DMA transfers through the
- Host Port.
-