Парочка вопросов;)

ZXNet эхоконференция «real.speccy»

От Fyodor Odegov Кому All 21.08.2001

Привет, All !

Интересуют следующие вопросы по программированию дисковых накопителей:)

1) Как определить, вставлен ли физический диск в дисковод?
2) Как определить отформатирован ли диск под TR-DOS или нет? Здесь интересует
как информация применительно к дискеткам, так и к образам на винте:)
3) Как определить (програмно;)) установлена ли на дискете защита от записи?

Очень приветствуются примеры процедур на эти темы...

Желаю удачи !
С уважением Fyodor Odegov aka FION.

От Aleksandr Majorov Кому All 22.08.2001

Пpивет Fyodor!

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

Привет, Fyodor!

Вторник 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

Hемедленно нажми на RESET, Fyodor!

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 !

Вот Kirill Frolov пишет к Fyodor Odegov и я непрочь вмешаться :

KF> Hе знаю только как отличить 3.5 и 5.25 дисководы :-(

По скорости разгона двигателя. То есть нужно сделать то что ты сказал:

KF> elseif (раскрутить и индекс меняется) -- вставлен; //
KF> работает всегда и везде

Hо при этом время на раскрутку замерить.

Kirill, не скучай! SiRiL/4D.