- •Глава 1......................................................... 9
- •Глава 2......................................................... 14
- •Глава 3 ........................................................ 20
- •Глава 4 ........................................................ 26
- •Глава 5 ........................................................ 33
- •Глава 6 ........................................................ 42
- •Глава 7 ........................................................ 83
- •Глава 8 ........................................................ 95
- •Глава 9 ........................................................ 118
- •Глава 10 ....................................................... 141
- •Глава 11 ....................................................... 152
- •Глава 12 ....................................................... 180
- •Глава 1 знакомит с концепцией интерактивных,
- •Глава 10 знакомит с системами меню и содержит ряд функций,
- •Глава 11 знакомит с основами реализации резидентных
- •Глава 12 на примерах демонстрирует, как можно использовать
- •Глава 1
- •Глава 2
- •Глава 3
- •Раздел 4 начинает описание библиотеки функций Турбо Си.
- •Глава 4
- •Глава 5
- •Глава 7
- •Глава 8
- •Глава 9
- •Глава 10
- •Глава 12
Глава 12 ....................................................... 180
Построение резидентных программ ............................... 180
Пример TSR-программы - "часы" ................................. 180
Превращение программы в резидентную ........................... 180
Прерывание по делению на ноль ................................. 181
Выполнение обработчика прерываний от таймера .................. 182
Связывание старого вектора прерывания по таймеру .............. 182
Сохранение и переключение контекста стека ..................... 182
Вычисление времени ............................................ 182
Программы TSR-драйвера ........................................ 185
Действия трех программных модулей ............................. 186
Размер TSR-программы .......................................... 186
Присвоение "горячего ключа" ................................... 186
Сигнатура TSR-программы ....................................... 188
Коммуникационные прерывания ................................... 188
Подготовка к резидентности .................................... 189
Обработчик обращения к диску .................................. 190
Обработчик критических ситуаций ............................... 191
Обработчик клавиатуры ......................................... 191
Обработчик таймера ............................................ 191
Обработчик DOSOK .............................................. 191
Выполнение TSR-программы ...................................... 192
Удаление TSR-программы ........................................ 192
Блоки памяти и управляющие блоки памяти ....................... 193
Исходные тексты: popup.c, resident.c .......................... 193
TSR-программа - приложение .................................... 201
Проверка TSR-программ ......................................... 202
Выводы ........................................................ 203
ЭПИЛОГ.......................................................... 203
Предисловие
-----------------------------------------------------------------
Поскольку вы читаете данную книгу, то, вероятно, вы
программируете на языке Си и уже приобрели или собираетесь
приобрести компилятор Турбо Си для своей IBM PC. При чтении от
вас потребуется довольно хорошее знание языка Си, а также DOS -
операционной системы персональных ЭВМ (ПЭВМ) линии IBM PC - и ее
функций. Знание языка ассемблера процессора 8086 и архитектуры
IBM PC желательно, но не обязательно. В книге содержится
множество исходных модулей функций на языке Си, которые помогут
писать программы, работающие с окнами, а также делать ваши
программы резидентными в памяти.
Программы, работающие с окнами, и резидентные в памяти
программные утилиты составляют в настоящее время основное
направление в программировании для IBM PC. По своей природе
персональная ЭВМ является настольной интерактивной (диалоговой)
системой, которая предоставляет пользователю доступ к набору
интерактивных программ. Аппаратура и операционная система
обеспечивают возможность разработки программ, работающих с
окнами и меню, которые появляются на экране по нажатию клавиши.
Большинство пакетов программ, пользующихся в настоящее время
наибольшим спросом у пользователей, применяют хотя бы одно из
этих средств. В данной книге разбираются основы работы с ними и
содержатся исходные тексты функций на языке Си, позволяющие
использовать эти средства в ваших программах. Прочитав эту
книгу и разобрав содержащиеся в ней программы, а также освоив
компилятор Турбо Си и основы программирования на языке Си, вы
будете готовы создавать резидентные программные утилиты,
использующие окна для организации пользовательского интерфейса.
Эта книга содержит сведения о языках программирования, о
развитии программного обеспечения, а также примеры использования
языков программирования для написания интерактивных,
экранно-ориентированных программ для ЭВМ. Не следует думать, что
перед вами очередная книга об IBM PC, но образ этой персональной
ЭВМ постоянно присутствует здесь. Если прежде акроним РС
обозначал определенную ЭВМ, то теперь он обозначает архитектуру
ЭВМ, которая была создана промышленным гигантом и стала
общепризнанной. РС в данной книге не является объектом изучения,
а обозначает некоторый абстрактный объект, который располагается
на вашем столе, работает под управлением MS-DOS и называется РС,
ХТ, АТ или чем-либо совместимым с ними.
В данной книге вы столкнетесь с программами, написанными на
языке Си. Это замечательный язык, и хотя некоторым он не
нравится, но все же большинство программистов его любят. На Си вы
можете создавать программы, которые делают все, что вы пожелаете.
Нет другого такого языка, который бы так же стимулировал к
программированию. Создается впечатление, что остальные языки
программирования воздвигают искусственные препятствия для
творчества, а Си - нет. Использование этого языка позволяет
сократить затраты времени на создание работающих программ. Си
позволяет программировать быстро, эффективно и предсказуемо. Еще
одно преимущество Си заключается в том, что он позволяет
использовать все возможности вашей ЭВМ. Этот язык создан
программистом для использования другими программистами, чего о
других языках программирования сказать нельзя. Кобол был
создан таким, чтобы менеджеры могли разбираться в написанных на
этом языке программах; Бэйсик был создан для непрограммистов;
Фортран - для научных работников; Ада вообще был создан
прямо-таки правительственным комитетом; Пайлот создан для
учителей; Паскаль - для студентов; Лого - для детей; АПЛ - для
марсиан; Форт, Лисп и Пролог - специализированные языки. Один Си
- это язык для программистов.
Турбо Си, о котором идет речь в этой книге, - это пакет,
который создает программную среду для программирования на языке
Си и является первым из компиляторов Си нового поколения. Турбо
Си содержит редактор с возможностью установки его параметров
пользователем, построитель задач, ориентированный на реализацию
программного проекта, "быстрый" компоновщик, а также самый
"быстрый" компилятор Си для РС, которые "погружены" в
интегрированную, оконно-ориентированную программную среду. Турбо
Си также предоставляет возможность работы с библиотекой функций
и расширениями языка Си, что обеспечивается использованием
вспомогательных программ обработки прерываний и других
резидентных в памяти программ. Такое использование законно,
поскольку Borland International - создатель Турбо Си -
является также основным производителем резидентных программных
утилит.
В этой книге содержатся исходные тексты функций, которые вы
можете использовать в своих программах, работающих в режиме
интерактивного взаимодействия с пользователем. Использование
этих функций улучшит пользовательский интерфейс ваших программ.
Они обеспечивают возможности работы с окнами, меню, ввода
данных по установленному шаблону, оконного редактирования
текста, а также создания резидентных программ, которые
вызываются нажатием определенных клавиш.
Кроме описания этих функций в книге излагаются также
аппаратные и программные принципы, которые лежат в основе
создания программ, управляющих выводом изображений и резидентных
программ. Подробно рассматриваются система прерываний,
видеопамять, а также внутренняя организация DOS, включая
множество функций DOS, использование которых необходимо при
создании резидентных программ, но по которым нет документации
или, наоборот, которые распространяются разработчиками и
поставщиками DOS.
Обзор разделов
------------------------------------------------------------------