Board.KolibriOS.org

Official KolibriOS board
It is currently Sat May 25, 2019 12:32 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Floppy
PostPosted: Wed Jan 04, 2006 5:23 pm 
В исходниках visopsys я обнаружил, что проверить не сменилась ли дискета можно с помощью опроса 7 бита порта 0x3F7 (бит 1 - дискета сменилась, 0 - не сменилась), что сделать намного проще чем проверить метку диска. Правда ли это? Если да, то когда сбрасывается этот бит - при перекалибровке или при сбросе контроллера дисковвода?

Правильно ли я понимаю, что лоток cdrom'a открывается только по сигналу ОС (или с согласия ОС), а не сам по себе, не уведомляя (возможно только в случае если диск остановлен) ОС о случившемся?

Не хочется допускать ситуации, когда ОС продолжает дописывать файл... уже на другую дискету...


Top
   
 Post subject:
PostPosted: Thu Jan 05, 2006 2:53 pm 
halyavin
Согласно Кулакову:
"Регистр цифрового ввода (Digital Input Register, сокращенно DIR), расположенный по адресу 3F7h, доступен только для считывания. Старший разряд этого регистра отображает состояние сигнала смены диска, а остальные зарезервированы".
Из этого объяснения нихрена не понятно, ведь это может означать и просто признак наличия дискеты. А вообще то проверять только лишь наличие дискеты неправильно. Так как может быть, что пользователь вынул и вставил ту же самую дискету. Тогда какой смысл обновлять все данные ФАТ, которые в кеше.
Когда изменяется этот бит тоже не понятно, так как нету подробного описания. Кулаков у себя, его не использует.

По этому же адресу располагается и регистр управления конфигурацией, который доступен только на запись. В нем задается скорость передачи данных.

Я при реализации драйвера сделал процедуру, контролирующую устаревание данных. Как только двигатель остановлен, происходит сброс флагов, которые индицируют правильность данных ФАТ в кеше.

Лоток CD открывается и закрывается в 2-х случаях:
1) Пользователь нажал кнопку.
2) Драйвер подал ATAPI команду.

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 2 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited