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