home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 3
/
PDCD_3.iso
/
utilities
/
utilst
/
zidefs090
/
ZIDEFS090
/
Guide
< prev
next >
Wrap
Text File
|
1994-10-03
|
20KB
|
459 lines
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ==========================
Zeridajh IDEFS 0.90 user guide This program is FREEWARE
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ==========================
----------------
- Introduction -
----------------
Zeridajh IDEFS (ZIDEFS) is a full replacement for the software supplied with
the 'old' Ian Copestake Software IDE disc interface (designed by Stefan
Froehling and Peter Szymanski). Zeridajh IDEFS has been completely written
from scratch and provides numerous small and several big improvements :
Support for partitions
~~~~~~~~~~~~~~~~~~~~~~
ZIDEFS supports up to 4 partitions (or 'virtual drives'). This means that an
IDE harddisc may now hold more than one drive (in the original software only
one drive could be stored on a harddisc).
It is immediately important in this respect to understand the difference
between a 'harddisc' and a 'drive' (in the original software they were more or
less synonymous) :
+ A harddisc is the piece of hardware you can hold in your hand and which can,
in this day and age, store up to several Gb of data. I.e. it is a hardware
entity.
+ A drive, however, is a software entity, which has, e.g., a number (from 4 to
7, for 'hard' drives), a name, and an icon on the icon bar (which looks like
a harddisc) through which it can be accessed from the desktop. A drive
stores its own file structure and free space map. Each drive's data is
stored somewhere on one of your harddiscs (and is then also referred to as a
'partition').
As FileCore filing systems (e.g. ADFS, RamFS and also IDEFS) can only access a
maximum of 512Mb per drive, partitioning means that IDE harddiscs over 512Mb
may be fully used, simply by storing 2 or more drives on them (which was not
possible with the original software). There is, however, a maximum total of 4
drives, i.e. the maximum amount of data you can store is 4 x 512Mb = 2Gb
(which could be in the form of 4 drives on only one harddisc if you wanted
to).
Partitioning is not only useful for harddiscs over 512Mb in size. It is also
useful for making a clear seperation of your files, e.g. you could store data
files and applications each on their own drive. Also, by using seperate drives
you spread the risk of data loss due to corruption of a drive's free space
map. When you have everything on one drive and its free space map goes bad,
you lose everything on that drive. Having seperate drives spreads your risk
(at the penalty of extra space used for the additional drive's free space
maps).
Refer to 'Partitions' for details on how to create partitions.
Optimal transfer speeds
~~~~~~~~~~~~~~~~~~~~~~~
The original software suffered from sub-optimal transfer speeds. There are
speed improvements of roughly 5 to 10% on word-aligned transfers (relatively
more on writes than reads). Non-word-aligned transfers are only very
marginally slower than their word-aligned equivalents (only around 2%), while
in the original software they were very much slower (around twice as slow due
to very simplistic and suboptimal coding).
Better drive compatibility
~~~~~~~~~~~~~~~~~~~~~~~~~~
ZIDEFS has much better IDE driver code. It is compatible with more IDE
harddiscs than the original software and also supports at least some of the
newer drives adhering to the new ATA 2 (or 'Extended IDE', aka EIDE) standard.
ZIDEFS has been made to work with some 'positively gruesome' harddiscs.
Optional drive write-protection
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can write-protect any drive, either by using the appropriate *-commands
(*IDEProtect and *IDEUnprotect) or by setting the 'Options -> Read only'
option in the filer icon bar menu.
This option is off by default.
Optional transfer address range checks
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are (optional) checks on address ranges presented to the low level
harddisc transfer routines. This is an extra safety measure against free space
map corruption and the like, which may occur when erroneous transfer address
ranges (inevitably) lead to address exceptions in the middle of write
operations (e.g. leaving the free space map 'half written' and thus corrupting
it, leading to massive data loss).
It seems some FS code, in my opinion wrongly, relies on FileCore to always
deliver sane address ranges, although ADFS for example also seems to take the
sensible route and do a check itself before plunging into a disc transfer. The
overhead incurred in a check is totally negligable.
Address validation may be switched on/off using the appropriate *-commands
(*IDEValidate and *IDENoValidate) or by setting the 'Options -> Validate'
option in the filer icon bar menu.
This option is off by default.
Filer supports 'fancy' Free
~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'fancy' free space indications available in RISCOS 3 (provided by the Free
module) are supported by the new filer.
Other differences
~~~~~~~~~~~~~~~~~
There are major SWI differences between the original software and ZIDEFS. The
SWI numbers are different. Absent are the original software's _FormatTrack and
_IdentDrive SWIs, and support for _DiscOp's 'Write Track' reason code. The
functionality of all of these (only _IdentDrive was actually useful, and then
only occasionally), can be achieved, if needed, by informed use of the new
_Execute SWI. Additional new SWIs in ZIDEFS are _DriveOptions and _DriveInfo
(the latter is only for internal use). For detailed descriptions of the SWIs
refer to the 'Reference' guide.
The *IDEPowersave command available in the original software is absent. Any
required power saving features may be achieved by understanding and using the
new _Execute SWI (not all IDE harddiscs have power saving features, indeed
some that don't react adversely to the applicable IDE commands).
Every effort has been made to pack all the added functionality of ZIDEFS
into as small a space as possible (not least because the IDE interface podule
can only handle up to 8k EPROMs). So far everything still fits, and there's
some room left, despite the numerous additions.
New supporting software
~~~~~~~~~~~~~~~~~~~~~~~
None of the original supporting software is needed anymore :
+ For partitioning of harddiscs (which wasn't previously possible), new
software is supplied. Refer to 'Partitions' for details.
+ For drive initialisation, a patch for !HForm (which you can find on the
RISCOS 3 App2 disc) is available. Refer to 'Initialising drives' for more
information. !FormatIDE and !HFormIDE no longer work.
+ For HD performance testing, if needed, the original !HDTest application may
be used (ZIDEFS is still compatible with this application).
+ The !IDEIdent application no longer works. For harddisc info, you can use
the supplied 'DeviceID' program.
Future plans
~~~~~~~~~~~~
Extensions I'm (still) thinking of adding to the software are along the lines
of smart data buffering and transparent data compression (a-la MS-DOS 6.00).
Also, support for IDE CD-ROM drives seems interesting. None of these are
particularly trivial however.
---------------
- The package -
---------------
There are several files in the ZIDEFS package :
'ZIDEFs'
~~~~~~~~
Is the FS module. You should not normally run this seperately, it is only
included for reference and special applications. Note that this module assumes
it is loaded from the podule ROM (i.e. it is passed its I/O base in r11). When
loaded from elsewhere, i.e. from disc, it defaults to podule 0. I.e. if your
IDE interface podule is not in slot 0, do *NOT* load this module from disc, as
it will access the wrong podule (with amusing or less amusing effects !).
'ZIDEFiler'
~~~~~~~~~~~
Is the filer module. Like the FS module, you should not normally run this
seperately. If loaded from disc, in a special application, it should always be
loaded after the ZIDEFs module.
'ZIDERom'
~~~~~~~~~
Is the ROM image containing the ZIDEFs and ZIDEFiler modules, along with the
necessary extra podule 'loader' code and information. You can blow this file
straight into an 8k '2764' EPROM and use it to replace the original EPROM on
the IDE interface podule. The podule, sadly, cannot access more than 8k of
E