This release is Version 4.4.2.

See the file INSTALL for information on compiling Spim.

Spim versions begining with 4.4.1 are on a separate
developement track from Spim versions after 5.0.
This is due to changes to the GNU licence released
with Spim 5.0.  Spim 5.0 has many features not present
in this version, including cycle level simulation.
Spim 4.4.2 has features not in Spim 5.0.  Most notible
is that this version can assemble SAL (Simple Assembly
Launguage).

Spim version 4.4.2 is based on Spim version 4.4.
Version 4.4 was written by Jim Larus and Alan Siow.
Version 4.4.2 is covered by the GNU licence
(see COPYING).  Version 4.4.2 includes modifications
and bug fixes by Scott Kempf.  These modifications allow
Spim to exectute SAL code, an assembly launguage similar
to MIPS assembly language, but easier to use.  SAL was
designed by James Goodman, Scott Kempf, and Karen Miller.

Additions and changes to Spim Version 4.4 are copyrighted by
Scott Kempf and are distributed under the terms of the GNU
General Public License, Version 1.  Please read this document,
which is in the file COPYING.

These additions and changes include, but are not limited too:
the SAL assembler, error handling improvements, the memory
mapped I/O feature, improved installation, improved testing,
and the interrupt driven trap handler.

// You must not use -DNOMEMIO in the Makefile to use memory mapped I/O.

Ftp to pipe.cs.wisc.edu and look in pub/spim.tar.Z .
For ancient compilers that do not support ANSI,
use pub/nonansi.spim.tar.Z.

For e-mail on future updates (until May 1993) mail scottk@cs.wisc.edu.
Until May 1993, please feel free to mail any bugs, complaints,
or comments to me at scottk@cs.wisc.edu.  Portability is a
major consern of mine, so I'd even like to know minor changes
needed to make spim compile on your system.

			Scott Kempf

This directory contains SPIM--an assembly language MIPS R2000/R3000
simulator.  The files are:

Makefile
	The make file for the system.

README	This file.

COPYING
	GNU copyright notices.

VERSION
	Version number of system.


buttons.c
	X-interface code for command buttons.

data.c
	Code to handle data directives.

inst.c
	Code to build instructions and manipulate symbol table.

mem.c
	Code to maintain memory.

memio.c
	Code to handle memory mapped I/O.

run.c
	Instruction simulator.

spim-utils.c
	Misc. routines.

spim.c
	Top-level interface.

sym_tbl.c
	Symbol table.

textact.c
	X-interface code.

windows.c
	X-interface code to build windows.

xspim.c
	Top-level X-interface.

xutils.c
	X-inteface code.

*.h
	include files for public funtions

parser.y
	Parser for lines of assembly instructions.

scanner.l
	Scanner.


trap.handler
	Standard trap handler.

Tests
	Subdirectory contain torture tests to verify that SPIM works.

spim.tex
mips.id
xinterface.id
	TeX document that describes SPIM.

spim.ps
	Postscript version of TeX document.



To make spim, edit the first few lines of the Makefile to set the
parameters for the target machine, then type "make test".

To make xspim, type "make xspim."


SPIM is copyrighted by me and is distributed under the terms of the
GNU General Public License, Version 1.  Please read this document,
which is in the file COPYING.


Although SPIM is free software, it cost time and money to produce.  If
you use SPIM and work in industry, you can help support development of
software of this sort by having your company make a unrestricted
donation to my research program.  To do this, mail me check (address
attached) payable to ``Computer Sciences Fund -- University of
Wisconsin Foundation.''  The foundation's federal taxpayer
identification number is 39-074-3975.

James Larus
larus@cs.wisc.edu
Computer Sciences Department
1210 West Dayton Street
University of Wisconsin
Madison, WI 53706
608-262-9519
