User avatar
intric8
Seattle, WA, USA

Posted Sun Jul 17, 2022 11:23 am

I ran into a really weird situation a couple of weeks back when I was in the midst of playing and ultimately beat, Legend of Blacksilver for C64.

I was mid-way through the adventure when one day I popped the disk in to load the game and it failed to load. The screen went baby blue (which it always did during loading for the 1st time) but the disk drive sputtered and produced a flashing LED letting me know an error occurred. That put my heart in my throat.

Note:
Legend of Blacksilver is a game that shipped on 2 double-sided floppy disks. You load the game from Disk A, Side 1. Then, you load your own Character Disk. Next, it loads Disk B, Side 1 (what it calls Side 3). Finally you continue from your last save point on the world map.

Loading the game wasn't an instant fail; it would try for several seconds to load Side 1 then die. Sometimes it would even have me change disks to the character disk and fail to load that disk. It was baffling. But it almost always failed with Disk A Side 1, aka the boot disk.

I would reset the C64 and try again. Same thing. "OMG," I thought. "Is this really happening?" With all the hand-wringing over failing disk media all these decades later, the truth is my disks almost never fail. I know some folks have awful luck with this (usually due to how humid a climate they are in, or how disks were stored, etc.). Not me.

But here I was staring at that potential, and it was right when I was neck-deep in a very time intensive game after many hours of effort.

Out of curiosity, I moved the disks over to my C128DCR and tried again. This time it fired right up!

I went back to the C64. Fail.
I pulled a different 1541-ii out of storage. Another fail. "Whew!" I thought, "At least my drive is probably OK." Checked that off the list.

And yet, whenever I tried it on the C128 the disks worked, so I ultimately decided the disks were OK, too. I wasn't sure because in the right lighting I could see what looked to be a tad bit of white "film" on the disk's surface. That's what made me think the disk was bad in the beginning. So, I pulled out my disk drive cleaner and cleaned the heads on my drive just to be sure. My thought was maybe it was just having the slightest bit of trouble. But, it made no difference.

I concluded the drive was very likely OK as was the disk. That made me shift my gaze towards my beloved C64.
IMG_8551.jpg
I feel no real nostalgia for the 64C as I grew up with a breadbin. But this is the newest and one of the coolest C64s I've ever had. It's got a "new" blue case from the Kickstarter from 2014/2015, a Mechboard mechanical keyboard that's dreamy to type on and a C64 Reloaded MK1 motherboard fitted with original NTSC/breadbin chips. I love it.

But now I was searching old forum posts and websites that were seemingly written in 1997 about C64 troubleshooting. What chip controls the floppy drive? Wait... the SID?!

Stuff like that.

In a fit of desperation and panic, I bought a breadbin C64 that is fully socketed for $80. It's still en route to my house... My thought was I'd start to swap out 1 chip at a time and see if the trouble went away.

In order to finish my game, though, I pulled out a NOS 64C that's been just sitting in its original box and continued my game. It worked on the first try.

And then, a couple days later... that blinking light on the drive came back!! WTF was going on?!

I sat and stared at it for a few seconds. I'd replaced the drive, the computer, and the disks always worked in the C128D. What was I missing?

And then it hit me. It FINALLY hit me!

And to be 100% clear. This is going to sound obvious to all of you after you read it. And I've been using C64s for a long, long time. But in 2022, especially with the rise of Ultimate carts, etc. this kind of thinking hasn't been a part of my process for a while. Why? Because it simply has never been an issue.

When you use a C64 and disk drive, you are supposed to turn on the drive first and the computer last. Usually, this ordering makes no difference at all.
Screen Shot 2022-07-17 at 11.18.04 AM.png
A page from the 1541 user manual.


What I'd been doing:
I was powering up things generally in a staggered fashion. Sometimes the drive first and computer last, but often not waiting for one to be fully set before hitting the other switch. And sometimes the computer first and drive last. Honestly, it never made a bit of difference in the past. Sometimes I'd power cycle the drive just to reset it. You know, like when your drive errors out from a typing or loading error so you just power cycle that drive and start again. Boom - good to go. Not this time, though.

The fix:
Turn on drive first. Wait until it is totally done.
Turn on computer last. Then use the drive.

Doing it slowly and methodically actually mattered with this one particular game.

I still can't wrap my head around why it would load the game ½ way and then fail every time. But something about my power-up sequence made a huge difference. Absolutely baffling.

It's worth noting sometimes I could do this in the reverse order and it would work, too, with anything else. But for Legend of Blacksilver, for some reason it seems extremely sensitive to the power-up sequence and process. I can't remember the last time that ever happened to me.

That's why the C128 always worked! And that's why it didn't matter what hardware I swapped in or out of the chain. As long as I powered up in the precise recommended order and was patient about it, good to go.

Crazy!!

User avatar
intric8
Seattle, WA, USA

Posted Sun Jul 17, 2022 9:44 pm

An inkling of a theory...

Let's say the disk media is ever so slightly compromised. Perhaps the floppy disk has lost a single-digit percentage of its magnetism. And let's also say that the monitor can produce some "noise" or interference in general, even after a re-cap.

However, by powering up the disk drive and computer in a specific pattern somehow helps cut through that issue just enough to make things work. Wild guess, but that's the best I can come up with thus far.

User avatar
Crispy
Sunhillow

Posted Sun Jul 17, 2022 10:19 pm

Many revisions of the 1541 ROM have an auto-start feature that will load and run the first file it finds if the serial lines are in a certain state when the 1541 is powered on. It's possible that when you turn on the computer first, the serial lines are set to that state, and the disk drive runs its auto-start routine.

If this happens, then it could be running some random code that is overwriting system variables in RAM, and since the code that runs depends on the content of the disk, the behavior will change from disk to disk.

User avatar
intric8
Seattle, WA, USA

Posted Mon Jul 18, 2022 9:07 am

Fascinating, Crispy.

When you say,
if the serial lines are in a certain state when the 1541 is powered on
What state would that be? A faulty cable? Interference from the monitor? Something else?

User avatar
Crispy
Sunhillow

Posted Mon Jul 18, 2022 4:10 pm

From what I've read, if the CLK and DATA lines are held low while the 1541 is booting up, then it will load and run the first file on the disk.

I know that the C64 normally holds one of the lines low when the IEC bus is idle, and I have a vague recollection of looking at the IEC bus signals with a scope, and seeing the other line go low for a couple of seconds when the 1541 is powering up.

It's possible that those conditions are enough to trigger auto-start, but I can't say for sure since the ROM in my 1541 doesn't have the auto-start feature.

User avatar
Zippy Zapp
CA, USA

Posted Mon Jul 18, 2022 4:48 pm

Are you using a fastload cart? They are supported by most Epyx games. Interestingly if you read the fastload instructions it will tell you to always power on the drive last.

Even Commodore, in the past, has stated that both ways were the right way at different times.

Have you also tried swapping out your Serial cable and making sure the drive is away from the monitor as much as possible? I know if instances where the drive being too close to the monitor caused quirky interference.

It just sounds like everyday Commodore life to me as I remember all sorts of weird troubles like these throughout the years. haha

As for booting the first file on the disk at startup I didn't know this was possible with a stock 1541 and C64. I thought you had to make some mods to the serial lines or something like that, I can't really recall.





Return to “Commodore 8 Bits”