1. Application software

1-1. Planet position calculation program

I have made an application program for PERSEUS-9 to determine the coordinate positions of the planet's geocentric distance and right ascension and declination on any given day from orbital elements such as the planet's mean longitude, longitude of perihelion, longitude of ascending node, inclination, semi-major axis, and eccentricity [2]. The eccentric anomaly was calculated from the mean anomaly by iterative approximation of the Kepler’s equation [1]. Based on the obtained eccentric anomaly, then orbital vector constants were obtained, and the coordinates of the celestial body from the center of the sun were obtained. This is then converted to a right ascension and longitude coordinate system from the earth center. Here, we need to make extensive use of trigonometric functions, so we can confirm that the trigonometric functions of our home-made floating-point interpreter are implemented correctly. The language specification of this interpreter and the algorithm for generating the elementary functions are described in another project Homemade Floating Point Interpreter for 6502.

    The program created is CALC_PLANET_POSITION_02_5_3.TXT. The parameters such as orbital elements of celestial bodies are set up to 440 lines, and the approximate computation of Kepler's equation is from 465 to 504 lines. The calculation of orbital vectors is from 593 to 720 lines. In the program description, ‘)S’ is the sine function and ‘)C’ is the cosine function. The calculation of the coordinates of the center of the sun is in lines 790 to 850, and the calculation of the coordinates of the center of the earth in lines 890 to 1030. The target object to be calculated is Saturn, and the position on December 27, 2022 is calculated. The result of running this program is shown in Fig. 1; the Julian day corresponding to December 27, 2022 is 2459941. According to published data [2], the geocentric distance = 10.48 au (astronomical unit), right ascension = 21 h 38.9 m, and declination = -15 deg 23 arcmin, the error in the calculation results in Fig. 1 is less than 1 arcmin.

Fig. 1 Example of calculation of planetary positions by Kepler's equation approximation (Saturn, December 27, 2022)

    I also modified the orbital elements of this program and performed calculations for Mars, Jupiter, Uranus, Neptune, and the asteroid 2023BU. The calculation errors against the published position coordinates [2] were 12 arcimin for Mars, 1 arcmin for Jupiter, 2 arcmin for Uranus and 14 arcmin for Neptune so I thought that the calculations were sufficiently correct. The execution of this program is shown in Video 1 below.

Video 1  Execution of the application software for calculating the position of the planet.  (There is no audio commentary, so please turn on the subtitles.)

    Asteroid 2023BU, which made an approach into proximity to the Earth on January 27, 2023, was calculated with CALC_PLANET_POSITION_2023BU_6.TXT with the orbital elements published NASA JPL Small-Body Database Lookup. In this calculation, using the orbital elements after the closest approach, so the date of closest approach result was off by one day. The distance to the center of the earth also became a value of about 34,000 km. This is probably because the influence of the gravity of the earth is not included in the calculation.

2.  Peripherals

2-1. External PROM Module EXTROM-2

The homemade floating-point interpreter CI-2, which is the system program for PERSEUS-9, does not currently have a program filing function. The only way to switch between multiple application software programs without reprogramming is to load the text data of the application software programs stored on a PC connected to the serial interface. Although this method is practical enough since text data can be edited using a text editor on the PC, I felt that it was insufficient in terms of the uniqueness of PERSEUS-9. Therefore, an external PROM module EXTROM-2 was created to store and load multiple application software. Video 2 below shows its internal structure and application program selection and loading.

Video 2   External PROM module EXTROM-2.  (There is no audio commentary, so please turn on the subtitles.)

    To make this PROM module as simple as possible, multiple PROMs are simply connected to the PERSEUS-9's 8-bit parallel interface, and no CPU or firmware is included in the module. Ten types of application software written to the PROMs in advance can be switched by a rotary switch for loading. The interpreter CI-2 has been updated to version 2_0_0 by adding a single character command ‘ ' ‘ to perform this loading.

    The applications currently available for loading in PROMs are: Planetary position calculation, Asteroid 2023BU position calculation, All built-in function evaluation, Natural logarithm function evaluation, Poisson distribution function, Discrete Fourier Transform, Fast Fourier Transform, PROM programming, and Memory dump. The individual PROM devices shown in Video 2 are written with text data for that application software. The loading time for these takes about 0.1s. The details of this PROM module are described in another project PROM module for my PERSEUS computer's application.

 2-2. PROM programmer

To program the PROMs to be implemented in the above external PROM module, I built a PROM programmer as shown in Fig. 2 , which can connect to the parallel interface of the PERSEUS-9.

Fig. 2  PROM programmer PROM WRITER-3 connected PERSEUS-9

    The 8 bit data and 11 bit address of the PROM [3] are set using three 74HC374 as a shift register. The data and address transmission to the shift register are performed using 2 bits of the parallel interface. The programming voltage is 24 V generated by a DC-DC converter. The write pulses for the PROM using 1 bit of the parallel interface are controlled by the interpreter application software PROM_WRITER_05_7.TXT. This PROM programmer has also made it easier to update the interpreter system software CI-2 to add functions and fix bugs, which was previously done painstakingly with a manual PROM programmer. CI-2 updates that support external PROM modules also used this PROM programmer.

    Since machine language debugging is not possible on the PERSEUS-9, machine language debugging of the interpreter system is performed using the DMA toggle switches and LEDs on the PERSEUS-8. Then, new PROMs are created with the PROM programmer connected to the PERSEUS-8 and implemented on the PERSEUS-9. This process is shown in the following Video 3. This movie ends with the scene where the created PROM is implemented in PERSEUS-8, but the PROM will be implemented in PEREUS-9 after the operation verification.

Video 3  Updating CI-2 the floating point interpreter system with the PROM programmer.  (There is no audio commentary, so please turn on the subtitles.)

3.  Overall results

The external PROM module EXTROM-2 enabled the PERSEUS-9 system to save and run multiple applications independently. This made it possible to reliably reproduce and evaluate the application software created without depending on other computer systems. I believe that this has facilitated long-term operation evaluation.

    As for applications, the challenge of calculating the positions of celestial objects with a home-made floating-point interpreter that makes heavy use of built-in trigonometric functions made us realize that scientific and technological calculations of the 1970s could be performed as they were in those days. At that time, there was no 3D graphic display and only numerical values were output, but it was exciting to see the output results of my own programming.

    As summarized above, I believe that we were able to gain a better sense of how semiconductor technology such as PROMs in the latter half of the 1970s and the application processing capabilities of computers at that time were connected to the present through one year of new development.

References;

[1] Hiroshi Saida, Tenmon-no-Keisan-Kyoushitsu, (Astronomical Calculation Class), Chizin-Shokan, 1976.

[2] Astronomical Yearbook 2022, Seibundo-Shinkosha Co.,Ltd., 2021.

[3] Datasheet M2716 16K (2K x 8) UV ERASABLE PROM, intel, 1989.

(Posting date Aug. 02, 2023)

(Rev. Aug. 04, 2023)