A C Compiler For The HP49g+
Cheese Source writes "As previously mentioned on Slashdot, HP's latest and greatest calculator is the HP49g+. While it sports a very powerful (for a calculator) ARM9 cpu, it is only 3 times the speed of the 49g, running at 4MHz. This is because it has to emulate an older processor. Of course, some calculator geeks are now writing adapting a free, open-source C compiler for it. Based on GCC, you can now make programs that run natively on the CPU between 12 and 203MHz. 1000 factorial is calculated and displayed in the blink of an eye (the built in command takes 30 seconds). It will also allow for some great games."
Because the input interface (buttons vs touchpad) and output interface (greyscale vs energy-guzzling colour screen) of a calculator are more suitable for.. calculating. Pity about the crappy 49g+ keys [repaste 100000000 posts from c.s.hp48 here].
GCC has been available for a long time for the 68000 based TI calculators with TIGCC. Is this about a port of GCC that runs on the calculator?
Should only be about 3 years before Gentoo finishes compiling. Woohoo!
for those interested in the the 49g+ in all it's gory technical details.
peterrenshaw ~ Another Scrappy Startup
I suspect it was one of the two:
- Simple economics, if it's cheaper to use the faster processor and emulate the other one, it doesn't matter. Recoding for native operation may not have been possible. This is related to my second point:
- All glitches and problems with the existing design are well documented and hammered out. It may not have been feasible as I suspect there is a lot of verification that happens on these guys before they ship. If the calculator has been painstakenly debugged on one processor, it may very well be easier to insure 100% emulation than re-test all the functions.
..don't panic
So how long until a NetHack port is complete? Come on, we all know what's important.
I don't want knowledge. I want certainty. - Law, David Bowie
Now with a C compiler available, how about building an Ethernet interface and porting the Contiki OS to iy? A Contiki port would bring TCP/IP networking, multitasking and a bunch of other cool stuff to the HP. Contiki has already been ported to a lot of weird stuff, like the GBA and the C64, so it would probably work well on the HP.
Also, if customers are writing their own programs with a C compiler to get speed, why not just use something like the Zaurus running Linux, and one of the many, full featured, science/math software suites for Linux?
Ah yes, rampant Consumericanism at its finest.
Maybe the reason 'they' 'don't just use something like a Zaurus running Linux' is because they've already got a fine working H49g+ in 'their' posession.
Don't you get it? You're only 'countering the view' on automatic. The solution to every cool hack is not automatically "you can buy something else instead and it'll be cooler".
(Not a Flame, not a Troll. Truly, this is Consumerican 'logic' at its finest...)
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
> So what they're saying is, rather than porting their calculator software to a new platform, they found it easier to write an emulator that pretends to be the old processor? Sounds like a pretty crappy design decision to me.
HP has a bit of an history of using great hardware for their calculators then botching them with inferior software.
The HP48g/gx had 512KB of ROM, a good chunk of it was used to store standard applications programmed in "external" (odd name given to a dialect of RPL that used internal entry-points liberally. Those would render as "<external>" when you'd try to see the source within the calculator, hence the name.) Applications written in "external" would commonly be about 15% faster than user-RPL programs. However in both case, you still use the RPL framework, which means your program is essentially interpreted, token after token.
That may be acceptable for user-written programs, but it's a bit sloppy for processor intensive applications that are in charge of plotting graphs and resolving symbolic equations.
A group of hackers once rewrote a good chunk of the built-in applications entirely in assembly, with the goal of making it fit on a 128K memory card. Unsurprisingly, the resulting environment was many times faster and more responsive than the original version.
That said, a whole lot of software has been written for the HP48 in many areas (although I seem to only remember seeing great games and textbook browsers for some strange reason..)
I can understand the value of an emulator to keep this software library available to the newer models.
A long time ago i bought an HP41C (not "V"!) and it was (still is...) a very good, small & rugged machine. No nonsense. Back then HP were making the very best calculators in the world.
Nowadays, a certain Miss has decided to decimate the "Calculators" division of HP and it shows. THe present calculators at HP have the same look and (cheesy) feel as the TI calculators. They are bulky and large, they sport cheesy buttons and it is actually hard to find a model that supports the sooo efficient & fast RPN notation. In short: they suck. I feel like we will never ever again see really well built & designed calculators now. Too bad.
Interestingly enough, the only calculator left in their product line that still has the feeling & quality of true HP calculators is the "Financial" HP12C... It seems Economists have it all... !
Maybe we should petition for Agilent to start designing calculators? One can always dream...
"Sounds like a pretty crappy design decision to me."
You don't understand Engineering do you?
The design solution to a problem is about getting the best time, cost, risk and other constraints satisfied in the most optimal way possible. It may be lower risk to emulate an old processor than to port and regression test legacy code.
The best technical solution can often be the worst engineering solution, taking into account other cost and risk factors.
No, the Saturn has an external word size of 4 bits, but 64 bit registers and instructions.
At three to seven (the actual comparison) times the 4MHz 48g speed, there is far less than a gap of >>30 between the speed of the emulated processor and the physical one so I stand by (for now) my speculation that there is surely an algorithmic difference between the built-in (example?) one and the new 'native' one...
(But what do I know, I'm just flamebait... apparently...)
Note that Nickle will quite happily compute 10,000! (exactly) in a fraction of a second on a similar machine, through the miracle of Karatsuba multiplies. It also supports arbitrary-precision rationals and definable-precision floats (default 256b mantissa) with arbitrary exponent, and features a calculator-like interactive mode. I don't use much of anything else for numeric calculations anymore. (Of course, I co-wrote it.)
... think this calculator would, if nothing else be an amazing way to earn geek street cred? I mean, if programming (1 geek point) computer games (2 points) on an overclocked (3 points) calculator (4 points) using an open source (5 points) compiler isn't the pinnacle of all that is geek I don't know what is.
Hi,
I'm one of the people working on this. Maybe I can answer a few questions:
Whats the point? Why Bother?
Well, this is just an obscure hobby; no-one is spending 6 hours a day coding for this project. For me its just a way to learn a little about compilers. The main aim is to make it possible to create decent programs (mainly games) for this system. Coding for devices such as calculators has some interesting challenges to it, esp when you have to reverse engineer the hardware like we did.
Is this a real port of GCC? I thought ARM already has a port.
Yes it does, and its very good. We have tried to avoid modifying GCC itself to avoid extra work in the future. What we have done is write HP specific libraries and linking programs to executable may run. It works, so why not?
1000! in half a second is slow, 10,000! takes about a second to calculate on [some platform]
Indeed. Calculating factorials quickly is easy. Displaying the result (a massive, massive integer) is not. The factorial program trades off some calculation speed to markedly improve display speed. The "half a second" measurement comes from when the CPU is executing at 75MHz. I'm guessing running at 203MHz would speed that up a little.
Is the calculator really running a saturn emulator?
Yes, it is. SysRPL is an obscure language used only in these calculators. The complete Saturn CPU is being emulated, not just the SysRPL envrioment.
Yes, it makes things very slow - but there is a decade of debugged code written in sysRPL and Saturn asm. Throwing all that away would be very expensive for HP. With calculators, having the correct answer is critical. Emulating old code means the ROM should be fairly bug-free.
Of course an OS completely rewritten for the ARM would have been great - but its not economically feasible.
oops, some more I forgot
Is the 49g+ RPN?
Not by default - but you can set it to be with about 3 button pressed. Then its a proper RPN* calculator unless you set it back.
*The RPN it uses is different from HP's early implementation. The earlier versions have a 4 level stack only. The HP48/9 series effectlvly have an unlimited stack, and you can put all kinds of objects (matrices, programs, symbolics etc) on it. Its alot more powerful then the RPN of say a HP15c, but naturally more complicated to use
Will there be a linux/BSD/[other OS] port?
Well, you have a 203MHz CPU, 512kb RAM, and 2MB ROM. If you can fit linux on that then go for it!
What is it that people have against the 49g+ keys?
These sound like the words of someone who has never used HP's 48 series. The keys were made out of a very solid plastic, never wobbled, gave you tactile feedback, etc. I think the other big complaint people have is the placement of the enter key, which was perfect on the 48 (big wide button, center left). Now I believe it's been shrunk and moved to the bottom right.
Now you may not care about all that, but the undeniable truth was that HP had a winning formula on the 48 and they threw it all away with the 49 series.