PRG to TAP conversion tool available for Windows users

I decided to publish my PC version of the PRG to TAP conversion tool as it might come handy to somebody else too.

You can grab the executable for Windows (32/64 bits) at this link.

The one feature worth underlying is the ability to provide a hex string for the CBM ROM file name so that interesting effects can be achieved by using PETSCII control codes such as $93 to clear the screen, $05 to change the text color to white, etc.

An example.prg file is provided within the archive at the above download link. For an interesting use of PETSCII control codes you might want to try the following:

prg2tap.exe -h "930548454c4c4f20574f524c4421" example.prg helloworld.tap

See what happens when you load the resulting TAP file 🙂

Here’s the output on usage from the tool itself, for reference:

PRG to TAP version 1 generator V1.1 - (C) 2016 Luigi Di Fraia
Converts a PRG file into a TAP file using the CBM ROM loader

Usage: prg2tap.exe [options] "<PRG filename>" "<TAP filename>"

 -n "<ASCII name>": sets the CBM ROM filename to <name>
 -h "<hex string>": sets the CBM ROM filename to <hex string>

 prg2tap.exe -n "HELLO WORLD!" example.prg helloworld.tap
 prg2tap.exe -h "930548454c4c4f20574f524c4421" example.prg helloworld.tap

 PETSCII codes can be part of the <hex string> for advanced uses
 The resulting CBM ROM file will be non-relocatable (type 3)

PETSCII codes of interest (full listing at
 05: white
 08: disable shift+C=
 0e: switch charset to lo/up
 12: reverse on
 13: home
 1c: red
 1e: green
 1f: blue
 81: orange
 8e: switch charset to up/gfx
 90: black
 92: reverse off
 93: clear
 95: brown
 96: pink
 97: dark grey
 98: grey
 99: light green
 9a: light blue
 9b: light grey
 9c: purple
 9e: yellow
 9f: cyan

About Luigi Di Fraia

I am a Senior DevOps Engineer so I get to work with the latest technologies and open-source software. However, in my private time I enjoy retro-computing.
This entry was posted in Retrocomputing, Technical and tagged , , , , . Bookmark the permalink.

9 Responses to PRG to TAP conversion tool available for Windows users

  1. Nice little tool. Now it needs a fast loader, optionally with a bitmap loaded first and you have a nice tool for making tapes. 🙂 – I have previously used enthusi’s tapgen v0.1 python script for this which also has a cool little progress bar as well as music playing while loading. 🙂

    • luigidifraia says:

      Heh. I will get a tool for turbo tape 64 going as part of my testing of a PRG to TAP data approach to use with DC2N5, but I don’t expect to go through the creation of a mastering tool. Not in the short term anyway 🙂

  2. Paul Jones says:

    The tool is coming along nicely. I still use the tool you made called MakeTape to convert my Prg files into Trilogic Fast loading Tap files. Are they any plans to incorporate that into this ?

    • luigidifraia says:

      The tool you are using is possibly based on my libtap library or maybe the later libtapf one. Example applications for libtap/libtapf come in 4 different flavors:

      – conversion of PRG files to TAP using the CBM ROM loader for programs
      – conversion of ASCII files to TAP using the CBM ROM loader for SEQuential files
      – conversion of PRG files to TAP using Turbo Tape 64 (a.k.a. TT250)
      – conversion of PRG files to TAP using Trilogic V3.2

      The difference between such tools based on libtap/libtapf and my latest development is that the former ones are NOT generating TAP data on-the-fly, which is not so important when either code runs on a PC with huge amounts of RAM and almost unlimited disk storage. However, my new approach provides a viable alternative for embedded systems with limited resources by implementing a tiny footprint solution.

      That said, you’d expect the applications based on libtap/libtapf to provide a much wider set of options but that’s not the case as they are just example applications. Even the field application I coded to leverage libtapf has a quite simple functionality. From its usage output:

      Usage: prg2tapcbm.exe “input file” “output file” “CBM filename”

      At the time I coded such tool (2014) I probably did not think I was going to be in need of anything more flexible than that. With my new development flexibility seemed paramount so I made the tool as flexible as it can possibly be without offering superfluous features.

      Quite literally my new code would fit on Tiny C2N Monitor (that is a tiny system indeed!) and could be used to e.g. load the main Turbo Tape 64 (TT250) application into the C64 using the CBM ROM loader prior to loading files from tape that were saved using the same application. The same could be done for DC2N5: one of the options along with “Playback a TAP file from the SD Card” could be “Playback the Turbo Tape 64 tool”, which would have to be loaded using the CBM ROM loader into the C64 prior to loading files mastered with the same tool.

      Finally, to answer your question: Yes, I plan to implement Turbo Tape 64 (TT250) and Trilogic v3.2 tools using the new approach, in order to use them in DC2N5.

      • Paul Jones says:

        Thanks for the detailed reply. Looking forward to seeing this feature implemented in the future. I also recall seeing a front end for libtap, but I don’t think it was made public. Any plans to release this ?

  3. luigidifraia says:

    @Paul: I’ve actually implemented the Turbo Tape masterer and it’s under testing. A preview executable is available here:
    See my latest blog post for the usage text.

  4. luigidifraia says:

    @Paul: A GUI tool based on libtap, TapeMaker, exists but was never made public. I do understand the need for a more friendly GUI interface and I shall say that you might be positively impressed some time soon. Not by my work though 🙂

  5. I was looking for a tool that can convert prg files to tap files…. but the file is no longer there for download.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s