Acknowledgements
Table of Contents
MARS Red Acknowledgements
MARS Red is a modern derivative of MARS (MIPS Assembler and Runtime Simulator), a Java-based desktop application and command-line tool originally developed by Dr. Pete Sanderson and Dr. Ken Vollmar. Both have since retired, leaving MARS without any official updates since version 4.5 in 2014.
Obviously, MARS Red could not exist without MARS. Many, many thanks to Dr. Sanderson and Dr. Vollmar for the immense effort and passion they poured into this open-source project. MARS is an amazing tool, and the goal of MARS Red is to continue their mission to create a friendly user experience for everyone.
Like MARS, MARS Red is open-source. Thank you to everyone who has contributed to MARS Red!
About Dr. Pete Sanderson
Dr. Pete Sanderson is an Emeritus Professor of Computer Science in the Mathematical Sciences Department at Otterbein University.
- Email: psanderson@otterbein.edu
- Website: faculty.otterbein.edu/psanderson
About Dr. Ken Vollmar
Dr. Ken Vollmar is an Emeritus Professor in the Computer Science Department at Missouri State University.
- Email: KenVollmar@missouristate.edu
- Website: courses.missouristate.edu/KenVollmar (archived)
MARS Acknowledgements
This section is adapted from the original MARS documentation.
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
BasicStatement
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 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.
Thanks to everyone who uses MARS. Keep those cards and letters coming!