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 > IRQ-loader toolchain for KickAss/Windows?
2015-06-09 21:42
Shadow
Account closed

Registered: Apr 2002
Posts: 355
IRQ-loader toolchain for KickAss/Windows?

So, the one and only time I tried making an IRQ-loading demo I swore I would never, ever try that again.
Now I guess the memory has faded enough that I'm perhaps starting to reconsider! :)

Back then I used Dreamload and Exomizer, however putting it together was a complete pain in the ass.
I don't recall exactly what the trouble was, but I think it was the fact that the de-exomizer needed to point to the end of the packed data, which meant I had to compile the parts I wanted to load, exomize them, manually note the lengths, and then enter that length in another source where I had the general part-loader as indata to the deexomizer. Every little change meant redoing that procedure since the packed length always differed a bit.

Has anyone some more plug-and-play-ready solutions? I know there is lft's Spindle system, but that seems a bit too specific in the way you have to do things, and also kind of Linux-centric.

I would prefer working from Windows and using KickAssembler.
2015-06-10 02:03
Jammer

Registered: Nov 2002
Posts: 1335
Bongo Linking Engine this? :)
Bitfire 0.3 or this? :)
2015-06-10 05:35
Endurion

Registered: Mar 2007
Posts: 73
Usual plug: C64Studio lets you do pre and post build events (batch scripts) and has a function to get the size of a file (io.filesize)

Since KickAssembler just loves convoluted scripts there's surely a way to count bytes of a file?
2015-06-10 07:22
Mr. SID

Registered: Jan 2003
Posts: 424
Forward exomized files are possible these days, e.g. Krill's loader is doing that. Maybe check that one out?
It needs cc65/ca65 to build, but you only really need to do that once, then you can include the binary into your project.
2015-06-10 07:44
Krill

Registered: Apr 2002
Posts: 2980
Yes, in fact, i added forward compression/decompression to exomizer and its 6502 decompressors to make it fit the loading scheme and simplify the handling.

Unpacking an exomized file while loading is no more difficult than loading a plain unpacked file - the only difference is to call "loadcompd" instead of "loadraw" with my loader.

As Mr. SID said, you need to bother with other assemblers and their environments only once to compile loaders in general. You will get binaries (usually something like install.prg and loader.prg) and a symbols file which you can include with whatever assembler you please.
2015-06-10 09:07
Trap

Registered: Jul 2010
Posts: 223
Shadow, when you figure out how to use Krill's loader with Windows/KickAss ... please share :) I failed miserably in every attempt.
2015-06-10 09:59
Krill

Registered: Apr 2002
Posts: 2980
Trap: Once you have install.prg, loader.prg and loadersymbols.inc, the rest should be a piece of cake. Include and incbin are your friends.
Getting those files built according to your specs might be a bit difficult at first (especially when you are on Windows only and have little experience with how *NIX-style open-source projects are typically built), but actually using the loader with whatever development environment should be quite straightforward.
You can reach me easily on IRCnet/#c-64, with CSDb PM and especially mail i might be slow to respond or forget to.
2015-06-10 17:43
Burglar

Registered: Dec 2004
Posts: 1101
exactly what Krill said, his loader is gonna be your best bet, in speed only surpassed by bitfire which for a windows user is probably harder to master.

and #c-64 is your source of wisdom. on ircnet.
2015-06-10 17:59
Burglar

Registered: Dec 2004
Posts: 1101
Quoting Shadow
I don't recall exactly what the trouble was, but I think it was the fact that the de-exomizer needed to point to the end of the packed data, which meant I had to compile the parts I wanted to load, exomize them, manually note the lengths, and then enter that length in another source...
This I really do not understand, because it's simply not true, you just exodecrunch combined with an (irq)loader and feed it a byte at request. Yes this will decrunch backwards by default. But first ask yourself if you really need the data while its loading... If you do, use forward decrunch.

these days tho, I would recommend doynamite/bitnax, size results are worse, but depacking time rules. especially in combination with a fast loader like krill's, this should deliver best results in load+decrunch time.
2015-06-10 18:25
Krill

Registered: Apr 2002
Posts: 2980
Quoting Burglar
in speed only surpassed by bitfire
I should really finish that new release, oh my... :)

But i believe that lft's Spindle system is faster as well, and i wouldn't be surprised if it'd best Bitfire in speed. Any stats? :)
2015-06-10 18:43
Krill

Registered: Apr 2002
Posts: 2980
That said, having the fastest loading speed is a bit overrated. The top average speeds are fairly close, and most productions don't really need the fastest one. Plus achieving them requires a fair bit of inside knowledge, and more often than not people pick the purportedly fastest loader and then do something wrong, ending up on some speed many other loaders can achieve as well. End of rant. :)
2015-06-10 18:53
Bitbreaker

Registered: Oct 2002
Posts: 508
Quoting Krill
Quoting Burglar
in speed only surpassed by bitfire
I should really finish that new release, oh my... :)

But i believe that lft's Spindle system is faster as well, and i wouldn't be surprised if it'd best Bitfire in speed. Any stats? :)


I'd love to have compareable figures from spindle, but it was too much hassle for me to build a testcase with it. I guess it is slightly faster but compresses worse and thus loads again longer. Also memory footprint on c64 side is bigger.
And now deliver your new version, go! go! go! :-)
2015-06-10 18:56
Bitbreaker

Registered: Oct 2002
Posts: 508
Quote: That said, having the fastest loading speed is a bit overrated. The top average speeds are fairly close, and most productions don't really need the fastest one. Plus achieving them requires a fair bit of inside knowledge, and more often than not people pick the purportedly fastest loader and then do something wrong, ending up on some speed many other loaders can achieve as well. End of rant. :)

No. :-)
2015-06-10 19:35
HCL

Registered: Feb 2003
Posts: 728
Oh, you forget the toolchain that is used in most top-10 productions already: ByteBoozer and the BoozeLoader :). Well tested in real life situations by top demos for 10-15 years by now!! Now with ByteBoozer2.0 you don't need to be afraid to be slower or larger than any of the other oh so popular systems, just chill and let the slim code do the job for you :).

Bb2.0 is not yet out for grabs though, but will be soon. You can of course have a pre-release if you ask me kindly ;).
2015-06-10 21:19
Shadow
Account closed

Registered: Apr 2002
Posts: 355
Ideally I would like to have something that allows me to work kind of like this from a .BAT-file (yeah, I still use those!)

<compile a bunch of files using Kickass>
<pack each file using PACKERTOOL_XXX>
<make a D64 of all files using D64TOOL_YYY>

Then in my main program I want to be able to do something like:

jsr initloader
..
lda/ldx/ldy #SOME_REFERENCE_TO_PART1
jsr load_and_decrunch_at_the_same_time
jsr part1
lda/ldx/ldy #SOME_REFERENCE_TO_PART2
jsr load_and_decrunch_at_the_same_time
jsr part2


I have taken a look at all the suggestions that have been posted so far (with the exception of HCLs stuff, as it seems only the packer and not the loader is released from what I can find on CSDb) and both Bitfire and Krills loader seem to do pretty much what I want to.

I started with Krill as it got the most recommendations. Unfortunately I am lazy and the list of prereqs to compile the thing was a bit too much, as I would need to get cygwin and perl etc. etc. setup first.

I then moved on to Bitfire. I managed to compile win32 versions of both the d64write and bitnax utility, but now I need to download ACME and try to get the files assembled without access to all the sed-magic that the Makefile uses. Another day maybe.

I know I am a bit of a grumpy old man, but I have never really seen the charm with the Linux way of doing things, with distributing sources and makefiles and always having to build everything from scratch when you want to use it.
2015-06-10 21:41
HCL

Registered: Feb 2003
Posts: 728
Well, you really seem to need my stuff.. :). But I'll talk you later, have to go sleep now..
2015-06-11 06:10
Krill

Registered: Apr 2002
Posts: 2980
Quoting Bitbreaker
And now deliver your new version, go! go! go! :-)
I'm working on a patch release to fix a few bugs and make it compatible with recent versions of cc65/ca65/ld65 again and drop the dreadful Java and Dosbox (for Levelcrush) dependencies. New features and speed improvements will only be contained in the release after that, and who knows when i'll come around to finally do all that.
2015-06-11 06:46
Bitbreaker

Registered: Oct 2002
Posts: 508
Quote: Oh, you forget the toolchain that is used in most top-10 productions already: ByteBoozer and the BoozeLoader :). Well tested in real life situations by top demos for 10-15 years by now!! Now with ByteBoozer2.0 you don't need to be afraid to be slower or larger than any of the other oh so popular systems, just chill and let the slim code do the job for you :).

