Apparently, my experiments with Linux on a hp ipaq h4150 motivated a few 1src posters to try out the free operating system on their Palm TX’s. Tune in for a nice load of funny discussions, quarrels and – last but not least – a few cool screenshots:
http://www.1src.com/forums/showthread.php?t=129878&page=1&pp=40
When the Proporta Mobile Device Charger originally was reviewed, it didn’t really work with the Fossil/Abacus WristPDA. However, I recently experimented around with it a bit – and can now present the holy grail of WristPDA battery extensions…the extension to 3600mAH:

Getting your WristPDA to work well with the MDC takes a bit of work though – if you don’t follow the following steps exactly, a hard reset can occur:
Step 1: recharge frequently
For me, the emptier the WristPDA becomes, the more likely it will crash when connected to the charger. Don’t ask me why this happens, but I usually recharge when the WristPDA gets down to approximately 30%.
Step 2: connect cable to MDC
Connect the charging cable(I used a Boxwave MiniSync) to the MDC. Do not connect the WristPDA!
Step 3: power on MDC
Press the small button on the MDC to turn it on. When the LED has become green, wait a few seconds.
Step 4: connect WPDA
Connect the WristPDA.
Step 5: watch
The MDC has internal power-off circuitry that powers it off when no power is drawn from it for some time. This is great for a regular handheld, but not for a WristPDA due to its deep-discharge quirk. So, keep an eye on the package to make sure that the MDC is powered on all the time. I have found out that running a watch face(I used my own Binary Clock for the tests) reduces the probability of a turnoff significantly…
Overall, I can now recharge my WristPDA on the go => no more data loss… . If you have a Proporta Mobile Device Charger and a WristPDA handy, what about telling us how you fared?
John Wilund, the maintainer of SrcEdit, has just sent us the latest beta of SrcEdit v2.5.1.

The release titled Jul 16 2007 17:45:16 addresses a small bug in the function bookmarks module that caused Function bookmarks to fail if an open ( was found in a comment.
I have tested this release a bit on a Palm TX and consider it stable. If you use SrcEdit(especially the older versions without accelerated function bookmarks), please update by all means!
Download the latest release here.
With the demise of the Palm OS platform, publishers became less and less interested in creating books about Palm OS development-related topics. PODS, the only ‘somewhat supported’ IDE for Palm OS still stands without a printed documentation book…but since it’s Eclipse-based, O’Reilly sent me their Pocket Guide to fill the void(btw…it actually is pink, but my scanner somehow went on a strike):
![]()
The Pocket Guide starts out by looking at the installation process for Eclipse. PODS has a different installation system(with a wizard)…not much to gain here.
After that, Ed Burnette moves on to cover the basics of the Eclipse IDE…views, editors and perspectives. Even though the book is very compact, it contained quite a few new and interesting details that I didn’t know about before(e.g. foldout views…a real screen real-estate saver). Chapters 3 and 4 cover Eclipse usage for Java development..but reading them still pays out, as much of the process is applicable to Palm OS C development.
The remaining chapters of the book present various ‘bonus’ features of Eclipse that can be really useful. For example, did you know that Eclipse’s task view automatically parses your code for comments like //TODO?
Last but not least, the book contains a table of keyboard shortcuts that can greatly simplify the life of coders who use PODS on a laptop or generally don’t like to use the mouse much.
O’Reilly’s books never were problematic from a quality point of view. Paper quality is high, and the compact size makes transportation easy. The book contains loads of illustrations and can be read in a very short time:
![]()
Overall, if you use PODS to develop applications, you must get this book by all means! While a few pages will not be applicable to Palm OS C development, the time-saving insight given herein was a real helper even for a PODS veteran like me. The price of 10$ at Amazon’s voids all discussion…if you use PODS, get this…NOW!
Since the release of the Palm Tungsten T, Palm Inc handhelds have the capability to play back WAV files(aka sampled sound). I have recently implemented such a sound routine and found an interesting twist(due to MemGluePtrNew not working)…and felt like sharing it with you!
Essentially, sampled sound works by repeatedly calling a function and requesting that it outs wave data into a buffer, from where it is then played. The main problem here is that the callback must execute quickly and should not loose any data(frame skipping). “Wrapping around” the end of a RAM buffer can be tedious both code and performance-wise, but the Palm OS has a little-úsed but very useful feature called a file stream.
The function below is called to start the music:
void startBGM()
{
//Check if data really is UINT8
MemHandle r0,r1,r2,r3;
void *me;
//Make buffer
r0=DmGetResource(wavRsrcType,1000);
r1=DmGetResource(wavRsrcType,1001);
r2=DmGetResource(wavRsrcType,1002);
r3=DmGetResource(wavRsrcType,1003);
sounddata.stream=FileOpen(0,BGM_STREAM_NAME,NULL,NULL,fileModeReadWrite|fileModeTemporary,NULL);
//Write to buffer
me=MemHandleLock(r0);
FileWrite(sounddata.stream,me,MemHandleSize(r0),1,NULL);
MemHandleUnlock(r0);
me=MemHandleLock(r1);
FileWrite(sounddata.stream,me,MemHandleSize(r1),1,NULL);
MemHandleUnlock(r1);
me=MemHandleLock(r2);
FileWrite(sounddata.stream,me,MemHandleSize(r2),1,NULL);
MemHandleUnlock(r2);
me=MemHandleLock(r3);
FileWrite(sounddata.stream,me,MemHandleSize(r3),1,NULL);
MemHandleUnlock(r3);
FileFlush(sounddata.stream);
FileRewind(sounddata.stream);
DmReleaseResource(r0);
DmReleaseResource(r1);
DmReleaseResource(r2);
DmReleaseResource(r3);
//Start stream
SndStreamCreate (&stream,sndOutput,BGM_SAMPLERATE,sndUInt8,sndMono,SndStreamBufferCallbackFunc,&sounddata,BGM_BUFFERSIZE_FRAMES,false);
SndStreamStart(stream);
}
Essentially, it creates a new file stream, opens each of the “bits” of sound in the application database, and puts it all together into the file stream. It then creates a new stream and starts it. BTW, FileWrite’s documentation in PODS is wrong…but more on that later.
The music gets ended by this call:
void stopBGM()
{
SndStreamStop(stream);
SndStreamDelete(stream);
//Clean up buffer
FileClose(sounddata.stream);
}
This first stops and deletes the stream, and afterwards cleans up the buffer.
Last but not least, here’s the callback and the global data struct:
typedef struct{
//Contains all data that the sound stream callback needs
UInt32 framesdone;//aka where to start copying
FileHand stream;
}sounddatat;
static Err SndStreamBufferCallbackFunc (void *userDataP, SndStreamRef stream, void *bufferP, UInt32 frameCount)
{//NO GLOBALS!!!!
//Write data from buffer
UInt32 err;
sounddatat *sounddata=userDataP;
err=FileRead(sounddata->stream,bufferP,1,frameCount,NULL);
if(err!=frameCount)
{
FileRewind(sounddata->stream);
FileRead(sounddata->stream,bufferP+err,1,frameCount-err,NULL);
}
}
The sounddatat type gets passed to the callback each time the sound manager needs data. It contains all information needed to generate the next block of data. The err!= filecount bit of code is used to determine if we “ran over the end” of the file stream…if we did, the stream is rewinded and reading commences once again from the beginning to fill the buffer up completely.
What do you think?
Fixing the indentation of bigger blocks of code by hand is a big chore – thus, many intelligent editors(e.g. SrcEdit) have had automatic indentation support for quite some time. PODS can do this, too – the secret is a set of key combinations.
Press Ctrl+I to indent a selected bit of code by one tap(aka add one tab space on the beginning of each line). Press Ctrl+Shift+I to remove one tab character(or a bunch of spaces) from the front of each of the selected lines.
I have tested this with PODS 1.2 and had no problems…could come in handy some day…
Apparently, Palm’s Treo 700 series is pretty “buggy” – Palm recently released updates for the Verizon Palm 700p(other carriers are still left in the rain) and the 700w/700wx WinMobile boxen(yes, I know that that should go to TamsPPC
). Anyways, here’s a short overview:
Treo 700p – Verizon Wireless
PalmInfoCenter has a detailed look at the changes in the new maintenance release and is pretty positive about it here. However, users in the main announcement thread report problems with 1xRTT data and Exchange ActiveSync.
Essentially, this seems to be the final update for the Palm Treo 700p, putting Verizon’s version more-less on-par with Sprint’s. Pther carriers(e.g. Alltel) are ignored…
Treo 700w/wx – Verizon Wireless
These machines get various updates adding a few new features, too.
Overall, Palm has finally brought out the update for Verizon’s 700p…now we have to see what bugs remain in the 700p!
Resco Backup is an excellent backup program for Palm OS handhelds/smartphones, it scored really well in the last TamsPalm review. Anyways, Jan Slodicka of Resco just gave us a sneak peak at a few of the features in the next release:
Backup sets:
![]()
- Modified design (less used features are under the combo box Actions)
- Possibility to assign icons and notes (first notes line – when nonempty – is displayed in place of date)
- Backup set error state (e.g. interrupted due to card problem or crash) is marked by color
- Pinning means the backup set is taken out from the scheduler update mechanism (scheduler does a cyclic update of a given number of backup sets)FTP:
Displays both local and remote backup sets as indicated by the icons.
I.e. each row represents a backup set that is either local, remote or both – i.e.
local set copied to FTP.
The dialog allows for upload/download, but also for:
- Diff (fast check against a backup set description file)
- Update (Copies only the modified files)
What do you think?
P.s. Remember: you heard it here, first!
Dmitry Grinberg of PalmPowerUps fame has recently rewritten the Preferences application to support a number of new features.
- Icon support
- Custom categories
- Much more!
When it is complete, it is expected to be released under the GPLv3 license, so keep an eye open, both here and at 1src forums!
I am very sorry I cannot provide more details at this point, but my T|X is at Palm’s Repair Center currently
Dmitry’s Prefs app can be found here: http://www.palmpowerups.com/file/Preferences.prc
However, as PalmPowerUps is currently facing problems (Domain expiring, I assume), I have uploaded it to TamsPalm, here.
Many thanks to Juggernaut #2 for sending me the file and BrentDC for the screenshot
Yours truly recently had a haircut at the vienniese Schernhorst hairdresser…and saw the following interesting/unusual scene:

By good luck, I caught the head hair stylist of the shop(Mr. Schernhorst himself)…the blond girl in the background is an other stylist(she was waiting for her client) watching him in order to ‘glean’ some skills off him.
In a Micro ISV business, knowledge is the equivalent of skills..without it, employees are not capable to work(efficiently). Formal approaches like Mentoring can help distribute know-how, but ‘grassroots’ knowledge transfer is much more effective.
The main barrier to efficient knowledge transfer in a company is pride and lack of job security…an employee who feels that he will be sacked very soon won’t share any of his skills in order to make replacing him more difficult.
Also, a workplace that puts extreme value into the ‘fight alone’ mantra will not motivate people to share their precious brain juice with their peers.
To cut a long story short – your business benefits from skilled employees. Training your existing staff to increase ROI is a good thing…and having them train one another is even better!
Access has just informed us that you can get 50% off the Access Developer Day’s entry fee if you book until this Friday – the schedule is available here.
Use the discount code ACCED50 to receive 50% off the $95 entry fee. Alternatively, use the promotional code B0602 to save up to 200$ on a full LinuxWorld pass.
As said, these discounts are valid only until Friday – so better hurry up!
After having looked at the Aceeca Meazura developer module a few days ago, vivomobile sent us even more Meazura goodness…aka developer module endcaps. These endcaps allow you to “cover up” your developer module and seal the Meazura back to its waterproof state. vivomobile sent us two kinds of endcaps – read on to find out more:
The normal endcap simply gets screwed on the top of your rev6a module. You can then screw the module into a Meazura as if it were a CF module – waterproofness et al…
The wire endcap usually ships with a set of three cords that can be plugged into the ports at the top of the module. You can then solder a rev6a board to the back of the cap(solder the gold pins onto the rev6a module):
![]()
This gives you a waterproof Meazura – and the capability to route signals out of the machine!
Overall, I still like my own custom way of building circuits best(pictures coming soon). However, Aceeca really does think about its designers…if you still have any questions, feel free to post away – Aceeca reads TamsPalm(and vivo does, too)!
When building circuits, many peripherals accept data via a serial, RS232-style connection. Cheap micro controllers(e.g. PIC16F84A) don’t have an internal UART though…”bit banging” a port is due.
Dallas Maxim has published an application note on how to implement a software UART on one of its MAX controllers; but the information is also useful for most other controller types.
I needed sth like this a few weeks ago…enjoy:
http://www.maxim-ic.com/appnotes.cfm/appnote_number/4041
Printing utilities – or rather the lack of these – for Palm OS has already been covered on TamsPalm more than two years ago. Anyways, the situation hasn’t really changed…but there’s a very interesting discussion on palm-dev-forum at the moment. It could be interesting for you, so here goes(email addresses censored):
Subject: Printing in palm devices
From: “Jagat Nibas Mahapatra”
Date: Tue, 10 Jul 2007 17:24:01 +0530
X-Message-Number: 2How can printing feature can be given to Palm devices ? I could not find any
discussions on this in the forum.regards
—————————————————————-
Subject: Re: Printing in palm devices
From: “Ben Combee”
Date: Tue, 10 Jul 2007 09:07:39 -0400
X-Message-Number: 4On 7/10/07, Jagat Nibas Mahapatra wrote:
> How can printing feature can be given to Palm devices ? I could not find any
> discussions on this in the forum.Printing is not a standard feature of Palm OS. There are some
third-party libraries and applications that enable printing, such as
TealPrint (http://www.tealpoint.com/softprnt.htm) and PalmPrint
(http://www.stevenscreek.com/palm/palmprint.html).
—————————————————————-
Subject: re: Printing in palm devices
From: “Philip Sheard”
Date: Tue, 10 Jul 2007 12:48:55 -0000
X-Message-Number: 5There are a couple of commercial packages available, but they charge royalties. I chose to avoid this, and wrote my own.
First of all, you will need to write your own IrLPT (infrared for printers) and Bluetooth drivers. Bluetooth is easy, but IrLPT is a pain. IrComm (serial over infrared) is also easy, but not many printers support it.
Next, you will have to decide on formatting. Plain text is easy, and supported by most printers. Unless you are targeting a particular printer, you might want to eschew escape sequences altogether, and just rely on TAB, LF, CR and FF characters.
Another possibility is PCL. That is definitely doable, but a lot more work than plain text. The format is a lot nicer too, but you are restricted to using HP printers.
One advantage of plain text is that you can use the document for other things. For instance, you could email it to someone, or save it to an SD card, and transfer it to a desktop system.
The two main types of portable printer are inkjet and thermal. The range of inkjet printers has decreased in recent years, but a number of affordable thermal printers have emerged.
Inkjet printers usually use A4 or US Letter size cut sheets, while thermal printers tend to use much narrower rolls of paper.
—————————————————————-
Subject: RE: Printing in palm devices
From: “Jagat Nibas Mahapatra”
Date: Tue, 10 Jul 2007 18:41:26 +0530
X-Message-Number: 6Nice explaining. Don’t we have tiny printers which can be connected to the
slot the palm device has [sync slot] and can be printed from a palm device ?
Kind of pretty good scenario for sales persons..
—————————————————————-
Subject: Re: Printing in palm devices
From: Michal Seliga
Date: Tue, 10 Jul 2007 15:38:17 +0200
X-Message-Number: 9Jagat Nibas Mahapatra wrote:
> Nice explaining. Don’t we have tiny printers which can be connected to the
> slot the palm device has [sync slot] and can be printed from a palm device ?
> Kind of pretty good scenario for sales persons..check printers here: http://www.datecs.bg
we used them for our projects, they have library which gives you possibility to
print and its very easy to support it from your application. they also allow to
upload localised fonts so you can print in simple text mode and still have
printouts localisable – something we never were able to make with very common
brands like hp etc. for such company only english language exists and everything
else must be printed in graphics mode – or look for alternative hardware.unfortunately most managers of sale persons are (censored) so poor salesmen walk
with pda and huge printer because management wants their printouts big…. so to
be on safe side its better to support also ordinary irlpt and bluetooth printers>
>
>
> —–Original Message—–
>
> First of all, you will need to write your own IrLPT (infrared for printers)
> and Bluetooth drivers. Bluetooth is easy, but IrLPT is a pain. IrComm
> (serial over infrared) is also easy, but not many printers support it.
>
you may search for IrPad sources, its public domain and it works. so IrLpt part
of printing is not so big problem with its help. when you will see how its done
you will understand why IR communication is pain and you will never want to
touch it again![]()
for bluetooth its simple, you just open new serial manager and tell it to use
bluetooth. then you only write to ‘serial’. all bluetooth printers we tried
support itwith this you can also support serial printers, its same code only different
parameter to opening function


