MASM Balancer
©1996-2012 Roedy Green, Canadian Mind ProductsThis view this page, you should have a recent Java installed,
preferably 32-bit
JRE (
Java Runtime Environment)
1.7.0_04.
This Applet will help you find out where in your MASM (Microsoft Assembler) Microsoft *.asm assembler program
you have mismatched segment/ends macro/endm proc/endp or if/endif. It works by displaying your program in tidied form
with coloured backgrounds that encode the nesting. By eyeballing the colours, you can quickly see anomalous patterns,
and find where the problem is.
It does not modify your original program in any way. You copy/paste a program, or a piece of a program, into this
Applet/application hybrid then click Paste.
There is a program called BraceBalancer that does an analogous
task for Java, C, C++, Pascal, Modula, CSS (Cascading Style Sheets) etc.
There is also a tidy program for MASM that aligns your code in four neat columns called MASMTidy.
- Copy MASM source code with possibly unbalanced segment/ends, macro/endm, proc/endp or if/endif into the
clipboard from your editor or IDE (Integrated Development Environment). In Windows use Ctrl-C.
- Then click Paste to paste it into this program.
- Anomalies in the background colours of the operators should help you quickly find the error.
Due to a bug in Sun’s code that I cannot figure out how to bypass, if you move away from this page in your
browser and come back, this Applet will no longer work. You must exit the browser and restart to make it work
again.
Colours
- Bright yellow: you have more end markers than start markers, e.g. more endifs than ifs,
in other words negative nesting. This is always an error.
- White: no nesting.
- Red: indicates struct-ends nesting. The lighter the red, the higher the level, i.e. not as deep nesting.
- Green: indicates macro-endm nesting. The lighter the green, the higher the level, i.e. not as deep nesting.
- Violet/blue indicates proc-end nesting. The lighter the violet, the higher the level, i.e. not as deep nesting.
- Grey indicates if-endif nesting. The lighter the grey, the higher the level, i.e. not as deep nesting.
When you select separate balancing you will also see | markers in the left margin to indicate nesting depth.
The MASMBalancer program works by marking up your program with HTML (Hypertext Markup Language). Java has quite a few bugs rendering HTML. You may notice lines improperly
collapsed together. To view the marked up code accurately, use the export button, export to a *.html file and view it with your browser.
If, MASMBalancer, the above MASM Balancer signed Java Applet (that can also be run as an application) does not work…
- Often problems can be fixed simply by clicking the reload button on your browser.
- Make sure you have both JavaScript and Java enabled in your browser.
- This signed Java Applet (that can also be run as an application) needs 32-bit (not 64-bit) Java 1.5 or later.
For best results use the latest 1.7.0_04.
If you have both 32 and 64-bit JVMs installed,
in the Java Control Panel, configure your 32-bit java.exe as the user JVM
and your 64-bit java.exe as the system JVM.
You also need a recent browser.
- It works under any operating system that supports Java e.g. W2K/XP/W2003/Vista/W7-32/W7-64/Linux/Ubuntu/Solaris/OSX
- You should see the Applet hybrid above looking much like this screenshot. If you don’t, the following hints should help you get it working:
- For this Applet hybrid to work, you must click grant/accept to give it permission to allow MASMBalancer to accept data fram the clipboard..
If you refuse to grant permission, the program may crash with an inscrutable stack dump on the console complaining about AccessController.checkPermission.
- Optionally, you may permanently install the Canadian Mind Products code-signing certificate so you don’t have to grant each time.
- If the above Applet hybrid appears to freeze-up, click Alt-Esc repeatedly to check for any buried permission dialog box.
- If you have certificate troubles, check the installed certificates and remove or update any obsolete or suspected defective certificates. The only certificate used by this program is mindprodcert2012dsa.cer.
- Especially if this Applet hybrid has worked before, try clearing the browser cache and rebooting.
- To ensure your Java is up to date, check with Wassup. First, download it and run it as an application independent of your browser, then run it online as an Applet to add the complication of your browser.
- If the above Applet hybrid does not work, check the Java console for error messages.
- If the above Applet hybrid does not work, you might have better luck with the downloadable version available below.
- If you are using Mac OS X and would like an improved Look and Feel, download the QuaQua look & feel from randelshofer.ch/quaqua. UnZip the contained quaqua.jar and install it in ~/Library/Java/Extensions or one of the other ext dirs.
- If you are using Microsoft Internet Explorer 7, 8 or 9, try another browser. Seriously. Microsoft has taken great pains, over and over, to screw up Java and every other multi-platform standardisation.
- If you are using Microsoft Internet Explorer 7, 8 or 9, you must click to allow blocked content permission for Active X to run. This also gives permission to Java to run. Click the Information bar, and then click Allow blocked content. Unfortunately, this also allows dangerous ActiveX code to run. However, you must do this in order to get access to perfectly-safe Java Applets running in a sandbox. This is part of Microsoft’s war on Java. Don’t put up with it! Use a different browser.
- If you are using Microsoft Internet Explorer 9, makes sure the Java Plug-In SSV helper add-in is installed and enabled.
If it is not, try reinstalling the Java JRE.
- If you have Windows 7 64-bit
and Internet Explorer 64-bit,
in theory you can use 64-bit Java,
but I never been able to get it to work.
- Try upgrading to a more recent version of your browser, or try a different browser e.g. Firefox, SeaMonkey, Safari or Avant.
- If you still can’t get the program working click HELP for more detail.
- If you can’t get the above Applet hybrid working after trying the advice above and from the HELP button below, have bugs to report or ideas to improve the program or its documentation, please send me an email at
.
Get New Java Get New Browser

