|
|
Справочник программиста на персональном компьютере фирмы IBM. Дисковые накопители
|
|
Страница 1 из 41 Все диски, как гибкие, так и жесткие, организованы одинаковым образом. Поверхность диска разделена на ряд концентрических ко- лец, называемых дорожками, а дорожки делятся радиально на секто- ра. Например, стандартная дискета с диаметром 5 1/4 дюйма имеет 40 дорожек и в системе MS DOS 2.0 каждая дорожка разбита на 9 секторов (15 секторов на дискете емкостью 1.2 Мбайта и 17 на фиксированном диске). Размер сектора 512 байт, и 512 байт * 9 секторов * 40 дорожек * 2 стороны дает в итоге емкость дискеты 360K. Все типы дисков используют размер сектора 512 байт в MS DOS.
Раздел 1. Управление распределением диска. Чтение таблицы размещения файлов. Определение доступного дискового пространства. Получение/установка размера файла. Восстановление после ошибок, связанных с нехваткой пространства на диске. Раздел 2. Работа с каталогами диска. Чтение/изменение корневого каталога. Создание/удаление подкаталога. Чтение/изменение подкаталога. Получение/установка текущего каталога. Получение/установка времени и даты последнего доступа к файлу. Спрятанные и защищенные от записи файлы. Чтение/изменение метки тома. Раздел 3. Подготовка к работе с файлами. Установка/проверка накопителя по умолчанию. Создание/удаление файла. Открытие/закрытие файла. Переименование файла; изменение позиции файла в каталоге. Подготовка к файловым операциям. Анализ информации командной строки. Раздел 4. Чтение и запись файла. Программирование контроллера НГМД 765 и микросхемы пря- мого доступа к памяти 8237. Чтение/запись определенных секторов. Запись в последовательные файлы. Чтение из последовательных файлов. Запись в файлы прямого доступа. Чтение из файлов прямого доступа. Проверка данных после операций чтения/записи. Определение дисковых ошибок и восстановление после них.
Глава 5. Дисковые накопители. Раздел 1. Управление распределением диска. Файл распределен по такому количеству секторов, которое необ- ходимо, чтобы вместить его. Только несколько секторов на внешнем ободе дискеты зарезервированы для специальных нужд. Остальные доступны на основе правила "первый подошел - первого обслужат". Это означает, что по мере заполнения диска данными сектора посте- пенно заполняются по направлению к центру диска. При уничтожении файла сектора освобождаются и со временем свободные области ста- новятся разбросанными по диску, разбивая новые файлы и замедляя доступ к ним для чтения и записи. Фиксированные диски имеют некоторые специальные характеристи- ки. Часто они состоят из двух или более параллельных пластин, у каждой из которых есть две головки, чтобы читать обе их стороны. Все дорожки, расположенные на данном расстоянии от центра, вместе называются цилиндром. Поскольку головки всех дисков двигаются тандемом, то достигается экономия перемещений если заполнять все дорожки одного цилиндра, прежде чем переходить к следующему. Группы цилиндров могут относиться к различным операционным систе- мам. Программа DOS FDISK может разбивать фиксированный диск на несколько разделов (до четырех) разного размера. По этой причине параметры фиксированного диска могут сильно отличаться. Дисковые сектора определяются магнитной информацией, которую записывает утилита форматизации диска. Информация включает иден- тификационный номер каждого сектора. BIOS нумерует сектора 1-8, 1-9 или 1-15, в зависимости от емкости диска. Дорожки не марки- руются, вместо этого они определяются механически по смещению головки чтения/записи от внешнего края диска. Дорожки нумеруются от 0 до 39 для дискет диаметром 5 1/4 дюйма, а для дисков большей емкости их может быть больше. Дисковые функции BIOS обращаются к определенному сектору, указывая номера дорожки и сектора. Однако функции DOS рассматривают все сектора диска, как одну цепь, кото- рая нумеруется подряд, начиная от 0, поэтому каждый сектор имеет свой логический номер сектора. Для дискет первый сектор (дорожка 0, сектор 1) содержит запись начальной загрузки, которая является небольшой программой, позво- ляющей компьютеру считать с дискового накопителя остальные части MS DOS. Затем идут две копии таблицы размещения файлов, которые содержат информацию о распределении дискового пространства (вто- рая копия хранится из соображений безопасности). Затем идет кор- невой каталог, который содержит список файлов и ссылок на подка- талоги, а также указывает в каком месте диска они начинаются. Наконец, далее идут две небольшие программы DOS IBMBIO.COM и IBMDOS.COM, которые считываются при старте и обеспечивают компью-
тер возможностями необходимыми для нахождения и загрузки файла COMMAND.COM, который несомненно является основной частью опера- ционной системы.
Фиксированные диски имеют главную запись загрузки, которая содержит таблицу разделов, позволяющую разделить диск между нес- колькими операционными системами. Таблица разделов содержит ин- формацию о том, где на диске начинается раздел DOS, а также пер- вый сектор какого раздела содержит запись начальной загрузки. В остальном раздел организован так же, как и дискета.
|
|
-
Assembler,
COM в Ассемблере
В этой статье будет расказано о том, как использовать COM-интерфейсы в ваших программах, написанных на ассемблере. Не будет обсуждаться, что такое COM и как он применяется, но как его можно использовать, программируя на ассемблере. Здесь будет затронуто только применение существующих интерфейсов, а не реализация своих собственных, это будет рассмотрено в другой статье....
-
Assembler,
Пишем свой загрузочный сектор
Мы будем писать загрузочный сектор для трехдюймовой дискеты с файловой системой FAT12. После окончания начальной загрузки программа POST находит активное устройство и загружает с него короткую программу загрузки ОС - загрузочный сектор. Загрузочный сектор это первый физический сектор устройства, в данном случае дискеты и его размет равен всего ничего 512 байт. С помощью этих 512 байт кода мы должны найти основную часть загрузчика операционной системы, загрузить его в память и передать ему управл...
-
Assembler,
Программирование COM портов
Порт 3F8h. Этот порт соответствует регистру передавемых данных. Для передачи в порт 3F8h необходимо записать байт передаваемых данных. После приема данных от внешнего устройства они могут быть прочитаны из этого порта. В зависимости от состояния бита управляющего слова, выводимого в управ- ляющий регистр с адресом 3F8h, назначение порта 3F8h изменяться. Если этот бит равен 0,порт используется для записи передаваемых данных.Если же этот бит равен 1, порт используется для вывода з...
-
Assembler,
Переполнение буфера
В данной статье рассматривается пример использования переполнения стека под Windows 9x на платформе Intel x86. Изложение рассчитано на читателя, понимающего принципы работы персонального компьютера и более чем поверхностно знакомого с программированием....
-
Assembler,
Виртуальный драйвер для обслуживания аппаратных прерываний
Как уже отмечалось ранее, виртуальные драйверы служат прежде всего для виртуализации аппаратуры, то есть для предоставления одновременно выполняемым задачам возможности совместного использования устройств компьютера. Измерительная или управляющая аппаратура, подключаемая к компьютеру с целью создания автоматизированной установки, вряд ли будет эксплуатироваться в многозадачном режиме, однако использование для ее управления виртуального драйвера может заметно сократить программные издержки и умен...
-
Assembler,
Опыт дизассемблирования большой .com программы
В данной статье мне хочется рассказать о дизассемблировании большой программы (графического редактора). Не будучи знатоком ассемблера, не зная до сих пор, как использовать большинство возможностей своего дизассемблера (DisDoc 2.3), я все же решился написать эту статью, так как прекрасно помню, в какой кромешной тьме начинал заниматься дизассемблированием....
-
Assembler,
Оптимизация программ на Assembler
Несмотря на все более широкое распространение языков программирования и интегрированных сред программирования, оптимизация программ на ассемблере остается актуальной темой дискуссий для программистов. Можно упомянуть, например, форум програамистов, проведенный сетью PC MagNet, который стал ареной многочисленых "дуэлей": то один, то другой участник предлагал всем желающим решить небольшую, но интересную задачу программирования - и рассматривал присылаемые решения, ожидая, кто жее и как ...
-
Assembler,
Справочник программиста на персональном компьютере фирмы IBM. Приложения
Основной единицей хранения данных в компьютере является бит. В большинстве микрокомпьютеров восемь битов объединены в байт, при этом каждый бит байта может быть установлен или "включен" (= 1) или сброшен или "выключен" (= 0), допуская 256 разных вариантов. Таким образом, в одном байте можно представить 256 разных симво- лов (расширенный набор кодов ASCII) или целое число в диапазоне от 0 до 255. Хотя мы привыкли записывать эти числа в десятичной форме, они могут зап...
|
|
|