Ramiros, когдаж мы наконец сможем открывать FDD в вашем эмуляторе ?
Ramiros, когдаж мы наконец сможем открывать FDD в вашем эмуляторе ?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Здесь можно скачать актуальные версии Virtual Vector (VV)
Ramiros, спрашивай вслух, тогда тебе будут отвечать У меня ведь сделана в vector06cc поддержка fdd, привем написана она на Си и все сорцы открыты. Формат там проще некуда - просто подряд сектора. 5 секторов на сторону, две стороны на дорожку, дорожка за дорожкой.. Ничего лишнего.
http://code.google.com/p/vector06cc/...src/fddimage.c
http://code.google.com/p/vector06cc/...src/fddimage.h
А .fdi файлы разбираются опенсорсно вот тут:
http://svn.akop.org/psp/trunk/fms/EMULib/
Правда, там очень интересный Си, но конь дареный так что грех жаловаться. Собственно, там и весь эмулятор дисковода есть. Если уж на то пошло.
посмотрел содержимое *.fdd файлов и пришел к выводу, что в них несодержится служебной информации типа: размер сектора, количества секторов на дорожке, и т.п. поправте меня если я ошибаюсь.
есть вопросы к svofski:
1. можно поподробней, в каком порядке размещена информация в самом файле, т.е. номер сотроны, номер дорожки, и т.д. по порядку?
2. сколько дорожек на стороне?
3. сколько секторов на дорожке?
4. какой размер сектора?
Здесь можно скачать актуальные версии Virtual Vector (VV)
"Рыба есть, ловить надо уметь" (С) Генерал
struct BootSector
{
WORD LoadAddress;
WORD RunAddress;
WORD LoadSectorCount;
BYTE SizeDisk; /* 0-5.25", 1-8" */
BYTE Density; /* 0-FM, 1-MFM */
BYTE TpI; /* 0-48 TpI, 1-96 TpI, 2-135 TpI */
BYTE SkewFactor; /* 1-no sector tranlation else = len(_SecTran) */
BYTE SecSize; /* 0-128, 1-256, 2-512, 3-1024 */
BYTE InSide; /* 0-single, 1-double */
WORD SecPerTrack;
WORD TrkPerDisk;
/*DPB*/
WORD SPT; /* logical sector(128) per track */
BYTE BSH; /* block shift */
BYTE BLM; /* block shift mask */
BYTE EXM; /* extent mask EXM=(BLM+1)*128/1024 - 1 - [DSM/256] */
WORD DSM; /* disk size - 1 */
WORD DRM; /* dir entry - 1 */
WORD AL; /* dir allocation */
WORD CKS; /* dir check table size CKS=(DRM+1)/4; 0 for fixed disk */
WORD OFS; /* offset, reserved tracks count */
BYTE CheckSum;
BYTE SecTran[96];
};
Добавлено через 5 минут
1. Размер сектора - ровно 1 килобайт, первым идёт сектор 1 головка 0 дорожка 0, затем остальные 4 сектора на этой дорожке/головке, затем идут 5 секторов второй головки (стороны), следом идёт вторая дорожка (10 секторов), третья, и т.д.
2. Странный вопрос. Всего дорожек 80.
3. На дорожке 5 секторов стороны 0 и 5 секторов стороны 1.
4. 1024 байт
Добавлено через 6 минут
Секторы нумеруются с еденицы, дорожка - с нуля.
Последний раз редактировалось b2m; 16.10.2008 в 11:20. Причина: Добавлено сообщение
Дорожек всегда достаткол. Главное знать размер одной дорожки.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)