User Tools

Site Tools


base:exomizer_level_compress_decompression_for_beginners

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
base:exomizer_level_compress_decompression_for_beginners [2020-10-01 14:14] – [Using Exomizer's Decruncher on a Cross Assembler] richardbase:exomizer_level_compress_decompression_for_beginners [2020-10-01 15:14] (current) richard
Line 1: Line 1:
 ===== Exomizer Memory Crunching / Decrunching for Beginners ===== ===== Exomizer Memory Crunching / Decrunching for Beginners =====
  
-Exomizer comes with a manual on how to compress data. However there may be people who are quite new to using the Exomizer tool, and the decruncher source, provided with Exomizer. I find Exomizer to be VERY useful for level packing single or multiload files. Some times decrunching binary/source data can be a right pain in the neck. It is also very flexible with decrunching memory. +Exomizer comes with a manual on how to compress data. However there may be people who are quite new to using the Exomizer tool, and the decruncher source, provided with Exomizer. I find Exomizer to be VERY useful for level packing single or multi-load files. Some times decrunching binary/source data can be a right pain in the neck. Exomizer decrunch routines might need to have interrupts disabled if using wrap.s. $01 value might need to be altered to suit the program memory which you are crunching from
  
 Depending on the path used the command used (for example compressing a koala paint picture) is : Depending on the path used the command used (for example compressing a koala paint picture) is :
Line 13: Line 13:
  
  
-====Using Exomizer's Decruncher on a Cross Assembler==== +====An Example Using Exomizer's Decruncher on a Cross Assembler==== 
  
 An example program (in ACME/C64Studio) - Note that I assembed Exomizer's wrap.s decruncher source to $C000: An example program (in ACME/C64Studio) - Note that I assembed Exomizer's wrap.s decruncher source to $C000:
Line 37: Line 37:
 </code> </code>
 Please take note that there can be cases where running the decruncher, sometimes it might crash. This is normally if a zero byte has been read while depacking from reverse memory. Or the crash will occur if you are decrunching from the incorrect end address. Sometimes you may need to set the $01 value to #$35, #$36 or #$37 before/after calling the decrunch code, depending on which memory address you wish to decrunch from/to. Please take note that there can be cases where running the decruncher, sometimes it might crash. This is normally if a zero byte has been read while depacking from reverse memory. Or the crash will occur if you are decrunching from the incorrect end address. Sometimes you may need to set the $01 value to #$35, #$36 or #$37 before/after calling the decrunch code, depending on which memory address you wish to decrunch from/to.
-====Using Exomizer's Decruncher on a Native C64==== +====An Example of Using Exomizer's Decruncher on a Native C64==== 
  
 What about if you wanted to use Exomizer when using a native C64 instead of a cross-assembler. It is quite easy. Exomizer's level decrunch is very flexible when it comes to areas to place the crunched data (Providing the crunched data is NOT loaded on to the memory that is being used for something else. A machine code monitor, such as the Action / Retro Replay fast load is helpful. Where there is spare memory in your program, you load the crunched data to a chosen address. Take note of the END address where the program lies. Then use the end address as a LOW/HI BYTE target. Then call the Exomizer to decrunch from that address. You can also load in the next crunched file one byte AFTER the END address of the previous file. Note down the end address and so on. What about if you wanted to use Exomizer when using a native C64 instead of a cross-assembler. It is quite easy. Exomizer's level decrunch is very flexible when it comes to areas to place the crunched data (Providing the crunched data is NOT loaded on to the memory that is being used for something else. A machine code monitor, such as the Action / Retro Replay fast load is helpful. Where there is spare memory in your program, you load the crunched data to a chosen address. Take note of the END address where the program lies. Then use the end address as a LOW/HI BYTE target. Then call the Exomizer to decrunch from that address. You can also load in the next crunched file one byte AFTER the END address of the previous file. Note down the end address and so on.
base/exomizer_level_compress_decompression_for_beginners.1601554450.txt.gz · Last modified: 2020-10-01 14:14 by richard