Commodore 64 (C64)

The most popular home 8-bit microcomputer in Poland. Easily accessible - if not from internal export, it was possible to buy it from companies in West Germany. Lots of software were developed (and pirated) for it. It has quite good compromise between versatility and price, resulting in over milion of applications and games. Sound and graphics capabilities were much higher than in Spectrum, so games were better. It had also a better keyboard than in Speccy or early Atari models, so text processing was easier. It used audio cassettes as media - they were relatively cheap and, with turbo modes, had more capacity. Turbo was much easier than in Atari, it was only a software to run and load/save programs - without installing hardware. However, it was faster to have this program automatically loaded at startup, so many turbo cartridges were developed.
Floppy disks were expensive, and floppy disk drive was sometimes more expensive than the computer itself.
There were of course several C64 versions. First "breadboxes", with VIC-20's case, quickly replaced by newer breadbox case, and later totally re-designed to case like 16-bit Amiga computers. It was probably the longest produced computer ever.

Manufacturer Commodore Business Machines

Origin U.S.A
Year of unit 1984
Year of introduction 1982
End of production 1993
CPU MOS 6510
Speed 0.985MHz (PAL)
RAM 64kB
ROM 20kB (Basic)
Colors: 16
Sound: 3-voice SID chip
OS: Commodore BASIC
Display modes: Text: 40x25
Graphics: many.


Media: Tape recorder
External 5.25" floppy disk drive
Cartridge slot

Power supply:

7-pin DIN Female:

1,2,3 - Ground
4,5 - +5V DC (or pin 4 n.c.) 1,5A
6,7 - 9V AC 1A

For testing purposes 12V DC may be used instead of 9V AC for short time. Sound and tape will not work.

I/O: Serial
Tape connector
Monitor connector
Cartridge port
User port
RF Modulator
2 Joystick ports
Possible upgrades: Many, many upgrades and mods.
Accessories in collection:
Software accessibility: Very Easy (TOSEC, sites, servers)

There were different versions of this computer. In this paragraph I'll try to describe them and differences between them. Intentionally I'm not going to describe every difference in mainboard revision, they're well described here, I'm just going to write about models.
 - The first revision was sold in VIC-20 cases. White case, dark keys, breadbox. I have never seen a real one.
 - This version has been replaced quickly by another one, seen on my pictures: beige case, dark keys, breadbox.
 - Version called C64-3 had a small changes in keyboard - see special character icons and function keys colors.
 - In 1986 C64C came - a C64 with a new, Amiga-style case. It was totally re-designed, so they packed many logic and some functional chips into custom VLSI chipset. Not a big success in USA and western Europe, but it's quite popular in Poland.
 - In 1987, only in Germany, supermarket group Aldi sold another version of breadbox Commodore 64. Its mainboard used MOS 8500 CPU, compatible with 6510. It was designed to reduce costs - there were only few chips inside.
 - In 1989 Commodore released their last model, C64G. They came back to "breadbox" case, but this time white with white keys. This model has been made only to clean Commodore's warehouses from C64 parts and unsuccessful C64GS systems.


Contents: Starting Image file formats Recording media Video pinout Links


It just boots to BASIC or to cartridge program, if cartridge is installed. From here you can load programs as follows:

LOAD "programname" - loads program "programname" from cassette
LOAD "" - iterates thru all programs on cassette, Commodore key loads it.
←L - Turbo Cartridges/extensions Only - loads program from cassette in turbo mode

Floppy disk drive:
LOAD "$",8 - gets directory listing of diskette, viewable by LIST command.
LOAD "prog",8 - loads program "prog" from diskette.
If your floppy disk drive isn't configured as Drive 8 (it can be Drive 9, 10,11), use appropriate number.

To connect floppy disk drive to C64, use a normal 1:1 cable.

