Post Reply 
new ACT flashtool bug report
01-12-2016, 04:04 PM
Post: #1
new ACT flashtool bug report
Thanks to this thread I was able to get the diagnostic program onto my HP67E relatively quickly.

But in order to get it working I had to correct an error in the program (on the calculator) manually.
It seems that the key code parser in the ACT flash tool has "R->P" and (P->R) swapped.
"R->P" should be "32 72" and "P->R" should be "31 72", but it is the other way round.

The good news is, everything else works fine!

In case any one else wants to try, this is the code and as comment the original code from the and the post mentioned above and the keycodes:

Code:

LBL 0    ; LBL 0    31 25 00
CL REG   ; CLRG     31 43
P<>S     ; P<>S     31 42
CL REG   ; CLRG     31 43
RTN      ; RTN      35 22
LBL a    ; LBL a    32 25 11
RND      ; RND      31 24
RC I     ; RCL I    35 34
X!=Y     ; X!=Y?    32 61
R/S      ; R/S      84
LBL 2    ; LBL 2    31 25 02
DSZ      ; DSZ I    31 33
LBL 5    ; LBL 5    31 25 05
RC I     ; RCL I    35 34
RTN      ; RTN      35 22
LBL c    ; LBL c    32 25 13
RCL (i)  ; RCL (i)  34 24
RC I     ; RCL I    35 34
X!=Y     ; X!=Y?    32 61
R/S      ; R/S      84
STO + 0  ; ST +0    33 61 00
DSZ      ; DSZ I    31 33
GTO c    ; GTO c    22 31 13
3        ; 3        03
EEX      ; EEX      43
2        ; 2        02
RCL 0    ; RCL 0    34 00
X!=Y     ; X!=Y?    32 61
R/S      ; R/S      84
RTN      ; RTN      35 22
LBL e    ; LBL e    32 25 15
1        ; 1        01
-        ; -        51
RTN      ; RTN      35 22
LBL A    ; LBL A    31 25 11
5        ; 5        05
7        ; 7        07
GSB 0    ; GSB 0    31 22 00
PAUSE    ; PSE      35 72
GSB e    ; GSB e    32 22 15
ENTER    ; ENTER    41
RDOWN    ; Rdn      35 53
X<>Y     ; X<>Y     35 52
RUP      ; Rup      35 54
RUP      ; Rup      35 54
X<>Y     ; X<>Y     35 52
RUP      ; Rup      35 54
X!=0     ; X!=0?    31 61
X!=Y     ; X!=Y?    32 61
RTN      ; RTN      35 22
GSB e    ; GSB e    32 22 15
X>Y      ; X>Y?     32 81
RTN      ; RTN      35 22
GSB e    ; GSB e    32 22 15
X=Y      ; X=Y?     32 51
RTN      ; RTN      35 22
GSB e    ; GSB e    32 22 15
X<=Y     ; X<=Y?    32 71
GTO 1    ; GTO 1    22 01
RTN      ; RTN      35 22
LBL 1    ; LBL 1    31 25 01
GSB e    ; GSB e    32 22 15
ST I     ; STO I    35 33
RC I     ; RCL I    35 34
X<>Y     ; X<>Y     35 52
X!=Y     ; X!=Y?    32 61
RTN      ; RTN      35 22
GSB 2    ; GSB 2    31 22 02
X!=0     ; X!=0?    31 61
GTO 3    ; GTO 3    22 03
RTN      ; RTN      35 22
LBL 3    ; LBL 3    31 25 03
GSB 2    ; GSB 2    31 22 02
X=0      ; X=0?     31 51
RTN      ; RTN      35 22
GSB 2    ; GSB 2    31 22 02
X<0      ; X<0?     31 71
RTN      ; RTN      35 22
GSB 2    ; GSB 2    31 22 02
X>0      ; X>0?     31 81
GTO 4    ; GTO 4    22 04
RTN      ; RTN      35 22
LBL  4   ; LBL 4    31 25 04
DSZ      ; DSZ I    31 33
F? 2     ; F2?      35 71 02
GTO 5    ; GTO 5    22 05
DSZ      ; DSZ I    31 33
F? 1     ; F1?      35 71 01
GTO 5    ; GTO 5    22 05
DSZ      ; DSZ I    31 33
F? 3     ; F3?      35 71 03
GTO 6    ; GTO 6    22 06
GTO 5    ; GTO 5    22 05
LBL 6    ; LBL 6    31 25 06
DSZ      ; DSZ I    31 33
F? 0     ; F0?      35 71 00
GTO 7    ; GTO 7    22 07
GTO 5    ; GTO 5    22 05
LBL 7    ; LBL 7    31 25 07
SF 2     ; SF2      35 51 02
SF 1     ; SF1      35 51 01
CF 0     ; CF0      35 61 00
DSZ      ; DSZ I    31 33
F? 3     ; F3?      35 71 03
GTO 5    ; GTO 5    22 05
DSZ      ; DSZ I    31 33
F? 0     ; F0?      35 71 00
GTO 5    ; GTO 5    22 05
DSZ      ; DSZ I    31 33
F? 2     ; F2?      35 71 02
GTO 8    ; GTO 8    22 08
GTO 5    ; GTO 5    22 05
LBL 8    ; LBL 8    31 25 08
DSZ      ; DSZ I    31 33
F? 1     ; F1?      35 71 01
GTO 9    ; GTO 9    22 09
GTO 5    ; GTO 5    22 05
LBL 9    ; LBL 9    31 25 09
DSZ      ; DSZ I    31 33
F? 2     ; F2?      35 71 02
GTO 5    ; GTO 5    22 05
GSB 2    ; GSB 2    31 22 02
DSP 7    ; DSP 7    23 07
DEG      ; DEG      35 41
SIN      ; SIN      31 62
SIN-1    ; SIN^-1   32 62
GSB a    ; GSB a    32 22 11
COS      ; COS      31 63
COS-1    ; COS^-1   32 63
GSB a    ; GSB a    32 22 11
TAN      ; TAN      31 64
TAN-1    ; TAN^-1   32 64
GSB a    ; GSB a    32 22 11
R->P     ; ->P      32 72
P->R     ; ->R      31 72
GSB a    ; GSB a    32 22 11
SIN      ; SIN      31 62
H->H.MS  ; ->HMS    32 74
H.MS->H  ; HMS->    31 74
SIN-1    ; SIN^-1   32 62
GSB a    ; GSB a    32 22 11
LOG      ; LOG      31 53
10^x     ; 10^x     32 53
GSB a    ; GSB a    32 22 11
LN       ; LN       31 52
e^x      ; e^X      32 52
GSB a    ; GSB a    32 22 11
SQRT     ; SQRT(X)  31 54
x^2      ; X^2      32 54
GSB a    ; GSB a    32 22 11
ENTER    ; ENTER    41
Y^X      ; Y^X      35 63
LastX    ; Lastx    35 82
1/X      ; 1/X      35 62
y^x      ; Y^X      35 63
GSB a    ; GSB a    32 22 11
ENTER    ; ENTER    41
+        ; +        61
LastX    ; LastX    35 82
-        ; -        51
GSB a    ; GSB a    32 22 11
ENTER    ; ENTER    41
*        ; *        71
LastX    ; LastX    35 82
:        ; /        81
GSB a    ; GSB a    32 22 11
SQRT     ; SQRT(X)  31 54
FRAC     ; FRC      32 83
LastX    ; LastX    35 82
INT      ; INT      31 83
+        ; +        61
x^2      ; X^2      32 54
GSB a    ; GSB a    32 22 11
D->R     ; D->R     32 73
R->D     ; R->D     31 73
GSB a    ; GSB a    32 22 11
EEX      ; EEX      43
2        ; 2        02
X<>Y     ; X<>Y     35 52
%        ; %        31 82
GSB a    ; GSB a    32 22 11
DSP  1   ; DSP 1    23 01
LBL b    ; LBL b    32 25 12
RC I     ; RCL I    35 34
STO (i)  ; STO (i)  33 24
DSZ      ; DSZ I    31 33
GTO b    ; GTO b    22 31 12
2        ; 2        02
4        ; 4        04
X<>I     ; X<>I     35 24
GSB c    ; GSB c    32 22 13
GSB 0    ; GSB 0    31 22 00
LBL d    ; LBL d    32 25 14
DSZ      ; DSZ I    31 33
RC I     ; RCL I    35 34
ABS      ; ABS      35 64
STO (i)  ; STO (i)  33 24
2        ; 2        02
4        ; 4        04
X!=Y     ; X!=Y?    32 61
GTO d    ; GTO d    22 31 14
ST I     ; STO I    35 33
GSB c    ; GSB c    32 22 13
9        ; 9        09
EEX      ; EEX      43
8        ; 8        08
7        ; 7        07
1/x      ; 1/X      35 62
8        ; 8        08
CHS      ; CHS      42
*        ; *        71
SF 0     ; SF0      35 51 00
CF 1     ; CF1      35 61 01
SF 3     ; SF3      35 51 03
RAD      ; RAD      35 42
DSP 3    ; DSP 3    23 03
ENG      ; ENG      35 23
-x-      ; PRT X    31 84
SCI      ; SCI      32 23
-x-      ; PRT X    31 84
DSP 1    ; DSP 1    23 01
FIX      ; FIX      31 23
-x-      ; PRT X    31 84
R/S      ; R/S
Find all posts by this user
Quote this message in a reply
01-12-2016, 05:25 PM
Post: #2
RE: new ACT flashtool bug report
(01-12-2016 04:04 PM)Harald Wrote:  It seems that the key code parser in the ACT flash tool has "R->P" and (P->R) swapped.
"R->P" should be "32 72" and "P->R" should be "31 72", but it is the other way round.

The good news is, everything else works fine!

Thank you for this bug report, I will correct the flash tool soon. I apologize for swapping these opcodes, but they look so damned similar. The ACT FlashUpdate tool contains a mnemonic parser for each calculator and it will be easy to re-swap the codes.

It seems that you are the first, who used this feature of loading programs into the ACT from the PC. My congratulations!

Bernhard

That's one small step for a man - one giant leap for mankind.
Find all posts by this user
Quote this message in a reply
01-12-2016, 06:01 PM (This post was last modified: 01-12-2016 06:03 PM by Harald.)
Post: #3
RE: new ACT flashtool bug report
(01-12-2016 05:25 PM)PANAMATIK Wrote:  
(01-12-2016 04:04 PM)Harald Wrote:  It seems that the key code parser in the ACT flash tool has "R->P" and (P->R) swapped.
"R->P" should be "32 72" and "P->R" should be "31 72", but it is the other way round.

The good news is, everything else works fine!

Thank you for this bug report, I will correct the flash tool soon. I apologize for swapping these opcodes, but they look so damned similar. The ACT FlashUpdate tool contains a mnemonic parser for each calculator and it will be easy to re-swap the codes.

It seems that you are the first, who used this feature of loading programs into the ACT from the PC. My congratulations!

Bernhard

No need to apologize. I am impressed by how few bugs there are in your software!

But I have to apolgize for finding what looks like another bug. This time in the calculator firmware. I belive this has happened because of the way you had to reformat exponents for the smaler display.
Here is a printout of the diagnostic program (sorry for the bad picture)
[Image: 20160112_184417mlo08.jpg]

The first line should be "-888.9 -90", and is also displayed like that on the calculator. The following lines appear to be correct.
Find all posts by this user
Quote this message in a reply
01-12-2016, 08:11 PM
Post: #4
RE: new ACT flashtool bug report
(01-12-2016 06:01 PM)Harald Wrote:  The first line should be "-888.9 -90", and is also displayed like that on the calculator. The following lines appear to be correct.

Thank you again for this new bug. For sure, this is a problem of reformatting, which I have to solve.

I can add another reported HP-67E bug. If loading a program with f f RCL .. the function keys A-E keep their math functions until a program step is entered manually.

Together with the HP67E P-R R-P swap bug when loading programs from PC there are three known ACT bugs. I will address them tomorrow.

Bernhard

That's one small step for a man - one giant leap for mankind.
Find all posts by this user
Quote this message in a reply
01-13-2016, 06:59 PM
Post: #5
RE: new ACT flashtool bug report
(01-12-2016 08:11 PM)PANAMATIK Wrote:  Together with the HP67E P-R R-P swap bug when loading programs from PC there are three known ACT bugs. I will address them tomorrow.

Bernhard

I released a new HP67EIr Version 1.04 for download today.

The above printing bug was only effective in ENG (engineering) mode and swallowed one exponent digit, when interpreting the display buffer for printing.
The function keys A-E now switch correctly between labels and math functions after loading a program.
And ACTFlashUpdate.exe utility is corrected, P->R R->P are not swapped any more. Also the ProgramCodes.pdf table is updated, because it contained the same swapped mnemonics.

Wating for no more HP67E bugs to be reported, because only 17 (seventeen) from 16k PIC instructions are free in ACTs program memory. Sad

Bernhard

That's one small step for a man - one giant leap for mankind.
Find all posts by this user
Quote this message in a reply
01-13-2016, 10:21 PM
Post: #6
RE: new ACT flashtool bug report
(01-13-2016 06:59 PM)PANAMATIK Wrote:  
(01-12-2016 08:11 PM)PANAMATIK Wrote:  Together with the HP67E P-R R-P swap bug when loading programs from PC there are three known ACT bugs. I will address them tomorrow.

Bernhard

I released a new HP67EIr Version 1.04 for download today.

The above printing bug was only effective in ENG (engineering) mode and swallowed one exponent digit, when interpreting the display buffer for printing.
The function keys A-E now switch correctly between labels and math functions after loading a program.
And ACTFlashUpdate.exe utility is corrected, P->R R->P are not swapped any more. Also the ProgramCodes.pdf table is updated, because it contained the same swapped mnemonics.

Wating for no more HP67E bugs to be reported, because only 17 (seventeen) from 16k PIC instructions are free in ACTs program memory. Sad

Bernhard

Impressive Bernhard! Thanks for the super quick bug fix! I will flash the calculator tomorrow.

At the moment the mnemonic parser doesn't accept keycodes, does it? If it did, it would be possible to use these libraries for the RPN67 simulator.
I presume you have a table containing the mnemonics for the parser. I'd be happy to add the keycodes if that would make it relatively simple for you to include them as an alternative in the parser.
Find all posts by this user
Quote this message in a reply
Post Reply 




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