151 lines
6.8 KiB
Plaintext
151 lines
6.8 KiB
Plaintext
SAFEFORMAT
|
||
|
||
=======================================================================
|
||
|
||
The following new source files have been added to the format
|
||
directory.
|
||
|
||
SAFE.ASM - Additional program source code
|
||
SAFE.INC - Extrn definitions to be included in other modules
|
||
SAFEDEF.INC - Structure and equates used in SAFE.ASM
|
||
NEWFMT.DOC - This information and specification file
|
||
|
||
|
||
All changes to the existing format program have been incorporated
|
||
within conditionals. The defined value SAFE will determine whether
|
||
the new safe format is built. The build the safe format add the
|
||
command line switch for the assembler "-DSAFE=1". To disable
|
||
creation of the safe format and build the normal format program
|
||
change the switch to -DSAFE=0.
|
||
|
||
=======================================================================
|
||
|
||
The design specification for the MS-DOS 4.x safe format and unformat
|
||
utility is based on the these underlying assumptions.
|
||
|
||
|
||
FORMAT assumptions:
|
||
|
||
1. The utility is version dependent and will alway fail to run
|
||
under versions of DOS (as reported by DOS function 30h)
|
||
other the version it was designed for.
|
||
|
||
2. The utility will only attempt to preserve and restore existing
|
||
DOS 4.x compatible parititions.
|
||
|
||
3. The utililty will incorporate general safty features but will
|
||
rely on the integrety of the underlying operating system for
|
||
detecting error conditions while accessing the hard disk.
|
||
|
||
4. There will be no attempt to allow restoration of a partition
|
||
which was recognized as being damaged before the format
|
||
operation had begun.
|
||
|
||
5. If for any reason the restoration files cannot be created
|
||
the user will notified and allowed to decide if the format
|
||
should continue without the restoration ability. There is
|
||
one exception to this assumption and that is the case where
|
||
a partition is detected to be unformated as described later.
|
||
|
||
6. The default operation during format will be to create the
|
||
restoration file. A command line switch will allow the user
|
||
to disable the feature.
|
||
|
||
7. All disk access will be done via DOS file handles and interrupts
|
||
25h and 26h to allow DOS to detect and return any error
|
||
conditions.
|
||
|
||
8. Only the first copy of the FAT will be saved. If any sectors
|
||
in the first copy of the FAT cannot be successfully read
|
||
using int 25h, an attempt will be made to read the corresponding
|
||
sectors from the second copy of the FAT. Only if the
|
||
corresponding sectors in both copies of the FAT cannot be read
|
||
will it be assumed the the FAT is bad and a restoration file
|
||
cannot be created.
|
||
|
||
9. The restoration file must contain all information neccessary
|
||
to allow the restoration program to restore the original
|
||
partition immediately after a format. If the original partition
|
||
was a boot partition it must be restored so that it will boot
|
||
the original operating system which was present before the
|
||
format operation.
|
||
|
||
10. The system files will consist of the either of the following
|
||
2 groups of files plus COMMAND.COM.
|
||
(IO.SYS and MSDOS.SYS) or (IBMBIO.SYS and IBMDOS.SYS)
|
||
|
||
11. It will be assumed that a partition has never been formatted
|
||
if the boot record is not valid using the conditions that the
|
||
last 2 bytes of a boot sector contain a boot signature and
|
||
the first byte is near or short jump opcode. When a partition
|
||
has never been formatted a restoration file will not be
|
||
created. There will be no need to alert the user to this action
|
||
and formating will proceed as it does with the existing DOS 4.x
|
||
utility.
|
||
|
||
12. The restoration file will be created in the root directory
|
||
before formating begins and this directory entry will be
|
||
restored to the root directory as the 4th entry in the new
|
||
root directory with an E5h placed in the first byte of the
|
||
first 3 directory entries to allow room for operating system
|
||
files. The restoration file will use the name "UNFORMAT.DAT"
|
||
and will be created with HIDDEN, SYSTEM and READONLY
|
||
attributes set.
|
||
|
||
13. Any previous restoration file will be deleted at the time
|
||
a new restoration file is created.
|
||
|
||
WARNING: This will mean that if a user reformats a hard
|
||
disk immediately after a previous format, the original
|
||
contents of the hard disk will be lost.
|
||
|
||
14. The restoration file will be designed so that it can allow
|
||
restoration of the hard disk reguardless of the condition of
|
||
boot sector, FAT or root directory after completion of the
|
||
format operation. This feature is only for possible future
|
||
enhancements and in this implementation there will be no
|
||
attempt to restore a hard disk if the restoration file
|
||
cannot be successfully read from the disk using the normal
|
||
DOS file and sector read and write operations.
|
||
|
||
15. The FAT which is written to the restoration file will also
|
||
contain the FAT allocation chain for the restoration file.
|
||
|
||
16. The DOS control C check will be disabled while the system areas
|
||
of the disk are being written to help minimize the chance of
|
||
losing the restoration file's directory entry and FAT chain.
|
||
|
||
NOTE:
|
||
The user will still be allowed to CTRL C out of the format at
|
||
any time previous to this without damaging the integrity of
|
||
the existing partition other than the deletion of any
|
||
previously existing restoration file.
|
||
|
||
17. There will be 2 checksums in the restoration file header. One
|
||
will be a checksum of the sector containing the file header
|
||
and the other will be a checksum of the entire restoration
|
||
file. The file header checksum will be used to confirm the
|
||
file header is the valid starting sector of a restoration
|
||
file and the file checksum will be used to insure the
|
||
integrety of entire restoration file before a restoration
|
||
is done.
|
||
|
||
18. The information contained in the restoration file is intended
|
||
to only allow the restoration of a hard disk partition if the
|
||
UNFORMAT utility is used before any new files are written to
|
||
the partition after a format operation. If any new files are
|
||
written the partition is formatted it will void the integrety
|
||
of the original FAT and the partition will be corrupt.
|
||
|
||
19. The FORMAT utility must allow restoration of the original
|
||
partition even in the event that the /S option is used to
|
||
install a new operating system on the partition. This will
|
||
be accomplished by assuring that the new OS does not
|
||
overwrite any existing allocated areas other than the first
|
||
2 clusters of the disk which have been saved in the restoration
|
||
file.
|
||
|
||
20. The fatal disk error handler will be changed so that IGNORE is
|
||
not an option for handling of fatal disk errors. Only RETRY,
|
||
FAIL and ABORT will be valid options.
|
||
|