(HP-67/97) Planetary Ephemeris
09-13-2015, 11:10 AM
Post: #1
 Thomas Klemm Senior Member Posts: 2,144 Joined: Dec 2013
(HP-67/97) Planetary Ephemeris
From Programming Handheld Calculators by Paul Lutus.

09-20-2015, 08:53 PM (This post was last modified: 09-20-2015 08:58 PM by Dieter.)
Post: #2
 Dieter Senior Member Posts: 2,397 Joined: Dec 2013
RE: (HP-67/97) Planetary Ephemeris
(09-13-2015 11:10 AM)Thomas Klemm Wrote:  From Programming Handheld Calculators by Paul Lutus.

Could you take a look at line 101? The code there is...

Code:
 97 1  98 RCL (i)  99 FRAC 100 STO 3 101 - 102 1 103 RCL 3 104 - 105 /

This calculates (1–R3)/(1–R3) which is always 1. ;-)
I think line 101 should read "+".

I also assume that "lbl A", "lbl B", "lbl C" and "lbl D" in the user instructions (table 3) are supposed to mean simply "A", "B", "C" and "D".
Typing a label instruction in run mode does not do anything. ;-)

Finally there are some "TF" commands. This was a HP65 instruction. On the HP67/97 testing flags is done with the "F?" command. I hope the program considers the 67/97's special behaviour of Flag 2 tests. ;-)

Dieter
09-20-2015, 09:47 PM
Post: #3
 Thomas Klemm Senior Member Posts: 2,144 Joined: Dec 2013
RE: (HP-67/97) Planetary Ephemeris
(09-20-2015 08:53 PM)Dieter Wrote:  Could you take a look at line 101? The code there is...

Code:
 97 1  98 RCL (i)  99 FRAC 100 STO 3 101 - 102 1 103 RCL 3 104 - 105 /

This calculates (1–R3)/(1–R3) which is always 1. ;-)
I think line 101 should read "+".

It appears that these lines calculate $$\frac{1+e}{1-e}$$ of the formula in the mentioned article.

Quote:I also assume that "lbl A", "lbl B", "lbl C" and "lbl D" in the user instructions (table 3) are supposed to mean simply "A", "B", "C" and "D".
Typing a label instruction in run mode does not do anything. ;-)

Finally there are some "TF" commands. This was a HP65 instruction. On the HP67/97 testing flags is done with the "F?" command. I hope the program considers the 67/97's special behaviour of Flag 2 tests. ;-)

I haven't tested this program. But Paul Lutus mentioned that there were errors both in the listing and the data:
Quote:As with the solar position program, the article's publication created a lot of correspondence, including inquiries from JPL and its consultants asking about mathematical details and correcting some errors in the original published data tables (example).

It would be cool if we could make this program run correctly.

Cheers
Thomas
09-20-2015, 10:00 PM
Post: #4
 Dieter Senior Member Posts: 2,397 Joined: Dec 2013
RE: (HP-67/97) Planetary Ephemeris
(09-20-2015 09:47 PM)Thomas Klemm Wrote:  It appears that these lines calculate $$\frac{1+e}{1-e}$$ of the formula in the mentioned article.

Yes, that's why I think there must be a "+" instead of a "–" in line 101.

(09-20-2015 09:47 PM)Thomas Klemm Wrote:  I haven't tested this program. But Paul Lutus mentioned that there were errors both in the listing and the data:
...
It would be cool if we could make this program run correctly.

This should be no problem with a simple image editor. ;-)
Or maybe a HP97 user provides a (corrected) printed listing.

I do not know anything about astronomy, so maybe someone who is more into this could check the program as well as its data set, and post some results it returns. Or those it should return. ;-)

Dieter
08-03-2023, 10:07 PM (This post was last modified: 08-04-2023 08:40 AM by Josef.)
Post: #5
 Josef Junior Member Posts: 30 Joined: Apr 2021
RE: (HP-67/97) Planetary Ephemeris
I tested the program and found that it contains multiple bugs. Some of the errors are due to bad copy, and some are due to using incorrectly marked functions. The algorithm is quite simple and quite inaccurate. I also analyzed the program's data which contains the major planet semi-axis, orbital period and longitude of perihelion in the order of Earth, Mercury, Venus, Mars, Jupiter and Saturn. Subsequently, we can replace them with Uranus, Neptune and Pluto. I've modified the program, and at least it works reasonably. The printed version doesn't even calculate Century Day correctly, which is a prerequisite for correct calculations. There are reasonably good astronomy programs for HP 50g, and I have been able to modify some of them to work.

Here is a listing of the modified program for the HP-67.

Code:
001:  31 25 11     LBL A 002:     33 00     STO 0 003:  33 51 00     STO-0 004:     33 01     STO 1 005:     31 83       INT 006:  33 51 01     STO-1 007:        01         1 008:        51         - 009:        02         2 010:     32 71      XLEY 011:  33 51 00     STO-0 012:     32 71      XLEY 013:  35 51 02      SF 2 014:     35 53      R DN 015:        03         3 016:        00         0 017:        83         . 018:        05         5 019:        08         8 020:        71         x 021:     23 02     DSP 2 022:     31 24       RND 023:  33 61 00     STO+0 024:     34 01     RCL 1 025:        43       EEX 026:        02         2 027:        71         x 028:        41     ENTER 029:     31 83       INT 030:  33 61 00     STO+0 031:        51         - 032:        03         3 033:        06         6 034:        05         5 035:        02         2 036:        05         5 037:        71         x 038:        41     ENTER 039:     31 83       INT 040:  33 61 00     STO+0 041:        51         - 042:  35 71 02      F? 2 043:     22 00     GTO 0 044:     31 61      XNE0 045:     22 00     GTO 0 046:        01         1 047:  33 51 00     STO-0 048:  31 25 00     LBL 0 049:     34 00     RCL 0 050:     23 02     DSP 2 051:     35 22       RTN 052:  31 25 12     LBL B 053:        00         0 054:     33 01     STO 1 055:     33 02     STO 2 056:        04         4 057:  35 51 02      SF 2 058:     22 01     GTO 1 059:  31 25 14     LBL D 060:        01         1 061:        07         7 062:     22 01     GTO 1 063:  31 25 15     LBL E 064:        02         2 065:        02         2 066:     22 01     GTO 1 067:  32 25 11    LBL fa 068:        08         8 069:     22 01     GTO 1 070:  32 25 12    LBL fb 071:        01         1 072:        01         1 073:     22 01     GTO 1 074:  32 25 13    LBL fc 075:        01         1 076:        04         4 077:  31 25 01     LBL 1 078:     35 33      ST I 079:     34 00     RCL 0 080:     34 24   RCL (i) 081:     32 83      FRAC 082:        43       EEX 083:        05         5 084:        71         x 085:        51         - 086:     31 34       ISZ 087:     34 24   RCL (i) 088:  31 22 08     GSB 8 089:        41     ENTER 090:     31 34       ISZ 091:     34 24   RCL (i) 092:     31 83       INT 093:        51         - 094:        02         2 095:        81         / 096:     31 64       TAN 097:        01         1 098:     34 24   RCL (i) 099:     32 83      FRAC 100:     33 03     STO 3 101:        61         + 102:        01         1 103:     34 03     RCL 3 104:        51         - 105:        81         / 106:        71         x 107:     32 64     TAN-1 108:        02         2 109:        71         x 110:        41     ENTER 111:     31 63       COS 112:     34 03     RCL 3 113:        71         x 114:        01         1 115:        51         - 116:        01         1 117:     34 03     RCL 3 118:     32 54       x^2 119:        51         - 120:     35 52      X<>Y 121:        81         / 122:     35 52      X<>Y 123:     34 24   RCL (i) 124:     31 83       INT 125:        51         - 126:     35 52      X<>Y 127:     31 33       DSZ 128:     31 33       DSZ 129:     34 24   RCL (i) 130:     31 83       INT 131:        43       EEX 132:        04         4 133:        81         / 134:        71         x 135:     31 72       R<P 136:  35 71 02      F? 2 137:     22 02     GTO 2 138:     33 01     STO 1 139:     35 52      X<>Y 140:     33 02     STO 2 141:        04         4 142:  35 51 02      SF 2 143:     22 01     GTO 1 144:  31 25 02     LBL 2 145:  33 51 01     STO-1 146:     35 52      X<>Y 147:  33 51 02     STO-2 148:     34 02     RCL 2 149:     34 01     RCL 1 150:     32 72       R>P 151:     35 52      X<>Y 152:     31 71      XLT0 153:  31 22 07     GSB 7 154:        41     ENTER 155:     33 03     STO 3 156:        02         2 157:        71         x 158:     31 62       SIN 159:        02         2 160:        83         . 161:        04         4 162:        71         x 163:        51         - 164:  35 71 00      F? 0 165:  31 22 09     GSB 9 166:     32 74    H>H.MS 167:        84       R/S 168:     34 03     RCL 3 169:     31 62       SIN 170:        02         2 171:        03         3 172:        83         . 173:        05         5 174:        71         x 175:     32 74    H>H.MS 176:        84       R/S 177:     35 54      R UP 178:     35 22       RTN 179:  31 25 07     LBL 7 180:        03         3 181:        06         6 182:        00         0 183:        61         + 184:     35 22       RTN 185:  31 25 08     LBL 8 186:        81         / 187:     32 83      FRAC 188:        03         3 189:        06         6 190:        00         0 191:        71         x 192:     35 22       RTN 193:  31 25 13     LBL C 194:     34 00     RCL 0 195:        02         2 196:        00         0 197:        83         . 198:        06         6 199:        61         + 200:     34 07     RCL 7 201:  31 22 08     GSB 8 202:  35 71 00      F? 0 203:  31 22 09     GSB 9 204:     32 74    H>H.MS 205:     35 22       RTN 206:  31 25 09     LBL 9 207:        01         1 208:        05         5 209:        81         / 210:     35 22       RTN 211:  32 25 15    LBL fe 212:        00         0 213:  35 71 00      F? 0 214:     22 00     GTO 0 215:  35 51 00      SF 0 216:  31 22 07     GSB 7 217:     22 09     GTO 9 218:  31 25 00     LBL 0 219:  35 61 00      CF 0 220:     22 07     GTO 7
08-06-2023, 01:06 PM
Post: #6
 Thomas Klemm Senior Member Posts: 2,144 Joined: Dec 2013
RE: (HP-67/97) Planetary Ephemeris
That's great!
From what I can see you additionally changed the following lines:

Code:
021:     23 02     DSP 2 115:        51         -

I took your program, added the data in the registers and pasted it in this HP-67 emulator:
Code:
PROG 224 001: 31 25 11 002: 33 00 003: 33 51 00 004: 33 01 005: 31 83 006: 33 51 01 007: 01 008: 51 009: 02 010: 32 71 011: 33 51 00 012: 32 71 013: 35 51 02 014: 35 53 015: 03 016: 00 017: 83 018: 05 019: 08 020: 71 021: 23 02 022: 31 24 023: 33 61 00 024: 34 01 025: 43 026: 02 027: 71 028: 41 029: 31 83 030: 33 61 00 031: 51 032: 03 033: 06 034: 05 035: 02 036: 05 037: 71 038: 41 039: 31 83 040: 33 61 00 041: 51 042: 35 71 02 043: 22 00 044: 31 61 045: 22 00 046: 01 047: 33 51 00 048: 31 25 00 049: 34 00 050: 23 02 051: 35 22 052: 31 25 12 053: 00 054: 33 01 055: 33 02 056: 04 057: 35 51 02 058: 22 01 059: 31 25 14 060: 01 061: 07 062: 22 01 063: 31 25 15 064: 02 065: 02 066: 22 01 067: 32 25 11 068: 08 069: 22 01 070: 32 25 12 071: 01 072: 01 073: 22 01 074: 32 25 13 075: 01 076: 04 077: 31 25 01 078: 35 33 079: 34 00 080: 34 24 081: 32 83 082: 43 083: 05 084: 71 085: 51 086: 31 34 087: 34 24 088: 31 22 08 089: 41 090: 31 34 091: 34 24 092: 31 83 093: 51 094: 02 095: 81 096: 31 64 097: 01 098: 34 24 099: 32 83 100: 33 03 101: 61 102: 01 103: 34 03 104: 51 105: 81 106: 71 107: 32 64 108: 02 109: 71 110: 41 111: 31 63 112: 34 03 113: 71 114: 01 115: 51 116: 01 117: 34 03 118: 32 54 119: 51 120: 35 52 121: 81 122: 35 52 123: 34 24 124: 31 83 125: 51 126: 35 52 127: 31 33 128: 31 33 129: 34 24 130: 31 83 131: 43 132: 04 133: 81 134: 71 135: 31 72 136: 35 71 02 137: 22 02 138: 33 01 139: 35 52 140: 33 02 141: 04 142: 35 51 02 143: 22 01 144: 31 25 02 145: 33 51 01 146: 35 52 147: 33 51 02 148: 34 02 149: 34 01 150: 32 72 151: 35 52 152: 31 71 153: 31 22 07 154: 41 155: 33 03 156: 02 157: 71 158: 31 62 159: 02 160: 83 161: 04 162: 71 163: 51 164: 35 71 00 165: 31 22 09 166: 32 74 167: 84 168: 34 03 169: 31 62 170: 02 171: 03 172: 83 173: 05 174: 71 175: 32 74 176: 84 177: 35 54 178: 35 22 179: 31 25 07 180: 03 181: 06 182: 00 183: 61 184: 35 22 185: 31 25 08 186: 81 187: 32 83 188: 03 189: 06 190: 00 191: 71 192: 35 22 193: 31 25 13 194: 34 00 195: 02 196: 00 197: 83 198: 06 199: 61 200: 34 07 201: 31 22 08 202: 35 71 00 203: 31 22 09 204: 32 74 205: 35 22 206: 31 25 09 207: 01 208: 05 209: 81 210: 35 22 211: 32 25 15 212: 00 213: 35 71 00 214: 22 00 215: 35 51 00 216: 31 22 07 217: 22 09 218: 31 25 00 219: 35 61 00 220: 22 07 221: 84 222: 84 223: 84 224: 84 DATA 26 00: 0 01: 0 02: 0 03: 0 04: 10000.00102 05: 365.2564 06: 102.0167 07: 27.321661 08: 3871.000434 09: 87.9693 10: 77.20563 11: 7233.002141 12: 224.7009 13: 131.006784 14: 15237.01249 15: 686.9796 16: 335.093384 17: 52022.02874 18: 4332.0446 19: 14.04795 20: 0 21: 0 22: 95691.08041 23: 10775.056 24: 93.05741 25: 4 STATE 7 DEG FIX 2 1 0 0 1 HELP 1 CARD 11 Title: Planetary Ephemeris A: Date B: Sun C: Moon D: Jupiter E: a: b: c: d: e: 24/360 END

Example

I just followed the example in table 3:

10.1277 A
28409.22

B
22.37

C
13.26

D
6.45

R/S
23.06

R/S
4.72

This looks quite good already.
But the result for the Sun is totally off.

In a comment it says that "10.1277 is the date of a solar eclipse".
Therefore I assume that the Sun's and Moon's position should agree.

Do you have any idea what's going wrong?
08-07-2023, 10:24 AM
Post: #7
 Josef Junior Member Posts: 30 Joined: Apr 2021
RE: (HP-67/97) Planetary Ephemeris
Yes, you have a right. I am now preparing a much better version of the calculation of the Sun's position that is significantly more accurate. Unfortunately, fitting the positions of the planets and Sun into one program in 224 steps with reasonable accuracy is impossible. The author did not give the exact algorithm for calculating the positions, it could be reverse decoded, but it is better to write the program again and better.
09-01-2023, 01:02 PM
Post: #8
 Josef Junior Member Posts: 30 Joined: Apr 2021
RE: (HP-67/97) Planetary Ephemeris
I also tested the calculations for Mercury and Venus, they are completely off, they just don't work. I have prepared new calculations of planetary positions according to other algorithms and allow calculations for years higher than 1999, which the above program does not allow.
 « Next Oldest | Next Newest »

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