Карманные ПК, Операционная система PalmOS
nism – т.е. когда вызывается
функция то на самом деле приложение обращается к trap dispatch механизму и
просит его вызвать такой-то номер функции (а параметры передаются в стеке).
Эту таблицу указателей можно спокойно изменять с целью подмены функций.
Подменить системную функцию может любое приложение (например CyrHack, оно
видно в системе как приложение но подменяет ряд функция для русификации
PalmOS). Но есть еще специальный вид приложений для PalmOS – это Хаки (от
слова hach, а фициальное название System Extention), это проложения которые
созданы по спецификации HackMaster API (независимый стандарт). Это стандарт
который облегчает создание Хаков, а так-же делает более безопасным их
присутствие в системе. Согласно этому стандарту за всеми хаками в системе
следит Менеджер Хаков. Это обычное приложение в котором можно посмотреть
сисок всех хаков, настроить их, и активизировать.
Программирование хаков требует более глубокого знания системы.
Пример Разработки Приложения для PalmOS
Рассмотрим пример простого приложения - example1.prc(1,5кб) оно состоит из
одной формы. На Форме расположена кнопка , надпись, и текстовое поле, к
форме прикреплено меню . При нажатии на кнопку появляется сообщение.
Проект приложения состоит из 3х файлов:
Example1.c – исходный код на языке С.
Example1.h – имена и номера елементов формы
Example1.rcp – описание ресурсов приложения (форма, меню, кнопка, диалог
сообщения).
файл example1.c
#include
#include "hw.h"
static FormPtr gpForm;
Boolean Form1_HandleEvent(EventPtr event)
{
switch(event->eType) {
case ctlSelectEvent:
if ( event->data.ctlEnter.controlID == Button1)
FrmCustomAlert(Alert1, "MessageBox !", "", "");
break;
case menuEvent:
if ( event->data.menu.itemID == IDM_about)
FrmCustomAlert(Alert1, "This is Example", "", "");
break;
case frmOpenEvent:
gpForm=FrmGetActiveForm();
FrmDrawForm(gpForm);
break;
case frmCloseEvent:
FrmEraseForm(gpForm);
FrmDeleteForm(gpForm);
break;
default:
return false;
}
return true;
}
static Boolean ApplicationHandleEvent(EventPtr event)
{
FormPtr frm;
Boolean handled=false;
switch(event->eType) {
case frmLoadEvent:
frm = FrmInitForm (event->data.frmLoad.formID);
FrmSetActiveForm (frm);
FrmSetEventHandler(frm , Form1_HandleEvent);
handled = true;
break;
}
return handled;
}
UInt32 PilotMain(UInt16 launchCode, void *cmdPBP, UInt16 launchFlags)
{
EventType event;
UInt16 error;
if(launchCode==sysAppLaunchCmdNormalLaunch) {
FrmGotoForm(Form1);
do {
EvtGetEvent(&event,evtWaitForever);
if(!SysHandleEvent(&event))
if(!MenuHandleEvent(0,&event,&error))
if(!ApplicationHandleEvent(&event))
FrmDispatchEvent(&event);
}
while(event.eType!=appStopEvent);
FrmCloseAllForms();
}
return 1;
}
файл example1.rcp
#include "hw.h"
FORM ID Form1 AT (0 0 160 160) FRAME USABLE
MENUID MenuBar1
BEGIN
TITLE "Example 1"
LABEL "This is an example" AUTOID AT (10 10+5) FONT 1
LABEL "of small GUI programm" AUTOID AT (PREVLEFT PREVBOTTOM+5) FONT 2
FIELD ID IDB_Edit1 AT (PREVLEFT PREVBOTTOM+5 110 20) MAXCHARS 50
UNDERLINED FONT 2
BUTTON "Hello" ID Button1 AT (10 80 AUTO AUTO)
END
MENU ID MenuBar1
BEGIN
PULLDOWN "Help"
BEGIN
MENUITEM "About" ID IDM_about "A"
END
END
ALERT ID Alert1
INFORMATION
BEGIN
TITLE "Example 1"
MESSAGE "^1 ^2 ^3"
BUTTONS "Ok"
END
Файл example1.h
#define Form1 1000
#define Button1 1003
#define Edit1 1006
#define MenuBar1 1000
#define Alert1 1102
#define IDM_about 1001
#define IDB_Edit1 1002
Литература:
История ( калькуляторов, ноутбуки, КПК, перья )
http://www.geocities.com/SiliconValley/1061/calcolle.htm - история
калькуляторов в СССР
http://www.taswegian.com/MOSCOW/soviet.html - история калькуляторов в СССР
http://www.geocities.com/oldcalculators/timeline.html
http://www.pencomputing.com/palm/
http://www.rskey.org/master.html
http://www.i-m.de/home/compmuseum/taschcom/index.htm
http://amug.org/amug/sigs/newton/nanug/PenReport/NewPenCom.html - очень
класный сайт по истории ПДА ,
http://www-2.cs.cmu.edu/~amulet/papers/uihistory.tr.html
http://users.erols.com/rwservices/biblio.html
http://www.cadcamcae.lv/arch/n3.htm
http://www.rulabinsky.com/cavd/text/chap09-4.html
http://www.osp.ru/os/1995/05/33.htm
http://www.cross-edu.ru/proect/Inf/erchov.html
http://educate.si.edu/scitech/carbons/1980.html
КПК ( в основном Palm)
|http://www.palmq.ru/ |Таблица по моделям Palm, Visor |
|www.handy.ru , |Обзорные сайты, софт, конференции, |
|http://palm.v-lazer.com, www.hpc.ru |факи … книги |
|, www.palm.com.ua , www.palm.km.ru ,| |
|http://www.enlight.ru/pilot/ , | |
|www.pda1.ru , www.mypalm.ru, | |
|http://www.handspring.com/products/s|Модули расширения для КПК Visor/ |
|bmodules/ | |
|http://www.opennet.ru/palm.shtml |На русском инфо о КПК палм. |
|http://directory.google.com/Top/Comp|Раздел ссылок по PlamOS в каталоге |
|uters/Systems/Handhelds/Palm_OS/ |Google. |
| | |
Таблицы по устройствам:
http://www.enlight.ru/pilot/info1.html -
http://palm.v-lazer.com/text.phtml?fl=compare
http://www.palmos.com/dev/tech/hardware/compare.html
http://www.enlight.ru/pilot/choose.html - cool table on rus
http://palm.v-lazer.com/text.phtml?fl=acquaint - znakomstvo s PPC
http://www.airport.sakhalin.ru/ospru/pcworld/1998/11/38tab.htm - keyb PDA
and non keyb
http://computorg.ixbt.com/computers/hpc.shtml
http://www.ixbt.com/portopc/pda-describ/descriptions.shtml - models of
firms
http://www.palmy.ru/ - wince psion palm
http://www.palmq.net/sections.php?op=viewarticle&artid=21 - Springoard
devs
2 Программирование
http://goanna.cs.rmit.edu.au/~winikoff/palm/dev.html
http://www.cyberport.com/~tangent/palm/faq/
http://www.palmopensource.com/ - много исходников по разным темам
http://www.massena.com/darrin/pilot/tanda.htm
http://www.pdaprogramming.com/old/palmos/sources.html
http://spider.macomnet.ru/docs/PalmOS/palm_developers_guide/
http://home.hetnet.nl/~tonicor/palm/tutorial/uk/index.htm
http://www.multimania.com/pbriol/palmos/gcc.html
http://oasis.palm.com/dev/kb/browse.cfm?type=1
http://www.kadak.com/html/kdkp1010.htm - ядро PALMOS !!
http://pdasecurity.chat.ru/main.html - взлом софта под палм
http://palm.x-a-o-c.ru
все информация была найдена с помощью www.google.com
-----------------------
| | скачать работу |
Карманные ПК, Операционная система PalmOS |