Сейчас 13 мая 2017 года, за окном лежит снег (вот такое херовое лето), я в трезвом уме и доброй памяти рассказываю вам как в эту славную субботу можно написать своё приложение для PalmOS (конкретно для 3.5 и старше). По моему эта ОС даже старше WindowsXP.
Вчера вечером решил полистать книжечку Palm OS® Programming Bible. Интересно же увидеть, как писали для КПК. И спустя два часа поймал себя на том, что я опаздываю на встречу и занимаюсь любовью с sdk. Разозлился, всё стёр нахер, думаю всё! Нужно делать что-то полезное. Но свербит, блин. Вот, что делать, если свербит?! Короче, покажу результат, а потом как я это сделал.

Плюс PalmOS, что устройств просто ТОННА! Оказалось, что даже есть телефоны с PalmOS! Отсюда куча документации и примеров, даже есть на русском. Минус, что вся документация размазана тонким слоем по куче сайтов, текстовых документов и т.п. Надо всё собирать. Специально для вас, всё собрано в одну кучу в РАБОТАЮЩИЙ МАНУАЛ . Итак, sdk под linux. Установку эмулятора смотреть в предыдущем посте. Итак, вы готовы? Тогда поехали.
Устанавливать будем под debian семейство. В моём случае это linux mint. Лично я честно пытался собрать из исходных кодов всё...

Поэтому мы идём другим путём. Несколько странным, но работающим.
1. Нужно установить пакет prc-tools - это коллекция инструментов для сборки для PalmOS. Джедаи могут его собрать, но я пошёл проверенным путём. Ссылку на это дело я давал.
Качаем отсюда prc-tools-2.3-1.i386.rpm . Обратите внимание, что это rpm-пакет. Надо его сделать deb-пакетом и установить. Выполняем две команды:
После установки тулзов, я уже было побежал компилировать хелло ворд, но не тут-то было. После двух часов чтения разной документации, оказалось, что нужно ещё установить sdk! Задача оказалась не тривиальной.
2. Установка sdk. Поскольку компания производящая эту ОС почила с миром, то все можно найти только в зеркалах. Более полный sdk для PalmOS 3.5 с документацией и примерами я нашёл вот тут . Нас пока интересует файл sdk35.tar.gz . Так же есть другой неплохой сайт на русском, где тоже можно скачать данный файл.
Далее по пунктам:
а) Переходим в папке с архивом и выполняем разархивацию:
б) Дальше перемещаем содержимое папок в соответствующие места (соответственно заголовочные файлы и библиотеки)
в) Нетривиальный пункт, ответ на который я долго искал. Системе надо сообщить что мы установили SDK и куда это сделали. Делается командой:
Фууух... Теперь можно и хеловорднуть. Пример взял отсюда, но поскольку всё имеет место погибать, привожу код сюда
Компиляция идёт последовательностью команд:
Либо, что более верно, с помощью мейкфайла (взят уже из другого примера):
В результате мы получаем файл hello.prc, который может быть установлен в наш чудный аппарат. В моём случае программа выглядит вот так:

Вот так, не хитрым способом мы можем нарисовать сову. Да, я упорот.
Вчера вечером решил полистать книжечку Palm OS® Programming Bible. Интересно же увидеть, как писали для КПК. И спустя два часа поймал себя на том, что я опаздываю на встречу и занимаюсь любовью с sdk. Разозлился, всё стёр нахер, думаю всё! Нужно делать что-то полезное. Но свербит, блин. Вот, что делать, если свербит?! Короче, покажу результат, а потом как я это сделал.

Плюс PalmOS, что устройств просто ТОННА! Оказалось, что даже есть телефоны с PalmOS! Отсюда куча документации и примеров, даже есть на русском. Минус, что вся документация размазана тонким слоем по куче сайтов, текстовых документов и т.п. Надо всё собирать. Специально для вас, всё собрано в одну кучу в РАБОТАЮЩИЙ МАНУАЛ . Итак, sdk под linux. Установку эмулятора смотреть в предыдущем посте. Итак, вы готовы? Тогда поехали.
Устанавливать будем под debian семейство. В моём случае это linux mint. Лично я честно пытался собрать из исходных кодов всё...

Поэтому мы идём другим путём. Несколько странным, но работающим.
1. Нужно установить пакет prc-tools - это коллекция инструментов для сборки для PalmOS. Джедаи могут его собрать, но я пошёл проверенным путём. Ссылку на это дело я давал.
Качаем отсюда prc-tools-2.3-1.i386.rpm . Обратите внимание, что это rpm-пакет. Надо его сделать deb-пакетом и установить. Выполняем две команды:
sudo alien prc-tools-2.3-1.i386.rpm- превращает пакет в дебиановский
sudo dpkg -i prc-tools_2.3-2_i386.deb- собственно установка пакета
После установки тулзов, я уже было побежал компилировать хелло ворд, но не тут-то было. После двух часов чтения разной документации, оказалось, что нужно ещё установить sdk! Задача оказалась не тривиальной.
2. Установка sdk. Поскольку компания производящая эту ОС почила с миром, то все можно найти только в зеркалах. Более полный sdk для PalmOS 3.5 с документацией и примерами я нашёл вот тут . Нас пока интересует файл sdk35.tar.gz . Так же есть другой неплохой сайт на русском, где тоже можно скачать данный файл.
Далее по пунктам:
а) Переходим в папке с архивом и выполняем разархивацию:
tar -xzf sdk35.tar.gz
б) Дальше перемещаем содержимое папок в соответствующие места (соответственно заголовочные файлы и библиотеки)
mv Palm\ OS \ 3.5\ Support/ /usr/local/palmdev/sdkpalmos-3.5 cd /usr/local/palmdev/sdkpalmos-3.5 mv Incs include #переименовываем папку в include, там хранятся хедеры mv GCC\ Libraries lib #аналогично с либами
в) Нетривиальный пункт, ответ на который я долго искал. Системе надо сообщить что мы установили SDK и куда это сделали. Делается командой:
palmdev-prep /usr/local/palmdev
Фууух... Теперь можно и хеловорднуть. Пример взял отсюда, но поскольку всё имеет место погибать, привожу код сюда
#include <palmos.h>
// ---------------------------------------------------------------------
// PilotMain is called by the startup code and implements a simple event
// handling loop.
// ---------------------------------------------------------------------
UInt32 PilotMain( UInt16 cmd, void *cmdPBP, UInt16 launchFlags )
{
EventType event;
if (cmd == sysAppLaunchCmdNormalLaunch) {
// Display a string.
WinDrawChars( "Hello, world!", 13, 55, 60 );
// Main event loop:
do {
// Doze until an event arrives.
EvtGetEvent( &event, evtWaitForever );
// System gets first chance to handle the event.
SysHandleEvent( &event );
// Normally, we would do other event processing here.
// Return from PilotMain when an appStopEvent is received.
} while (event.eType != appStopEvent);
}
return;
}
Компиляция идёт последовательностью команд:
m68k-palmos-gcc hello.c -o hello m68k-palmos-obj-res hello build-prc hello.prc "Hello, World" WRLD *.hello.grc
Либо, что более верно, с помощью мейкфайла (взят уже из другого примера):
hello.prc: code0001.hello.grc
build-prc hello.prc "Hello, World" WRLD *hello.grc
code0001.hello.grc: hello.c
m68k-palmos-coff-gcc -O2 hello.c -o hello
m68k-palmos-coff-obj-res hello
clean:
@rm -f *.grc *.o *.prc hello
В результате мы получаем файл hello.prc, который может быть установлен в наш чудный аппарат. В моём случае программа выглядит вот так:

Вот так, не хитрым способом мы можем нарисовать сову. Да, я упорот.
no subject
Date: 2017-05-13 11:20 am (UTC)no subject
Date: 2017-05-13 11:40 am (UTC)no subject
Date: 2017-05-13 11:56 am (UTC)no subject
Date: 2017-05-13 12:05 pm (UTC)no subject
Date: 2017-05-13 12:36 pm (UTC)no subject
Date: 2017-05-13 01:17 pm (UTC)