PalmOS
From
Contents
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