PDA

Просмотр полной версии : работа с образами HDD в Unreal Speccy



elf
25.03.2005, 13:39
Народ, кто-нибудь в курсе - как настроить работу HDD под Is-dos в Unreal`e? Параметры в анреале выставляются следующие: profi1024, Nemo-контроллер, ну и соответственно какое-либо название образа. Кста, еще один вопрос. При создании образа HDD создается файлец с потрясающим большим размером в 0 байт. Так должно быть или это глюк проги?

SMT
25.03.2005, 19:07
размер такой и должен быть, пока не было записи в сектора. образ будет расти по мере записи, пока не достигнет номинального размера. насчет is-dos - скорее всего, глюк эмуляции. если не трудно, расскажи вкратце, как использовать hdd в is-dos, какие файлы нужны и где их брать

psb
25.03.2005, 20:27
интересно, в эмуле пойдет плеер вавов с винта? надо бы как-нить..попробовать ;) тока вот 98 у меня... :/

SMT
26.03.2005, 02:57
попытался сам в is-dos поработать... там драйвер читает командой #21, которая в новых стандартах отмечена как устаревшая. я её тоже добавил, но всплыла другая ерунда: если диск забит разными не is-dos данными (у меня был образ с несколькими десятками smuc-trd'шников), то при переходе на диск is-dos пишет error #nn и делает di-halt. поэтому вопросы:
1. чем разбить и отформатировать винт в is-dos?
2. как запустить программу с параметрами
3. как во встроенном редакторе сохранить текст и выйти обратно в оболочку?

elf
27.03.2005, 13:57
Скачал дрова HDD+настройщик для АТМ (под исдос, естественно), после некоторых мытарств все пошло (в эмуле с настройками АТМ). Каевские же дрова все так же упорно отказываются работать. Кстати насчет атмовских, винт-образ определяется, форматируется, вобщем работает, однако, при каждом обращении к нему выскакивает надпись "вставьте диск" ;-) - нажимаешь на ентер и все продолжается. Насколько я понял сию надпись выбрасывает сам драйвер.
1. в исдосе винт как таковой не форматируется, однако на нем создаются устройства нужного размера программой create.com. Вначале же нужно настроить его программой ide_tune.
2. это какую программу необходимо запускать с параметрами?
3. если имеется ввиду редактор "edit.com", то клавиши shift+пробел, затем "e".

elf
27.03.2005, 14:01
Такой еще вопрос. Эмуль сразу катает на реальный диск или все дело сохраняется в кеше и лишь при выходе из программы происходит сохранение?

SMT
27.03.2005, 15:01
Каевские же дрова все так же упорно отказываются работать эмуляции hdd делалась по спецификации ATA-5. пока временно можешь исправить в драйвере команду #21 (чтение без проверки crc и retry) на #20 - функционально то же самое. в следующей версии будет поддержка и устаревшей команды #21.


это какую программу необходимо запускать с параметрамилюбую. ту же ide_tune. помню, раньше я как-то запускал программы с параметрами.


Эмуль сразу катает на реальный диск или все дело сохраняется в кеше и лишь при выходе из программы происходит сохранение?эмуль сразу катает в кеш ОС. если эмулятор вылетит, результат запишется на диск, а если вылетит windows или reset, то не запишется. поддержана ATA-команда #E7 (flush cache) - делает физическую запись из кеша на винт

Blade
27.03.2005, 22:31
Цитата:
Сообщение от elf
Каевские же дрова все так же упорно отказываются работать

эмуляции hdd делалась по спецификации ATA-5. пока временно можешь исправить в драйвере команду #21 (чтение без проверки crc и retry) на #20 - функционально то же самое. в следующей версии будет поддержка и устаревшей команды #21.

Еще по окончании чтения регистры сектора/головы/цилинлра должны указывать на последний прочитанный сектор. А в эмуляторе они указывают на следующий сектор.

elf
28.03.2005, 09:53
Заметил следующую тенденцию в работе любых драйверов (атм,nemo) - они не могут обратиться к нулевой дорожке hdd-образа. Вполне вероятно, что ось пытается найти там некую полезную инфу для себя, скажем - системную дату. При этом каевский висит напрочь, а АТМвский начинает более-менее работать, если только утройство начинается с дорожки > 0. И такой вопрос - при работе с образами FDD (trd и т.д.) реальная запись в файл осуществляется только при выходе из эмуля? А быстрая запись в уже открытый файл не сделана или есть какие-то настройки, которые я упустил?

SMT
28.03.2005, 18:30
Еще по окончании чтения регистры сектора/головы/цилинлра должны указывать на последний прочитанный сектор. А в эмуляторе они указывают на следующий секторэто когда произошла ошибка чтения. если операция успешна (а на образе так и есть), то состояние регистров стандартом не определено и может для разных моделей винтов отличаться


И такой вопрос - при работе с образами FDD (trd и т.д.) реальная запись в файл осуществляется только при выходе из эмуля?только на выходе, смене диска или нажатии F2/F9

Blade
28.03.2005, 18:52
это когда произошла ошибка чтения. если операция успешна (а на образе так и есть), то состояние регистров стандартом не определено и может для разных моделей винтов отличаться


Вот что написано в старом стандарте
--------
9.13 Read Sector(s)
/Чтение сектора(ов)/

Эта команда читает от 1 до 256 секторов. Количество секто-
ров определяется в Регистре Счетчика Секторов. Hоль соответ-
ствует 256 секторам. Передача начинается с сектора, записанного
в Регистре Hомера Сектора. См. 10.1 для определения протокола
обмена сигналами DRQ, IRQ и BSY при передаче данных.
Если головка не находится на нужной дорожке, то она уста-
навливается туда. После установки на требуемую дорожку накопи-
тель один раз ищет идентификатор (ID).
Если повторения запрещены и между двумя индексными импуль-
сами требуемый индетификатор не найдет, то выдается ошибка
"Идентификатор не найден" (ID Not Found).
Если повторения разрешены, то число попыток поиска иденти-
фикатора до регистрации ошибки зависит от конкретной фирмы про-
изводителя и модели накопителя.
После чтения правильного идентификатора ищется адресный
маркер. Если маркер не найден, то выдается ошибка "Hе найден
адресный маркер" (Address Mark Not Found).
После нахождения адресного маркера читается поле данных в
буфер секторов. Если при чтении встречались ошибки, то устанав-
ливаются соответствующие биты ошибок. Затем устанавливается DRQ
и генерируется прерывание.
Бит DRQ всегда устанавливается независимо от того, была
ошибка или нет.
После завершения команды Блок Регистров Команды содержит
цилиндр, головку и номер сектора последнего прочитанного секто-
ра.
Если происходит ошибка, то чтение завершается в том секто-
ре, где произошла ошибка и Блок Регистров Команды содержит ци-
линдр, головку и сектор, где произошла ошибка.
Ошибочные данные остаются в буфере секторов.
------------

Драйвер ide+3.blk читает регистр сектора в некоторых ситуациях
и считает что там последний прочитанный сектор.

SMT
28.03.2005, 20:32
версия стандарта и дата публикации? я смотрел Working Draft T13 1321D Revision 3 29 February 2000

SMT
28.03.2005, 20:33
а глюков, пока я делал эмуляцию, нашёл в программах немеряно. начиная от ATM BIOS и до современных поделок. такое ощущение, что на современных винтах они не пойдут

elf
29.03.2005, 16:01
Пробовал подставлять команду #20 заместо #21 - получилось следующее: все, что есть на винте читается, однако при попытке записать что-либо - система зависает. Тогда я зделал след. - заменил команду записи #31 на #30 - вроде бы запись пошла, но тут проявился интересный глюк. Если на образ пишешь за раз один, два файла - все проходит без ошибок, но файлы на самом деле на винте не оказываются. Отмечаешь файлов побольше - все получается. В чем дело?

Blade
29.03.2005, 18:49
версия стандарта и дата публикации? я смотрел Working Draft T13 1321D Revision 3 29 February 2000

X3T10 791D Revision 4c 1994

SMT
30.03.2005, 18:22
X3T10 791D Revision 4c 1994
скачал, это самый первый опубликованный стандарт ATA-1. он не противоречит более поздним и в следующей версии 0.29 я добавлю такую фичу ради совместимости с ide+3.blk