home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 52
/
Amiga_Dream_52.iso
/
Amiga
/
Workbench
/
Patches
/
QuickROM.lha
/
QuickROM
/
QuickROM.text
< prev
next >
Wrap
Text File
|
1998-05-04
|
5KB
|
111 lines
QuickROM
Synopsis: remaps Kickstart to FAST RAM, using 68060 or 68040 MMU
$VER: QuickROM v36.07 (3-May-1998) by Simon N Goodwin
This makes operating system code much faster by making a copy of
Kickstart - the built-in part of the Amiga's operating system -
in fast memory. It does this dynamically and can be activated or
deactivated at any time.
COMPATIBILITY
QuickROM was written and tested on a Mark 2 Cyberstorm 68060, more
than doubling the speed of access to Kickstart code. It has also
been tested on GVP's G-FORCE 68060 (A2000, A3000 or A4000 versions),
Commodore's 3640 A4000/040 card (where it helps a bit, but hampered
by its very slow 'fast' RAM interface) MacroSystem's Warp Engine
68040/33 and a Cyberstorm Mark 1, which is even faster than the
Mark 2. Nic Wilson's KickSpeed tester (from Set040) reads ROM 2.4
times faster on Mark 1 Cyberstorm hardware after running QuickROM.
The advantage is almost as great on Mark 2, and can be even more
on a Mark 3 (PPC or 060), Warp Engine or GVP accelerator. For the
most advantage - up to 30 times or more in some cofigurations - run
it on a 16 bit Amiga (e.g. A2000) with a Zorro-based 68040 or 68060
accelerator. The relocation will also boost the speed of access to
chip RAM, custom chips and other Zorro cards in this case, as it
eliminates many potentially contentious accesses to slow 16 bit
motherboard resources - eliminating 16 bit ROM accesses leaves
more time for everything else in the 24 bit address space. If you
try it on any system not listed above, or encounter any results
which you do not expect after reading this documentation, please
contact the author with details by email: simon@studio.woden.com
COMPARISONS
QuickROM is not the first such program - it follows in the path of
the shareware Set040, written before Amiga OS made use of the MMU,
and Commodore's developer-only MAPROM (which uses special mapping
hardware) and later commercially-bundled commands like KSREMAP,
WARPKICK and ROM2FAST, but it is free, concise, more compatible
and has features which some others lack.
ADVANTAGES
The advantages of QuickROM over the proprietary versions are:
* Freely distributable, with full assembly language source code
and copious comments explaining its strengths and weaknesses.
* Allocates RAM from the top of memory to minimise fragmentation.
* Allows de-allocation as well as allocation, freeing 516K memory.
* Full diagnostic Exec result codes for cases when it can't work.
* Does not use undocumented 68060.library hooks, so it should work
fine on any other 68060 or 68040 system with an MMU, unlike some.
* Works with 1 Mb ROMs as well as Commodore 512K ones, and uses the
documented method to find the ROM size, so it should suit other
sizes too, as long as they're in the first 32 Mb of address space
(likely as the MAGIC_ROM_SIZE needs to be at address 16 Mb - 20).
LIMITATIONS
* Requires an MMU, and won't work with old 68030, 68451 or 68851 ones.
There are already plenty of Kickstart re-mappers for those systems.
* May get confused in the MMU table setup or ROM location is radically
changed in some future Amiga. This program is inevitably architecture-
and processor-specific, although I've tried to make it fairly flexible.
* No messages. Check the return code to find out EXACTLY what happened.
ERROR CODES
Type SET after the QuickROM command to see the return code (RC).
0 indicates success. Other values indicate failure and the reason why.
20 indicates that Kickstart has already been remapped by some other
program. QuickROM takes no action in this case, or others below.
22 signifies that there is not enough fast memory in one piece for the
ROM image and associated data. QuickROM requires a contiguous 516K.
24 indicates that the MMU is using 8K pages. QuickROM expects 4K pages,
for compatibility with Setpatch, Enforcer, Cyberguard and other MMU
programs. The source file includes untested code for 8K page support.
26 indicates that the MMU is not enabled. This may mean that it is not
available in silicon (e.g. on an EC040 or EC060 processor. These
configurations have not been supplied as standard in any Amiga to
date, but they do work (without the MMU_) fr instance I've got a
C= 3640 with an EC040 on it, having moved the original XC040 to a
Warp Engine.
28 indicates that the MMU has not been initialised. Normally this is a
function of SetPatch (except early versions) in conjunction with the
68040 or 68060 library. Enforcer also sets up MMU tables if they do
not already exist.
30 indicates that the processor is too old, i.e. not a 68040 or 68060!