This Compucolor 2 emulator uses disk images with the file extension .ccvf
. Here is an example file. I would like to understand how to interpret that format.
I understand from the documentation that the disk contains a raw bitstream to be fed to a UART, using one low start bit and one high stop bit. The emulator source code makes it clear that the "bytes" in the .ccvf
file are incidental, and they should be interpreted as a sequence of bits.
However, if I do that (and in the same bit order as reverse-engineered from the peekByte
function linked above), the resulting 10-bit units don't seem to match the start/8-bit data/stop format that I expected. For example, track 1 of this disk image, when converted to a stream of bits, starts like this (grouped in 10s):
0,00010011,0,
1,01000111,0,
1,01010111,0,
0,10101111,0,
1,11101101,1,
1,11111111,1
I would expect the middle 8 bits to correspond to the actual data (as bytes), in the bit order prescribed by the UART; but we can see 0 stop bits (e.g. line 1) and 1 start bits (e.g. line 2), which don't make much sense.
My goal as a first step would be to get a list of 8-bit bytes from these disk images, corresponding to the data that ultimately appears on the TMS5501's port 0 ("read serial data"). Evidently, just taking the middle 8 bits of these 10-bit words is not enough. How can I achieve this?