[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 486: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4675: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3817)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4677: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3817)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4678: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3817)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4679: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3817)
PocketMatrix • View topic - Relocating CalliGrapher from the main memory – free up 1.2Mb
Page 1 of 1

Relocating CalliGrapher from the main memory – free up 1.2Mb

PostPosted: Jul 11, 2005 @ 8:26pm
by Menneisyys
The files the CalliGrapher install installs into \Windows total at 1.2 Mbytes and can all be either relocated to the so-called “System Path” (more on this later), that is, to, say, the built-in File Store; or removed. This is certainly welcome news for most Calligrapher users, especially for those that have a 32/64Mbyte ROM device.

This post applies to 8.0beta (you can participate in the beta testing program at http://www.calligrapher.net/ and download the unrestricted (it only has a date expiry lock) beta for free. Make sure you install it to alternative media (File Store/ a memory card) and not in the RAM.) users and, most probably, to 7.x users too.

Second, get a Registry Editor with searching capabilities. For example, both the commercial Resco Registry Editor ( http://www.resco.net/pocketpc/explorer/ ) and the free PHM Registry Editor ( http://www.phm.lu/Products/PocketPC/RegEdit/ ) will do (please read for more info on the registry editors available).

Look for the string “CgrSipStub.dll” inside the registry editor; the second hit (the InprocServer32 key) – that is, not the first, DefaultIcon – will be the one you need to edit:

Image

Click the value to edit and, say, enter a leading ‘A’ letter in front of the string CgrSipStub.dll. This can be anything; it’s just that you need to add some characters to the name so that the system won’t be able to find it after the next boot:

Image

Save and exit; reset (reboot) your device.

Now, if you’ve already created a System Path in your PDA, you can just move the following DLL’s from \Windows to it:

595,456 CgrImages.dll
21,504 CgrSipLite.dll
307,200 CgrSipStub.dll
11,264 MacroUsr.dll
92,672 PenMacro.dll


If you haven’t set up your System Path yet, you may want to do it now.

System Path is the path where the system looks for DLL’s. It’s something like the ‘PATH’ variable in other operating systems, but a bit more dumb (for example, you can only put DLL’s in these directories; other kinds of files won’t be recognized by the system. For example, you can’t relocate help HTML files in there – they are also located in \Windows by default).

By default, Windows looks for DLL’s in \Windows, which is located in main memory. Therefore, any program that copies DLL’s to \Windows will result in reduced RAM size. By adding new directories to the System Path, you can effectively move \Windows DLL’s out of main memory.

The easiest way of modifying System Path is . Upon enabling DLL relocation (DLL optimizer in the 4th tab), it both extends the registry key that stores the so-called System Path ([HKEY_LOCAL_MACHINE\Loader\SystemPath] ) and creates a shared DLL directory at \DLL Store in your File Store. (Incidentally, the latest version(s) of MemMaid also know one of the CalliGrapher DLL’s, CgrImages.dll, as safe to relocate.)

If you go for the manual way of setting up your DLL store in your File Store, get your registry editor again and go edit [HKEY_LOCAL_MACHINE\Loader\SystemPath] . Just add a new row to it, now, pointing to the new directory (make sure you also create it!) you want to move your DLL’s to. An example of the values of this key:

Image

As you can see, it’s a multi-line value. You can freely add (or, for that matter, delete the unnecessary path information) any absolute directory paths to it. As can be seen, MemMaid has added two lines, while I added two other (the first two), one pointing to a CrEme subdirectory, the other pointing to a subdirectory named ‘dlls’ in my Loox File Store.

When you’re ready with setting up the System Path, you can move the five above-listed DLL’s from \Windows to the File Store. Use for example for this purpose.

Once you’re done, you will want to reset the InprocServer32 value you’ve modified in the registry to its original value (that is, in our example, we just remove the leading ‘A’ from before it). Then, reset your device.

Yes! You’ve done it – you’ve moved off 1004 kbytes off the main memory!

Some other optimizations

CalliGrapher.htm, the help file for CalliGrapher in \Windows, links 70 cgr*.bmp files in \Windows, totalling 81 kbytes. The next step will be eliminating these files – don’t forget that all flawors of the WindowsCE operating system (including Windows Mobile) , along with, of course, CalliGrapher.htm. (You can also move them to a storage card if you want to browse the help file later.)

Also, you can move CgrStart.exe (removing it doesn’t seem to have effect on how CalliGrapher works) and even CgrCpl.cpl (you can put it on a storage card and when you want to access the settings options inside it, just click it in there).

Please note that I’ve also written some other articles giving similar relocation advice: