Please make sure you have the latest version of the JDK installed. You can use
java -version on the command line to see. Make sure it’s at LEAST 1.9 or 10.0. (Yeah. They changed their version numbering at some point.)
You can install the JRE from this link. Pick the Java SE JDK 11 or 13. Do not get the Java 8 JRE.
I have made changes to both programs to improve usability and fix bugs. Please download and use my versions instead of the ones listed on their respective websites.
This is the MIPS simulator we’ll be using for the first half of the course.
Here’s a newer version that should hopefully fix two bugs: the really delayed MIDI notes, and being unable to stop the program if the sleep syscall (32) is given a large duration.
First, try double-clicking the JAR file. This works for a lot of people.
If it doesn’t, go into your terminal/command line, and do the following:
cdto the directory where you have the JAR file.
- run this:
java -jar Mars_2201_1025.jar
- try typing
java -jar Marsand then hit the Tab key. It will complete the filename for you.
- try typing
If you get an error saying this:
java.lang.UnsupportedClassVersionError: Mars has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 53.0
Then you need to both install the newest JRE and uninstall the old version of Java.
If you get some other error, please let me know and show me the exact error you get.
Changes to MARS
- Adds the “Keypad and LED Display Simulator” tool which you will be using for your project (and some of the labs)
- Allows you to write registers without the dollar signs
- Looks much more reasonable
- Fixes display order of ASCII strings in memory view
- Added “Clear Run IO on Assemble” setting
- Other tiny UI improvements
- Removes several la pseudo-ops which confused everyone
- Added push/pop pseudo-ops so macros are no longer needed
- Makes it possible to write destination on the left in stores
- Assembler gives an error if it finds instructions in the data segment - no more forgetting .text
- Added binary number literals, like 0b100101
- Sets the default settings to something more reasonable
- If you have “Initialize PC to global main” enabled, but don’t have a global main, it will now give an error
- Fixed bug where single-stepping would cause execution to really slow down
- Changed some syscalls (time, random, some input ones) so that they return their results in
a0for some bizarre reason