I. Introduction

asm990 is a cross assembler for the TI 990 computer. It does not support
macros and should be compatible with the TXMIRA assembler. Many features
that are in SDSMAC are also included. Including, conditional assembly,
all 990/12 opcodes, COPY in source, logical expressions, and improved
arithmetic expressions with parenthesis.


II. Build asm990

Lunix/Unix:

$ make

The make attempts to figure out which system to make for using uname.

WinBlows:

$ nmake nt


III. To run asm990

$ asm990 [-options] -o file.bin file.asm

Where options are:

   -c		- "Cassette" mode. Object can be loaded using the ASR733 
                  cassette ROM loader.
   -r           - Define registers R0-R15
   -x           - Generate cross reference
   -m model     - Assemble for CPU model = 4, 5, 9, 10 and 12, default = 12 
   -l listfile  - Generate listing to listfile
   -Iincludedir - Include directory for COPY


IV. Supported Pseudo Ops

   AORG   - Absolute ORiGin (absolute assembly).
   ASMELS - Conditional ASSmebly ELSe
   ASMEND - Conditional ASSmebly END
   ASMIF  - Conditional ASSembly IF
   BES    - Block Ended by Symbol (reserve storage).
   BSS    - Block Started by Symbol (reserve storage).
   BYTE   - BYTE data initialization.
   CKPT   - ChecK PoinT register, used for /12 string instructions.
   COPY   - COPY source from a file into the assembly.
   DATA   - Word DATA initialization.
   DEF    - DEFine global.
   DORG   - Dummy ORiGin (templates).
   DXOP   - Define XOP (extended instructions).
   END    - END of assembler input.
   EQU    - EQUate symbols to values.
   EVEN   - Make pc EVEN (set to word boundary).
   IDT    - Program IDenTifier.
   LIST   - Turn LISTing on.
   LOAD   - Force LOAD a module at link time.
   NOP    - No OPeration (generates JMP $+1).
   OPTION - Listing OPTIONs.
            10 - Process 990/10 instructions.
            12 - Process 990/12 instructions.
	    BUNLIST - Byte unlist.
	    DUNLIST - Data unlist.
	    NOLOST - Do not generate a listing.
	    SYMT - Generate symbol table in object.
	    TUNLIST - Text unlist.
	    XREF - Generate cross reference.
   PAGE   - Start linsting line on next PAGE.
   REF    - Define external REFerence.
   RORG   - Relocatable ORiGin.
   RT     - ReTurn (generates B *11).
   SETRM  - SET Right Margin.
   SREF   - Secondary REFerence.
   TEXT   - TEXT data initialization.
   TITL   - TITLe of the assembly, placed in listing header.
   UNL    - UNList, turns listing off.
   XVEC   - Transfer Vector.


V. Extensions

asm990 adds several extensions.

V.1 Added Pseudo Ops

   DOUBLE - Four word (64 bit) DOUBLE precision floating point initialization.
   FLOAT  - Two word (32 bit) single precision FLOATing point initialization.
   LDEF   - Long DEFine allows 32 char globals.
   LONG   - Two word (32 bit) initialization.
   LREF   - Long REFerence allows 32 char externals.
   QUAD   - Four word (64 bit) initialization.

V.2 Literal support

Literals have been added for the source operands of all instructions. There are
literals for the modes as follows:

   =@     - Address of symbol literal.
   =B     - Byte literal (right justified in memory word).
   =D     - Double precision floating point literal.
   =F     - single precision Floating point literal.
   =L     - decimal Long (32 bit) literal.
   =Q     - decimal Quad (64 bit) literal.
   =W     - decimal Word literal.
   =X     - heX word literal.

Examples of use:

   MOV   =D54,R5         Get the value of 54 in to R5

   LD    =D3.1415926     Get the value of PI into the FPA
   
   AM    =Q245643,R4,8   Add 64 bit (8 byte) value to R4,R5,R6,R7

   MOV   =@ENTRY,R5      Get address of ENTRY in R5

The literals are output after the END statement in an assembly.
