IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Парковка, перед выключением
Alexn
сообщение 19.11.2004 11:29
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Мужской

Репутация: -  0  +


Можно ли на Паскале написать программу парковки головки диска перед выключением. И если можно то как (подскажите идею).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
xds
сообщение 26.11.2004 11:36
Сообщение #2


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


От завершённости её отделяет отсутствие проверки на наличие нескольких устройств. Полнее будет так:

program Park;

{ Типы дисководов }
const
 dtNone        = 0; { нет устройства с указанным идентификатором }
 dtNonSenseFDD = 1; { FDD, не чувствительный к смене носителя }
 dtSenseFDD    = 2; { FDD, чувствительный к смене носителя }
 dtHDD         = 3; { HDD }

{ Определение типа дисковода }
function GetDriveType(DriveId: Byte): Byte; assembler;
asm
 mov ah,15h
 mov dl,DriveId
 int 13h
 mov al,ah
end;

{ Парковка HDD }
function ParkHDD(DriveId: Byte): Boolean; assembler;
asm
 mov ah,19h
 mov dl,DriveId
 int 13h
 mov al,0
 jc @Exit
 inc ax
@Exit:
end;

var
 Id: Byte;

begin
 for Id := $80 to $83 do
   if GetDriveType(Id) = dtHDD then
     begin
       Write('HDD', Id - $80, ': ');
       if ParkHDD(Id) then
         Writeln('парковка головок выполнена успешно.')
       else
         Writeln('ошибка парковки головок.');
     end;
end.



--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Alexn   Парковка   19.11.2004 11:29
volvo   Alexn :blink: А зачем? Современные диски имеют ...   19.11.2004 12:04
Alexn   я собрал старый 286 (DOS 6.22, windows 2.03 и 1 ве...   23.11.2004 7:24
Altair   windows 1 версии? Сколько весит? Можно мне на мыл...   23.11.2004 14:56
volvo   Oleg_Z Смотри здесь. Win103.img_sfx.exe (Размер -...   23.11.2004 15:09
Altair   Спасибо. Посмотрю что это за зверюшка дяди Билли :...   23.11.2004 15:13
Alexn   Я на int21.narod.ru взял win1. Там еще много рарит...   24.11.2004 12:31
volvo   Alexn Если нужно, чтобы программа только парковал...   24.11.2004 12:48
Alexn   Спасибо. Если не трудно, еще пару вопросов. int 1...   25.11.2004 8:15
xds   Прерывание int 13h - дисковые службы BIOS. Служба ...   25.11.2004 11:17
Alexn   А чтобы припарковать я перед if not просто долже...   25.11.2004 12:34
volvo   Alexn Ничего писать не нужно, при выполнении этой...   25.11.2004 13:05
Alexn   Т.е., это законченная пргограмма парковки с провер...   26.11.2004 9:54
xds   От завершённости её отделяет отсутствие проверки н...   26.11.2004 11:36
Alexn   Что может заставить головку сдвинуться? Например е...   26.11.2004 11:54
xds   Вставь ReadKey - гарантированно ничего не двинется...   27.11.2004 3:14
Alexn   Как я узнаю, установлен диковый кэш и отложенная з...   27.11.2004 11:21
volvo   Alexn Объясни мне, почему нельзя взять файл PARK....   27.11.2004 11:36
Alexn   Чтобы знать, как все это работает. У меня эта...   30.11.2004 12:32
Alexn   Да, у меня 2 флопа 3.5 и 5.25. Может это тоже влия...   30.11.2004 12:35
volvo   Нет, навряд ли он большой - дело скорее всего в д...   30.11.2004 12:51
xds   DOS тут ни при чём: int 13h - это функции BIOS. На...   1.12.2004 1:58


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 29.07.2025 0:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"