Image file formats (popular ones):

 - TAP - A big file, raw tape copy. It's data which flows from Datassette to C64. Treat this as highly optimized WAV.
 - T64 - a container for one or more PRG files, use T64EMP or StarCommander to open it.

 - D64 - the most common disk format, 1541 one-sided disk image
 - D71 - 1571 disk image. Two sided and with some extensions.
 - D81 - 1581 3.5" disk image. Quite rare. 
 - G64 - Raw magnetic image. This one contains data read by head, so it contains even copy-protections. The problem is that you need to modify floppy disk drive to create it (it's called burst or parallel connection, described in StarCommander website) and you can't write it back to floppy.
 - D80, D82 - Early Commodore drive images.
 - F64 - Have anyone seen this? Created by FCopy-PC program.
 - SDA - Self Dissolving Archive - you have to put it onto C64, load and run it, and next it extracts itself to floppy.

Other binary:
 - PRG - a single-file program. 
 - CRT - Cartridge image, NOT A ROM DUMP!
 - CVT - GEOS archive. Probably, I've never used GEOS.




Recording media

To record a tape you need files and connection between Datassette (Commodore tape recorder) and PC. Of course you can do it on normal tape recorder, but with very small chances of successful loading.
Files can be in 3 formats: TAP, T64 or PRG.
Next you need to know do you want to save program as normal or turbo mode. If you have a Turbo cartridge, it speeds up loading. If you don't, you can stil run Turbo loader from normal tape.
More, some programs may be saved on tape with built-in Turbo loader, so it loads in normal mode, switches to turbo and loads the rest in turbo mode.
But first, let's prepare connection of Datassette to PCs parallel port. You need a copperized PCB without any tracks - one sheet of copper, one sided. Cut it to fit Datassette's  plug, including a notch (rub it on Datassette's plug to get notch trace), with few centimeters outside. Copper must connect with plug's contacts. Now slide it in and out many times to get copper worn a bit.
Now, using worn places, cut the copper to get parallel tracks for every contact EXCEPT contacts on both sides of notch. They must remain connected.
Solder a wire here - it'll be external +5V for powering the Datassette. 100mA or so.
Connect other pins as in picture:

Finally, the plug should look like that (sorry for poor quality):


This adapter will allow you to transfer programs from and to tape in PURE MS-DOS environment. In Windows GUI, you'll get many errors as parallel port is not supported in realtime.
Programs are:
 - CBMTT (C64load and C64save) - Loads normal (kernal) programs, saving is not perfect. More, Turbo loading and saving is in very low quality. (Download). Recommended only to load normal programs to a computer and check head alignment (-v parameter of C64LOAD)
 - TTAPE010 (TTLoad and TTSave) - Loads and saves only in turbo, quite nicely. Recommended for loading turbo programs to computer (Download)
 - MTap and PTap - for loading and saving TAP files (Download).

Now I'll explain how to make your own mixtapes. I assume you have a DOS machine with running Datassette connected to it and ptap program ready to run. You should also get my T64EMP  and WAV-PRG, on your Windows machine. In fact, you can use the same machine with dual boot or Windows 98 which exits to DOS, but not a DOS box.
First, use WAV-PRG to generate TAP files of needed programs from T64 or PRGs. It's quite simple, the only options to change are program names and mode: Kernal (normal), Turbo or Turbo with normal loader. Do it for every program in your tape, so you'll get a couple of TAP files called for example 01.TAP, 02.TAP ... n.TAP.
Now use T64EMP, first placing TAPE64.EXE from here in its directory. From last menu select "TAP linker" and add TAP files you have. You can also insert silence in seconds between these files. At the end, export mixed down TAP to another file.
Next transfer this file to your DOS machine and record it to tape using PTap. TAP files are big, but they compress easily, 4MB TAP will fit on floppy when RAR compressed. Remember that you'll unpack it in pure DOS, so use DOS WinRAR SFX module (needed to get from previous WinRAR version).
Testing - by executing C64LOAD or TTLOAD and playing the tape to temporary files.

Getting the data from tapes to PC is more quirky...
You can use C2N interface you've built, but better is to use any good quality tape recorder to play it back to your soundcard. Remember to tune volume properly - good amplification, but no overload!. Save it as mono WAV files (split channels before, CoolEdit has this option in "Convert sample type" window or somewhere nearby). Now you can use Tape64 to get programs back. T64EMP has frontend to it.
And of course don't give up if you don't get all programs at once. It's normal on old tapes. You can:
 - Increase speed by parameter -s:1.1 - on stretched tapes. Better is to...
 - Decrease trigamp (trigger amplitude) by parameter -t:x (x between 1 and 10) - on tapes with "fading" amplification. Other ones may need 20-30.
 - On tapes with point demagnetization just play it one more time. In my cases it was 5-8 times for a side as I got all programs, and on some heavily damaged tapes not all programs were readable after it.
I described more on this topic in Polish HERE.

Generally, if you suspect that the tape has own loader, go with making TAP using C2N interface. If not - go with WAV or TAP as source and dump to T64 using tape64. Now, after re-making the tape into sound recording, the result WAV is significantly shorter than original, even with similar silence time between programs, it means that there is something with own loader and you have to stick with TAP as Tape64 will not decipher other loaders than standard and Turbo Tape.

Summing up the flowchart is:
1. Loader different than standard/TurboTape suspected?
   a. YES: Use TAP format and C2N (I found amking TAPs from WAVs is not 100% OK) and goto 3.
   b. NO: Dump WAVs using tape recorder or TAPs and goto 7.
2. Use Tape64 to restore programs and test them. Try to restore all repeating procedure, if all fails (and you see the problematic waveform) you can try to find the same programs on other tapes as in most compilations they repeat almost 1:1. Test programs under emulator.
3. Having a complete T64, make programs to set of TAP filess using standard/Turbo encoding (WAV-PRG).
4. Compile TAPs to one single TAP (e.g. using T64EMP's function) adding specific silence times.
5. Convert TAP to WAV and compare lengths.
6. If length is significantly shorter than original, goto 1b. Else, you have a nice dump!
7. Clean TAP and verify it. Better make a few ones and compare.

I'm working on the interface between PC and Datassette without using of parallel port, which curently is present only in industrial computers.

Floppies - they're easy.
The only thing - It's impossible to use PC 5.25" drive. They just record in other method. It's needed to use Commodore drive instead connected to parallel port with a special cable calles X?1541 - where ? is a letter.
Just use X?1541 cable and StarCommander software. Everything you want to know is on StarCommander website HERE.
I checked and highly recommend THIS XE1541 cable

Floppy emulation
Use XE1541 and 64HDD program. Use basic free version without GUI and make some GUI. How to make it? There's a Norton Commander clone called DOS Navigator. It gives possibility to define file associations. By modifying them you can make quite good GUI. I did this, but I don't have the computer with it anymore and can't supply batch files needed.
If you plan to make a computer especially as C64 server, you should make it to these requirements:
 - 486 processor or better
 - Minimum 8 MB of RAM
 - Big hard disks to store Commodore 64 disk images (DOS supports usually to 2GB per partition)
 - Parallel port
 - It'll be comfortable to use one of these old, text-mode video (or Hercules or CGA) cards which have default composite TV-OUT and  just switch an output between C64 and file server.





8-pin DIN female socket:

1 - Luminance out
2 - Ground
3 - Audio out
4 - Composite video out
5 - Audio in
6,7 - not connected
8 - Chrominance out.





Software - This page about Commodore Scene has very big file library. - More games  - This is a mirror of now-defunct server "Banana Republic" - one of the biggest servers with C64 stuff.  - They have a good repository of Commodore Public Domain disks.  - A library of PD disks, descriptions in Swedish.  - Another good site with games  - Disks with games  - This is one of the biggest Commodore files repo. Here you'll find everything - schematics, utilities, manuals, text files...  - C64 programs  - Another site with games  - Original tape dumps in TAP format  - Mirror of above, with small modifications.  - Descriptions of games on cartridges. Downloads gone.  - Downloads for C64 - mtap, ptap and other programs!  - Many TAP utilities - Music SID files for C64 - Information about C64, games, some downloads working. - Everything your cartridge needs... warm your EPROMs :) - Star Commander Home Page - transfer your files to disks

Hardware  - Commodore Hacking home page  - Nice Commodore service page. Lots of useful TXT files.  - Commodore 64 hardware page  - HUGE library of C64-related file formats specifications. - many things to Commodore and Atari, schematic and binary for Balck Box 3 cartridge. - CRT file format specification See Commodore prototypes