CRL loader

After Pawel contributed his tape backups of Vengaence, I decided to look at my notes about the CRL tape loader and attempt the implementation of a scanner for TAPClean.

Needless to say that processing the bulk of CRL turbo files is quite straighforward. The real challenge comes from two “edge” issues:

  1. as part of the initial synchronization mechanism some wide pulses are used, which often fall around the TAP value 0xFD but sometimes exceed 0xFF thus requiring a TAP v1 “long pulse” to encode: this is bad as TAPClean pretty much assumes long pulses to be silences;
  2. the last pulse of a turbo data block is almost always missing: this is bad because a data reconstruction is required, which involves some guess work.

The second point is not always terribly concerning as turbo blocks are loaded in page multiples and sometimes don’t use the whole last page, which therefore contains “padding data”: that’s very likely memory contents at the time the block was mastered to tape, which were not zeroed upfront. There might also be a pragmatic way to reconstruct the last bit of a data block, e.g. a missing pulse before silence always corresponds to bit 0 and the presence of an overstretched pulse corresponds to bit 1, but I shall go through a whole lot more tapes before I can find out whether that’s the case.

Another point is that details of CRL turbo files are not set within a corresponding header at the beginning of each turbo file, which is missing completely: they are part of a “load orchestrator” stored within the first turbo file. This is not so much an issue on its own, but it means that when multiple CRL titles are on the same tape side, e.g. Frankenstein, a strategy similar to the one I recently implemented for Visiload is required: the discovery of each title’s file chain has to occur.

After work today I wrote an initial implementation of the CRL scanner in TAPClean 0.35. It is by no means complete and it only supports one CRL title on a given tape side for the time being, but it is a good first step to get familiar with the peculiarities of the loader and the results of the mastering process, which IMHO are rather poor due to the format design and implementation.

Initial support for CRL tape loader in TAPClean by Luigi Di Fraia

Initial support for CRL tape loader in TAPClean

Thanks also go to Rob (Peepo) for dumping his CRL titles, which I had used to take my notes about the format. The two titles I used for my analysis are Dracula and Frankenstein by CRL.

This entry was posted in Retrocomputing, Technical and tagged , , , , , , , . Bookmark the permalink.

2 Responses to CRL loader

  1. pawelriversedge says:

    I’m very happy to see that you are upgrading TapClean. Actually my dump of Vengeance game is perhaps still not 100% good. Comparing Tom Cat’s EF3 software and MTap seems that second one mentioned is better. Tom Cat’s software doesn’t recognize very difficult tapes and the results of dumping are bad, especially if you are coming with CRL loader.

    Anyway. I’ve noticed that someone before me made a working .tap file of Vengeance game. It was preserved by a guy nicknamed Icon and he used… DC2N 🙂 There ar .dmp and .tap files available at

    Again it proves that DC2N is the best solution for dumping tapes!

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 )

Google+ photo

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

Connecting to %s