С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Теория и практика программирования
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
inquiring
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 10
1

Форматирование дорожки

12.01.2011, 13:06. Просмотров 1228. Ответов 9
Метки нет (Все метки)

Приветствую!
У меня возникла проблема даже не с самим форматированием, а с тем, что идет до него: перед форматирванием дорожки я устанавливаю тип диска и среду для форматирования. Все это делаю следующим образом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
  // Устанавливаем тип дискеты
  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, а это плохо, то есть ошибка значит.
В чем моя ошибка?
Заранее благодарна за ответ
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 13:06
Ответы с готовыми решениями:

Форматирование строки
Дана строка нужно отформатирвоать её по ширине... Т.е. сделать равным...

Автоматическое форматирование кода
Доброго времени суток. Загорелся я идеей сделать редактор с возможностью...

Форматирование дорожки гибкого диска FDD
Здравствуйте, пишу вам из-за проблемы связанной с форматированием дорожки...

RichEdit или RTF форматирование текста, а лучше HTML форматирование
Привет формучани. Подскажите бесплатный компонент который позволил бы...

Контроллер дорожки
Добрый день, предупреждаю сразу, я - неопытный новичок, раньше паял в...

9
nero_wolfe
0 / 0 / 1
Регистрация: 21.05.2010
Сообщений: 109
15.01.2011, 13:08 2
Проверь, какую ошибку выдает BIOS в AH. Вот возможные варианты (TechHelp):

01H bad command: invalid request to controller
02H bad address mark
03H write protect: attempted to write on write-protected diskette
04H sector ID bad or not found

06H diskette change line is active

08H DMA failure
09H DMA overrun: attempted to write across a 64K-byte boundary.

0cH Media type not available
10H bad CRC: Cyclical Redundancy Code does not agree with data
20H diskette controller failure
40H bad seek; requested track not found
80H time-out
0
inquiring
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 10
15.01.2011, 14:19  [ТС] 3
Ошибка 01h при установке типа дискеты
0fh при установке среды форматирования.
Работаю в виндосе. При работе в досе выдается только вторая ошибка.
0
nero_wolfe
0 / 0 / 1
Регистрация: 21.05.2010
Сообщений: 109
15.01.2011, 19:09 4
Не удивительно, что из Windows не работает... А если вы запустите два процесса, которые захотят отформатировать дискету?
Может быть, вы неправильно указываете количество дорожек или секторов?

Думаю, что стоит воспользоваться функциями 0x440d DOS (если, конечно, вы не создаете собственную ОС).
0
inquiring
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 10
15.01.2011, 19:48  [ТС] 5
Что значит два процесса одновременно? С количествами секторов и дорожек все верно )
По поводу рекомендуемой функции: мне нужно испоользовать int 13H по заданию.
0
nero_wolfe
0 / 0 / 1
Регистрация: 21.05.2010
Сообщений: 109
15.01.2011, 20:44 6
Я имел ввиду, что Windows эмулирует не все прерывания из-за многозадачности (в смысле того, что, быть может, несколько процессов в Windows могут попробовать отформатировать дискету), лучше это делать в DOS.

Вот что пишет TechHelp про функцию 0x17:

Expects:
AH
17h

AL
transfer rate: 00H = (reserved; don't use)
01H = 360K diskette in 360K drive
02H = 360K diskette in 1.2 MB drive
03H = 1.2 MB diskette in 1.2 MB drive
04H = 720K diskette in 720K drive

Notes: ■ This does NOT support 1.44 MB or 2.88 MB drives. Use
INT 13H 18H, since it is more flexible.

Вы пытаетесь отформатировать 1.44?
0
nero_wolfe
0 / 0 / 1
Регистрация: 21.05.2010
Сообщений: 109
15.01.2011, 20:49 7
Как я понял, для диска 1.44 достаточно установить:
CH - 0x50
CL - 0x12
DL - 0
0
inquiring
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 10
15.01.2011, 21:14  [ТС] 8
Да, форматирую 1,44
0
NickStaves
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
16.01.2011, 09:58 9
Что то это мне напоминает задания по программированию для 3 курса. Я прав?
0
inquiring
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 10
16.01.2011, 13:51  [ТС] 10
На самом деле, да, такое мы делали на третьем курсе. Но тогда я это писала на ассемблере, и проблем не было. А сейчас попросту возникает эта ошибка, и я не могу продвинуться дальше по заданию. Это малюсенькая часть от того, что нужно сделать.
0
16.01.2011, 13:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 13:51

Повреждены ли дорожки?
В этих местах были перепаяны конденсаторы я не совсем уверен ближайшие дорожки...

Фильтрация дорожки по дорожке
Здравствуйте. Есть аудио дорожка А (которая содержит в себе запись двух...

Звуковые дорожки в видео
Доброго времечка!Помогите решить проблему ! После скачивания видео в основном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru