Comments: converted mixed codepage mess to UTF-8

This commit is contained in:
Sven Killig
2020-05-03 20:16:09 +02:00
committed by GitHub
parent dd586f890f
commit dfc87dedfd

View File

@@ -135,22 +135,22 @@ struct TD0_MAIN_HEADER // 12 bytes
unsigned char Ver; // +4: Source version (1.0 -> 10, ..., 2.1 -> 21)
unsigned char __2; // +5: ???
unsigned char DiskType; // +6: Source disk type
unsigned char Info; // +7: D7-­ «¨ç¨¥ image info
unsigned char Info; // +7: D7-наличие image info
unsigned char DataDOS; // +8: if(=0)'All sectors were copied', else'DOS Allocated sectors were copied'
unsigned char ChkdSides; // +9: if(=1)'One side was checked', else'Both sides were checked'
unsigned short CRC; // +A: CRC 娤¥à  TD0_MAIN_HEADER (ªà®¬¥ ¡ ©â á CRC)
unsigned short CRC; // +A: CRC хидера TD0_MAIN_HEADER (кроме байт с CRC)
};
struct TD0_INFO_DATA // 10 ¡ ©â ¡¥§ áâப¨ ª®¬¥­â à¨ï...
struct TD0_INFO_DATA // 10 байт без строки коментария...
{
unsigned short CRC; // +0: CRC ¤«ï áâàãªâãàë COMMENT_DATA (¡¥§ ¡ ©â®¢ CRC)
unsigned short strLen; // +2: „«¨­  áâப¨ ª®¬¥­â à¨ï
unsigned char Year; // +4: „ â  á®§¤ ­¨ï - £®¤ (1900 + X)
unsigned char Month; // +5: „ â  á®§¤ ­¨ï - ¬¥áïæ (Ÿ­¢ àì=0, ”¥¢à «ì=1,...)
unsigned char Day; // +6: „ â  á®§¤ ­¨ï - ç¨á«®
unsigned char Hours; // +7: ‚६ï á®§¤ ­¨ï - ç áë
unsigned char Minutes; // +8: ‚६ï á®§¤ ­¨ï - ¬¨­ãâë
unsigned char Seconds; // +9: ‚६ï á®§¤ ­¨ï - ᥪ㭤ë
unsigned short CRC; // +0: CRC для структуры COMMENT_DATA (без байтов CRC)
unsigned short strLen; // +2: Длина строки коментария
unsigned char Year; // +4: Дата создания - год (1900 + X)
unsigned char Month; // +5: Дата создания - месяц (Январь=0, Февраль=1,...)
unsigned char Day; // +6: Дата создания - число
unsigned char Hours; // +7: Время создания - часы
unsigned char Minutes; // +8: Время создания - минуты
unsigned char Seconds; // +9: Время создания - секунды
};
struct TD0_TRACK_HEADER // 4 bytes
@@ -169,27 +169,27 @@ struct TD0_SECT_HEADER // 8 bytes
struct FDD_MAIN_HEADER
{
char ID[30]; /* ᨣ­ âãà  */
unsigned char MaxTracks; /* ç¨á«® â४®¢ (樫¨­¤à®¢) */
unsigned char MaxHeads; /* ç¨á«® £®«®¢®ª (1 ¨«¨ 2) */
char ID[30]; /* сигнатура */
unsigned char MaxTracks; /* число треков (цилиндров) */
unsigned char MaxHeads; /* число головок (1 или 2) */
long diskIndex; /* unused */
long DataOffset[512 * 2]; /* ᬥ饭¨¥ ¢ ä ©«¥ ª áâàãªâãà ¬ § £®«®¢ª®¢ */
/* â४®¢ */
long DataOffset[512 * 2]; /* смещение в файле к структурам заголовков */
/* треков */
};
struct FDD_TRACK_HEADER
{
unsigned char trkType; /* unused */
unsigned char SectNum; /* ç¨á«® ᥪâ®à®¢ ­  â४¥ */
unsigned char SectNum; /* число секторов на треке */
struct
{
/* § £®«®¢®ª ᥪâ®à  */
unsigned char trk; /* ­®¬¥à â४  */
unsigned char side; /* ­®¬¥à áâ®à®­ë */
/* 7 ¡¨â í⮣® ¡ ©â  㪠§ë¢ ¥â ¡¨â a */
unsigned char sect; /* ­®¬¥à ᥪâ®à  */
unsigned char size; /* à §¬¥à ᥪâ®à  (ª®¤) */
long SectPos; /* ᬥ饭¨¥ ¢ ä ©«¥ ª ¤ ­­ë¬ ᥪâ®à  */
/* заголовок сектора */
unsigned char trk; /* номер трека */
unsigned char side; /* номер стороны */
/* 7 бит этого байта указывает бит a */
unsigned char sect; /* номер сектора */
unsigned char size; /* размер сектора (код) */
long SectPos; /* смещение в файле к данным сектора */
} sect[256];
};
@@ -1013,7 +1013,7 @@ bool TDiskImage::FindSector(unsigned char CYL, unsigned char SIDE,
bool FirstFind = true;
unsigned int FirstPos = 0;
// Ïîèñê àäðåñíîé ìåòêè òðåáóåìîãî ñåêòîðà...
// Поиск адресной метки требуемого сектора...
bool ADFOUND = false;
for (;;)
{
@@ -1041,7 +1041,7 @@ bool TDiskImage::FindSector(unsigned char CYL, unsigned char SIDE,
if (!ADFOUND) return false;
// ADRMARK íóæíîãî íàéäåí, ïîèñê ìàññèâà äàííûõ...
// ADRMARK нужного найден, поиск массива данных...
unsigned char *track = vgfs->vgfa.TrackPointer;
unsigned char *clks = vgfs->vgfa.ClkPointer;
@@ -1183,7 +1183,7 @@ void TDiskImage::formatTRDOS(unsigned int Tcount, unsigned int Scount)
unsigned short TotalSecs = Tcount*Scount * 16 - 16;
// ôîðìàòèðîâàíèå íîâîãî äèñêà ïîä TR-DOS (16 x 256bytes sector per track)...
// форматирование нового диска под TR-DOS (16 x 256bytes sector per track)...
unsigned int ptrcrc;
unsigned int r;
unsigned short vgcrc;
@@ -1198,23 +1198,23 @@ void TDiskImage::formatTRDOS(unsigned int Tcount, unsigned int Scount)
unsigned int tptr = 0;
for (int sec = 0; sec < 16; sec++)
{
for (r = 0; r < 10; r++) // Ïåðâûé ïðîáåë
for (r = 0; r < 10; r++) // Первый пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
for (r = 0; r < 12; r++) // Ñèíõðîïðîìåæóòîê
for (r = 0; r < 12; r++) // Синхропромежуток
{
FTracksPtr[trk][side][0][tptr] = 0x00;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
ptrcrc = tptr;
for (r = 0; r < 3; r++) // Ñèíõðîèìïóëüñ
for (r = 0; r < 3; r++) // Синхроимпульс
{
FTracksPtr[trk][side][0][tptr] = 0xA1;
FTracksPtr[trk][side][1][tptr++] = 0xFF;
}
FTracksPtr[trk][side][0][tptr] = 0xFE; // Ìåòêà "Àäðåñ"
FTracksPtr[trk][side][0][tptr] = 0xFE; // Метка "Адрес"
FTracksPtr[trk][side][1][tptr++] = 0x00;
FTracksPtr[trk][side][0][tptr] = (unsigned char)trk; // cyl
@@ -1232,26 +1232,26 @@ void TDiskImage::formatTRDOS(unsigned int Tcount, unsigned int Scount)
FTracksPtr[trk][side][0][tptr] = (unsigned char)(vgcrc & 0xFF);
FTracksPtr[trk][side][1][tptr++] = 0x00;
for (r = 0; r < 22; r++) // Âòîðîé ïðîáåë
for (r = 0; r < 22; r++) // Второй пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
for (r = 0; r < 12; r++) // Ñèíõðîïðîìåæóòîê
for (r = 0; r < 12; r++) // Синхропромежуток
{
FTracksPtr[trk][side][0][tptr] = 0x00;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
ptrcrc = tptr;
for (r = 0; r < 3; r++) // Ñèíõðîèìïóëüñ
for (r = 0; r < 3; r++) // Синхроимпульс
{
FTracksPtr[trk][side][0][tptr] = 0xA1;
FTracksPtr[trk][side][1][tptr++] = 0xFF;
}
FTracksPtr[trk][side][0][tptr] = 0xFB; // Ìåòêà "Äàííûå"
FTracksPtr[trk][side][0][tptr] = 0xFB; // Метка "Данные"
FTracksPtr[trk][side][1][tptr++] = 0x00;
for (r = 0; r < 256; r++) // ñåêòîð 256áàéò
for (r = 0; r < 256; r++) // сектор 256байт
{
FTracksPtr[trk][side][0][tptr] = 0x00;
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -1281,7 +1281,7 @@ void TDiskImage::formatTRDOS(unsigned int Tcount, unsigned int Scount)
FTracksPtr[trk][side][0][tptr] = (unsigned char)(vgcrc & 0xFF);
FTracksPtr[trk][side][1][tptr++] = 0x00;
for (r = 0; r < 60; r++) // Òðåòèé ïðîáåë
for (r = 0; r < 60; r++) // Третий пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -1554,11 +1554,11 @@ void TDiskImage::readFDI(int hfile, bool readonly)
struct FDISECINFO
{
unsigned char ADAM[5];
unsigned int SectorOffset; // îòíîñèò DataOffset
unsigned int SectorOffset; // относит DataOffset
};
struct FDITRACKHDR
{
unsigned int DataOffset; // îòíîñèò íà÷àëà ôàéëà
unsigned int DataOffset; // относит начала файла
unsigned int SectorCount;
FDISECINFO SectorsInfo[256];
};
@@ -1567,7 +1567,7 @@ void TDiskImage::readFDI(int hfile, bool readonly)
unsigned int fdiOFF = 0x0E + fdiSIZEext;
unsigned int trk, side;
// Àíàëèç îáëàñòè çàãîëîâêîâ òðåêîâ...
// Анализ области заголовков треков...
for (trk = 0; trk <= unsigned(MaxTrack); trk++)
for (side = 0; side <= unsigned(MaxSide); side++)
{
@@ -1590,7 +1590,7 @@ void TDiskImage::readFDI(int hfile, bool readonly)
return;
}
fdiOFF += 2; // "Âñåãäà ñîäåðæèò 0 (ðåçåðâ äëÿ ìîäåðíèçàöèè)"
fdiOFF += 2; // "Всегда содержит 0 (резерв для модернизации)"
tracksinfo[trk*(MaxSide + 1) + side].SectorCount = unsigned(ptr[fdiOFF++]);
@@ -1611,7 +1611,7 @@ void TDiskImage::readFDI(int hfile, bool readonly)
}
}
// ôîðìàòèðîâàíèå íîâîãî äèñêà è ðàçìåùåíèå FDI ñåêòîðîâ...
// форматирование нового диска и размещение FDI секторов...
unsigned int ptrcrc;
unsigned int r;
unsigned short vgcrc;
@@ -1635,7 +1635,7 @@ void TDiskImage::readFDI(int hfile, bool readonly)
SecCount = tracksinfo[trk*(MaxSide + 1) + side].SectorCount;
// Âû÷èñëÿåì íåîáõîäèìîå ÷èñëî áàéò ïîä äàííûå:
// Вычисляем необходимое число байт под данные:
trkdatalen = 0;
for (unsigned int ilsec = 0; ilsec < SecCount; ilsec++)
{
@@ -1645,7 +1645,7 @@ void TDiskImage::readFDI(int hfile, bool readonly)
else SL = 128 << SL;
if (tracksinfo[trk*(MaxSide + 1) + side].SectorsInfo[ilsec].ADAM[4] & 0x40)
SL = 0; // çàãîëîâîê áåç ìàññèâà äàííûõ
SL = 0; // заголовок без массива данных
else
trkdatalen += 4; // for data header/crc: 0xA1, 0xFB, ...,2bytes
@@ -1671,14 +1671,14 @@ void TDiskImage::readFDI(int hfile, bool readonly)
unsigned int FreeSpace = 6250 - (trkdatalen + SecCount*(3 + 2));
unsigned int SynchroPulseLen = 1; // 1 óæå ó÷òåí â trkdatalen...
unsigned int SynchroPulseLen = 1; // 1 уже учтен в trkdatalen...
unsigned int FirstSpaceLen = 1;
unsigned int SecondSpaceLen = 1;
unsigned int ThirdSpaceLen = 1;
unsigned int SynchroSpaceLen = 1;
FreeSpace -= FirstSpaceLen + SecondSpaceLen + ThirdSpaceLen + SynchroSpaceLen;
// Ðàñïðåäåëÿåì äëèíû ïðîáåëîâ è ñèíõðîïðîìåæóòêà:
// Распределяем длины пробелов и синхропромежутка:
while (FreeSpace > 0)
{
if (FreeSpace >= (SecCount * 2))
@@ -1694,32 +1694,32 @@ void TDiskImage::readFDI(int hfile, bool readonly)
if ((SynchroSpaceLen >= 12) && (FirstSpaceLen >= 10) && (SecondSpaceLen >= 22) && (ThirdSpaceLen >= 60)) break;
};
// ïî âîçìîæíîñòè äåëàåì òðè ñèíõðîèìïóëüñà...
// по возможности делаем три синхроимпульса...
if (FreeSpace >(SecCount * 2) + 10) { SynchroPulseLen++; FreeSpace -= SecCount; }
if (FreeSpace >(SecCount * 2) + 9) SynchroPulseLen++;
// Ôîðìàòèðóåì äîðîæêó...
// Форматируем дорожку...
unsigned int tptr = 0;
for (unsigned sec = 0; sec < SecCount; sec++)
{
for (r = 0; r < FirstSpaceLen; r++) // Ïåðâûé ïðîáåë
for (r = 0; r < FirstSpaceLen; r++) // Первый пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
for (r = 0; r < SynchroSpaceLen; r++) // Ñèíõðîïðîìåæóòîê
for (r = 0; r < SynchroSpaceLen; r++) // Синхропромежуток
{
FTracksPtr[trk][side][0][tptr] = 0x00;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
ptrcrc = tptr;
for (r = 0; r < SynchroPulseLen; r++) // Ñèíõðîèìïóëüñ
for (r = 0; r < SynchroPulseLen; r++) // Синхроимпульс
{
FTracksPtr[trk][side][0][tptr] = 0xA1;
FTracksPtr[trk][side][1][tptr++] = 0xFF;
}
FTracksPtr[trk][side][0][tptr] = 0xFE; // Ìåòêà "Àäðåñ"
FTracksPtr[trk][side][0][tptr] = 0xFE; // Метка "Адрес"
FTracksPtr[trk][side][1][tptr++] = 0x00;
FTracksPtr[trk][side][0][tptr] = tracksinfo[trk*(MaxSide + 1) + side].SectorsInfo[sec].ADAM[0]; // cyl
@@ -1737,12 +1737,12 @@ void TDiskImage::readFDI(int hfile, bool readonly)
FTracksPtr[trk][side][0][tptr] = (unsigned char)(vgcrc & 0xFF);
FTracksPtr[trk][side][1][tptr++] = 0x00;
for (r = 0; r < SecondSpaceLen; r++) // Âòîðîé ïðîáåë
for (r = 0; r < SecondSpaceLen; r++) // Второй пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
for (r = 0; r < SynchroSpaceLen; r++) // Ñèíõðîïðîìåæóòîê
for (r = 0; r < SynchroSpaceLen; r++) // Синхропромежуток
{
FTracksPtr[trk][side][0][tptr] = 0x00;
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -1754,23 +1754,23 @@ void TDiskImage::readFDI(int hfile, bool readonly)
// !WARNING! this feature of FDI format is NOT FULL DOCUMENTED!!!
// !!!!!!!!!
//
// Flags::bit6 - Âîçìîæíî, 1 â äàííîì ðàçðÿäå
// áóäåò îáîçíà÷àòü àäðåñíûé ìàðêåð áåç îáëàñòè äàííûõ.
// Flags::bit6 - Возможно, 1 в данном разряде
// будет обозначать адресный маркер без области данных.
//
if (!(fdiSectorFlags & 0x40)) // oh-oh, data area not present... ;-)
{
ptrcrc = tptr;
for (r = 0; r < SynchroPulseLen; r++) // Ñèíõðîèìïóëüñ
for (r = 0; r < SynchroPulseLen; r++) // Синхроимпульс
{
FTracksPtr[trk][side][0][tptr] = 0xA1;
FTracksPtr[trk][side][1][tptr++] = 0xFF;
}
if (fdiSectorFlags & 0x80)
FTracksPtr[trk][side][0][tptr] = 0xF8; // Ìåòêà "Óäàëåííûå äàííûå"
FTracksPtr[trk][side][0][tptr] = 0xF8; // Метка "Удаленные данные"
else
FTracksPtr[trk][side][0][tptr] = 0xFB; // Ìåòêà "Äàííûå"
FTracksPtr[trk][side][0][tptr] = 0xFB; // Метка "Данные"
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -1780,7 +1780,7 @@ void TDiskImage::readFDI(int hfile, bool readonly)
unsigned int secDATAOFF = fdiOFFdata + tracksinfo[trk*(MaxSide + 1) + side].DataOffset + tracksinfo[trk*(MaxSide + 1) + side].SectorsInfo[sec].SectorOffset;
for (r = 0; r < SL; r++) // ñåêòîð SL áàéò
for (r = 0; r < SL; r++) // сектор SL байт
{
FTracksPtr[trk][side][0][tptr] = ptr[secDATAOFF + r];
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -1806,7 +1806,7 @@ void TDiskImage::readFDI(int hfile, bool readonly)
}
for (r = 0; r < ThirdSpaceLen; r++) // Òðåòèé ïðîáåë
for (r = 0; r < ThirdSpaceLen; r++) // Третий пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -1873,7 +1873,7 @@ void TDiskImage::readFDD(int hfile, bool readonly)
MaxSide = MaxH;
// ôîðìàòèðîâàíèå íîâîãî äèñêà è ðàçìåùåíèå FDD ñåêòîðîâ...
// форматирование нового диска и размещение FDD секторов...
unsigned int ptrcrc;
unsigned int r;
unsigned short vgcrc;
@@ -1952,7 +1952,7 @@ void TDiskImage::readFDD(int hfile, bool readonly)
// Âû÷èñëÿåì íåîáõîäèìîå ÷èñëî áàéò ïîä äàííûå:
// Вычисляем необходимое число байт под данные:
trkdatalen = 0;
for (unsigned int ilsec = 0; ilsec < SecCount; ilsec++)
{
@@ -1984,14 +1984,14 @@ void TDiskImage::readFDD(int hfile, bool readonly)
unsigned int FreeSpace = 6250 - (trkdatalen + SecCount*(3 + 2));
unsigned int SynchroPulseLen = 1; // 1 óæå ó÷òåí â trkdatalen...
unsigned int SynchroPulseLen = 1; // 1 уже учтен в trkdatalen...
unsigned int FirstSpaceLen = 1;
unsigned int SecondSpaceLen = 1;
unsigned int ThirdSpaceLen = 1;
unsigned int SynchroSpaceLen = 1;
FreeSpace -= FirstSpaceLen + SecondSpaceLen + ThirdSpaceLen + SynchroSpaceLen;
// Ðàñïðåäåëÿåì äëèíû ïðîáåëîâ è ñèíõðîïðîìåæóòêà:
// Распределяем длины пробелов и синхропромежутка:
while (FreeSpace > 0)
{
if (FreeSpace >= (SecCount * 2))
@@ -2007,32 +2007,32 @@ void TDiskImage::readFDD(int hfile, bool readonly)
if ((SynchroSpaceLen >= 12) && (FirstSpaceLen >= 10) && (SecondSpaceLen >= 22) && (ThirdSpaceLen >= 60)) break;
};
// ïî âîçìîæíîñòè äåëàåì òðè ñèíõðîèìïóëüñà...
// по возможности делаем три синхроимпульса...
if (FreeSpace >(SecCount * 2) + 10) { SynchroPulseLen++; FreeSpace -= SecCount; }
if (FreeSpace >(SecCount * 2) + 9) SynchroPulseLen++;
// Ôîðìàòèðóåì äîðîæêó...
// Форматируем дорожку...
unsigned int tptr = 0;
for (unsigned sec = 0; sec < SecCount; sec++)
{
for (r = 0; r < FirstSpaceLen; r++) // Ïåðâûé ïðîáåë
for (r = 0; r < FirstSpaceLen; r++) // Первый пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
for (r = 0; r < SynchroSpaceLen; r++) // Ñèíõðîïðîìåæóòîê
for (r = 0; r < SynchroSpaceLen; r++) // Синхропромежуток
{
FTracksPtr[trk][side][0][tptr] = 0x00;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
ptrcrc = tptr;
for (r = 0; r < SynchroPulseLen; r++) // Ñèíõðîèìïóëüñ
for (r = 0; r < SynchroPulseLen; r++) // Синхроимпульс
{
FTracksPtr[trk][side][0][tptr] = 0xA1;
FTracksPtr[trk][side][1][tptr++] = 0xFF;
}
FTracksPtr[trk][side][0][tptr] = 0xFE; // Ìåòêà "Àäðåñ"
FTracksPtr[trk][side][0][tptr] = 0xFE; // Метка "Адрес"
FTracksPtr[trk][side][1][tptr++] = 0x00;
FTracksPtr[trk][side][0][tptr] = trackinfo->sect[sec].trk; // cyl
@@ -2050,12 +2050,12 @@ void TDiskImage::readFDD(int hfile, bool readonly)
FTracksPtr[trk][side][0][tptr] = (unsigned char)(vgcrc & 0xFF);
FTracksPtr[trk][side][1][tptr++] = 0x00;
for (r = 0; r < SecondSpaceLen; r++) // Âòîðîé ïðîáåë
for (r = 0; r < SecondSpaceLen; r++) // Второй пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
for (r = 0; r < SynchroSpaceLen; r++) // Ñèíõðîïðîìåæóòîê
for (r = 0; r < SynchroSpaceLen; r++) // Синхропромежуток
{
FTracksPtr[trk][side][0][tptr] = 0x00;
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -2064,13 +2064,13 @@ void TDiskImage::readFDD(int hfile, bool readonly)
// DATA AM
ptrcrc = tptr;
for (r = 0; r < SynchroPulseLen; r++) // Ñèíõðîèìïóëüñ
for (r = 0; r < SynchroPulseLen; r++) // Синхроимпульс
{
FTracksPtr[trk][side][0][tptr] = 0xA1;
FTracksPtr[trk][side][1][tptr++] = 0xFF;
}
FTracksPtr[trk][side][0][tptr] = 0xFB; // Ìåòêà "Äàííûå"
FTracksPtr[trk][side][0][tptr] = 0xFB; // Метка "Данные"
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -2080,7 +2080,7 @@ void TDiskImage::readFDD(int hfile, bool readonly)
unsigned int secDATAOFF = trackinfo->sect[sec].SectPos;
for (r = 0; r < SL; r++) // ñåêòîð SL áàéò
for (r = 0; r < SL; r++) // сектор SL байт
{
FTracksPtr[trk][side][0][tptr] = ptr[secDATAOFF + r];
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -2095,7 +2095,7 @@ void TDiskImage::readFDD(int hfile, bool readonly)
FTracksPtr[trk][side][1][tptr++] = 0x00;
for (r = 0; r < ThirdSpaceLen; r++) // Òðåòèé ïðîáåë
for (r = 0; r < ThirdSpaceLen; r++) // Третий пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -2354,7 +2354,7 @@ void TDiskImage::readHOB(int hfile)
unsigned short CRC = 0;
for (i = 0; i < 15; i++) CRC = CRC + ptr[i];
CRC *= 257;
CRC += 105; // ñóììà ÷èñåë îò 0 äî 14
CRC += 105; // сумма чисел от 0 до 14
if (CRC != hobRealCRC)
ShowError(ERR_FILECRC" HOBETA!");
@@ -2371,7 +2371,7 @@ void TDiskImage::readHOB(int hfile)
}
// --- read file...
dired.SecLen = ptr[0x0E]; // ÷èñëî ñåêòîðîâ ôàéëà
dired.SecLen = ptr[0x0E]; // число секторов файла
VGFIND_SECTOR vgfs9;
if (!FindSector(0, 0, 9, &vgfs9)) { delete ptr; return; }
@@ -2529,7 +2529,7 @@ void TDiskImage::readTD0(int hfile, bool readonly)
unsigned int tmpOFF = tdOFF;
// Âû÷èñëÿåì íåîáõîäèìîå ÷èñëî áàéò ïîä äàííûå:
// Вычисляем необходимое число байт под данные:
unsigned int trkdatalen = 0;
unsigned int SL;
for (unsigned int ilsec = 0; ilsec < SecCount; ilsec++)
@@ -2546,7 +2546,7 @@ void TDiskImage::readTD0(int hfile, bool readonly)
trkdatalen += SL;
}
// ïðîâåðêà íà âîçìîæíîñòü ôîðìàòà...
// проверка на возможность формата...
if (trkdatalen + SecCount*(3 + 2) > 6250) // 3x4E & 2x00 per sec checking
{
delete ptr;
@@ -2565,14 +2565,14 @@ void TDiskImage::readTD0(int hfile, bool readonly)
unsigned int FreeSpace = 6250 - (trkdatalen + SecCount*(3 + 2));
unsigned int SynchroPulseLen = 1; // 1 óæå ó÷òåí â trkdatalen...
unsigned int SynchroPulseLen = 1; // 1 уже учтен в trkdatalen...
unsigned int FirstSpaceLen = 1;
unsigned int SecondSpaceLen = 1;
unsigned int ThirdSpaceLen = 1;
unsigned int SynchroSpaceLen = 1;
FreeSpace -= FirstSpaceLen + SecondSpaceLen + ThirdSpaceLen + SynchroSpaceLen;
// Ðàñïðåäåëÿåì äëèíû ïðîáåëîâ è ñèíõðîïðîìåæóòêà:
// Распределяем длины пробелов и синхропромежутка:
while (FreeSpace > 0)
{
if (FreeSpace >= (SecCount * 2))
@@ -2588,11 +2588,11 @@ void TDiskImage::readTD0(int hfile, bool readonly)
if ((SynchroSpaceLen >= 12) && (FirstSpaceLen >= 10) && (SecondSpaceLen >= 22) && (ThirdSpaceLen >= 60)) break;
};
// ïî âîçìîæíîñòè äåëàåì òðè ñèíõðîèìïóëüñà...
// по возможности делаем три синхроимпульса...
if (FreeSpace >(SecCount * 2) + 10) { SynchroPulseLen++; FreeSpace -= SecCount; }
if (FreeSpace >(SecCount * 2) + 9) SynchroPulseLen++;
// Ôîðìàòèðóåì äîðîæêó...
// Форматируем дорожку...
unsigned int tptr = 0;
unsigned int ptrcrc;
@@ -2603,23 +2603,23 @@ void TDiskImage::readTD0(int hfile, bool readonly)
tdsect = (TD0_SECT_HEADER*)(ptr + tdOFF);
tdOFF += sizeof(TD0_SECT_HEADER) + 1;
for (r = 0; r < FirstSpaceLen; r++) // Ïåðâûé ïðîáåë
for (r = 0; r < FirstSpaceLen; r++) // Первый пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
for (r = 0; r < SynchroSpaceLen; r++) // Ñèíõðîïðîìåæóòîê
for (r = 0; r < SynchroSpaceLen; r++) // Синхропромежуток
{
FTracksPtr[trk][side][0][tptr] = 0x00;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
ptrcrc = tptr;
for (r = 0; r < SynchroPulseLen; r++) // Ñèíõðîèìïóëüñ
for (r = 0; r < SynchroPulseLen; r++) // Синхроимпульс
{
FTracksPtr[trk][side][0][tptr] = 0xA1;
FTracksPtr[trk][side][1][tptr++] = 0xFF;
}
FTracksPtr[trk][side][0][tptr] = 0xFE; // Ìåòêà "Àäðåñ"
FTracksPtr[trk][side][0][tptr] = 0xFE; // Метка "Адрес"
FTracksPtr[trk][side][1][tptr++] = 0x00;
FTracksPtr[trk][side][0][tptr] = tdsect->ADRM[0]; // cyl
@@ -2637,12 +2637,12 @@ void TDiskImage::readTD0(int hfile, bool readonly)
FTracksPtr[trk][side][0][tptr] = (unsigned char)(vgcrc & 0xFF);
FTracksPtr[trk][side][1][tptr++] = 0x00;
for (r = 0; r < SecondSpaceLen; r++) // Âòîðîé ïðîáåë
for (r = 0; r < SecondSpaceLen; r++) // Второй пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
for (r = 0; r < SynchroSpaceLen; r++) // Ñèíõðîïðîìåæóòîê
for (r = 0; r < SynchroSpaceLen; r++) // Синхропромежуток
{
FTracksPtr[trk][side][0][tptr] = 0x00;
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -2651,13 +2651,13 @@ void TDiskImage::readTD0(int hfile, bool readonly)
if (tdsect->DataLength - 1) // oh-oh, data area not present... ;-)
{
ptrcrc = tptr;
for (r = 0; r < SynchroPulseLen; r++) // Ñèíõðîèìïóëüñ
for (r = 0; r < SynchroPulseLen; r++) // Синхроимпульс
{
FTracksPtr[trk][side][0][tptr] = 0xA1;
FTracksPtr[trk][side][1][tptr++] = 0xFF;
}
FTracksPtr[trk][side][0][tptr] = 0xFB; // Ìåòêà "Äàííûå"
FTracksPtr[trk][side][0][tptr] = 0xFB; // Метка "Данные"
FTracksPtr[trk][side][1][tptr++] = 0x00;
// SL = unsigned(tdsect->ADRM[3]);
@@ -2665,7 +2665,7 @@ void TDiskImage::readTD0(int hfile, bool readonly)
// else SL = 128 << SL;
SL = tdsect->DataLength - 1;
for (r = 0; r < SL; r++) // ñåêòîð SL áàéò
for (r = 0; r < SL; r++) // сектор SL байт
{
FTracksPtr[trk][side][0][tptr] = ptr[tdOFF + r];
FTracksPtr[trk][side][1][tptr++] = 0x00;
@@ -2681,7 +2681,7 @@ void TDiskImage::readTD0(int hfile, bool readonly)
FTracksPtr[trk][side][1][tptr++] = 0x00;
}
for (r = 0; r < ThirdSpaceLen; r++) // Òðåòèé ïðîáåë
for (r = 0; r < ThirdSpaceLen; r++) // Третий пробел
{
FTracksPtr[trk][side][0][tptr] = 0x4E;
FTracksPtr[trk][side][1][tptr++] = 0x00;