• Bit 64

  • by jwhoag

Commodore-related project and thoughts I have worked on


C64List update (version 2.30 is now available)

Introducing the big, new, shiny feature: Non-ASCII character support

So finally after living with the garbage characters for a couple of years, I decided to clean house and actually support non-ASCII characters.  If you've been using C64List, you will probably remember that the C64's graphics characters that don't map to something similar in the standard ASCII character set just show up as whatever character it happens to correspond to on the PC when you convert from .prg to .txt formats.  That scheme worked ok, as long as you didn't try to make sense of the characters and didn't edit them (they would convert back just fine).  But it just wasn't very useful.  The new C64List 2.30 handles this much better.

Now, when C64List converts C64 graphics characters, it will encode them as byte codes like this

  PRINT "POKER CHARACTERS: {$c1}{$d3}{$d8}{$da}"

This feature allows you to see what the PETSCII code of the character is, and edit them.  You can use either hex notation {$a0}, or decimal notation {160}.  As with the cursor control codes, the multiple-character syntax also works here: A$="{$c1:20}" will insert 20 spade characters into the string.

Similarly, if C64List hits BASIC tokens that it doesn't recognize (for example you converted an extended BASIC program but forgot to use the tokenizer file), you will no longer see garbage characters--instead C64List will convert these to numeric codes in the same manner.

If you'd rather name the graphics characters, you may also do that now.  If you remember the {tokenizer} directive for adding extended BASIC tokens, it will be easy to learn how to name graphics characters.  A new directive called {quoter} allows you to do this using the same syntax as {tokenizer}.  Whereas {tokenizer} allows you to name tokens into extended-BASIC keywords, {quoter} allows you to name characters inside of quotes.  For example, if you would like to name the four poker characters, you can do it like this:

 {quoter:$c1="spade", $d3="heart", $d8="club", $da="diamond"}

Once you have added the above quoter, you can then program the same line as shown above like this:

  PRINT "POKER CHARACTERS: {spade}{heart}{club}{diamond}"


Although that is the main new feature included in version 2.30, there are other nice things that have been added as well.  For eamples, when converting a machine language program to text, you can now specify the exact range to output.  Of course, the range you specify must also be in-range of where the code is located.  For example, if you convert a ML program that is located at $8000-$8324, but you only are interested in a particular subroutine at $8122 to $8187, you can add the parameter


to your command line, and C64List will only dump assembly instructions in that range.  The -range parameter also works for .hex output.


The Alpha mode directive was added to C64List a few months ago, and that allows you, amongst other things, to type Mixed Case Text and have it show up in the .prg file that way (in the alternate character set).  What is new here, is that there is now an -alpha command line parameter which does the same thing, so you can now convert Mixed Case .prg files to .txt and have them show up as expected.  As with the directive, there are 4 modes:

 -alpha:normal,    -alpha:lower,  -alpha:upper,  -alpha:invert

The "invert" option is the one that allows you to convert MIXed cASe TEXt.


As usual, please look at the User's Guide for all the details.  You can see all the new features and bugfixes at the end of the User's Guide in the Release Notes section.  Happy Hacking, C64List users!

Leave a Comment

You must be signed-in to post comments.


daytona400f 10/30/2011

excellent work! thanks for continuing development on your code.