home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 7
/
FreshFishVol7.bin
/
new
/
dev
/
cross
/
adev11
/
readme
< prev
next >
Wrap
Text File
|
1994-09-13
|
17KB
|
333 lines
/*
* Copyright 1992 Stan Burton
*
* 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, and that the name of Stan Burton not be used
* in advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. I make no representations
* about the suitability of this software for any purpose. It is
* provided "as is" without express or implied warranty.
*
* THE ABOVE-NAMED DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT
* SHALL STAN BURTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
* Author:
* Stan Burton
*
* 1978 26 St. SE
* Medicine Hat, AB, CANADA
* T1A 2G8
*/
SOME OF THESE PROGRAMS REQUIRE AMIGADOS 2.0
slink requires V2.0, slink1.3 is a slower AmigaDOS V1.3 compatible
replacement for slink. All other programs are V1.3 and 2.0 compatible.
INSTALLATION
Installation is simple. If you are reading this, and logically you must
be, then step 1 is done.
2. The directory containing this file and the other files unpacked from
the archive should be added to your path (see warning about slink
below).
3. Assign ADev11: to this directory. This is required mainly for the
C compiler.
4. Read the docs! I know you won't until you run into trouble, but make
sure you have read them before you come to me for help.
CONVERTING FROM MOTOROLA STANDARD FORMAT
This assembler differs from the Motorola format in a few ways that will
be noticed when you try to assemble such a file.
1. The '*' used to indicate current address is replaced with '.'.
2. The usage 'sym1 equ *' would translate to 'sym1 equ .' which has a
bug (see bug list); it should really be just 'sym1'.
3. String constants are enclosed in double quotes instead of single
quotes.
4. The bit operands had a space separating the mask and label (if one),
This assembler uses a comma to separate these.
5. The arguments of bit operations such as BRCLR and BRSET must be
separated by commas; not spaces as in the Motorola format.
6. Sasm requires a PROCESSOR pseudo-op at the start of the source file.
Without it there are no instruction mnemonics only pseudo-ops.
Other problems, unrelated to the format are;
1. Most Motorola files did not use segments, they must be used here.
COMMON PROBLEMS
slink reports 'Error 600: Invalid command MEM'
You own SAS/C 6.x and are seeing a name clash. You will have
to refer to slink using a path, usually ADev11:slink
slink reports 'unknown hunk type'
the assembler may have been aborted leaving a partial file
the assembler source file may have code outside of a segment
sc11 reports a problem in byte_length
certain errors in the C source file may cause SC11 to emit
68000 instructions. For example
char c, *chr_ptr;
c = *(char *)*chr_ptr;
this may be a legitimate bug. If there is nothing wrong
with the C source, reduce the source file as much as
possible and send it to me.
KNOWN BUGS ---------------------------------
SC11 - see bug_list in C/
SAsm - a DC.l with a symbol can cause assembler to hang
ALL - the docs should have elaborative error message descriptions
SDis - requires at least one non-executable byte after the last executable
opcode in memory or it will not print out the disassembled data
Slib - the -r option does nothing.
SSim - the PC reg does not change while single stepping
SC11 - direct structure to structure assign with sizeof() > 6 is wrong
SSim - some interrupt peripheral models do not check for interrupts when
peripheral registers are modified.
SSim - the memory window does not update for changes to the internal registers
as a result of instruction execution, these changes can be seen by
activating the Addr gadget and hitting return.
RELEASE CHANGES
3.0 ----------------------------------------
SAsm - fixed bugs in expression operations /, >>, << and ?: with respect
to constant expression tracking
SC11 - fixed bug related to operations on a dereferenced value
SC11 - fixed bug related to the size of the result of boolean operations
SSim - Added a monitor display option for SCI simulation
SSim - SSim now accepts the name of a simulation file (.sim) when started
from the CLI
SSim - SSim now accepts some screen/monitor options when started from
the CLI
SSim - Improved interrupt checking on standard SCI and all Timer models
SSim - Memory address base now updates memory address
SSim - single chip/expanded mode is now stored in .sim file
SSim - fixed problem with CPY instruction
SC11 - fixed a couple problems associated with the size of parameters passed
to functions
SSim - interrupts now force the I bit set
SC11 - corrected problem with passing constants as pointer function parameters
SSim - corrected problems with SWI and WAI
SSim - fixed problem with TAB and TBA
SC11 - most structure to structure assignments corrected
SSim - corrected problem with RTI instruction
SSim - corrected problems with BSET and BSR instructions
SAsm - corrected code generation for certain modes of 6805 binary opcodes
added mul opcode
SAsm - incorrectly computed the relocation address (+1) for BSET/BCLR
direct mode instructions causing bad direct and memory bytes
SSim - has been added to this release (see docs)
examples - I thought that the Buffalo monitor for F1 was already included,
now it is.
2.1 ----------------------------------------
SC11 - The code generator optimization intended for brclr optimizations
could be used with the wrong address mode.
SC11 - A particular combination of events in a switch statement would
omit the generation of a compare instruction
SAsm - I have added high level if-else-endif statements. See the docs.
Docs - There is now an AmigaGuide version of the documents.
Slink - has a new reserved keyword that makes it possible to generate a
checksum for your rom. See the docs.
Slink - would leave libraries open and memory unfreed if an error occurred
during the library scan.
2.0b ---------------------------------------
SC11 - situations such as a large bodied if statement in a for loop could
cause a byte_length error message
C_lib.lib - added getch a non-echoed version of getc
C_lib.lib - fixed incorrect handling of default in switch stmt
SC11 - could generate a short branch where a long branch is required
if there are DC.x statements in between.
C_lib.lib - various problems with stdio functions fixed
C_lib.lib - more functions added (strcpy, strcmp, strcat plus 'n' versions
struct.inc - new file for defining C like structures in assembly
stdio.h - added conditional definition of NULL
SAsm - fixed incorrect generation for read-modify-write ops using direct,
or either indexed mode
SAsm - enabled SAsm to recognize and ignore STABS and STABN debug info
SC11 - fixed minor peep-hole optimizer bug, not recognizing 'tba'
SC11 - enabled the generation of debugging information
SAsm - improved handling of equated symbols when used in operations
so that un-needed promotions are not done.
SAsm - improved handling of equated symbols to reduce promotions to
word addr from byte addr when not required. For example
lab equ 4
ldaa lab <== this was formerly promoted to word addr
SAsm - corrected reversed opcodes for 6805 word addr mode and indexed word
addr
SC11 - docs now contain a list of C functions but no function descriptions
especially required for the non ANSI funcitons
2.0a ---------------------------------------
SC11 - added optimization to reduce if/while/conditional (*ptr & 0x80)
type expressions to brset/brclr instructions.