Math.multiply() and Math.divide() are fundamental and are used by a lot of the other OS classes. Output uses them to position and draw characters and String uses them for integer to string conversion.
This means that until you get Math passing MathTest, all the I/O calls will likely fail.
Load MathTest.tst into the VMEmulator and set a breakpoint, name = "currentFunction" (use the dropdown) and value = "Math.abs". Run the test and you will be able to step through it and see what's going wrong with abs(-32767).
Also useful are breakpoints like name = "line", value = "Math.abs.0" if you want to stop after a particular line in a function is executed.