Before you ask - new feature in wp34s



#2

Jeff has noticed that the flash file for the most recent release of wp34s is shorter than before.

Before you ask more questions, here is the file doc/flash.txt which explains it.

Commands to handle the flash memory on the real calculator
==========================================================

Hold down ON (EXIT) and press one of the following keys:

STO - Backup: This creates a copy of the RAM in flash memory.

RCL - Restore: This restores a previously created backup.

S - SAM-BA: Clears the GPNVM1 bit and turns the calculator off.
S is on the '6' key.
ATTENTION: You can now only boot into SAM-BA mode!
Without the SAM-BA software and the cable, you're lost!

These ON key combinations have to be pressed twice in a row without
releasing the ON key to be executed.

Do an ON+STO before you want to flash a new release! After flashing,
your backup should still be in place if you didn't press the ERASE
button on the cable but used ON+S instead to get into SAM-BA boot mode.

There are additional commands in the program functions catalogue:

PSTO n Store program in region n. n is 0 or 1. A region is a
block of flash memory that can hold a copy of the
user program area. In a later version, alphanumeric
labels in flash can be called with XEQ. This allows
creation of libraries.

PRCL n Restore region n to the program area where data can be edited.

P<> n Swap the current program with the contents of region n.

How to transfer data between the calculator and your PC
=======================================================

The whole RAM is saved to address 0x11F800 (relative address 0x1F800)
with ON+STO. This can be copied to your PC or loaded from it.

1. From calculator to PC

a) Do an ON+STO, then ON+S, then RESET with the cable connected.
b) Press ON once and start SAM-BA on the PC. It should connect.
c) Set the start address to 0x11F800 and the size to 0x800
d) Enter a file name in the receive field.
e) You can now receive the file with SAM-BA.
f) Move it under the name wp34s.dat into your emulator directory.
g) The emulator should accept the file. Your registers and programs
will than be in place.
h) To get your calculator back in business, start the "Boot from flash"
script in SAM-BA, the same procedure you should know from flashing
the firmware.
i) Power the calculator up and perform a restore with ON+RCL. The
latest version does the restore automatically when RAM is not
valid.

2. From PC to calculator

a) Perform steps (a) to (c) from above. No need to set the size.
b) Point SAM-BA to your wp34s.dat file from the emulator.
c) You can now send the short file with SAM-BA.
d) Perform steps (h) and (i) from above.

The program regions accessible with the commands PSTO, PRCL and P<> are
stored at addresses 0x11F000 and 0x11F400 respectively and have a length
of 0x400 (1 KB) each. The emulator creates files wp32s-#.dat, # being the
region number. You can handle these files the same way as the complete
state file from the emulator. The regions have identical formatting and
can be swapped by copying their data to the "wrong" place. The backup
area is formatted differently.

If you want to get your emulator data into the calculator in one go,
do the following in Windows:

C:\wp34s>copy /b calc.bin+wp34s-0.dat+wp34s-1.dat+wp34s.dat calc-full.bin

The resulting file can be programmed into flash and all data is readily
available.


#3

Quote:
S - SAM-BA:    Clears the GPNVM1 bit and turns the calculator off.
S is on the '6' key.
ATTENTION: You can now only boot into SAM-BA mode!
Without the SAM-BA software and the cable, you're lost!

These ON key combinations have to be pressed twice in a row without
releasing the ON key to be executed.


A set of keystrokes that renders a calculator in a state that requires SAM-BA and a cable to repair does not seem like a good idea to me. Is it really that important, when you can do the same thing with the cable?

Edited: 20 May 2011, 11:14 a.m.


#4

It's not the same thing. On the cable you can press ERASE which will flatten you flash contents. ON+S will preserve the flash data and just reset the boot bit.


#5

Then how about a key sequence that will put the boot bit back?

Otherwise, as Eric says, wouldn't the calculator still be unusable if you did not have a cable?

#6

Quote:
It's not the same thing. On the cable you can press ERASE which will flatten you flash contents. ON+S will preserve the flash data and just reset the boot bit.

I think I understand now, but it still seems very dangerous. Is there no way to get this feature without this side effect? I can see this being a support nightmare for people who had the calculator programmed by somebody else (that is, they don't have a cable and someone else did the 34S conversion). Remember, if something can go wrong, it will go wrong.

If I were you I would require a special bit sequence to be sent over the serial cable before it resets the boot bit. If you remember the HP 49G mechanism for flashing, it took this same approach -- it wouldn't let you into the menu for wiping flash banks until it received the right series of bits over the serial cable.

Eric


#7

Quote:
If I were you I would require a special bit sequence to be sent over the serial cable before it resets the boot bit. If you remember the HP 49G mechanism for flashing, it took this same approach -- it wouldn't let you into the menu for wiping flash banks until it received the right series of bits over the serial cable.

At the moment, I don't use any custom software for flashing so I can't control what goes over the interface. The idea isn't bad. To make things less dangerous, all destructive key combinations have to be pressed twice in a row. As soon as you release the ON key, the whole sequence is canceled. It might be possible to detect the presence of the cable (it should tie the input pins to a different level than without it). I have to test this.

We might introduce a system protection bit which needs to be set with a command or other key combination before this command and some other possibly dangerous functions become available. This is not a problem in the present stage of development. We are not targeting the average user with wp34s.

#8

For the "production" code would it be possible to either:

- Require typing in a password as confirmation? For example pressing ON-S gives the "password?" prompt in the alpha area. Then you have to know it (e.g "marcus").


- Making the boot bit enable an unlisted/undocumented XFCN? Something like "SAMBAX"?


- Have a flash byte that has to have a particular value before ON-S will work (i.e. the boot bit code checks it before executing)? Then if you want to lock out the boot-bit capability you just need to alter that byte with a hex editor (or custom utility) before flashing it into the calc?

Bob

#9

"In a later version, alphanumeric labels in flash can be called with XEQ. This allows creation of libraries."


Gene: This is fabulous. It really expands the usefulness of the calculator tremendously. Great work.


#10

Pauli will have to some work on this part. I've put the code in place, he will be responsible for making it callable.


#11

Potentially doubling the program lines to slightly over 1000 would be simply astounding.

Jake


#12

Jake, we are at 1500. :-)


#13

I see visions of a program file full of short routines aka PPC ROM type things. BM, BE, and lots more come to mind.


#14

Quote:
I see visions of a program file full of short routines aka PPC ROM type things. BM, BE, and lots more come to mind.

Yes, with two flash banks, 1500+ steps makes sense. Now, it approaches an HP41 with quad memory. One might then want a way to step through those program labels like the HP41 CAT 1 function did.

Jake


#15

Quote:
Yes, with two flash banks, 1500+ steps makes sense. Now, it approaches an HP41 with quad memory.

I think we'll effectively be well past this point. Even though a quad memory HP41 can have 2233 steps of program, that means no registers and every step has to be a single byte instruction. The 34s's steps are merged, the 100+ registers are always available and the function set is richer in many ways.

Before anyone mentions them, numbers and alpha on the 34s take less steps/bytes than their equivalents on the 41 even though they don't display as nicely.


Quote:
One might then want a way to step through those program labels like the HP41 CAT 1 function did.

I'd like to do something like this :-)


- Pauli

#16

Quote:
Before you ask more questions...

Probably not possible to stop me asking more questions :-)

Here we go: When I used the emulator to create the wp34s-0.dat and wp34s-1.dat files for the purpose of creating a full 128 kB bin file, the wp34s-1.dat is 2 kB, the first 1kb of which is all zeros. I compensated by using the wp34s-0.dat file twice, i.e.

copy /b calc.bin+wp34s-0.dat+wp34s-0.dat+wp34s.dat calc-full.bin

The above worked fine, but I presume I made yet another error somewhere to necessitate the workaround.


#17

This seems to be a bug. I'll check it later.


#18

I fixed this already :-)


- Pauli

#19

Quote:
There are additional commands in the program functions catalogue:

PSTO n Store program in region n. n is 0 or 1. A region is a
block of flash memory that can hold a copy of the
user program area. In a later version, alphanumeric
labels in flash can be called with XEQ. This allows
creation of libraries.

PRCL n Restore region n to the program area where data can be edited.

P<> n Swap the current program with the contents of region n.


Just in case it isn't clear from the later postings, these three commands are there but the code thus saved cannot be accessed yet.


- Pauli


#20

But they will be working very very soon. Expect some teething issues.

Alpha labels in any of the four sections will be globally reachable. The search order is RAM, first flash segment, second flash segment and finally internal XROM code space, only the first instance of a name will be found. All other labels (numeric & hot key) are local to the section in which they are defined. GTO.nnn works within the current section. GTO.. brings you to step 000 of RAM.


- Pauli


#21

... and you'll find all this documented in the next edition of v1.18, but presumably not this weekend.

Walter

Edited: 21 May 2011, 4:08 a.m.

#22

We are in the course of updating the state file and internal backup format again. This will render existing data unreadable. But there is a way out, at least for programs:

Get the current release 928 from SVN and use the command PSTO to create a copy of your program area in flash or an emulator file (see first post). This file will work in later versions and can be restored or burned into flash on the real hardware!

Sorry for any inconvenience. wp34s is a fast moving target. ;-)

EDIT: Revision 936 is still compatible. Later versions will not!


Edited: 23 May 2011, 3:04 a.m.


#23

I just discovered an error with the checksum calculation in the areas saved with PSTO. So I cannot guarantee, they will be intact with the next release. The saved regions are most probably broken anyway. :-(

Sorry for any inconvenience. Be prepared to type your programs in again.

Edit: I'm working on a solution, at least in the emulator. You need to copy the flash pages on your device to the PC where they can be converted.


Edited: 23 May 2011, 3:51 p.m.


Possibly Related Threads...
Thread Author Replies Views Last Post
  Prime feature request Stefan Dröge (Germany) 0 251 11-06-2013, 11:06 AM
Last Post: Stefan Dröge (Germany)
  HP Prime "Notes" feature request Charles Bennett 0 222 09-27-2013, 12:14 PM
Last Post: Charles Bennett
  WP-34s feature suggestion: "Follow jump" shortcut Andrew Nikitin 3 439 06-12-2013, 01:42 AM
Last Post: Walter B
  [WP34s] Bug or feature? Dieter 25 1,427 01-03-2013, 06:20 PM
Last Post: Paul Dale
  [WP34S] WP34S firmware on the AT91SAM7L-STK dev kit? jerome ibanes 1 318 10-04-2012, 04:59 PM
Last Post: Paul Dale
  Bug HP39GII....or feature? Bunuel66 14 868 08-11-2012, 02:59 PM
Last Post: Gilles Carpentier
  Request for a new WP34S Emulator feature Namir 2 263 08-06-2012, 07:07 AM
Last Post: Neil Hamilton (Ottawa)
  A still missing feature in WP-34S (please read on) Andrés C. Rodríguez (Argentina) 9 694 05-26-2012, 12:25 AM
Last Post: Jim Horn
  [wp34s] Incomplete Gamma on the wp34s Les Wright 18 1,175 12-06-2011, 11:07 AM
Last Post: Namir
  [wp34s] Romberg Integration on the wp34s Les Wright 2 381 12-04-2011, 10:49 PM
Last Post: Les Wright

Forum Jump: