ASA - A Simple Assembler by S.Goodwin Copyright 1994-6 Abstract This is a simple cross-assembler for creating code to work with the 6809 Emulator, whilst running under the Amiga's CLI or shell. It can produce code (with or without headers) and a symbol file. -- Usage -- First, you must write your assembler code into a plain ASCII text file. Then type 'asa file_name', where 'file_name' is the file name of your assembler code. This will then output: ASA - A Simple Assembler - Copyright Steven Goodwin 1994-6 Pass 1 Pass 2 Saving Code Saving symbols table The code will be saved into a file of the same name, but with an '.6809' extension. When loaded into the emulator, this assembler code will be placed (by default) at 20000 ($4e20). The symbols file will have the '.sym' extension, and can be loaded through the symbols requester. To get a full list of options available just type 'asa' on its own: ASA - A Simple Assembler - Copyright Steven Goodwin 1994-6 asa [-cFILE] [-oNUM -bNUM -hC -sFILE -xC] filename Use "asa help" for a full description... Using 'asa help', we get: ASA - A Simple Assembler - Copyright Steven Goodwin 1994-6 asa [-cFILE] [-oNUM -bNUM -hC -sFILE -xC] filename -cFILENAME Uses a particular configuration file. -oNUMBER Specifies the origin of the assembled machine code. -sFILENAME Save out symbol table with name. -bNUMBER Sets a buffer size for the machine code produced. -h(y or n) Include an assembler header. -x(y or n) Remove original extension on source name? If the filename starts 'file.' the source file is used, with the appropriate extension. The word 'screen' sends it to the terminal, and 'none' disables the option. -- Features -- o Free format assembly text (i.e. include spaces/tabs in most places and the system will *not* complain at you) o Entire (??) instruction set has been implemented. o Hard-wired lexical analyser and parser. Whew! That took some patience! But as a consequence it should be *very* fast. o Works with full implementations of, FCC - allows text (within quotes) and byte data FCB - store data bytes into memory FDB - store words in memory RMB - leaves a gap of x bytes o Label referencing forwards/backwards for all instructions. o Saves in either 'memory block' or 'assembler snapshot' format. The latter containing a header indicatings its origin. o Can use configuration files to specify set-up. Non-Features (i.e. those I should have coded, but didn't!) o The EQU op-code will only produce output in the symbols file. The symbols themselves can not be used within the assembler file itself. o No ORG op-code. Won't be implemented for a while, due to the file format. o Poor error handling. o PC relative addressing with LEA is not featured. - Creation - This was created (primarily) to allow me to write and test routines for the 6809 emulator. However, it was deemed to be of use, and so was released with it. No guarantees are made for either piece of software, particularly as 99% of it was reverse engineered from code examples from books, magazines and my own personal collection. (apologies to .Kinn for losing your files :( ) ASA was compiled by Philip Hart on SAS/C v 6. -- Copyright Notice -- The 'ASA' assembler is part of the 6809e emulation system, comprising of the assembler and emulator. The 'software' incorporates both parts of the system. This software, and all its associated documents, is copyright 1996 by Steven Goodwin. The version provided here may be freely distributed as long as no files are edited or deleted, and the copyright notice contained herein is not modified. No warranties, implied or otherwise, are given and this software is used at the users own risk, and no liability can be accepted for any damaged caused, either directly or indirectly, from this software.