Мне лень писать на англиконком, так что пока на родном
Важно: собрать проект можно только из под линукса, если вы на винде используйте WSL
Весь проект написан под компилятор ia16-gcc так что для начало установите его:
arch
yay -S gcc-ia16debian
sudo apt install gcc-ia16-elfRed Hat
just build from source :)Так же вам понадобится python и make, но думаю у вас они уже есть.
Для работы скрипта форматирования в .ple вам понадобиться бибилиотека pyelftools
Если вы не на debian то все просто:
pip install pyelftoolsВ ином случае вам придеться создать изолированое окружение:
sudo apt install python3-venv
python3 -m venv .venv
source .venv/bin/activate
pip install pyelftoolsЕсли требуется просто .ple прогрмма то используете all задачу make'а
makeСкрипт сборки форматат так же даст вам информацию о используемых им секциях и итоговый размер.
Для быстрых тестов есть специальная задача run.
В makefile в начале есть переменная PROS_DIR её значение замените на путь до своей папки с x16-PRos.
Так же вы можете сменить флаги сборки PRos через переменную PROS_BFLAGS
Для получения статической бибилиотеки для линковки вызовите соответсвую задачу у make
make prstd
После этого в папке lib/prstd/ будет файл libprstd.a - статическая библиотека.
prstd переопределяет точку входа _cstart, поэтому в link-скрипте вашего проекты вы должны это явно указать
ENTRY(_cstart)А в секциях в .text .text.cstart должна быть первой
SECTIONS
{
.text : {
*(.text.cstart)
# все остальное
}
}