SDCC: Автоматизация

Сабжи короче

Postby amixgris » Sun, 06.07.2014 13:44:58

Предлагается публиковать всяческие утилитки, так или иначе автоматизирующие процесс создания программ в SDCC от компиляции до конечного продукта.
Также приветствуются настройки CMAKE, Code::Blocks, Eclipse, иных сред разработки, для работы с SDCC.

Прилагаю sdccscl.rex - скрипт, автоматизирующий процесс компиляции исходника на Си и преобразование в готовое к запуску приложение.
В общем, игла в яйце, яйцо в утке... откомпиленный код в BASIC-монолодере, BASIC-монолодер в православном (crc) SCL`е, SCL - в папке с исходным текстом. Целевой исходник относительно скрипта может размещаться где-угодно.

В начале скрипта есть настройки, но реально из них можно менять только адрес стэка и список подключаемых библиотек, потому что иначе надо переделывать генерацию scl-файла.

К скрипту прилагается пример: scr.c. Программка заполняет спектрумовский экран кодом 0xAA.
Attachments
sdccscl.zip
(2.24 KiB) Downloaded 192 times
User avatar
amixgris
 
Posts: 161
Joined: Mon, 30.07.2012 03:22:48
Location: Самара

Postby amixgris » Sun, 13.07.2014 23:00:39

Готово: magicwc.rex, собиралка плагинов для WC по типу make.
Должна лежать в папке с исходниками плагина. Параметров не требует. Всё задаётся статично внутри скрипта.
На входе имена исходных файлов (Си, ассемблер, данные), а на выходе - плагин.WMF.
Имя плагина определяется по файлу для 0-й страницы.
Более подробно - памятка в конце скрипта.

Всё не тестировал, но прилагаемый пример компилится и работает. Об ошибках прошу докладывать незамедлительно.
P.S.
Продублировано в теме про Wild Commander.
Attachments
magicwc.zip
(330.64 KiB) Downloaded 184 times
User avatar
amixgris
 
Posts: 161
Joined: Mon, 30.07.2012 03:22:48
Location: Самара

Postby zboszor » Thu, 04.09.2014 22:33:30

I just wanted to compile the ROM writer module using that Rexx file from "magicwc.zip".
Code: Select all
$ rexx magicwc.rex
   157 *-* IF ~OPEN("O0", pluginname, "WRITE") THEN DO ;
REX0035E: Error 35 running /home/zozo/zxevo-files/magicwc/magicwc.rex line 157:  Invalid expression
REX0340E: Error 35.1:  Incorrect expression detected at "~"

I suppose the "~" character meant to be negated logic, I replaced it with "\" and my Rexx interpreter accepted that. The next problem is:
Code: Select all
$ rexx magicwc.rex
 
-----------------------------------------------------
   MAGICWC (R)  WildCommander plugin make utility   
              Version 1.0  13-Jul-2014               
          (c) 2014, Amixgris / Red Triangle         
-----------------------------------------------------

   133 *-*                   CALL sjasmplus "--raw="t_name||".bin" DataPg
REX0043E: Error 43 running /home/zozo/zxevo-files/magicwc/magicwc.rex line 133:  Routine not found
REX0417E: Error 43.1:  Could not find routine "SJASMPLUS"

I have sjasmplus and sdcc installed, the Rexx interpreter is oorexx.
zboszor
 
Posts: 60
Joined: Mon, 07.04.2014 15:35:03

Postby amixgris » Fri, 31.10.2014 16:25:45

Hi, zboszor!
Sorry for the late reply.
We have a problem with the SJASMPLUS: the "--raw=" key is not working.
So we need:
1) to comment line of the rexx-script with "CALL sjasmplus "--raw="t_name||".bin" DataPg" (-> /* CALL sjasmplus "--raw="t_name||".bin" DataPg*/
2) to turn to the end of the source file next lines:
@endcode:
SAVEBIN "project_name.bin", 0x8000, endcode-0x8000

3) to compile our source file separately manually;
4) to place the compiled file in a folder with rexx-script.
5) to run script

All files must be placed in same folder with rexx-script

If you plan to use only sjasmplus, I modify REXX-script for you.
User avatar
amixgris
 
Posts: 161
Joined: Mon, 30.07.2012 03:22:48
Location: Самара


Return to Utilities

Who is online

Users browsing this forum: No registered users and 1 guest

cron

x