Парочка вопросов;)
ZXNet эхоконференция «real.speccy»
От Fyodor Odegov → Кому All 21.08.2001
Интересуют следующие вопросы по программированию дисковых накопителей:)
1) Как определить, вставлен ли физический диск в дисковод?
2) Как определить отформатирован ли диск под TR-DOS или нет? Здесь интересует
как информация применительно к дискеткам, так и к образам на винте:)
3) Как определить (програмно;)) установлена ли на дискете защита от записи?
Очень приветствуются примеры процедур на эти темы...
Желаю удачи !
С уважением Fyodor Odegov aka FION.
От Aleksandr Majorov → Кому All 22.08.2001
21 Авг 01 21:33, Fyodor Odegov -> All:
FO> Интеpесyют следyющие вопpосы по пpогpаммиpованию дисковых
FO> накопителей:)
FO> 1) Как опpеделить, вставлен ли физический диск в дисковод?
Попытаться обpатиться к дискy ;)
FO> 2) Как опpеделить отфоpматиpован ли диск под TR-DOS или нет? Здесь
FO> интеpесyет как инфоpмация пpименительно к дискеткам, так и к обpазам
FO> на винте:)
Читаем 8-й сектоp 0-й доpожки и анализиpyем:
длина сектоpа = 256 байт, по смещению #E7 должен
быть код #10 - идентификатоp пpинадлежности диска к ТР-ДОС
Hy и в нагpyзкy пpовеpяем байты #E1 - #FC на содеpжимое.
FO> 3) Как опpеделить (пpогpамно;)) yстановлена ли на дискете
FO> защита от записи?
Обpащаемся к дискy, а затем читаем содеpжимое
pегистpа состояния ВГ'шки
FO> Очень пpиветствyются пpимеpы пpоцедyp на эти темы...
Пpямо сейчас вpяд-ли найдy сыpцы...
ПОпозже как-нить...
Aleksandr
От Dmitriy Nesmachny → Кому All 23.08.2001
Вторник 21 Авг 2001 21:33:19, Fyodor Odegov -> All:
FO> Интересуют следующие вопросы по программированию дисковых
FO> накопителей:)
FO> 1) Как определить, вставлен ли физический диск в
FO> дисковод?
Попробовать что нибудь прочитать...
FO> 2) Как определить отформатирован ли диск под TR-DOS или
FO> нет? Здесь интересует
FO> как информация применительно к дискеткам, так и к образам
FO> на винте:)
Байт в 9 секторе 0-ой дороги по смещению #E7 равен #10 - значит TRDOS.
FO> 3) Как определить (програмно;)) установлена ли на дискете
FO> защита от записи?
Hу... Прочитать бит 6 регистра состояния после выполнения команд
позиционирования/записи.
FO> Очень приветствуются примеры процедур на эти темы...
Hу, сегодня точно не полезу искать, напомни в мыле - посмотрю в своих
исходниках...
P.S. найди справочник по TRDOS Ларченко и Родионова: там почти все есть...
С уважением, Dmitriy.
От Kirill Frolov → Кому All 24.08.2001
21 Aug 01 21:33, Fyodor Odegov wrote to All:
KF> 0) Как определить имеется-ли дисковод?
Сделать команду СБРОС контроллеру. Если сигнал TRK0 отсутствует --
дисковода нет или он неисправен.
Потом дать команду ШАГ ВПЕРёД, если TRK0 присутствует -- дисковода нет или
неисправен, иначе
есть. Потом можно такое проделать для всех 4-х дисководов и проверить
положение головки в
каждом после манипуляций с любым другим. Таким образом можно узнать сколько
всего в системе
дисководов (0..4), и сколько поддерживается контроллером (1/2/4).
FO> 1) Как определить, вставлен ли физический диск в дисковод?
if (индекса нет) -- вставлен;
elseif (защита есть) -- вставлен; // для 3.5 дюймовых может не
работать.
elseif (раскрутить и индекс меняется) -- вставлен; // работает всегда
и везде
else не вставлен;
FO> 2) Как определить отформатирован ли диск под TR-DOS или нет?
Hа каждой дорожке имеются сектора с номерами 1..0x10 и длиной 256 байт.
FO> Здесь интересует как информация применительно к дискеткам, так и к
FO> образам на винте:) 3) Как определить (програмно;)) установлена ли на
FO> дискете защита от записи?
Если для эмулируемых через 3д13 -- только попытаться записать.
Hе знаю только как отличить 3.5 и 5.25 дисководы :-(
От Ilya Vinogradov → Кому All 25.08.2001
Вот Kirill Frolov пишет к Fyodor Odegov и я непрочь вмешаться :
KF> Hе знаю только как отличить 3.5 и 5.25 дисководы :-(
По скорости разгона двигателя. То есть нужно сделать то что ты сказал:
KF> elseif (раскрутить и индекс меняется) -- вставлен; //
KF> работает всегда и везде
Hо при этом время на раскрутку замерить.
Kirill, не скучай! SiRiL/4D.