Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Spindle and Sparkle demos not launching
2024-10-29 21:01
mankeli

Registered: Oct 2010
Posts: 146
Spindle and Sparkle demos not launching

Can someone explain why demos using Sparkle or Spindle loaders can't be run from 1541U by selecting the launch file and using "mount & run"?

You got to use "Run Disk" for the whole image. 99.9999% of the C64 demos can be launched with mount & run, and somehow this only seems affect those aforementioned loaders.
 
... 60 posts hidden. Click here to view all posts....
 
2024-10-31 18:00
LordCrass

Registered: Apr 2023
Posts: 8
It's because of the disk ID bytes at drive memory $12/$13. A shortcut is given to execute an FDC read job, which at some point compares on-disk ID to what is expected, but what is expected hasn't been set and is just $00, so error 29 Disk ID Mismatch occurs.
2024-10-31 18:26
tlr

Registered: Sep 2003
Posts: 1790
Quote: It's because of the disk ID bytes at drive memory $12/$13. A shortcut is given to execute an FDC read job, which at some point compares on-disk ID to what is expected, but what is expected hasn't been set and is just $00, so error 29 Disk ID Mismatch occurs.

Interesting! So how does this work on regular load? It still uses FDC read jobs so who sets up $12/$13?

There is the BAM flag at $1c which indicates we are not initialized so I guess that is involved somehow?
2024-10-31 19:10
tlr

Registered: Sep 2003
Posts: 1790
Quote: Interesting! So how does this work on regular load? It still uses FDC read jobs so who sets up $12/$13?

There is the BAM flag at $1c which indicates we are not initialized so I guess that is involved somehow?


To answer my own question: The id always gets set up when doing a SEEK ($b0).
A regular load seems to always do initialize in the beginning of the directory search, but for loaders that do not use this a SEEK is sufficient.

That job code handling is done by the $45 check at $f3ec.
2024-10-31 23:37
Krill

Registered: Apr 2002
Posts: 2981
Quoting Martin Piper
I remember now, it was the transwarp example that issues a M-E with the partial just loaded file in the read buffer: Transwarp V0.84
Yes, that's part of the 2-blocks bootstrap fastload strapped in front to speed up booting the actual loader.
Was 1-block in early dev versions, but that turned out to be too slow for my purposes. =)
(You can always fall back to loading Transwarp itself via ,8+RUN not ,8,1 when autorun won't work for some reason.)

As for the problems described here, i like the concept of a multi-loader coming in a self-contained package in C-64 memory, that would function just fine when run immediately after drive reset, new disk etc. :)

Then again, no particular love for non-stock aftermarket hardware.
2024-11-01 08:08
Burglar

Registered: Dec 2004
Posts: 1105
Quoting mankeli
This happens on U64 too. (Ultimate 64 Elite V1.43 - 3.11) Aerial Core for example doesn't work with mount & run, it needs run disk.

Areal Core has its own issues, it does not load on a stock c64+1541 without cartridge due to the dirart and not having the boot prg as first file.
trying to load the prg will give file not found, unless you modify the filename with ? and *
2024-11-01 12:52
Krill

Registered: Apr 2002
Posts: 2981
Quoting Burglar
it does not load on a stock c64+1541 without cartridge due to the dirart and not having the boot prg as first file.
trying to load the prg will give file not found, unless you modify the filename with ? and *
Time to add that "disk image linting" to cc1541 we talked about recently. =)
2024-11-01 12:55
tlr

Registered: Sep 2003
Posts: 1790
Quote: Quoting Burglar
it does not load on a stock c64+1541 without cartridge due to the dirart and not having the boot prg as first file.
trying to load the prg will give file not found, unless you modify the filename with ? and *
Time to add that "disk image linting" to cc1541 we talked about recently. =)


Great idea!
2024-11-01 16:53
Martin Piper

Registered: Nov 2007
Posts: 726
Quote: Quoting Martin Piper
I remember now, it was the transwarp example that issues a M-E with the partial just loaded file in the read buffer: Transwarp V0.84
Yes, that's part of the 2-blocks bootstrap fastload strapped in front to speed up booting the actual loader.
Was 1-block in early dev versions, but that turned out to be too slow for my purposes. =)
(You can always fall back to loading Transwarp itself via ,8+RUN not ,8,1 when autorun won't work for some reason.)

As for the problems described here, i like the concept of a multi-loader coming in a self-contained package in C-64 memory, that would function just fine when run immediately after drive reset, new disk etc. :)

Then again, no particular love for non-stock aftermarket hardware.


I really liked the way that bootstrap code started executing on the C64 then switched over to the fastload.
2024-11-02 12:04
mankeli

Registered: Oct 2010
Posts: 146
Quote: Quoting mankeli
This happens on U64 too. (Ultimate 64 Elite V1.43 - 3.11) Aerial Core for example doesn't work with mount & run, it needs run disk.

Areal Core has its own issues, it does not load on a stock c64+1541 without cartridge due to the dirart and not having the boot prg as first file.
trying to load the prg will give file not found, unless you modify the filename with ? and *


Oh, thanks for reporting!
Getting the dirart to even work was a huge pain ^^

But yeah atleast the problem got narrowed down to Basic LOAD leaving some state to 1541 which Spindle then depends on. As an another example Skybox doesn't work with mount and run either, and it probably has dirart as DEL Files.
2024-11-02 16:59
tlr

Registered: Sep 2003
Posts: 1790
Quoting mankeli
But yeah atleast the problem got narrowed down to Basic LOAD leaving some state to 1541 which Spindle then depends on.

As LordCrass identified, it's only the disk ID that is not set up. This could be fixed in the M-E bootstrap code such that a seek is done before the reads. I think that could fit.

For an inject run strategy to work with the current code, the 1541 needs to be configured with this disk ID as a minimum.
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Malmix/Fatzone
Slator/Arsenic/Stone..
Fungus/Nostalgia
fandenvoldsk
Knut Clausen/SHAPE/F..
lA-sTYLe/Quantum
CreaMD/React
Yogibear/Protovision
Higgie/Kraze/Slackers
Guests online: 126
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.6)
4 Coma Light 13  (9.6)
5 The Demo Coder  (9.6)
6 Edge of Disgrace  (9.6)
7 What Is The Matrix 2  (9.6)
8 Sprite Bukkake 2  (9.6)
9 Uncensored  (9.6)
10 Comaland 100%  (9.6)
Top onefile Demos
1 Layers  (9.7)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 Rainbow Connection  (9.5)
6 Morph  (9.5)
7 Dawnfall V1.1  (9.5)
8 Libertongo  (9.5)
9 Katzen-Video.mp4  (9.5)
10 Onscreen 5k  (9.5)
Top Groups
1 Booze Design  (9.3)
2 Oxyron  (9.3)
3 Performers  (9.3)
4 Fairlight  (9.3)
5 Triad  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.0)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.22 sec.