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 > Quick loading without an IRQ-loader!
2009-03-12 06:41
JackAsser

Registered: Jun 2002
Posts: 1989
Quick loading without an IRQ-loader!

Hey guys!

I know my ways around the various IRQ-loaders normally used today, but what about the non-IRQ-loaders (no music, $d011=0, sei, no-NMIs)?

- Which one can you recommend?

- Are there any that comes with source so that I can easily relocate them?

- How much faster are (can) a non-IRQ-loader be compared to an IRQ-loader?

- Any that perhaps easily can be connected to pucrunch or exo and thus load and decrunch at the same time?

- Is this stupid? Are the modern IRQ-loaders as fast or faster than the old legacy non-IRQ-loaders anyway?

/JackAsser
 
... 23 posts hidden. Click here to view all posts....
 
2009-03-13 06:22
Oswald

Registered: Apr 2002
Posts: 5017
Quote: Quote:
you can reinit everything through kernal subs


NO! if a cartridge is inserted, then calling the kernal functions will reset the vectors to their "normal" values. to be able to use cartridge loaders you must NOT call i/o reset (might disable cartridge), and NOT touch the vectors whatsoever.

said kernal functions beeing called is pretty much the number one reason for cartridge fastloaders NOT working with a lot of programs =P


just store / restore 330/331 before after kernal resets :P and dont touch it otherwise.
2009-03-13 06:25
j0x

Registered: Mar 2004
Posts: 215
To answer your first question in #18: "the vectors" are $0300-$0333, inclusive.

.. and what Graham said. Will it work on device 1 ? :D

> Any that perhaps easily can be connected to pucrunch or exo and thus load and decrunch at the same time?

Loading while decrunching will make better use of the otherwise idle cycles on the c64-side, but may make you more sensitive to nonoptimal sector interleave, since you'll need your data to be loaded in order. A bit of thinking can solve most of this problem, giving you a "semi-inorder" loading scheme that combines loading while decrunching with an interleave-tolerant loader. This explanation is pretty poor -- sorry.

Alsö alsö nöte:

* While many carts init $ba to 8, the original rom init does not. This is only important for your first load, of course.
* If you're finding it difficult to preserve the vectors, it'll probably be hard to find a (decent) fastloader that'll fit in memory.
* When it comes to compatible CIA settings, you can't make sure each and every hard/firmware loader works. Going with default CIA settings is your best bet. The same goes for SEI/CLI. Clearing the flag is your best bet.

2009-03-13 07:31
HCL

Registered: Feb 2003
Posts: 716
Loading without IRQ is not "several multitudes" faster really.. Many IRQ-loaders manage to load with a sector interleave of 5 (read every 5:th sector), while a non-irq loader can manage sector interleave of 3 (afaik) without parallell cabele or other HW-extentions.

So.. the multitide there is like 66% faster.
2009-03-13 08:47
Devia

Registered: Oct 2004
Posts: 401
if $ba is #$00 you should set it to #$08 otherwise keep it intact as j0x and graham pointed out.
But if it is 00, your program got loaded via "other means" and there might be a physical or emulated floppy device present with the actual content on it, only this device didn't set $ba when it loaded via "other means".
I've seen some devices do this, can't remember which tho ;-) -- maybe 1541U?
2009-03-13 09:11
Graham
Account closed

Registered: Dec 2002
Posts: 990
I'd guess IDE64 (I remember stories about compability problems due to no support for STATUS etc). CodeNet also doesn't set $BA.

And concerning using $BA for loading:

    LDA #$01
    LDY #$01
    LDX $BA
    BNE .skip
    LDX #$08
.skip
    JSR SETLFS


does the trick.
2009-03-13 09:40
Frantic

Registered: Mar 2003
Posts: 1627
I made a first start on an article about this topic on Codebase, since it is a recurrently asked question here on CSDb:

http://codebase64.org/doku.php?id=base:making_use_of_the_fastlo..

Feel very free to fill in with more details here!

//Frantic
2009-03-13 10:15
JackAsser

Registered: Jun 2002
Posts: 1989
Quote: I made a first start on an article about this topic on Codebase, since it is a recurrently asked question here on CSDb:

http://codebase64.org/doku.php?id=base:making_use_of_the_fastlo..

Feel very free to fill in with more details here!

//Frantic


I'm currently writing a test program that I want you guys to test on various more or less exotic devices. Then when it works I'll post my findings and the code example on codebase.
2009-03-13 12:56
Burglar

Registered: Dec 2004
Posts: 1031
things you should ask yourself:

- am I gonna use only that kernel loader or will I use an irq loader later on that breaks compatibility with those mcc/ide64 lamers anyway?

- is the speed gain really that much?

- some cartridge loaders are plain suckage (ie: unable to load under rom, slow and fiddle with more registers that could possibly break your program)

imho using a kernel loader should be an option, not a fixed feature.
2009-03-13 14:00
Graham
Account closed

Registered: Dec 2002
Posts: 990
Quote:
- some cartridge loaders are plain suckage (ie: unable to load under rom, slow and fiddle with more registers that could possibly break your program)

Never seen a cartridge loader which cannot load under ROM. But most cartridge loaders cannot load below I/O area, just like the kernal loader.
2009-03-13 14:15
Burglar

Registered: Dec 2004
Posts: 1031
Quote: Quote:
- some cartridge loaders are plain suckage (ie: unable to load under rom, slow and fiddle with more registers that could possibly break your program)

Never seen a cartridge loader which cannot load under ROM. But most cartridge loaders cannot load below I/O area, just like the kernal loader.


yea, you're correct, the d000-dfff bit is the bitch
Previous - 1 | 2 | 3 | 4 - 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
Didi/Laxity
d0c
Krill/Plush
Apollyon/ALD
Mr. SID
Slaxx/Q/HF/MYD!
Guests online: 135
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 Bromance  (9.6)
10 Memento Mori  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Onscreen 5k  (9.5)
8 Wafer Demo  (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 Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Violator  (9.8)
4 Acidchild  (9.7)
5 Starlight  (9.6)

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