FPC 3.1.1 в Windows | |
Разработчики) | Флориан Клемпфл и волонтеры |
---|---|
изначальный выпуск | 1997 |
Стабильный выпуск | 3.2.0 / 19 июня 2020 г . |
Предварительный выпуск | 3.3.1 |
Репозиторий | |
Написано в | Object Pascal |
Операционная система | Кроссплатформенность |
Тип | Компилятор |
Лицензия | Стандартная общественная лицензия GNU для исполняемых файлов компилятора и служебных программ. Стандартная общественная лицензия GNU с исключением статической компоновки для среды выполнения, пакета, компонента и других библиотек, которые становятся частью исполняемых файлов, созданных с помощью компилятора |
Интернет сайт | www |
Free Pascal Compiler ( FPC ) - компилятор для тесно связанных диалектов языков программирования Pascal и Object Pascal . Это бесплатное программное обеспечение, выпущенное под Стандартной общественной лицензией GNU , с оговорками об исключениях, которые разрешают статическое связывание с его библиотеками времени выполнения и пакетами для любых целей в сочетании с любой другой лицензией на программное обеспечение.
Он поддерживает свой собственный диалект Object Pascal, а также в определенной степени диалекты некоторых других компиляторов семейства Pascal, включая диалекты Turbo Pascal , Delphi и некоторых исторических компиляторов Macintosh . Диалект выбирается для каждой единицы (модуля) , и в одной программе может использоваться более одного диалекта.
Он следует философии однократной записи, компиляции в любом месте и доступен для многих архитектур ЦП и операционных систем (см. Цели ). Он поддерживает встроенный язык ассемблера и включает внутренний ассемблер, способный анализировать несколько диалектов, таких как AT&T и стиль Intel .
Существуют отдельные проекты для облегчения разработки приложений с кроссплатформенным графическим пользовательским интерфейсом (GUI), наиболее известным из которых является интегрированная среда разработки (IDE) Lazarus .
Поддерживаемые диалекты [ править ]
Первоначально Free Pascal принял де-факто стандартный диалект программистов Pascal - Borland Pascal, но позже принял Delphi. Начиная с версии 2.0, совместимость с Delphi постоянно совершенствуется или улучшается.
В проекте есть концепция режима компиляции , и разработчики дали понять, что они будут включать рабочие патчи для стандартизированных диалектов Американского национального института стандартов (ANSI) и Международной организации по стандартизации (ISO), чтобы создать режим, соответствующий стандартам.
Небольшие усилия были предприняты для поддержки синтаксиса Apple Pascal, чтобы упростить взаимодействие с классической Mac OS и macOS . Поскольку диалект Apple реализует некоторые стандартные функции Паскаля, которые не учитываются в Turbo Pascal и Delphi, Free Pascal немного более совместим с ISO, чем они.
Версия 2.2. x не изменили существенно цели диалекта за пределами синтаксиса уровня примерно Delphi 7, вместо этого стремясь к большей совместимости. Заметным исключением из этого правила было добавление поддержки дженериков в Free Pascal в версии 2.2.0, за несколько лет до того, как они были поддержаны в любом качестве в Delphi.
По состоянию на 2011 год [update]в ветку разработки было добавлено несколько специфичных для Delphi 2006 функций, и некоторые из начальных работ по новым функциям в Delphi 2009 (в первую очередь, добавление UnicodeString
типа) были завершены. В ветке разработки также есть расширение Objective-Pascal для взаимодействия с Objective-C ( Какао ).
В версии 2.7.1 Free Pascal реализован базовый режим ISO Pascal, хотя многие вещи , такие , как Get
и Put
порядок и файл-буфер понятия переменной для работы с файлами по - прежнему отсутствует.
Начиная с версии 3.0.0, режим ISO Pascal является довольно полным, с одной остающейся ошибкой, которая с тех пор была исправлена в основной ветви. Он смог скомпилировать компилятор P5 ISO Pascal от standardpascal.org без изменений.
История [ править ]
Ранние годы [ править ]
Free Pascal был создан, когда Borland пояснил, что разработка Borland Pascal для DOS остановится на версии 7, которая будет заменена продуктом, предназначенным только для Windows , который позже стал Delphi.
Студент Флориан Пол Клэмпфл начал разработку собственного компилятора, написанного на диалекте Turbo Pascal, и создал 32-битный код для расширителя GO32v1 DOS , который в то время использовался и разрабатывался проектом DJ GNU Programming Platform ( DJGPP ).
Первоначально компилятор представлял собой 16-битный исполняемый файл DOS, скомпилированный Turbo Pascal . Спустя два года компилятор смог скомпилировать себя и стал 32-битным исполняемым файлом.
Расширение [ править ]
Первоначальный 32-битный компилятор был опубликован в Интернете , и к проекту присоединились первые участники. Позже Майкл ван Каннейт создал порт Linux , за пять лет до того, как компилятор Borland Kylix стал доступен.
Порт DOS был адаптирован для использования в OS / 2 с использованием Eberhard Mattes eXtender (EMX), что сделало OS / 2 второй поддерживаемой целью компиляции. Даниэль Мантионе, как и Флориан Клэмпфл, первоначальный автор, также внес значительный вклад в это, предоставив исходный перенос библиотеки времени выполнения для OS / 2 и EMX. Компилятор постепенно улучшался, и версия для DOS перешла на расширитель GO32v2. Это привело к выпуску версии 0.99.5, которая использовалась гораздо более широко, чем предыдущие версии, и была последней версией, нацеленной только на совместимость с Turbo Pascal; в более поздних выпусках добавлен режим совместимости с Delphi. Этот выпуск также был перенесен на системы с процессорами семейства Motorola 68000 (m68k).
В выпуске 0.99.8 была добавлена цель Win32 , и было начато включение некоторых функций Delphi. Началась стабилизация для небета- версии , и в июле 2000 года была выпущена версия 1.0. Серия x широко использовалась в бизнесе и образовании. Для версии 1.0. x , был переделан перенос на процессор 68k, а компилятор произвел стабильный код для нескольких 68k Unix-подобных и AmigaOS операционных систем.
Версия 2 [ править ]
Во время стабилизации то, что стало бы 1.0. x , а также при переносе на системы Motorola 68k стало ясно, что конструкция генератора кода слишком ограничена во многих аспектах. Основные проблемы заключались в том, что добавление процессоров означало переписывание генератора кода и что распределение регистров основывалось на принципе постоянного сохранения трех свободных регистров между строительными блоками, что было негибким и трудным в обслуживании.
По этим причинам версия 1.1. х серии разветвленных от от 1,0. x в декабре 1999 года. Сначала изменения были в основном очищены и переписаны с редизайном всех частей компилятора. Также были переписаны генератор кода и распределитель регистров. Все оставшиеся недостающие совместимости с Delphi были добавлены.
Работа над 1.1.x продолжалась медленно, но верно. В конце 2003 года стал доступен рабочий порт PowerPC , за ним последовал порт ARM летом 2004 года, порт SPARC осенью 2004 года и порт x86-64 -AMD64 в начале 2004 года, что сделало компилятор доступным для 64-битной платформы. .
В ноябре 2003 г. вышла первая бета- версия 1.1. x была упакована и получила номер 1.9.0. За ними быстро последовали версии 1.9.2 и 1.9.4; последний представил поддержку OS X. Работа продолжилась с версиями 1.9.6 (январь 2005 г.), 1.9.8 (конец февраля 2005 г.), 2.0.0 (май 2005 г.), 2.0.2 (декабрь 2005 г.) и 2.0.4 (август 2006 г.).
Версия 2.2.x [ править ]
В 2006 году некоторые из основных доработок, запланированных для 2.2, такие как переписывание системы модулей, еще не начались, и было решено вместо этого начать стабилизацию уже реализованных функций.
Некоторыми из мотивов для этого изменения дорожной карты были потребности проекта интегрированной среды разработки Lazarus, в частности, внутренний компоновщик, поддержка Win64 , Windows CE и OS X на x86 и связанные функции, такие как DWARF . После бета-версий 2.1.2 и 2.1.4 в сентябре 2007 года была выпущена версия 2.2.0, за ней последовала версия 2.2.2 в августе 2008 года и версия 2.2.4 в марте 2009 года.
Версия 2.2. x значительно улучшила поддержку интерфейса ActiveX и модели компонентных объектов (COM) , а также связывания и встраивания объектов (OLE), хотя ошибки все еще обнаруживались. Делегирование интерфейса с использованием ключевого слова было частично реализовано, но не было завершено по состоянию на март 2011 года . [1] Библиотека поддержки ActiveX также была улучшена.implements
[update]
Другой важной особенностью был внутренний компоновщик для Win32, Win64 и Windows CE, который значительно улучшил время компоновки и использование памяти, а также значительно ускорил цикл компиляция-ссылка-запуск в Lazarus. Также была повышена эффективность умного связывания или удаления мертвого кода.
Незначительные новые функции включали улучшенную поддержку формата отладки DWARF (2/3) и оптимизацию, такую как хвостовая рекурсия , пропуск ненужных кадров стека и оптимизация исключения общих подвыражений (CSE) на основе регистров . Также появилась первая реализация поддержки общего программирования (дженериков), но только экспериментально.
Версия 2.4.x [ править ]
Цели выпуска 2.4.x были менее четкими, чем у предыдущих выпусков. Перезапись юнит-системы снова была отложена, и была создана ветка, которая стала 2.4, чтобы сохранить рискованные коммиты с 2.2 для стабилизации. В основном эти рискованные коммиты были связаны с улучшениями новых платформ, Mac PowerPC 64, Mac x86-64 , iPhone и многими исправлениями архитектур ARM и x86-64 в целом, а также DWARF .
Другие улучшения компилятора включали оптимизацию всей программы (WPO) и девиртуализацию, а также поддержку двоичного интерфейса встроенного приложения ARM (EABI).
Позже, во время цикла 2.2, была добавлена поддержка ресурсов , более похожая на Delphi (на основе специальных разделов в двоичном файле вместо констант Паскаля). Эта функция, крайне необходимая Lazarus, стала главной изюминкой ветки.
Другими более незначительными дополнениями были диспетчер памяти, который улучшил производительность диспетчера кучи в многопоточных средах, небольшие улучшения совместимости с Delphi, такие как OleVariant
улучшения в делегировании интерфейса .
С 1 января 2010 года, Free Pascal 2.4.0 был выпущен, а затем 13 ноября 2010 года, путем выпуска ошибка исправления 2.4.2 с поддержкой for..in
петель, sealed
и abstract
классов, а также другие изменения. [2]
Версия 2.6.x [ править ]
В январе 2012 года был выпущен Free Pascal 2.6. Эта первая версия из серии выпусков 2.6 также поддерживала Objective Pascal на OS X и iOS и реализовала множество небольших улучшений и исправлений ошибок. В феврале 2013 года был выпущен FPC 2.6.2. Он содержал выпуски NetBSD и OpenBSD впервые с 1.0.10, основанные на свежих портах. В марте 2014 года был выпущен последний точечный выпуск в серии 2.6, 2.6.4, в основном включающий обновления баз данных (fcl-db).
Версия 3.0.x [ править ]
Версия 3.0.0 была выпущена 25 ноября 2015 года и стала первым крупным выпуском с 1 января 2012 года. Она содержит множество новых языковых функций: FPC New Features 3.0
Версия 3.0.2 была выпущена 15 февраля 2017 г. и включает исправления ошибок и незначительные обновления компилятора.
Версия 3.0.4 была выпущена 28 ноября 2017 года.
Она включает множество языковых улучшений по сравнению с предыдущими версиями, включая внутренний компоновщик для исполняемого и связываемого формата (ELF), Arm AARCH64 для iOS и Linux, возрожденную платформу i8086, расширенные библиотеки и многое другое. .
Версия 3.2.x [ править ]
Следующий крупный выпуск, версия 3.2.0, был опубликован 19 июня 2020 года. Он представил множество новых языковых функций, включая общие процедуры, стандартные пространства имен, управляемые записи и расширенную функциональность для динамических массивов, в дополнение к появлению нового стандарта. агрегатов и опоры дополнительных платформ. [3]
Цели [ править ]
Архитектура процессора | Операционная система, устройство | Версия 3.0.0 - 3.3.1 (Магистраль) | Версия 2.6.2 | Версия 2.6.0 | Версия 2.4.4 | Версия 2.4.2 | Версия 2.4.0 | Версия 2.2.4 | Версия 2.0. Икс | Версия 1.0. Икс |
---|---|---|---|---|---|---|---|---|---|---|
i386 | DOS ( расширитель GO32v2 ) | да | да | да | да | да | да | да | да | да |
FreeBSD | да | да | да | да | да | да | да | да | да | |
OpenBSD | да | да | Нет | Нет | Нет | Нет | Нет | Нет | да | |
NetBSD | да | да | Нет | Нет | Нет | Нет | Нет | Нет | да | |
Linux | да | да | да | да | да | да | да | да | да | |
macOS | да | да | да | да | да | да | да | Нет | Нет | |
OS / 2 | да | да | да | да | да | да | да | да | да | |
Windows | да | да | да | да | да | да | да | да | да | |
Windows CE | да | да | да | да | да | да | Нет | Нет | Нет | |
BeOS | да | да | да | да | да | да | да | да | да | |
Хайку | да | да | да | да | да | да | Нет | Нет | Нет | |
NetWare | да | да | да | да | да | да | да | да | Нет | |
Солярис | да | да | да | да | да | Нет | Нет | Нет | да | |
iPhone Sim | да | да | да | Нет | Нет | Нет | Нет | Нет | Нет | |
QNX Neutrino | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | да | |
Android | да | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
AROS | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
x86-64 | FreeBSD | да | да | да | да | да | Нет | Нет | Нет | Нет |
OpenBSD | да | да | Неизвестный | Неизвестный | Неизвестный | Неизвестный | Неизвестный | Неизвестный | Неизвестный | |
NetBSD | да | да | Неизвестный | Неизвестный | Неизвестный | Неизвестный | Неизвестный | Неизвестный | Неизвестный | |
Linux | да | да | да | да | да | да | да | Неизвестный | Нет | |
macOS | да | да | да | да | да | да | Нет | Нет | Нет | |
Windows | да | да | да | да | да | да | Нет | Нет | Нет | |
iPhone Sim | да | да | да | Нет | Нет | Нет | Нет | Нет | Нет | |
AROS | да | да | да | да | да | Нет | Нет | Нет | Нет | |
DragonFly BSD | да | да | да | да | да | Нет | Нет | Нет | Нет | |
Солярис | да | да | да | да | да | Нет | Нет | Нет | Нет | |
Хайку | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
РУКА | iOS | да | да | да | да | да | да | Нет | Нет | Нет |
Game Boy Advance | да | да | да | да | да | да | Нет | Нет | Нет | |
Nintendo DS | да | да | да | да | да | да | Нет | Нет | Нет | |
Linux | да | да | да | да | да | да | да | Неизвестный | Нет | |
Windows CE | да | да | да | да | да | да | да | Неизвестный | Нет | |
Android | да | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
Встроенный | да | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
AROS | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
AArch64 | Linux | да | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
iOS | да | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
Android | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
AVR | Встроенный | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
PowerPC | Linux | да | да | да | да | да | да | да | да | Нет |
macOS | да | да | да | да | да | да | да | да | Нет | |
Классическая Mac OS | да | да | да | да | Нет | Нет | да | да | Нет | |
AmigaOS 4 | да | да | да | да | Неизвестный | Неизвестный | Неизвестный | да | Нет | |
MorphOS | да | да | да | да | Неизвестный | Неизвестный | Неизвестный | да | Нет | |
AIX | да | да | да | Нет | Нет | Нет | Нет | Нет | Нет | |
Wii | да | да | да | да | Нет | Нет | Нет | Нет | Нет | |
PowerPC 64-разрядная | Linux | да | да | да | да | да | да | да | Нет | Нет |
macOS | да | да | да | да | да | да | Нет | Нет | Нет | |
AIX | да | да | да | Нет | Нет | Нет | Нет | Нет | Нет | |
SPARC | Солярис | да | да | да | да | да | Нет | Нет | Нет | Нет |
NetBSD | да | да | да | да | да | Нет | Нет | Нет | Нет | |
Встроенный | да | да | да | да | да | Нет | Нет | Нет | Нет | |
Linux | да | да | да | да | да | Нет | Нет | Нет | Нет | |
SPARC 64 | Linux | да | да | да | Нет | Нет | Нет | Нет | Нет | Нет |
RISC-V | Встроенный | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
RISC-V 64 | Встроенный | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Виртуальная машина Java | Ява | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Android | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
MIPS (BE и LE) | Linux | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Встроенный | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
8086 (16 бит) | ДОС | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Win16 | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
Встроенный | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | |
m68k | Linux | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | да |
NetBSD | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | да | |
AmigaOS | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | да | |
Atari TOS | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да только ограниченный кросс-компилятор | |
Palm OS | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Неизвестный |
Free Pascal также поддерживает генерацию байтового кода для виртуальной машины Java с версии 3.0.0 и ориентирован как на Oracle Java, так и на Android JVM от Google [4], хотя синтаксис Object Pascal не поддерживается полностью. Free Pascal 3.0.0 также поддерживает платформы ARMHF, такие как Raspberry Pi, включая ARMV6-EABIHF, работающие на Raspbian. Работа над 64-битной ARM привела к появлению поддержки iOS в версии 3.0.0. Была добавлена собственная цель ARM Android, что положило конец ранее взломанной цели ARM Linux для создания собственных библиотек ARM для Android. Это упрощает перенос приложений Lazarus на Android (с использованием пользовательского интерфейса [5] ). Начиная с FPC 2.6.2, OpenBSD и NetBSDподдерживаются на архитектурах IA32 и X86_64. Добавлена новая встроенная цель для использования без ОС (в основном ARM Cortex M и MIPS). С помощью InstantFPC можно запускать программы на языке Pascal, которые вовремя переводятся как сценарии Unix или серверная часть CGI .
Интегрированные среды разработки [ править ]
Как и большинство современных компиляторов, Free Pascal можно использовать с интегрированной средой разработки (IDE). Помимо независимых IDE, есть также плагины для различных существующих IDE.
- Free Pascal имеет собственную IDE с текстовым режимом, похожую на IDE Turbo Pascal. Он создан с использованием фреймворка Free Vision (также включенного в Free Pascal), клона Turbo Vision. В дополнение ко многим функциям Turbo Pascal IDE, в ней есть автозавершение кода и поддержка нескольких форматов файлов справки (HTML, Microsoft Compiled HTML Help (CHM), Information Presentation Facility (IPF). Вместо использования инструментов командной строки в IDE используются собственный встроенный компилятор, основанный на том же источнике, что и компилятор командной строки и отладчик (с использованием libgdb или GDBMI), чтобы обеспечить его функциональность.
- Lazarus - самая популярная IDE, используемая программистами Free Pascal. Он выглядит и ощущается так же, как IDE Delphi, и может использоваться для создания консольных и графических приложений, служб Windows , демонов и веб-приложений . Lazarus предоставляет кроссплатформенную структуру пользовательского интерфейса, которая называется Lazarus Component Library (LCL). Графические приложения, созданные с помощью LCL, можно перенести на другую платформу путем перекомпиляции или кросс-компиляции .
- Dev-Pascal - это бесплатная IDE только для Windows для Free Pascal и GNU Pascal , без дальнейшего развития после версии 2004 FPC и версии 2005 GPC.
Связанные библиотеки [ править ]
Помимо компилятора и IDE Free Pascal предоставляет следующие библиотеки:
- Бесплатная библиотека времени выполнения Pascal (RTL): базовая библиотека времени выполнения низкого уровня для общих задач программирования
- Бесплатная библиотека компонентов (FCL): библиотека программных компонентов высокого уровня для общих задач программирования
Примеры программного обеспечения, созданного с помощью Free Pascal [ править ]
- Beyond Compare - это утилита для сравнения данных для Windows, OS X и Linux. Версии для Linux и OS X скомпилированы с помощью Lazarus / FPC.
- Cartes du Ciel - это бесплатная программа- планетарий для Linux, OS X и Windows. Он отображает и маркирует большинство созвездий, планет и объектов, видимых в телескоп. Он был полностью написан на Lazarus / FPC и выпущен под GPL.
- Cheat Engine - это сканер памяти, шестнадцатеричный редактор и отладчик с открытым исходным кодом. Его можно использовать для читерства в компьютерных играх. Начиная с версии 6.0 он компилируется с помощью Lazarus / FPC.
- Программы построения графиков данных D_2D и D_3D . [6]
- Double Commander - это мультиплатформенный двухпанельный файловый менеджер с открытым исходным кодом, вдохновленный Total Commander только для Microsoft Windows.
- Free Pascal написан на Object Pascal и языке ассемблера и сам компилируется .
- HNSKY , Hallo Northern Sky - бесплатная программа- планетарий для Windows и Linux. Начиная с версии 3.4.0, написан и скомпилирован с помощью Lazarus / FPC.
- Lazarus : Аффилированный с Delphi программный пакет Free Pascal для быстрой разработки графических приложений.
- MeKin2D : пакет для кинематики планарного рычага, кулачка и зубчатого механизма. [7]
- Морфик : Morfik WebOS AppBuilder использует Free Pascal для создания двоичных файлов CGI.
- MyNotex - это бесплатное программное обеспечение для создания заметок и диспетчера заметок для GNU / Linux.
- Ранние версии компилятора Nim были разработаны в Free Pascal, прежде чем он стал самостоятельно размещаться в Nim. [8]
- Peazip - это архиватор с открытым исходным кодом, созданный с помощью Lazarus / FPC.
- TorChat , ранее написанный на Python, теперь переписывается на Free Pascal и Lazarus.
См. Также [ править ]
- fpGUI Free Pascal GUI toolkit - кроссплатформенный и настраиваемый инструментарий, реализованный в Object Pascal
Ссылки [ править ]
- ^ bugs.freepascal.org
- ^ Пользовательские изменения 2.4.2
- ^ «Новые возможности FPC 3.2.0 - Free Pascal wiki» . wiki.freepascal.org . Проверено 20 июня 2020 .
- ^ freepascal wiki: FPC JVM
- ^ Пользовательский интерфейс
- ^ "Программы построения графиков D_2D и D_3D" . sourceforge.net . Проверено 23 марта 2018 .
- ^ "MeKin2D: Подпрограммы для кинематического моделирования механизма плоской связи" . sourceforge.net . Проверено 23 марта 2018 .
- ^ "Источник Нима Паскаля" .
Внешние ссылки [ править ]
Викискладе есть медиафайлы по теме Free Pascal . |
В Викиучебнике есть книга на тему: Программирование на языке Pascal. |
Официальные сайты [ править ]
- Официальный сайт FPC
- Официальный сайт Lazarus RAD IDE
Общее введение [ править ]
- Официальная документация
- Введение в современный Object Pascal для программистов - Михалис Камбурелис
Сайты, специализирующиеся на разработке игр [ править ]
- Разработка игр на Паскале
- Журнал Pascal Gamer
- FPC 4 GBA Programming Tutorial - подробное руководство по программированию игр на Game Boy Advance с Free Pascal