If you have the Bling Bling for it, get a WinCE 3.0 (PocketPC) system. I'm quickly becoming an expert in this field, so I know what I'm talking about.There are 4 major systems on the market right now: HP Jornada 540 series, Compaq iPaq 3600 series, Casio E-115, and the Casio EM-500 series (differentiated by case color). I have the 548, the 3630 and the EM500 blue. (Not rich, just toys from work )
The Jornada sucks ass and should be avoided at all costs. It has a screen that can't be seen AT ALL outdoors. You can't even tell the thing is on.
The Casio E-115 is a decent system, but feels funny in the hand. 32 Meg ram, decent processor, older screen.
The Casio EM-500 has the only 16bit color screen on the market and is beautiful. However, it has 16Meg ram... not very much. However, it has an integrated CompactFlash spot on top to add storage RAM very easily (albeit expensively).
The iPaq is my baby. It has a StrongArm @206Mhz. The screen is 12-bit, but is front reflective. That means it looks better in sunlight with no light used... great on power consumption. The problems, it has a mechanical problem in that a stylus will wear, and not stay latched properly in the machine after a while... minor problem. The other problem is a design decision: only one button can be pressed at a given time. This is very bad for your GameBoy emulator because you can't move and shoot at the same time, etc... Also, for expandibility, you have to buy another sleve for putting in the compactFlash card or PCMCIA card (the PCMCIA sleve is on back order for months... don't plan on getting one soon).
PocketPC OS is amazing. It's a variation of Windows CE 3.0 built specifically for these devices. 16bit colour 240x320 screen by default. It has Word, Excel, Book Reader, Outlook, Notepad, Calendar, Tasklist, Contacts, Calculator, some others... all built in. Windows Media Player 7 just came out for it, and mp3s sound great. WMP7 on the desktop will very nicely interact with it.
As for programming, it's just Windows programming. You have MFC and ATL to work with, as well as the regular C runtimes and Win32 API. The API is a reduced set from NT, but the things that are missing are mostly legacy support (like, Windows 3.1 functions), redundant functions and some ASCII things that are taken out, as it is a UNICODE operating system. Visual C++ and Visual Basic for WinCE 3.0 is free. Programming is standard and downloading is done via ActiveSync. You can do line-by-line debugging, just like a desktop app.
Games are great. Go to www.jimmysoftware.com to see some games this guy has... very nice... including full-on DOOM. Also, a Gameboy Emulator just cameout that works very well.
Finally, handwriting recognition is so much better than Grafiti. It takes a couple of hours to become very proficient at it. If that's not enough, check out Scott and Michele's software site to download QuikWriting... it's a superfly handwriting recognition program that fits right into the OS.
Overall, it's some awesome stuff. I'm looking into it for work, and this is the definite route I am taking there. Also, watch for this fall when the new iPaq comes out with a 412Mhz chip and 64Meg ram built-in. I don't know if they'll fix the button problem or not, but I have my fingers crossed.
Hope that helps.