RE: Classic, Woodstock and Spice Emulators - SlideRule - 06-13-2016 12:23 AM
(06-10-2016 07:24 PM)PANAMATIK Wrote: Recently I released an HP-67 emulator for Windows ... more microcode emulators for the Classic ... Woodstock ... and Spice models. You can download them for free.
There is no installation necessary except the optional 7-Segment font.
Although it seems obvious, an installation other than the TTF IS needed (see attachment:[attachment=3664] ) and MS dotNet is assumed to already be installed?
I'm so confused!
SlideRule
RE: Classic, Woodstock and Spice Emulators - PANAMATIK - 06-13-2016 12:35 PM
(06-13-2016 12:23 AM)SlideRule Wrote: (06-10-2016 07:24 PM)PANAMATIK Wrote: Recently I released an HP-67 emulator for Windows ... more microcode emulators for the Classic ... Woodstock ... and Spice models. You can download them for free.
There is no installation necessary except the optional 7-Segment font.
Although it seems obvious, an installation other than the TTF IS needed (see attachment: ) and MS dotNet is assumed to already be installed?
I'm so confused!
SlideRule
I'm sorry for the confusion. You are right, the so called Microsoft .NET Version 3.5 run time environment or higher must be installed too. Normally AFAIK this is already included in Windows XP and higher as part of the operating system. If not, you have to install it. The .NET environment allows you to run any C# or Visual Basic code compiled by Microsoft Visual Studio.
Bernhard
RE: Classic, Woodstock and Spice Emulators - HrastProgrammer - 06-14-2016 04:19 AM
(06-13-2016 12:35 PM)PANAMATIK Wrote: You are right, the so called Microsoft .NET Version 3.5 run time environment or higher must be installed too. Normally AFAIK this is already included in Windows XP and higher as part of the operating system.
No, it is not.
.NET 3.5 was released some 6 years after Windows XP release and is included with Windows 7 and Windows Server 2008 R2.
Windows XP Home/Professional editions don't have any .NET installed by default.
Windows XP Media Center and Tablet PC editions have .NET 1.0 installed.
RE: Classic, Woodstock and Spice Emulators - Massimo Gnerucci - 06-14-2016 07:10 AM
(06-14-2016 04:19 AM)HrastProgrammer Wrote: (06-13-2016 12:35 PM)PANAMATIK Wrote: You are right, the so called Microsoft .NET Version 3.5 run time environment or higher must be installed too. Normally AFAIK this is already included in Windows XP and higher as part of the operating system.
No, it is not.
.NET 3.5 was released some 6 years after Windows XP release and is included with Windows 7 and Windows Server 2008 R2.
Windows XP Home/Professional editions don't have any .NET installed by default.
Windows XP Media Center and Tablet PC editions have .NET 1.0 installed.
I can confirm it doesn't run on MS-DOS 6.22 either!
:D
RE: Classic, Woodstock and Spice Emulators - Harald - 06-14-2016 07:29 AM
(06-14-2016 07:10 AM)Massimo Gnerucci Wrote: (06-14-2016 04:19 AM)HrastProgrammer Wrote: No, it is not.
.NET 3.5 was released some 6 years after Windows XP release and is included with Windows 7 and Windows Server 2008 R2.
Windows XP Home/Professional editions don't have any .NET installed by default.
Windows XP Media Center and Tablet PC editions have .NET 1.0 installed.
I can confirm it doesn't run on MS-DOS 6.22 either!
Even more interesting would have been DosBox on an android device
RE: Classic, Woodstock and Spice Emulators - PANAMATIK - 06-14-2016 09:28 AM
(06-14-2016 04:19 AM)HrastProgrammer Wrote: No, it is not.....
I apologize for the false information. AFAIKN this is already included in Windows 7 and higher as part of the operating system. It can be installed in Windows XP. It cannot be installed in DOS.
Though porting the emulators to DOS, Win98 or CP/M (without image) or Amiga or VC64 needs some work, but is nevertheless possible.
Bernhard
RE: Classic, Woodstock and Spice Emulators - Massimo Gnerucci - 06-14-2016 10:33 AM
(06-14-2016 09:28 AM)PANAMATIK Wrote: (06-14-2016 04:19 AM)HrastProgrammer Wrote: No, it is not.....
I apologize for the false information. AFAIKN this is already included in Windows 7 and higher as part of the operating system. It can be installed in Windows XP. It cannot be installed in DOS.
Though porting the emulators to DOS, Win98 or CP/M (without image) or Amiga or VC64 needs some work, but is nevertheless possible. :)
Bernhard
My previous comment was only tongue in cheek, of course... ;)
RE: Classic, Woodstock and Spice Emulators - Harald - 06-16-2016 09:28 PM
I have played with the hp67 emulator today.
It is really nice! But there are two things I had trouble with.
1) I tried to use programs for the HP 67E new ACT and the mnemonics seem to be slightly different. CL REG is now CLREG, : is / and all the test need a "?"
After those changes "factors and primes" is running.
2) Maybe I made a mistake somewhere, but the user diagnostic program gives strange results. I'll post details tomorrow
Harald
RE: Classic, Woodstock and Spice Emulators - Harald - 06-17-2016 08:27 AM
(06-16-2016 09:28 PM)Harald Wrote: I'll post details tomorrow
Ok, here comes the "Factors and Primes" code for the Emulator:
Code:
HP67
PROGRAM
LBL A ; Factor integer n.
STO B ;
ENTER ;
INT ;
X!=Y? ; If non-integer, halt on Error.
GTO 5 ;
0 ;
STO D ; Initialize d.
X<>Y ;
X<=Y? ; If n<= 0, halt on Error.
GTO 5 ;
2 ;
EEX ;
9 ;
X<>Y ;
X>Y? ;
GTO 5 ; If n > 2 x 10^9, halt on Error.
CF 1 ; F1 clear for factors.
GSB a ; Find factors.
RTN ;
LBL B ; Lower bound for primes.
STO A ;
X<0? ; If negative, halt on Error.
GTO 5 ;
ENTER ; This routine finds smallest
INT ; potential prime >= user's
X=Y? ; input.
GTO 0 ;
1 ;
+ ;
LBL 0 ;
2 ; Handle 2 as a special case
X<>Y ; (only even prime).
X=Y? ;
GTO 0 ;
2 ;
/ ;
INT ;
2 ;
* ;
1 ;
+ ;
LBL 0 ;
STO B ; Store beginning prime L.
STO C ;
2 ;
EEX ; 2 x 10^9 is the default upper bound.
9 ;
STO E ;
X<=Y? ; If input >= 2 x 10^9, halt on Error.
GTO 5 ;
SF 1 ; Flag 1 set for primes.
RCL A ;
RTN ;
LBL C ;
STO A ; Upper bound for primes.
RCL B ;
- ;
X<0? ; If upper < lower, halt on Error.
GTO 5 ;
RCL A ;
INT ;
2 ; Handle 2 as a special case.
X<>Y ;
X=Y? ;
GTO 0 ;
2 ;
/ ; This routine finds the greatest potential
. ; prime <= user's input.
5 ;
+ ;
INT ;
2 ;
* ;
1 ;
- ;
LBL 0 ;
STO E ;
RCL A ; Store final prime U.
RTN ;
LBL D ; Routine to list primes.
0 ;
STO D ; Initialized d<-0
RCL B ;
2 ; If L = 2, print 2, add 1 and go.
X<>Y ;
X=Y? ;
GTO 0 ;
1 ; If L = 1, print 1, 2, add 1 and go.
X!=Y? ;
GTO 1 ;
GSB e ; If L != 1 and L != 2, go directly to LBL 1
+ ;
RCL E ;
X<>Y ;
X>Y? ;
GTO 4 ;
LBL 0 ;
GSB e ;
1 ; Output 2
GTO 8 ;
LBL 1 ;
GSB a ;
RCL B ; Begin main loop.
RCL C ; Check for factors of current n (RB).
X=Y? ; if RB = RC, n is prime.
GSB e ; Output n.
2 ;
LBL 8 ;
+ ;
STO C ; Set n to next potential prime.
STO B ;
RCL E ;
X<>Y ;
X>Y? ; If n > U, exit.
GTO 4 ;
0 ;
STO D ; Else loop again.
GTO 1 ;
LBL a ; Subroutine called from both A & D which
2 ; finds factors of n.
GSB 3 ;
X=0? ;
RTN ;
1 ; Check first if n is divisible by 2, 3, 5, or 7
GSB 3 ;
X=0? ; LBL 2 check for division by integers
RTN ; whose position in a cycle of 30 corresponds to
2 ; 11, 13, 17, 19, 23, 29, 31, or 37
GSB 3 ;
X=0? ;
RTN ;
2 ;
GSB 3 ;
X=0? ;
RTN ;
LBL 2 ;
4 ;
GSB 3 ; 11 (=7+4)
X=0? ;
RTN ;
2 ;
GSB 3 ; 13 (=11+2)
X=0? ;
RTN ;
4 ;
GSB 3 ; 17 (=13+4)
X=0? ;
RTN ;
2 ;
GSB 3 ; 19 (=17+4)
X=0? ;
RTN ;
4 ;
GSB 3 ; 23 (=19+4)
X=0? ;
RTN ;
6 ;
GSB 3 ; 29 (=23+6)
X=0? ;
RTN ;
2 ;
GSB 3 ; 31 (=29+2)
X=0? ;
RTN ;
6 ;
GSB 3 ; 37 (=31+6)
X=0? ;
RTN ; Loop again for next 30.
GTO 2 ;
LBL 3 ;
RCL D ; Test if d|n
+ ;
STO D ; d<- d + x
RCL B ; n
X<>Y ;
/ ; n/d
LastX ; d, n/d
X>Y? ; If d > n/d, then d > sqrt(n)
GTO 0 ; Exit.
X<>Y ;
INT ; [n/d] ::= INT(n/d)
LastX ; n/d, [n/d]
X!=Y? ; if non-integer, d does not
RTN ; divide n.
STO B ; Else n<- n/d
F1? ;
CLX ; If finding primes, exit.
F1? ;
RTN ;
RCL D ; If factoring, output d.
GSB e ;
0 ; Check for d a multiple factor.
GTO 3 ;
LBL 0 ; Coming here means n is prime.
F1? ; If finding primes, exit.
CLX ;
F1? ;
RTN ; Else output last n.
RCL B ;
GSB e ;
LBL 4 ;
CLX ; Exit displaying 0.
F0? ;
SPACE ;
RTN ;
LBL E ;
F0? ; Auto toggle.
GTO 0 ;
SF 0 ;
1 ;
RTN ;
LBL 0 ;
CF 0 ;
0 ;
RTN ;
LBL e ; Output routine.
F0? ; Print if AUTO.
-x- ;
F0? ;
RTN ;
R/S ; alt if not.
RTN ;
END
MODE DEG FIX 2 0 0 0 0
And here the code I used for the HP67E with new ACT:
Code:
HP67
PROGRAM 0
LBL A ; Factor integer n.
STO B ;
ENTER ;
INT ;
X!=Y ; If non-integer, halt on Error.
GTO 5 ;
0 ;
STO D ; Initialize d.
X<>Y ;
X<=Y ; If n<= 0, halt on Error.
GTO 5 ;
2 ;
EEX ;
9 ;
X<>Y ;
X>Y ;
GTO 5 ; If n > 2 x 10^9, halt on Error.
CF 1 ; F1 clear for factors.
GSB a ; Find factors.
RTN ;
LBL B ; Lower bound for primes.
STO A ;
X<0 ; If negative, halt on Error.
GTO 5 ;
ENTER ; This routine finds smallest
INT ; potential prime >= user's
X=Y ; input.
GTO 0 ;
1 ;
+ ;
LBL 0 ;
2 ; Handle 2 as a special case
X<>Y ; (only even prime).
X=Y ;
GTO 0 ;
2 ;
: ;
INT ;
2 ;
* ;
1 ;
+ ;
LBL 0 ;
STO B ; Store beginning prime L.
STO C ;
2 ;
EEX ; 2 x 10^9 is the default upper bound.
9 ;
STO E ;
X<=Y ; If input >= 2 x 10^9, halt on Error.
GTO 5 ;
SF 1 ; Flag 1 set for primes.
RCL A ;
RTN ;
LBL C ;
STO A ; Upper bound for primes.
RCL B ;
- ;
X<0 ; If upper < lower, halt on Error.
GTO 5 ;
RCL A ;
INT ;
2 ; Handle 2 as a special case.
X<>Y ;
X=Y ;
GTO 0 ;
2 ;
: ; This routine finds the greatest potential
. ; prime <= user's input.
5 ;
+ ;
INT ;
2 ;
* ;
1 ;
- ;
LBL 0 ;
STO E ;
RCL A ; Store final prime U.
RTN ;
LBL D ; Routine to list primes.
0 ;
STO D ; Initialized d<-0
RCL B ;
2 ; If L = 2, print 2, add 1 and go.
X<>Y ;
X=Y ;
GTO 0 ;
1 ; If L = 1, print 1, 2, add 1 and go.
X!=Y ;
GTO 1 ;
GSB e ; If L != 1 and L != 2, go directly to LBL 1
+ ;
RCL E ;
X<>Y ;
X>Y ;
GTO 4 ;
LBL 0 ;
GSB e ;
1 ; Output 2
GTO 8 ;
LBL 1 ;
GSB a ;
RCL B ; Begin main loop.
RCL C ; Check for factors of current n (RB).
X=Y ; if RB = RC, n is prime.
GSB e ; Output n.
2 ;
LBL 8 ;
+ ;
STO C ; Set n to next potential prime.
STO B ;
RCL E ;
X<>Y ;
X>Y ; If n > U, exit.
GTO 4 ;
0 ;
STO D ; Else loop again.
GTO 1 ;
LBL a ; Subroutine called from both A & D which
2 ; finds factors of n.
GSB 3 ;
X=0 ;
RTN ;
1 ; Check first if n is divisible by 2, 3, 5, or 7
GSB 3 ;
X=0 ; LBL 2 check for division by integers
RTN ; whose position in a cycle of 30 corresponds to
2 ; 11, 13, 17, 19, 23, 29, 31, or 37
GSB 3 ;
X=0 ;
RTN ;
2 ;
GSB 3 ;
X=0 ;
RTN ;
LBL 2 ;
4 ;
GSB 3 ; 11 (=7+4)
X=0 ;
RTN ;
2 ;
GSB 3 ; 13 (=11+2)
X=0 ;
RTN ;
4 ;
GSB 3 ; 17 (=13+4)
X=0 ;
RTN ;
2 ;
GSB 3 ; 19 (=17+4)
X=0 ;
RTN ;
4 ;
GSB 3 ; 23 (=19+4)
X=0 ;
RTN ;
6 ;
GSB 3 ; 29 (=23+6)
X=0 ;
RTN ;
2 ;
GSB 3 ; 31 (=29+2)
X=0 ;
RTN ;
6 ;
GSB 3 ; 37 (=31+6)
X=0 ;
RTN ; Loop again for next 30.
GTO 2 ;
LBL 3 ;
RCL D ; Test if d|n
+ ;
STO D ; d<- d + x
RCL B ; n
X<>Y ;
: ; n/d
LastX ; d, n/d
X>Y ; If d > n/d, then d > sqrt(n)
GTO 0 ; Exit.
X<>Y ;
INT ; [n/d] ::= INT(n/d)
LastX ; n/d, [n/d]
X!=Y ; if non-integer, d does not
RTN ; divide n.
STO B ; Else n<- n/d
F1? ;
CLX ; If finding primes, exit.
F1? ;
RTN ;
RCL D ; If factoring, output d.
GSB e ;
0 ; Check for d a multiple factor.
GTO 3 ;
LBL 0 ; Coming here means n is prime.
F1? ; If finding primes, exit.
CLX ;
F1? ;
RTN ; Else output last n.
RCL B ;
GSB e ;
LBL 4 ;
CLX ; Exit displaying 0.
F0? ;
SPACE ;
RTN ;
LBL E ;
F0? ; Auto toggle.
GTO 0 ;
SF 0 ;
1 ;
RTN ;
LBL 0 ;
CF 0 ;
0 ;
RTN ;
LBL e ; Output routine.
F0? ; Print if AUTO.
-x- ;
F0? ;
RTN ;
R/S ; alt if not.
RTN ;
END
This is the User Diagnostics code that works as advertised in the HP67E with new ACT:
Code:
PROGRAM 1
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
; This program can be used to test the calculator and diagnose calculator malfunctions. Simply insert the card and press A . After approximately two seconds, the calculator should pause displaying:
; 57.0
; If the calculator does not pause with this number, there is a malfunction in executing and returning from a subroutine, finding Label 0, program storage, the display, the magnetic card, the PAUSE command or the card reader.
; After the pause, the calculator should continue to run about one-and-one-half minutes more and then print the three lines shown:
; -888.9-90
; -8.889-88
; -8.888888888-88
; This output indicates that printing and display formatting are working correctIy. If the calculator stops before displaying -8.888888888-88, a code number corresponding to a function or operation malfunction will be displayed. For instance, if the calculator stopped with 36.0 in the display, an error in tangent or arctangent would be indicated. The sole exception is a failure in primary register 0. The calculator will stop execution of the program with the erroneous contents of R0 displayed.
; If error occurs: code indicating malfunction is shown. To run again after an error, set F0 and F3, clear F1 and F2. Or simply reload card.
; If no error, display shows
; -888.9-90
; -8.889-88
; -8.888888889-88
; (Note that a real HP-67 returns -8.888888888-88 since it doesn't round the last digit correctly.)
END
And here comes the "User Diagnostic" program for the emulator:
Code:
PROGRAM 1
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
; This program can be used to test the calculator and diagnose calculator malfunctions. Simply insert the card and press A . After approximately two seconds, the calculator should pause displaying:
; 57.0
; If the calculator does not pause with this number, there is a malfunction in executing and returning from a subroutine, finding Label 0, program storage, the display, the magnetic card, the PAUSE command or the card reader.
; After the pause, the calculator should continue to run about one-and-one-half minutes more and then print the three lines shown:
; -888.9-90
; -8.889-88
; -8.888888888-88
; This output indicates that printing and display formatting are working correctIy. If the calculator stops before displaying -8.888888888-88, a code number corresponding to a function or operation malfunction will be displayed. For instance, if the calculator stopped with 36.0 in the display, an error in tangent or arctangent would be indicated. The sole exception is a failure in primary register 0. The calculator will stop execution of the program with the erroneous contents of R0 displayed.
; If error occurs: code indicating malfunction is shown. To run again after an error, set F0 and F3, clear F1 and F2. Or simply reload card.
; If no error, display shows
; -888.9-90
; -8.889-88
; -8.888888889-88
; (Note that a real HP-67 returns -8.888888888-88 since it doesn't round the last digit correctly.)
END
It ends with error code 45.
Edit: this might help:
RE: Classic, Woodstock and Spice Emulators - PANAMATIK - 06-18-2016 07:41 AM
(06-17-2016 08:27 AM)Harald Wrote: It ends with error code 45.
You have to add the MODE section which sets F0 and F3 in the diagnostic program before loading or set F0 and F3 before running .
MODE DEG FIX 2 1 0 0 1
I forgot to mention the MODE section in the manual. An updated manual will follow.
Added: The user manual is updated.
And I released new versions of the HP-25 and HP-29 Emulators
Bernhard
RE: Classic, Woodstock and Spice Emulators - Bill (Smithville NJ) - 06-18-2016 01:07 PM
(06-18-2016 07:41 AM)PANAMATIK Wrote: Added: The user manual is updated.
And I released new versions of the HP-25 and HP-29 Emulators
Bernhard
Bernhard,
I just tested the HP-25 on the Windows Tablet with touch and it works great!
Thanks,
Bill
Smithville, NJ
RE: Classic, Woodstock and Spice Emulators - Harald - 06-18-2016 02:50 PM
(06-18-2016 07:41 AM)PANAMATIK Wrote: (06-17-2016 08:27 AM)Harald Wrote: It ends with error code 45.
You have to add the MODE section which sets F0 and F3 in the diagnostic program before loading or set F0 and F3 before running .
MODE DEG FIX 2 1 0 0 1
I forgot to mention the MODE section in the manual. An updated manual will follow.
Added: The user manual is updated.
And I released new versions of the HP-25 and HP-29 Emulators
Bernhard
Great! I'll try that. Thanks for the quick reply as usual!
What about the Mnemonics? Are they really different from what you used for the new ACT or was I using an old version of the flash tool?
Cheers,
Harald
Edit: I should write from my mobile phone - just corrected a lot of typos...
RE: Classic, Woodstock and Spice Emulators - PANAMATIK - 06-18-2016 03:21 PM
(06-18-2016 02:50 PM)Harald Wrote: What about the Mnemonics? Ate they really differen't ftom what you used for the new ACT or wad I using an old version of the flash tool?
Cheers,
Harald
You are using the actual version. The mnemonics for the HP-67/HP25/HP29 Emulators are slightly different compared to the new ACT, because I thought to make an improvement i.e. x=y? is better than just x=y. For compatibility I think I have to make a new version of the flash tool, which accepts either the old and the new syntax. Thus there will be no problems to keep old versions of programs.
Bernhard
RE: Classic, Woodstock and Spice Emulators - PANAMATIK - 06-18-2016 03:23 PM
(06-18-2016 01:07 PM)Bill (Smithville NJ) Wrote: I just tested the HP-25 on the Windows Tablet with touch and it works great!
It's a pleasure to get this feedback from you!
Bernhard
RE: Classic, Woodstock and Spice Emulators - Dieter - 06-18-2016 04:48 PM
(06-17-2016 08:27 AM)Harald Wrote: And here comes the "User Diagnostic" program for the emulator:
This program does not run on Bernhard's HP67 emulator since it uses the old syntax (e.g. tests without "?", "CL REG", ":" etc.).
But you also wrote:
Code:
; (Note that a real HP-67 returns -8.888888888-88 since it doesn't round the last digit correctly.)
The program calculates 1/9E+87 which is 1,111111111E–88 and then this is multiplied by –8, which is –8,888888888E–88. This is exactly what the HP67 emulator returns (and I hope a real HP67 does so as well). Why should it display 8,88...9 instead?
Dieter
RE: Classic, Woodstock and Spice Emulators - PANAMATIK - 06-18-2016 07:34 PM
HP-65 Emulator released !!!
The Classic Emulator set now contains also the HP-65 calculator. This piece was really missing.
I'm proud to have this running as a C# PC application now, because it was a real challenge and I needed the whole week for debugging. Many thanks to Francois Roulet, close friend of the late Jaques Laporte, who gave me the HP-65 Microcode and Jaques original java program. This was a great help and I don't know whether I would have succeded without it.
Download the famous HP-65 as your PC emulation.
The manual update will follow.
Bernhard
RE: Classic, Woodstock and Spice Emulators - rprosperi - 06-18-2016 10:15 PM
(06-18-2016 04:48 PM)Dieter Wrote: The program calculates 1/9E+87 which is 1,111111111E–88 and then this is multiplied by –8, which is –8,888888888E–88. This is exactly what the HP67 emulator returns (and I hope a real HP67 does so as well).
Confirmed on real HP-67.
RE: Classic, Woodstock and Spice Emulators - rprosperi - 06-18-2016 10:22 PM
(06-18-2016 07:34 PM)PANAMATIK Wrote: HP-65 Emulator released !!!
Download the famous HP-65 as your PC emulation.
Thanks Bernhard.
2 whiney little requests:
1. When you release a new version, could you name it something like HP67Emulator_v1.04.zip ? It's likely I will always use only the latest version, but it's confusing to keep track (a small side effect of how amazingly fast you update these )
2. Can you post the Emulator Document separate from the original .zip file? Perhaps at the top of the page for each series of machines?
RE: Classic, Woodstock and Spice Emulators - Bill (Smithville NJ) - 06-18-2016 10:55 PM
Hi Bernhard,
I'm playing around with the HP-25 and it works wonderful.
I do have one (hopefully small) request:
Could the save/load program file include line numbers?
The HP-25, as well as a few others, does not have the LBL key, but uses
line number addressing. It would make the file easier to read/understand.
Bill
Smithville, NJ
RE: Classic, Woodstock and Spice Emulators - PANAMATIK - 06-19-2016 04:56 AM
(06-18-2016 10:55 PM)Bill (Smithville NJ) Wrote: Hi Bernhard,
I'm playing around with the HP-25 and it works wonderful.
I do have one (hopefully small) request:
Could the save/load program file include line numbers?
The HP-25, as well as a few others, does not have the LBL key, but uses
line number addressing. It would make the file easier to read/understand.
Bill
Smithville, NJ
It would be easy to add line numbers when saving the PROGRAM section. Also register numbers could be added in the DATA section. But line numbers have advantages and not. If you create a program with a text editor you have more work and you cannot insert or delete steps easily. When reading the file I'm not sure how to handle line numbers, which are not properly lined up.
Do you have a text editor which shows line numbers? Just subtract 3.
Bernhard
|