Post Reply 
WP 31S available at SourceForge
06-18-2014, 05:48 PM
Post: #81
RE: WP 31S available at SourceForge
Gents,

Wow -- I participated in a thread a few months ago talking about a simpler version of a 34s, and while I was gone, you went and did it! I really need to subscribe to some of these threads. So, I'm late to the party.

It looks very nice to me, and I'm going to want to make one to try a hardware version. The emulation is working well so far.

(05-10-2014 10:14 AM)Marcus von Cube Wrote:  
(05-10-2014 07:50 AM)lemontea Wrote:  I'll just offer my wee humble opinion that for me, the big deal breaker is NON-PROGRAMMABLE.
I concur. The result would be a two-shift-key device somewhere between the 31S and the 34S. A second shift key will open the possibility to add TVM as a built-in function, too.

As I probably expressed before, in 30 years in a development lab environment, programability has never been worth much to me on a handheld calculator. Having a simple, less cluttered, fast RPN interface where I can easily get to the main functions with trig, sqrt, and 1/x is a blessing for me (aka HP21/25). For the lab jobs I've had, any programming is better off done on a spreadsheet or other tool on a laptop, where it then can be much more easily documented for IP requirements.

I do like your 34s, and so far the 31s looks nice and streamlined and reminds me a bit of the 42s/32s (which I like), but I haven't had a chance to use it very much as yet, other than the emulator.

My input, FWIW...

Thank you,

Scott
Find all posts by this user
Quote this message in a reply
06-27-2014, 01:55 PM
Post: #82
RE: WP 31S available at SourceForge
(05-30-2014 02:42 AM)Eric Rechlin Wrote:  It lives!

[Image: 31s-front-medium.jpg]

Just ordered a couple of overlays. Can't wait to get them. Thanks for making these available Eric!
Find all posts by this user
Quote this message in a reply
06-27-2014, 08:02 PM
Post: #83
RE: WP 31S available at SourceForge
(05-30-2014 02:42 AM)Eric Rechlin Wrote:  It lives!

I can confirm that. Just received my WP 31S I ordered from hpcalc.org. I must admit it's a cute little calculator - though maybe I'm biased. Smile Thanks, Eric, for printing and application!

d:-)

BTW, it was shipped on 19th using so-called First-Class Package International ServiceĀ®. 8 days transatlantic delivery including customs. Just FYI.
Find all posts by this user
Quote this message in a reply
07-11-2014, 07:41 PM
Post: #84
RE: WP 31S available at SourceForge
Just put my WP-31S together. Fantastic! Thanks to the team, and Eric for the superb overlays.

Bob
Find all posts by this user
Quote this message in a reply
07-11-2014, 08:25 PM
Post: #85
RE: WP 31S available at SourceForge
You're welcome! Smile

d:-) on behalf of the team
Find all posts by this user
Quote this message in a reply
07-16-2014, 01:18 AM (This post was last modified: 07-16-2014 01:18 AM by nsg.)
Post: #86
RE: WP 31S available at SourceForge
Tried the emulator. My screen is 768 pixels tall and the "medium" skin shows only top half of a calculator. Is the a "small" skin?

Also, tried to switch y.md mode and now y.md displays all the time. Super annoying. Is there way to turn this off other then turning YDON?
Find all posts by this user
Quote this message in a reply
07-16-2014, 07:09 AM (This post was last modified: 07-16-2014 10:57 AM by walter b.)
Post: #87
RE: WP 31S available at SourceForge
(07-16-2014 01:18 AM)nsg Wrote:  My screen is 768 pixels tall and the "medium" skin shows only top half of a calculator. Is the a "small" skin?

Said skin is 821 pixels high. One half would be 410.5 pixels Wink BTW, I've got the same screen size as you and I can live with that - I just shift the window a bit. There is no small skin yet.

Quote:Also, tried to switch y.md mode and now y.md displays all the time. Super annoying. Is there way to turn this off other then turning YDON?

No. That 30b screen is what it is. Confused

d:-)

Edit: How else do you know about the date mode your WP 31S is running in? You've got to indicate it, and the great dot matrix is the only space available for that on that model.
Find all posts by this user
Quote this message in a reply
07-29-2014, 08:09 AM
Post: #88
RE: WP 31S available at SourceForge
(07-16-2014 01:18 AM)nsg Wrote:  Tried the emulator. My screen is 768 pixels tall and the "medium" skin shows only top half of a calculator. Is the a "small" skin?

Hello nsg,

maybe this helps a little bit. Because I like the compact skin too, I made a quick
and dirty solution for myself. You can find two files (wp31s_compact.bmp and
2 Compact 31s.skin) in the appended file wp31s_compact.zip. Unzip this file into
the directory of your wp31s. After you start the wp31sgui.exe you can select
the compact skin via the menu.

Walter


.zip  wp31s_compact.zip (Size: 97.15 KB / Downloads: 14)
Find all posts by this user
Quote this message in a reply
11-13-2014, 05:11 AM (This post was last modified: 01-21-2015 12:19 AM by Bit.)
Post: #89
RE: WP 31S available at SourceForge
I've ported the patch to the WP 31S (attached) that was originally created to make data entry faster when using Y register display on the WP 34S. For more information on how it works, see post #66 in the Enhanced Y register display thread.

I've tried the patch on an HP 30b just for a few seconds to confirm that it indeed speeds up data entry even on the WP 31S. I hope the WP 31S community will find this patch useful, but I'm not very familiar with either the code or the behavior of the WP 31S, so someone else will need to take it up from here and test it thoroughly if it's to be integrated into the mainline.

Code:
diff -ur wp31s/data.h wp31s_r3680_20141112_fewer_screen_updates_on_data_entry/data.h
--- wp31s/data.h    2014-11-12 11:56:18.703334204 -0500
+++ wp31s_r3680_20141112_fewer_screen_updates_on_data_entry/data.h    2014-11-12 23:47:50.342964693 -0500
@@ -445,6 +445,7 @@
 extern REGISTER *StackBase;         // Location of the RPN stack
 extern decContext Ctx;             // decNumber library context
 extern FLAG JustDisplayed;         // Avoid duplicate calls to display();
+extern FLAG WasDataEntry;         // No need to update the display
 extern char TraceBuffer[];           // Display current instruction
 #ifndef REALBUILD
 extern char LastDisplayedText[NUMALPHA + 1];       // This is for the emulator (clipboard)
diff -ur wp31s/display.c wp31s_r3680_20141112_fewer_screen_updates_on_data_entry/display.c
--- wp31s/display.c    2014-11-12 11:56:18.691334204 -0500
+++ wp31s_r3680_20141112_fewer_screen_updates_on_data_entry/display.c    2014-11-12 23:47:50.342964693 -0500
@@ -1767,6 +1767,22 @@
         return;
     }
 
+    if (WasDataEntry) {
+#if defined(QTGUI) || defined(IOS)
+        xset(LastDisplayedNumber, ' ', NUMBER_LENGTH);
+        LastDisplayedNumber[NUMBER_LENGTH]=0;
+        xset(LastDisplayedExponent, ' ', EXPONENT_LENGTH);
+        LastDisplayedExponent[EXPONENT_LENGTH]=0;
+#endif
+        wait_for_display(); // Normally called from reset_disp()
+
+        // Erase 7-segment display
+        for (i = 0; i <= EXP_SIGN; ++i) {
+            clr_dot(i);
+        }
+        goto only_update_x;
+    }
+
     // Clear display
     reset_disp();
 
@@ -1961,6 +1977,7 @@
     show_stack();
 nostk:    show_flags();
     if (!skip) {
+only_update_x:
         p = get_cmdline();
         if (p == NULL || cata) {
             if (ShowRegister != -1) {
@@ -1973,6 +1990,9 @@
             disp_x(p);
             x_disp = 1;
         }
+        if (WasDataEntry) {
+            goto finish;
+        }
     }
     set_annunciators();
 
@@ -1994,6 +2014,7 @@
         annunciators();
 #endif
 
+finish:
     State2.version = 0;
     State2.disp_as_alpha = 0;
     State2.smode = SDISP_NORMAL;
@@ -2209,6 +2230,7 @@
 {
     State2.disp_freeze = 0;
     State2.disp_small = 0;
+    WasDataEntry = 0;
     if ( State2.invalid_disp && str2 == NULL ) {
         // Complete redraw necessary
         DispMsg = str1;
diff -ur wp31s/keys.c wp31s_r3680_20141112_fewer_screen_updates_on_data_entry/keys.c
--- wp31s/keys.c    2014-11-12 11:56:18.695334203 -0500
+++ wp31s_r3680_20141112_fewer_screen_updates_on_data_entry/keys.c    2014-11-12 23:47:50.346964693 -0500
@@ -55,6 +55,8 @@
     confirm_none=0, confirm_clall, confirm_reset, confirm_clprog, confirm_clpall
 };
 
+FLAG WasDataEntry;
+
 /* Local data to this module */
 unsigned int OpCode;
 FLAG OpCodeDisplayPending;
@@ -1867,6 +1869,7 @@
 void process_keycode(int c)
 {
     static int was_paused;
+    volatile int cmdline_empty; // volatile because it's uninitialized in some cases
 
     if (was_paused && Pause == 0) {
         /*
@@ -1966,8 +1969,13 @@
             dot(RPN, ShowRPN);
 #ifndef CONSOLE
             if (! State2.disp_temp ) {
-                // This will get rid of the last displayed op-code
-                display();
+                if (!WasDataEntry) {
+                    // This will get rid of the last displayed op-code
+                    display();
+                }
+                else {
+                    finish_display(); // Update the RPN annunciator
+                }
             }
 #endif
             return;
@@ -1984,6 +1992,7 @@
         /*
          *  Decode the key
          */
+        WasDataEntry = 0;
         ShowRPN = ! XromRunning;    // Default behaviour, may be turned off later
 
         c = process(c);        // returns an op-code or state
@@ -2018,23 +2027,27 @@
                 // Data entry key
                 xcopy(&Undo2State, &UndoState, sizeof(TPersistentRam));

                 xcopy(&UndoState, &PersistentRam, sizeof(TPersistentRam));

+                WasDataEntry = 1;
+                cmdline_empty = (CmdLineLength == 0);
                 xeq(c);
+                cmdline_empty |= (CmdLineLength == 0);
             } else {
                 // Save the op-code for execution on key-up
                 OpCode = c;
                 OpCodeDisplayPending = 1;
+                finish_display(); // Update the RPN annunciator
+                goto no_display; // No need to update the display before the command is executed
             }
         }
     }
-#ifndef CONSOLE
     if (! XromRunning && ! Pause && ! JustDisplayed && c != STATE_IGNORE) {
+        const int orig_WasDataEntry = WasDataEntry;
+
+        WasDataEntry &= !(c == (OP_SPEC | OP_ENTER) || cmdline_empty || State2.invalid_disp);
         display();
+        WasDataEntry = orig_WasDataEntry;
     }
-#else
-    if (! XromRunning && ! Pause && c != STATE_IGNORE && ! JustDisplayed) {
-        display();
-    }
-#endif
+no_display:
         JustDisplayed = 0;
         watchdog();
 }
Find all posts by this user
Quote this message in a reply
11-13-2014, 01:00 PM
Post: #90
RE: WP 31S available at SourceForge
(11-13-2014 05:11 AM)Bit Wrote:  I've ported the patch to the WP 31S (attached) that was originally created to make data entry faster when using Y register display on the WP 34S...

Any chance you could provide a compiled binary of the wp31s firmware with your patch? (I wish I had the knowledge to apply your patch and compile it myself, but I'm sure it is easier for you to compile it for me rather than teach me how to do it Smile )

Dave - My mind is going - I can feel it.
Find all posts by this user
Quote this message in a reply
11-13-2014, 01:22 PM (This post was last modified: 11-15-2014 11:29 PM by Bit.)
Post: #91
RE: WP 31S available at SourceForge
(11-13-2014 01:00 PM)Jeff O. Wrote:  
(11-13-2014 05:11 AM)Bit Wrote:  I've ported the patch to the WP 31S (attached) that was originally created to make data entry faster when using Y register display on the WP 34S...

Any chance you could provide a compiled binary of the wp31s firmware with your patch? (I wish I had the knowledge to apply your patch and compile it myself, but I'm sure it is easier for you to compile it for me rather than teach me how to do it Smile )

I've attached a binary. Keep in mind, however, that unlike with the WP 34S, I don't really know what I'm doing here. Smile I've never used the 31S, so I cannot test if everything works correctly in the patched version.

Edit: The patch has been incorporated into the official build and also into my builds. There's no longer any need for the binary I attached here, so I've deleted it.
Find all posts by this user
Quote this message in a reply
11-13-2014, 02:21 PM
Post: #92
RE: WP 31S available at SourceForge
(04-17-2014 12:48 PM)walter b Wrote:  (If we don't take care of them some folks tend to regard 'God's Own Country' as the center of the world. Bad education definitly.)

Do you mean Yorkshire? (It's a common descriptor in the UK :-)
Find all posts by this user
Quote this message in a reply
11-13-2014, 03:59 PM
Post: #93
RE: WP 31S available at SourceForge
(11-13-2014 01:22 PM)Bit Wrote:  I've never used the 31S, so I cannot test if everything works correctly in the patched version.

You could use the emulator, couldn't you?

d:-?
Find all posts by this user
Quote this message in a reply
11-13-2014, 04:35 PM
Post: #94
RE: WP 31S available at SourceForge
(11-13-2014 03:59 PM)walter b Wrote:  
(11-13-2014 01:22 PM)Bit Wrote:  I've never used the 31S, so I cannot test if everything works correctly in the patched version.

You could use the emulator, couldn't you?

d:-?

I did that and even flashed the WP 31S on real hardware to give it a quick try. I could certainly notice very obvious problems. However, without spending a lot of time on actually using the WP 31S (which I don't intend to as I prefer the 34S), I may not be able to notice subtle problems or those that occur only rarely. That's why it'd be useful if those who use the 31S regularly could do the testing. I'll help with debugging or fixing any issues found.
Find all posts by this user
Quote this message in a reply
11-16-2014, 04:35 AM
Post: #95
RE: WP 31S available at SourceForge
(11-13-2014 04:35 PM)Bit Wrote:  ... without spending a lot of time on actually using the WP 31S (which I don't intend to as I prefer the 34S) ...
However... it looks like the 31S may be perfect for my little sister, so I've just had a close look at it.

I would like to suggest that the LOGx function be made available in the MORE catalog. I think it's a pretty basic and useful operation and would fit well into the philosophy of the 31S.
Find all posts by this user
Quote this message in a reply
11-17-2014, 01:12 AM
Post: #96
RE: WP 31S available at SourceForge
If you browse the STAT catalog when no statistical data is available, certain entries that invoke sigma_val() from stats.c set an error code in the background that will cause a bogus error message to appear after the next command or key press.

Here's how to reproduce the problem:
1. Clear registers: [f] [CLEAR] [R] [ENTER] [Y]
2. Browse the STAT catalog: [f] [STAT] [up] [EXIT]
3. Do almost anything, for example: [1]
4. Error message appears: "Too few data points"

I've applied a simple fix in SVN: If sigmaN is zero, then sigma_val() bails out immediately without calling sigmaCheck() and setting an error code. This is very similar to what the 34S does.
Find all posts by this user
Quote this message in a reply
11-17-2014, 01:52 AM
Post: #97
RE: WP 31S available at SourceForge
(11-16-2014 04:35 AM)Bit Wrote:  I would like to suggest that the LOGx function be made available in the MORE catalog. I think it's a pretty basic and useful operation and would fit well into the philosophy of the 31S.

Another idea: Currently if you press the [f] [a b/c] key again when already in fraction mode, nothing happens. I think it'd be logical and useful if that key switched between proper and improper fraction modes, since that's much faster and more convenient than using the menus.

A patch to achieve this and precompiled binaries for testing are available in the attached file in the first post here.
Find all posts by this user
Quote this message in a reply
12-08-2014, 05:40 PM
Post: #98
RE: WP 31S available at SourceForge
(11-17-2014 01:52 AM)Bit Wrote:  Another idea: Currently if you press the [f] [a b/c] key again when already in fraction mode, nothing happens. I think it'd be logical and useful if that key switched between proper and improper fraction modes, since that's much faster and more convenient than using the menus.

I think that this makes a lot of sense. It does not affect the current functionality since it is a NOP in the current builds. The addtional functionality could be folded into the 31s documentation whenever Walter wishes.

-Jonathan
Visit this user's website Find all posts by this user
Quote this message in a reply
12-08-2014, 06:08 PM
Post: #99
RE: WP 31S available at SourceForge
IMHO, the basic question is: Is the 31S project closed or not yet? The two open points are additional functionality, no bugs. Who else of the community using the 31S wants to comment on that?

d:-?
Find all posts by this user
Quote this message in a reply
01-31-2015, 03:01 PM (This post was last modified: 01-31-2015 05:55 PM by Bit.)
Post: #100
RE: WP 31S available at SourceForge
(11-17-2014 01:52 AM)Bit Wrote:  Another idea: Currently if you press the [f] [a b/c] key again when already in fraction mode, nothing happens. I think it'd be logical and useful if that key switched between proper and improper fraction modes, since that's much faster and more convenient than using the menus.

A patch to achieve this and precompiled binaries for testing are available in the attached file in the first post here.

There's another obvious (and IMO necessary) UI improvement possible besides [a b/c]: ->DEG and ->RAD need not depend on the current angular mode since only two modes, and thus two conversions, are supported. I've explained it under 'Easy angular conversions' in this post and provided a patch. Since this only modifies operations that are effectively NOPs, it isn't a disruptive change. I recommend it for inclusion in the official builds.
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)