Palm OS emulator
Palm OS Development Overview Architecture Palm OS Application Development Conduit Development Web Clipping
Overview Numbers Devices
Overview - Numbers Palm has shipped over 12 million devices Handspring has shipped over a million devices Palm OS accounts for over 86% of PDA sales
Overview - Numbers
Shipping Palm OS Devices Device OS Memory Features Palm Vx 3.5 8MB Slim, rechargeable Palm IIIc 3.5 8MB Color, rechargeable Palm VIIx 3.5 8MB Web Clipping Palm m100 3.5 2MB Low end Palm m105 3.5 8MB Low end with more memory (IIIxe replacement) Symbol SPT 1500 3.0 2/4MB Barcode scanner Symbol SPT 17XX 3.2 2/8MB Barcode scanner, wireless Kyocera 6035 3.5 8MB Cell phone, Web clipping, rechargeable Handspring Visor 3.1 2/8MB Springboard slot, USB Handspring Prism 3.5 8MB Springboard slot, Color, rechargeable, USB Handspring Platinum 3.5 8MB VZ processor (faster), USB, springboard Handspring Edge 3.5 8MB Slim, rechargeable, USB, springboard Sony CLIE 3.5 8MB Memory stick, USB TRG Pro 3.3 8MB Compact Flash slot
Announced Palm OS Devices Device OS Memory Features Palm m500 4.0 8MB Slim, rechargeable, expansion slot, USB cradle, universal connector, vibrating and silent alarm Palm m505 4.0 8MB Color, slim, rechargeable, expansion slot, USB cradle, universal connector, vibrating and silent alarm Samsung SPH-I300 3.5 8MB Cellular phone, color, slim, rechargeable, 160x240 resolution Garmin ? ? Embedded GPS
Architecture Motorola 68k Processor User Interface Graffiti handwriting recognition Wireless
Architecture – Processor Motorola 68x328 Dragon Ball 16-33 MHz Similar processing power of an early Macintosh 8MB RAM addressable Single UART for serial and IrDA
Architecture – User Interface
Architecture – Graffiti
Architecture - Wireless Palm VII Integrated transceiver Mobitext network Lacks full TCP/IP support Supports InetLib which provides an HTTP oriented interface No cookie support (OS 4.0 will have cookie support)
The back-end Palm Desktop HotSync Conduits
The back-end Demonstration
Palm OS App Development C++ - CodeWarrior, GNU Satellite Forms CASL Forms Pendragon Forms Visual Basic (Appforge) Java 2 Micro Edition Misc – nBasic, TinyC, Forth, etc.
POSE Palm OS Emulator Windows, Mac & Linux Uses ROM images Useful for debugging Gremlins CodeWarrior integration
POSE Demonstration
Databases Implemented as a collection of relocatable chunks of memory accessed via handles using Dm functions They have nothing to do with modern relational databases Saved by generic conduit as a .PDB file The developer determines record layout Less than 64k limit to record length Records may be Deleted or Archived
A simple C app Functions Resources Palm Main Application Event Handler Form Event Handler AppStart Message loop AppStop Resources
C app – PalmMain Check ROM version Check launch code Call AppStart Open first form Run the App Event Loop Call AppStop
C app - AppStart Open and/or Create database(s) Load preferences
C app - Message Loop static void AppEventLoop(void) { UInt16 error; EventType event; do EvtGetEvent( &event, evtWaitForever ); if ( ! SysHandleEvent( &event ) ) if ( ! MenuHandleEvent( 0, &event, &error ) ) if ( ! AppHandleEvent( &event ) ) FrmDispatchEvent( &event ); } while ( event.eType != appStopEvent ); }
C app - AppStop Save preferences Close Databases Close all open forms Clean-up
C app – Demo
Conduits Development Tools Functionality Conduit Wizard Demo
Conduits – Development Tools Microsoft VC++ Delphi 4.0 desktop supports COM
Conduits – Functionality Decide what functionality your conduit will implement Two-way mirror image synchronization Upload from the organizer Download to the organizer Custom
Conduit Wizard Demonstration
Web Clipping Index vs. Local vs. Remote pages Elaine Tags Tables QAB
Web Clipping – Tags <smallscreenignore> %deviceid %zipcode <META NAME="PalmComputingPlatform" CONTENT="TRUE"> <META NAME="PalmLauncherRevision" CONTENT="X"> <smallscreenignore> %deviceid %zipcode Frames aren’t supported
Web Clipping – Tables Tables are supported Palm OS devices have 160 pixel wide screens, fixed width tables could end up with horizontal scrolling
Web Clipping – QAB Query Application Builder Takes simple HTML and provides framework
QAB - Demo Demonstration
Resources www.TargetYourHand.com (soon) www.PalmOS.com Get on the PalmDev mailing list Mailing list archive at www.Escribe.com
Fin Questions? Thanks!