СОДЕРЖАНИЕ. ВВЕДЕНИЕ.................................................. Что в этом руководстве.................................. Ч А С Т Ь 1. СТАНДАРТ TURBO PASCAL....................... ГЛАВА 1. ЛЕКСЕМЫ И КОНСТАНТЫ.............................. Специальные символы и зарезервированные слова........... Идентификаторы.......................................... Метки................................................... Числа................................................... Строки символов......................................... Объявление констант..................................... Комментарии............................................. Строки программы........................................ ГЛАВА 2. БЛОКИ, ЛОКАЛИЗАЦИЯ И СФЕРА ДЕЙСТВИЯ............. Синтаксис............................................... Правила для сферы действия.............................. Сфера действия интерфейса и стандартных................. идентификаторов. ГЛАВА 3. ТИПЫ............................................ Простые типы............................................ Порядковые типы....................................... Целочисленный тип................................... Логический тип...................................... Символьный тип...................................... Перечислимые типы................................... Тип поддиапазона.................................... Вещественные типы..................................... Программная поддержка чисел с плавающей точкой...... Аппаратная поддержка чисел с плавающей точкой....... Строковые типы.......................................... Структурные типы........................................ Тип массив............................................ Типы запись........................................... Типы объектов......................................... Компоненты и сфера действия......................... Методы.............................................. Виртуальные методы.................................. Экземпляры объектов................................. Тип множество....................................... Файловые типы......................................... Типы указатель.......................................... Процедурные типы........................................ Тождественные и совместимые типы........................ Тождественность типов................................. Совместимость типов................................... Совместимость в операциях присваивания................ Раздел объявления типов................................. ГЛАВА 4. ПЕРЕМЕННЫЕ...................................... Объявления переменных................................... Сегмент данных........................................ Сегмент стека......................................... Абсолютные переменные................................. Ссылки на переменные.................................... Квалификаторы........................................... Массивы, строки и индексы............................. Записи и обозначения полей............................ Обозначения компонент объекта......................... Переменные указателей и динамические переменные....... Приведение типов переменных............................. ГЛАВА 5. ТИПИРОВАННЫЕ КОНСТАНТЫ........................... Константы простого типа................................. Константы строкового типа............................... Константы структурного типа............................. Константы с типом массив.............................. Константы типа объект................................. Константы с типом запись.............................. Константы типа множества.............................. Константы с типом указатель............................. Константы процедурного типа............................. ГЛАВА 6. ВЫРАЖЕНИЯ........................................ Синтаксис выражений..................................... Операторы............................................... Арифметические операторы.............................. Логические операторы.................................. Булевские операторы................................... Строковые операторы................................... Операторы множества................................... Операторы отношения................................... Сравнение простых типов............................. Сравнение строк..................................... Сравнение упакованных строк......................... Сравнение указателей................................ Сравнение множеств.................................. Проверка на принадлежность множеству................ Оператор @............................................ Использование оператора @ для переменной............ Использование оператора @ для параметра-значения.... Использование оператора @ для параметра-переменной.. Использование оператора @ для процедуры или функции. Использование оператора @ с методом................. Вызов функции........................................... Создание множества...................................... Приведение типа......................................... Процедурные типы в выражениях........................... ГЛАВА 7. ОПЕРАТОРЫ....................................... Простые операторы....................................... Операторы присваивания................................ Присваивание объектов................................. Оператор процедуры.................................... Вызовы методов, констракторов и дестракторов.......... Операторы перехода (goto)............................. Структурные операторы................................... Составные операторы................................... Условные операторы.................................... Оператор if......................................... Оператор case....................................... Операторы цикла....................................... Операторы цикла repeat.............................. Операторы цикла while............................... Операторы цикла for................................. Оператор над записями with............................ ГЛАВА 8. ПРОЦЕДУРЫ И ФУНКЦИИ............................. Объявление процедур..................................... near и far объявления................................. interrupt объявление.................................. Опережающие объявления (forward)...................... Внешние объявления (external)......................... assembler объявление.................................. inline объявление..................................... Объявления функций...................................... Объявление методов...................................... Констракторы и дестракторы.............................. Параметры............................................... Параметры - значения.................................. Параметр - переменная................................. Объекты............................................... Нетипированные параметры-переменные................... Процедурные типы........................................ Процедурные переменные................................ Параметры процедурного типа........................... ГЛАВА 9. ПРОГРАММЫ И МОДУЛИ............................... Синтаксис программы..................................... Заголовок программы................................... Предложение uses...................................... Cинтаксис модулей....................................... Заголовок модуля...................................... Интерфейсный раздел................................... Раздел реализации..................................... Раздел инициализации.................................. Косвенные ссылки на используемые модули............... Круговые ссылки модулей............................... Разделение других объявлений........................ Ч А С Т Ь 2. СТАНДАРТНЫЕ БИБЛИОТЕКИ...................... ГЛАВА 10. МОДУЛЬ SYSTEM.................................. Стандартные процедуры и функции......................... Процедуры управления обработкой....................... Процедуры динамического распределения................. Функции динамического распределения................... Функции преобразования................................ Арифметические функции................................ Процедуры порядкового типа............................ Функции порядкового типа.............................. Строковые процедуры................................... Строковые функции..................................... Функции для работы с указателями и адресами........... Другие процедуры...................................... Другие функции........................................ Ввод и вывод............................................ Введение во ввод/вывод.................................. Процедуры В/В......................................... Функции В/В........................................... Текстовые файлы......................................... Процедуры ............................................ Функции .............................................. Нетипированные файлы.................................... Процедуры............................................. Переменная FileMode..................................... Устройства в Turbo Pascal............................... Устройства DOS........................................ Устройство CON...................................... Устройства LTP1, LTP2, LTP3......................... Устройства COM1 и COM2............................. Устройство NUL...................................... Устройство, предназначенное для текстовых файлов...... Предопределенные переменные............................. Неинициализированные переменные......................... Инициализированные переменные........................... ГЛАВА 11. МОДУЛЬ DOS..................................... Константы, типы и переменные.......................... Константы............................................. Константы флагов.................................... Константы режима файла.............................. Константы атрибутов файла........................... Типы.................................................. Типы файловых записей............................... Тип Registers....................................... Тип DataTime........................................ Тип SearchRec....................................... Строковые типы обработки файлов..................... Переменные............................................ Переменная DosError................................. Процедуры и функции................................... Процедуры даты и времени............................ Процедуры обслуживания прерываний................... Функция статуса диска............................... Процедуры обработки файла........................... Функции обработки файла............................. Процедуры обработки процессов....................... Функции обработки процессов......................... Функции управления средой........................... Дополнительные процедуры............................ Дополнительные функции.............................. ГЛАВА 12. МОДУЛЬ GRAPH.................................... Драйверы.............................................. Поддержка IBM 8514.................................. Координатная система.................................. Текущий указатель..................................... Текст................................................. Фигуры и стили........................................ Окна и битовые образы................................. Страницы и цвет....................................... Обработка ошибок...................................... Начало работы......................................... Пользовательские программы управления кучей......... Константы,типы и переменные модуля Graph.............. Константы........................................... SetPalette и SetAllPalette........................ SetRGBPalette..................................... Константы типов линий............................. Константы управления шрифтом...................... Константы выравнивания............................ Константы отсечения............................... Константы полосы.................................. Константы шаблона заполнения...................... Битовые операторы................................. Константа палитры................................. Типы................................................ Переменные.......................................... Процедуры........................................... Функции............................................. ГЛАВА 13. ОВЕРЛЕИ......................................... Монитор оверлеев........................................ Монитор буфера оверлеев................................. Константы и переменные................................ OvrResult........................................... OvrTrapCount........................................ OvrLoadCount........................................ OvrFileMode......................................... OvrReadBuf.......................................... Коды возврата......................................... Процедуры и функции................................... OvrInit............................................. OvrInitEMS.......................................... OvrSetBuf........................................... OvrGetBuf........................................... OvrClearBuf......................................... OvrSetRetry......................................... OvrGetRetry......................................... Создание оверлейных программ............................ Генерация оверлейного кода............................ Дальняя модель вызова................................. Инициализация монитора оверлеев....................... Инициализационная часть в оверлейных модулях.......... Что нельзя в оверлее.................................. Отладка оверлеев...................................... Внешние программы в оверлеях.......................... Оверлеи в .EXE файлах................................. ГЛАВА 14. ИСПОЛЬЗОВАНИЕ 8087............................. Типы данных 8087........................................ Расширенная арифметика.................................. Сравнение вещественных типов............................ Стек вычисления 8087.................................... Вывод вещественных чисел с 8087......................... Модули, использующие 8087............................... Обнаружение 8087...................................... Эмуляция 8087 в Ассемблере............................ ГЛАВА 15. МОДУЛЬ CRT...................................... Файлы ввода и вывода.................................. Окна.................................................. Специальные символы................................. Ввод строки......................................... Константы, типы и переменные.......................... Константы............................................. Константы режима Crt................................ Константы цветов текста............................. Переменные............................................ CheckBreak........................................ CheckEof.......................................... CheckSnow......................................... DirectVideo....................................... LastMode.......................................... TextAttr.......................................... WindMin и WindMax................................. Процедуры и функции................................... Ч А С Т Ь 3. TURBO PASCAL ВНУТРИ.......................... ГЛАВА 16. ПАМЯТЬ.......................................... Карта памяти Turbo Pascal............................... Монитор кучи............................................ Освобождение памяти................................... Список свободных блоков............................... Переменная HeapError.................................. Внутренние форматы данных............................... Целые типы............................................ Символьный тип........................................ Логический тип........................................ Перечислимые типы..................................... Вещественные типы..................................... Тип Rreal............................................ Тип Single.......................................... Тип Double.......................................... Тип Extended........................................ Тип Comp............................................ Тип Pointer........................................... Строковый тип......................................... Тип множества......................................... Тип массива........................................... Тип запись............................................ Файловый тип.......................................... Процедурный тип....................................... Прямой доступ к памяти.................................. ГЛАВА 17. ВНУТРЕННИЙ ФОРМАТ ОБЪЕКТОВ.................... Таблицы виртуальных методов........................... Стандартная функция SizeOf............................ Стандартная функция TypeOf............................ Вызовы виртуальных методов............................ Соглашение о вызовах методов........................ Констракторы и дестракторы............................ Расширения для New и Dispose.......................... Методы на ассемблере.................................. Восстановление ошибок констрактора.................... ГЛАВА 18. ВОПРОСЫ КОНТРОЛЯ.............................. Соглашения о вызовах.................................. Изменяемые параметры................................ Неизменяемые параметры.............................. Результаты функции.................................. Ближние и дальние вызовы (NEAR и FAR)............... Вложенные процедуры и функции....................... Код входа и выхода.................................. Соглашения о регистрах.............................. Процедуры выхода.................................... Обработка прерываний.................................. Написание процедур прерывания....................... ГЛАВА 19. ВВОД И ВЫВОД.................................. Драйверы устройств текстового файла................... Функция Open........................................ Функция InOut....................................... Функция Flush....................................... Функция Close....................................... Прямой доступ к портам................................ ГЛАВА 20. АВТОМАТИЧЕСКАЯ ОПТИМИЗАЦИЯ.................... Вычисление констант................................. Объединение констант................................ Короткое вычисление................................. Порядок вычислений.................................. Проверка диапазона.................................. Сдвиг вместо умножения.............................. Автоматическое выравнивание......................... Удаление неиспользованного кода..................... Отличное редактирование связей...................... ГЛАВА 21. ДИРЕКТИВЫ КОМПИЛЯТОРА.......................... Директивы переключения................................. Выравнивание данных.................................. Вычисление булевских выражений....................... Отладочная информация................................ Эмуляция............................................. Выбор модели дальнего вызова......................... Генерация кода 80286................................. Проверка ввода/вывода............................... Информация о локальных символах...................... Числовая обработка................................... Генерация оверлейного кода........................... Проверка диапазона................................... Проверка переполнения стека.......................... Проверка переменной строки........................... Расширенный синтаксис.................................. Параметрические директивы.............................. Включенный файл...................................... Подключение объектного файла......................... Размеры распределения памяти......................... Имя оверлейного модуля............................... Условная компиляция.................................... Условные символы..................................... Директива Define (определить)...................... Директива UNDEF.................................... Директива IFDEF.................................... Директива IFNDEF................................... Директива IFOPT.................................... Директива ELSE..................................... Директива ENDIF.................................... Ч А С Т Ь 4. ИСПОЛЬЗОВАНИЕ TURBO PASCAL С ЯЗЫКОМ АССЕМБЛЕРА................................. ГЛАВА 22. ВСТРОЕННЫЙ АССЕМБЛЕР........................... Оператор asm........................................... Использование регистров................................ Синтаксис ассемблерных операторов...................... Метки................................................ Префикс.............................................. Коды инструкций...................................... Размер инструкции RET.............................. Автоматический размер перехода..................... Директивы Ассемблера................................... Операнды............................................... Выражения.............................................. Различия между выражениями Паскаля и Ассемблера...... Элементы выражения................................... Константы.............................................. Числовые константы.................................... Строковые константы................................... Регистры............................................... Символы................................................ Классы выражений....................................... Типы выражений......................................... Операторы выражений.................................... Ассемблерные процедуры и функции....................... ГЛАВА 23. РЕДАКТИРОВАНИЕ АССЕМБЛЕРНОГО КОДА.............. Turbo Assembler и Turbo Pascal......................... Примеры программ на Ассемблере....................... Пример на Turbo Assembler. Встроенный машинный код................................ Оператор Inline...................................... Директива Inline..................................... Ч А С Т Ь 5. П Р И Л О Ж Е Н И Я.......................... ПРИЛОЖЕНИЕ A. СООБЩЕНИЯ ОБ ОШИБКАХ...................... Сообщения об ошибках компиляции........................ Ошибки времени выполнения.............................. Ошибки операционной системы DOS...................... Ошибки ввода/вывода.................................. Критические ошибки................................... Фатальные ошибки..................................... ПРИЛОЖЕНИЕ B. СПРАВОЧНЫЙ МАТЕРИАЛ....................... Коды ASCII............................................. Расширенные коды клавишей.............................. Коды сканирования клавиатуры...........................