MS-DOS для программиста


MS-DOS для программиста

Операционная система MS-DOS имеет в своем составе мощные и удобные функции, с помощью которых программы могут выполнить большинство операций над файлами и каталогами. Все эти операции удобно выполнять с помощью соответствующих функций стандартных библиотек любых систем разработки программного обеспечения, таких как Borland C++ или Microsoft Visual C++.
Однако системным программистам часто требуются более развитые средства управления дисками и файловой системой, чем те, которые обеспечиваются стандартными библиотеками, функциями MS-DOS, и даже функциями BIOS. В отдельных сложных случаях приходится прибегать к недокументированным прерываниям MS-DOS или использовать недокументированные структуры данных, рискуя потерять совместимость разрабатываемой программы с будущими версиями MS-DOS. Например, создание систем защиты от несанкционированного копирования программного обеспечения часто предполагает активное использование недокументированных возможностей MS-DOS.

Введение
Работа с дисками на физическом уровне
Логическая структура диска в MS-DOS
Файловая система DOS
Использование функций IOCTL
Защита программ от несанкционированного копирования
Настройка и оптимизация MS-DOS

Операционная система MSDOS

В настоящее время можно найти уже довольно много книг, посвященных операционной системе MS-DOS. Большинство из них, однако, ограничиваются описанием MS-DOS на уровне пользователя или, в крайнем случае, на уровне прикладного программиста, не затрагивая деталей и тонкостей работы самой операционной системы. Этот подход, безусловно, правомерен и оправдан - пользователей ПЭВМ гораздо больше, чем системных программистов, а более глубокая информация предоставляется в руководствах, поставляемых фирмами и специальных заказных пособиях.
И все же потребность в, казалось бы, специальной информации у нас огромна. Наш программист часто оказывается в очень сложной ситуации: не имея доступа к зарубежной оригинальной литературе, он вынужден разрабатывать специальное программное обеспечение, написание которого требует глубокого знания операционной системы MS-DOS и аппаратных особенностей IBM PC. Можно с уверенностью сказать, что в условиях информационного голода, отсутствия фирменного технического обслуживания и необходимости обеспечения работы самой экзотической аппаратуры каждый прикладной программист вынужден быть немножко системным программистом, знать и уметь больше, чем его западный коллега.
Как известно, спрос рождает предложение, и уже сейчас появились книги под названием "Системное программирование в MS-DOS", в которых описываются, как правило, прерывания MS-DOS и приводятся примеры работы с ними. Такой подход нам кажется полезным только на начальном этапе изучения программирования в MS-DOS.
При написании настоящей книги авторы предполагали, что с прерываниями DOS и BIOS вы уже знакомы достаточно хорошо, либо способны разобраться самостоятельно - для этого существуют как специальные справочные системы типа TechHelp (которая сейчас имеется и на русском языке) или NortonGuide, так и контекстные справочники, являющиеся элементом интегрированных сред программирования (например, QuickAdvisor корпорации Microsoft или справочная система Thelp фирмы Borland International).
Авторы настоящего руководства стремились прежде всего осветить те вопросы, которые практически невозможно найти нигде, кроме как в документации, поставляемой фирмами. В соответствии с этим общеизвестные вещи изложены более кратко. В книге описана, например, структура управляющих блоков MS-DOS, показано, как написать собственный драйвер устройства или правильно работающую резидентную программу. Книга рассчитана на хорошего прикладного программиста, имеющего в своем распоряжении широко распространенную справочную информацию по MS-DOS, который, однако, пришел к необходимости еще более углубить свои знания.
Предполагается, что у вас имеется в распоряжении компьютер, на котором вы в процессе изучения книги можете опробовать приводимые нами примеры и проводить свои собственные исследования.
Все программы транслировались в среде Microsoft Quick C версий 2.01 и 2.5. На прилагаемой дискете находятся исходные тексты программ и некоторые утилиты, описанные в настоящем руководстве. Примеры составлены так, чтобы вы могли без значительных переделок использовать их в своих разработках.
Для тех, кто уже исчерпал документированные особенности MS-DOS, приводятся сведения о наиболее полезных недокументированных прерываниях и управляющих блоках MS-DOS. Изучение недокументированных прерываний и структур данных позволит вам глубже понять внутреннее устройство операционной системы, извлечь такую информацию о состоянии системы, которую трудно, если вообще возможно, получить "законным" способом.

Внутренняя организация MSDOS
Операционная система MSDOS

Команды DOS. Справочное пособие

Команда APPEND
Позволяет программам открывать файлы данных в заданных ката логах (которые называются присоединенными каталогами), как если бы они находились в текущем каталоге.
APPEND [[диск:]маршрут[;...]]            [/X[:ON :OFF]][/PATH:ON /PATH:OFF] [/E]
Не пользуйтесь этой командой при выполнении Windows. Для вывода списка каталогов наберите команду APPEND без параметров. Для отмены присоединенных каталогов пользуйтесь командой APPEND ;.

Команда APPEND
Команда XCOPY

Операционная система Microsoft Windows 3.1 для программиста -том 1

Операционная система Microsoft Windows по своим возможностям не только намного превосходит MS-DOS, но и даже просто не сравнима с MS-DOS. Удобный, хорошо продуманный, а главное, стандартизованный для всех программ Windows пользовательский интерфейс интуитивно ясен и удобен для изучения. Поэтому после появления Microsoft Windows версии 3.0 всего за несколько лет произошла настоящая революция прикладного программного обеспечения персональных компьютеров - практически все основные программные продукты были переделаны для работы в среде Windows. При этом они приобрели свойства и возможности, недостижимые ранее из-за ограничений, накладываемых операционной системой MS-DOS.
Но к сожалению, программирование для Windows - гораздо более трудоемкое и кропотливое занятие, чем программирование для MS-DOS. Это связано, в первую очередь, с обилием новых возможностей. Для создания пользовательского интерфейса и выполнения других задач вам предлагается набор из более чем тысячи функций! Если же вы собираетесь работать с мультимедиа или другими дополнительными подсистемами Windows, набор функций еще больше расширяется.

Основы Microsoft Windows
Приложение OEM2ANSI

Операционная система Microsoft Windows 3.1 для программиста -том 2

Во второй части мы продолжим изучение программного интерфейса Windows. Будут рассмотрены ресурсы, стандартные (предопределенные) классы окон, а также диалоговые панели.
Первая глава посвящена ресурсам. Ресурсы - это данные, которые добавляются в файл загрузочного модуля приложения Windows и могут при необходимости загружаться в оперативную память. Расположение данных в ресурсах приложения позволяет достичь более эффективного использования памяти. Программы MS-DOS были вынуждены загружать, например, строки сообщений, в оперативную память или реализовывать собственную логику для их динамической загрузки из файлов. Для приложений Windows существует более элегантный способ, исключающий перегрузку памяти ненужными данными и избавляющий программиста от необходимости динамической загрузки данных из файлов.

Ресурсы
Приложение EDIT
Приложение DLGCOMBO
Статьи

*