Re: Commented 1541-II DOS disassembly

From: Spiro Trikaliotis <ml-cbmhackers_at_trikaliotis.net>
Date: Mon, 27 Aug 2018 22:13:41 +0200
Message-ID: <20180827201341.x2lz5m4mjvkazjqq@hermes.local.trikaliotis.net>
* On Mon, Aug 27, 2018 at 08:43:56PM +0100 smf wrote:
> On 27/08/2018 12:35, Mia Magnusson wrote:
 
> > It should somehow put the disk in a state where it's obvious for a user
> > that it needs validation.
> 
> Why? Surely save@ should just work. If it is too buggy to work, then how can
> you guarantee that validation will be good enough to fix it?

Validation did *not* fix it.

As someone who was bitten by this bug back in the days - although, I did
not KNOW that this bug even existed! - I know for sure that after this
bug hits you, some other file was broken. A validation did not fix it in
the sense that the other file was not fixed by a validation. In fact,
two file entries in the directory used the same list of block lists
afterwards, something that was never intended in the floppy ROM! Note,
however, that the two files did not have to be identical. You might end
with the broken file starting with its original content, and after some
while, it links to some block of the new file. So, both files have the
same tail, but different heads.

> > Maybe the "steal buffer" might had been intended for something else,
> > and it just made the SAVE@ bug a little harder to trigger.
> 
> From the description it seems the steal buffer is used whenever an operation
> needs a buffer and there aren't any free.
> 
> What save@ didn't expect is that one of it's own buffers would be stolen.


> > Or more probably they inherited SAVE@ from the larger drives and just
> > didn't test things properly.
>
> Standard commodore testing, they turned it on a couple of times and it
> didn't always catch fire.

From a retrospective, having a look into the technical documentation for
this bug, it really seems it was very hard to catch it. There are some
references that speak about the bug, others say it does not exist, and
so on.

I remember I have read one article (in transactor, I believe) that was
the first one that was able to actually proof that the bug existed, by
doing operations over and over again. It took some time, even for a
large number of sophisticated hobby enthusiasts.

You can blame Commodore for many things, but here, I can understand that
it was very difficult.

Regards,
Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/
Received on 2018-08-27 22:13:41

Archive generated by hypermail 2.2.0.