Языки программирования С, С++
.pdfСправочник по работе с DOS
В следующей таблице перечислены имена библиотек Borland С++, которые доступны только для 16 разрядных приложений DOS.
BIDSH.LIB
Библиотеки классов Borland модели памяти huge.
BIDSDBH.LIB
Диагностическая версия той же библиотеки.
C?.LIB
Библиотеки DOS.
C0F.OBJ
MS совместимые библиотеки запуска.
C0?.OBJ
Библиотеки запуска BC.
EMU.LIB
Эмуляция операций с плавающей точкой.
FP87.LIB
Для программ, работающих на машинах с сопроцессором 80х87.
GRAPHICS.LIB
Графический интерфейс Borland.
MATH?.LIB
Математические подпрограммы.
OVERLAY.LIB
Разработка оверлеев.
Графические подпрограммы
Следующие подпрограммы позволяют создавать экранные графические представления с текстовой частью.
●arc (graphics.h)
●bar (graphics.h)
●bar3d (graphics.h)
●circle (graphics.h)
●cleardevice (graphics.h)
●clearviewport (graphics.h)
237
Справочник по работе с DOS
●closgraph (graphics.h)
●detectgraph (graphics.h)
●drawpoly (graphics.h)
●ellipse (graphics.h)
●fillellipse (graphics.h)
●fillpoly (graphics.h)
●floofill (graphics.h)
●getfillsettings (graphics.h)
●getgraphmode (graphics.h)
●getimage (graphics.h)
●getfinesettings (graphics.h)
●getmaxcolor (graphics.h)
●getmaxmode (graphics.h)
●getmaxx (graphics.h)
●getmaxy (graphics.h)
●getmodename (graphics.h)
●getmoderange (graphics.h)
●getpalette (graphics.h)
●getpixel (graphics.h)
●gettextsettings (graphics.h)
●getviewsettings (graphics.h)
●getx (graphics.h)
●gety (graphics.h)
●graphdefaults (graphics.h)
●grapherrormsg (graphics.h)
●_graphfreemem (graphics.h)
●_graphgetmem (graphics.h)
●graphresult (graphics.h)
●getarccoords (graphics.h)
●getaspectratio (graphics.h)
238
Справочник по работе с DOS
●getbkcolor (graphics.h)
●getcolor (graphics.h)
●getdefaultpallette (graphics.h)
●getdrivername (graphics.h)
●getfillpattern (graphics.h)
●imagesize (graphics.h)
●initgraph (graphics.h)
●installuserdriver (graphics.h)
●installuserfont (graphics.h)
●line (graphics.h)
●linerel (graphics.h)
●lineto (graphics.h)
●moverei (graphics.h)
●moveto (graphics.h)
●outtext (graphics.h)
●outtextxy (graphics.h)
●pieslice (graphics.h)
●pufimage (graphics.h)
●pulpixel (graphics.h)
●rectangle (graphics.h)
●registerbgidriver (graphics.h)
●registerbgifont (graphics.h)
●restorecrtmode (graphics.h)
●sector (graphics.h)
●settaffpalette (graphics.h)
●setaspectratio (graphics.h)
●setbkcolor (graphics.h)
●setcolor (graphics.h)
●setcursortype (conio.h)
●setfillpattern (graphics.h)
239
Справочник по работе с DOS
●setfillstyle (graphics.h)
●setgraphbufsize (graphics.h)
●setgraphmode (graphics.h)
●setlinestyle (graphics.h)
●setpalette (graphics.h)
●setrgbpalette (graphics.h)
●settextjunistify (graphics.h)
●settexttyle (graphics.h)
●setusercharsize (graphics.h)
●setviewport (graphics.h)
●setvisualpage (graphics.h)
●setwritemode (graphics.h)
●textheight (graphics.h)
●textwidth (graphics.h)
Интерфейсные подпрограммы
Следующие подпрограммы реализуют обращения к средствам DOS, BIOS и специфическим средствам данного компьютера.
●absread (dos.h)
●abswrite (dos.h)
●bioscom (bios.h)
●_bios_disk (bios.h)
●biosdisk (bios.h)
●_bios_keybrd (bios.h)
●bioskey (bios.h)
●biosprint (dos.h)
●_bios_printer (dos.h)
●_bios_serialcom (dos.h)
●_dos_keep (dos.h)
●_dos_freemem (dos.h)
●freemem (dos.h)
240
Справочник по работе с DOS
●_harderr (dos.h)
●harderr (dos.h)
●_hardresume (dos.h)
●hardresume (dos.h)
●_hardretn (dos.h)
●hardretn (dos.h)
●keep (dos.h)
●randbrd (dos.h)
●randbwr (dos.h)
Подпрограммы управления памятью
Эти подпрограммы обеспечивают динамическое распределение памяти для моделей данных small и large.
●allocmem (dos.h)
●_dos_freemem (alloc.h, stdlib.h)
●brk (alloc.h)
●_dos_setblock (dos.h)
●farcoreleft (alloc.h)
●farheapcheck (alloc.h)
●farheapcheckfree (alloc.h)
●coreleft (alloc.h, stdlib.h)
●_dos_allocmem (dos.h)
●farheapchecknode (alloc.h)
●farheapfree (alloc.h)
●farheapwalk (alloc.h)
●farrealloc (alloc.h)
●sbrk (alloc.h)
Разные подпрограммы
Эти подпрограммы предоставляют задержку времени, различные звуковые эффекты и локальные эффекты.
●delay (dos.h)
●sound (dos.h)
241
Справочник по работе с DOS
● nosound (dos.h)
Глобальные переменные DOS
Ниже приведены глобальные переменные Borland С++, доступные только для 16 разрядных приложений DOS.
_heaplen (dos.h)
Эта переменная содержит длину ближней динамически распределяемой области памяти в малых моделях данных (tiny, small, medium) и описывается следующим образом:
extern unsigned _heaplen;
В моделях small и medium размер сегмента данных вычисляется следующим образом:
сегмент данных [small,medium] = глобальные данные + динамически распределяемая область + стек
где размер стека можно настроить с помощью _stklen.
Если _heaplen установлена в 0 (по умолчанию), то программа выделяет для сегмента данных 64К, и размером динамически распределяемой области будет:
64K — (глобальные данных + стек)
В модели tiny все (включая код) находится в одном и том же сегменте, поэтому размер сегмента данных вычисляется следующим образом (с учетом 256 байт для PSP):
сегмент данных [tiny] = 256 + глобальные данные + динамически распределяемая область + стек
Если в модели tiny _heaplen = 0, то фактический размер динамически распределяемой области вычисляется вычитанием из 64К PSP, кода, глобальных данных и стека.
В моделях compact и large ближней динамически распределяемой области нет, и стек имеет собственный сегмент, поэтому сегмент данных вычисляется так:
сегмент данных [compact, large] = глобальные данные
В модели huge стек находится в отдельном сегменте, и каждый модуль имеет собственный сегмент данных.
_ovrbuffer (dos.h)
Данная переменная изменяет размер оверлейного буфера и имеет следующий синтаксис:
unsigned _ovrbuffer = size;
242
Справочник по работе с DOS
Используемый по умолчанию размер оверлейного буфера равен удвоенному размеру наибольшего оверлея. Для большинства приложений этого достаточно. Однако конкретная функция программы может реализовываться через несколько модулей, каждый из которых является оверлейным. Если общий размер этих модулей больше оверлейного буфера, то при частом вызове модулями друг друга будет происходить дополнительный свопинг.
Решением здесь будет увеличения размера оверлейного буфера, так что в каждый момент времени памяти будет достаточно, чтобы вместить все оверлеи с частыми перекрестными вызовами. Сделать это можно с помощью установки в требуемый размер (в параграфах) глобальной переменной _ovrbuffer в 128К:
unsigned _ovrbuffer = 0x2000;
Для определения оптимального размера оверлейного буфера общего метода не существует.
_stklen (dos.h)
Данная переменная содержит размер стека и имеет следующий синтаксис:
extern unsigned _stklen;
Переменная _stklen определяет размер стека для 6 моделей памяти. Минимально допустимый размер стека — 128 слов. По умолчанию назначается размер 4К.
В моделях данных small и medium сегмент данных вычисляется следующим образом:
сегмент данных [small, medium] = глобальные данных + динамически распределяемая область + стек
где размер динамически распределяемой области можно настроить с помощью _heaplen.
В модели tiny все (включая код) находится в одном и том же сегменте, поэтому размер сегмента данных вычисляется следующим образом (с учетом 256 байт для PSP):
сегмент данных [tiny] = 256 + глобальные данные + динамически распределяемая область + стек
В моделях compact и large ближней динамически распределяемой области нет, и стек имеет собственный сегмент, поэтому сегмент данных вычисляется так:
243
Справочник по работе с DOS
сегмент данных [compact, large] = глобальные данные
В модели huge стек находится в отдельном сегменте, и каждый модуль имеет собственный сегмент данных.
244
Отладчик Turbo Debugger
Отладчик Turbo Debugger
Назначение отладчика
Турбо отладчик Turbo Debugger представляет собой набор инструментальных средств, позволяющий отлаживать программы на уровне исходного текста и предназначенный для программистов, использующих семейство компиляторов Borland. В пакет отладчика входят набор выполняемых файлов, утилит, справочных текстовых файлов и примеров программ.
Turbo Debugger позволяет вам отлаживать программы для Microsoft Windows, Windows NT и DOS. Многочисленные перекрывающие друг друга окна, а также сочетание спускающихся и раскрывающихся меню обеспечивают быстрый, интерактивный пользовательский интерфейс. Интерактивная, контекстно зависимая справочная система обеспечит вас подсказкой на всех стадиях работы. Кроме того, Turbo Debugger полный набор средств отладки:
●Вычисление любых выражений языка Си, C++, Pascal и Assemb ler.
●Полное управление выполнением программы, включая программную анимацию.
●Доступ на нижнем уровне к регистрам процессора и системной памяти.
●Полные средства проверки данных.
●Развитые возможности задания точек останова и регистрации.
●Трассировка сообщений Windows, включая точки останова по сообщениям.
●Обратное выполнение.
●Поддержка удаленной отладки, в том числе для Windows.
●Полная поддержка объектно ориентированного программирования, включая просмотр классов и проверку объектов.
245
Отладчик Turbo Debugger
●Макрокоманды в виде последовательности нажатий клавиш, ускоряющие выполнение команд.
●Копирование и вставка между окнами и диалогами.
●Контекстно зависимые меню.
●Возможность отладки больших программ.
●Диалоговые окна, позволяющие вам настроить параметры отладчика.
●Возможность отладки 16 и 32 разрядных программ Windows (для 32 разрядной отладки имеется отладчик TD32).
●Обработка исключительных ситуаций операционной системы, а также С и С++.
●Сохранение сеанса.
●Поддержка нитей для мультинитевого программирования Windows NT.
●Возможность подключения готовых к выполнению в Windows процессов.
●Возможность выбора для элементов, выводимых в Turbo Debugger, национального порядка сортировки.
Для работы Turbo Debugger требуются те же аппаратные средства, что и для компилятора языка Borland. Кроме того, Turbo Debugger поддерживает графические адаптеры CGA, EGA, VGA, Hercules (монохромный графический режим), Super VGA и TIGA.
Установка и настройка Turbo Debugger
Программа INSTALL, поставляемая с компилятором Borland, полностью устанавливает пакет Turbo Debugger, включая выполняемые файлы, файлы конфигурации, утилиты, справочные текстовые файлы и примеры программ. Эта установочная программа создает пиктограммы для компилятора Borland и инструментальных средств языка, помещая их в новую программную группу Windows. Полный перечень файлов, инсталлируемых программой INSTALL.EXE, содержится в файле FILELIST.DOC (этот файл копируется программой инсталляции в основной каталог компилятора).
246