Minspector Executive Summary
What It Is: Newton debugging tool modeled after the Newton Toolkit Inspector, but that runs on the Newton
Current version: 0.0a1 (!)
Released: June 22, 1998
System Requirements: Newton OS 2.1
Price: Free (unsupported)
Download Minspector 0.0a1 [50KB]
NOTE: This software is free and unsupported. That means it does not include technical support of any kind.
Minspector is a debugging tool modeled after the Newton Toolkit Inspector. When running, it captures and displays all Print(), Write(), and Display() statements, so that you can watch your bugs in action even when on the road. Also, like the real Inspector, you can enter code in the window and execute it. Minspector will print the result. And just to be ridiculous, Minspector features a Newton version of a Mac OS 8-style window, complete with zoom, resize, and minimize, so Mac-based Newton programmers will feel right at home.
How to Use Minspector
Install the Minspector package on your Newton. When you open the program, it starts running, and will begin to display any Print(), Write(), or Display() statements.
There are six buttons along the top:
- Prefs Button: opens the prefs window.
- Execute Button: executes the selected text. Note that you have to actually select the code you want to execute.
- Clear Button: clears the Minspector display.
- Suspend/Resume Button: stops Minspector from capturing and displaying any Print(), Write(), or Display() statements. This is useful when you want to keep Minspector open, but don't want to have it display new text. (Printing long strings or objects can slow the Newton down a lot).
- Export Button: offers menu for exporting Minspector text to the Note Pad, either all Minspector text or just the selected text.
- Keyboard Button: opens the ViewFrame Programmer's Keyboard if it is installed, otherwise it opens the normal alphanumeric keyboard.
Limitations, Known Bugs, and Issues
Minspector 0.0a1 is, as the version number would suggest, a very very early and potentially buggy version. Some of the things we know aren't finished or don't work:
Minspector 0.0a1 may conflict with other programs, such as NewtDevEnv, which also redefine the Print(), Write(), or Display() global functions. Opening the Minspector program will replace these global functions with Minspector's versions, and on close will restore the built in functions--not the replacement functions that other programs have created. We expect to be able to work around this in the future, in a more complete version of Minspector. For now, you may need to freeze/thaw such packages, or reboot the Newton, before the other apps' global functions are restored.
Don't expose critical data to Minspector. Remember, this is version 0.0a1.
Install Minspector on your internal store. It hasn't been tested on cards, and the global functions it defines are not remove-safe.
Scrolling. You can scroll by using the arrows or dragging the scroll thumb. However, it doesn't yet do live scrolling. Also, you can't tap in empty areas of the scrollbar and scroll page-by-page. Furthermore, the scroller sometimes does not update properly (resizing the window should fix this).
Resizing the window works but is absurdly slow. (The MacWindow.proto resized really fast before we put stuff in it. :-P)
There are no prefs.
Window title is off center until window is resized.
The actual printing functions are not extensively tested; they seem to work for the most part. One bad thing is that Minspector is particularly stupid about objects it has already printed; for example when printing a frame with a child frame that has a _parent slot, if the printDepth global variable is set deep enough, it will go right ahead and print the parent frame again. How pathetic.
- Minspector keeps a buffer of 12000 characters; after that it truncates text from the beginning of the display. Since there are no prefs yet, you can't change this limit. Note that this limit is not enforced until you use the Export button or close Minspector; Minspector's display data is stored in a VBO so while it is open it will keep as much text as storage memory allows.
Q: How does Minspector work?
A: It replaces the Print(), Write(), and Display() global functions with its own functions.
Q: Can I use Minspector and the NTK Inspector simultaneously?
A: Yes, Minspector's replacement functions call the original functions, so if both Minspector and the Inspector are connected/active then data will print out in both of them. However, the Inspector will not print inside a breakloop when Minspector is active.
Questions or Comments:
We'd love to hear from you if you actually use this. We will try to respond as time permits, but Minspector is a free product provided on a strictly "as-is" basis, and no support is guaranteed. Thanks for your understanding.