Exchanging RAM Charger
Settings For Individual Applications
Starting with RAM Charger 8.1b1, the RAM Charger Settings
application "File" menu includes new "export" and matching
"import" items. These items save and restore the settings
for an application - one application's settings per file. An
application must be selected before these items are
available.
Why the new feature?
It is our desire that every application work perfectly,
and most efficiently, with the default settings that RAM
Charger creates. In pursuit of this objective, RAM Charger
does have its own built in "mini-wizard" that makes
automatic adjustments. However, the reality is that some
applications require special settings, beyond the
min-wizard's abilities, to operate most efficiently
(Fine
Tuning Applications).
Application users and application developers are best
qualified to fine tune settings for applications since they
have more knowlege about, and interest in obtaining, the
best settings. This new provision will allow the exchange
and distribution of settings by users, thus helping avoid
users duplicating efforts.
Also, there are more settings, and logged information,
about applications in the settings than can be made
available in the standard "RAM Charger Settings" application
interface. Already, this interface is pushing the complexity
most users are willing to tolerate. However, there are
always power users who are willing to take the time to delve
a bit deeper - especially application developers.
Unfortunately, the RAM Charger Preferences file, wherein
application settings are stored, contains complexities that
preclud direct editing (complex interaction between
resources using "lookup tables", and other obscure
techniques for dealing with application versions and
settings "undo"). The "export" file allows editing of
inividual application settings.
Intended usage
It is our hope that experienced RAM Charger users will
configure an application using the wizard and their own
expertese. During the process an advanced user may discover
the need to export the settings, make modifications using
Resorcerer that could not be made using RAM Charger
Settings, and import the settings back in for further
testing and fine tuning. If any particular special settings
were required, they might make notes, and export the
settings for distribution to other users. Exports might be
mailed directy to customers, peers, or submitted to Jump
Developmment Group to be made available on our web site.
End users would then be able to obtain the settings and
examine the comments using SimpleText. Should they like what
they have read, they could Import the settings to obtain
better configuration for a particular application.
One application, one file...Why?
It is very difficult to determine exactly which settings
apply to which application. This is because even one
application, from one developer, can vary greatly in memory
requirements and settings across subsequent releases. As a
result, it is very difficult to collect a number of settings
for various applications within one file, and be sure that
they are applied to the right applications. Rather than
attempt to be smart enough in a difficult situation (and
ultimately fail in some case), we have elected to export one
group of settings to each file, and have the user select
which application will assume those settings when
"Imported". Though it would be nice to distribute settings
for a number of applications in one file, we did not find
this feasible.
File format
The export file is intended for use in three
applications: SimpleText, Resorcerer, and then import back
into RAM Charger Settings. Opening the document with any
other application may create resources that might make the
file unusable - unable to "import" into RAM Charger
Settings.
Data Fork
The data fork, which is ascii text, should be
edited in SimpleText.
<Free Format Comment >
Notes:
<Application Notes>
|
You may enter any comments you like in the
"<Free Format Comment>" section. This is
intended to be read by the end user to decide what the
file is for, who created it, and why they should use
it. The "Notes:" must appear on a line by itself so
RAM Charger settings can determine where the "<Free
Format Comment>" ends (otherwise, the entire data
fork will be "<Application Notes>"). The "
<Application Notes>" will be prepended into the
user's "Notes" in RAM Charger Setttings for the
application when "Import" is used.
Opening the "data" fork in any editor besides
SimpleText may add resources which may need to be
removed in a resource editor to allow import into RAM
Charger Settings. RAM Charger Settings is reasonably
tolerant, but does apply some constraints to avoid
reading an inappropriate file.
Resource Fork
The resource fork contains three resources, and should
be editied in Resorcerer. You may edit this in any
resource editor, however the TMPL is only provided for
Resourcerer. If someone knows how to create the
template for ResEdit, or some other editor, feel free
to send it to "RAMCharger (at) RAMCharger.com".
'SiZe' 0 - Contains the actual settings for the
application.
TEXT 128 - Comments for resource editing users,
ignored on IMPORT.
TMPL 129 "SiZe" - A Resourcerer template that aids
in editing the SiZe resource.
The SiZe Resource
The SiZe resource contains that most important
information, which is all the settings and logged
information. The format of this resource is given in the
TMPL 129, and here are the details:
Name
The resource name contains the application creator code
followed by the name and version of the application from the
machine where it was exported. The creator code is compared
to the selected application during import, and a warning
dialog is presented shwoing the application name and version
if the creator codes differ.
Data
If anyone ever reads this and wants more info that this
table contains, contact RAMCharger (at) RAMCharger.com ans we will
embelish the fields wihout hesitation (lazy evaluation).
Bytes
|
Name (-fld:bits)
|
Legal Values
|
Comment
|
00-03
|
RAM Charger Version
- maj:8
- min:4
- bug:4
- stage:8
|
1,2,3, 8
0..F,Wild=F
0..F,Wild=F
Dev=0x20
Alpha0x40
Beta=0x60
Final=0x80
Wild=0xFF
|
This is the version of RAM Charger the created
the settings. RAM Charger uses this to determine
the format of the following data.
|
04-07
|
Application Version
- maj:8
- min:4
- bug:4
- stage:8
|
1,2,3, 8
0..F,Wild=F
0..F,Wild=F
Dev=0x20
Alpha0x40
Beta=0x60
Final=0x80
Wild=0xFF
|
This is the version of the application that the
settings were created for. Import compares this
against the selected applicaiton an presents a
warning dialog if different.
|
x08-0B
d08-11
|
Application Creation Date
|
TimeStampT
wild=FFFFFFF9 (-7).
|
This is the creation date of the application
that the preference was created for. Ignored.
|
x0C
d12
|
Method
|
Fully access all memory=4
Delay access to all memory=1
Max Fast Access After Open=3
Maximize fast-access reserve=2
Avoid taking all memory=5
Locked OFF=0
(Negative values are "off")
|
This defines the access RAM Chrgers provides to
memory for the application.
|
x0D
d13
|
Origin
|
Builtin=0
Self=1
User=2
|
This records where the setting came from. Mainly
to indicate if the user has modified the settings.
|
x0E
d14
|
Unchanged
|
0-255
|
Number of runs without automatic adjustments to
settings on application quit.
|
x0F
d15
|
Stable
|
False=0
True=1
Full=2
|
Can make automatic adjustments to settings
(automatic "stable" after running unchanged for a
while)
|
x10-13
d16-19
|
mPtrCount
|
|
Number of master pointers to reserve at launch
to avoid fragmentation in zone.
|
x14-17
d20-23
|
cushionSize
|
|
Amount of memory to try and reserve in the heap
until all other memory is used (safety).
|
x18-1B
d24-27
|
squeezeHeapSize
|
|
Amount of memory to try and keep free in the
zone for small allocations (fast access).
|
x1C-1F
d28-31
|
stackSize
|
|
Amount of zone to reserve for stack. The rest is
used for heap; extra heap needs from the process
zone.
|
x20-23
d32-35
|
MinOverride
|
|
Custom starting size for application. If 0, then
the same as the minimum size.
|
x24-27
d36-39
|
origSuggestedMin
|
|
The "minimum" suggested by the applicaiton
author. Used in cloning to determine if the
application has significant new memory
requirements.
|
x27-38
d40-56
|
unused
|
|
|
x39
d57
|
wizardRunsBlocking
|
|
Number of consecutive runs when the application
has blocked the system's expansion.
|
x3A
d58
|
falsifyZCB
|
|
Increase the "zcbFree" field for the application
by the size of the process zone (Exaggerate)
|
x3B
d59
|
useSetting
|
Use Minimum=2
Use Preferred=3
Others use MinOverride=0
|
|
x3C-3F
d60-63
|
sizeName
|
|
Lookup ID in the name table for the settings set
"BuiltIn" or "Custom".
|
x40-43
d64-67
|
appCreatorCode
|
|
|
x44
d68
|
cmprsReserved
|
cmprsInhibitCallGrowZone
cmprsQuietManualSqueeze
cmprsInhibitManualSqueeze
cmprsSqueezeOnSwitch
|
|
x45
d69
|
wizReserved
|
wizBitToldBlocking
wizBitToldGreedy
wizBitEnableWiz
wizBitAppRunning
|
|
x46
d70
|
wizardRunsBad
|
Disabled=-1
|
Number of times application has failed to exit
(crashed). Used in combination wizardRunsOK to
notify users of potential conflicts via dialog at
launch.
|
x47
d71
|
wizardRunsOK
|
Disabled=-1
|
Number of times application has quit OK. Used in
combination wizardRunsBad to notify users of
potential conflicts via dialog at launch.
|
x48-49
d72-73
|
miscBits
|
miscMoveHiSetSize:1
miscAppCantLaunch:0
|
|
x4A-4C
d74-76
|
Reserved
|
|
|
|