Важная информация
Страница 1 из 13 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 129

Тема: Реализация и поддержка FAT16/32 на Спектруме с HDD

  1. #1
    Master
    Регистрация
    19.01.2005
    Адрес
    Наро-фоминск
    Сообщений
    787
    Благодарностей: 100

    По умолчанию Реализация и поддержка FAT16/32 на Спектруме с HDD

    Hi Многоуважаемый All! Недавно заимел IDE-контроллер (Nemo), и у меня возникло огромное желание реализовать поддержку файловых систем FAT16/32 и возможно, NTFS, а также ext2/ext3/reiserfs на Спектруме. Имея справочный материал по командам HDD из газеты Абзац, я получил примерное представление о реализации чтения/записи на винт, но сейчас мне не хватает именно информации о структуре и программировании FAT, серфинг в поисковиках дал только общее представление по сабджу. Может быть кто-то задавался подобным вопросом, и может поделиться своими исследованиями или документациенй ? Буду очень благодарен. В моих планах написание коммандера, работающего со всеми файловыми системами на zx, (tr-dos, is-dos(tr-dos, is-dos, msdos), в том числе и FAT. Согласитесь, было бы очень неплохо использовать весь обьем HDD ( а не 16 mb only как в ISDOS) исключительно для хранения спековского вареза, и любых других файлов неограниченного количества и размера, как это делают эмуляторщики.
    С возможностью редактирования и копирования с/на tr-dos, isdos. IMHO, для ZX с HDD нужна не ось, а именно навороченный командер. В данный момент, испытывая дефицит информации, я пробую реализовать подобие FAT12 на винте. Если вам интересен данный subj, его востребованность на ZX, а также если вы желаете принять участие в его разработке, то попрошу развить данную тему в форуме, либо пишите на мэйл andy_petroff(at)mail.ru, с пометкой для Макса. (Я юзаю инет у ^m00h^'a, поэтому логин в форуме и мыло - его).

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Владивосток
    Сообщений
    2,889
    Благодарностей: 1213
    Записей в дневнике
    5

    По умолчанию

    На сколько я знаю, это не реализовано потому как под таблицы FAT требуется слишком много памяти...
    С уважением, Станислав.

  4. #3
    Veteran Аватар для jtn
    Регистрация
    15.01.2005
    Адрес
    Kievska Rus
    Сообщений
    1,147
    Благодарностей: 4

    По умолчанию

    скачай пцшную прогу WINHEX, в документации к ней есть интересующая тебя инфа, плюс сама прога пригодится для изучения таблиц.
    Что касается размеров таблиц, то никто ведь не заставляет целиком держать их в памяти.

  5. #4

    По умолчанию

    В общем, всем интересующимся данной тематикой советую сходить по этой ссылочке и заиметь себе эту книжку, учитывая её цену. http://www.piter.com/display.phtml?p...ED%E0%E9%F2%E8

    Кулаков В. Программирование дисковых подсистем.

    Здесь можно найти не только описание FAT, но и ISO 9660, и формат хранения данных на DVD, и вообще более подробное и расширенное описание команд винчестера, чем в моей статье в Абзаце.

  6. #5
    Guru Аватар для CHRV
    Регистрация
    18.01.2005
    Адрес
    Москва
    Сообщений
    3,690
    Благодарностей: 258

    По умолчанию

    Приветствую Влада

    Львиная часть док по CDROM и DVD есть на http://www.ecma-international.org

    Пожалуйста пишите в email (chunin{гаф}mail{тчк}ru), личка отключена!!!

    NedoPC group. ZX-Evolution, ATM Turbo 2+, Pentagon1024SL.
    [Предлагаю: ZXEvo, PAL coder, NeoGS, TS-FM, YM2149, Z80 и прочее]
    Все здесь: http://www.nedopc.com.
    Новости/поддержка/Faq: http://forum.nedopc.com.
    Раздача халявы: http://forum.nedopc.com/viewtopic.php?f=32&t=977

  7. #6
    Guru Аватар для CHRV
    Регистрация
    18.01.2005
    Адрес
    Москва
    Сообщений
    3,690
    Благодарностей: 258

    По умолчанию

    Кстати параллельно стоит вопрос написания универсального набора процедур для работы с винтом (а точнее с контроллером винта). Если это дело застандартизировать. И запихать например в свободныем места ТРДОС или в свободные странички ПЗУ, то это было бы какоето развитие и серьезное подспорие программисту (ибо не надо изучать весь десяток разных контроллеров). Ну и хардварщикам проще - написал свои процедуры и весь софт будущий будет совместим.
    Мы с Алко и отчасти Vega задумались о таком шаге - если есть соображения тоже пишем их.

    Пожалуйста пишите в email (chunin{гаф}mail{тчк}ru), личка отключена!!!

    NedoPC group. ZX-Evolution, ATM Turbo 2+, Pentagon1024SL.
    [Предлагаю: ZXEvo, PAL coder, NeoGS, TS-FM, YM2149, Z80 и прочее]
    Все здесь: http://www.nedopc.com.
    Новости/поддержка/Faq: http://forum.nedopc.com.
    Раздача халявы: http://forum.nedopc.com/viewtopic.php?f=32&t=977

  8. #7

    По умолчанию

    Цитата Сообщение от CHRV
    Кстати параллельно стоит вопрос написания универсального набора процедур для работы с винтом (а точнее с контроллером винта). Если это дело застандартизировать. И запихать например в свободныем места ТРДОС или в свободные странички ПЗУ, то это было бы какоето развитие и серьезное подспорие программисту (ибо не надо изучать весь десяток разных контроллеров). Ну и хардварщикам проще - написал свои процедуры и весь софт будущий будет совместим.
    Мы с Алко и отчасти Vega задумались о таком шаге - если есть соображения тоже пишем их.
    Сейчас пытаюсь на это дело (в рамках ATM) Юру UKMS[z] подписать. Ибо он итак сейчас продолжает развивать ПЗУ ATM с эмулятором ВГ93 вплоть до 1024Кб (27080). Тут ему все карты в руки!
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  9. #8

    По умолчанию

    Кстати параллельно стоит вопрос написания универсального набора процедур для работы с винтом (а точнее с контроллером винта). Если это дело застандартизировать. И запихать например в свободныем места ТРДОС или в свободные странички ПЗУ, то это было бы какоето развитие и серьезное подспорие программисту (ибо не надо изучать весь десяток разных контроллеров). Ну и хардварщикам проще - написал свои процедуры и весь софт будущий будет совместим.
    Мы с Алко и отчасти Vega задумались о таком шаге - если есть соображения тоже пишем их

    видел предложения сделать чтение/запись сектора. но есть же ещё
    несколько десятков ATA-команд. не будет же драйвер таким объемным. сами команды стандартизированы и выносить в драйвер их коды и протокол работы с каждой нет никакого смысла, на разных контроллерах они одинаковы. пускай уже программа разбирается. предлагаю команды разбить на более мелкие операции. всего я насчитал 5 необходимых:

    1. ожидание нужного состояния (BUSY/DRQ) регистра статуса, например
    Код:
    wait:
     in a,(рег-р статуса)
     ld c,a
     and h
     cp l
     jr nz,wait
     in a,(рег-р ошибок)
     ld b,a
     ret
    регистр ошибок тоже читаем заодно, чтобы второй раз не обращаться к драйверу. эту же процедуру можно использовать просто для чтения статуса при HL=0

    2. запись блока регистров. HL - указатель на 7 байт значений регистров 1-7.
    можно и такой формат:
    <рег.1><знач.1><рег.2><знач.2>...<00>, но по времени экономия небольшая и больше потратим тактов на заполнение номеров регистров в передаваемом блоке. плюс бонус - при записи в последний (7-й) регистр валидного кода команды начинается выполнение команды.

    3. чтение блока регистров. аналогично. читаем блок из 7 регистров в (HL)

    4. передача сектора (512 байт) из контроллера в память (HL). считается, что DRQ=1,BUSY=0 (хотя, можно сюда же поставить вызов 1-й процедуры, но лучше вызвать её из программы, так как такие команды, как read multiple не требуют ожидания DRQ) для ATM и доработанного Nemo (защелка на A8) очень короткая программа
    Код:
    ld b,#00
    ld c,<порт данных>
    inir
    inir
    ret
    5. аналогично передача сектора из памяти в контроллер

    запись управляющего регистра и чтение регистра альт. статуса, ожидание INTRQ не реализовывать в драйвере, так как в NEMO нет второго, в ATM - первого. программы вполне можно писать без них, а без поддержки в драйвере придётся так и делать, программы будут совместимы со всеми контроллерами

    разместить точки входа лучше последовательно как 5 jr xxxx, 128 байт должно хватить на весь драйвер (или если моместить jr в середину, то адресуем и 256 байт). обязательно нужно стандартизировать, какие регистры драйвер может использовать для своих нужд, а какие не меняет

  10. #9

    По умолчанию

    Почитал предложения SMT, и это сподвигло меня на написание полноценного драйвера для работы с винтом, который может претендовать на стандарт. В фактически законченном на 80% виде улетел к CHRV - Роману Чунину. Буду ждать его рецензии.

  11. #10

    По умолчанию

    Цитата Сообщение от Vega
    Почитал предложения SMT, и это сподвигло меня на написание полноценного драйвера для работы с винтом, который может претендовать на стандарт. В фактически законченном на 80% виде улетел к CHRV - Роману Чунину. Буду ждать его рецензии.
    Теперь за тобой, как за первопроходцем в этой сфере - аналогичный драйвер для работы с CD как с IDE-устройством (плюс можно и как со звуковым)!
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

Страница 1 из 13 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •