|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.05.2011, 16:01 | #1 | |
Новичок
Джуниор
Регистрация: 25.04.2011
Сообщений: 2
|
Проверка на существование диска
Пожалуйста, помогите с решением такой задачки:
Пользователь вводит с клавиатуры букву (например, D). Необходимо проверить, существует ли такой диск в системе и вывести соотв. сообщение. Код:
Цитата:
|
|
26.05.2011, 16:43 | #2 |
Пользователь
Регистрация: 25.05.2011
Сообщений: 13
|
II. Средство работы с диском.
Все возможности операционной системы MS DOS для работы с дискетами и жесткими дисками основываются на прерывании 1ЗН. Прерывание 13Н дает весьма обширный сервис работы с дисками на физическом уровне. Среди функций, выполняемых данным прерыванием, - дать статус ошибки последней дисковой операции, проверить сектор, форматировать дорожку, дать параметры диска и т.д. Мы разберем лишь чтение-запись с помощью данного прерывания, а также форматирование дорожки диска. Подробнее о нем можно прочесть, например, в [13,17] или в нашем справочнике (см. Приложение 8). Чтение. - Вход: АН-02, DL - номер диска (0 - А, 1 - В; для твердого 80Н, для второго-81Н) DH - номер головки, AL - число читаемых секторов, ES:BX - буфер для чтения, СХ - номер сектора и цилиндра: первые 6 бит - номер сек- тора, остальные - номер цилиндра, причем 8 и 7 бит следует поставить перед другими (8-10,7-9). 0:0078Н - адрес таблицы параметров дискеты (Рис. 14.10). Выход: если взведен флаг С, то код ошибки в АН. Запись. Аналогична чтению. Форматирование дорожки. Вход: АН-05, Глава 14, Структура информации на диске 245 AL - число секторов на дорожке или коэффициент чередования в случае жесткого диска, СХ - номер сектора и цилиндра (так же, как для чтения-записи), DL - номер устройства, DH - номер головки, ES:BX - буфер с информацией для разметки. Для дискеты это последовательность четырехбайтных величин: 1-й - номер дорожки, 2-й - номер головки, 3-й - номер сектора, 4-й - длина сектора (0-128,1- 256,2 - 512, 3 -1024). Для жесткого диска буфер состоит из пар байт: 1-й либо 0 -разметить как обычный сектор, либо 80Н - разметить как дефектный сектор, 2-й номер сектора. Для некоторых моделей контролеров жест- ких дисков содержимое буфера игнорируется.Меняя содержимое буфера, можно произвести нестандартное форматирование.Например, изменить нумерацию секторов на дорожке. В некоторых случаях изменения буфера недостаточно - требуется изменить содержимое таблицы параметров дис- кеты или жесткого диска. Такая ситуация может возникнуть при форматировании с меньшим числом секторов, чем предусматривает дисковод. Если дорожка отформатирована нестандартно, то для чтения-записи на нее также необходимо менять таблицу параметров. Выход: АН - код ошибки, если флаг С установлен. Возможна ситуация, когда BIOS не поддерживает форматирование жесткого диска. В этом случае в АН будет возвращена ошибка 1 - нераспознанная команда, и Вам не останется ничего иного, как форматировать посредством обращения к контролеру жесткого диска. Assembler. Учебный курс[Пирогов В.Ю.] ----попробуй эту функцию, может помежет? |
26.05.2011, 22:49 | #3 |
Новичок
Джуниор
Регистрация: 25.04.2011
Сообщений: 2
|
Это всё прекрасно, но главный вопрос в том, как интерпретировать символ, полученный с клавиатуры в номер диска (0=А, 1=В и т.д.)
|
27.05.2011, 07:53 | #4 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 325
|
IvanPo, если ты ввёл маленькую латинскую букву - sub al,61h. Если большую - sub al,41h.
Только и всего. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверка на существование инфы в ячейках | imbamarik | Microsoft Office Excel | 21 | 11.03.2011 13:14 |
Проверка существование Email адреса на сервере | Бутаков_Сергей | Работа с сетью в Delphi | 7 | 29.12.2010 01:55 |
Проверка на существование файлов | Vohakisa | Помощь студентам | 5 | 01.06.2010 16:40 |
проверка на существование папки | D_E_N | Общие вопросы Delphi | 3 | 05.10.2009 22:48 |
Проверка на существование | Lonix | Общие вопросы Delphi | 2 | 19.03.2007 19:42 |