Выбрать главу

2.11 Отладка

trace (трасса)

- динамически включает и выключает трассировку

profile (профиль)

- динамически включает и выключает профилирование

2.12 Графика и звук

Подпрограммы этой группы позволяют вам отображать информацию на экране. Под DOS экран может быть включен в разнообразные графические режимы. Все доступные графические режимы распадаются на два основных типа. В текстовых режимах экран делится на строки, в каждой из которых может быть размещено определённое число символов. В текстовых режимах вы можете отображать текстовую и цифровую информацию и пользоваться символами псевдографики для формирования таблиц, выбирая цвета фона и переднего плана. В пиксельных режимах экран делится на множество точек, вплотную прилегающих одна к другой, так называемых "пикселов". Пикселам можно назначать различные цвета. В пиксельных режимах вы можете отображать линии, окружности, точки, но одновременно и текст, и псевдографику. Те пикселы, координаты которых лежали бы за пределами экрана в заданном режиме, автоматически исключаются из изображения, не вызывая аварийной остановки программы. Но попытка напечатать символ за пределами числа строк и столбцов, допускаемых заданным текстовым или пиксельным режимом, приводит к аварийной остановке программы. Текстовые режимы работают многократно быстрее пиксельных, но не обеспечивают доступ к каждому отдельному пикселу, а только к целым символам.

Для DOS32 имеется подпрограмма, которая может генерировать звуки на встроенном громкоговорителе вашего компьютера. Чтобы извлекать из машины практически любые необходимые вам звуки, получите библиотеку Sound Blaster, разработанную Жаком Дешеном. Она доступна на Web-узле RDS.

Нижеследующие подпрограммы работают во всех текстовых и пиксельных режимах:

clear_screen (очистить_экран)

- очищает экран

position (знакоместо)

- устанавливает курсор на заданной строке в заданный столбец

get_position (выдать_позицию)

- выдаёт текущие строку и столбец, где находится курсор

graphics_mode (режим_экрана)

- включает новый экранный пиксельный или текстовый режим (DOS32)

video_config (видео_конфигурация)

- выдаёт параметры текущего экранного режима видеосистемы

scroll (прокрутка)

- прокручивает текст на экране вверх или вниз

wrap (перенос)

- задаёт поведение строки при достижении ею правой границы экрана

text_color (цвет_текста)

- задаёт цвет символов текста

bk_color (цвет_фона)

- задаёт цвет фона под текстом

palette (палитра)

- изменяет на экране цвет одного заданного номера на другой заданный цвет (DOS32)

all_palette (вся_палитра)

- изменяет на экране цвета всех номеров на другие заданные цвета (DOS32)

get_all_palette (получить_всю_палитру)

- выдаёт величины составляющих цветов для всех цветов текущей палитры (DOS32)

read_bitmap (читать_биткарту)

- читает биткарту (.bmp-файл) и выдаёт её палитру и двухмерный ряд пикселов

save_bitmap (сохранить_ряд_как_биткарту)

- создаёт биткарту (.bmp-файл), заданную палитрой и двухмерным рядом пикселов

get_active_page (получить_активную_страницу)

- выдаёт номер текущей активной страницы экрана (той, на которую ведётся запись) (DOS32)

set_active_page (установить_активную_страницу)

- переключает заданную по номеру страницу экрана в активное состояние (на запись) (DOS32)

get_display_page (получить_отображаемую_страницу)

- выдаёт номер текущей отображаемой страницы экрана (той, которая видна на экране) (DOS32)

set_display_page (установить_отображаемую_страницу)

- переключает заданную по номеру страницу экрана на отображение (DOS32)

sound (звук)

- генерирует заданный звук на встроенном излучателе компьютера (DOS32)

Нижеследующие подпрограммы работают только в текстовых режимах:

cursor (курсор)

- задаёт форму курсора клавиатуры (каретки)

text_rows (число_строк)

- задаёт число строк на текстовом экране

get_screen_char (получить_символ_с_экрана)

- выдаёт код и атрибут символа, расположенного на экране в заданной позиции

put_screen_char (поместить_символ_на_экран)

- выводит один или более символов на экран в заданной позиции с заданными атрибутами

save_text_image (сохранить_образ_текста_в_ряде)

- выдаёт ряд, содержащий образ заданного прямоугольного участка текстового экрана

display_text_image (вывести_образ_текста)

- выводит текст, содержащийся в заданном образе, на текстовый экран

Нижеследующие подпрограммы работают только в пиксельных режимах (DOS32):

pixel (точки)

- включает заданный пиксел или ряд пикселов в заданном цвете или цветах

get_pixel (цвет_точек)

- выдаёт текущий цвет заданного пиксела или ряда пикселов

draw_line (линия)

- соединяет заданные точки на экране линией

polygon (многоугольник)

- вычерчивает заданную n-стороннюю фигуру

ellipse (эллипс)

- вычерчивает заданный эллипс или круг

save_screen (сохранить_экран_в_файле)

- записывает содержимое экрана в файл биткарты (.bmp-файл)

save_image (сохранить_изображение_в_ряде)

- выдаёт ряд, содержащий образ заданного прямоугольного участка пиксельного экрана

display_image (вывести_изображение)

- выводит изображение, образ которого содержится в заданном ряде, на пиксельный экран

2.13 Интерфейс уровня машины

Здесь сгруппированы подпрограммы, которые пригодятся вам, если вы решите поработать со своей машиной на уровне машинных кодов. Предлагаемый интерфейс низкого уровня позволяет вам читать и записывать данные и код непосредственно в оперативной памяти. Это значит, что вы можете разрабатывать свои собственные подпрограммы в кодах машин 386+ и вызывать их на исполнение.

Некоторые из подпрограмм, перечисленных ниже, не являются безопасными в том смысле, что Euphoria не сможет подстраховать вас при некорректном их использовании. Вы рискуете "подвесить" свою программу, операционную систему или даже машину, если сделаете что-то не так, как следовало бы. Если под DOS32 вы обратитесь к негодным адресам в памяти, то в дело вступит расширитель DOS CauseWay, и вы получите от него на экране сообщение об ошибке плюс распечатку информации на машинной тарабарщине в файле cw.err. Под WIN32 операционная система выдаст вам обычную свою табличку о прерывании прогона вашей программы со скупым диагностическим сообщением плюс информацию из регистров процессора. Под Linux в типовом случае вы получите аварийную остановку программы и сообщение о нарушении сегментации.

Примечание: Чтобы помочь программистам в этих рискованных занятиях, мы поставляем библиотечный файл safe.e, как отладочную замену файла machine.e. Если вы скопируете safe.e из каталога euphoria\include\ в каталог, содержащий вашу программу, и переименуете safe.e как machine.e в этом вашем рабочем каталоге, ваша программа будет исполняться с использованием более безопасного, но и более медленного, варианта обычных подпрограмм низкого уровня. Этот safe.e может отловить многие ошибки, в том числе и такие, как запись в память по негодным адресам. Просмотрите комментарии в начале файла safe.e, чтобы получить полную инструкцию по его применению и оптимальному его конфигурированию под вашу программу. Подпрограммы интерфейса уровня машины очень важны для продвинутого программирования, так как они позволяют Euphoria-программистам получить доступ ко всем ресурсам, заложенным на низком уровне в ваше оборудование и вашу операционную систему. В некоторых особо ответственных случаях данная возможность может иметь решающее значение.