Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user maak ! (Registered 2024-04-18) You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Dreamload
2017-11-15 21:22
mrnop
Account closed

Registered: Jul 2017
Posts: 6
Dreamload

Hi there

So I've got a new game coming down the pipe, and another couple of releases planned for the World of Commodore meeting next month.

My intent is to release them in Dreamloader format but I'm stumped on something. The folks at Lemon64 haven't been able to help, so this calls for a programmer forum post over here at CSDB for results.

My question is, once the program has initialized (determined the proper drive and sent the code), will it work under IDE64?

I can detect IDE64 of course but I don't know what to do if it's found. Do I simply do nothing and not use Dreamload code at all, or do I allow Dreamload to install and trust that the IDE64 user has it set up as a 1541 drive?

I'd like to aim for 100% compatibility but I don't own actual C64 hardwars.

I'm also using standard M-R and M-W to alter some sectors on track 18, will this be compatible with all the devices out there today (IDE64, SD2IEC, 1581, etc.). In addition I'm also using code to read the directory ($) and pull the filenames.

Would appreciate knowing if this code will work, or better yet if someone with actual hardware mass storage devices for a C64 would mind testing my code before the WoC show. :)
2017-11-15 21:36
chatGPZ

Registered: Dec 2001
Posts: 11100
M-R/M-W will probably not give the expected results with some devices (like sd2iec, or even 1581). if you want to be really compatible you shouldnt do this kind of stuff at all.

whatever, you can test it all in VICE, i guess
2017-11-16 05:24
Flavioweb

Registered: Nov 2011
Posts: 442
I think the best way to detect device model is to reset it (UJ) then parsing the error channel.
2017-11-16 08:18
soci

Registered: Sep 2003
Posts: 473
Quoting Mister NOP
My question is, once the program has initialized (determined the proper drive and sent the code), will it work under IDE64?


If it has "IFFDevTyp_64" in iff.src then it will use KERNEL byte-by-byte fallback. But I'm not sure if that version was released.

Quoting Mister NOP
I can detect IDE64 of course but I don't know what to do if it's found.


I hope you've meant detection of an IDEDOS handled drive and not the cartridge itself. Be careful, the user might still run the program from an 1541 with the cartridge.

Quoting Mister NOP
Do I simply do nothing and not use Dreamload code at all, or do I allow Dreamload to install and trust that the IDE64 user has it set up as a 1541 drive?


It's not possible to set it up as 1541 drive as it's not an 1541 emulator but an interface card. Use KERNAL fallback.

Quoting Mister NOP
I'd like to aim for 100% compatibility but I don't own actual C64 hardwars.


Do standard (non-IEC) KERNAL calls for all devices which are unknown.

Quoting Mister NOP
I'm also using standard M-R and M-W to alter some sectors on track 18, will this be compatible with all the devices out there today (IDE64, SD2IEC, 1581, etc.).


Don't do that, you're going too much low level at that point for cross device compatibility.

Quoting Mister NOP
In addition I'm also using code to read the directory ($) and pull the filenames.


This is fine if it's the formatted directory (channel 0).

Quoting Mister NOP
Would appreciate knowing if this code will work, or better yet if someone with actual hardware mass storage devices for a C64 would mind testing my code before the WoC show. :)


VICE may be used for testing, it's IDE64 emulation is good. PM in case you need some testing.
2017-11-16 11:15
Impetigo

Registered: Jun 2004
Posts: 30
Quoting Mister NOP
...if someone with actual hardware mass storage devices for a C64 would mind testing my code before the WoC show. :)

I can do tests on my SD2IEC (w/ the latest nightly firmware.) With stock and JiffyDOS C64 kernel.
2017-11-16 21:23
mrnop
Account closed

Registered: Jul 2017
Posts: 6
Quote: Quoting Mister NOP
My question is, once the program has initialized (determined the proper drive and sent the code), will it work under IDE64?


If it has "IFFDevTyp_64" in iff.src then it will use KERNEL byte-by-byte fallback. But I'm not sure if that version was released.

Quoting Mister NOP
I can detect IDE64 of course but I don't know what to do if it's found.


I hope you've meant detection of an IDEDOS handled drive and not the cartridge itself. Be careful, the user might still run the program from an 1541 with the cartridge.

Quoting Mister NOP
Do I simply do nothing and not use Dreamload code at all, or do I allow Dreamload to install and trust that the IDE64 user has it set up as a 1541 drive?


It's not possible to set it up as 1541 drive as it's not an 1541 emulator but an interface card. Use KERNAL fallback.

Quoting Mister NOP
I'd like to aim for 100% compatibility but I don't own actual C64 hardwars.


Do standard (non-IEC) KERNAL calls for all devices which are unknown.

Quoting Mister NOP
I'm also using standard M-R and M-W to alter some sectors on track 18, will this be compatible with all the devices out there today (IDE64, SD2IEC, 1581, etc.).


Don't do that, you're going too much low level at that point for cross device compatibility.

Quoting Mister NOP
In addition I'm also using code to read the directory ($) and pull the filenames.


This is fine if it's the formatted directory (channel 0).

Quoting Mister NOP
Would appreciate knowing if this code will work, or better yet if someone with actual hardware mass storage devices for a C64 would mind testing my code before the WoC show. :)


VICE may be used for testing, it's IDE64 emulation is good. PM in case you need some testing.


>I hope you've meant detection of an IDEDOS handled drive
>and not the cartridge itself. Be careful, the user might
>still run the program from an 1541 with the cartridge.

What I meant was I can check for the 'I', 'D' and 'E' in the $D000 bank to see if the hardware is present. Never thought that someone would have both a 1541 and IDE64 though - good point and I'll have to address it.

I'm a little confused so bear with me. Let's say that you have an IDE64 and NO disk drive. I have a 100 block game and a 2 block loader for the game. It's a simple one file game aside from the loader. The game begins via a JMP command.

I release the disk as a D64 file.

Joe comes along with a true 1541 and the loader says "You have a 1541, I'm going to use Dreamload" and not a Kernel routine.

Sam comes along with his IDE64 and.... then what? What devices if any are detected? (Is the IDE64 a makeshift 1541? )

Will Dreamload use Kernal?

I know the routine for loading files via DL don't point to the Kernal routine but am unsure if it might redirect upon finding an IDE64 device.


I'll send the files to you Impetigo before release, for testing... but this whole IDE64 thing has be confused and I'm trying to wrap my head around it. It's supposed to be supported with Dreamload but DL doesn't use Kernal loads.
2017-11-16 22:59
soci

Registered: Sep 2003
Posts: 473
Normally it goes so that all files in the D64 are copied into a directory and the start file is run from there.

Best is if your 2 block start file is using KERNAL load to load the 100 block main file using the device number from $BA (last used device number). Estimated load time will be 0.3 seconds so it might be worth to use a slow packer for the main file if the loader displays something.

IDEDOS is not implementing any specific drive model. It understands CBM DOS commands of course and for compatibility it implements directory, path and partition handling commands of CMD DOS.

It needs to be handled on the high level (files) only. Going lower is asking for trouble as you'll find that there could be different filesystems (CFS, ISO9660, FAT) or none if it's a network drive. File level gives you the best compatibility and not just with IDE64.

If the application is really this simple as a loader then create two of them (DL and KERNAL). It's even better if the main file can be loaded and run without any loader at all.

I'm not sure what you wanted to change on track 18 but it's better if that info is saved into a file.
2017-11-16 23:16
mrnop
Account closed

Registered: Jul 2017
Posts: 6
Thanks. I think I get it now. I'll just use Kernal entirely if there's an IDE64. The track 18 part is part of a utility that will also be released.

Does the IDE64 support track reading at all? It sounds like it's just a large file repository and doesn't use sectors in the sense that we know it.
2017-11-17 06:26
soci

Registered: Sep 2003
Posts: 473
It depends on the device connected but sectors can be either 512 or 2048 bytes. It's using CHS addressing with old harddisks otherwise LBA whenever possible up to 28 bits.

So no "emulation" partitions, 256 byte sectors or tracks. It's DOS provides compatible file access and management but it does not emulate a CBM style filesystem with small sectors.

There's a fine manual here:
http://singularcrew.hu/idedos/IDE64_users_guide.pdf

In case it's not accessible there's a backup mirrored here:
https://home.sch.bme.hu/~soci64/idedos/IDE64_users_guide.pdf

Unfortunately at this time there are network issues at the location where the first server is located.
2017-11-17 20:52
mrnop
Account closed

Registered: Jul 2017
Posts: 6
Okay I think I've got it now, thank you to all.

One utility won't work because it uses sectors, but now I know to release the game in non-sector format.
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
Sentinel/Excess/TREX
csabanw
Sande/Hokuto Force
Devia/Ancients
Dave/SIDNIFY
MaD ][/Starship
Guests online: 90
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 The Ghost  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.8)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 Wafer Demo  (9.5)
7 TRSAC, Gabber & Pebe..  (9.5)
8 Onscreen 5k  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Crackers
1 Mr. Z  (9.9)
2 S!R  (9.9)
3 Mr Zero Page  (9.8)
4 Antitrack  (9.8)
5 OTD  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.063 sec.