���Υڡ��� ���Υڡ��� �ܼ���

3. Hello, World -- Palm OS �ץ�����ߥ󥰤ؤξ���

�ɤ�ʥץ������Υ��塼�ȥꥢ��Ǥ�ޤ��ǽ���׵ᤵ���Τϡ� �ɤ�������``Hello world'' �ץ������ߤ����Ǥ��͡� ���Υץ�������ư����뤳�Ȥǡ����ʤ��Ȥ⡢Palm OS �ץ������� ������ˡ������ѥ�����ˡ�ȥ��󥹥ȡ���λ������İ��Ǥ���Ϥ��Ǥ���

�ҤȤ����դ��Ƥ����٤��ʤΤϡ�Palm OS �ץ������ϥ��٥�ȥɥ�֥� ���Ȥ������ȤǤ��� ����Ū�ˤϡ�¾��(make �� more �� pilot-xfer �ʤɤΤ褦��)ľ��Ū�� �ץ������ȤϤ���äȰ�äơ�Palm OS ���ץꥱ�������Ϥ�����͡� ���٥�����Ԥ���������������Ȥ����褦�ʹ�¤�򤷤Ƥ��ޤ��� ���٥�ȤȤ����Τϡ��ڥ�����󡦥��åס�����ե��ƥ����ϡ����顼�� �ʤɤΡ����줾��ۤʤ륤�٥�Ȥ�ȯ���������Ȥ�ؤ��ޤ���

3.1 �ޤ��Ϥ�äƤߤ褦

�ץ������Υ�����������

����ϡ�``Hello World'' �ץ������Υ����������ɤǤ�: (����: �ʲ��Ǥϻ��ͤΤ���ˡ������������ɤΥ�������ʬ�����ܸ�����Ф��� ���ޤ������ºݤ� gcc �����ܸ�Υ����Ȥ��̤뤫�ɤ����ϳ�ǧ���Ƥ��ޤ���)

#include <System/SysAll.h>
#include <UI/UIAll.h>

// ---------------------------------------------------------------------
// PilotMain �ϡ������������(startup)����ƤӽФ��졢ñ��ʥ��٥�Ȥ�
// ��������롼�פ�������ޤ���
// ---------------------------------------------------------------------
DWord PilotMain( Word cmd, Ptr cmdPBP, Word launchFlags )
{
    EventType event;


    if (cmd == sysAppLaunchCmdNormalLaunch) {

        //  ʸ�����ɽ������
        WinDrawChars( "Hello, world!", 13, 55, 60 );

        //  �ᥤ��Υ��٥�ȥ롼��:
        do {
            //  ���٥�Ȥ����夹��ޤ�̲��
            EvtGetEvent( &event, evtWaitForever );

            // �ޤ��ϥ����ƥ�˥��٥�Ȥ�������뵡���Ϳ����
            SysHandleEvent( &event );

            // �̾�Ϥ����Ǥ���¾�Υ��٥�Ȥν����򤪤��ʤ���

        // appStopEvent �������ä��� PilotMain ����꥿���󤹤�
        } while (event.eType != appStopEvent);
    }
    return;
}
�ʾ�Υ����ɤ򤪹�������ˡ�ǡ�``hello.c'' �Ȥ����ե�����̾�Υƥ����ȥե����� �Ȥ�����¸���Ƥ������� (�ºݤˤϥե������̾���ϺǸ夬 ``.c'' �Ǥ��ꤵ������Фʤ�Ǥ�褤�ΤǤ����� �����ǤϤ�������̾����Ȥ��ޤ�)��

����ѥ���

Prc-tools �ǻȤ��Ƥ��� bin �ǥ��쥯�ȥ꤬�����ȥǥե�����ȥѥ��� �ޤޤ�Ƥ���(�ѥ����̤äƤ���)���Ȥ��ǧ���ơ��ʲ��Υ��ޥ�ɤ����Ϥ��� ��������:

m68k-palmos-coff-gcc -O2 -g hello.c -o hello 
m68k-palmos-coff-obj-res hello
build-prc hello.prc "Hello, World" WRLD *.hello.grc

m68k-palmos-coff-gcc�ϡ�prc-tools �ˤ�ä��������줿 GCC ����������ѥ��顣 m68k-palmos-coff-obj-res�ϡ�m68k-palmos-coff-gcc�ˤ�ä��������줿 �ץ�������Palm OS ���ץꥱ��������ɬ�פʤ����Ĥ�Υ��������� ʬ�䤷�Ƥ���ޤ��� build-prc�ϥץ�����ॻ���������Ȥ�Ω�ơ����ޥ�ɥ饤��ǻ��ꤵ�줿 ������ղä��ƺǽ�Ū�� Palm OS �ץ��������������ޤ���

���󥹥ȡ���

���ơ�Palm OS �ǥХ����Υ������ƤΥХå����åפϴ��˺Ѥ�Ǥ��ޤ���͡� ���褤��hello.prc�򥤥󥹥ȡ��뤷�Ƥߤޤ��礦�� ���󥹥ȡ�����ˡ�ϰʲ����̤�Ǥ�:

pilot-xfer --port /dev/ttyS1 --install hello.prc
(�����ǻ��ꤷ�����ꥢ��ǥХ����ϡ����ʤ��δĶ��ˤ��碌���ѹ����Ƥ�������)

���������졼�ɥ�� HotSync �ܥ���򲡤��ޤ��礦��

�ץ�������ư����

HotSync ����λ�����顢���ץꥱ�����������㡼���� ``Hello, World'' �Ȥ��� ̾���Υ��ץꥱ������󤬸�����Ϥ��Ǥ����������֥륿�åפ���С� ���̤ο����椢����ˡ�``Hello, World!'' �Ȥ���ʸ���������Ϥ��Ǥ���

3.2 ����(��ñ��)�ץ������β���

���ơ�����``Hello, World''�ץ������ι������Ǥ������������Ȼפ��ޤ���

SysAll.h -- ������ȤΥ����ƥ।�󥯥롼�ɥե�����

System/SysAll.h �򥤥󥯥롼�ɤ��뤳�Ȥǡ��¤Ϥ�������Υ����ƥ� ���󥯥롼�ɥե��������٤˥��󥯥롼�ɤ��뤳�Ȥˤʤ�ޤ��� ������Ǥ����Ĥ����Ƥ��������ե����뤬���뤫�⤷��ޤ���͡� ���Ȥ��С�m68k-palmos-coff/include/PalmOS2/Common.h �Ǥ� Palm OS �饤�֥�����ΤǻȤ���褦�� typedef ������ޤޤ�Ƥ���Τ� �ܤ��̤��Ƥ�����»�Ϥʤ��Ȼפ��ޤ���

UIAll.h -- ������ȤΥ桼�����󥿥ե��������󥯥롼�ɥե�����

UI/UIAll.h �ϡ��桼�����󥿡��ե������˴ؤ��뤿������Υ��󥯥롼�� �ե�����򥤥󥯥롼�ɤ��Ƥ��ޤ���

PilotMain() -- ���ץꥱ�������Υᥤ��ؿ�

���٤Ƥ� Palm OS ���ץꥱ�������ˤ�(����: Hack �� DA �Ͻ���)�� ���� PilotMain()�ؿ���¸�ߤ��ʤ���Фʤ�ޤ��� ������̾�� C ����ˤ����롢main()�ؿ���Ʊ������̤�����ΤǤ���

DWord PilotMain( Word cmd, Ptr cmdPBP, Word launchFlags )
�ץ�����ब��ư���줿���ˡ�cmd�ˤ� Launch Code���Ϥ���ޤ��� ����Launch Code �ˤ�äơ����ץꥱ���������Ф����̾�Ȥϰۤʤ� ư����׵᤹�뤳�Ȥ��ǽ�Ǥ���

Launch Code ����������

Launch Code �ϡ�cmd�������Ϥ���ޤ��� ���줾��Υץ������Ϥ��� Launch Code ���ͤ�����å����ơ���ʬ������˱��� �Ǥ��뤫�ɤ�����Ĵ�٤ޤ��� ``Hello, World'' �ץ������Ǥϡ���normal program launch�װʳ��Υ����ɤ� ̵�뤹��褦�ˤʤäƤ��ޤ���

