X-Git-Url: https://jxself.org/git/?p=linux-libre-firmware.git;a=blobdiff_plain;f=a56%2FREADME-1.1;fp=a56%2FREADME-1.1;h=0000000000000000000000000000000000000000;hp=daf3194cddf7d13b14c494dc1d3fe7691da718c5;hb=2a4f7ac397e6e75eed514ab7f8206d8fde8059bc;hpb=0b0ac7b7b8a0a8d6ca55dfaf2e98efb9df096e00 diff --git a/a56/README-1.1 b/a56/README-1.1 deleted file mode 100644 index daf3194..0000000 --- a/a56/README-1.1 +++ /dev/null @@ -1,143 +0,0 @@ - - a56 - a DSP56001 assembler - version 1.1 - -/* - * Copyright (C) 1990-1992 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.1 CHANGES - -Many thanks to Tom Cunningham at Motorola who noted several bugs, fixing -most of them. Thanks also to Stephen Edwards at CalTech for his fixes as well. -Both he and Tom fixed up the XY parallel move code; I believe all the -fixes are integrated. - -Summary of changes since v1.0: - - - Jcc, JScc, Tcc recognizes "CC" synonym for "HS" (Tom) - - LUA syntax fixed (Tom, Stephen) - - DIV syntax fixed (Tom) - - XY move fixed (Tom, Stephen) - - a56 now detects phase errors (changes in symbol values - between pass 1 and 2) - - several causes of phase errors fixed - - immediate value handling improved for both integer and - fixed-point values - - symbols have type (INT or FLOAT) - - cpp droppings are properly handled - - ALIGN pseudo-op added - -Known bugs/deficiencies: - - - MOVE to a control reg generates bogus code (always use MOVEC, - MOVEM, and MOVEP) - -The example code has been cleaned up a bit and I've included my -56K board's envelope code - tdsg.basic.a56. This code is specific to -my implimentation. - -A note on the reverb code - I have since found since posting version 1.0 -that the reverb code has a great-big almost-DC bumb in its impulse -response. I found this after doing some simulations. I suspected something -was wrong because I had to scale the output of the comb filters by .046 -or something before going into the two all-pass stages. Overall I think it -works better without the 1.7 ms all-pass. There's another reverb example -on Dr. Bubb that fits Moorer's 1979 model better. I've included this in -the examples but I have not yet assembled or tried it. - -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: - - = ;assign a symbol - - ALIGN ;set location pointer - ;to next integral - ;multiple of - - ORG ;new location pointer - ORG , - - DC ;declare constants - - PAGE , , , ;ignored - - INCLUDE ;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 : ;define - - PSECT ;switch to psect - - -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". gram.c and lex.yy.c are provided for those without yacc -(or bison) and/or lex. - -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 - -Quinn C. Jensen -1374 N 40 E -Orem, UT 84057 - -home: jensenq@zdomain.com (preferred address for a56 correspondence) -work: jensenq@novell.com