=================================================================
Ал. Стивенс
"ТЕХНИКА ПРОГРАММИРОВАНИЯ НА ТУРБО СИ"
=================================================================
Предисловие..................................................... 10
Обзор разделов.................................................. 15
ГЛАВА 1......................................................... 19
Интерактивное программное обеспечение, управляющее изображением. 19
ГЛАВА 2......................................................... 32
Язык Cи........................................................ 32
Краткая история языка Си....................................... 33
Особенности языка Си........................................... 37
- 2 -
Достоинства языка Си........................................... 40
Одобрение языка Си............................................. 43
Рекомендуемая литература по Си ................................ 43
ГЛАВА 3 ........................................................ 46
Компилятор Турбо Си ........................................... 46
Два Турбо Си .................................................. 49
Настройка интегрированной среды ............................... 51
Редактор Турбо Си ............................................. 53
Компоновщик Турбо Си .......................................... 55
Утилита построителя задач (Make) в Турбо Си ................... 56
Обнаружение ошибок при компиляции и компоновке ................ 58
Программные средства низкого уровня ........................... 58
Начальная установка ........................................... 61
Модели памяти ................................................. 62
Библиотека исходных модулей ................................... 63
Заключение .................................................... 63
ГЛАВА 4 ........................................................ 64
Функции общего назначения ..................................... 64
Исходные модули функций общего назначения ..................... 72
Заключение..................................................... 83
ГЛАВА 5 ........................................................ 84
Экранные окна ................................................. 84
Экранное окно ................................................. 85
Архитектура видеопамяти ....................................... 94
"Снег" и обратный ход луча развертки .......................... 101
Заключение .................................................... 110
ГЛАВА 6 ........................................................ 111
Библиотека оконных функций .................................... 111
Стековые окна ................................................. 113
Слоеные окна .................................................. 113
Оконные функции ............................................... 120
Листинги оконных функций ...................................... 134
Описание программы: twindow.h ................................. 144
Описание программы: twindow.c ................................. 175
Примеры окон .................................................. 185
Перемещение окна ............................................. 185
Подъем и опускание окон ....................................... 192
- 3 -
Назначение заголовков и изменение цветов окна ................. 196
Сравнение стековых и слоеных окон ............................. 203
Перемещение, подъем, скрытие окон, меню, изменение интенсив. .. 208
Резюме ........................................................ 223
ГЛАВА 7 ........................................................ 224
Контекстно-управляемые окна подсказки ......................... 224
Программирование окон подсказки ............................... 228
Текстовый файл окна подсказки ................................. 233
Функции подсказки ............................................. 239
Изменение функциональной клавиши подсказки .................... 240
Изменение функции подсказки ................................... 241
Выключение подсказки .......................................... 242
Исходный листинг: thelp.c ..................................... 242
Описание программы: thelp.c ................................... 248
Пример контекстно-управляемой подсказки ....................... 251
Резюме ........................................................ 256
ГЛАВА 8 ........................................................ 257
Иcпользование данных в окнах .................................. 257
Шаблон ввода данных ........................................... 259
Поле ввода данных ............................................. 260
Позиция ....................................................... 260
Атрибуты ...................................................... 261
Буфер ......................................................... 262
Проверка допустимости значений ................................ 262
Help-информация ............................................... 263
Маска вводимых данных ......................................... 264
Приглашения к вводу в поле (Prompts) .......................... 265
Ввод данных ................................................... 265
Функции сбора данных .......................................... 266
Исходный текст: entry.c ....................................... 280
Описание программы: entry.c ................................... 299
Пример: Ввод данных в определенном порядке .................... 307
Резюме ........................................................ 320
ГЛАВА 9 ........................................................ 321
Оконный текстовый редактор .................................... 321
Команды тестового редактора ................................... 324
Управление курсором ........................................... 326
- 4 -
Постраничная работа ........................................... 327
Команды работы с блоками текста ............................... 328
Команды редактирования ........................................ 330
Функция, реализующая текстовый редактор ....................... 331
Исходный листинг: editor.c .................................... 332
Описание программы: editor.c .................................. 366
Пример: Использование редактора ............................... 378
Резюме ........................................................ 385
ГЛАВА 10 ....................................................... 386
Оконные меню .................................................. 386
Меню .......................................................... 387
Процесс, образующий оконное меню .............................. 391
Функции поддержки меню ........................................ 393
Исходный листинг: tmenu.c ..................................... 397
Описание программы: tmenu.c ................................... 403
Пример оконного меню .......................................... 406
Резюме ........................................................ 414
ГЛАВА 11 ....................................................... 416
Резидентные программы ......................................... 417
Прерывания .................................................... 422
Векторы прерывания ............................................ 423
Аппаратные прерывания ......................................... 424
Программные прерывания ........................................ 425
ДОС - однозадачная операционная система ....................... 425
TSR-программы ................................................. 431
Программы обработки прерываний ................................ 433
Резидентные утилиты ........................................... 434
Что может быть резидентным .................................... 435
Построение TSR-программ ....................................... 440
Превращение программы в резидентную ........................... 440
Резидентна ли уже программа? .................................. 441
Захват прерывания ............................................. 444
Величина TSR-программы ........................................ 446
Переключение контекстов ....................................... 452
Стек .......................................................... 453
Program Segment Prefix (PSP) .................................. 455
Дисковый буфер ................................................ 471
- 5 -
Прерывание от клавиатуры (9) .................................. 472
Прерывание от таймера ......................................... 474
Проблема реентерабельности ДОС ................................ 475
Два стека ДОС ................................................. 476
Системный флажок занятости (0х34) ............................. 478
Прерывание DOSOK .............................................. 479
Дисковое прерывание ROM-BIOS.(0х13) ........................... 481
Прерывание ctrl-Break в ДОС (0x23) ............................ 484
Выполнение TSR-программы ...................................... 485
Завершение TSR-программы ...................................... 486
Приостановка и возобновление выполнения TSR-программы ......... 490
Выводы ........................................................ 491
Построение резидентных программ ............................... 492
Пример TSR-программы - "часы" ................................. 493
Превращение программы в резидентную ........................... 493
Прерывание по делению на ноль ................................. 494
Выполнение обработчика прерываний от таймера .................. 497
Связ-вание старого вектора прерывания по таймеру .............. 498
Сохранение и переключение контекста стека ..................... 498
Вычисление времени ............................................ 499
Программы TSR-драйвера ........................................ 504
Действия трех программных модулей ............................. 506
Размер TSR-программы .......................................... 507
Присвоение "горячего ключа" ................................... 508
Сигнатура TSR-программы ....................................... 511
Коммуникационные прерывания ................................... 513
Подготовка к резидентности .................................... 516
Обработчик обращения к диску .................................. 517
Обработчик критических ситуаций ............................... 520
Обработчик клавиатуры ......................................... 521
Обработчик таймера ............................................ 522
Обработчик DOSOK .............................................. 522
Выполнение TSR-программы ...................................... 523
Удаление TSR-программы ........................................ 524
Блоки памяти и управляющие блоки памяти ....................... 526
Исходные тексты: popup.c, resident.c .......................... 527
TSR-программа - приложение .................................... 547
- 6 -
Проверка TSR-программ ......................................... 549
Выводы ........................................................ 552
ЭПИЛОГ.......................................................... 553
скачать | некачать