Примеры программ

Пример простейшей программы Hello world

Исходный текст в файле HELWORLD.PL1

Трансляция директивой командной строки:

Plink64 helworld.pl1

Запуск программы из командной строки

helworld.exe

Описание:

Это самый короткий текст, который только можно придумать. Обратите внимание, что если у PUT нет параметра SKIP, то ключевое слово LIST тоже можно пропустить. Если провести трансляцию с ключом «G», т.е. задать директиву plink64 helworld.pl1 g

то в конце работы не будет выдаваться текст «Конец программы». Поскольку исходная программа – это главный модуль, редактор связей запускается автоматически сразу после успешной трансляции.

Пример программы коррекции содержимого файла

Исходный текст в файле CORRP.PL1

Трансляция директивой командной строки:

Plink64 corrp.pl1

Запуск программы из командной строки

corrp.exe <имя Паскаль-программы>

Описание:

Это пример реальной программы, которая исправляет в старых EXE-файлах, созданных с помощью Турбо-Паскаля, известную ошибку системной библиотеки, связанную с попыткой определить быстродействие компьютера. Программа открывает заданный EXE-файл «отображением на память», ищет в нем заданный стандартный код деления и заменяет его пустыми командами. Специальной записи в файл не требуется, так как исправления автоматически сохранятся при окончании программы.

Пример фоновой программы синхронизации

Исходный текст в файле SINHRO.PL1

Трансляция директивой командной строки:

Plink64 sinhro.pl1

Запуск программы из командной строки

sinhro.exe

Описание:

Это пример реальной программы, запускаемой в режиме автозагрузки и слушающей прием по интерфейсу RS-232 данных от временно подключаемого к компьютеру GPS-навигатора. Программа выделяет сигнал точного времени из навигатора и синхронизирует компьютерные часы. Программа интересна тем, что выдает звуковые сигналы с помощью стандартных средств (проигрывает файлы DING.WAV и TADA.WAV), а также в случае специального запуска редактора связи директивой

Plink64 sinhro /graph

не создает никакого окна и при автозапуске (при включении компьютера) видна только в списке процессов. Для того чтобы не создавать консольное окно, кроме директивы редактора в программу вставлена еще строка

DCL ?std_off ext fixed(7) init(1);

отменяющая создание стандартных потоков ввода-вывода.

Пример программы BGI-графики

Исходный текст в файле BGI_DEMO.PL1

Трансляция директивой командной строки:

Plink64 bgi_demo.pl1

Запуск программы из командной строки

bgi_demo.exe

Описание:

Это пример работы «старого» набора графических функций, когда-то разработанных фирмой Borland. Хотя графические функции Windows богаче (например, шрифты) в ряде случаев более простой и быстрый набор прежних функций может быть с успехом использован. Кроме этого, ряд старых «ДОСовских» программ легко может быть переведен на Windows. Возможно одновременное использование в одной программе, как BGI-графики, так и GDI-графики. Для этого имеется внешняя переменная

DCL BGI_DC EXT FIXED(31);

с помощью которой можно получить доступ к «контексту» BGI-графики для использования его как параметра в графических процедурах Windows (GDI-процедурах). Для простоты примера весь графический вывод идет не в специально создаваемое окно, а в стандартное окно Windows «DISPLAY». При работе программы используются файлы шрифтов .CHR.

Пример использования Win32

Исходный текст в файле SENDMAIL.PL1

Трансляция директивой командной строки:

Plink64 sendmail.pl1

Запуск программы из командной строки

sendmail.pl1 <параметры>

обязательно из папки Program Files\Outlook Express

Описание:

Это пример реальной и очень простой программы рассылки файлов через почту с использованием настроек программы Outlook Express.

Используется несколько API из библиотеки MSOE.DLL. Эта библиотека наряду с библиотеками KERNEL32, USER32, GDI32 и другими входит в список стандартных библиотек, включенный в PLINK64.EXE.

Пример программы Direct X графики

Исходный текст в файле D3D.PL1

Трансляция директивой командной строки:

plink64 d3d.pl1

Запуск программы из командной строки

d3d.exe

Описание:

Это пример работы «полного» набора функций Windows, включая создание окна, динамическую загрузку методов Direct и наложение BGI-графики.

Предполагается, что в папке C:\WINDOWS\SYSTEM32 имеются библиотеки D3D9.DLL и D3DX9_42.DLL.

Пример интересен тем, что с помощью трюка удается получать контекст и совмещать простое рисование BGI-графикой с использованием возможностей Direct X версии 9. Для работы функций приходится создавать окно Windows со стандартными обработчиками, которые переводят сообщения в коды «нажатых» клавиш. Все эти обработчики описаны во встроенных в PLINK.EXE библиотеках. Все используемые в примере методы DirectX описаны в файле D3D9_M.DCL.

Пример программы работы с комплексными числами

Исходный текст в файле TESTCMPL.PL1

Трансляция директивой командной строки:

Plink64 testcmpl.pl1

Запуск программы из командной строки

testcmpl.exe

Описание:

Это один из тестов, использовавшихся для проверки транслятора. В нем перечислен ряд примеров использования комплексных переменных и их перекрестная проверка. Обратите внимание, что механизм комплексных чисел реализован в данном трансляторе с существенными ограничениями: можно использовать только формат FLOAT, константы нужно писать в кавычках, нет автоматических преобразований и т.п.

Пример расчетной программы

Исходный текст в файле FBENCH.PL1

Трансляция из командной строки

PLINK64 FBENCH.PL1

Запуск программы из командной строки

FBENCH.EXE

Описание

Это «геометрический тест», взятый с сайта Джона Уолкера (John Walker) https://www.fourmilab.ch/fbench/

конкретно из https://www.fourmilab.ch/fourmilog/archives/2017-09/001713.html

Тест интересен тем, что реализован для огромного числа разных языков и систем. С его помощью можно сравнить качество и быстродействие получаемого кода

В данном тесте увеличено число итераций, поскольку в исходном варианте было 29592068 циклов, хотя по смыслу задачи их должно быть 5753х5753=33097009.

 

 

 

 

Авторизация
*
*

10 + 18 =

Регистрация
*
*
*

четыре + 16 =

Генерация пароля

девятнадцать + 7 =

Перевести »
Прокрутить вверх
Scroll to Top