home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
programs
/
misc
/
unplug
/
!UnplugRM
/
Help
< prev
next >
Wrap
Text File
|
1997-02-24
|
23KB
|
523 lines
——————————————————————————
Help file for “UnplugRM”
——————————————————————————
© 1996 by Richard Atterer (written 22.12.1995 to 1.1.1996)
UnplugRM is Freeware.
Automatically adjusts itself to the configured country. Languages available
are English and German. — In this file, a soft line break is represented by
<160><10>. Why does no text editor have this “!Edit-compatible” option?
WARNING: Read this text before using the program!
Hello! Are you sometimes short of memory? Never? Well, then delete this
program...
For all the others: There is a way to squeeze some kBytes of free memory
out of the Relocatable Module Area (RMA) by “switching off” those parts of
the operating system whose services you never need anyway and thus avoiding
that they claim memory from the RMA. This has its dangers, but if you read
the following text carefully, there won’t be any problems.
On my RISC OS 3.11 A3010 with 2MB RAM, I was able to free a little more
than 16k, which resulted in two more free 16k pages!
————————————————————————————————————————————————————————————————————————————
This piece of software is Freeware, which means it may be copied and spread
freely as long as no modifications are made and all files are included, but
I still have the copyright. When the program is spread, nothing must be
charged for it (except for costs for discs etc.). If someone profits from
the spreading, eg the program is spread on the disc accompanying a magazine
or as an “extra” together with commercial software, you need my written
permission to do this (...and I want some money for that!).
The only case when you are allowed to make modifications to any of the
files is when changing this file. When you do this, you must ONLY ADD text,
you must precede each comment with your initials and add your name at the
end of the text. Also, you should send me a copy. Finally, you should
append your changes to the German file as well, in English if necessary.
WARNING: Using this program is entirely at your own risk. Playing around
with it may have disastrous effects! I cannot be held responsible for any
damages caused by this and neither for any errors in the program or in the
documentation.
————————————————————————————————————————————————————————————————————————————
Notes:
- This program changes CMOS RAM settings. When you play around with it
(which you shouldn’t try!), you may crash the machine and/or may not be
able to start up after a reset. Consequently, it is a good idea to save the
contents of your CMOS RAM to disc first. When you have problems, you can
hold down the R key during the reset, which resets the CMOS RAM settings,
and then reload your personal settings from disc.
- As using UnplugRM is potentially dangerous, you shouldn’t use it when
there is unsaved work in some other application.
- In most cases you will first have to reset your machine to see how much
memory you actually gain. This applies especially to RISC OS Versions lower
than 3.5 — however, even with V3.5 there may be a difference of one 4k page
or so.
- I (R.A.) could only test the program with RISC OS 3.11. There might be
important things to say about other versions of RISC OS. I hope that
someone will add his comments about RISC OS 3.5 and later before people
start mailing letter-bombs...
Introduction:
—————————————
As you might know, the RISC OS ROM consists of many modules each of which
is responsible for performing a certain task or a number of tasks that
belong together somehow. A module can be quite complex, for example the
‘WindowManager’ module, which manages the whole desktop world, or can be
very simple, for example the ‘ScreenBlanker’ module, which just blanks the
screen when there hasn’t been a keypress for some time.
By default, ALL modules the ROM contains are activated. When the machine is
reset, these modules initialise, ie they take all actions necessary so the
facilities they offer can be used (there are a few that won’t initialise if
the hardware they depend on is not present). A typical action is to claim
some workspace from the RMA. Thus, the workspace is claimed even if the
module isn’t needed afterwards anymore.
The idea behind UnplugRM is this: Why not prevent those modules from
initialising whose services we don’t need anyway? This would result in the
workspace they normally need not being claimed. On the other hand, this
means that programs which rely on a particular module’s presence will not
work if the module has not been initialised, so you have to be careful with
which modules you de-activate. Later in this file, there is a list of all
modules and a description of what they do, so that you can decide for each
one whether you need it or not.
By the way: The OS command that prevents the initialisation of a module on
subsequent resets is “Unplug”, so that’s why the program is called
“UnplugRM” (RM means “relocatable module”).
Usage:
——————
When you double-click on UnplugRM in a directory display, it will open a
window after a few seconds. As it is only a very simple program, I didn’t
bother to put an icon on the icon bar. The program will close down when you
click on the close icon of the window.
“Search for the ROM module providing a SWI”:
This section of the window may prove useful to you in the future, when you
have been working with some modules unplugged for a while. When you want to
start a program, you may suddenly get an error message saying “SWI &xxxxx
not known.” (SWI stands for “software interrupt”.) The message means that
the program tried to use the routines a certain module offers, but the
module wasn’t present, ie it was unplugged. To be able to work with your
program, you have to re-activate this module. Fortunately, there is a way
to find out which module offers which SWI, so UnplugRM can do this for you.
Just type in the SWI number (you need not press Return) and the module’s
name will be displayed to the right of it. If the SWI is not offered by any
ROM module, the message “Not a SWI of a ROM module!” will be displayed. In
this case, it’s not the fault of UnplugRM that your program doesn’t work!
Example: The error message “SWI &406C0 not known.” is displayed. You type
in “406C0” and UnplugRM tells you that this SWI belongs to the ‘Hourglass’
module.
Note: Apart from SWIs, modules can also offer *commands. When you get an
error message like “File ‘SLoad’ not found.”, you should search for the
command (“SLoad”) in this text file and re-activate the appropriate module
(SpriteUtils in this case).
List of ROM modules:
This is an alphabetical list of all modules that the ROM of your computer
contains, with those modules’ names ticked that are unplugged. UnplugRM
also displays the workspace size for each module. However, this value may
be wrong because a module can claim additional workspace anytime. Those
modules that never initialise on your computer because the hardware they
need is not present are greyed out and labelled “dormant”.
WARNING: You should NEVER EVER try to unplug a module that is somehow
active at the moment. The strange thing about this is that you first get an
error (which is handled by UnplugRM), but afterwards the module is
unplugged nevertheless, and it can’t be re-activated again just like that!
This happens, for example, when you click on BASIC (UnplugRM is a BASIC
program!) or on !Paint when the Paint icon is on the icon bar. To get back
your module without having to R-reset your computer, you have to do the
following:
- press F12 in the desktop
- type “RMKill BASIC” and press Return (fill in the module’s name instead
of ‘BASIC’)
- type “RMReInit BASIC” and press Return
- press Return once more to quit the command line
If the desktop won’t start up after a reset, try the following:
- hold down the * key ON THE NUMERIC KEYPAD during the reset
- when you see the word “Supervisor” written on the screen (and also loads
of asterisks), release the * key and
- type “RMReInit <modulename>” and press Return (fill in the name of the
module you suspect to be the one that prevents startup)
- type “Desktop”, press Return and pray
Note (RISC OS 3.11): There seem to be a few modules which you can unplug,
but after a reset they won’t be unplugged anymore (eg, this is the case
with the ‘Podule’ module). I can only guess why this is so, but I think the
reason is that Acorn have only reserved enough space in CMOS RAM to store
the “unplug information” for 64 modules. However, the ROM contains 88
modules altogether...
One last hint as to how to get yet another few kBytes more: ADFS maintains
two buffers (8k each by default) for cacheing open files and the directory
structure. You can set their size with *Configure ADFSBuffers and
*Configure ADFSDirCache
Happy unplugging!
(And, as always: Sory four mi englisch-Mistakes!)
Description of the ROM modules:
———————————————————————————————
*commands in brackets
The hints assume that you want to use the desktop.
When you have any expansion cards fitted to your computer, there will be
additional modules in the list UnplugRM displays.
!Alarm
!Calc
!Chars
!Configure
!Draw (Desktop_Draw)
!Edit (Desktop_Edit)
!Help
!Paint (Desktop_Paint)
As these modules don’t claim any workspace until the respective application
installs itself on the icon bar, there is no need to unplug them. However,
you may find it useful to unplug the ‘!Configure’ module, because then
nobody will be able to change your configuration.
ADFS (ADFS, Format)
ADFSFiler (Desktop_ADFSFiler)
ADFSUtils
These three modules form the Advanced Disc Filing System, which is
responsible for the floppy disc drive and IDE hard discs (but not SCSI hard
discs). You could only unplug them if you never need your floppy disc drive
and IDE hard disc — a rather unlikely thing!
ARM3Support (Cache)
This RISC OS 3.11 module controls the use of the ARM3 processor’s cache. If
you have an ARM3, you will need it, otherwise it is dormant anyway.
BASIC (BASIC)
BASICTrans
The BASIC interpreter is used by many programs, including UnplugRM. NEVER
unplug it! BASICTrans contains the text messages used by BASIC.
BBCEconet
BroadcastLoader
Normally dormant — you need an Econet expansion card to use them. They
provide software needed to use Acorn’s own Econet networking system. Used
for example by NetFS and NetPrint. I think nobody uses Econet anymore these
days.
BufferManager
This small module manages buffers (hey, you guessed it, didn’t you?) and is
used by DeviceFS to buffer devices. These include the keyboard and
serial/parallel port, so you had better not unplug it!
ColourTrans (ColourTransMapSize, ColourTransMap, ColourTransLoadings)
Is used by many programs that need to do colour conversions, dither sprites
and similar things. It is also needed by the desktop, so don’t try to
unplug it, this might crash the machine immediately.
Debugger (BreakClr, BreakList, BreakSet, Continue, Debug, InitStore,
Memory, MemoryA, MemoryI, ShowRegs)
This module is normally only used by programmers when they write programs,
but not in the programs themselves, so you can unplug it. (However, note
that the SWI this module provides is used by some programs, eg Zap uses it
in code mode.)
Desktop (Desktop)
Used to start up the desktop — is needed, so don’t unplug it!
DeviceFS
Provides you with one of the pleasant features that distinguishes your Acorn
computer from a Nintendo Entertainment System: You can use the keyboard.
(Also responsible for the serial and parallel port.)
DOSFS (DOSMap, CopyBoot)
Allows your floppy disc to read and write DOS or Atari format. If you never
need to do this, you can unplug the module.
DragASprite
Is used by many applications when you drag an icon from a “Save as”-box to
a directory display: Instead of the icon’s outline, you can see the whole
icon moving. Don’t unplug. (For the experts: Many programs use DragASprite
regardless of the setting of the bit in CMOS RAM which says whether or not
to do so!)
Draw
This module is used by the Draw application, but may also be used by other
applications. If you never use the Draw application, you can try to unplug
it, but then test all your DTP programs and other programs that somehow
paint “Drawish” things onto the screen to see whether they still run
properly. My advice: Don’t unplug.
Econet
Normally dormant — you need an Econet expansion card to use it. Provides
software needed to use Acorn’s own Econet networking system. I think nobody
uses Econet anymore these days.
FileCore (Backup, Bye, CheckMap, Compact, Defect, Dismount, Drive, Free,
Map, Mount, NameDisc, NameDisk, Verify)
One of the two basic modules on which all filing system modules rely.
Unplugging them is a really foolish thing!
Filer (Filer_OpenDir, Filer_CloseDir, Filer_Run, Filer_Boot, Desktop_Filer)
Is responsible for directory displays on the desktop. Unplugging it is not
very useful.
FilerSWIs
Filer_Action (Filer_Action)
Perform file manipulation operations under the multitasking. Unplug them
and try to, for example, copy a file — a text window is opened and the
desktop hangs. Because Filer_Action needs no workspace and FilerSWIs only
little, unplugging the modules has more disadvantages than advantages.
FileSwitch (Access, Cat, CDir, Copy, Count, Dir, EnumDir, Ex, FileInfo,
Info, LCat, LEx, Lib, Rename, Run, SetType, Shut, ShutDown, Stamp, Up,
Wipex, Back, URD, NoDir, NoURD, NoLib)
One of the two basic modules on which all filing system modules rely.
Unplugging them is honestly a really foolish thing!
FilterManager (Filters)
Very few programs use this module to make other programs behave differently
from how they normally react when certain things happen. Well, I think this
somewhat vague description won’t help you very much, so I’ll try an
example: ‘ImageFS’ MIGHT use the FilterManager (I don’t have the program)
to allow even those programs to load JPEG files that normally cannot load
them. Because the module only needs little workspace, I recommend not to
unplug it.
FontManager (FontList, FontCat, LoadFontCache, SaveFontCache, FontInstall,
FontLibrary, FontRemove)
This module is responsible for everything that has to do with outline
fonts. Even if you never use outline fonts, you still can’t unplug it as it
is needed to display the “Initialising...” message when the desktop starts
up.
FPEmulator
Either simulates or supports a floating point accelerator, ie a
mathematical coprocessor. It is used by many programs, especially ones that
are written in C. NEVER unplug the module — this immediately crashes the
machine and prevents startup after a reset.
Free (Desktop_Free, ShowFree)
Provides filing systems with the windows that are displayed when you choose
“Free” from their icon bar menus. You CAN unplug it, but then you’ll never
know how much free space is left on your disc...
Germany (on a German model)
Gives the TerritoryManager information about Germany. Never unplug.
Hourglass
This module is used by many programs to display an hourglass when they have
to stop the multitasking for a while. Don’t unplug.
IIC
Is used internally to read the battery-backed clock and CMOS RAM, so don’t
unplug.
International (Alphabet, Country, Keyboard, Alphabets, Countries)
This module is responsible for setting and reading the configured country
(and the alphabet and keyboard layout that is used). When I tried to unplug
it on my A3010 (British model), I was still able to type on the keyboard
after a reset. However, better don’t unplug (hardly needs any workspace
anyway).
InternationalKeyboard
When you unplug this, you can still type, but you cannot enter any
international characters such as Alt s for “ß” (at least on my British
machine).
IRQUtils
This is a dummy module which is only included in RISC OS 3.11 to allow
older programs which test its presence to still work correctly.
Joystick
If you never use a joystick, or if you load your joystick driver from disc,
you can unplug this.
Messages
Contains most of the textual messages your computer addresses you with.
Never unplug!
MessageTrans
This module is used by many programs to maintain their own textual
messages. Never unplug it.
NetFiler (Desktop_NetFiler)
NetFS (AddFS, FS, I am, ListFS, Logon, Net, Pass, SDisc)
NetPrint (ListPS, PS, SetPS)
NetStatus
NetUtils
Another few modules that you need for Acorn’s Econet. If you haven’t got an
Econet expansion card in your computer, NetFS, NetPrint and NetUtils will
be dormant. In this case you can unplug NetFiler and NetStatus too, if you
want to.
Obey (Obey)
Used for executing obey files. Don’t unplug.
PaletteUtil
This module provides you with the palette utility icon on your icon bar. As
you’ll normally need it to change screen mode, don’t unplug it.
ParallelDeviceDriver
Responsible for maintaining the parallel port. If nothing is connected to
your parallel port (typically a printer), you can unplug it.
PDriver
PDriverDP
PDumperDM
PDumperSupport
Finally we’ve made it to the four best candidates for unplugging (in RISC
OS 3.11). These modules form the software to print from RISC OS
applications. However, all of them have been replaced by newer versions
which are loaded from disc when you run the printer driver. The ROM
versions need quite a few kBytes of memory which are just wasted!
The RISC OS 3.5 ROM contain the newest versions of these modules, I think,
so unplugging might not be so useful as in RISC OS 3.11.
Percussion
This module provides you with the waveforms “Percussion-Soft”,
“Percussion-Medium”, “Percussion-Snare” and “Percussion-Noise” in the list
of the ‘Configure’ application where you can choose the system beep. The
only other application I know which uses this module is ‘Maestro’. Unless
you have chosen one of those noises as your system beep, you can really
save the 2k of workspace and unplug it...
Pinboard
The pinboard allows you to pin files on the grey area above the icon bar,
is responsible for backdrops, iconizing windows etc. You can unplug it, but
then you won’t be able to do any of this.
PipeFS (PipeCopy)
I haven’t got a clue what this is for. The documentation says it’s used by
the ‘TaskWindow’ module and it “provides a mechanism for implementing named
pipes between tasks, using the *PipeCopy command to move bytes from one
pipe to another.” Ah.
Podule (PoduleLoad, PoduleSave)
This module manages the podules, ie expansion cards, in your computer.
Obviously, when you haven’t any expansion cards installed, you could unplug
the module, but when you do this, abracadabra, after a reset it isn’t
unplugged any longer — weird.
Portable
This will be dormant for any machines other than portables, and on these I
guess you’ll need it.
Printers
This module contains the Printers application. Like the other modules that
have to do with printing, it is old and no longer used, so you can unplug
it. (However, it needs no workspace.)
RamFS (Ram)
RAMFSFiler (Desktop_RAMFSFiler)
The RAM filing system and the module which provides its icon bar icon in
the desktop. No need to unplug.
ResourceFiler
ResourceFS (ResourceFS)
These modules form the Resource filing system which is used by many ROM
modules to read in their textual messages. Also, this provides you with the
“Apps” icon on your icon bar.
ROMFonts
This module contains the ROM outline fonts. If you never use them, which is
rather unlikely, you can unplug it, but note that the module doesn’t need
any workspace anyway.
RTCAdjust
This one is not documented! I suspect that it has got something to do with
the battery-backed clock. Unplugging doesn’t seem to have any effect, but
better don’t!
ScreenBlanker (BlankTime)
Responsible for blanking the screen after there has not been a keypress for
some time. If you have switched off this option with the ‘Configure’
application, you can also unplug the module.
SerialDeviceDriver
SerialDeviceSupport
Responsible for maintaining the serial port. If nothing is connected to
your serial port (typically a modem, sometimes a printer), you can unplug
them.
SharedCLibrary
This is used by many programs written in C (including the ROM
applications). Surprisingly, the machine doesn’t crash when you unplug it,
not even after a reset. However, better don’t unplug it.
ShellCLI (ShellCLI)
This module is responsible for what happens when you press F12 in the
desktop, ie the command line is entered, but you return to the desktop when
you enter a blank line. As it needs no workspace, there is no need to
unplug it.
SoundChannels (Volume, Voices, ChannelVoice, Sound, Tuning)
SoundDMA (Audio, Speaker, Stereo)
If you never want to hear anything from your computer anymore, unplug!
SoundScheduler (Tempo, QSound)
This part of the sound system provides services which aren’t used by many
programs, so unplugging the module should be OK. (The only program I can
think of which might use this module is ‘Maestro’.)
SpriteExtend
This module is used by many programs as well as the desktop, so don’t
unplug it.
SpriteUtils (SChoose, SGet, SFlipX, SFlipY, SDelete, SList, SLoad, SMerge,
SNew, SSave, SInfo, SRename, SCopy, ScreenSave, ScreenLoad)
This module provides the *commands to use the system sprite area. It is
hardly ever used (maybe in some old programs or simple BASIC programs), but
as it needs no workspace anyway, better don’t unplug it.
Squash
This module is used for (de)compressing data. The only application I know
which uses it is the ‘Squash’ application, but because it only needs little
workspace, I recommend not to unplug it.
StringLib
This module provides you with the waveforms “StringLib-Soft”,
“StringLib-Pluck”, “StringLib-Steel” and “StringLib-Hard” in the list of
the ‘Configure’ application where you can choose the system beep. The only
other application I know which uses this module is ‘Maestro’. Unless you
have chosen one of those sounds as your system beep, you can really unplug
it...
SuperSample
This is used internally by the ‘FontManager’ module. Don’t unplug.
SystemDevices
This module uses DeviceFS to implement the system devices, such as the
keyboard and the serial and parallel port. Don’t unplug it!
TaskManager (Desktop_TaskManager, ChangeDynamicArea)
Responsible for that greenish blot at the right end of the icon bar.
Unplugging is not recommended because it prevents you from shutting down
your computer. Also, a few programs use it to get information about other
tasks.
TaskWindow (ShellCLI_Task, ShellCLI_TaskQuit, TaskWindow)
If you never use task windows, you can unplug this module.
TerritoryManager (Territories)
This module is used by many programs to inform themselves about the way
they should print things onto the screen for the current territory (eg what
character to use as a decimal point) and other similar things. Don’t unplug
it.
UK (on a British model)
Gives the TerritoryManager information about the UK. Never unplug.
WaveSynth
This module provides you with the waveform “WaveSynth-Beep” in the list of
the ‘Configure’ application where you can choose the system beep. The only
other application I know which uses this module is ‘Maestro’. If you have
chosen this beep as your system beep, you mustn’t unplug it, otherwise you
can.
WindowManager
NEVER unplug it, for heaven’s sake!
WindowUtils
Is needed by the WindowManager. Don’t unplug.