Hackdisk V1.02

By Dan Babcock
Copyright (C) 1992 by Dan Babcock

------------
Distribution
------------

The Hackdisk binary ("hackdisk.device") may be freely copied for
non-commercial purposes. The latest version and the source code
(currently 2800 lines of assembly) is available from me for $20
or the equivalent. (Thereafter you can get source code updates,
if any, by simply sending a blank disk).

-----------------
What is hackdisk?
-----------------

Hackdisk is a complete trackdisk.device replacement, minus
support for 5.25 inch and 150RPM drives. It requires Kickstart
2.0 to be fully functional.

----------------------------
What's wrong with trackdisk?
----------------------------

The standard trackdisk module works well, but it isn't perfect.
My major gripe is that it doesn't offer a verify option. I used
TrackSalve (a brilliant program by Dirk Reisig) before KS2.0 and
received enough "verify error" messages to realize that this
feature is very valuable. Hackdisk has a verify option that may
be turned on or off at any time for any drive. The verify is very
efficient and compares the raw MFM data bit-for-bit.

Hackdisk is faster than trackdisk 2.0. A DiskCopy to RAD: is 5
seconds faster. A DiskCopy from RAD: with verify is only 1.6
times slower than trackdisk, not 2 times slower like you might
expect!

Hackdisk requires more chip RAM for its verify buffer, but
conserves memory by using one track buffer for all drives, rather
than a track buffer for each drive. Experience shows that this
does not hurt performance.

For programmers, Hackdisk eliminates the silly restrictions on
read/write parameters. You can specify a read or write at any
byte offset, any byte length, to/from any byte address.

-------------------
Installing Hackdisk
-------------------

Hackdisk is really an operating system module more than a
"program". Thus you can't execute it from the CLI, for example. A
special program called RamKick is required. (RamKick should be
included in this archive). RamKick was used by the little-known
Hedley/Moniterm release of the OS to replace many ROM-resident
libraries. Please keep in mind that RamKick is a general purpose
program that has nothing to do with Hackdisk; I just happen to
use it. (And I don't feel like writing my own right now...).

Type "ramkick ?" to see the options. If you don't know what
everything does, don't worry, because I don't either! Use the
"Kick" script as an example. (Note: It doesn't matter where you
put hackdisk.device, but DEVS: is a good place). The Kick script
uses a tiny program called "HackDiskTest" to test whether
Hackdisk is installed. It will also print out the version number
and copyright. Therefore you can put this at the start of your
startup-sequence to have Hackdisk loaded whenever needed. If you
have an autobooting hard drive, it won't slow down booting much.

A3000 owners: For some reason, RamKick does not automatically
reboot (using the -reboot option). Because I don't have a 3000 to
play with there's not much I can do about it.

Another RamKick note: Sometimes after booting a game or demo the
machine will enter a infinite reboot cycle. This is caused by
RamKick or Hackdisk being partially (but not fully) corrupted.
RamKick should perform more extensive checksums...

If you are technically inclined, you may relocate (or reassemble
if you buy the source) Hackdisk and burn a new kickstart EPROM.
(Or use one of those SRAM kickstart boards). Simple place the raw
code (starting with $4AFC) on top of the trackdisk.device code.
You will be left with some free ROM space to play with as a
bonus.

-------------------------
Turning Verify Off and On
-------------------------

By default, verify is ON for all drives. You can use the tiny
program (2.0-only!) ToggleVerify to invert the verify state.

Programmers: The verify bit is bit 1 of TDU_PUBFLAGS.

-------
Credits
-------

Special thanks go to the following Amiga wizards:

Dirk Reisig         - for TrackSalve
Sebastiano Vigna    - for SuperDuper
Mike Schwartz       - for sharing his game kernel etc.
Daniel Zenchelsky   - for running up my phone bill :-)

----------
My Address
----------

Post Office Box 1532
Southgate, MI  48195
U.S.A.

I am always on Usenet, but my email address is in flux at the
moment. You can always reach me by posting to
comp.sys.amiga.programmer.
