HP20b repurposing

Extreme folly,

5254 ENTER gives,

ok, how do i make the wire, anyone?


Send 10 UPCs from the boxes, 5.95SH fee, a small chocolate cake and the deed to your house to cyrile's email address. Then ask nicely.



hmm. there's a bit of a shortage of chocolate cakes around here. most of them are only chocolate flavoured cakes. the real ones are hard to come by.

i see that no one else has figured out the meaning of my original posting. anyway, i need to DL the proper dev tools to build a proper binary beforehand anyway. i think im good for the cut down version. my code is well under 32k.

are there any docs on how arrange the RAM sections so that i can put some vars in the 2K battery backed up memory and the rest in the volatile memory.

also, how do i beat the dog?



With a stick?

Cyrille will have to help with that stuff as he is familiar with it and I am not yet.



I think if some of us understood what the HECK you were talking about, we could probably help. Certainly, I wish I could...both help and understand. But until someone explains it to me in more simple terms, for this simple mind, I'm afraid I'm not going to be much help.

That being said, I've created a wiki (http://www.wiki4hp.com) with the intent primarily to help folks develop on the 20b. If there are things that are missing, please let me know and I'll see what I can do to add them. If there is useful information for you there, then that would be even better.




I have updated the SDK, but it is not yet online... send me an email and I will send you the latest version which is a whole lot easier to work with.

to beat the dog, use the Watchdog() or the watchdog function (one is inlined, one is a function call).

if that is not defined in your version of the SDK, here is the code that I am using. It even answers 2 of your questions!:

#ifdef _ARM_
#include "board.h"
TMyApplication *const MyApplication= (TMyApplication*)0x300000;
// restart the watchdog
inline void Watchdog() { AT91C_BASE_WDTC->WDTC_WDCR= 0xA5000001; }
void watchdog(); // same function as above, but not inlined...
extern TMyApplication MYAPPLICATION;
TMyApplication *const MyApplication= &MYAPPLICATION;
inline void Watchdog() { }

do not forget to define MYAPPLICATION in the windows only part of the code somewhere...

the backup RAM is at address 300000. there is a way to create a section for the linker and then to tell the linker to place variables there, but I found it easier to create a structure (TMyApplication) that contains all the data that needs to be backed up and then to put that structure at 0x300000. It also makes is a whole lot easier to check that the structure is less than 2KB (sizeof)... as a matter of fact, in the test menu, the number under the copyright message is just that, the size of TMyApplication in order for me to check at each build if I did not mess up!

regards, cyrille


Hi Bruce,

Yes it's time for me to 'fess up.

I'm going to have a go at running chess on the 20b. 5254 is E2-E4 and the response is d7-d5 (4745). A bit silly i know.

I have a very small chess program which i wrote for the uWatch. it will easily fit into the 20b and Im hoping the 20b will be able to play quite well. firstly, the 4k of move stack will be quite good and also the 30Mhz arm will enable a quick response.

My next step is to build an actual hp20 binary, after that i'll have to hassle those with wires to let me have one - even if it means sending chocolate cakes!

when i get it working, i'll make the source code and binaries available.


Thanks Cyrille! I've added this information to the wiki.


Possibly Related Threads...
Thread Author Replies Views Last Post
  Repurposing the HP Prime? John Ioannidis 4 1,452 09-21-2013, 05:38 AM
Last Post: Pier Aiello
  HP 30b repurposing Philippe Cairic 12 2,625 10-19-2012, 09:44 AM
Last Post: Eric Smith
  Repurposing the HP39GII? Han 10 2,200 10-02-2012, 07:18 AM
Last Post: bluesun08
  Question to Eric Rechlin & Gene Wright about HP30b/30b repurposing at HHC2012 Namir 2 1,037 08-04-2012, 05:30 PM
Last Post: Namir
  WP34S donor case from HP20B? Andrew Davie 6 1,648 06-20-2012, 01:26 AM
Last Post: Walter B
  HP20B Development Kit Andres Capdevila 6 1,777 03-30-2012, 06:26 PM
Last Post: Andres Capdevila
  Repurposing the HP20b in an engineering class Peter Murphy (Livermore) 4 1,310 12-31-2011, 10:02 AM
Last Post: Marcus von Cube, Germany
  WP-34S: HP20B vs HP30B keyboard Rob Willett 3 1,061 10-24-2011, 03:56 AM
Last Post: Paul Dale
  WP 34S and 'dead' HP20B Rob Willett 17 3,565 10-20-2011, 06:49 PM
Last Post: Egan Ford
  HP 30b bricked when repurposing scalpa49 13 2,702 08-26-2011, 07:51 AM
Last Post: Alexander Oestert

Forum Jump: