Re: Drive B-A and B-F commands

From: William Levak (wlevak_at_cyberspace.org)
Date: 2001-10-13 05:10:29

On Fri, 12 Oct 2001 ncoplin@orbeng.com wrote:

> Hi All,
> 
> I need some advice about the B-A command as I'm in the middle of
> implementing this support to 64HDD and my thinking is to fix the bug(s)
> rather than implement them, but am wary of compatibility.
> 
> Does anyone know if the B-A bug (which when a block is already allocated, it
> allocs the whole track and jumps to the next track to search for a free
> block) is only a 1541 trait, or whether it is also in the 1571 and 1581
> ROMs?

In my experience, it does not do that.  I routinely allocate blocks that
are already allocated without the problem you mention.  There is a problem
with whether the information in memory is current, and whether you have
closed the files properly.  

When allocating blocks, I routinely access a different track when done.
This forces the BAM on the disk to be updated.  Actually, you need to
access 2 different tracks as the BAM information for 2 tracks is kept in
memory.  If you remove a disk before the BAM is updated, problems that you
described, and others can occur.

Another problem is that, the BAM information in memory is not updated
until it is needed.  If you have finished working on the disk and closed
all the files correctly, the drive can report incorrect information, since
it will not check the correct information on the disk until you relog the
disk.  In short, once the files are closed, the BAM information in memory
is not guaranteed to be correct.

> Also, there is the question of allocation on the directory track. The 1541
> as I understand it can return a free block in Track 18, which supposedly it
> shouldn't. Do the 1571 and 1581 drives also point to their respective dirs
> (eg 18/53 or 40) when the next block is given? 

Allocating blocks on the directory track is perfectly legitimate.  After
all, the system would not know if there was any directory space left if it
could not do that.

This information applies to the 1541 and 1571.  The 1581 does not
work in the same way.  It keeps the entire BAM in memory.  When you close
the files, the BAM is written to the disk, but the BAM in memory may not
be updated unles you remove the disk and reinsert it.


       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail 2.1.1.