Before palmtops | Programming HP Palmtops | Windows CE | HP-320/620LX, HP-49G | Palmtop Info | End of The Line | home page

Mascotr_harvey


Palmtop Computers

Before we had palmtops

We'll begin with the History of the World, part 41...

After work, I'd ride my bike downtown to look in store windows at the HP-21, HP-35, HP-67 and HP-97. They were amazing tools, but way-beyond a minimum-wage salary.

HP XPanderIn 1979, Hewlett-Packard introduced the ground-breaking HP-41C calculator, priced at about $295. I could manage just the HP-34C ($150), but I belonged (more or less). Those were times of great innovation and cooperation; living in Palo Alto, you could feel the Renaissance expanding.

In the early '80s, we offered books and software written just for powerful little HP handheld computers. These computers were very proprietary, and support for developers from HP was minimal. If you were lucky, you could get hold of a NOMAS (Not Manufacturer Supported) internal design guide. Documents that slipped out of HP were labeled "NOMAS". Somehow it seemed that a print-out of 10MB of operating system source code in four-point type was a good way to document it.

The typical HP-71B user at the time spent $1,700 to create a fully tricked-out handheld. Those are 1985 dollars. You could get a dual-floppy PC-XT for less! I felt responsible and guilty.

While working on a project, I needed undocumented information about the computer--nearly everything was proprietary and undocumented on HP machines--so I called the Executive in Charge of Stonewalling. I explained to him that I was stuck, and needed a teensy tidbit of information to be able to complete the project; he answered (and I am not making this up) "Well, consider your project canceled." I thought about it awhile, and realized that he was doing me a favor. About the same time, PC-compatibles were getting more powerful and cheaper, so I moved on.

The HP handheld community of the '70s and '80s has split into several camps. Most of the best and brightest--the people who invented the industry--have retired. (Thanks, guys, for your vision.) Dedicated HP fans followed to the HP-48, a vertical-format, Forth-like handheld with nearly unlimited power, and truly unlimited complexity; it's at the top of handheld evolution. Now, HP has released the 49G, the machine they really should have built in 1990. The 48 and 49 both share HP's long-term blind spot: failure to recognize that small portables need simple calendars and notepads. (Apparently the HP XPander (see the mock-up on this page) was to have proven the Unified Calculator Theory, but the project was introduced, marketed, and then scrapped, all during August 2000.)

Most HP users moved to PC-compatibles. Others found clever, obscure platforms like Amiga, Forth and Linux. People entering computational fields now, use the powerful, inexpensive tools available today, but if they knew the lineage of these machines, they'd probably also long for a little box. Evolution is ruthless.

Many people still absolutely require a small, powerful, accounting / engineering / statistical / data collection machine. The universal problem remains: portable power. Everything is a compromise.

By the way, in 1981 I finally got an HP-41CV. And it worked reliably until January of 2000. If you have a replacement to spare, I'll treat it kindly; please send it to the address at the bottom of this page. Thank you.

Back to Palmtops . . .

I realized, finally, that little handhelds in sealed boxes, no matter who makes them, offer no upgrade path. After my NOMAS problems of the '80s, I was reluctant to try again. Still, in 1991, the HP 95 was a cool little machine, with features and power that were never explored (a-d, d-a converters, touchscreen, sound...). I gave it another shot, and spent months learning the machine and writing my own low-level tools.

Before my first project was finished, I knew I was doing it again. The HP 95 was much less PC-like than claimed. It was even more expensive, more proprietary, more complex, and more NOMAS-ish than earlier sealed boxes. There was still no upgrade path, and the hidden costs were devastating. When the HP 100LX was announced, I could hear the user community in unison slapping the palms of their hands to their foreheads and moaning "D'oh!"

(One surprising thing I found in the 95-era was that internal workings weren't really that hush-hush. They (HP) really didn't know any more about it than they were saying! Many programmers were ahead of them, and didn't even realize it.)

In the desktop PC world, every year brings major changes. Professionals depend on their tools; they need to grow with technologies. If you're comfortable with how the little box works today--and you can imagine using it this way until it's paid for itself--it's a wonderful way to work.

How do I program my HP Palmtop PC?

Before starting any programming project, decide what the program needs to do, who it's for, what's involved in writing it, and what you're going to do with it after you've written it.

If you're looking for mathematical exercise, perhaps you can avoid programming. Look into Lotus 1-2-3 (on the 95, 100, or 200), or Excel (on Windows CE, now called Windows Powered machines). These are powerful and versatile spreadsheets with algebraic formulas and good reporting. Many personal programs, in fact lots of the commercial software we buy, can be replaced by a few formulas in a spreadsheet.

Most personal programs manipulate data (often text) that was created by other programs. Commercial programs create the data.

If the program is for personal use, it has to solve a problem and be usable, but it doesn't have to look pretty. I've written large tools as word processor macros. I've used an old DOS Basic compiler to link Assembly language modules into quick-and-dirty command line utilities. (A key point: open text files with Basic's OPEN File$ FOR INPUT AS, and use LINE INPUT to read text files). Always add some kind of online help--a simple text file or the program source code will do--to remind yourself how it works six months later. If you're planning on reusing code, write it in C or Java.

Commercial-quality programs must look good. Most commercial software written today contains tens- or hundreds-of thousands of lines of code. It's a serious commitment--don't do it expecting to make a fortune; do it because you have a burning curiosity and a need to finish it, whether or not anybody else cares.

While you're writing programs for a portable computer, you probably won't write programs with the portable computer. Most programming tools require heavy hardware with more hard disk space than we could imagine only a few years ago.

The HP 95LX, 100LX and 200LX are special cases. While they are MS-DOS compatible, the coolest software is called System Manager Compliant. The System Manager is superficially similar to Microsoft Windows programming; well, maybe a bit easier. But poor documentation, tools, and support make it difficult to get started. I've seen Palmtop projects from several companies slip four to six months. In fact, my own HP 95 Productivity Pack slipped several months. Look for tools and information on the HPHANDHELDS / HPHAND (the name may have changed) forum on CompuServe. Wherever you look, even HP's own sources, there's a percentage of mis- or disinformation; you'll have to determine who's telling more than they know.

From what I've seen, most people develop and test on the 95/100/200. This seems slightly crazy. Try TKERNEL.EXE, the HP-emulator that runs on PC-compatibles. I've run TKERNEL under Microsoft Windows to minimize serious crashes and make it easier to shuttle code between the computers. Some functions work fine in the emulator, but crash my (early) HP 95--others are just the opposite. Cool or not, System Manager programming is tough.

Most System Manager routines are accessible from DOS programs. The interrupt 60h and 61h services are only available if the System Manager is loaded. Extended BIOS services that don't rely on those interrupts, like the interrupt 16h services, peeks, pokes and ports, are available all the time.

Probably the best compromise is to write a DOS application that uses a few low-level BIOS calls for things like power management and checking the display size. I've written several DOS programs that use different features when running on palmtops. It is way beyond the scope of this article to provide specific programming instructions. See the book Explorer's Guide to the HP 95, available in the HP 95 Utility Pack for additional tips.

Programming Later Palmtops

HP portables like the 620LX are not compatible with earlier Palmtops (or with DOS computers). Most Windows CE computers use non-Intel processors. The advantage is that you don't have to write big chunks of your program in Assembly language; the disadvantage is that for the most part, you can't write in Assembly language. If you can write a Window program in C with Win32, you can write a Windows CE application--and with fewer memory restrictions than earlier Palmtops.

If the portable is a data collection device, it needn't have the best code; it needs good data entry screens and searching, but little more custom code. This can be written in Java or another scripting languge, since data processing will be done on a bigger computer. Look for a handheld that has a standard scripting language and an easy way to get data in and out.

Windows CE Computers

Whether called Windows CE or Windows Powered, these computers are just slightly wider than the HP Palmtop PCs, making for a tight fit in your hip pocket. You can use a stylus or your fingernail on the screen to emulate a mouse. Built-in applications emulate Word and Excel, in much the same way Microsoft Works emulates Microsoft Office.

Most Windows CE machines use a Hitachi processor, which is not compatible with the industry-standard Intel architecture. Just because it says "Windows" in the name, don't assume your Windows programs will run. The Hitachi processor means that programs--and only small programs--must be at least re-compiled for the specific platform.

Not being Windows is not a bad thing. Some releases of Windows CE support Java(TM), which means potential compatibility with the latest technologies without concern about using a sealed box. Microsoft makes a C++ compiler for Windows CE. Most modern commercial software is written in C++; if there's a C++ compiler available for any computer, there's the potential to port anything that will fit. The more you can do with software instead of hardware, the more flexible you are.

Probably the most exciting prospect of Windows CE is working in Java(TM). Here's the opportunity to write personal and portable applications. Java may be for the new century, what GWBASIC was for the '80s.

In the middle of the game, Microsoft has decided that Java is bad, so they've invented The Snidley Java, (as in "Snidley Mounties;" Dudley Doright fans will know what I mean) also known as C#. This proprietary language is capriciously different enough from anything else in the world that once you've committed to it, you've pretty-well decided against reusing programs on Linux, Palm, UNIX, Macintosh, personal information devices, or anything else that is not controlled by Microsoft.

Go to microsoft.com/msdn (you know where they live) and look for the Windows CE C++ compiler and software developer kit. Depending on their mood, it may be free, or several hundred dollars. It's a big package and a very big learning curve. Proper documentation will probably require the Microsoft Developer Network CD, which begins at $195 for a one-year subscription.

Since you're writing in a portable language, remember to think portable. It's necessary to use some platform-dependent calls, such as Win32. If you can isolate the front-end from the core application, you will have a better chance of reusing the code on other platforms. Simple code is portable code, and it gives the compiler more opportunities to create the best program for the platform.

Finally, avoid using pointers, magic numbers, things like assuming little- or big-endian, and shifting to multiply or divide (if you absolutely demand a non-standard way to multiply by two, add it to itself). Get plenty of rest, drink lots of water, turn the radio down and the lights up, and remember your family and friends.

