Skip to content

Tutorial How to generate TSX files

NataliaPC edited this page Feb 10, 2019 · 38 revisions

Tutorial: How to generate TSX files

by Natalia Pujol (@NataliaPC @ishwin74)
2018.11.16 : 1st version
2019.02.09 : 2nd version

INDEX

  1. Basic technical concepts of tape data encoding
    1.1. Bits encoding
    1.2. Bytes encoding
    1.3. Data blocks
    1.3.1. Header blocks
    1.3.2. Data content blocks
    1.4. The new #4B block
  2. The makeTSX program
  3. Steps to create a good conversion to TSX
    3.1. Digitize the tape to WAV format
    3.2. Using the makeTSX program
    3.3. Error control
    3.4. Manual signal restoration
    3.5. Data verification
    3.5.1. Verification of tapes with MSX blocks
    3.5.2. Verification of tapes with Spectrum blocks

1. Basic technical concepts of tape data encoding

Most of the old 8-bit computers hare using FSK (Frequency-shift keying) to storing data on magnetic media. This method is based on changing the frequency of the signal to define two or more symbols to store. More specifically, in the case at hand, there would be two: zeros and ones.

Each system used its own coding system: different frequencies, pulse repetitions, parity systems and control bits. Here we will see the ones used by the MSX computers.


1.1. Bits encoding

To encode bits (zeros and ones), we use pulses. A pulse is a state of the signal (low or high), and two pulses create a cycle, after which the initial signal state is obtained again.

As we can see in the following image, to encode a bit 0 we use 2 pulses while for a bit 1 we use 4, being its duration the same due to their different frequency. This is true in the MSX system, unlike the Spectrum or SVI-318/328 encoding, in which a bit 0 and a bit 1 don't have the same length.


1.2. Bytes encoding

The MSX standard uses LSB (Least Significant Bit) convention to encoding bytes, which consists in showing bits from the least significant bit to the most significant bit, unlike Spectrum that uses MSB (Most Significant Bit) that reverses the order of appearance.

In addition to LSB, there is several control bits surrounding the bytes called start bits and stop bits. In this case a single start bit to 0 and two stop bits to 1 are used. So, to encode a byte, we would have 11 bits in the following way:

0 b0 b1 b2 b3 b4 b5 b6 b7 1 1

This type of coding comes within KCS (Kansas City Standard) which is the one adopted by the MSX system for tape recordings. There are several forms of KCS coding incompatible with each other, for example those of the following systems: MSX, ABC 80, Acorn BBC/Electron, MicroBee, Dragon/CoCo, SVI-3x8, ...


1.3. Data blocks


1.3.1. Header blocks


1.3.2. Data content blocks


1.4. The new #4B block


2. The makeTSX program


3. Steps to create a good conversion to TSX


3.1. Digitize the tape to WAV format


3.2. Using the makeTSX program


3.3. Error control


3.4. Manual signal restoration


3.5. Data verification


3.5.1. Verification of tapes with MSX blocks


3.5.2. Verification of tapes with Spectrum blocks

Clone this wiki locally