The following warnings occurred:
Warning [2] Undefined array key 240618 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240627 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240629 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240664 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240686 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240709 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240723 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240737 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240739 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240745 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240746 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240748 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240751 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240627 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240751 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 240746 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





Just added an HP 50G to the collection!



#8

I knew you guys were a bad influence! :-) just couldn't help it when I saw the good price. HP 50G on the way from an Amazon seller. (Edit: looks like someone picked up the other one they had.)

To anyone with the 50G: does overclocking the CPU make graphing faster as well, or will it only make numerical calculations faster? I'm not sure if the 50G has a separate "GPU" like a computer, or if the CPU does all the work (number crunching & screen drawing) on a graphing calc?

Edited: 14 Mar 2013, 1:14 a.m.


#9

It will make numerical and graphing calculations faster. The 50g has a raster display which requires CPU time to draw on. Basically when graphing, it does a calculation, then drops a dot/line on the screen. The faster it churns through those calculations, the faster the graph appears. You can see this if you stick a complex expression in (try timing Y1=X! versus Y1=2X)

I'm not sure what the LCD controller is (I suppose this could be classified as a GPU) but some of them from experience have drawing primitives built in such as lines, rectangles, bitmaps (blitting) and fonts. The 50g feels quite sluggish so I'm not sure how much of this is offloaded or emulated.

Looking at most ARM SoC devices that fit the bill for the 50g, they have an LCD controller built in to the CPU. I'll take this new one of mine to bits when I get a few minutes and see what is inside it (probably a glue blob over anything interesting).

Also, don't forget the 50g is an ARM CPU running an emulation of a Saturn CPU so a lot of the ARM's native processing power is thrown out of the window through the abstraction inefficiency.

Edited: 14 Mar 2013, 7:07 a.m.

#10

Quote:
I knew you guys were a bad influence! :-) just couldn't help it when I saw the good price. HP 50G on the way from an Amazon seller. (Edit: looks like someone picked up the other one they had.)

To anyone with the 50G: does overclocking the CPU make graphing faster as well, or will it only make numerical calculations faster? I'm not sure if the 50G has a separate "GPU" like a computer, or if the CPU does all the work (number crunching & screen drawing) on a graphing calc?


Glad we could influence you. Welcome to the HP 50g Club! :)


#11

Thanks for the warm welcome, and all! :-)

About this Saturn abstraction / emulation layer that the 50G is running:
Do you think there is any good or easy way to speed this up beside throwing a faster ARM chip in there? I mean, has any good programmer taken a look at the code and could it be tightened up, or is it as good as it's going to get?

The other thought of course, is that my cell phone already has a dual core 1.5GHz ARM CPU in there - and they're even coming out with eight core ARM CPUs in the latest tablets. There could be a day real soon where throwing a 1GHZ+ ARM CPU in an RPN Calc w/ a higher resolution screen & rechargable Lithium battery, running the Saturn emulator would fly. (like a 50G on steroids).
All things being equal, that would be about 13X the current 50G calculation speed. :-)


#12

I think without major rework, it's probably about as fast as it's going to get. The issue is that looking at the Saturn CPU architecture, it's not a good match for the underlying ARM emulation architecture meaning translation is probably quite expensive time-wise. Firstly the registers in the Saturn seem to be 64-bit whereas the ARM is a 32-bit CPU. Secondly, not all the Saturn's registers will fit inside the ARM CPU's registers resulting in a lot of copying to and from RAM. Thirdly, the Saturn is technically a clever 4-bit BCD based CPU whereas the ARM is much more general purpose and purely aimed at basic 32-bit integer and non BCD floating point.

You could probably get some mileage with dynamic translation i.e. on the fly compilation of Saturn code into ARM. I doubt it does that already as it's damn hard to do such things.

You can already get calculators with native 132MHz ARM CPU, 64Mbytes of RAM, 128Mbytes of flash, Li-Ion Cell, 320x240 colour screen, programming capability and extensive CAS:

TI N-Spire family

I own the left and right hand devices in that picture. People love them so much I was given them and never use them other than to show people why they are horrible.

They are about as unusable as you could possibly make a device. They have so many abstractions over things (like structured documents) and have literally acres of UI before you can get to what you want that they are useless.

You can't for example, whack together a one liner program to calculate parallel resistances and then just apply it to the stack as you are calculating. You have to create a document, then create a program, then type the whole damn thing in via a menu system which is deeper than the ocean, then navigate back to your problem, then have to call it manually (no menu reference!). Ick. It's like using Windows 3.1 again.

Anyway anti-NSpire rant aside, if you put a 1GHz+ ARM with all that stuff in it, it would probably fly but it would also eat batteries in hours rather than weeks.

I think someone needs to build a new standard "RPN/RPL calculator virtual machine" which is kinder to mainstream CPUs than the Saturn architecture. If it's written in C, it could in theory be portable to native 50g hardware, HP 30b hardware and NSpire hardware (all ARM!) with the software environment above the VM abstraction being the same.

Anyone fancy biting that one off?

Anyway must go and do some work now :(


#13

The 30b target is severely limited by the lack of RAM and flash memory.


#14

How much of each does it have? ARM code is quite compact.


#15

The Atmel chip offers 128 KB flash, 2 KB battery protected RAM and 4 KB volatile RAM. Our WP 34S firmware is certainly very close to the maximum you can squeeze into the hardware of the 20b/30b.


#16

That's quite a bit in the scale of things. I've looked at the WP34s code and its definitely possible to build a virtual machine around it, even if its just a decNumber wrapper with IO ops. If its bytecode based as per JVM or direct threaded code (forth style) then it may be more compact than native c as a call is at least 4 bytes and you could compact 4 bytecode instructions or more in that space. Performance would be lower than native but not noticeable standard unless you are doing heavy processing.

Does the Atmel part support thumb instructions at all?


#17

Look at the Makefile! We're using thumb mode for all C code, together with the best space optimization we could get from GCC. A good deal of the visible functionality is build around (a specialized version of) user code: XROM. This is the most compact coding we could think of but it's noticeably slower than native C. For a device like this, performance is more then OK, though.


#18

Ouch. That leaves only dirty C tricks left and arm assembly. GCC knocks out pretty tight code as well with those optimisations.

#19

Quote:
I think someone needs to build a new standard "RPN/RPL calculator virtual machine" which is kinder to mainstream CPUs than the Saturn architecture.

Wouldn't the 34S firmware satisfy this? It is RPN. It runs on the 30b hardware. It is written in C.

With a 1GHz CPU and more RAM it would really fly.


- Pauli


#20

Very close at a low level. There needs to be an additional intermediate abstraction I.e VM. Perhaps more of an emphasis on RPL than RPN as well.


Possibly Related Threads…
Thread Author Replies Views Last Post
  And the collection grows... Les Koller 1 2,123 02-05-2014, 05:55 PM
Last Post: Xavier A. (Brazil)
  Calculator collection Miguel Toro 5 2,715 12-05-2013, 04:06 PM
Last Post: Chris Pem10
  Another non-HP RPN vintage calculator joins the collection Michael de Estrada 2 1,809 07-23-2013, 04:10 PM
Last Post: Walter B
  The 'Complete' Collection Keith Midson 8 3,239 05-12-2013, 09:52 PM
Last Post: Namir
  OT: My Slide Rule Collection Eddie W. Shore 18 5,453 04-25-2013, 11:47 PM
Last Post: Garth Wilson
  My Mostek collection is complete Michael de Estrada 15 5,508 04-10-2013, 10:01 PM
Last Post: Michael de Estrada
  A cheaper way to add to your collection Keith Midson 3 1,978 03-08-2013, 05:50 AM
Last Post: Keith Midson
  The biggest collection update yet Keith Midson 2 1,628 10-31-2012, 12:16 PM
Last Post: Matt Agajanian
  New addition to my collection: 200 LX wildpig 20 5,912 08-31-2012, 06:39 AM
Last Post: Keith Midson
  HP12C 'complete' collection Keith Midson 9 3,662 08-07-2012, 07:51 PM
Last Post: Keith Midson

Forum Jump: