Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Форматирование дорожки


Автор: Inquiring 4.11.2004, 13:22
Приветствую!
У меня возникла проблема даже не с самим форматированием, а с тем, что идет до него: перед форматирванием дорожки я устанавливаю тип диска и среду для форматирования. Все это делаю следующим образом

// Устанавливаем тип дискеты
inregs.h.ah = 0x17;
inregs.h.al = 3; // дискета высокой плотности
// в НГМД высокой плотности
inregs.h.dl = 0;
int86(0x13, &inregs, &outregs);

// Устанавливаем среду для форматирования
inregs.h.ah = 0x18;
inregs.h.ch = TRK;
inregs.h.cl = dpt_ptr->eot;
inregs.h.dl = 0;
int86(0x13, &inregs, &outregs);

Собственно проблема: При выполнении функции int86(0x13, &inregs, &outregs) у меня outregs.x.cflag устанавливается в 1, а это плохо, то есть ошибка значит.
В чем моя ошибка?
Заранее благодарна за ответsmile
Писать можно сюда postmaster1982@mail.ru

Автор: chipset 4.11.2004, 13:44
Модератор: тема перемещена в Системное программирование

Автор: oleg1973 4.11.2004, 17:42
а ты не виндосе пробовал это делать?

Автор: Inquiring 5.11.2004, 16:44
В нем, именно в нем

Автор: shedon 6.11.2004, 23:36
Цитата(Inquiring @ 5.11.2004, 13:44)
В нем, именно в нем

Цитата(Inquiring @ 4.11.2004, 10:22)
В чем моя ошибка?

Ошибка в том что все программы в винде работают в защищённом режиме(user-mode), в котором запрещены выполнения опр. операций, таких как прямой доступ к портам ввода/вывода, прямой доступ к физ. памяти, выполнение опр. прерываний. По-этому винда не разрешает твоей проге выполнение этого прерывания, если тебе надо чтобы прога работала под Win95/98, то можно дать твей проге доступ исправив таблицу IDT/GDT. А если по Win 2k/XP, то боюсь тебе придйтся перписывать свою прогу под какой нить 32 битный компилятор.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)