Exploring the HP 38G ROM

Jordi Hidalgo, #1046

On October 6th, 2000, I posted an article to the discontinued “HP in Education” forum stating that I had found an Easter egg in the HP 38G firmware. Here’s the whole scoop.

I had recently uploaded the ROM of my HP 38G using the ROM upload aplet written by Jean-Yves Avenard. Once in my PC, I tried to view it using a hex editor (in dump mode) with the intention of identifying copyright strings, available messages… I guess it could be considered as hacking around.

And then I saw these strings: “Dino”, “Spinning World”, “Elsie”, “Cows”. I couldn’t believe what I was seeing!

I recognised the entries #02D9Dh (DOCOL) and #0312Bh (SEMI) around them. Thus, the strings were embedded in a program. I calculated the entry point and after a few attempts, I typed SYSEVAL 171591 on the HOME environment of my HP 38G, pressed ENTER and saw this screen:

I thought it was a joke! Then I pressed the softkeys and noticed they were not functional:

Had I discovered an Easter egg? I thought so. But, how could it be kept hidden for five years? Well, the design team dissolved (although Jim Donnelly, Dave Arnett and Feng Yuan kept posting valuable articles to comp.sys.hp48) and Avenard’s aplet was published in 1998. Very few folks have been interested in the internals of this machine (Steve Dunham and Detlef Müller primarily). And it’s just an HP 38G :-)

Colin Croft, who has worked on the design of the HP 39G, told me that there was a sketchpad planned at an early stage. A sketchpad is an editing environment such as the list environment or the notepad, which can be used for creating, deleting, viewing and transmitting sketches.

Mark Howell, curriculum advisor at HP ACO, has confirmed that the sketchpad was implemented at one time. And it was accessed through shift-0, where the program catalogue currently lives. He added that it was abandoned more because it was deemed to be of limited use, since there are full sketch views attached to each aplet already.

In fact, the sketchpad would have been helpful for sending and receiving graphic objects. In the final HP 38G in order to send a sketch to a PC or to another calculator one has to recall the value of the variable in which it’s stored (G0 - G9) while editing a program and then to send that program using the program catalogue. With a sketchpad, that procedure would be greatly simplified as the above illustrations show.

So my Easter egg became residual code left over there probably to avoid problems when recompiling the ROM source code. It consists of six entries, taking 456 bytes in total.

If you’re interested in true Easter eggs, here’s a couple of them:

You are probably aware of the RULES command…

But, did you

know this one?

Is there more hidden stuff?

Certainly. The ROM of the HP 38G has been built on that of the HP 48G. There are unit objects, the user keys are implemented and so are the alarms! Conversely, more than fifty words formerly present are now directed to this routine:

Errata

The strings mentioned above aren’t actually embedded in a program but in a list, which is used by a subroutine of the main entry point at #171591d.

Also it’s worth noting that Dave Arnett didn’t belong to the HP 38G design team. Nevertheless, his postings have been very valuable.


johil@tv3mail.com
Page last modified : 27th May 2002