  Palm OS AvP[VJ
  by David H. Silber palm@orbits.com

  v0.6.7, 20 September 1998
  쓇 _Akawashima@iname.com

  v0.6.7j, 25 June 1999

  ̕ɂ́APalm OS foCX̃AvP[VJ邽߂ɕKv
  ȏ񂪏Ă܂B̗ Linux OƂď
  ܂Ãc[삷Ȃ(: X UnixAGNU
  Win32łˁB)AقƂǂ̏񂪂̂܂ܖ𗧂͂łB
  ______________________________________________________________________

  ڎ

  1. ͂߂
     1.1 ̕ɂ
     1.2 Ql
     1.3 COXg
     1.4 COXg̃A[JCu
     1.5 FTP TCg

  2. c[
     2.1 pilot-link
     2.2 prc-tools
        2.2.1 Prc-tools ̃CXg[
        2.2.2 Prc-tools g

  3. Hello, World -- Palm OS vO~Oւ̏
     3.1 ܂͂Ă݂悤
        3.1.1 vÕ\[XR[h
        3.1.2 RpC
        3.1.3 CXg[
        3.1.4 vON
     3.2 (ȒP)vỎ
        3.2.1 SysAll.h -- Ƃ̃VXeCN[ht@C
        3.2.2 UIAll.h -- Ƃ̃[UC^tF[XCN[ht@C
        3.2.3 PilotMain() -- AvP[ṼC֐
        3.2.4 Launch Code `FbN
        3.2.5 o
        3.2.6 CECxg[v
        3.2.7 Cxgl
        3.2.8 Cxg
        3.2.9 Hello, World vOɊւ钍L

  4. _
  A. ͂ĂꂽlX
  B. ӎ
  C. p

  ______________________________________________________________________

  1.  ͂߂

  ȂɏĂ΂炵 Palm OS foCXĂAƂ
  ŃvOȂɌ܂Ă܂ˁBꌩƁA܂
  ŝĂJLbg𔃂Kv悤Ɏv邩܂񂪁A
  ͂̃Lbg MacOS  Windows ̏ł삵Ȃ̂łB
  A܂܂Ȑl݂̂Ȃw͂ɂA(t^``ӎ''Q)
  Palm OS ̃vOJ邽߂̃t[EGAc[J܂
  B

  ̕ł́Ãc[CXg[@Ƃ̎gɂ
  qׁA Palm OS vO߂̃`[gA񋟂Ă
  ܂Bŏ prc-tools A̐ƗďЉ܂B prc-tools
  ́AGNU gcc RpC̏ɍ쐬ꂽA`C' ̃NXRpC
  񋟂܂B܂Aprc-tools ɂ pilrc ƂA\[XRpC
  邽߂̃c[܂܂Ă܂B

  `[gȀ͂ł́Aǎ҂͂łɈʓIȃvO~O `C' 
   UNIX  ``make'' Ȃǂ̃R}hɊeł邱ƂOƂĂ
  ܂B

  āA`[gȀ͂ŐĂvOCXg[
  Ȃ΁A܂Ȃ Palm OS foCX̃f[^obNAbvĂ
  ܂傤B

  ``Ql''ŐĂ API QlɂȂ܂B

  1.1.  ̕ɂ

  ̃hLg̍ŐVł͈ȉURLœǂނƂł܂:
  http://www.orbits.com/Palm/PalmDevelopment-HOWTO.html \Av
  A낢Ȓӓ_ Palm ֌W̃N͈ȉ炽ǂ邱Ƃł
  v܂: http://www.orbits.com/Palm/.  ̕ Linux Documentation
  Project (LDP) ̈ꕔłB LDP ɊւĂ̏ڍׂA HOWTO Ɋւ
  Ă: http://sunsite.unc.edu/LDP/ B

  ̕ɊւāAC̕KvȉӏAƂ悢Ȃǂ܂A
  ɏCAhX܂ŃCB̎ɂ͕̃o[W
  YĂˁB

  ̕|󂵂ƂႢ܂A
  http://www.orbits.com/Palm/ ܂`FbNĂ݂ĂBłɑ
  |Ă邩܂B|󂪂łA SGML ̃\
  [XБĂB̉pꕶƈꏏɎQƂł悤ɂ
  vĂ܂̂ŁB

  ̕ Copyright (C) 1997 - 1998 by David H. Silber łB LDP
  HOWTO-INDEX ̒쌠̂ƂɔzzĂ܂B

  1.2.  Ql

  The Palm OS Linux Desktop HOWTO http://www.orbits.com/Palm/PalmOS-
  HOWTO.html ̕ł́AHotSync N[h pilot-link \tgEGA
  ̃CXg[@ȂǁA{IȂƂĂ܂B

  C ɏڂȂɂ́A`[gȀ͂ǂޑO

       The C Programming Language, by Brian W. Kernighan and Dennis M.
       Ritchie

  ǂ܂邱Ƃ߂܂B (: ̖{͓{󂪂܂Buv
  O~OC(Q)vo ISBN 4-320-02483-4)

  ̕ŉĂeڂƂm肽ꍇɂ́A Palm
  Computing ̈ȉ̕ǂނƂ߂܂B

  o  Developing Palm OS 3.0 Applications -- Part I: Interface Management
     http://palm.3com.com/devzone/docs/Ref1.zip

  o  Developing Palm OS 3.0 Applications -- Part II: System Management
     http://palm.3com.com/devzone/docs/Ref2.zip

  o  Developing Palm OS 3.0 Applications -- Part III: Memory and
     Communications Management
     http://palm.3com.com/devzone/docs/Ref3.zip

  (: LhLg̓{󂪔̔Ă܂BuPalmOSoCu
  vĖFRcBi(oBPЊ) ܂Au܂łł
  Palm/WorkPadvO~OWindowsŁvҁFL(I[Њ)
  ƂĂQlɂȂ܂B)

  The Palm OS Conduit Development HOWTO
  http://www.orbits.com/Palm/PalmConduit-HOWTO.html ́̕Apilot-
  link Cug Linux p̃RWbgvO@ɂ
  ďĂ܂B

  1.3.  COXg

  Pilot-unix COXǵA Matthew Cravit <mailto:pilot-unix-
  owner@lists.best.com>.  ɂĉ^cĂ܂B̃COXg
  ̃[(mandate):

       pilot-unix COXǵAUS Robotics Pilot PDA  UNIX VXe
       ꏏɎgƂɋ̂l̂߂́Ac_ƒmL̂߂̂̂łB
       ɂ́APilot  UNIX ƈꏏɎg߂̃c[JA
       Unix  Pilot p SDK ̊J̏邱Ƃɋ̂lȂǂ܂܂܂B

  ɏڍׂȏ(COXgւ̎Q܂߂)ɂẮA
  ``INFO'' ƂP܂ރC pilot-unix-request@lists.best.com.
  ĂɑĂBSubject s͖܂̂ŒӂĂB

  1.4.  COXg̃A[JCu

  pilot-unix COXg̃A[JCu(ߋ̋L^)́A
  http://www.acm.rpi.edu/~albert/pilot/.
  http://www.acm.rpi.edu/~albert/pilot/ ɂ܂B̃A[JCúA
  Chris Stevens <mailto:albert@acm.rpi.edu> ɂĉ^cĂ܂B

  1.5.  FTP TCg

  Unix Ŏg Pilot p̃c[ނ̃A[JCu
  ftp://ryeham.ee.ryerson.ca/pub/PalmOS/ ɂ܂B Jeff Dionne
  <mailto:jeff@ryeham.ee.ryerson.ca> ɂĉ^cĂ܂B

  Free Software Foundation (FSF) ́Agcc  gdb  binutils ȂǂȂǂ̂
  ̃t[ȊJc[񋟂ĂĂ܂B URL ́A
  ftp://prep.ai.mit.edu/pub/gnu/.  łB

  2.  c[

  ܂́A pilot-link, prc-tools, gcc, binutils  gdb ̔zzpbP[W
  KvłB̃c[CXg[邽߂ɂ́ALinux ɂł
  make, gcc, patch, ncurses CuɃCXg[ĂȂ
  Ȃ܂Bc[pbP[Wt@CQƂ鎞́AC
  Xg[vtBbNXfBNg̑ΎQƂłȂ͂
  łB

  2.1.  pilot-link

  ܂CXg[ĂȂ΁A pilot-linkCXg[Ă
  BCXg[̕@ɂẮA http://www.orbits.com/Palm/PalmOS-
  HOWTO.html.  QƂĂB pilot-linkɊ܂܂Ă pilot-
  xfeŕAPalmOS AvP[V (: Palm )CXg[邽
  ̃c[łB

  2.2.  prc-tools

  Prc-tools pbP[ẂAFSF  GNU [eBeBARpCAfob
  Kx[XƂāAȃc[tJc[LbgłB
  gƂŁALinux  Palm OS \tgEGAJ邱Ƃ
  悤ɂȂ܂B

  J@Ɋւ镶͂܂葽܂񂪁Aȉɗł傤
  Pilot Software Development web page at
  http://www.massena.com/darrin/pilot/.

  2.2.1.  Prc-tools ̃CXg[

  Prc-tools ̍ŐVo[W͈ȉ_E[hł܂:
  ftp://ryeham.ee.ryerson.ca/pub/PalmOS.  GNU c[͈ȉ:
  ftp://prep.ai.mit.edu/pub/gnu.  binutils-2.7.tar.gz,
  gcc-2.7.2.2.tar.gz  gdb-4.16.tar.gz _E[hĂB
   GNU c[̃o[ẂAprc-tools ̃[X 0.5.0 KvƂ
  Ăo[WłBV prc-tools [Xł́AGNU c[
  ƐVo[WKv܂B

  ŏqׂzzpbP[WSfBNgɒu܂B܂Aprc-
  tools WJ(unpack)܂B̑̃pbP[WɊւẮA prc-
  tools  Makefile WJȂǂȂĂ܂BftHgł́Aprc-
  tools  /usr/local/gnu ɃCXg[܂B̃fBNgɃC
  Xg[ꍇɂ́AMakefile ̒ INSTALLDIR ύXKv
  ܂B܂AGNUARCHA GNU c[ufBNgɕύXĂ
   (WJ(unpack)Kv͂܂Bmake vOĂ
  )B

  ܂Â悤Ȏ菇ɂȂ܂:

  tar -xvzf prc-tools.0.5.0.tar.gz
  cd prc-tools-0.5.0
    (KvȂ Makefile ҏW)
  make gnuuntar
  make patch
    (Debian Linux ̏ꍇɂ́Agbd-4.16/gdb/Makefile.in  gbd-4.16/readline/Makefile.in
    ̒ŎQƂĂ termcap Ancurses CuQƂ悤ɕύX
    Kv܂B)
  make gnutools
    ( root [UɂȂ܂B)
  make
  make install

  2.2.2.  Prc-tools g

  Prc-tools̈ʓIȎgm邽߂ɂ́Aexample fBNg̒gA
  MakefileQƂ̂ǂƎv܂B͂̃̕`[gȀ
  łAPalm OS AvP[VRpC@ɂďqׂĂ
  B

  3.  Hello, World -- Palm OS vO~Oւ̏

  ǂȃvÕ`[gAł܂ŏɗv̂́Aǂ
  ``Hello world'' vO݂łˁB̃vO𓮍삳
  ƂŁAȂƂAPalm OS vO̍쐬@ARpC@ƃC
  Xg[̎dcł͂łB

  ЂƂӂĂׂȂ̂́APalm OS vO̓Cxghu
  ƂłB{Iɂ́A(make  more  pilot-xfer Ȃǂ̂悤
  )IȃvOƂ͂ƈāAPalm OS AvP[V͂
  ނˁACxg҂AƂ悤ȍ\Ă܂BC
  xgƂ̂́Ay_EEAbvAOtBeB́AA[Ȃ
  ́AꂼقȂCxgƂw܂B

  3.1.  ܂͂Ă݂悤

  3.1.1.  vÕ\[XR[h

  ́A``Hello World'' vÕ\[XR[hł: (: ȉł
  Ql̂߂ɁA\[XR[h̃Rg{ɖoĂ܂A
  ۂ gcc œ{̃Rgʂ邩ǂ͊mFĂ܂)

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

  // ---------------------------------------------------------------------
  // PilotMain ́AR[h(startup)ĂяoAPȃCxg
  // 郋[v琬܂B
  // ---------------------------------------------------------------------
  DWord PilotMain( Word cmd, Ptr cmdPBP, Word launchFlags )
  {
      EventType event;

      if (cmd == sysAppLaunchCmdNormalLaunch) {

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

          //  C̃Cxg[v:
          do {
              //  Cxg܂Ŗ
              EvtGetEvent( &event, evtWaitForever );

              // ܂̓VXeɃCxg@^
              SysHandleEvent( &event );

              // ʏ͂ł̑̃Cxg̏ȂB

          // appStopEvent 󂯎 PilotMain 烊^[
          } while (event.eType != appStopEvent);
      }
      return;
  }

  ȏ̃R[hDȕ@ŁA``hello.c'' Ƃt@C̃eLXg
  t@CƂĕۑĂ (ۂɂ̓t@C̖O͍Ōオ ``.c''
  ł肳΂Ȃł悢̂łAł͂Og
  )B

  3.1.2.  RpC

  Prc-tools ŎgĂ bin fBNgƃftH[gpX
  ܂܂Ă(pXʂĂ)ƂmFāAȉ̃R}h͂
  :

       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́Aprc-tools ɂĐꂽ GCC NXRp
  CB m68k-palmos-coff-obj-reśAm68k-palmos-coff-gccɂĐ
  ꂽvOAPalm OS AvP[VɕKvȂ̃ZNV
  ɕĂ܂B build-prc̓vOZNVgݗāAR}
  hCŎw肳ꂽtčŏII Palm OS vO𐶐
  ܂B

  3.1.3.  CXg[

  āAPalm OS foCX̃ẽobNAbv͊ɍςł܂
  ˁB悢hello.prcCXg[Ă݂܂傤BCXg[@
  ȉ̒ʂł:

       pilot-xfer --port /dev/ttyS1 --install hello.prc

  (Ŏw肵VAfoCX́AȂ̊ɂ킹ĕύXĂ
  )

  AN[h HotSync {^܂傤B

  3.1.4.  vON

  HotSync AAvP[V`[ ``Hello, World''
  ƂÕAvP[V͂łB_u^bv
  ΁Aʂ̐^񒆂ɁA``Hello, World!'' Ƃ͂
  B

  3.2.  (ȒP)vỎ

  āA``Hello, World''vO̍\vfƎv܂B

  3.2.1.  SysAll.h -- Ƃ̃VXeCN[ht@C

  System/SysAll.h CN[h邱ƂŁA͂̃VXeCN
  [ht@CxɃCN[h邱ƂɂȂ܂B̒ł
  Ăt@C邩܂ˁBƂ΁Am68k-palmos-
  coff/include/PalmOS2/Common.h ł Palm OS CuŜŎg
   typedef 錾܂܂Ă̂ŖڂʂĂđ͂ȂƎv
  B

  3.2.2.  UIAll.h -- Ƃ̃[UC^tF[XCN[ht@C

  UI/UIAll.h ́A[UC^[tF[XɊւ邽̃CN[h
  t@CCN[hĂ܂B

  3.2.3.  PilotMain() -- AvP[ṼC֐

  ׂĂ Palm OS AvP[Vɂ(: Hack  DA ͏)A
  PilotMain()֐݂Ȃ΂Ȃ܂B͒ʏ C ɂ
  Amain()֐Ɠʂ̂łB

       DWord PilotMain( Word cmd, Ptr cmdPBP, Word launchFlags )

  vONꂽɁAcmdɂ Launch Coden܂B
  Launch Code ɂāAAvP[Vɑ΂ĒʏƂ͈قȂ铮v
  邱Ƃ\łB

  3.2.4.  Launch Code `FbN

  Launch Code ́Acmdœn܂Bꂼ̃vO͂ Launch
  Code ̒l`FbNāAɉł邩ǂ𒲂ׂ܂B
  ``Hello, World'' vOł́Aunormal program launchvȊÕR[h
  ͖悤ɂȂĂ܂B

       if (cmd == sysAppLaunchCmdNormalLaunch) {

  Launch codeɂ́A낢ȏ󋵂ɑΏ邽߂ɂ̎ނ
  BǂȃR[ĥ݂Sm邽߂ɂ́A m68k-palmos-
  coff/include/PalmOS2/System/SystemMgr.h ǂłB

  3.2.5.  o

  WinDrawChars()֐́Aw肳ꂽʏ̍Wɕ\܂B

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

  3.2.6.  CECxg[v

  AvP[V́AappStopEvent󂯎܂(̈Ӗ̒ʂ) 葱
  ܂B

       //  CECxg[v
       do {
               .
               .
               .
       // appStopEvent 󂯎 PilotMain 烊^[
       } while (event.eType != appStopEvent);

  AvP[ṼCxg󂯎ꍇɂ́AKvȌn
  ɁA PilotMain烊^[悤ɂ܂B

  3.2.7.  Cxgl

  EvtGetEvent֐͍ŏ̈ύX̂ŕp܂B̊֐
  AĂƂɂ́AȂ킿̃CxgāAOS Av
  P[Vɑ΂ĂʒmĂƂԂłB

       EvtGetEvent( &event, evtWaitForever );

  3.2.8.  Cxg

  ́AAvP[V͎ɓn邷ׂĂ̐䌠Ă܂B
  Aʏ̃AvP[Vł͂قƂǂ̃Cxg Palm OS ɏ
  ė~ꍇł傤B̂߂ɁAVXe񋟂ĂCxg
  [`֐񋟂Ă܂B SysHandleEvent()Ăяo
  ŁA{^ Graffiti ֘ÃCxgVXeɏ邱Ƃł
  B̊֐ĂяoȂ Palm OS ́Aʂ̃AvP[VN
  邽߂Ƀ{^ꂽƂCxg邱Ƃł܂B
  ͂Ȃ킿݂̃AvP[Vɑ΂ appStopEventȂ
  Ӗ܂B̌ʁA``Hello, World''vO͂ǂĂI
  ȂȂĂ܂ƂɂȂ܂BہAdIt̃{^ȂȂ
  Ă܂ł!

  AĂ݂܂傤B SysHandleEvent()ĂяoĂƂR
  gAEgāAăRpCAăCXg[ĂȂɂN邩Ă
  ĂB\tgZbg邽߂̃[NbvpӂĂĂ
  !

  3.2.9.  Hello, World vOɊւ钍L

  炭CƎv܂ÃvO̓CxgɊւẮAIy
  [eBOVXeɏ邽߂ɂ̃CxgnƈȊO
  ͂ȂɂȂĂ܂B̋@ɂ͂ƃGLTCeBOȗ
  Ƃ񑩂܂!

  4.  _

  Ƃ낢ƃJo[ׂ_邱Ƃ͂킩Ă܂BႦ΁AtH
  [̎gƂj[₻̂ق̃\[XɊւĂłB̃v
  OłȂA@\͂ƂĂdvȂ̂łˁB܂Ƃ
  Â܂܂̏ԂŃ[XƎv܂BŏA
  Ȃ񂪃vOn߂邫ɂȂ΍KłB

  ̐̕VłȂ߂ɂ́A http://www.orbits.com/Palm/
  ubN}[NɓĂĂB

  ݓIȈӌ͑劽}łBɂ肢܂: palm@orbits.com

  A.  ͂ĂꂽlX

  Kenneth Albanowski <mailto:kjahds@kjahds.com>  pilot-link ֘Ãc[
  ێ炵ĂĂ܂B

  Wes Cherry <mailto:wesc@ricochet.net> Pilrc ̍҂łB

  Matthew Cravit <mailto:pilot-unix-owner@lists.best.com> Pilot-unixC
  OXg̉^c҂łB

  Jeff Dionne <mailto:jeff@ryeham.ee.ryerson.ca> Pilot-link ֘A\tgE
  GǍ҂łAprc-tools ̍҂ł܂B܂AUNIX Palm
  OS/Pilot JvWFNgFTP֘ÅǗ҂ł܂B

  David H. Silber <mailto:palm@orbits.com> ̒̕҂łB

  Chris Stevens <mailto:albert@acm.rpi.edu> Pilot-unix COXg
  ̃A[JCuǗĂĂ܂B

  B.  ӎ

  linux -- Linus Torvalds Ɖl̐lXɑ΂āB

  gcc -- Free Software Foundation ɑ΂āB

  binutils -- Free Software Foundation ɑ΂āB

  gdb -- Free Software Foundation ɑ΂āB

  pilot-link -- Jeff Dionne & Kenneth Albanowski ɑ΂āB

  pilrc -- Wes Cherry ɑ΂āB

  prc-tools -- Jeff Dionne ɑ΂āB

  GPL -- Free Software Foundation ɑ΂āB

  C.  p

  API -- Application Programming Interface.  vÕT[rX
  v邽߂̊֐Cu̎dlłB̕ł́APalm OS API 
  wAAvP[VIy[eBOVXe Palm OS foCX
  ܂C^[tF[X邱Ƃ\ɂ܂B

  AvP[V -- vO̖OACR̉AAvP[V
  `[̃Xgɕ\܂B

  AvP[Vʎq -- 4̕ŁAPalm OS ̃AvP[V
  j[NɎʂ邽߂̎ʎqłB

  RWbg -- fXNgbvœ삷vOŁAfXNgbvAvP
  [V Palm OS foCX̊ԂŃf[^̈ړŝłB

  Cxg -- AvP[V̊OŔۂŁAAvP[V
  ʒm̂łB

  Cxghu -- vO\̈ŁA炩ߋLqꂽ
  f[^邩ɁACxgɂɔ悤ȍ\
  ̂̂w܂B

  tH[ -- Palm foCX̉ʂ̗̈w܂B

  GPL -- GNU General Public License łB

  `R[h -- Palm OS AvP[VNꂽ܂܂ȗRw
  肵܂B

  linux -- Unix CNȁAPOSIX Rp`uȃIy[eBOVXe
  ŁAGPL ̂ƂɔzzĂ܂B

