[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ProDOS MLI internals
In article <maclaganDBwDyy.GAy@netcom.com>,
Ian Maclagan <maclagan@netcom.com> wrote:
> I am trying to "force" ProDos to keep an accurate Volume Control BLock in
> memory when it has multiple files open.
> Background : I am wanting to modify Prodos so that several Apple IIs can
> share a common volume (on a Digicard network). The problem is that when
> the MLI needs to allocate a new disk block (when a file grows) ProDOS
> does not re-read the Volume Control Block off the disk, rather it uses
> the bitmap in memory to find the next free block. If two or more
> computers allocate a new block there is a good chance they will use the
> same block and this will corrupt the files or the volume if the block was
> being allocated to a directory file. Does anyone know how to convince
> Prodos to reread the free block information OFF THE DISK when it needs to
> allocate a new block to a file????
Ick! I think you'll find that trying to implement such a patch to
ProDOS will be practically impossible. Even if you get the bitmap
working, there are many other issues that need to be dealt with. A
couple that come to mind:
- allocation of directory entries from different computers at the same
time.
- accessing a file from one computer while another computer is
modifying it, or deleting it.
I suggest taking a completely different tack: follow the example used
by AppleTalk. Intercept all calls at the MLI entry point, and pass
them on to the server.
Ideally, this should be done via patch code on an interface card (in
the same manner as the Apple II Workstation Card). There is no
practical alternative that doesn't impact on software compatibility,
as there is no area of memory that can be set aside to contain patch
code.
--
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand