Информационный сервер для программистов. 
Исходники со всего света.

PalmOS.Sources.Ru


PalmOS


Rambler's Top100

Советы, FAQ, грабли
Пробемы с float point функциями под GCC
Некторые Flp функции не работают если компилировать прогарамму под GCC - например FlpAToF просто возвращает ноль. Использовать нужно функцию FlpBufferAToF и прилинковать библиотеку libnfm (gcc -lnfm) Спасибо за совет warden.
Быстрая посылка в порт
Если вам нужно быстро: открыть порт, закинуть туда что нибудь и сразу закрыть, перед закрытием порта не забудьте сделать SerSendWait(), а то долго будете искать куда пропадают 1-8 байт в конце посылки.
Можно ли открыть несколько портов в PalmOS?
В документации по процессору M68VZ328 сказано, что в нем используется два независимых UART контроллера. В документации к SDK PalmOS-3.5 сказано что при открытии порта по SerOpen() возврат 0 или serErrAlreadyOpen обозначает успешное открытие порта. Однако! Serial manager (old!) PalmOS (3.5) про наличие двух UART похоже не догадывается. Потому как эксперементально доказано - не открывает он независимо два порта. Т.е можно открыть одновременно serial и IrDA (SIR, IrCOMM, etc) - но они будут "сиамскими близнецами" и скорость будет определяться по первому открытому порту (если была попытка открыть с разными скоростями)
Можно ли написать Хак на функцию в shared library?
Делается это так: пишется библиотека со всеми функциями как в исходной библиотеке, потом пишется Хак для перехвата SysFindLib() и SysLibLoad() - где подставляется дескриптор "подставной" библиотеки. Если имеется ввиду Visor и "Serial library", то это можно сделать без Хака (там существует специальный механизм переключения "Serial library")
Проблемы при установке prc-tools под M$
(Прислали ЛОМ и Виталий в форум)

Ставится просто:

  • Сначала ставится cygwin (www.cygwin.com)
  • Прописываешь путь к cygwin\bin . ( PATH ...)
  • Потом создаешь папку к примеру j:\Projects\PalmDev\
  • потом монтируешь эту папку. (mount -tf j:\Projects\PalmDev\ /PalmDev)
  • снова запускаешь cygwin
  • инсталлировать с интернета
  • тут указываешь откуда (Add url) вот отсюда - http://prc-tools.sourceforge.net/install
  • говоришь гоу
  • засылаешь пиво на мне мыло
Как перехватить нажатие кнопок
Обработать можно нажатие любых (и software тоже!) кнопок (я один раз случайно перехватил power :) Весь секрет в EventLoop():
static void EventLoop(void)
{
    Word err;
    EventType e;
	
    do {
	EvtGetEvent(&e, 0);
	if (! MenuHandleEvent (NULL, &e, &err))
	    if (! ApplicationHandleEvent (&e))
		if (! FrmDispatchEvent (&e))
		    SysHandleEvent(&e);
    } while (e.eType != appStopEvent);
}						    
Кто не заметил, SysHandleEvent() проверяется в самом конце.