Login
Back to forumReply to this topicGo to last reply

Posted By

Dunric
on 2005-12-19
00:37:32
 The Save-With-Replace Bug

Several years ago, when I was not into the practice of
regularly backing up my data disks, I would mysteriously
lose data on diskettes which I thought would last for
quite some time. Memorex, Maxell and Fuji Film were my
chosen brands. Like most Commodorians, I trusted the
5.25 inch diskette to keep my precious data safe.

From time to time, though, I would lose data in rather
bizarre circumstances. One minute I would be loading
a program on disk, without any problem, and not ten
minutes later the directory would fail to load (or if
it loaded at all, the disk drive light would blink
endlessly halfway through the disk directory).

The one thing that I did regularly (that I should never
have done at all) was use something called "Save-With-
Replace." A quick glance at the 1541 Disk Drive manual
reveals that a shortcut command exists to both scratch
and overwrite a file with a new version. If this
sounds confusing, bare with me.

The Save-With-Replace command combines a scratch and
save operation into a simple to use command as follows:

SAVE"@0:[program name]",8

The "@" symbol means "Save-With-Replace," which is
followed immediately by the Drive Number "0" (not to be
confused with the Device Number, which is "8").

All Commodore disk drives from the 1540 to 1581 supposedly
suffer from a serious error in DOS known as The Save-With-
Replace Bug. This bug strikes somewhat randomly, meaning
that for the majority of the time diskette data is not
corrupted by its use. However, whenever the BAM (Block
Availability Map) is thrown out of whack, the Save-
With-Replace Bug can creep up without warning.

For about 10 years (between 1986 and 1996), I used the
Save-With-Replace command regularly. To make matters worse,
I scratched Splat Files instead of Validating the disk (Splat
Files are designated in the directory by a "*" symbol).
Both of these actions seriously screwed up a lot of my data
disks. I would love a 16 block program expecting to play
the game "Sleuth," which would somehow mysteriously morph
into part of a program called "Power Poker." If you've
seen what a program looks like with messed up BASIC pointers
and scrambled lines, then you've seen what the Save-With-
Replace Bug can do to an unsuspecting program.

For some odd reason, the Save-With-Replace Bug only strikes
certain files. I do not believe files 4 blocks or less are
affected by the bug. I have only noticed the error crop up
in files exceeding 6 blocks or more.

The lessons are thus very simple: never, ever, EVER use
the Save-With-Replace command. Although a Compute! magazine
article once described a way to avoid the bug, I wouldn't
take any chances on it working 100% of the time. Commodore
DOS is weird, and the Save-With-Replace Bug is something
to be avoided like the plague.

Paul

Posted By

SVS
on 2005-12-19
12:26:07
 Re: The Save-With-Replace Bug

This is a well known bug. It "seems" to appear when the disk has nomore of 2 free blocks, but this is not a sure evidence.
Rumors says that 1551 is free of this bug, but once again I doubt about.
Anyway the 1581 official manual insists to propose the save&replace syntax...

Me too, after experienced lost of data, I never used it.

Posted By

JamesC
on 2005-12-19
19:52:41
 Re: The Save-With-Replace Bug

Supposedly this bug was fixed for 1571's 3.1 ROM as well. 1571 with original ROM still has this bug. The 128D-CR's 1571 does not have this bug, as it is a modified ROM.

I have never heard of Save-with-Replace being a problem on the 1570 or the 1581.

Posted By

Lavina
on 2005-12-28
03:32:08
 Re: The Save-With-Replace Bug

Weird-O-Matic



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon