Turbo Coder 64 — Documentation

What is Turbo Coder 64?

Turbo Coder 64, or TC64 for short, will generate Commodore 64 assembly language code in seconds with just the click of a few buttons.

The code is specifically written for TMPx by Style, which uses Turbo Assembler syntax. Because it is Turbo Assembler based it will require very little tweaking to be compatible with other Turbo Assembler, Turbo Macro Pro, or other C64 cross assemblers.

What can I build with TC64?

A simple IRQ-driven screen with scrollers, music, text? Absolutely! The premise is to save 20–30 minutes when starting a new project so you can concentrate on the guts of your program.

We have also added some additional standalone editors and tools:

What is Fuzzbouncer?

If you are using sprites, or want to do a fancy bouncing scroller, this is how you get the data!

For example, look at the scroller in the upper portion of a typical demo screen: each character can sit at a different Y position in a smooth, wavy pattern. Fuzzbouncer generates the data for that kind of effect.

Video: how to use Fuzzbouncer

What is the Plasma Pattern Generator?

Perhaps you have seen plasma-style effects in your favourite demo? The Plasma Pattern Generator helps you create those patterns for your programs.

Easter egg: Set the number of colours to 9 and the effect in your browser will change from black and white to greyscale to help you visualise. Don’t forget to change this back to the number of colours needed for your final project. (Yes, we are Canadian — it’s colour and grey.)

Walkthrough: Plasma Pattern Generator

The “Texty” text editor?

If, like Fuzz, you do not want to fire up VICE, load the text editor, type your message, save it, and pull it out of the .d64 — use Texty instead.

Type your text, download the resulting binary, and include it in your TMPx project.

Crunchy?

When you link a bunch of files with TMPx, the file size can grow quickly. Crunchy shrinks your file by crunching it — so you are not hunting the disk for “where did I put the cruncher, and what was the command line again?”

Crunchy uses Exomizer on the back end: strong compression across many targets, with options for level packing for use with various C64 IRQ loaders.

Colour?

Generate colour tables with ease: click colour or gradient buttons to build data for screen transitions, raster bars, scroll text colours, or whatever you need. See the C64 colour palette tool on Retro64.

How can I contribute?

Two easy ways:

Where do I find TMPx? How do I use it?

TMPx and documentation live on Style’s site (TMPx release page).

Text and video guides are linked throughout this page. For the main code builder, start at the Turbo Coder 64 Code Builder.

Quick start

What you need

Got them — now what?

  1. Use the Code Builder to generate TMPx code.
  2. Copy the generated code into Notepad or your editor of choice.
  3. Save the source in the same folder as TMPx. Put any linked files (music, graphics, etc.) there too so TMPx can find them.
  4. Assemble with TMPx. Example command:
    TMPx -i yourfile.txt -o outputname.prg
    Use your real source name after -i and the desired output after -o.

Example Windows batch file

This assumes WinVICE 2.4 is one folder up and will launch the built PRG. Save as .bat next to TMPx; change the filenames to match your project.

@echo off
cd %~dp0
TMPx -i source.txt -o assembled.prg
..\WinVice-2.4-x64\x64.exe assembled.prg

Video: quick start & Code Builder intro

Example 2 — adding music & graphics

In this example, specifying music and sprite file names in the builder adds init code automatically — a big time saver.

You will need sample files for the walkthrough: use the assets bundled with the tutorial or from the video description where provided.

Video: example 2 walkthrough

Note: This service may not work behind some proxy servers or tunnels.

Decrunch effects (Crunchy)

There are two groups of decrunch effects. They give visual feedback while data decompresses. Some are C64-only and are marked (C64 only).

Screen blank uses $d011 to close the borders and hide the whole screen so you can use screen RAM from $0400 without showing it. When unpacking finishes, visibility is restored. The other options work across supported computer models, including the Commodore 64.

Turbo Coder 64 syntax (split boxes)

These tokens go in the IRQ split fields in the builder:

split

Equivalent to STA $D012. Must be preceded by a hex value, e.g.:

#$32 split

init

Call the music init routine. If you set init at $1000, the builder adds LDA #$00, LDX #$00, LDY #$00, JSR $1000 (adjust A/X/Y if your SID tune needs different values — check HVSC if unsure). Use this only if you did not give a music filename in the builder; otherwise init is already wired in setup.

music

Call the play routine; e.g. play at $1003 adds JSR $1003.

1x1

With the 1×1 scroller option enabled, enter 1x1 in a split box to call the 1×1 scroll routine (often right after a split). Also sets $d016 for smooth horizontal scroll.

1x2

With the 1×2 scroller enabled, enter 1x2 to call the 1×2 scroll routine; same spacing idea as 1×1.

screen

Sets screen (background) colour. Precede with an immediate hex value — include #:

#$00 screen

Without #, $01 screen would use the contents of address $01, not colour 1 (white).

border

Sets border colour. Same rule — use immediate with #:

#$0f border

clr

Shortcut for clear screen: LDA #$93 and JSR $FFD2.

I need more tools!

Extras worth exploring: