Сделал набросок читалки. Файлы будут выглядят так:
DISK.10-18.bas
DIZZY4.BAS.10-151.bas
DIZZY4.DAT.24137.bin
DIZZY4.LDR.24500.bin
DIZZY4.MUS.32768.bin
DIZZY4.SCR.16384.bin
Вся полезная информация из 128-байтного заголовка файла включается в расширение файла (тип файла, адрес загрузки, имя переменной, стартовая строка и offsetToProg), а сам заголовок уничтожается. В заголовке вроде ничего полезного нет.
struct Plus3DOSFileHeader {
unsigned char id[9]; // PLUS3DOS\x1A
unsigned char issueNumber, versionNumber;
unsigned int fileLength;
unsigned char type; // Тип данных: 0=basic, 1=numarrray, 2=strarray, 3=code
unsigned short internalLength;
union {
struct {
unsigned short startLine;
unsigned short offsetToProg;
} type0;
struct {
unsigned char null2;
unsigned char name;
unsigned short null3;
} type1or2;
struct {
unsigned short address;
unsigned short null3;
} type3;
};
unsigned char null1[105];
unsigned char crc;
};
P.S. Сделаю еще авто преобразование из TAP в DSK.




Ответить с цитированием