Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать - вставлен ли CD (на ассемблере)?

573
07 ноября 2001 года
ajn
13 / / 20.12.1999
Помогите пожалуйста!

Сам я предпочитаю Дельфи
(за простоту и быстроту программирования).
Но ассемблер уважаю по заслугам.

И ОЧЕНЬ уж мне приспичило вставить процедуру
проверки - вставлен ли CD - прописать на ассемблере.

Если кто знает, напишите пожалйста.
Благодарен зааранее.
Аноним
Вот что-то типа того, написанного на TP7_0. Вроде под W98 работает. Поскольку писал это в два ночи, заранее извиняюсь за возможные казусы при работе этого "шедевра"

Var
{буфер для функции получения имени файла прав собственности}
buferarray[0..37] of Byte;
{Код возвращаемой этой функцией ошибки}
ErrorWord;
Begin
Asm
{Определяем первое доступное устройство CD-ROM}
mov ax,1500h
int 2Fh
{Теперь его номер находится в CX}
{Используем первую попавшуюся функцию, выдающую код ошибки. Больше нам от нее ничего и не надо}
mov ax,1502h
mov bx,Seg bufer[0]
mov es,bx
mov di,offset bufer[0]
int 2Fh
mov error,ax
End;
{А теперь поэксперементирую сам. Когда диск вставлен, то на моем компе Error=5378 когда вынут
Error=30. На твоем может быть будет по другому. Скорее всего помимо информации о "вставленности" этот код несет еще какую-то полезную нагрузку. Сам покопайся в списке кодов ошибок и путем ANDов ORов и т.д. выдели нужную часть ошибки.}
WriteLn(Error);
End.

{P.S. Если работаешь в DOS, загрузи драйвер MSCDEX. Под виндами он грузится автоиатически. Правда под NT возможно вышеописанный фрагмент работать не будет}
573
12 ноября 2001 года
ajn
13 / / 20.12.1999
Вот спасибо, мил человек!
Жалко, что Анонимус...
Стоит регистрироваться.

Это безусловно лучше, чем ничего, но..
увы...
Delphi 5 не понимает операнд "Seg",
(пишет, что тип Undeclared)

А мой грёбанный Милленниум похоже
на дух не переваривает "int 2Fh".
В лучшем случае Синенький экранчик с крякозябрами, в худшем - Ctrl+Alt+Del не реагирует...

Ну, не знаю, может причины я и не точно определил (я ведь не волшебник... только учусь), но не работает.
Жаль.
Всё равно спасибо.

Может кто ещё подскажет?..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог