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 > Krill Loader & Open borders
2012-09-23 09:45
Pantaloon

Registered: Aug 2003
Posts: 124
Krill Loader & Open borders

I have problems while loading with Krills loader and at the same time have open upper & lower borders. As soon as i start to load the borders starts to flicker.

Note: i don't do anything else in the interrupt, just opening the upper & lower border.

Anyone have a clue why ?
2012-09-23 10:17
Martin Piper

Registered: Nov 2007
Posts: 722
Does the loader use SEI/CLI?
2012-09-23 10:18
Pantaloon

Registered: Aug 2003
Posts: 124
thats what i first tought but couldnt find it in the code.
2012-09-23 10:27
Burglar

Registered: Dec 2004
Posts: 1101
you probably timed the openborder code too tight.

which rasterline do u set $d011? I use $fa, should work fine.
2012-09-23 10:32
Pantaloon

Registered: Aug 2003
Posts: 124
$fa here aswell. (and been randomly trying different values with the same result :)).
2012-09-23 11:52
Krill

Registered: Apr 2002
Posts: 2980
If you look at the test program that comes with the loader, you'll notice that it opens the borders while loading.

There is no SEI/CLI in the code, so interrupts have the exact same latency and jitter as without loading.

I guess you have not enabled KERNAL fallback, which might explain this behaviour if the loader misdetects the drive for some reason (detected drive type is returned in the X register after install).

Currently i have no idea what could cause this, but you can send me a minimal test program so i can have a look.

2012-09-23 12:16
Pantaloon

Registered: Aug 2003
Posts: 124
Krill, i've sent you a mail now. (to krill at plush dot de)
2012-09-23 12:55
Krill

Registered: Apr 2002
Posts: 2980
You have enabled loading to the memory under the IO space at $d000-$dfff. Thus, the loader will switch $01.

Your interrupt handlers buffer $01 nicely, but they don't set it after buffering, so the writes to $d012 to set another trigger line and $d019 to ack the IRQ are ineffective when the loader was interrupted after having disabled the IO registers in order to write to $d000-$dfff.

Just set $01 to enable IO registers after buffering it in your IRQ handlers.

Btw., loading to $d000-$dfff decreases loader performance quite a bit, as it has to set $01 twice for each received byte.
Consider working around the need to do so, or use two incarnations of the resident code, one with and one without loading under IO space, the former only when it's really needed.
2012-09-23 12:57
Pantaloon

Registered: Aug 2003
Posts: 124
yeah found it now :)
and cant really avoid loading under $d000 unless i split my files in several parts and do a manual memcpy. unfortunely all our parts takes $08000-$ff3f.
2012-09-23 12:59
Pantaloon

Registered: Aug 2003
Posts: 124
Is there a build flag for this:

"or use two incarnations of the resident code, one with and one without loading under IO space"

or do i manually need to do something :)
2012-09-23 13:04
Krill

Registered: Apr 2002
Posts: 2980
Manually. Build the loader twice with and without load under IO. You'll notice the install portions are identical except for different configuration strings.
2012-09-23 13:16
Krill

Registered: Apr 2002
Posts: 2980
Now that i think about it, maybe i will add some code for the load under IO option, so the loader will have two getblock loops, one with and one without $01 writes, and choose either depending on the destination of the block to be downloaded from the drive.
2012-09-23 15:45
Pantaloon

Registered: Aug 2003
Posts: 124
yeah :)
2012-09-23 15:45
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
maybe i will add some code for the load under IO option, so the loader will have two getblock loops, one with and one without $01 writes, and choose either depending on the destination of the block to be downloaded from the drive.

please, that might even allow me to use a non hacked version of the loader =)
2012-09-23 15:54
Pantaloon

Registered: Aug 2003
Posts: 124
Krill, how long will that modification take ? :)
2012-09-23 17:53
algorithm

Registered: May 2002
Posts: 705
Although, memory constraints aside, it may just be faster to load to another area, then do a quick memcopy via irq in segments (would take a few frames or so) which may be faster then loading directly to IO perhaps.

Great to have the feature of detection and adjust loader accordingly however instead of two loaders
2012-09-23 19:09
Krill

Registered: Apr 2002
Posts: 2980
Quote: Krill, how long will that modification take ? :)

Effectively a few hours of work. I'll be on vacation for the next two weeks, but there'll be time to code. But two weeks should be alright, i hope? :)
2012-09-23 19:15
Krill

Registered: Apr 2002
Posts: 2980
Quote: Quote:
maybe i will add some code for the load under IO option, so the loader will have two getblock loops, one with and one without $01 writes, and choose either depending on the destination of the block to be downloaded from the drive.

please, that might even allow me to use a non hacked version of the loader =)


Heh, is your modification doing exactly that?

But for the next time, please tell me such things so i can add it to the code base and other users can benefit from it as well.
2012-09-23 19:21
Pantaloon

Registered: Aug 2003
Posts: 124
nice :) 2 weeks is fine :)
2012-09-23 21:24
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
Heh, is your modification doing exactly that?

in a very ugly way - i compiled both versions, with some padding here and there... and patch the binary with the diffs =P
2012-09-24 07:50
Danzig

Registered: Jun 2002
Posts: 440
Quote:
in a very ugly way - i compiled both versions, with some padding here and there... and patch the binary with the diffs =P


so now sit down and "binary patch" raydomat to create MUIFLI-output. (husch-husch)
2012-09-24 17:35
chatGPZ

Registered: Dec 2001
Posts: 11386
it already supports that =D
2012-09-24 19:52
algorithm

Registered: May 2002
Posts: 705
Great! Lets see it :-)
2012-09-25 02:05
chatGPZ

Registered: Dec 2001
Posts: 11386
i have lost interest in converted pictures in these unuseable modes to be honest. at the end of the day, koala wins :)
2012-10-11 18:09
Krill

Registered: Apr 2002
Posts: 2980
Quote: nice :) 2 weeks is fine :)

Pantaloon: Traded size for speed now with the load-to-$d000..$dfff option. Grab new loader version at

http://krill.earthtomoon.net/loader-v142.zip

Note that the default now uses a new kind of protocol, TWO_BITS_RESEND, as it is faster than TWO_BITS_ATN when not having multiplexer walls of sprites.
2012-10-12 06:55
HCL

Registered: Feb 2003
Posts: 728
Rumors say that it is impossible to have open borders together with Krill's loader. Not sure though as i have never tried, but good luck Pantaloon ;).
2012-10-12 07:39
Krill

Registered: Apr 2002
Posts: 2980
Indeed! :)
2012-10-12 13:01
The Human Code Machine

Registered: Sep 2005
Posts: 112
Thx for the improvement!
2012-10-12 23:05
Pantaloon

Registered: Aug 2003
Posts: 124
it's only rumors, works perfectly here :)
2012-10-13 10:13
chatGPZ

Registered: Dec 2001
Posts: 11386
infact you have to configure HAVE_SANE_TIMING or it will not work!
2012-10-16 08:18
Pantaloon

Registered: Aug 2003
Posts: 124
Krill, you have mail, i have another issue now .)
2012-10-16 12:59
Frantic

Registered: Mar 2003
Posts: 1648
Maybe you have enabled HAVE_INSANE_TIMING?
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
DJ Gruby/TRiAD
MWR/Visdom
REBEL 1/HF
commodore_freak
csabanw
Scrap/Genesis Project
Guests online: 87
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 No Listen  (9.6)
2 Layers  (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 Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Violator  (9.7)
4 Acidchild  (9.7)
5 Cash  (9.6)

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