Classic, Woodstock and Spice Emulators
06-19-2016, 06:51 AM (This post was last modified: 06-19-2016 06:57 AM by Harald.)
Post: #41
 Harald Senior Member Posts: 752 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
(06-18-2016 04:48 PM)Dieter Wrote:
(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

Hi Dieter,

I have posted both versions of the program to show the difference in the mnemonics.
The other version runs, but as Bernhard said the flags were not set correctly. I assumed the flags would be set correctly, but the way Bernhard has written the emulator, loading a card does not set flag 3. Instead it loads the flags as set in the program file.

The comments are taken from Willi Kunz's version for his emulator. I was too lazy to type the program and instead took it from Willi's website.

Harald
06-19-2016, 09:31 AM
Post: #42
 PANAMATIK Senior Member Posts: 1,025 Joined: Oct 2014
RE: Classic, Woodstock and Spice Emulators
(06-19-2016 06:51 AM)Harald Wrote:  Hi Dieter,

... but as Bernhard said the flags were not set correctly. I assumed the flags would be set correctly, but the way Bernhard has written the emulator, loading a card does not set flag 3. Instead it loads the flags as set in the program file.

I didn't know that reading a card with register data does automatically set Flag 3. Now I'm not sure whether to add this behaviour and set Flag 3 automatically if the file contains a DATA section.

It is possible to get close to a perfect emulation, but not closer.

Bernhard

That's one small step for a man - one giant leap for mankind.
06-19-2016, 12:37 PM
Post: #43
 Dieter Senior Member Posts: 2,397 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
(06-19-2016 06:51 AM)Harald Wrote:  I have posted both versions of the program to show the difference in the mnemonics.
The other version runs

Since you only said "for the emulator" it was not clear which one you refer to. If I understand you correctly, you now say that the first column is for the Kunz emulator and the second one for Bernhard's.

Actually neither version runs. Bernhards emulator does not use "CLRG", "Rdn", "SIN^-1" or "PRTX". All these (and more) are invalid mnemonics.

(06-19-2016 06:51 AM)Harald Wrote:  But as Bernhard said the flags were not set correctly. I assumed the flags would be set correctly, but the way Bernhard has written the emulator, loading a card does not set flag 3. Instead it loads the flags as set in the program file.

The original Diagnostic Program comes on a program card. There is no data card, but only reading a data card (!) would set flag 3. When a program card is read all flags are set according to their state when the card was written, i.e. reading a program card sets all four flags to their recorded state (as well as display and trig mode). This way the program is initialized to these settings.

So Bernhard's emulator works fine. Just add the MODE section, so that the flags are initialized like on a real HP67.

(06-19-2016 06:51 AM)Harald Wrote:  The comments are taken from Willi Kunz's version for his emulator. I was too lazy to type the program and instead took it from Willi's website.

So this emulator does *not* behave like a real HP67? There must be some hidden digits, otherwise the result would not be rounded up – unlike the real 67/97.

Dieter
06-19-2016, 12:46 PM
Post: #44
 Dieter Senior Member Posts: 2,397 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
(06-19-2016 09:31 AM)PANAMATIK Wrote:  I didn't know that reading a card with register data does automatically set Flag 3.
Now I'm not sure whether to add this behaviour and set Flag 3 automatically if the file contains a DATA section.

Reading a data card sets flag 3. But on real hardware program cards and data cards are two different things. Unlike files for the emulator where both are combined.

That's why you should not set flag 3 when a data section is read. The mode section initializes the four flags. What is the emulator supposed to do if MODE tells it to clear flag 3 and DATA tells to set it? And a data section is always there if an emulator file is written by the program.

If the user wants to have flag 3 set in an emulator file with data section he can simply set this in the mode section.

(06-19-2016 09:31 AM)PANAMATIK Wrote:  It is possible to get close to a perfect emulation, but not closer.

On a real HP67 reading a data card first would set flag 3, reading the program card afterwards may clear it again. Or the other way round if the program card is read first. #-)

Dieter
06-19-2016, 02:42 PM
Post: #45
 PANAMATIK Senior Member Posts: 1,025 Joined: Oct 2014
RE: Classic, Woodstock and Spice Emulators
(06-19-2016 12:37 PM)Dieter Wrote:  So this emulator does *not* behave like a real HP67? There must be some hidden digits, otherwise the result would not be rounded up – unlike the real 67/97.

Dieter

As he claims correctly on his website, his RPN-67 is a simulation and does not emulate the original microcode. Rounding differences in the last digits is a quite common difference between emulation and simulation.

Bernhard

That's one small step for a man - one giant leap for mankind.
06-19-2016, 05:43 PM (This post was last modified: 06-19-2016 05:48 PM by Dieter.)
Post: #46
 Dieter Senior Member Posts: 2,397 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
(06-19-2016 02:42 PM)PANAMATIK Wrote:  As he claims correctly on his website, his RPN-67 is a simulation and does not emulate the original microcode. Rounding differences in the last digits is a quite common difference between emulation and simulation.

OK, so this is a simulator, not an emulator.

But I still wonder why the comment re. the diagnostics program said...
Quote:(Note that a real HP-67 returns -8.888888888-88 since it doesn't round the last digit correctly.)
...that a real HP67 does something wrong in that it rounded the result incorrectly. This is not true – the 10-digit value 1.111111111 E+88 times –8 is exactly what's displayed: –8.888888888–88.

Willy, are you out there? If it's you who wrote this, could you please explain why you think a "real HP67" is wrong here? Maybe I didn't understand you correctly.

Dieter
06-19-2016, 06:25 PM
Post: #47
 Massimo Gnerucci Senior Member Posts: 2,378 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
(06-19-2016 05:43 PM)Dieter Wrote:  ...that a real HP67 does something wrong in that it rounded the result incorrectly. This is not true – the 10-digit value 1.111111111 E+88 times –8 is exactly what's displayed: –8.888888888–88.

Maybe you meant 1.111111111 E-88 times –8 = –8.888888888–88

:)

Greetings,
Massimo

-+×÷ ↔ left is right and right is wrong
06-19-2016, 07:59 PM (This post was last modified: 06-19-2016 08:00 PM by PANAMATIK.)
Post: #48
 PANAMATIK Senior Member Posts: 1,025 Joined: Oct 2014
RE: Classic, Woodstock and Spice Emulators
(06-19-2016 05:43 PM)Dieter Wrote:  Willy, are you out there? If it's you who wrote this, could you please explain why you think a "real HP67" is wrong here? Maybe I didn't understand you correctly.

Dieter

The HP-67 has 10 mantissa digits internally. The result of 1/(9 E+87) is
1.111111111000.... E -88
times 8 is
8.888888888000.... E -88

The comment assumes , that there are more internal mantissa digits present, which is obviously only true in the RPN-67 simulator. The original HP-67 is not wrong, but shows the limit of its internal precision.

Bernhard

That's one small step for a man - one giant leap for mankind.
06-20-2016, 07:38 AM
Post: #49
 Harald Senior Member Posts: 752 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
Ok, sorry for the confusion. I really shouldn't write in a hurry and then comment from my mobile phone without checking what I have actually writenn...

Apparently I made a copy and paste mistake when quoting the code I used for Bernhards emulator. The correct code is:
Code:
 HP67 PROGRAM LBL 0    ; LBL 0    31 25 00 CLREG    ; CLRG     31 43 P<>S     ; P<>S     31 42 CLREG    ; 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 MODE DEG FIX 2 0 0 0 0

If the MODE section is now changed to
Code:
 MODE DEG FIX 2 1 0 0 1

everything works fine.

The comments in the code are
A) the code for Willis Simulator (sorry for confusing it with an emulator before, which it cant be if it displays different results from the real calculator)
B) the key codes
and then below the actual program
C) Willis text regarding the program running on his simulator (which by the way is very nice too, and I used frequently until I dropped my ipad and the screen broke)