What about the HP-320/620LX, 49G?

Sealed boxes. Proprietary hardware and operating system. Limited expandability. Expensive.

Tiny personal information managers from Sharp, Casio and others have 64-256K of memory and cost $40-150. They're limited, but you're not out much if you drop one in the duck pond in Encanto Park. Palm handhelds, while targeted for elimination by one powerful competitor, look like a good prospect if they improve their operating system.

If you need more power in a handheld, the 620LX is tempting. With 16MB of memory, 75MHz processor, 640x240-resolution color touch-screen, voice recording, word processor with spelling checker, and Windows CE 2.x, there's a lot to recommend it. This sealed box is software- and memory-upgradable, with plug-in slots of every conceivable size. The downside: expect only about 5 hours of battery life (10 hours with optional battery pack); it's also big (7.8x5.1x1.4) and heavy (20.6oz).

While initially an exciting prospect, I have not purchased a 49G. Apparently much of the built-in code is based on the HP-71B, of the mid-80s, with a pinch of 48G added for taste. The 71B was a pleasure to use -- in its time. Imagine using a computer today with a number pad, three shift keys, four cursor keys, and 32 function keys, but no other data entry keys; that's the 49G -- you're only slightly better-off than with a Palm Pilot, which has almost no keys at all. In the Intel/x86-compatible world, new generations of processors use tricks to keep power consumption in-line as performance improves, while the processor of the 49G has remained virtually unchanged for about 16 years, even though they have increased the clock speed from 0.6MHz to 4.0MHz. No really, the 71B was pretty fast at 0.6MHz; it was an efficient processor. Simply increasing processor speed 6.6x has increased power consumption, with potentially decreased stability -- questionable choices for a portable computer. The folks at Corvallis are mostly gone; design and documentation are now handled offshore, by non-native English speakers; this means the quality of HP manuals has reached the level of, say, motherboard manuals.

You'll likely see few professional programmers writing for HP's handhelds today. Here's the introductory paragraph from the HP-48 Machine Language Compiler (Masd) manual:

"1.1 Generalities on ML (Machine Language)
As the Saturn processor directly executes ML, the operating system can not control what a ML program is doing. On the HP 48 calculator, user data are stored in the same area as temporary data. When there is a bug in a ML program, you have best chance to lost your data’s. So be very careful when programming in ML. ML is a processor dependent language, so what you will learn on the HP 48 will not be useful on other processor. On the other hand, the programming techniques you will acquire are not dependent of the hardware and then will be reusable."

Imagine wading through, let alone learning from, whole manuals written like this. Imagine, further, trying to write commercial-quality programs with it.

Where can I get information about Palmtop PCs?

The world's largest HP-handheld dealer for twenty years was EduCalc, in Laguna Niguel, California. They were fanatical about handheld machines--if HP didn't make what you wanted, EduCalc probably found somebody who did. A few years ago HP just about deserted the technical professional, and changed their marketing plans. They made it difficult for EduCalc to make a living. After twenty years of faithful service to Nobel laureates, NASA, and engineers, EduCalc and Jim Carter could no longer compete with the discounters. Cutthroat competition drives out quality service.

EduCalc sold my first commercial software in 1982, and my first book in 1984; it was a long and pleasant experience. We'll miss them.

About your 95/100/200 and Windows CE, CalculatingEdge, in Corvallis Oregon, promised to continue the EduCalc tradition, e-mail: support@calculatingedge.com. Sadly, they too have gone.

User's groups come and go; try the Links page.

2001: The End of The Line

HP XPanderIn November 2001, Hewlett-Packard reorganized, eliminating their last diehard calculator developer division in Australia. There will be no more HP calculator development. (At least not by HP.) Okay, there is has been some new development--some little corner of HP in the Orient, has tried the calculator business again; you can identify modern designs by the silvery paint and rubbery keyboards.

A hundred years ago, General Motors made bicycle parts (I have some genuine Bayless and Wile wheel hubs to prove it). Somewhere along the way they decided that they were better off concentrating on their core technologies; no sense cluttering the P&L with footnotes that amount to less than garnishes for the executive lunchroom. (Not noting that for the purveyor of said garnishes, it was a living, and if they were no longer there, executives might miss them.) Sometimes big companies don't want to do small things. It's much the same for HP; they'll market clone handhelds using Microsoft designs. They may participate in a standards-based handheld computer group. We'll miss the garnishes.

HP may continue to sell existing calculator models until: (a) slow movers are out of the warehouse, (b) they are too far behind the technology curve, (c) they aren't economical to produce, (d) they forget.

I've used and/or coveted HP calculators for much of my life. I mourned the passing because I will never understand HP machines as well as I want. Still, the worlds of art and science are better for the HP community.

The Texas Instruments Voyage(TM) 200 Personal Learning Tool is worth a look.

Send your HP calculators to:
R.E. Harvey
P.O. Box 10086
Glendale AZ 85318-0086

Top | Notice | Home | | © Copyright 2007 R. E. Harvey, All rights reserved.