if (cmd == sysAppLaunchCmdNormalLaunch) {
Launch code�ˤϡ����������ʾ������н褹�뤿��ˤ�������μ��ब����ޤ��� �ɤ�ʥ����ɤ�¸�ߤ���Τ��������Τ뤿��ˤϡ� m68k-palmos-coff/include/PalmOS2/System/SystemMgr.h ���ɤ�Ǥ���������

����

WinDrawChars()�ؿ��ϡ����ꤵ�줿���̾�κ�ɸ��ʸ�����ɽ�����ޤ���

WinDrawChars( "Hello, world!", 13, 55, 60 );

�ᥤ�󡦥��٥�ȥ롼��

���ץꥱ�������ϡ�appStopEvent��������ޤ�(���ΰ�̣���̤�) ����³���ޤ���

//  �ᥤ�󡦥��٥�ȥ롼��
do {
        .
        .
        .
// appStopEvent �������ä��� PilotMain ����꥿���󤹤�
} while (event.eType != appStopEvent);
���ץꥱ������󤬤��Υ��٥�Ȥ������ä����ˤϡ�ɬ�פʸ�����򤷤���ˡ� PilotMain����꥿���󤹤�褦�ˤ��ޤ���

���٥�Ȥ��������

EvtGetEvent�ؿ��Ϻǽ�ΰ������ѹ�����Τ������Ѥ�����ޤ��� ���δؿ����鵢�äƤ���Ȥ��ˤϡ����ʤ�������Ĥ��Υ��٥�Ȥ� ȯ�����ơ�OS �����ץꥱ���������Ф��Ƥ�������Τ��Ƥ���Ȥ������֤Ǥ���

EvtGetEvent( &event, evtWaitForever );

���٥�Ȥ��������

�¤ϡ����ץꥱ�������ϼ�ʬ���Ϥ���뤹�٤Ƥ����渢�򰮤äƤ��ޤ��� ���������̾�Υ��ץꥱ�������ǤϤۤȤ�ɤΥ��٥�Ȥ� Palm OS �� ���������ߤ�����礬¿���Ǥ��礦�����Τ���ˡ������ƥब�󶡤��Ƥ��� ���٥�Ƚ����롼����ؿ����󶡤���Ƥ��ޤ��� SysHandleEvent()��ƤӽФ����Ȥǡ��ܥ���� Graffiti ��Ϣ�� ���٥�Ȥ򥷥��ƥ�˽��������뤳�Ȥ��Ǥ��ޤ��� ���δؿ���ƤӽФ��ʤ��� Palm OS �ϡ��̤Υ��ץꥱ��������ư���뤿��� �ܥ��󤬲����줿�Ȥ������٥�Ȥ�������뤳�Ȥ��Ǥ��ޤ��� ����Ϥ��ʤ�����ߤΥ��ץꥱ���������Ф��� appStopEvent�� �����ʤ����Ȥ��̣���ޤ������η�̡�``Hello, World''�ץ������� �ɤ���äƤ⽪λ�Ǥ��ʤ��ʤäƤ��ޤ����Ȥˤʤ�ޤ��� �ºݡ��Ÿ����դΥܥ���⤭���ʤ��ʤäƤ��ޤ���Ǥ�!

��������Ƥߤޤ��礦�� SysHandleEvent()��ƤӽФ��Ƥ���Ȥ����򥳥��ȥ����Ȥ��ơ� �ƥ���ѥ��롢�ƥ��󥹥ȡ��뤷�Ƥʤˤ������뤫��ƤߤƤ��������� ���եȥꥻ�åȤ��뤿��Υ��९��åפ��Ѱդ��Ƥ����Ƥ���������!

Hello, World �ץ������˴ؤ�������

���餯�����Ĥ����Ȼפ��ޤ��������Υץ������ϥ��٥�Ȥ˴ؤ��Ƥϡ� ���ڥ졼�ƥ��󥰥����ƥ�˽��������뤿��ˤ��Υ��٥�Ȥ��Ϥ�ľ������ �ʳ��ˤϤʤˤ⤪���ʤäƤ��ޤ��� ���ε���ˤϤ�äȥ��������ƥ��󥰤����񤯤��Ȥ���«���ޤ�!


���Υڡ��� ���Υڡ��� �ܼ���