Unfortunately, Oracle has effectively decommitted Applets. This means you can no longer run the various CMP programs in a browser. You must download them and install them.
You must have the most recent Java
JRE (Java Runtime Environment) 1.8.0_121
32-bit or 64-bit. It no longer matters which browser you use.
Oracle has effectively decommited Applets, so this Applet will no longer run online in your browser, but it is a hybrid you
can also download, install and run it on your own machine as standalone
application. It will start and run faster if you do that. It will also
work safely even if you have disabled Java in your browser.
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
Due to a bug in Oracle’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.
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
Java Requirements and Troubleshooting
is a signed Java Applet (that can also be run as an application)
to MASM Balancer.
You are welcome to install it on your own website.
If it does not work…
For this Applet hybrid to work, you must click grant/accept/always run on this site/I accept the risk
to give it permission to allow MASMBalancer to accept data from the clipboard.
If you refuse to grant permission, the program may crash with an inscrutable stack dump
on the console complaining about AccessController.checkPermission.
In the Java Control Panel security tab,
click Start ⇒ Control Panel ⇒
Programs ⇒ Java ⇒ Security, configure medium security
to allow self-signed and vanilla unsigned applets to run.
If medium is not available, or if Java security is blocking you from running the program,
configure high security
and add http://mindprod.com
to the Exception Site List at the bottom of the security tab.
Often problems can be fixed simply by clicking the reload button on your browser.
Make sure the Java in your browser is enabled in the security tab of the Java Control panel.
Click Start ⇒ Control Panel ⇒
Programs ⇒ Java ⇒ Security ⇒
Enable Java Content in the browser.
This signed Java Applet (that can also be run as an application)
needs 32-bit or 64-bit Java 1.8 or later.
For best results use the latest 1.8.0_121 Java.
It works under any operating system that supports Java
e.g. W2K, XP, W2003, Vista, W2008, W7-32, W7-64, W8-32, W8-64, W2012, W10-32, W10-64, Linux, LinuxARM, LinuxX86, LinuxX64, Ubuntu, Solaris, SolarisSPARC, SolarisSPARC64, SolarisX86, SolarisX64 and OSX
You should see the Applet hybrid above looking much like this
If you don’t, the following hints should help you get it working:
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 mindprodcert2017rsa.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
UnZip the contained quaqua.jar
and install it in ~/Library/Java/Extensions
or one of the other ext dirs.
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.
Try upgrading to a more recent version of your browser,
or try a different browser e.g. Firefox, SeaMonkey, IE or Avant.
If you still can’t get the program working
click the red HELP button below for more detail.
If you can’t get the above Applet hybrid working
after trying the advice above and from the red HELP button below,
have bugs to report or ideas to improve the program or its documentation,
please send me an email at.
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.