Saving Character Sets in VICE

You need an actual VIC.

Moderator: Moderators

Post Reply
User avatar
GreyGhost
Vic 20 Nerd
Posts: 526
Joined: Wed Oct 05, 2005 11:10 pm

Saving Character Sets in VICE

Post by GreyGhost »

Hello everyone.

I have been searching C64 games for different character sets and transferring them to be used on the Vic 20. I have had much success with it but have recently run into a problem. Maybe someone can help me out.

Software I am using:

ICU64 - to locate the character sets.
VICE - to save the character sets to disk.
s "FILENAME" 8 start end
DirMaster - to lift the file from disk created in VICE.
HexEdit - to change the load address to a Vic 20 location.
Character Editor - to look at them on the Vic 20.

That is basically the exact procedure I use and most of the time it works very well. The problem comes up when I try to save a character set from the $d000-$dfff range. All I get is a repeating sequence. Anyone have any idea why this is happening?
Rob
User avatar
buzbard
Vic 20 Devotee
Posts: 213
Joined: Sun Jul 03, 2005 9:10 am

Re: Saving Character Sets in VICE

Post by buzbard »

The problem is that $D000-$DFFF is a very busy area of the C64, it contains registers for the SID & VICII chips, the I/O area and the character ROM underneath that.

You can't just save that area, to access it you'll need to first temporarily disable the interrupts, swap out the I/O area for the CHAR-ROM underneath, copy the ROM to a different area of RAM, swap the I/O back in then re-enable the interrupts.

Then you can save the copy that you made.

It can be done in BASIC but it takes a long time, it's best to do it in machine language, which is almost instantaneous.

Here's a program that I wrote to dump the Character, KERNAL & BASIC ROMS to disk. romdumper.prg
Ray..
User avatar
Mike
Herr VC
Posts: 4901
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: Saving Character Sets in VICE

Post by Mike »

GreyGhost wrote:VICE - to save the character sets to disk.
s "FILENAME" 8 start end
Within the VICE monitor, the memory view first corresponds to the value in the $01 port register. In most cases the I/O area from $D000 .. $DFFF is active.

For the C64 you can, however, switch the VICE monitor to another view with the 'bank' command. bank ram, for example, switches to all RAM visible within the monitor.

If you mount a directory on the host PC within VDrive, you can omit the *.d64 and don't need DirMaster to extract the file. Just use 0 instead of 8 as 'drive number'.
User avatar
GreyGhost
Vic 20 Nerd
Posts: 526
Joined: Wed Oct 05, 2005 11:10 pm

Re: Saving Character Sets in VICE

Post by GreyGhost »

Thanks, the "bank" command worked nicely. I assumed that VICE would show which ever bank was active at the time the monitor was opened.
Rob
Post Reply