home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
354.lha
/
MSH_v1.5
/
doc
/
msh.man
< prev
next >
Wrap
Text File
|
1990-03-12
|
18KB
|
397 lines
MSH:(FileSystems) Amiga Programmer's Manual MSH:(FileSystems)
1mSYNOPSYS
0mMount MSH:
MSH:<any valid file specification>, or just
<any valid file specification> if your current directory is
somewhere on MSH:.
1mUSAGE
0mMSH: is a real Amiga-style File System handler that handles
messydos formatted diskettes. You can use files on such
messydos disks in almost exactly the same way as you use
files on normal Amiga disks.
Supported are 40 or 80 tracks, double-sided 8, 9 or 10
sector floppy disks, and harddisks with a 12 or 16-bit FAT
of any dimension the FAT allows. (Due to lack of
availability, I have not been able to test MSH: on hard
disks; proceed with extreme caution).
1mMOUNTLIST
0mA sample Mountlist entry, that works with the Arp 1.3 Mount
command:
/*
* Messy file system on messy blocks:
*/
MSH: FileSystem = MessyFileSystem
Device = messydisk.device
Unit = 1
Flags = 0
/*
* HighCyl is ignored, LowCyl, Surfaces and BlocksPerTrack
* are used once to find the bootblock. Further parameters
* are found there.
*/
LowCyl = 0 ; HighCyl = 79
Surfaces = 2
BlocksPerTrack = 9
Buffers = 5
/*
* Use BufMemType = 3 [for MEMF_CHIP | MEMF_PUBLIC] if you
* use MSH: on the trackdisk.device.
*/
BufMemType = 1
BootPri = 0
Stacksize = 4096
Priority = 5
GlobVec = -1
#
This Mountlist entry instructs MSH: to use floppy unit 1,
i.e. DF1: and the messydisk.device. You may choose any
name instead of MSH: that you like. For this case, MS1:
would also be a sensible choice. You can read the separate
manual page about messydisk.device. It is supposed to be
possible to use MSH: on a harddisk by supplying the proper
device name and unit number. If you wish to use floppies
KosmoSoft -1- Version 34.4
MSH:(FileSystems) Amiga Programmer's Manual MSH:(FileSystems)
truly compatible with those messy machines, you should use
the messydisk.device. You cannot change this name into
something else.
The Mountlist entries LowCyl, Surfaces, and BlocksPerTrack
are used once to determine the location of the messydos
bootblock. Disk blocks of 512 bytes are assumed in this
calculation. Further information is then obtained from the
bootblock (see below).
1mCOMPATIBILITY
0mEven though MSH: uses one of your floppy drives, you may
still use that drive for normal Amiga disks. You will
notice that when you insert a disk in the drive used by
MSH:, both MSH: and the regular Amiga file system handler
will attempt to identify the disk. The result will be that
one of the two will be unable to read it, and then leave it
alone so that the other may use it.
This is what happens when you insert a messydos disk: Both
file systems will try to read the boot block of the disk.
The regular Amiga file system gets a read error, and retries
a few times, while recalibrating the disk read head. This
is the short noise you may hear from the drive. At about
the same time, MSH: will seize control over the disk unit,
read the disk, and see that all is well. It is then
prepared to actually use the disk.
This is what happens when you insert an Amiga disk: Again,
both file systems will try to read the boot block of the
disk. But this time MSH: will desperately try to understand
the disk, but it will give up when it is convinced that the
disk is really not meant for it.
It is recommended that you don't attempt to refer to MSH:
while other filesystems are trying to read the disk.
In some situations where there are multiple errors at the
same time (such as trying to delete a non-existent file from
a write-protected disk), the error reported may be different
than the regular file system.
1mEXTENSIONS
ACTION0m_1mDIE
0mThe packet 3mACTION_DIE 0mis supported, and even has the result
of stopping MSH: and unloading the file system code. This
is convenient when you don't need to use MSH: for a while
and helps you to conserve memory. A program called 3mdie 0mis
supplied that sends the ACTION_DIE packet to any handler you
wish. If there is any program running that expects MSH: to
remain present even while there are no open or locked files
on MSH:, it may be dangerous to remove MSH:.
1mACTION0m_1mMORECACHE
0mMSH: handles the packet 3mACTION_MORECACHE 0m(used by the
AddBuffers command) and cache buffers more intelligently.
KosmoSoft -2- Version 34.4
MSH:(FileSystems) Amiga Programmer's Manual MSH:(FileSystems)
When you add buffers, the required memory is not allocated
immediately, but gradually as there becomes a use for it.
When you remove a disk its buffers are no longer of use and
therefore are all freed. And, what is more important, you
can decrease the maximum number of buffers. By specifying a
negative number you reduce the number of buffers. If your
AddBuffers does not like negative buffer counts, simply add
65536 to the (negative) number you actually intend. So,
instead of -1 you can also specify 65535, -2 is 65534. You
wouldn't want to add more than 32767 buffers at once
anyway.
1mLIMITATIONS
0mDue to the difference between messydos and AmigaDOS file
systems, not all operations that are available for Amiga
files can be applied to messydos files.
1mFile names
0mThe most eye-catching difference are the file names:
messydos file names can be at most "8 + 3" characters long.
This means that the "base" part of the file name may be
eight characters long, maybe followed by a three-character
"extension", which is separated from the base name with a
period ('.'). Also, you cannot use all characters in the
file names you wish, but the charater choice is basically
limited to the uppercase letters A-Z, digits 0-9, and most
"punctuation" characters except space * ? . < > / = | , :
and \.
MSH: will try to map file names that you or a program
attempts to use to names that are actually allowed. But for
utmost flexibility, only the most basic limitations are
enforced: the length of the name (8+3), uppercase
alphabetics, and the presence of only one period in the
name. This means that you might create file names that a
messydos computer does not correctly know how to handle.
But care has been taken that in no case it would be possible
to create a file name that, once created, cannot be handled
anymore by MSH:. You can always refer to that file with the
same name you used before, even if MSH: changed it for you.
1mSpecial directories 0m. 1mand 0m..
On messydos floppies, every subdirectory has two special
entries called "." and "..". They refer to the directory
itself and its "parent" directory, respectively. Programs
that traverse directory trees on messydos systems take care
to skip these "subdirectories", since they really are not
"sub" direcories and recursively entering them would lead to
nothing but trouble. (Their presence prevents the file
system from have a tree structure.) But with AmigaDOS 1.3
and before, no such "hard links" exist, and directory
traversing programs would not hesitate to enter them.
Therefore, they are 3mcompletely 0mhidden from sight. You
cannot see them in directory listings nor refer to them by
any name.
KosmoSoft -3- Version 34.4
MSH:(FileSystems) Amiga Programmer's Manual MSH:(FileSystems)
But even while it is hidden, the ".." entry is of course
still updated to reflect the new parent directory when a
directory is renamed and moved. Note, by the way, that
moving directories is an operation that is not supported by
messydos itself.
Of course, the usual methods of accessing the current
directory (the empty name "") and the parent directory ("/")
do work.
It may be that in the future, when softlinks will be
included in AmigaDOS, these "." and ".." directories will be
made visible again, but in the disguise of a soft link. In
that case, programs which don't know how to handle them
should either not exist anymore or ignore the links
themselves.
1mFilenotes
0mMessydos has no provision for file notes and therefore they
cannot be supported.
1mFile protection bits vs0m. 1mfile attributes
0mCurrently, the following interpretation of messydos file
attributes is performed. The Directory and Volumelabel
attributes are honored to make these directory entries
different from plain files.
The HIDDEN and SYSTEM attributes are mapped to the H(idden)
bit. The H bit is mapped to the HIDDEN attribute; the
SYSTEM attribute cannot be changed.
The READ-ONLY attribute is mapped to the W(rite) and
D(elete) bits. Inversely, if a file is set to either Write
or Delete protected, the READ-ONLY attribute is set.
The ARCHIVE bit, when clear, sets the A(rchived) bit. On
messydos the ARCHIVE attribute means (when set) that the
file MUST be backed up (by a backup program). A write to a
file sets the ARCHIVE attribute. On AmigaDOS the Archived
bit means (when set) that the file has been archived
already. A write to a file clears the Archived protection
bit.
1mBoot block format
0mMSH: relies on the information in the boot block regarding
the number of bytes per block, blocks per track, tracks per
cylinder, blocks per cluster, etc. The physical information
is not actually used to access the disk, except for the
number of tracks which is derived from other information.
It is used to decide if a 40 track disk is inserted in a 80
track drive. Single sided disks are not supported. The
number of sectors may be whatever the underlying device
driver supports. (With messydisk.device this is 8, 9 or 10;
with trackdisk.device it is 11). Only the logical layout
information is used: Size of a block, number of reserved
blocks, number of FATs, number of blocks per FAT, number of
root directory entries, number of blocks per cluster. The
total number of blocks is used to determine the usable part
KosmoSoft -4- Version 34.4
MSH:(FileSystems) Amiga Programmer's Manual MSH:(FileSystems)
of the disk. But if the FAT says "use a block beyond the
limit", this error is not detected.
If you format a disk on a messydos computer and wish to use
it with MSH:, be sure to use a messydos version new enough
to write this information in the boot block. (Version 3.2
works nicely for me.) If you wish to format such a disk on
your Amiga, you can use PCF720 by Werner Günther with
pcFormat on the Extras disk, or use the supplied messyfmt
program.
1mFAT
0mThe FAT is currently not checked for integrity and
consistency. The FAT is assumed to have 12-bit entries if
the disk has at most 4086 ($FF6) clusters. If the disk has
more clusters than that, 16 bit FAT entries are assumed.
This is the method that seems to be used by messy dos 3.0.
1mWorkbench
0mThe Workbench wants to use filenames that are impossible on
messydos floppies. (.info extension) It is therefore not
very effective to try to use Workbench on MSH:.
1mVolume label
0mNormal AmigaDOS floppies have a part of the disk reserved
for their name. With messydos floppies a name is optional,
and should be in the directory in an entry with the special
flag (attribute) Volumelabel. MSH: looks in the first
directory block only to locate such a volume label. If
found, it decides the name of the disk; if not found, the
name will become "Unnamed" and the creation date will become
1-Jan-80. Note that AmigaDOS (and MSH:) keep disks apart by
their name and creation date. As a result, all unlabeled
disks will look the same and cannot be distinguished. It is
therefore strongly recommended that you provide every disk
with a unique volume label; the standard AmigaDOS command
Relabel can be used for this. If you label a disk that had
no label (in the first directory sector) before, MSH: will
try to move a file from the first directory block to
somewhere else in the root directory. If this is not
possible, for instance because the root directory is full,
then the labeling will fail as well.
1mMultiple file systems
0mThe MessyFileSystem is unfortunately not ``pure''. This
means that if you wish to mount multiple messy file systems,
you must make a copy of MessyFileSystem for each of these,
and mount each one from one of the separate copies. Running
two file systems from the same disk file will cause great
troubles. (Oh well, maybe AmigaDOS is not so smart to see
that two file systems share the same FileSystem name in the
Mountlist, so maybe you don't need to have multiple copies
of MessyFileSystem on your disk. Try at your own risk.)
KosmoSoft -5- Version 34.4
MSH:(FileSystems) Amiga Programmer's Manual MSH:(FileSystems)
1mUTILITIES
0mA program called 3mmessyfmt 0mallows you to format disks in
messydos format.
Usage: Messyfmt <unitnr> <device>
The <device> name is optional and defaults to
"messydisk.device". The program asks for all parameters to
put in the bootblock, like
Bytes per sector? [512]
If you just hit return you accept the default value,
otherwise you can enter a new value in the usual notation:
0x = hexadecimal, 0 = octal, and everything else is
decimal. A few suffixes are allowed as multiplication
factor: m = mega (1048576), k = kilo (1024), s = sectors
(512) and b = byte (1). (Not all terms make sense with all
questions.) You may create 8, 9 or 10 sector disks by
answering the question "Sectors per track" appropriately.
You are also asked if you wish to format the whole disk or
only the first part with the bootblock, FAT and directory.
Finally, to see if you are still awake, you must enter 42 if
you are sure to do it.
After formatting has completed, you must remove the disk
from the drive, in order to let all involved filesystems
know that the disk just died and reincarnated.
3mDiskCopy 0mcan be used to copy messydos disks, provided you
have one or more file systems mounted. Note, however, that
DiskCopy looks at the disk size information as it is present
in the Mountlist. Therefore DiskCopy will not copy the
entire disk if it is 10-sector while the Mountlist claims it
is 9-sector. In the opposite situation, it will try to copy
too much which will result in read errors, which may cause
the last track not to be copied. You can construct special
Mountlist entries for 8 or 10 sector disks if you plan to
DiskCopy them; there is no need to really mount these.
1mTRADEMARKS
0mAmiga, AmigaDOS, Workbench are trademarks of
Commodore-Amiga, Inc. Messydos is presumably a trademark of
MessySoft, Inc.
1mAUTHOR
0mThe messy file system handler is written by 3mSourcerer 0mOlaf
3mRhialto 0mSeibert.
KosmoSoft -6- Version 34.4