Version 69 of Windows/CE

Updated 2006-06-22 20:53:11

Source and binaries for Pocket PC can be found at http://sourceforge.net/projects/tcltkce


In January 2006, eTcl has been released. It is another (binary) distribution of Tcl/Tk for Windows CE (supports both PocketPC and Smartphone), based on up-to-date (8.4.13) core, available as a single executable (no installation required), with fully functional sockets, scrollbars, native menus, and many extensions...


Rainer Keuchel has completed a port of Tcl/Tk 8.4a2 for WinCE on PDAs using his celib.dll [L1 ] porting library. Please check out his page out for the latest and greatest information at http://www.rainer-keuchel.de/wince/tcltk-ce.html .

 Current Build date is March 19, 2002, with celib v3.12

Per the release notes, "Tcl/Tk is still a bit buggy on WINCE211. It works better on WINCE300."


Wiki pages with CE-specific code or ports are listed at PocketPC


In July, 2003, Jeffrey Hobbs uploaded Tcl/Tk 8.4.4 final binaries for WinCE 3.0 ARM devices to, which were updated to Tcl/Tk 8.4.12 (prerelease) binaries for WinCE 4.2 in Nov 2005, available at:

  ftp://ftp.tcl.tk/pub/incoming/tcltk8_4_12_ce-arm.zip

It includes the full Tcl/Tk + celib binaries needed for operation. There is a README on how to install it (you will need to set a few registry settings on your PocketPC device). In addition to Tcl/Tk, you will find tcllib1.8 and bwidget1.7, which both work out of the box (pure Tcl), and itcl/itk 3.3 as a proof-positive TEA ported library (works like a charm).


28sep03 jcw - There is a WinCE build of Metakit, so the first hurdle to running Starkits on PocketPC is gone. I've also created a starkit package which can be used with tclsh. There are a few pieces still missing to run on PocketPC, see [L2 ] for details. If you want this to happen, please get in touch.

30sep03 MPJ - It looks like the pieces are starting to come together for running Starkits on the PocketPC. jcw has compilied zlib, vfs, mk4tcl and rechan. It does not run a Starkit yet but it is getting close. I have been testing the zlib and mk4tcl and they seem to work very well.


JM-The following screenshot belongs to an excellent application called iFile 1.1, developed by Richard Suchenwirth: I am using it on a iPAQ h1930. works great!

http://mywebpages.comcast.net/jakeforce/TclTk_PocketPC.png


What was involved in compiling/porting the above extension (tktable)? I'm really interested in porting an application (Scid - http://scid.sourceforge.net ) to run on the PocketPC. This app is based around a Tcl/Tk extension (Don't know whether it is TEA compliant or not - I'm not sure how to tell either but will look into it at the weekend).

(That said, there would be quite some work already re-working the large search screens to work well in 240x320. I don't imagine this will be a quick project.)

10oct03 - See How to build for WinCE


Is anyone working on doing a build for the Intel PXA250/255 processor, such as is found in the NEC Mobilepro 900?

MNO -- In general, I believe that the ARM binaries work on the XScale processors under PocketPC 2002 (I am using the above Tcl 8.4.3 binary on my Fujitsu-Siemens Pocket Loox 600 which uses the PXA250 processor).

FW: Note, however, that XScale provides an extended instruction that can be specially compiled for. XScale 400MHz processors are actually about the same on Pocket PC 2002 (some say slower) than 206MHz counterparts from other ARM processors, but PPC2003 changes that.

But I'm rambling. ;)


Screenshots:

 Example of a simple Editor 

http://www.rainer-keuchel.de/wince/tcltk1.jpg

 Tkcon on a pocketpc 

http://www.eteamz.com/cmym/images/Tkcon1.jpg http://www.eteamz.com/cmym/images/Tkcon2.jpg [L3 ]

 TkNotePad (with or without a menu bar)

http://www.eteamz.com/cmym/images/tknotepadb.jpg http://www.eteamz.com/cmym/images/tknotpadm.jpg [L4 ]

 Tabbed Notebook and Tree Widget from D. Richard Hipp

http://www.eteamz.com/cmym/images/notebook.jpg [L5 ] http://www.eteamz.com/cmym/images/tree.jpg [L6 ]

http://www.eteamz.com/cmym/images/calculator.jpg [L7 ]

"Tcl lets you put the world in your pocket..." http://www.eteamz.com/cmym/images/tclworld.jpg [L8 ] http://www.eteamz.com/cmym/images/tclworld2.jpg

Download

http://www.rainer-keuchel.de/wince/dirlist.html

  1. Get the tcl generic tcltk package [L9 ].
  2. Then get your specific processor's binary package: SH3 [L10 ], ARM [L11 ], MIPS-palm [L12 ], MIPS-hpc [L13 ]
  3. Next get the celib package [L14 ] currently version 3.13.
  4. Finally get the WinCE desktop tools [L15 ]. This will allow you to update the registry from your desktop.

Installation

  1. Install the celib.dll for your processor specific platform in the '\Windows' directory on your WinCE device.
  2. Unpack and install tcltk. See directions on Yakumo Alpha page.
  3. Unpack the cereg.exe file from the WinCE desktop tools and place it in a directory with the batch file at the end of this note (on your desktop PC). Configure the batch file per your installation and then run it from the command line to update your WinCE device's registry.

RUNNING

  1. Wish84d and Tclsh84d can be run by chooing them in the Explorer Window.
  2. A Tcl or Tk file extension can be associated with Wish84d in the Windows Registry (see file wince_tcktk.bat).

[Add notes on how to run a file here] MPJ

NOTES

Currently contains the registry binary package (1.0). I have also checked this out with the tcltk only packages: Bwidget (1.3.0) and tcllib (1.1). I have also tested this out with tkcon.

Also to talk to the serial ports the valid names are "com1:", "com2:" and "com4:".

Please report bugs you find to Rainer Keuchel [L16 ] or to wince-devel [L17 ]


FILE: wince_tcktk.bat

   ::- Basic System Configuration
   REM Make changes here for your system
   set basepath=\Program Files
   set wish=%basepath%\Tcl\bin\wish84d.exe
   set tclsh=%basepath%\Tcl\bin\tclsh84d.exe
   set libdir=%basepath%\Tcl\lib
   set bindir=%basepath%\Tcl\bin
   set tcllibdir=%libdir%\tcl8.4
   set tklibdir=%libdir%\tk8.4

   ::- TclTk file associations
   cereg -k "HKCR\.tk" -n "" -v "tclfile"
   cereg -k "HKCR\.tcl" -n "" -v "tclfile"
   cereg -k "HKCR\tclfile" -n "" -v "TclTk Script"
   cereg -k "HKCR\tclfile\DefaultIcon" -n "" -v "%wish%,0"
   cereg -k "HKCR\tclfile\Shell\Open\Command" -n "" -v """"%wish%""" ""%%1"""

   ::- Tcl file associations
   cereg -k "HKCR\.tsh" -n "" -v "tshfile"
   cereg -k "HKCR\tshfile" -n "" -v "Tcl Script"
   cereg -k "HKCR\tshfile\DefaultIcon" -n "" -v "%tclsh%,0"
   cereg -k "HKCR\tshfile\Shell\Open\Command" -n "" -v """"%   tclsh%""" ""%%1"""

   ::- Environment Info
   cereg -k "HKLM\Environment" -n "TCL_LIBRARY" -v "%tcllibdir%"
   cereg -k "HKLM\Environment" -n "TK_LIBRARY" -v "%tklibdir%"
    REM Height of 10 is ok, 14 does almost full screen
   cereg -k "HKLM\Environment" -n "ROWS" -v "14"
    REM MAX Width for PPC is 29 Chars
   cereg -k "HKLM\Environment" -n "COLS" -v "29"
    REM Home
   cereg -k "HKLM\Environment" -n "HOME" -v "\\"
    REM Temp
   cereg -k "HKLM\Environment" -n "TEMP" -v "\Temp"
   cereg -k "HKLM\Environment" -n "TMP" -v "\Temp"
   cereg -k "HKLM\Environment" -n "TMPDIR" -v "\Temp"
   cereg -k "HKLM\Environment" -n "TEMPDIR" -v "\Temp"
    REM Path
   cereg -k "HKLM\Environment" -n "PATH" -v "%bindir%;"
    REM Username
   cereg -k "HKLM\Environment" -n "USER" -v "nobody"
    REM Debugging trace level (0 to 255)
   cereg -k "HKLM\Environment" -n "XCE_TRACE" -v "0"
    REM Debugging trace file output
   cereg -k "HKLM\Environment" -n "XCE_TRACE_FILE" -v "\xce_trace.txt"

WISHLIST/QUESTIONS

It would be really neat if there was a way to detect the keyboard input panel popping up so that apps could take appropriate action - e.g. resize/scroll/move to ensure input point is visible above the keyboard.

I've noticed other native PocketPC applications do this, and a quick bit of googling reveals that there are a set of calls relating to SIP position, I don't know e.g. if this manifests as an event that tcl can see, or if the visibility mechanism could be used???


MNO I've recently seen some PocketPC socket/fileevent strangeness - any ideas?

In fact, recently, I've seen a different problem which I suspect is also around sockets. I think this is related to having upgraded my PocketPC to Windows Mobile 2003 (Microsoft's new name for their PocketPC OS). I've tried to get the Keuchel Tcl version working there, and some programs work (although I suspect they are somewhat slower to start than under PocketPC 2002). Programs that use sockets, though, seem to fail with a messagebox "tcl: select: 10022".

I found the following reference via a Google search:- http://www.tek-tips.com/gviewthread.cfm/lev2/4/lev3/32/pid/287/qid/669645 but there were no replies there, and the OP didn't give OS or Tcl/Tk version info.

I don't know if this is likeliest to be a Tcl/Tk or celib issue (there doesn't seem to be a specific celib build for WM2003).


tcltkce project on SourceForge site http://sourceforge.net/projects/tcltkce could be used to share compiled binaries and source code.

Mailing list [email protected] could be used to discuss related problems. Please use this list to share your binaries.


See also Yakumo Alpha for detailed installation instructions on that PocketPC 2002 system, and iPAQ - iPAQ goes Japanese - HTC Magician for RS's experiences. Symbolic links in Windows/CE


Windows Mobile 2003 Smartphone is yet another derivation of Windows/CE, officially known as Microsoft Windows Mobile 2003 Second Edition software for Smartphone. TP


TCLXML/TCLDOM Does this version support TCLXML and TCLDOM?


Category Mobile | Category Operating System | PDA | PocketPC