Please make sure you have the latest version of the JRE 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.

I have made changes to both programs to improve usability and fix annoying bugs. Please download and use my versions instead of the ones listed on their respective websites.

MARS - This is the MIPS simulator we’ll be using for the first half of the course.

Logisim - This is the circuit simulator we’ll be using for the second half.

If you run into problems with these programs, PLEASE let me know!

### Running MARS

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:

1. cd to the directory where you have the JAR file.
2. run this: java -jar Mars_2201_0902.jar
• try typing java -jar Mars and then hit the Tab key. It will complete the filename for you.

It should run. If it doesn’t, it will show some kind of error/exception. Please let me know if you get an error when running it, and report this info to me when you do.

### 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

### Changes to Logisim

• Tunnels will appear “ghosted” if they have no partners (unconnected to anything)
• Tunnels can now be color-coded
• No more asynchronous 0 clear on registers
• Plexers now default to NOT having an enable input
• Gates now default to narrow with 2 inputs
• On mac, program now exits when closing last window
• Fixed a bug when changing tunnel names that would make the circuit stop responding