[Skip top navbar]

Andrew Gregory's Web Pages

Marriners Falls, Approx. 38°42'08"S 143°38'32"E


OPA Cloak 3a 3c 3mx Siena Workabout mx


OPA Cloak Version History
  • Improved speed - up to eight times faster!
  • Fixed problem of not removing all redundant procedures
  • Exclusion files now support #include
  • Added dialog to set cloaking options
  • Options are saved in an INI file
  • Added a statistics display
  • Messages are in a resource file
  • Fixed problem renaming temporary files
  • Fixed problem with excluding arrays
  • Initial release


A freeware program that obsfucates procedure and GLOBAL variable names and removes redundant procedures. It does not do variable name compaction - that would require re-writing the internal q-code of the program.

There are no explicit limits to the size of program that can be processed, other than available system memory and storage space.

On my Series 3mx OPA Cloak took 1 minute 48 seconds to process a 591 procedure, 188k file. 74 redundant procedures were removed, saving about 8k.


OPA Cloak understands both OPA and OPO files. It will rename all procedure and GLOBAL variable names in the file. Since some procedures may get called indirectly (via the @-operator) or you might LOADM/UNLOADM some modules that call procedures or refer to GLOBAL variables, OPA Cloak will read an exclusion file that lists procedure and GLOBAL variable names that are not to be altered. This file must be in the same directory and have the same base name as the source code file for the OPA / OPO file, but have the extension EXC. For an example, here is the exclusion file that OPA Cloak uses:

PROC init%:
PROC hdlcmd%:
PROC go1%:
PROC go2%:

If OPA Cloak were to have any GLOBAL variables that needed excluding they would be listed like:

GLOBAL myvar1%()
GLOBAL myvar2&

OPA Cloak will rename the original file to somename.~1, or if that exists, somename.~2, etc, before writing out the new compacted somename.OPA. If the original source code for somename.OPA was B:\OPL\somename.OPL, then the exclusion file OPA Cloak will look for is B:\OPL\somename.EXC.

The OPA Cloak program is developed using my Programmer's Toolbox library. Before I ran OPA Cloak on itself, it was 28k long. Removal of redundant procedures saved 10k, bringing it to its present 18k, a saving of 36%.

Usage with the Programmer's Toolbox

If you are using my Programmer's Toolbox library, add the following to your program's exclusion file:

#include "\opl\lib\opllib.exc"

Alter as necessary depending on where you have your copy of the library.


opacloak.zip (9.9K) OPA Cloak program