O/T: Monroe 324G Scientist Programmable Message #1 Posted by Geoff Quickfall on 8 Dec 2007, 1:54 p.m.
Wow, talk about barely portable. Just finished restoring this by completely disassembling the 4 boards from each other and cleaning all contacts.
The interior looks like a modern day computer with plugs and jumpers attaching the boards together.
Any way, just wrote two programs for it: Great Circle Bearing and Great Circle Distance. Load one on program side 1 and the other on program side 2. You can find the formulae on the web, would have printed them here but the formatting would not accept it.
This is a key and learn programming language with the ability to accept two separate 80 line programs. There are no conditional tests so I have a workaround for that.
The Bearing program may come up with the wrong heading by 180 degrees because one cannot test for a negative sin and work that into the program. What I did was to slip in a subroutine (E and F) at the end of the bearing program to calculate the sin, display, if negative, then press start again and the reciprocal of the bearing is displayed. In other words, you run the conditional test.
All this about 4 years before the HP 65.
Cheers, Geoff
MONROE SCIENTIST 324G
GREAT CIRCLE DISTANCE PROGRAM
VARIABLE FORMULA EXAMPLE KEY KEY
Latitude initial LAT.I N 049.05 HMSDEC STO 0
Longitude initial LON.I W 123.09 HMSDEC STO 1
Latitude final LAT.F S 037.57 HMSDEC STO 2
Longitude final LON.F E 151.11 HMSDEC STO 3
1. SET DISPLAY TO ZERO
2. CONVERT LATITUDES AND LONGITUDES TO DECIMAL BEFORE STORING
3. EAST LATITUDES AND SOUTH LONGITUDES ENTER AS NEGATIVE
4. RUN THIS PROGRAM FIRST, THEN COURSE PROGRAM
PROGRAM LISTING
RCL 3

RCL 1
= A
SIN/COS
2ND
STO 4
RCL 0
SIN/COS
2ND B
STO * 4
RCL 2
SIN/COS
2ND C
STO * 4
RCL 0
SIN/COS
* D
RCL 2
SIN/COS
=
+
RCL 4
=
SIN1/COS1 E
2ND
STO 5
*
60 F
=
STOP
PROGRAM SECTION EXPLANATION
A = COS(LON.I LON.F)
B = COS(LAT.I)
C = COS(LAT.F)
D = SIN(LAT.I) * SIN(LAT.F) +
A * B * C
E = ARCOS(D)
F = DISTANCE NM
USE IN PLACE OF 60
69 FOR SM
111.11 FOR KM
VARIABLE REGISTERS
LAT.I 0
LON.I 1
LAT.F 2
LON.F 3
A 4
A * B 4
A * B * C 4
DISTANCE ARC 5
MONROE SCIENTIST 326
GREAT CIRCLE BEARING PROGRAM
1. BEARING PROGRAM USES DATA GENERATED BY GREAT CIRCLE DISTANCE PROGRAM
2. DISTANCE PROGRAM MUST BE RUN FIRST TO SUPPLY GREAT CIRCLE DISTANCE ARC IN STORAGE REGISTER 5.
3. IF SIN (LON.I LON.F) IS NEGATIVE, TRUE BEARING IS: 360  C
4. TO TEST FOR NEGATIVE SIGN RUN SECTION E
5. IF SIGN IS NEGATIVE THEN RUN SECTION F FOR BEARING
PROGRAM LISTING
RCL 0
SIN/COS
2ND
* A
RCL 5
SIN/COS
=
STO 6
RCL 0
SIN/COS
*
RCL 5 B
SIN/COS
2ND
=
STO 7
RCL 2
SIN/COS C

RCL 7
/
RCL 6
=
SIN1/COS1 D
2ND
STO 8
STOP
RCL 1

RCL 3
= E
SIN
STOP
360
 F
RCL 8
=
STOP
PROGRAM SECTION EXPLANATION
A = cos(LAT.I) * sin(DIST ARC)
B = sin(LAT.I) * cos(DIST ARC)
C = sin(LAT.F)  (sin(LAT.I) * cos(DIST ARC)
D = COURSE
E = TEST FOR NEGATIVE SIGN
F = IF SIGN NEGATIVE EXECUTE F FOR
BEARING
VARIABLE REGISTERS
LAT.I 0
LON.I 1
LAT.F 2
LON.F 3
DISTANCE ARC 5
BEARING FOR SIGN TEST 8
EXAMPLE:
ON CALCULATOR LOAD:
GREAT CIRCLE DISTANCE PROGRAM IN MEMORY 1
GREAT CIRCLE BEARING PROGRAM IN MEMORY 2
ENTER LAT.I, CONVERT TO DECIMAL, STORE IN REGISTER 0
ENTER LON.I, CONVERT TO DECIMAL, STORE IN REGISTER 1
ENTER LAT.F, CONVERT TO DECIMAL, STORE IN REGISTER 2
ENTER LON.F, CONVERT TO DECIMAL, STORE IN REGISTER 3
1. SELECT PROGRAM 1 AND START
2. DISTANCE IS SHOWN IN NAUTICAL MILES
3. SELECT PROGRAM 2 AND START
4. BEARING IS SHOWN IN DEGREES
PRESS START TO SEE IF THE SINE(LON.I LON.F) IS NEGATIVE
IF NOT NEGATIVE THEN PREVIOUS BEARING IS CORRECT
IF NEGATIVE THEN PRESS START AGAIN TO SEE CORRECTED BEARING
VANCOUVER N 4905 W 12309
SYDNEY S 3757 E 151.11
DISTANCE = 6911
BEARING = 240 TRUE
Edited: 8 Dec 2007, 1:57 p.m.
