(09-15-2024 09:18 PM)Thomas Klemm Wrote: This makes the program a bit shorter at the cost of an additional register:
Code:
01 { 44 01 } STO 1
02 { 09 } 9
03 { 44 00 } STO O
04 { 35 } CLx
05 { 36 } ENTER
06 { 45 00 } RCL 0
07 { 43 35 } x=0
08 { 43 33 20 } GTO 20
09 { 02 } 2
10 { 20 } *
11 { 01 } 1
12 { 44 30 00 } STO - 0
13 { 30 } -
14 { 45 01 } RCL 1
15 { 10 } /
16 { 34 } X<=>Y
17 { 30 } -
18 { 22 } 1/x
19 { 43 33 06 } GTO 06
20 { 33 } Rv
No problem! Stack-only is not important for the HP-12C. Size is. Thanks for the improvement!
Except for the borrowed code, the following is not size-optimized. But that’s just a test.
HP-12C:
Code:
001 { 43 35 } g x==0
002 { 43 33 25 } GTO 2
003 { 45 6 } RCL 6
004 { 20 } *
005 { 44 1 } STO 1
006 { 9 } 9
007 { 44 0 } STO 0
008 { 35 } CLx
009 { 36 } ENTER
010 { 45 0 } RCL 0
011 { 43 35 } g x==0
012 { 43 33 24 } g GTO 24
013 { 2 } 2
014 { 20 } *
015 { 1 } 1
016 { 44 30 0 } STO - 0
017 { 30 } -
018 { 45 1 } RCL 1
019 { 10 } /
020 { 34 } X<=>Y
021 { 30 } -
022 { 22 } 1/x
023 { 43 33 10 } g GTO 10
024 { 33 } Rv
025 { 36 } ENTER
026 { 36 } ENTER
027 { 36 } ENTER
028 { 20 } *
029 { 43 21 } g sqrt(x)
030 { 43 35 } g x==0
031 { 43 3 } g n!
032 { 10 } /
033 { 43 35 } g x==0
034 { 43 3 } g n!
035 { 34 } X<=>Y
036 { 36 } ENTER
037 { 20 } *
038 { 1 } 1
039 { 40 } +
040 { 43 21 } g sqrt(x)
041 { 22 } 1/x
042 { 20 } *
043 { 20 } *
044 { 43 36 } g LSTx
045 { 34 } X<=>Y
046 { 43 33 00 } g GTO 00
047 { 45 5 } RCL 5
048 { 34 } X<=>Y
049 { 43 35 } g x==0
050 { 40 } +
051 { 44 6 } STO 6
052 { 43 33 00 } g GTO 00
Initialization:
3.141592654 ENTER 180 / STO 5
0 (DEG) or 1 (RAD) g GTO 47 R/S
Usage:
x R/S ->
T: TAN(x)
Z: TAN(x)
Y: COS(x)
X: SIN(x)
First and second quadrants only. 90 degrees case not handled.
——
HP-15C listing the
JRPN 15C Simulator:
Code:
000 { }
001 { 42 21 11 } f LBL A
002 { 43 20 } g x==0
003 { 22 2 } GTO 2
004 { 45 6 } RCL 6
005 { 20 } *
006 { 44 1 } STO 1
007 { 9 } 9
008 { 44 0 } STO 0
009 { 43 35 } g CLx
010 { 36 } ENTER
011 { 42 21 0 } f LBL 0
012 { 45 0 } RCL 0
013 { 43 20 } g x==0
014 { 22 1 } GTO 1
015 { 2 } 2
016 { 20 } *
017 { 1 } 1
018 { 44 30 0 } STO - 0
019 { 30 } -
020 { 45 1 } RCL 1
021 { 10 } /
022 { 34 } X<=>Y
023 { 30 } -
024 { 15 } 1/x
025 { 22 0 } GTO 0
026 { 42 21 1 } f LBL 1
027 { 33 } Rv
028 { 42 21 2 } f LBL 2
029 { 36 } ENTER
030 { 36 } ENTER
031 { 36 } ENTER
032 { 20 } *
033 { 11 } sqrt(x)
034 { 43 20 } g x==0
035 { 42 0 } f x!
036 { 10 } /
037 { 43 20 } g x==0
038 { 42 0 } f x!
039 { 34 } X<=>Y
040 { 36 } ENTER
041 { 20 } *
042 { 1 } 1
043 { 40 } +
044 { 11 } sqrt(x)
045 { 15 } 1/x
046 { 20 } *
047 { 20 } *
048 { 43 36 } g LSTx
049 { 34 } X<=>Y
050 { 43 32 } g RTN
051 { 42 21 3 } f LBL 3
052 { 45 5 } RCL 5
053 { 34 } X<=>Y
054 { 43 20 } g x==0
055 { 40 } +
056 { 44 6 } STO 6
057 { 43 32 } g RTN