Re: 1 MB image for VIC-20

From: Marko Mäkelä (
Date: 2001-02-16 08:36:55

On Thu, 15 Feb 2001, Ojala Pasi 'Albert' wrote:

> Not simplified per se, but you can remove the setup code. Or you can
> just take the standalone decompressor versions, which is already like
> this.. :-) Btw, the standalone decompression version was used in VIMM.

Thanks for the hint!  I had to make some modifications there.  The code
must be copied to the stack page, since there's no common ROM bank, and
self-modifying code cannot be used in ROM.

> I assume you compressed the images separately. Probably the easiest
> way for multirom games is to concatenate the images and fill the
> middle with zero, then compress

Yes, for my estimate I compressed the two 8k halves of each 16k game
separately.  I thought about the possibility of filling the middle with
zeros, but that won't work very well in the VIC-20, since the I/O area at
$9000-$9fff doesn't like to be overwritten, especially if the ROM banking
register lies there.  Instead, I'll toss away the 4 first bytes from the
pucrunch -c0 header and replace it with a byte that specifies a "warp
address".  For a game residing at $2000-$3fff and $a000-$bfff, this byte
would be $40, indicating that at $4000, the destination address will warp
to $a000.

> (or always have BLK1 as the start, insert image(s), compress the whole
> thing). In this way no changes are needed to the compressor or
> decompressor.

I'd like to be able to uncompress non-cartridge games as well.  If my
friend can get "free" 2MB flash ROMs, then cartridge games won't be
enough.  Luckily there are several megabytes of other VIC-20 games.

Also, we could implement a "RAM disk" on the flash ROM.  The programs
stored there wouldn't be compressed, except maybe simple RLE.  Or we will
modify prlink so that further compressed images can be downloaded to the
cartridge while it is inserted in the VIC-20.


This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail

Archive generated by hypermail 2.1.1.