Author |
Topic: Annoyances, Requests, Bugs (Read 13109 times) |
|
RickN
Member
HP Calculator Enthusiast
Gender:
Posts: 45
|
|
Re: Annoyances, Requests, Bugs
« Reply #40 on: Sep 27th, 2005, 10:57am » |
Quote Modify
|
Version 1.3.8.017 (2005-09-24): While in Program Mode, do Factory Settings, Yes. See "PGRM" in display (wrong). SST SST. Really are still in PGRM mode. (Factory Settings doesn't clear all calculator history, making it hard to be sure of a known starting point in any testing effort.) Maybe related, and intermittent: Factory Settings, Yes, BSP, g P/R. Display showed "1 h" instead of the "000 -" display. (This happened twice, and then I couldn't replicate it.) Intentional? With my keyboard Num Lock on, the emulator doesn't recognize any Num Pad digits, and the Num Pad Enter key closes the application.
|
« Last Edit: Sep 27th, 2005, 11:03am by RickN » |
IP Logged |
|
|
|
Jamie OConnell
Administrator
Gender:
Posts: 2027
|
|
Re: Annoyances, Requests, Bugs
« Reply #41 on: Sep 27th, 2005, 12:19pm » |
Quote Modify
|
on Sep 27th, 2005, 10:57am, RickN wrote:Version 1.3.8.017 (2005-09-24): While in Program Mode, do Factory Settings, Yes. See "PGRM" in display (wrong). SST SST. Really are still in PGRM mode. (Factory Settings doesn't clear all calculator history, making it hard to be sure of a known starting point in any testing effort.) |
| Yeah, good catch. I suppose that option should not be available in Program mode. Quote: Maybe related, and intermittent: Factory Settings, Yes, BSP, g P/R. Display showed "1 h" instead of the "000 -" display. (This happened twice, and then I couldn't replicate it.) |
| Right. I imagine we need to clear the display backup. Quote: Intentional? With my keyboard Num Lock on, the emulator doesn't recognize any Num Pad digits, and the Num Pad Enter key closes the application. |
| What Keymap to you have loaded? If it is the default one, then you're right: Numpad is not enabled (intentional). To see the current assignments choose (right-click: Keyboard Map...). ENTER closing the App IS a bug.
|
|
IP Logged |
--Jamie Music is its own reward.
|
|
|
RickN
Member
HP Calculator Enthusiast
Gender:
Posts: 45
|
|
Re: Annoyances, Requests, Bugs
« Reply #42 on: Sep 27th, 2005, 5:56pm » |
Quote Modify
|
In Windows Explorer, double-click on C:\Program Files\HP16C\Programs\ReverseDec.16c. This opens the emulator, but not with the intended program loaded. (I assume the file type association is created during setup, but seems of little use without allowing the emulator to load a program this way.) Similarly, "Open" on the file opens the emulator, but not the file.
|
« Last Edit: Sep 27th, 2005, 5:57pm by RickN » |
IP Logged |
|
|
|
RickN
Member
HP Calculator Enthusiast
Gender:
Posts: 45
|
|
Re: Annoyances, Requests, Bugs
« Reply #43 on: Sep 29th, 2005, 7:24pm » |
Quote Modify
|
Provided program BigMath-pg78.16c starts at LBL A, but the manual uses LBL 1 in the program and usage instructions. Not an emulator issue, but maybe good to publish in Programs Readme.txt, the manual has several errors in the above example: pg 80, after f WINDOW 1, "f WINDOW 0 19326320 .d" is missing. After f WINDOW 2, "73" is correct but misleading, being the *3* MS decimal digits of the word. It should be interpreted as "073" but there is no way to make leading 0s display in DEC mode. The "Exact answer is ...320,731..." is incorrect due to the missing "0" before "73". The correct exact answer is 12,193,263,200,731,267,636,031,035,818. Factory Settings, Yes, BSP, f FLOAT . 1 EEX 50 ENTER * (overflow, G flag set). Bug 1: f PREFIX shows 9999999990 and should show 9999999999. Bug 2: Formatting of the stack window X value is different than the calculator display, showing "1e+100". 0 ENTER +. Bug 3: The G flag is still displayed and should have been cleared. FYI, my manual says "April 1982" on the first page. I wonder if future versions fixed HP manual defects. It might be good to mention in Programs Readme.txt what version of the manual is being used. Regarding Factory Settings not being allowed in PGRM mode, it seems to me it should be allowed from any state including off. A related defect: Off, Factory Settings, Yes. "Pr Error" is in the display, but the emulator is still off so BSP/whatever won't clear it. (Seems to me it should turn on, similar to the real calculator "ON/-" reset.) Future enhancement: Allow mapping multiple keyboard keys to one emulator key. For example, either "1" or "Number Pad 1" pressing the emulator "1" key.
|
« Last Edit: Sep 29th, 2005, 8:04pm by RickN » |
IP Logged |
|
|
|
RickN
Member
HP Calculator Enthusiast
Gender:
Posts: 45
|
|
Re: Annoyances, Requests, Bugs
« Reply #44 on: Oct 1st, 2005, 6:17pm » |
Quote Modify
|
Big Defect I think: The emulator does not provide float-to-BCD conversion like the calculator does. Starting in floating point mode, enter -1.234567890e-16, STO 0, HEX, RCL 0. The calculator gives 91234567890984, the BCD conversion of the input, 56 bits, Sign Mantissa Exponent SMMMMMMMMMMEEE, see p56 Owner's Handbook. The emulator gives A1CAC067A85A7b. Big Defect I think: The emulator does not allow "register splitting" like the calculator does. Continuing the above steps, 4 WSIZE, RCL D, RCL C, RCL B... RCL 0. The calculator provides each of the 14 BCD digits. The emulator does not. Programs making use of either of the above two documented features would not run correctly on the emulator. Defect: 0-64-0000 status, HEX 1 CHS SQRT. Calculator shows 0xffffffff + G + C but the emulator gives Error 0. Assumed related: 0xffffffff ENTER * SQRT. Calculator gives 0xffffffff (no G no C) but the emulator gives Error 0. Defect: 0-64-0000 status, HEX 1 CHS FLOAT . and see the G flag is still set, but it should be cleared. Defect: In floating point mode, enter -2.468013579e-98. PREFIX shows 2468013578 (the last digit should be 9). Defect: On the "Pre-Release" text, "Release" had a gray box around it, the same color as the top of the window when the application is not highlighted. I did Alt-PrintScrn to save the image, went to Paint to paste it in, and there was nothing to Paste. I had been doing various operations for about 30 minutes, so don't know how to replicate it. Defect/Enhancement: Enter -2.468013579e-98 and look at the Stack window. It shows "-2.46801e-098", a format showing fewer mantissa digits than the calculator, and an extra exponent digit. It seems the formatting of the Stack and Register windows should either follow the calculator (for HEX, DEC, OCT, BIN, SF/CF 3, and Float), or be fixed at something that gives all information available, like "-2.468013579e-98" in this example. Defect/Enhancement: 2-64-0000 status, 1 CHS STO 0 FLOAT . and look at the Register View of R0. "-1.#QNAN" is unclear. The intent is unclear -- Is the desire to show "wrong format" in *all* cases, or show the actual floating point number if the bit pattern happens to be valid BCD (my preference, same as recalling it to Rx would show), or something else?
|
« Last Edit: Oct 1st, 2005, 6:26pm by RickN » |
IP Logged |
|
|
|
Jamie OConnell
Administrator
Gender:
Posts: 2027
|
|
Re: Annoyances, Requests, Bugs
« Reply #45 on: Oct 2nd, 2005, 3:51pm » |
Quote Modify
|
on Oct 1st, 2005, 6:17pm, RickN wrote:Big Defect I think: The emulator does not provide float-to-BCD conversion like the calculator does. Starting in floating point mode, enter -1.234567890e-16, STO 0, HEX, RCL 0. The calculator gives 91234567890984, the BCD conversion of the input, 56 bits, Sign Mantissa Exponent SMMMMMMMMMMEEE, see p56 Owner's Handbook. The emulator gives A1CAC067A85A7b. |
| This has been known from day 1, and disclosed. Programs that switch modes between Float and Binary would be few and far between because they rely on the particular quirks of the HP-16C implementation. Those quirks have little relationship to any other math system. A future version might deal with this, but not currently. The manual states on p56: "Numbers in Floating Point mode and Integer mode are represented in two different, incompatible formats. Therefore, any values stored in the storage registers in one format are not meaningfully converted when the calculator switches to the other format. Their integrity is retained, however when the calculator is restored to the original mode." The emulator follows this concept also. Quote: Big Defect I think: The emulator does not allow "register splitting" like the calculator does. Continuing the above steps, 4 WSIZE, RCL D, RCL C, RCL B... RCL 0. The calculator provides each of the 14 BCD digits. The emulator does not. |
| Intentional. This has been known from day 1, and disclosed right in the first readme parapraph. Registers and memory on the emulator DO NOT share the same 203 bytes of storage. A future version might address this, but not now. Quote: Programs making use of either of the above two documented features would not run correctly on the emulator. |
| No kidding. Things taking advantage of these features would also not work on any other calculator or computer. I expect this to be a distinct minority of useful applications. Regarding ALL cases of the Stack and Register views being slightly different from the emulator: it is expected. These views use a different method of formatting and displaying numbers (particularly float, but no leading 0's in binary modes either). These views are designed for additional useful aids and hints about what is going on inside the emulator, but not for exact representation. I don't consider it a problem.
|
« Last Edit: Oct 2nd, 2005, 5:40pm by Jamie OConnell » |
IP Logged |
--Jamie Music is its own reward.
|
|
|
Jamie OConnell
Administrator
Gender:
Posts: 2027
|
|
Re: Annoyances, Requests, Bugs
« Reply #46 on: Oct 2nd, 2005, 6:17pm » |
Quote Modify
|
on Sep 29th, 2005, 7:24pm, RickN wrote:Provided program BigMath-pg78.16c starts at LBL A, but the manual uses LBL 1 in the program and usage instructions. |
| Thanks. I'll change it to match the manual. Quote: Not an emulator issue, but maybe good to publish in Programs Readme.txt, the manual has several errors in the above example: pg 80, after f WINDOW 1, "f WINDOW 0 19326320 .d" is missing. |
| That is not really true. The result of running the program shows Window 0. The manual actually says: "[GSB 1] 19326320 .d Executes program" "[f][WINDOW] 1 12 .d labeled "1";..." Quote: After f WINDOW 2, "73" is correct but misleading, being the *3* MS decimal digits of the word. It should be interpreted as "073" but there is no way to make leading 0s display in DEC mode. The "Exact answer is ...320,731..." is incorrect due to the missing "0" before "73". The correct exact answer is 12,193,263,200,731,267,636,031,035,818. |
| True in the April 1982 manual. The May 1983 manual corrects this error. Quote: Factory Settings, Yes, BSP, f FLOAT . 1 EEX 50 ENTER * (overflow, G flag set). Bug 1: f PREFIX shows 9999999990 and should show 9999999999. |
| OK, although I think the discrepancy is less than epsilon. Quote: Bug 2: Formatting of the stack window X value is different than the calculator display, showing "1e+100". |
| Yes, but see message above (this rounding is expected). Quote: 0 ENTER +. Bug 3: The G flag is still displayed and should have been cleared. |
| True. Quote: FYI, my manual says "April 1982" on the first page. I wonder if future versions fixed HP manual defects. It might be good to mention in Programs Readme.txt what version of the manual is being used. |
| Yes. See above. Quote: Regarding Factory Settings not being allowed in PGRM mode, it seems to me it should be allowed from any state including off. A related defect: Off, Factory Settings, Yes. "Pr Error" is in the display, but the emulator is still off so BSP/whatever won't clear it. (Seems to me it should turn on, similar to the real calculator "ON/-" reset.) |
| I'm willing to bend somewhat on this one, except it will not be available from OFF. Use the keystroke equivalents if you want to set it from OFF ([ON][-][ON]). Quote: Future enhancement: Allow mapping multiple keyboard keys to one emulator key. For example, either "1" or "Number Pad 1" pressing the emulator "1" key. |
| Not likely. We answered the former problem with this by making the facility completely configurable. Still, I don't see anyone needing two different keys doing the same action. Adding this would be too big an effort for little payoff. It takes all of 5 seconds to switch keymaps.
|
« Last Edit: Oct 2nd, 2005, 6:19pm by Jamie OConnell » |
IP Logged |
--Jamie Music is its own reward.
|
|
|
RickN
Member
HP Calculator Enthusiast
Gender:
Posts: 45
|
|
Re: Annoyances, Requests, Bugs
« Reply #47 on: Oct 4th, 2005, 1:44am » |
Quote Modify
|
Jamie, I really intend the following to help, not just be argumentative. I think your program is great, and will continue trying to find problems. As always I won't be hurt if you ignore change suggestions. I do hope the "known differences" list in the Readme file is kept complete and correct. I bring these things up here in the forum in case anyone else is still monitoring it and wants to chime in. (It doesn't appear anyone else is...) Regarding float to BCD conversion missing from the emulator: You said "This has been known from day 1, and disclosed." I couldn't find any mention of it in your end-user documentation. Where is it disclosed? When you quoted page 56 of the HP manual you left out the referred to footnote: "Floating Point mode in BCD (Binary Coded Decimal) form". You called this "the particular quirks of the HP-16C implementation" and "Those quirks have little relationship to any other math system." A Google search on Binary Coded Decimal returns 118,000 hits. HP calculators (all, I think) use BCD internally for good reason, as documented in 1970s issues of the HP Journal. BCD is supported in many CPU assembly language instruction sets. It has good reason being in a Computer Scientist calculator. It is used all over the place. Regarding register splitting missing from the emulator: You said "This has been known from day 1, and disclosed right in the first readme parapraph." I don't see it. The first paragraph addresses program/register memory not being traded off, and always having 406 storage registers. What happens to register contents when WSIZE changes is a different issue. It is definitely different behavior than the calculator, and the example on page 67 won't work on the emulator. Related defect: 2-32-0000 status HEX 12345678 STO 0 4 WSIZE. The Register display shows 12345678 in R0, which doesn't make sense with 4-bit WSIZE. Regarding differences in the emulator's 10th significant floating point digit from the calculator: This is a big deal. Further chain calculations can make the difference dominate a final result. HP goes to great pains to not let this happen. You said "Things taking advantage of these 'features' would also not work on any other calculator or computer." I don't understand. The only comparison that matters is the HP-16C. *Any* difference from it could lead to different program results. I agree most users don't use lots of the calculator features, but it is important to know all differences exactly. The Readme file says "In all other operations and displays there are no known differences between the hardware and software versions of the calculator." If you choose to not fix the above, I hope you at least list them as differences from the real HP-16C. Regarding not providing both top-row and number pad entry of 0 through 9, you said "I don't see anyone needing two different keys doing the same action." All computer keyboards do this. Maybe don't make it user configurable, but it seems by default that the number pad keys should do 0 1 2 3 4 5 6 7 8 9 + - * / . ENTER, in addition to the user-configurables in the main "qwerty" part of the keyboard. Why *not* do this? Many people go back and forth between the two sections of the computer keyboard. New issue: Why not make the Index register 68 bits like the calculator instead of 64? You documented this one in the Readme file, but it seems like an unnecessary difference. (I think you use 128-bit libraries internally.) For example, in the calculator, storing 0xffffffffffffffff into the index register stores different bit patterns in 0-64-0000 (64 1-bits, or 2^64-1) and 2-64-0000 (68 1-bits, or -1). The *value* is stored, not the contents of Rx. Hope this helps, Rick
|
« Last Edit: Oct 7th, 2005, 12:04am by RickN » |
IP Logged |
|
|
|
Jamie OConnell
Administrator
Gender:
Posts: 2027
|
|
Re: Annoyances, Requests, Bugs
« Reply #48 on: Oct 15th, 2005, 12:42pm » |
Quote Modify
|
Quote:Regarding float to BCD conversion missing from the emulator: You said "This has been known from day 1, and disclosed." I couldn't find any mention of it in your end-user documentation. Where is it disclosed? |
| My error. I should have said 'Will be disclosed', as the latest user manual has not been posted. I intend to document all known differences -- the readme is horribly out of date. Quote: When you quoted page 56 of the HP manual you left out the referred to footnote: "Floating Point mode in BCD (Binary Coded Decimal) form". You called this "the particular quirks of the HP-16C implementation" and "Those quirks have little relationship to any other math system." A Google search on Binary Coded Decimal returns 118,000 hits. HP calculators (all, I think) use BCD internally for good reason, as documented in 1970s issues of the HP Journal. BCD is supported in many CPU assembly language instruction sets. It has good reason being in a Computer Scientist calculator. It is used all over the place. |
| I was speaking of the conversion between numbering systems as being unusual and unique, not BCD itself. Although, I believe HP's form of BCD is unique as well -- using '9's as the sign indicator. I may be able to emulate it in a future version, but currently the emulator uses IEEE floating point, which is native in MS C++ implementation. Quote: New issue: Why not make the Index register 68 bits like the calculator instead of 64? You documented this one in the Readme file, but it seems like an unnecessary difference. (I think you use 128-bit libraries internally.) For example, in the calculator, storing 0xffffffffffffffff into the index register stores different bit patterns in 0-64-0000 (64 1-bits, or 2^64-1) and 2-64-0000 (68 1-bits, or -1). The *value* is stored, not the contents of Rx. |
| Actually it would be quite a lot of effort to do this, with little payoff, although a future version might address it. Using "back of the envelope" calculations, it indicates that it would take hundreds of years for the emulator to cycle though 64 bits of counting before a wrap around occurred, even at maximum speed. Values larger than 64 bits cannot be stored in a single variable on the PC, and I believe that the HP implementation is arbitrary -- that they happened to use a hardware index register chip that was 68 bits wide. You can never actually see the index value when it is larger than 64 bits anyway: it will always be truncated when moved to the stack.
|
« Last Edit: Oct 15th, 2005, 12:55pm by Jamie OConnell » |
IP Logged |
--Jamie Music is its own reward.
|
|
|
Jamie OConnell
Administrator
Gender:
Posts: 2027
|
|
Re: Annoyances, Requests, Bugs
« Reply #49 on: Oct 16th, 2005, 5:53pm » |
Quote Modify
|
on Sep 27th, 2005, 5:56pm, RickN wrote:In Windows Explorer, double-click on C:\Program Files\HP16C\Programs\ReverseDec.16c. This opens the emulator, but not with the intended program loaded. (I assume the file type association is created during setup, but seems of little use without allowing the emulator to load a program this way.) Similarly, "Open" on the file opens the emulator, but not the file. |
| Actually we don't associate any files with the application, although a user (like yourself) can do this manually. Because of that I'll add support for opening programs from the command line.
|
|
IP Logged |
--Jamie Music is its own reward.
|
|
|
RickN
Member
HP Calculator Enthusiast
Gender:
Posts: 45
|
|
Re: Annoyances, Requests, Bugs
« Reply #50 on: Oct 16th, 2005, 10:24pm » |
Quote Modify
|
Quote: I believe HP's form of BCD is unique as well -- using '9's as the sign indicator. |
| FYI: The exponent is 3-digit 10's complement (999, 000, 001 correspond to values of -1, 0, 1) and the sign is one-digit 10's complement (9, 0 correspond to values of -1, 0 -- like a sign bit/digit). Quote: Using "back of the envelope" calculations, it indicates that it would take hundreds of years for the emulator to cycle though 64 bits of counting before a wrap around occurred, even at maximum speed. ... You can never actually see the index value when it is larger than 64 bits anyway: it will always be truncated when moved to the stack. |
| The time comment assumes starting at 0. The value can't easily be seen but the effect can. What follows is contrived, but gives an easy way to see the difference between the HP-16C's 68-bit I register and the emulator's 64-bit. Program to increment RegI and return 0|1 if it is 0|non-0: LBL A, 0, ISZ, 1, RTN. Do these keystrokes: HEX, 0, WSIZE, UNSGN, 40, MASKL, STO I, GSB A. The calculator gives 1 because its RegI has value 1<then 64 0 bits> and the emulator gives 0 because its RegI has value 0. I will look at the new 2005-10-16 version soon. Thanks again for your work! Rick
|
« Last Edit: Oct 18th, 2005, 12:29am by RickN » |
IP Logged |
|
|
|
RickN
Member
HP Calculator Enthusiast
Gender:
Posts: 45
|
|
Re: Annoyances, Requests, Bugs
« Reply #51 on: Oct 18th, 2005, 10:47am » |
Quote Modify
|
2005-10-16 1.3.9.019 version: After associating file type .16c with the emulator, close the emulator. In Windows Explorer, double-click file a.16c and see the application with the program loaded as expected. Close the app. Double-click b.16c and see it opened as expected. Close the app. Double-click on a.16c again and get a file sharing violation. I am closing the app with the upper-right "X". Files aren't properly closed when exiting the application? I think I associated .16c with the emulator like I normally do file type extensions. If you have problems replicating it let me know.
|
|
IP Logged |
|
|
|
Jamie OConnell
Administrator
Gender:
Posts: 2027
|
|
Re: Annoyances, Requests, Bugs
« Reply #52 on: Oct 20th, 2005, 1:47am » |
Quote Modify
|
Thanks. I just issued another update to deal with this issue. The installer will now actively associate the file type as well.
|
|
IP Logged |
--Jamie Music is its own reward.
|
|
|
RickN
Member
HP Calculator Enthusiast
Gender:
Posts: 45
|
|
Re: Annoyances, Requests, Bugs
« Reply #53 on: Oct 21st, 2005, 11:17am » |
Quote Modify
|
In the Brief Users Guide, Keyboard Mapping, CHS=End and ENTER=Enter are missing. Also, the columns are reversed and rows in a different order relative to the program keyboard mapping window. Using default mappings, these don't work on my keyboard: -, + (shift-=), . (dot), /. All other mappings work fine. My keyboard is a 2-year old Dell with 12 function keys along the top -- standard, nothing fancy.
|
« Last Edit: Oct 21st, 2005, 11:20am by RickN » |
IP Logged |
|
|
|
RickN
Member
HP Calculator Enthusiast
Gender:
Posts: 45
|
|
Re: Annoyances, Requests, Bugs
« Reply #54 on: Oct 21st, 2005, 8:20pm » |
Quote Modify
|
Floating point number entry is different than the emulator: FLOAT . .0000001 EEX 1 ENTER enters 1.1e-7 on the calculator because EEX is a no-op as per the owner's handbook p58 footnote, but enters 1.0e-6 on the emulator.
|
|
IP Logged |
|
|
|
|