Bb2.0 is not yet out for grabs though, but will be soon. You can of course have a pre-release if you ask me kindly ;).


Bla bla bla, share and compare your penis or gtfo :-P
2015-06-11 06:58
Bitbreaker

Registered: Oct 2002
Posts: 508
Quoting Shadow

I then moved on to Bitfire. I managed to compile win32 versions of both the d64write and bitnax utility, but now I need to download ACME and try to get the files assembled without access to all the sed-magic that the Makefile uses. Another day maybe.

I know I am a bit of a grumpy old man, but I have never really seen the charm with the Linux way of doing things, with distributing sources and makefiles and always having to build everything from scratch when you want to use it.


Well, try to pretty print the labels for other assemblers without any tools but just with a .bat :-) That is what the sed wizardry is for, you can of course just pick the needed labels by hand and adapt them, no need to use the Makefile.
I'm aware that KickAss is offering the possibilities to do all this within an assembler, but well, that would fill again another thread about why that might be a good or bad idea :-)
Distributed sources allow to understand mechanisms and allows one to add own changes easily. I could of course just release a installer and resident part with a fixed address and let it up to you to relocate :-D Also it gives people to continue the work or fix bugs if a project is abandoned or if there's no feedback form the developer in time.
When you compiled acme finally, stick to it, it's worth it :-D
2015-06-11 07:25
Krill

Registered: Apr 2002
Posts: 2980
Quoting HCL
Oh, you forget the toolchain that is used in most top-10 productions already: ByteBoozer and the BoozeLoader :)
... and this is a very dubious claim as well. Unless you mean the top-10 Booze productions, which would make this a bit of a tautology. :)
2015-06-11 10:33
Flavioweb

Registered: Nov 2011
Posts: 463
I think that Cadaver loader could be a good choice.
Is fully customizable, support exomizer ad pucrunch in any version and with all possible configuration.
Usually i use Cadaver loader, with 2bit protocol, and exomize my files simply with the "level" parameter, setting the loader configs accordingly.
To create the disk image, cc1541 could be a good choice too. Need some little bugfix to manage BAM correctly but you notice it only if you need to save on disks, but it's a nice tool since you can change files interleave quickly.
Create a chain with these tools and with your fave compiler, it's quite an easy task, both if you choose batch or make files to do it.
If you want to go a little deeper, using *nix power in a windows world, you should think to install cygwin.
With cygwin you can compile sources for windows and use makefiles as on native *nix system, but using your files in/for windows.
Just my 2 cents...
2015-06-11 10:34
HCL

Registered: Feb 2003
Posts: 728
hey guys, just take a deep breath and drop all that anger and envy.. :)
2015-06-11 11:23
Bitbreaker

Registered: Oct 2002
Posts: 508
Quote: hey guys, just take a deep breath and drop all that anger and envy.. :)



what? 8-D
2015-06-11 11:27
Krill

Registered: Apr 2002
Posts: 2980
Quoting Flavioweb
cc1541 could be a good choice too. Need some little bugfix to manage BAM correctly
Which version are you talking about? That bug has been fixed like, what, 10 years ago? (By Jackasser himself, who started this tool, then it got forked somewhat inadvertently and never merged again. I guess his version ties his shoes and makes toast every morning by now.)
2015-06-11 11:49
HCL

Registered: Feb 2003
Posts: 728
Omg, this is truly embarresing.. If this is so important to you Bitbreaker, i will leave this discussion to avoid further harm..
2015-06-11 14:52
Oswald

Registered: Apr 2002
Posts: 5094
if it wasnt so important there wouldnt be so much work invested, right? lets not pretend its not :)
2015-06-11 15:05
Flavioweb

Registered: Nov 2011
Posts: 463
Quoting Krill
Which version are you talking about? That bug has been fixed like, what, 10 years ago?

I don't know if there are other sources for download, but quoting JackAsser himself:
Quote:

Submitted by JackAsser [PM] on 2 July 2013
I thought the version here was fixed TBH. The bits in each byte in the BAM was reversed. Just add a (7-i) somewhere in that code. Should be easy to spot! :)

I have not checked if the exe working properly, but compiling it from sources, bug still alive and kickin'.
cc1541
2015-06-11 19:44
Burglar

Registered: Dec 2004
Posts: 1101
Quoting HCL
hey guys, just take a deep breath and drop all that anger and envy.. :)
I dont see any anger in this thread at all, just a pissing contest. Isnt that what the scene is about? :P

also, my loader > your loader :)

neither krillloader, byteboozer, bitfire, cadaver, or whatever supports the things my proprietary loader supports, so you all suck anyway :P

PS: the cc1541 on csdb is still borked, the fix is easy though.
2015-06-11 19:52
Krill

Registered: Apr 2002
Posts: 2980
Quoting Flavioweb
I don't know if there are other sources for download
My loader came with an incarnation of cc1541 since day one. A quick check using the validate command suggested it generates the BAM just fine, at least with the last officially released version (v146).
2015-06-11 19:56
Krill

Registered: Apr 2002
Posts: 2980
Quoting Burglar
neither krillloader, byteboozer, bitfire, cadaver, or whatever supports the things my proprietary loader supports
Yes, as with all engineering, there is no Silver Bullet (TM) :) Just occupying different spots in the design space to suit different objectives, trading off this for that on the designer's whim. (Amen.)
2015-06-11 20:02
chatGPZ

Registered: Dec 2001
Posts: 11386
i wonder how many more years it'll take until those tools are available in a proper repository :) i'd even submit the changes/fixes i made locally :)

and just for the records: all loaders suck. and their coders are fucking weirdos. FACT
2015-06-11 20:09
Burglar

Registered: Dec 2004
Posts: 1101
somehow it's very odd that groepaz never made a loader :)
2015-06-11 20:11
Trap

Registered: Jul 2010
Posts: 223
I just want to say that I love that you guys share all your hard work with us less fortunate (dumb?) souls, so we can reap all the benefits. True Bonzai style guys ;)

Sharing is caring :D
2015-06-11 20:28
chatGPZ

Registered: Dec 2001
Posts: 11386
burglar: actually i did - and it sucked even betterer than the existing alternatives (taboos) ... i doubt anyone would want to see it =)
2015-06-11 20:49
Krill

Registered: Apr 2002
Posts: 2980
Quoting Groepaz
i wonder how many more years it'll take until those tools are available in a proper repository :) i'd even submit the changes/fixes i made locally :)
I think you've just answered your implicit question yourself :D
2015-06-11 20:51
chatGPZ

Registered: Dec 2001
Posts: 11386
perhaps i should just push my local repo to github and hijack this... =P
2015-06-12 05:06
Oswald

Registered: Apr 2002
Posts: 5094
Quote: Quoting Flavioweb
I don't know if there are other sources for download
My loader came with an incarnation of cc1541 since day one. A quick check using the validate command suggested it generates the BAM just fine, at least with the last officially released version (v146).


/nitpick

on day one your loaders came in native c64 turbo ass src without cc1541 O:-)

/nitpick
2015-06-12 07:11
Krill

Registered: Apr 2002
Posts: 2980
Quoting Oswald
on day one your loaders came in native c64 turbo ass src without cc1541
Yes, the other loaders before the current one. They're somewhat related but different projects. I meant day one of the current loader.
2015-06-12 17:08
Pantaloon

Registered: Aug 2003
Posts: 124
Krill+Doynax is uber! and very easy to use, i wouldn't change my setup unless some other setup did add alot of benefits, which they don't. For the actual linking i use a simple framework and a custom "make" script written in ..... VBS :)
2015-06-12 23:24
raven
Account closed

Registered: Jan 2002
Posts: 137
HCL, is your loader still failing on 1571 drives?

EOD is not working on my 128D due to loader issues, cant remember if I tried any of your later demos on 1571.
2015-06-13 07:17
Oswald

Registered: Apr 2002
Posts: 5094
Quote: Krill+Doynax is uber! and very easy to use, i wouldn't change my setup unless some other setup did add alot of benefits, which they don't. For the actual linking i use a simple framework and a custom "make" script written in ..... VBS :)

yeah, i often feel that some guys overdo it, a very basic makefile or even a .bat should be enough, on todays pc's it creates a d64 in a few seconds all dependencies recompiled or not.
2015-06-13 10:40
Bitbreaker

Registered: Oct 2002
Posts: 508
Quoting Oswald
yeah, i often feel that some guys overdo it, a very basic makefile or even a .bat should be enough, on todays pc's it creates a d64 in a few seconds all dependencies recompiled or not.


As well as hot glue and polyurethane foam do suffice when constructing things ...
2015-06-13 10:59
HCL

Registered: Feb 2003
Posts: 728
@Raven: Yes my loader worx fine on 1571, EoD still has problems, as i don't care to re-link old demos as soon as i update my loader.. :P.. Perhaps i should (?)..

128dcr still needs extra care, by adding that extra cycle in the transfer loop.. i guess noone but Krill actually did his homework properly there..
2015-06-13 14:41
hollowman

Registered: Dec 2001
Posts: 474
Quoting Oswald
/nitpick
on day one your loaders came in native c64 turbo ass src without cc1541 O:-)
/nitpick

Was there a day before plushdos?
2015-06-13 15:10
soci

Registered: Sep 2003
Posts: 480
Quote: Quoting Oswald
yeah, i often feel that some guys overdo it, a very basic makefile or even a .bat should be enough, on todays pc's it creates a d64 in a few seconds all dependencies recompiled or not.


As well as hot glue and polyurethane foam do suffice when constructing things ...


I don't think so, you may as well need some duct tape and cable ties ;)
2015-06-13 15:15
doynax
Account closed

Registered: Oct 2004
Posts: 212
Quoting HCL
128dcr still needs extra care, by adding that extra cycle in the transfer loop..
I haven't done extensive testing yet but temporarily switching in the 2 MHz mode during the IRQ transfers also seems to do the trick.
2015-06-13 20:13
Oswald

Registered: Apr 2002
Posts: 5094
Quote: Quoting Oswald
/nitpick
on day one your loaders came in native c64 turbo ass src without cc1541 O:-)
/nitpick

Was there a day before plushdos?


/rambling

well, before that we were using a ripped smash loader. We had fun debugging the turn disk while linking void (each test cycle meant rewatching side 1 on real thing) until we found out I have optimised the side detect code away for gaining some bytes, not knowing what it is :)

and before that I had a megademo with a irqloader ripped from a sex slideshow, but unfortunately that got lost, as I made that before I "joined" the scene, and when I sold my c64 to get an amiga I gave the disk away. maybe a friend has it sitting on a disk somewhere. :)

/
2015-06-14 11:12
MagerValp

Registered: Dec 2001
Posts: 1078
Quoting Oswald
yeah, i often feel that some guys overdo it, a very basic makefile or even a .bat should be enough, on todays pc's it creates a d64 in a few seconds all dependencies recompiled or not.


That's not my experience. Building u4remastered with the equivalent of a bat file takes 12.4 seconds, with an SSD and hot caches. A makefile with 8 parallel jobs brings it down to 5.3 seconds, but just rebuilding the IFFL loader and updating the disk images takes 2.9 seconds, with most time spent in exomizer. Rebuilding the EF version, which doesn't need exomizer, takes 0.7 seconds.
2015-06-14 12:11
Oswald

Registered: Apr 2002
Posts: 5094
depends on project and personal pereferences, if VBS works for demos for Pantaloon, then it should be alright I guess. More complex projects it wouldnt work like in your case.

last time I linked I used make, the experience still wasnt much less terrible when I linked on the real thing. seems you just cant escape a dozen of bugs which are a nightmare to find.
2015-06-14 13:04
Bitbreaker

Registered: Oct 2002
Posts: 508
Quoting Oswald

last time I linked I used make, the experience still wasnt much less terrible when I linked on the real thing.


I think linking on the real thing wasn't too bad back then. Everythng was done very well planned and done precicely to not loose too much time in packing. Parts were made in seuqential order and placed on the masterdisk when done. Nowadays everything gets linked first and no matter how flakey it is, and get improved, until things work out finally, as building and packing a whole disk image does not steal too much time in comparision. However many builds when being summed up still steal time, especially the packing and as the amount of builds explodes when going the new approach, and suddenly it is smart again to only recompile and pack that stuff that really changed. Thus: makefiles/build environment that is capable of dependencies.
2015-06-14 13:49
Pantaloon

Registered: Aug 2003
Posts: 124
my system only relink what has changed. takes about 2 seconds with compile + disk build. parallelizing this wouldnt make it that much faster :)
2015-06-14 14:15
Burglar

Registered: Dec 2004
Posts: 1101
Quoting Pantaloon
my system only relink what has changed. takes about 2 seconds with compile + disk build. parallelizing this wouldnt make it that much faster :)
yay, buildsystem pissing contest \o/

I piss this far:

build includes: compiling, png to koala, compiling cc1541 fork, converting json level data to prg, exomizes everything, iffl-links and creates the d64.

build single threaded: 19.25 sec
build parallel: 6 sec

rebuild time depends on what changed of course. and yes, it's just a Makefile
2015-06-14 16:02
chatGPZ

Registered: Dec 2001
Posts: 11386
your buildsystem doesnt rebuild exomizer and VICE if needed? lame =)
2015-06-15 12:58
Flavioweb

Registered: Nov 2011
Posts: 463
Mine recompile also the kernel using "make oldconfig && configure && make && make modules && make mrproper".
...
Doh!
2015-06-15 18:56
Trap

Registered: Jul 2010
Posts: 223
I would love to see an example on how you do things in a bat/vbs file?
2017-10-04 14:20
Bacchus

Registered: Jan 2002
Posts: 156
I have started a more objective summary of the existing solutions out there.

Feel fee to contribute (you can comment - not edit) to prove how far you can piss.
2017-10-04 14:32
chatGPZ

Registered: Dec 2001
Posts: 11386
wasnt there a long thread that compares loaders (and had hard numbers) a year ago or so? :=)
2017-10-04 16:06
Shine

Registered: Jul 2012
Posts: 369
This:

Nucrunch 0.1

?

EDIT: Ah you talked about loaders, so i missunderstood ...
2017-10-04 20:46
Krill

Registered: Apr 2002
Posts: 2980
Bacchus: Hold your horses when testing my loader, please. New release soon, with massive performance improvements :)
2017-10-04 21:30
soci

Registered: Sep 2003
Posts: 480
If you have time please check which version of your loader was used in this release:
Dreamtime 2K17

I hope it's something ancient.

It was pure luck that I could show this without a crash at the compo. Spent more than a hour to try to master a version with a box of disks and several drives (in top condition) before I run out of time and gave up.

It was not possible, it always hang after a while or loaded garbage. Basically this version reached the point that it's only usable with an emulator.

Please add more tolerance for real hardware in the coming version if not already done so.

Thanks!
2017-10-04 23:11
Krill

Registered: Apr 2002
Posts: 2980
Ah, now we finally know who "Profi 1" really is. :)

Anyhow, i've peeked a bit at the linked prod and found following pieces of code offending the loader's API:
.C:0a2b   AD 00 DD   LDA $DD00
.C:0a2e   29 FC      AND #$FC
.C:0a30   09 03      ORA #$03
.C:0a32   8D 00 DD   STA $DD00

.C:2863   AD 00 DD   LDA $DD00
.C:2866   49 02      EOR #$02
.C:2868   8D 00 DD   STA $DD00
I know that documentation has not been the strong suit of that tool so far, but include/loader.inc has this revealing convenience macro:
    .macro SET_VIC_BANK bank
            lda #bank & 3
            sta CIA2_PRA
    .endmacro
That is, the upper 6 bits of the value written to $dd00 MUST always be 0.
The code above should look like this:
lda #$03
sta $dd00

lda $dd00
eor #$02
and #$03
sta $dd00
The rationale is that the user shall be allowed to write to $dd00 while loading at any time, and without visual glitches, calling a magic loader subroutine or resorting to semaphore-like locking. This is implemented by the loader reading from $dd00 to read bits from the serial bus, but writing to $dd02 ($dd00's corresponding data direction register) to write bits to the serial bus - which only works if the corresponding bits in $dd00 are 0.

Now, with code setting those non-VIC-bank bits to 1, i'd expect it to crash the loader sooner or later, not only on real hardware, but any emulator on VICE level as well.
So maybe you've managed to find a lucky timing co-incidence which is stable and reliable only in the emulator, or this is not the (only) cause of the problem.

That being said:

Quoting soci
I hope it's something ancient.
The version string in the install routine says "Krill's Loader, version 146" (Krill's Loader, repository version 146), which is (still) the latest official release. Although i've been giving out newer versions upon request, none of those has made it to official release status yet (but they're still the latest and greatest, until the version counter goes up).

Quoting soci
Please add more tolerance for real hardware in the coming version if not already done so.
You're the first person to report significant compatibility issues, and rest assured i _do_ test my shit on my sizeable stack o'drives. :)

So please check if above suggestions fix the problem, and if not, let's investigate further.
And always feel free to ask right away, should problems occur. I wonder if you'd have asked me if it wasn't for my teaser up there.

Oh, and i'm always grateful for more beta testers. :D
2017-10-05 06:46
soci

Registered: Sep 2003
Posts: 480
Thanks!

It must crash with 1541U the same way then. The author insisted it worked for him 100% the time blaming the equipment and more (gently). I'll try it again soon.

I think I'd trip on this RMW trap just as well. It needs to be documented for sure that doing so is a bad idea as the loader manipulates the direction register and such code may cause control bits to be set inadvertently.

It's somewhat similar to a bug one of the entries had (but was fixed early):
lda #xx    ; raster line in range of 56-255
sta $d012
lda $d011
and #$7f   ; clear high bit as it's less than 256
sta $d011

... do some stuff without syncing to screen

lda $d011
ora #$20   ; switch to bitmap
sta $d011

... and now "crash" 18% of the time with an IRQ set to line 312+

Registers which return something else then they were set to can be great fun ;)
2017-10-05 07:08
Krill

Registered: Apr 2002
Posts: 2980
Quoting soci
It must crash with 1541U the same way then.
Ah, so by "emulator", you meant 1541U? Still, other productions using this loader, and in that version, worked fine on 1541U AND the classic drives.
But then it can be argued if an emulator not failing on a bug that trips up on the real hardware (but not vice versa) can be called a bug. It's non-perfect emulation for sure, but from a user perspective... :)

Quoting soci
It needs to be documented for sure that doing so is a bad idea as the loader manipulates the direction register and such code may cause control bits to be set inadvertently.
Yes, indeed. I've just valued working on the code more than writing up docs, and responded to people's questions personally and helped them (including changing or adding things based on their experience/reports).
But yeah, quite a while ago already, i've drafted up a small concise text with the most important bits to know and observe about usage and caveats. It'll finally make it into the next release.

Quoting soci
Registers which return something else then they were set to can be great fun ;)
Indeed, and quite a few are like that in C-64 world.
2017-10-06 19:22
soci

Registered: Sep 2003
Posts: 480
On emulator I've meant VICE.

It seems it doesn't even start with the 1541U-II I have with me which means it need to wait at least a week or so...
2017-10-06 19:55
chatGPZ

Registered: Dec 2001
Posts: 11386
VICE isnt perfectly right with this kind of things either, beware :)
2017-10-06 20:09
soci

Registered: Sep 2003
Posts: 480
Should have checked earlier but the loading and $dd00 manipulation does not happen at the same time so it could be something else.
2017-10-06 21:17
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: Should have checked earlier but the loading and $dd00 manipulation does not happen at the same time so it could be something else.

Just speculating here. The loader might poll anything while not loading putting it into an illegal stale when manipulating $dd00, even outside loading? or?
2017-10-06 21:40
chatGPZ

Registered: Dec 2001
Posts: 11386
somehow i have a dejavu right now =)
2017-10-07 21:09
Krill

Registered: Apr 2002
Posts: 2980
Quoting JackAsser
Just speculating here. The loader might poll anything while not loading putting it into an illegal stale when manipulating $dd00, even outside loading? or?
It doesn't poll anything when idle because it's simply not being executed. :) However... writing anything in $00..$ff to $dd00 when not loading requires the config option IDLE_BUS_LOCK to be enabled, otherwise you're still limited to the usual 0..3 range to set the VIC bank.
2017-10-09 10:56
Bitbreaker

Registered: Oct 2002
Posts: 508
Question is, why would we want to write anything else than $00..$03 to $dd00 in a demo? Stop that expensive and unnecessary masking already :-)
2017-10-09 11:07
chatGPZ

Registered: Dec 2001
Posts: 11386
lda fpptable,x
sta $d018
sta $dd00

?
2017-10-09 11:08
Bitbreaker

Registered: Oct 2002
Posts: 508
ldx #$03
lda fpptable,y
sta $d018
sax $dd00

;-)
2017-10-09 11:13
Krill

Registered: Apr 2002
Posts: 2980
Right, because you can always afford to waste the X register just for some $dd00 masking :)
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
Andy/AEG
Unlock/Padua/Albion
Flavioweb/🇮🇹HF..
Peacemaker/CENSOR/Hi..
TheRyk/MYD!
Chesser/Blazon
B.A./QUANTUM
Visage/Lethargy
Alakran_64
Guests online: 109
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

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