VBRMove 2.3 - (C) 1991-1994 Arthur Hagen
===================================
Posted to the Public Domain
Requirements:
Any Amiga version.
Any KickStart/WorkBench version above 1.1.
Processor: 68010/68012/68020/68030/68040.
RAM: Minimum 256k CHIP-mem and 1k FAST-mem.
If you have an Amiga with a 680xx (xx >= 10) processor, as well as
fast-memory, you might take advantage of the processors ability to have
the vector base set anywhere in memory instead of just at address zero.
On the Amiga, address 0 and upwards is defined as chip-memory, which is
slower than fast-mem. By setting the Vector Base Register (VBR), the
interrupt-vectors could be located anywhere in memory, and by moving
them to fast-mem, all routines that uses interrupts or similar will be
speeded up marginally. VBRMove will allocate 1k in TRUE fast-mem (not
slow-mem) if possible, copy the old frame and set the VBR to point
there. Just include VBRMove in your startup-sequence (or similar) to
take advantage of this. VBRMove is both reentrant and relocatable,
which means that it is both pure and romable.
WARNING! ACHTUNG! ATTENZIONE! ADVARSEL!
Some programs (and viruses) set the interrupt vectors directly in the
lowest 1k of your memory without neither testing the VBR first nor
using the system routines, and if you have run VBRMove or any similar
program first, these vectors will never be called. So, if you want
110% compatibility with all code, DON'T run VBRMove or any similar
program.
I especially feel I should warn you about demos and game programs
(especially those made by german or french programmers), as they as a
rule break all rules! If you intend to use some of these programs, I
recommend that you run "VBRevoM" prior to executing them. VBRevoM? It
is a small program that moves the reset vectors back to address 8+, and
frees the 1k that VBRMove allocated. (Actually VBRMove also does this,
but acts as a on/off-switch. VBRevoM will always make sure that the
VBR is unset after running.)
Some of the programs that won't run with the VBR set, which is a pity
since the programs otherwise are both HD-installable and runs under the
2.0 version of the O/S:
X-Copy - all strains and versions.
Silent Service II
Their Finest Hour
Populous II
Cruise for a Corpse
If you really want to run one of these AND VBRMove, make a batch-file
that looks something like this, and call it instead of the program
itself:
VBRevoM >NIL:
X-Copy
VBRMove >NIL:
If you are a developer and read this, please PLEASE read Commodores
specifications on what you are allowed to do, and what you shouldn't
do. To write directly to the lowest 1k of memory is absolutely for-
bidden, as you have been told repeatedly! The program Enforcer should
be of great help.
And - Dear Commorore! PLEASE don't allow software companies to stick
the labels boosting 2.0-compatibility all over their products if the
software isn't written according to your specifications!
Enjoy,
*Art
|