PalmOS

From

Jump to: navigation, search

Palm PDA's programmeren

De Palm m505 in bezit van Tkkrlab (ligt bij hfmanson) met cradle moet worden gevoed met een 5V voeding.

Uploaden van software naar de PDA

In Ubuntu installeer het pakket pilot-link waarmee je met de cradle en USB programma's kunt up- en downloaden naar de PDA. Voordat deze programma's werken usbserial en visor linux modules laden:

sudo modprobe usbserial
sudo modprobe visor

uploaden van bijvoorbeeld het bestand Spirograaf.pdb

pilot-xfer -p /dev/ttyUSB1 -i Spirograaf.pdb

In C met PalmOS API

TBD

In Java met het opensource platform SuperWaba

Deze instructie gaat uit van NetBeans 8.0.2 in combinatie met JDK1.6. N.B. Netbeans 8.2+ werkt niet meer, daar kun je niet langer Source/Binary format 1.3 instellen en JDK1.8 beschouwt -source 1.3 als 'deprecated'

  • Pak Media:superwaba.tar.gz ergens uit, in dit voorbeeld in de homedirectory ~.
  • Creeer een nieuw Library in Netbeans met Tools->Libraries->New Library... Library Name: SuperWaba, Library Type: Class Libraries
  • Classpath: ~/superwaba/lib/SuperWaba.jar, Sources: ~/superwaba/src/java en Javadoc: ~/superwaba/docs/html

Vul bij de project properties bij Run in:

  • Main Class: waba.applet.Applet
  • Arguments: /datapath . /scale 2 /bpp 16 <ClassName>

Als je het programma uitvoert draait het in een SuperWaba emulator.

~/superwaba/docs/SuperWaba\ Companion.pdf is een goede handleiding over SuperWaba.

Voorbeeldproject: Media:wabajolly.tar.gz


SuperWaba installeren op de PDA

Voor een Palm m505:

cd ~/superwaba/lib/vm/palm/68k/PalmOS5_or_4_with_16bits_screen
pilot-xfer -p /dev/ttyUSB1 -i SuperWaba.prc
pilot-xfer -p /dev/ttyUSB1 -i SWNatives.prc
cd ~/superwaba/lib/vm/xplat
pilot-xfer -p /dev/ttyUSB1 -i SuperWaba.pdb

Voor een Palm m100 (zeno):

cd ~/superwaba/lib/vm/palm/68k/PalmOS3_or_4_with_8bits_screen
pilot-xfer -p /dev/ttyS0 -i SuperWaba.prc
pilot-xfer -p /dev/ttyS0 -i SWNatives.prc
cd ~/superwaba/lib/vm/xplat
pilot-xfer -p /dev/ttyS0 -i SuperWaba.pdb

Voor een PalmPilot Professional:

cd ~/superwaba/lib/vm/palm/68k/PalmOS3_or_4_with_8bits_screen
pilot-xfer -p /dev/ttyUSB0 -i SuperWaba.prc
pilot-xfer -p /dev/ttyUSB0 -i SWNatives.prc
cd ~/superwaba/lib/vm/xplat
pilot-xfer -p /dev/ttyUSB0 -i SuperWaba.pdb

Uploaden van je SuperWaba programma

Voor het uploaden van een java programma gebruik ik een aparte 'deploy' directory:

tkkrlab@tkkrlab3scherm:~/henri/waba/ChainReaction$ ls -l
total 44
-rw-r--r-- 1 tkkrlab tkkrlab  2202 2012-05-01 21:35 build.xml
lrwxrwxrwx 1 tkkrlab tkkrlab    66 2012-05-01 21:33 ChainReaction.class -> ../../NetBeansProjects/WabaChain/build/classes/ChainReaction.class
-rw-r--r-- 1 tkkrlab tkkrlab    84 2012-05-01 16:46 ChainReaction.lnk
-rw-r--r-- 1 tkkrlab tkkrlab 13743 2012-05-01 21:35 ChainReaction.pdb
-rw-r--r-- 1 tkkrlab tkkrlab  7043 2012-05-01 16:46 ChainReaction.prc
lrwxrwxrwx 1 tkkrlab tkkrlab    72 2012-05-01 21:33 ChainReactionWindow.class -> ../../NetBeansProjects/WabaChain/build/classes/ChainReactionWindow.class
lrwxrwxrwx 1 tkkrlab tkkrlab    62 2012-05-01 21:34 Character.class -> ../../NetBeansProjects/WabaChain/build/classes/Character.class
lrwxrwxrwx 1 tkkrlab tkkrlab    58 2012-05-01 21:34 Point.class -> ../../NetBeansProjects/WabaChain/build/classes/Point.class
tkkrlab@tkkrlab3scherm:~/henri/waba/ChainReaction$ 

Hier worden softlinks gemaakt naar de .class files die worden gegenereerd door NetBeans. De inhoud van build.xml:

<?xml version="1.0" encoding="iso-8859-1"?>

<!-- simple project ant build file -->

<project name="ACME" default="run-warp" basedir=".">

<description>
Simple script to runs Warp and Exegen, ideal to be called from Eclipse.
Just copy to your program's directory and create the ant target.
Exegen needs to be called just once (unless you are creating wince install files),
and Warp must be called every time a class is changed.
</description>

<!-- change these properties to match yours -->
<target name="init">
  <property name="sw.root" value="/home/tkkrlab/henri/palm/superwaba"/>
  <property name="version"	 	 value="1.0"/>
  <property name="app.creator"   value="ChRe"/>
  <property name="app.name" 	 value="ChainReaction"/>
  <property name="main.class" 	 value="ChainReactionWindow"/>
  <property name="app.title"     value="ChainReaction"/>
  <property name="app.package"   value="*.class"/>

  <echo message="Superwaba SDK root folder is ${sw.root}"/>
</target>
<!-- no changes should be needed from here to the end -->

<target name="run-warp" depends="init" description="Executes Warp.">

  <java classname="superwaba.tools.Warp" fork="yes" dir=".">
    <classpath>
      <pathelement location="."/>
      <pathelement location="${sw.root}/lib/SuperWabaTools.jar"/>
      <pathelement location="${sw.root}/lib/SuperWaba.jar"/>
    </classpath>
    <arg value="c"/>
    <arg line="/C ${app.creator}"/>
    <arg line="${app.name}"/>
    <arg value="${app.package}"/>
  </java>
</target>

<target name="run-exegen" depends="init" description="Executes Exegen.">

  <java classname="superwaba.tools.Exegen" fork="yes" dir=".">
    <classpath>
      <pathelement location="${sw.root}/lib/SuperWabaTools.jar"/>
      <pathelement location="${sw.root}/lib/SuperWaba.jar"/>
    </classpath>
    <arg line="/C ${app.creator}"/>
    <arg line="/V ${version}"/>
    <arg line="/L"/>
    <arg line="${app.name} ${main.class} ${app.name}"/>
  </java>
</target>

<target name="run-warp-and-exegen" depends="init" description="Executes Warp, then Exegen.">
  <antcall target="run-warp"/>
  <antcall target="run-exegen"/>
</target>

</project>

Alleen de eerste keer de stub uploaden of als de main class naam wijzigt:

ant run-exegen
pilot-xfer -p /dev/ttyUSB1 -i ''programma''.prc

Als de java source gewijzigd is (ook bij de eerste keer):

ant
pilot-xfer -p /dev/ttyUSB1 -i ''programma''.pdb