| Package | Version | Released | Licence | Language | Notes | |
|---|

MASMBalancer |
1.3 |
2012-03-23 |
free |
Java |

❘ precis
❘ screenshot
❘ browse source repository
for the current version of MASMBalancer.
MASMBalancer helps find unbalanced segment/ends macro/endm proc/endp if/endif in Microsoft *.asm assembler source code.
1,850K
zip for MASMBalancer Java source, compiled class files, jar and documentation to run on your own machine either as an application or an Applet.
Runs on any OS that supports Java e.g. W2K/XP/W2003/Vista/W7-32/W7-64/Linux/Ubuntu/Solaris/OSX.
First install the most recent Java.
To install, extract the zip download with WinZip,
(or similar unzip utility) into any directory you please,
often J:\ — ticking off the
use folder names option. To check out the corresponding source from the Subversion repository, use the TortoiseSVN repo-browser to
access masmbalancer source in repository with [Tortoise] Subversion client on wush.net/svn/mindprod/com/mindprod/masmbalancer/.
After you have installed the jar, you can run it as an application. Type: java -jar J:\com\mindprod\masmbalancer\masmbalancer.jar
adjusting as necessary to account for where the jar file is.
download ASP PAD XML program description for the current version of MASMBalancer.
MASMBalancer is free. Full source included.
You may even include the source code, modified or unmodified
in free/commercial open source/proprietary programs that you write and distribute. Non-military use only. |
|
|
| |
|---|
  |
You can get the freshest copy of this page from: |
or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror) |
| http://mindprod.com/applet/masmbalancer.html |
J:\mindprod\applet\masmbalancer.html |
 | Please email your feedback for publication,
letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording,
broken/redirected link reports, suggestions to improve this page or comments to
Roedy Green :
 .
If you want your message, your name or email kept confidential, not considered for public posting, please explicitly specify that.
Unless you state otherwise, I will treat your message as a letter to the editor that I may or may not publish in the feedback section. After that, it will be too late to retract it.
If you disagree with something I said, please quote it and cite the web page where you found it, tell me why you think it is wrong,
and, if possible, provide some supporting evidence. Threatening to kill me or spouting obscenities has yet to persuade me to change my mind. |
| Canadian Mind Products |
|
| mindprod.com IP:[65.110.21.43] |
| view Blog | Your face IP:[38.107.179.214] |
| Feedback | You are visitor number
11. | |