Post Reply 
Classic, Woodstock and Spice Emulators
06-13-2016, 12:23 AM
Post: #21
RE: Classic, Woodstock and Spice Emulators
(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
Find all posts by this user
Quote this message in a reply
06-13-2016, 12:35 PM (This post was last modified: 06-13-2016 12:37 PM by PANAMATIK.)
Post: #22
RE: Classic, Woodstock and Spice Emulators
(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

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
06-14-2016, 04:19 AM
Post: #23
RE: Classic, Woodstock and Spice Emulators
(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.

https://www.hrastprogrammer.com/hrastwood/
https://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
06-14-2016, 07:10 AM
Post: #24
RE: Classic, Woodstock and Spice Emulators
(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

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
06-14-2016, 07:29 AM
Post: #25
RE: Classic, Woodstock and Spice Emulators
(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!

Big Grin

Even more interesting would have been DosBox on an android device Smile
Find all posts by this user
Quote this message in a reply
06-14-2016, 09:28 AM
Post: #26
RE: Classic, Woodstock and Spice Emulators
(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. Smile

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
06-14-2016, 10:33 AM
Post: #27
RE: Classic, Woodstock and Spice Emulators
(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... ;)

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
06-16-2016, 09:28 PM
Post: #28
RE: Classic, Woodstock and Spice Emulators
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
Find all posts by this user
Quote this message in a reply
06-17-2016, 08:27 AM (This post was last modified: 06-17-2016 09:06 AM by Harald.)
Post: #29
RE: Classic, Woodstock and Spice Emulators
(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:
[Image: error6obay.jpg]
Find all posts by this user
Quote this message in a reply
06-18-2016, 07:41 AM (This post was last modified: 06-18-2016 11:42 AM by PANAMATIK.)
Post: #30
RE: Classic, Woodstock and Spice Emulators
(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. Sad An updated manual will follow.

Added: The user manual is updated. Smile
And I released new versions of the HP-25 and HP-29 Emulators

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
06-18-2016, 01:07 PM
Post: #31
RE: Classic, Woodstock and Spice Emulators
(06-18-2016 07:41 AM)PANAMATIK Wrote:  Added: The user manual is updated. Smile
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
Find all posts by this user
Quote this message in a reply
06-18-2016, 02:50 PM (This post was last modified: 06-18-2016 09:43 PM by Harald.)
Post: #32
RE: Classic, Woodstock and Spice Emulators
(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. Sad An updated manual will follow.

Added: The user manual is updated. Smile
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...
Find all posts by this user
Quote this message in a reply
06-18-2016, 03:21 PM
Post: #33
RE: Classic, Woodstock and Spice Emulators
(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

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
06-18-2016, 03:23 PM (This post was last modified: 06-18-2016 03:24 PM by PANAMATIK.)
Post: #34
RE: Classic, Woodstock and Spice Emulators
(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

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
06-18-2016, 04:48 PM
Post: #35
RE: Classic, Woodstock and Spice Emulators
(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
Find all posts by this user
Quote this message in a reply
06-18-2016, 07:34 PM
Post: #36
RE: Classic, Woodstock and Spice Emulators
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

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
06-18-2016, 10:15 PM
Post: #37
RE: Classic, Woodstock and Spice Emulators
(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.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-18-2016, 10:22 PM
Post: #38
RE: Classic, Woodstock and Spice Emulators
(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 Wink )

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?

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-18-2016, 10:55 PM
Post: #39
RE: Classic, Woodstock and Spice Emulators
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
Find all posts by this user
Quote this message in a reply
06-19-2016, 04:56 AM (This post was last modified: 06-19-2016 06:29 AM by PANAMATIK.)
Post: #40
RE: Classic, Woodstock and Spice Emulators
(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

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
Post Reply 




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