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 > Exmoizser and Mem trash RAM?
2016-11-30 11:47
oziphantom

Registered: Oct 2014
Posts: 478
Exmoizser and Mem trash RAM?

I'm using the mem option, and the depack routine provided in the src of exomizer.

The data is from BB28-DF40 I set the load address to 1000 like so
exomizer mem -l $1000 -o drop64BitmapMem.prg  dropzonebitmap.prg

However it seems the Exomizer then wants to clear all RAM between 1000-BB28 when it depacks, which trashes the depacker. How do I stop it?
2016-11-30 12:28
oziphantom

Registered: Oct 2014
Posts: 478
If I set the load to $a000 it still does it.

Since my unpack code is at 4000, the memory clear stops there when it trashes its own code.
2016-11-30 13:25
iAN CooG

Registered: May 2002
Posts: 3132
Try adding -c to the exomizer commandline and enable LITERAL_SEQUENCES_NOT_USED = 1 in exodecrunch.s, sometimes literal seq make it bugs. It's unrelated to your problem btw. I tried a quick test and works, only memory bb28-df40 gets unpacked and no other memory is overwritten.
2016-11-30 13:38
lft

Registered: Jul 2007
Posts: 369
If you are decrunching into colour ram, here's a gotcha that I ran into a while ago:

For efficiency, many cruchers work from high addresses to low addresses. Suppose the original, uncompressed data contains e.g. "00 01 02" at address cff0 and "00 01 02" at address d800. It might happen that the decruncher writes "00 01 02" at d800 first, and then tries to copy that over to address cff0. But it will read back as "f0 f1 f2" (actually the high nybble would contain bus noise). So that's what gets written at cff0.
2016-11-30 13:46
iAN CooG

Registered: May 2002
Posts: 3132
Ah, I assumed that he intended to unpack after setting all ram (lda #$38 sta $01)
2016-11-30 14:35
oziphantom

Registered: Oct 2014
Posts: 478
Yes the unpack from $1000 upto BB28 is done with All RAM as it is under I/O & D800, although that is a nice quirk you found lft.

iAN did you do a mem depack or the sfx ?
2016-11-30 14:42
iAN CooG

Registered: May 2002
Posts: 3132
mem of course, here is my quick test
https://www.dropbox.com/s/tf3vsrdtvsqv6iv/exotest.rar?dl=0

test.prg is the test data, randomly prepared from some tunes and ranging $bb28-df3f

t.bat crunches the prg and compiles the exotest.s to exotest.prg, all mem is filled with $ea to check after it finishes that nothing else gets written to.

the test.exo gets linked at $1000, code is at $4000, like you are trying to do. Everything works as expected.

What I suspect is that your original data isn't exactly ranging as you said.
2016-11-30 14:55
Flavioweb

Registered: Nov 2011
Posts: 442
I guess if you set start address with -l at $1000, and your data starts at $bb28, exomizer fills $1000-$BB27 with $00.
Is normal exomizer behaviour... like if you pack more chunks of data, at different addresses: exomizer fills the ram in the middle with $00...
2016-11-30 14:59
iAN CooG

Registered: May 2002
Posts: 3132
-l <address> adds load address to the outfile, using "none" as <address>
will skip the load address.

it's just the load address of the crunched data, it only affects the 1st 2 bytes of the generated file in other words.
you can even skip it by using -l none, and then include the file with incbin which doesn't use a load address but includes every file as raw.
*=$1000
incbin test.exo

same result.
2016-11-30 15:40
oziphantom

Registered: Oct 2014
Posts: 478
iAN test works the same on my setup..
I've switched to Byteboozer, but that won't work in the end. So tomorrow ( well today its 2:30am here ) I will switch back to exomizer and see what I see. Well if I can get the 2nd file loading, first one loads, 2nd one Krill's loader just sits waiting on $dd00 I must be trashing something it wants somehow..

Thanks for the help guys.
2016-11-30 19:04
iAN CooG

Registered: May 2002
Posts: 3132
what? my test works, how can it be possible that bugs for you? or do you mean "works correctly also for me"? =)
2016-11-30 19:43
chatGPZ

Registered: Dec 2001
Posts: 11100
mein luftkissenboot ist voller Aale
2016-12-01 04:57
oziphantom

Registered: Oct 2014
Posts: 478
Solved the loader issue, seems a
lda dd00
and #252
sta dd00
doesn't count as a non-arbitrary dd00 write in the Krill loader's eyes and I needed to add the idle bus lock feature.

So Exomizer
Running iAN's test prg worked ( I'm using ICU=64 Vice 2.3 so I can see what the depacker is doing more easily, but 2.3 anything can and will happen, so it was a needed test of my setup )

Putting iAN's know working exo file into my d64 and it still trashes RAM... Thus my code is to be at fault... ( I "ported" the decrunch to Tass64 ), nope it is fine....

Something was trashing a byte in the "decrunch_table" which is what caused it to at the end of the decrunch to just march through RAM...

Thanks for the test cast iAN, made it a lot easier to track down.

Oddly Groepaz it's the inverse case, in that you're the euros and I'm not XD
2016-12-01 09:08
JackAsser

Registered: Jun 2002
Posts: 1987
When working with fast loaders, never ever read, mask, write dd00/02 to set vic-bank. Always do direct writes following the recommended protocol of the loader.
2016-12-01 10:59
oziphantom

Registered: Oct 2014
Posts: 478
Do you know where Krill define what you can/should write to DD00?
2016-12-01 13:35
chatGPZ

Registered: Dec 2001
Posts: 11100
dont touch dd02, write 0-3 to dd00
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
Zardax/Artline Designs
Guests online: 69
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.9)
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 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (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.05 sec.