> If you find alternating 00 and numbers, then it
is normally a sixteen bit
> number. If a program is wrong about THAT, then it will think that block 0
> is being crosslinked many times.
On Wed, 10 Oct 2007, Roger Ivie wrote:
Can't speak for CDOS, but in CP/M block zero
contains the first block of
the directory; it can't be allocated to a file. Disk allocation is kept
in a bitmap in memory, with one bit per block (I'm talking 2.x here; I
think 3.0 used two bits per block, but I'm not up on 3.0). The BIOS
indicated which blocks were allocated to the directory by supplying the
first 16 bits of the allocation bitmask, making block 0 the first block
of the directory. Since there must always be at least one block in the
directory, block 0 can't be allocated to files.
Of course, I may be wrong; wouldn't be the first time.
Yes, and if a program other than CP/M is attempting to analyze the disk,
and it sees what LOOKS like block 0 having been allocated to a file, then
it will choke and start talking about cross-linked files, or some other
error message. THAT is what Dave was getting from 22Disk, which is why we
are suggesting the possibility that the configuration of 22Disk might be
expecting an 8 bit number for the block number, and when encountering a
sixteen bit number less than 100h, it mistakes that for two 8 bit numbers,
one of which is ZERO.
GIGO: If the program is given wrong information about the disk format,
or the disk format is different from what is expected, the program can not
handle it successfully.
When considering a program running on another OS that is attempting to
read the CP/M disks, do NOT assume that allocation is kept in a bitmap in
memory, and/or that the BIOS preloads those bits. There are other ways to
handle it, including even making a linked list "virtual FAT".
The current question is NOT whether block 0 can be allocated to a file.
You are right that it can't (or shouldn't be able).
The current question is "WHY is 22Disk telling Dave that there are
cross-linked files?" (on a presumably valid disk)