And here is my interpretation of Willis comment on the rounding:
The mathematically correct result would be rounded to a 9 in the last digit. The real calculator cannot do that as it has no extra digits and therefore no information on how to round the last digit.
So the result is both correct as in it is the best the calculator can do given its limitations, and at the same time incorrect if you were to look at the mathematically correct result.
Willis Simulator overcomes those limitations by adding extra internal digits and therefore displays the mathematically correct result.
06-20-2016, 09:31 AM (This post was last modified: 07-26-2016 09:09 PM by Willy R. Kunz.)
Post: #50
 Willy R. Kunz Member Posts: 101 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
(06-19-2016 07:59 PM)PANAMATIK Wrote:
(06-19-2016 05:43 PM)Dieter Wrote:  Willy, are you out there? If it's you who wrote this, could you please explain why you think a "real HP67" is wrong here? Maybe I didn't understand you correctly.

Dieter

The HP-67 has 10 mantissa digits internally. The result of 1/(9 E+87) is
1.111111111000.... E -88
times 8 is
8.888888888000.... E -88

The comment assumes , that there are more internal mantissa digits present, which is obviously only true in the RPN-67 simulator. The original HP-67 is not wrong, but shows the limit of its internal precision.

Bernhard

Thank you, Bernhard, that's the correct explanation. If you're running my 67/97 products in what I call "HP-67 accuracy", I limit values to what the display can hold by essentially producing the 0's you show above. Only in high-accuracy mode the invisible digits are left in place and are used for rounding.
I found out the hard way that having only high accuracy would break many original HP programs. For example, one program would repeatedly multiply a value by 10 until enough 0's had been shifted in to return TRUE when testing for zero.

Willy

Interestingly, the HP-65 Diagnostic Program (STD-18A) creates the -8.888888889E-88 check number by actually computing the TAN of -5.092958178E-86°. The correct value is -8.888888887 (2471)E-88, so the last digit is indeed 7, not 8. The HP-67, on the other hand, computes TAN correctly, so HP had to take a different approach to produce the desired number. (TAN(-5.092958179E-86) returns -8.888888889E-88, so that's no help either.)

As an aside, Free42 returns -1.158028306E-34 for the tangent, although the sine (-8.888888887E-87) and the cosine (1.00000000) are correct.

And TAN(-5.092958178E-86°) simply crashes WP34s... (version 3.3, both on iPhone and iPad).
07-02-2016, 01:01 PM
Post: #51
 teenix Senior Member Posts: 1,419 Joined: May 2016
RE: Classic, Woodstock and Spice Emulators
I didn't know that reading a card with register data does automatically set Flag 3. Now I'm not sure whether to add this behaviour and set Flag 3 automatically if the file contains a DATA section.

Flag 3 is set by microcode at address 13016 octal during data card reads, and mentioned on Pg 256 of owner handbook.

cheers

Tony
07-04-2016, 02:15 PM
Post: #52
 PANAMATIK Senior Member Posts: 1,025 Joined: Oct 2014
RE: Classic, Woodstock and Spice Emulators
Thanks to teenix and his nice looking borderless emulators, I made the HP-67 and HP-65 Emulators now also configurable as borderless application.

The image file name can be chosen within the configuration file and .png files with transparent color are accepted. See the description in the updated manual.

HP-67 Emulator

Have fun with the now optionally nice looking borderless emulators.

HP-25 and other emulators will follow as borderless versions soon.

Bernhard

That's one small step for a man - one giant leap for mankind.
07-04-2016, 06:57 PM
Post: #53
 rprosperi Super Moderator Posts: 5,075 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
(07-04-2016 02:15 PM)PANAMATIK Wrote:  Thanks to teenix and his nice looking borderless emulators, I made the HP-67 and HP-65 Emulators now also configurable as borderless application.

The new borderless HP-67 is quite nice. Thank you Bernhard and also to teenix for the nice images and borderless scheme.

Bernhard - how does one find the program version (e.g. v1.04) of the .exe file now that the fly-out right border is gone? I checked the .exe file properties on the Details tab, but it shows only 1.0.0.0 so this is not being used.

--Bob Prosperi
07-04-2016, 08:15 PM
Post: #54
 PANAMATIK Senior Member Posts: 1,025 Joined: Oct 2014
RE: Classic, Woodstock and Spice Emulators
(07-04-2016 06:57 PM)rprosperi Wrote:  Bernhard - how does one find the program version (e.g. v1.04) of the .exe file now that the fly-out right border is gone? I checked the .exe file properties on the Details tab, but it shows only 1.0.0.0 so this is not being used.

The program version can still be displayed when you configure the non transparent mode in the .kml file. Just remove the keyword TRANSPARENT or rename the .kml file to start in default mode.

Bernhard

That's one small step for a man - one giant leap for mankind.
07-04-2016, 10:24 PM
Post: #55
 rprosperi Super Moderator Posts: 5,075 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
(07-04-2016 08:15 PM)PANAMATIK Wrote:  The program version can still be displayed when you configure the non transparent mode in the .kml file. Just remove the keyword TRANSPARENT or rename the .kml file to start in default mode.

Simple answer. Dumb question. Thanks.

--Bob Prosperi
08-03-2016, 12:41 PM
Post: #56
 PANAMATIK Senior Member Posts: 1,025 Joined: Oct 2014
RE: Classic, Woodstock and Spice Emulators
HP-19C Emulator available!

The first ever HP-19C microcode emulator is available since today. I was lucky to read the last puzzle of ROM code some weeks ago. And since then I tried to get it running including printing. I think I am not yet successful at all points. But the emulation is running and decodes also the really special printer output sequences to readable text.

Still this emulation lacks of some useful features like saving and loading programs and saving the printer output. And I did not yet find the reason, why printing in TRACE mode doesn't show the mnemonics of the last executed function, as described in the manual. Perhaps the microcode of my machine was an early version? Unfortunately I don't have a working HP-19C, I could just read the microcode from its chips.

Have fun with playing around with the first ever HP-19C Emulator.

Bernhard

That's one small step for a man - one giant leap for mankind.
08-03-2016, 04:18 PM
Post: #57
 Harald Senior Member Posts: 752 Joined: Dec 2013
RE: Classic, Woodstock and Spice Emulators
(08-03-2016 12:41 PM)PANAMATIK Wrote:  HP-19C Emulator available!

The first ever HP-19C microcode emulator is available since today. I was lucky to read the last puzzle of ROM code some weeks ago. And since then I tried to get it running including printing. I think I am not yet successful at all points. But the emulation is running and decodes also the really special printer output sequences to readable text.

Still this emulation lacks of some useful features like saving and loading programs and saving the printer output. And I did not yet find the reason, why printing in TRACE mode doesn't show the mnemonics of the last executed function, as described in the manual. Perhaps the microcode of my machine was an early version? Unfortunately I don't have a working HP-19C, I could just read the microcode from its chips.

Have fun with playing around with the first ever HP-19C Emulator.

Bernhard

Wow, there is really a lot happening in terms of emulators these days! Thanks Bernhard!
08-03-2016, 05:46 PM
Post: #58
 PANAMATIK Senior Member Posts: 1,025 Joined: Oct 2014
RE: Classic, Woodstock and Spice Emulators
(08-03-2016 04:18 PM)Harald Wrote:  Wow, there is really a lot happening in terms of emulators these days! Thanks Bernhard!

Harald,

In this case, you are 4/5 responsible for making this possible, because 4k out of 5k ROM I could extract from your HP-19C, which you gave me some month ago for this purpose. I needed until now to understand how the 5th k could be read: Two of the ROM chips in the HP-19C have dedicated chip select inputs, one is low active, the other high active, sharing the same address space at 4k. The chip select pin is controlled by the s0 bit in the ACT status register, which is connected to the two ROMs. In later calculator models i.e. HP-67 HP invented the bank switch instruction, which toggled between the ROM chips during runtime without needing an extra chip select pin.

Many credits! Thanks again for your help, you will be mentioned in the upcoming manual of the HP-19C emulator.

Bernhard

That's one small step for a man - one giant leap for mankind.
08-09-2016, 12:06 AM (This post was last modified: 08-09-2016 12:29 AM by PANAMATIK.)
Post: #59
 PANAMATIK Senior Member Posts: 1,025 Joined: Oct 2014
RE: Classic, Woodstock and Spice Emulators
(08-03-2016 12:41 PM)PANAMATIK Wrote:  HP-19C Emulator available!

.... I did not yet find the reason, why printing in TRACE mode doesn't show the mnemonics of the last executed function, as described in the manual. Perhaps the microcode of my machine was an early version?

I solved the above problem. There is no doubt any more, that the extracted HP-19C microcode is the original version, it was just interpreting wrong when reading external input pins like the printer mode switch.

After intensively examining the HP-19C hardware and the reconstruction of a full schematic, I discovered that the same signal, which switches between the two upper ROMs, is used also as an input multiplexer for PRGM/RUN switch and the printer mode switch and the printer home switch and motor running input, realized by a tricky transistor circuit. Yes, the single s0 signal has five different functions!

This hardware trick leads to some remarkable consequences: If code in address range 1-6000 to 1-7777 is running, scanning of the PRGM/RUN or printer switch is strictly prohibited, which indeed doesn't occur.

As I understand the circuit better now, I could make some changes and the emulation does work correctly in TRACE mode and shows the mnemonic of the actual calculation . The release of a next HP-19C version will follow in a few days.

If some more experiments will also succeed, I think I can announce that a modified newACT repair kit will finally be available for repairing of defective HP-19C calculators

Bernhard

That's one small step for a man - one giant leap for mankind.
08-09-2016, 10:24 AM
Post: #60
 PANAMATIK Senior Member Posts: 1,025 Joined: Oct 2014
RE: Classic, Woodstock and Spice Emulators
HP-19C Schematic! Processorboard

No warranty!

Bernhard

That's one small step for a man - one giant leap for mankind.
 « Next Oldest | Next Newest »

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