MARS Acknowledgements
Updated 18 August 2014
Pete and Ken would like to acknowledge the many helpful contributors to MARS.
It has succeeded beyond our wildest expectations and for this we are most grateful.
Its success would not be possible without your feedback, suggestions and assistance!
We are pleased to recognize these contributions to release 4.5:
- Torsten Mahne, Umberto Villano and others who took care of the
bug with certain European keyboards that require an Alt key combo to form
essential MIPS assembly characters like $ and #. I had no means of testing it.
- Eric Wang at Washington State University, who suggested adding
cursor positioning to the Keyboard and Display MMIO Simulator tool.
- Marcio Roberto and everyone else involved in the development of MIPS X-Ray tool, which has been
around for several years but only now added to the release. Sorry for the delay.
We also appreciate the contributions others have made to previous releases:
- Carl Burch of Hendrix College, who developed the mechanism for
simulating the execution of straight binary code. Previously, execution was based on
ProgramStatement objects generated by the assembler. This, combined with the added capabilities
to write to the text segment and
branch/jump into the data segment at runtime, permits one to produce self-modifying
programs, simulate buffer overflow attacks, and the like.
- Tom Bradford, Slava Pestov and others, who developed the jEdit Syntax Package (syntax.jedit.org)
at the heart of the syntax-aware color highlighting editor. It was old but the licensing was right and it was
written for embedding into Java applications.
- Mohammad Sekhavat from Sharif University in Tehran, who developed the
macro capability.
- Greg Gibeling of UC Berkeley, who introduced capabilities into his customized version
of MARS that have subsequently been expanded and integrated into our release.
These include the ability to dump MIPS memory contents to file and parser improvements
to distinguish signed from unsigned hexadecimal constants.
- Eric Shade of Missouri State University, who suggested several improvements to
pseudo-instruction expansions such as elimination of internal branches
and improvements to the sign-extended loading of 16-bit immediate operands.
- Saul Spatz of the University of Missouri Kansas City, who noticed and provided a solution
for a flaw in the calculation of byte-oriented addresses in the simulated MIPS memory stack segment.
He has also suggested several improvements that we have implemented.
- Zachary Kurmas of Grand Valley State University, who suggested several bug fixes and
who encorporated MARS into his own successful JLSCircuitTester digital logic simulator software.
- Felipe Lessa, who contributed the Instruction Counter tool and suggested a solution
for the problem of MARS inability to launch when stored in a directory whose name
contained non-ASCII characters.
- Carl Hauser of Washington State University, who pointed out and provided a solution to
a flaw in the Keyboard and Display Simulator Tool in how it used the Exception Level bit in the
Coprocessor1 Status register. Also thanks to Michael Clancy of UC Berkeley for pointing out a flaw in the
tool's mechanism for resetting the Transmit Ready bit when operating in kernel memory.
- Dave Poplawski of Michigan Technological University, for his assistance in working through
some issues with signed/unsigned constants and with output redirection.
- Ingo Kofler of Klagenfurt University in Austria, who contributed two Tools: a tool
to collect Instruction Statistics, and a tool to simulate branch prediction
with a Branch History Table.
- Brad Richards and Steven Canfield from the University of Puget Sound, for providing
a technique that improved file loading performance.
- Jan Schejbal and Jan-Peter Kleinhans of Darmstadt technical university in Germany, for
suggesting and providing a patch to display Run I/O text in a constant-width font.
- Max Hailperin of Gustavus Adolphus College, who made several
improvements to the MIDI syscalls.
- David Patterson of UC Berkeley, for making time in his busy schedule for Ken's demo of MARS.
- Denise Penrose and Nate McFadden of Morgan Kaufmann Publishers, for their
assistance as editors of
Computer Organization and Design.
- Ricardo Pascual of University of Murcia in Spain, who contributed the code to permit input syscall
keystrokes to be typed directly into the Run I/O window instead of through a popup dialog.
- Didier Teifreto of Université de Franche-Comté in France, who contributed the Digital Lab Sim tool.
- Facundo Agriel of the University of Illinois at Chicago, who added font selection to the Keyboard and
Display Simulator tool.
- Patrik Lundin for contributing the code to add scrolling to the keyboard and display simulator.
- Otterbein students Robert Anderson, Jonathan Barnes, Sean Pomeroy and Melissa Tress
for contributing the new command-mode options for specifying MARS exit codes when
assembly or simulation errors occur. This was sparked by a comment from
Zheming Jim of the University of South Carolina.
- The unknown audience member at our SIGCSE 2006 conference presentation,
who suggested that MARS would also be useful running in the background
in support of an external application. This led directly to our development of the Tools
framework and API that truly distinguishes MARS from all other MIPS simulators.
We would also like to recognize many others who have contacted us to point out bugs, suggest improvements, or engaged us in
interesting correspondence. The bugs have been addressed and the
improvements either implemented or added to our wish list. Correspondents include:
William Bai,
Miguel Barao,
James Baltimore,
Jared Barneck,
Bruce Barton,
Rudolf Biczok,
Battista Biggio,
Carl Burch,
Ram Busani,
Gene Chase,
Lucien Chaubert,
David Chilson,
Sangyeun Cho,
Donald Cooley,
Bernardo Cunha,
John Donaldson,
Abhik Ghosh,
Michael Grant,
Thomas Hain,
John Ham,
Kurtis Hardy,
Justin Harlow,
David Harris,
Bill Hsu,
Pierre von Kaenel,
Amos Kittelson,
klondike,
Geoffrey Knauth,
Sudheer Kumar,
Yi-Yu Liu,
Jeremie Lumbroso,
Paul Lynch,
Richard McKenna,
William McQuain,
Adam Megacz,
Alessandro Montano,
Judy Mullins,
William Obermeyer,
Ivor Page,
Gustavo Patino,
Christoph von Praun,
Klaus Ramelow,
David Reimann,
Patricia Renault,
André Rodrigues,
Robert Roos,
Joseph Roth,
Marco Salinas,
Peter Schulthess,
Ofer Shaham,
Scott Sigman,
Sasha Solganik,
Timothy Stanley,
Gene Stark,
Josh Steinhurst,
Michelle Strout,
Didier Teifreto,
Mitchell Theys,
Massimo Tivoli,
Dwayne Towell,
Duy Truong,
Judah Veichselfish,
Vineeth,
Daniel Walker,
Janyce Weibe,
Ben West,
and
Armin Zundel.
The Mars.jar file contains all source code and, starting with Release 3.6,
the files necessary to generate a new jar file should you wish to make changes to
the source and repackage it for your own use. Let us know if you do this, so we
can consider your changes for the general release.
Thanks to everyone who uses MARS. Keep those cards and letters coming!