xrpn 1.1.5 → 1.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/xrpn +1 -3
- data/lib/xrpn.rb +1 -1
- data/xcmd/abs +7 -0
- data/xcmd/acos +10 -0
- data/xcmd/adate +12 -0
- data/xcmd/adateiso +13 -0
- data/xcmd/add +9 -0
- data/xcmd/adv +7 -0
- data/xcmd/agsub +8 -0
- data/xcmd/aleng +8 -0
- data/xcmd/almcat +7 -0
- data/xcmd/almnow +7 -0
- data/xcmd/anum +10 -0
- data/xcmd/aoff +7 -0
- data/xcmd/aon +7 -0
- data/xcmd/appchr +13 -0
- data/xcmd/apprec +13 -0
- data/xcmd/arcl +22 -0
- data/xcmd/arcli +7 -0
- data/xcmd/arclrec +30 -0
- data/xcmd/arot +13 -0
- data/xcmd/ashf +7 -0
- data/xcmd/asin +10 -0
- data/xcmd/asroom +7 -0
- data/xcmd/asto +21 -0
- data/xcmd/asub +8 -0
- data/xcmd/atan +10 -0
- data/xcmd/atime +26 -0
- data/xcmd/atime24 +21 -0
- data/xcmd/atox +9 -0
- data/xcmd/aview +7 -0
- data/xcmd/aviewc +7 -0
- data/xcmd/beep +7 -0
- data/xcmd/bindec +8 -0
- data/xcmd/cat +26 -0
- data/xcmd/cf +7 -0
- data/xcmd/chs +7 -0
- data/xcmd/cla +7 -0
- data/xcmd/clalma +7 -0
- data/xcmd/clalmx +7 -0
- data/xcmd/cld +6 -0
- data/xcmd/clear +7 -0
- data/xcmd/clfl +13 -0
- data/xcmd/clk12 +7 -0
- data/xcmd/clk24 +7 -0
- data/xcmd/clkeys +7 -0
- data/xcmd/clock +7 -0
- data/xcmd/clp +8 -0
- data/xcmd/clralms +7 -0
- data/xcmd/clrg +7 -0
- data/xcmd/clrgx +12 -0
- data/xcmd/cls +12 -0
- data/xcmd/clst +10 -0
- data/xcmd/clx +8 -0
- data/xcmd/cmdadd +7 -0
- data/xcmd/cmddel +7 -0
- data/xcmd/correct +7 -0
- data/xcmd/cos +10 -0
- data/xcmd/crflas +9 -0
- data/xcmd/crfld +9 -0
- data/xcmd/cube +8 -0
- data/xcmd/d_r +8 -0
- data/xcmd/date +8 -0
- data/xcmd/dateplus +12 -0
- data/xcmd/ddate +11 -0
- data/xcmd/dec +7 -0
- data/xcmd/decbin +8 -0
- data/xcmd/dechex +8 -0
- data/xcmd/decoct +8 -0
- data/xcmd/deg +7 -0
- data/xcmd/degq +7 -0
- data/xcmd/delchr +14 -0
- data/xcmd/delrec +12 -0
- data/xcmd/divide +9 -0
- data/xcmd/dmy +7 -0
- data/xcmd/dot +7 -0
- data/xcmd/dow +9 -0
- data/xcmd/drop +7 -0
- data/xcmd/dropy +7 -0
- data/xcmd/dse +40 -0
- data/xcmd/ed +7 -0
- data/xcmd/emdir +7 -0
- data/xcmd/emdirx +14 -0
- data/xcmd/emroom +7 -0
- data/xcmd/end +9 -0
- data/xcmd/eng +9 -0
- data/xcmd/enter +8 -0
- data/xcmd/exp +9 -0
- data/xcmd/expx1 +9 -0
- data/xcmd/fact +9 -0
- data/xcmd/fc +7 -0
- data/xcmd/fcc +8 -0
- data/xcmd/fcs +8 -0
- data/xcmd/fix +9 -0
- data/xcmd/fixq +7 -0
- data/xcmd/flsize +7 -0
- data/xcmd/frc +8 -0
- data/xcmd/fs +7 -0
- data/xcmd/fsc +8 -0
- data/xcmd/fss +8 -0
- data/xcmd/geir +11 -0
- data/xcmd/getas +7 -0
- data/xcmd/getfile +12 -0
- data/xcmd/getfilea +11 -0
- data/xcmd/getkey +9 -0
- data/xcmd/getkeyx +10 -0
- data/xcmd/getp +13 -0
- data/xcmd/getr +13 -0
- data/xcmd/getrec +8 -0
- data/xcmd/getrx +17 -0
- data/xcmd/getsub +7 -0
- data/xcmd/getweb +12 -0
- data/xcmd/getx +12 -0
- data/xcmd/grad +7 -0
- data/xcmd/gsb +7 -0
- data/xcmd/gto +23 -0
- data/xcmd/help +14 -0
- data/xcmd/hexdec +8 -0
- data/xcmd/hms +12 -0
- data/xcmd/hmsminus +14 -0
- data/xcmd/hmsplus +13 -0
- data/xcmd/hr +11 -0
- data/xcmd/inschr +14 -0
- data/xcmd/insrec +12 -0
- data/xcmd/int +8 -0
- data/xcmd/invf +7 -0
- data/xcmd/isg +40 -0
- data/xcmd/lastx +8 -0
- data/xcmd/lbl +6 -0
- data/xcmd/lift +8 -0
- data/xcmd/ln +8 -0
- data/xcmd/ln1x +8 -0
- data/xcmd/log +8 -0
- data/xcmd/mdy +7 -0
- data/xcmd/mean +11 -0
- data/xcmd/mod +13 -0
- data/xcmd/multiply +9 -0
- data/xcmd/oct +7 -0
- data/xcmd/octdec +8 -0
- data/xcmd/off +8 -0
- data/xcmd/on +7 -0
- data/xcmd/p_r +13 -0
- data/xcmd/pack +7 -0
- data/xcmd/page +13 -0
- data/xcmd/pagedel +8 -0
- data/xcmd/pageq +7 -0
- data/xcmd/pageswap +8 -0
- data/xcmd/pasn +7 -0
- data/xcmd/pcat +14 -0
- data/xcmd/pclps +12 -0
- data/xcmd/percent +9 -0
- data/xcmd/percentch +9 -0
- data/xcmd/pi +8 -0
- data/xcmd/posa +23 -0
- data/xcmd/posfl +26 -0
- data/xcmd/pow +9 -0
- data/xcmd/pprg +27 -0
- data/xcmd/pprgx +33 -0
- data/xcmd/pra +7 -0
- data/xcmd/prflags +8 -0
- data/xcmd/prompt +8 -0
- data/xcmd/prp +7 -0
- data/xcmd/prregs +8 -0
- data/xcmd/prstk +10 -0
- data/xcmd/prx +7 -0
- data/xcmd/prxm +21 -0
- data/xcmd/pse +7 -0
- data/xcmd/psize +7 -0
- data/xcmd/purfl +14 -0
- data/xcmd/r_d +8 -0
- data/xcmd/r_p +18 -0
- data/xcmd/rad +7 -0
- data/xcmd/rand +10 -0
- data/xcmd/rcl +23 -0
- data/xcmd/rclaf +7 -0
- data/xcmd/rclflag +16 -0
- data/xcmd/rclpt +8 -0
- data/xcmd/rclpta +16 -0
- data/xcmd/rclsw +7 -0
- data/xcmd/rdn +7 -0
- data/xcmd/recip +8 -0
- data/xcmd/regmove +18 -0
- data/xcmd/regswap +19 -0
- data/xcmd/reload +7 -0
- data/xcmd/reszfl +7 -0
- data/xcmd/rnd +8 -0
- data/xcmd/root +9 -0
- data/xcmd/rtn +12 -0
- data/xcmd/rubycmd +7 -0
- data/xcmd/runsw +7 -0
- data/xcmd/rup +7 -0
- data/xcmd/saveas +7 -0
- data/xcmd/savep +7 -0
- data/xcmd/saver +24 -0
- data/xcmd/saverx +31 -0
- data/xcmd/savex +10 -0
- data/xcmd/savexm +7 -0
- data/xcmd/sci +9 -0
- data/xcmd/sdev +11 -0
- data/xcmd/seekpt +10 -0
- data/xcmd/seekpta +7 -0
- data/xcmd/sep +7 -0
- data/xcmd/setaf +7 -0
- data/xcmd/setsw +7 -0
- data/xcmd/sf +7 -0
- data/xcmd/shellcmd +7 -0
- data/xcmd/sign +19 -0
- data/xcmd/sin +10 -0
- data/xcmd/size +7 -0
- data/xcmd/sizeq +7 -0
- data/xcmd/sminus +20 -0
- data/xcmd/splus +20 -0
- data/xcmd/sqr +8 -0
- data/xcmd/sqrt +8 -0
- data/xcmd/sreg +7 -0
- data/xcmd/sregq +7 -0
- data/xcmd/stdivide +22 -0
- data/xcmd/stmultiply +22 -0
- data/xcmd/sto +21 -0
- data/xcmd/stoflag +13 -0
- data/xcmd/stop +7 -0
- data/xcmd/stopsw +7 -0
- data/xcmd/stplus +22 -0
- data/xcmd/stsubtract +22 -0
- data/xcmd/subtract +9 -0
- data/xcmd/sw +7 -0
- data/xcmd/swap +7 -0
- data/xcmd/swpt +7 -0
- data/xcmd/tan +10 -0
- data/xcmd/tenx +8 -0
- data/xcmd/time +8 -0
- data/xcmd/tx +7 -0
- data/xcmd/version +7 -0
- data/xcmd/view +7 -0
- data/xcmd/writefile +12 -0
- data/xcmd/xeq +21 -0
- data/xcmd/xeq0 +7 -0
- data/xcmd/xeqnn +9 -0
- data/xcmd/xeqy +7 -0
- data/xcmd/xf +20 -0
- data/xcmd/xgt0 +7 -0
- data/xcmd/xgteq0 +7 -0
- data/xcmd/xgteqnn +9 -0
- data/xcmd/xgteqy +7 -0
- data/xcmd/xgtnn +9 -0
- data/xcmd/xgty +7 -0
- data/xcmd/xlt0 +7 -0
- data/xcmd/xlteq0 +7 -0
- data/xcmd/xlteqnn +9 -0
- data/xcmd/xlteqy +7 -0
- data/xcmd/xltnn +9 -0
- data/xcmd/xlty +7 -0
- data/xcmd/xmexistq +15 -0
- data/xcmd/xmfileq +7 -0
- data/xcmd/xneq0 +7 -0
- data/xcmd/xneqnn +9 -0
- data/xcmd/xneqy +7 -0
- data/xcmd/xnn +21 -0
- data/xcmd/xtoa +7 -0
- data/xcmd/xy +7 -0
- data/xcmd/xyzalm +7 -0
- data/xlib/_xrpn_version +5 -0
- data/xlib/bei +18 -0
- data/xlib/check +26 -0
- data/xlib/conditional +10 -0
- data/xlib/convert_base +8 -0
- data/xlib/debug_mode +124 -0
- data/xlib/dtparse +10 -0
- data/xlib/error +10 -0
- data/xlib/fact +7 -0
- data/xlib/getpt +7 -0
- data/xlib/help +12 -0
- data/xlib/hp_41 +83 -0
- data/xlib/ind +21 -0
- data/xlib/load_xm +28 -0
- data/xlib/locate_prg +32 -0
- data/xlib/numeric +62 -0
- data/xlib/numformat +12 -0
- data/xlib/optparse +23 -0
- data/xlib/read_cmd +12 -0
- data/xlib/read_state +6 -0
- data/xlib/save_state +18 -0
- data/xlib/save_xm +5 -0
- data/xlib/setpt +5 -0
- data/xlib/string +28 -0
- data/xlib/theme +23 -0
- data/xlib/xrpn_class +34 -0
- data/xrpn.gemspec +2 -2
- metadata +287 -2
data/xcmd/prxm
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
class XRPN
|
2
|
+
def prxm
|
3
|
+
# Print content of current XM file
|
4
|
+
out = ""
|
5
|
+
@xmcont.each_index do |i|
|
6
|
+
if i == 0
|
7
|
+
out += "File = #{@xmcont[0][0]}\n"
|
8
|
+
out += "Type = #{@xmcont[0][1]}\n"
|
9
|
+
out += "Pointer = #{@xmcont[0][3].to_s}\n"
|
10
|
+
next
|
11
|
+
end
|
12
|
+
out += "#{format('%03d', i - 1)}"
|
13
|
+
out += " "
|
14
|
+
out += "#{@xmcont[i].to_s}\n"
|
15
|
+
end
|
16
|
+
puts out
|
17
|
+
File.write(Dir.home + "/.xrpn/print/" + @a, out) if @a != ""
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# vim:ft=ruby:
|
data/xcmd/pse
ADDED
data/xcmd/psize
ADDED
data/xcmd/purfl
ADDED
data/xcmd/r_d
ADDED
data/xcmd/r_p
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
class XRPN
|
2
|
+
def r_p
|
3
|
+
@l = @x
|
4
|
+
x = @x
|
5
|
+
y = @y
|
6
|
+
@x = Math::sqrt(x*x + y*y)
|
7
|
+
@y = Math::atan(y/x)
|
8
|
+
if x < 0 # Q2 & Q3
|
9
|
+
@y += Math::PI
|
10
|
+
elsif x >= 0 and y < 0 # Q4
|
11
|
+
@y += 2 * Math::PI
|
12
|
+
end
|
13
|
+
@y = @y * 180 / Math::PI if @deg == "deg"
|
14
|
+
@y = @y * 200 / Math::PI if @deg == "grad"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# vim:ft=ruby:
|
data/xcmd/rad
ADDED
data/xcmd/rand
ADDED
data/xcmd/rcl
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
class XRPN
|
2
|
+
def rcl (r)
|
3
|
+
x = false
|
4
|
+
case r.downcase
|
5
|
+
when "x"
|
6
|
+
x = @x
|
7
|
+
when "y"
|
8
|
+
x = @y
|
9
|
+
when "z"
|
10
|
+
x = @z
|
11
|
+
when "t"
|
12
|
+
x = @t
|
13
|
+
end
|
14
|
+
lift
|
15
|
+
x ? @x = x : @x = @reg[r]
|
16
|
+
if @x == nil
|
17
|
+
@reg[r] = 0.0
|
18
|
+
@x = 0.0
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# vim:ft=ruby:
|
data/xcmd/rclaf
ADDED
data/xcmd/rclflag
ADDED
data/xcmd/rclpt
ADDED
data/xcmd/rclpta
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
class XRPN
|
2
|
+
def rclpta
|
3
|
+
f = Dir.home + "/.xrpn/data/" + @a
|
4
|
+
if File.exist?(f + ".as")
|
5
|
+
@xmcont = JSON.parse(File.read(f + ".as"))
|
6
|
+
@x = @xmcont[0][3]
|
7
|
+
elsif File.exist?(f + ".da")
|
8
|
+
@xmcont = JSON.parse(File.read(f + ".da"))
|
9
|
+
@x = @xmcont[0][3]
|
10
|
+
else
|
11
|
+
return "No such file: #{@a}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# vim:ft=ruby:
|
data/xcmd/rclsw
ADDED
data/xcmd/rdn
ADDED
data/xcmd/recip
ADDED
data/xcmd/regmove
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
class XRPN
|
2
|
+
def regmove
|
3
|
+
c = @x
|
4
|
+
b = c.to_i
|
5
|
+
e = (1000 * (c - b)).to_i
|
6
|
+
n = ((1000 * c).modulo(1).round(3) * 1000).to_i
|
7
|
+
n.times do |i|
|
8
|
+
f = (b + i).to_s
|
9
|
+
f = "%02d" % [f] if f == f.to_i.to_s
|
10
|
+
t = (e + i).to_s
|
11
|
+
t = "%02d" % [t] if t == t.to_i.to_s
|
12
|
+
@reg[f] = 0 if @reg[f] == nil
|
13
|
+
@reg[t] = @reg[f]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# vim:ft=ruby:
|
data/xcmd/regswap
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
class XRPN
|
2
|
+
def regswap
|
3
|
+
c = @x
|
4
|
+
b = c.to_i
|
5
|
+
e = (1000 * (c - b)).to_i
|
6
|
+
n = ((1000 * c).modulo(1).round(3) * 1000).to_i
|
7
|
+
n.times do |i|
|
8
|
+
f = (b + i).to_s
|
9
|
+
f = "%02d" % [f] if f == f.to_i.to_s
|
10
|
+
t = (e + i).to_s
|
11
|
+
t = "%02d" % [t] if t == t.to_i.to_s
|
12
|
+
@reg[f] = 0 if @reg[f] == nil
|
13
|
+
@reg[t] = 0 if @reg[t] == nil
|
14
|
+
@reg[t], @reg[f] = @reg[f], @reg[t]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# vim:ft=ruby:
|
data/xcmd/reload
ADDED
data/xcmd/reszfl
ADDED
data/xcmd/rnd
ADDED
data/xcmd/root
ADDED
data/xcmd/rtn
ADDED
data/xcmd/rubycmd
ADDED
data/xcmd/runsw
ADDED
data/xcmd/rup
ADDED
data/xcmd/saveas
ADDED
data/xcmd/savep
ADDED
data/xcmd/saver
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
class XRPN
|
2
|
+
def saver
|
3
|
+
if @a != ""
|
4
|
+
if File.exist?(Dir.home + "/.xrpn/data/" + @a + ".da")
|
5
|
+
load_xm(@a)
|
6
|
+
else
|
7
|
+
crfld
|
8
|
+
end
|
9
|
+
end
|
10
|
+
if @xmcont[0][1] != "DA"
|
11
|
+
return "Not a data file"
|
12
|
+
end
|
13
|
+
@reg.each do |key, value|
|
14
|
+
next unless key.match(/\d\d\d*/)
|
15
|
+
r = key.to_i
|
16
|
+
value = 0.0 if value == nil
|
17
|
+
@xmcont[r + 1] = value
|
18
|
+
end
|
19
|
+
@xmcont.map! { |x| x || 0.0 }
|
20
|
+
savexm
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# vim:ft=ruby:
|
data/xcmd/saverx
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
class XRPN
|
2
|
+
def saverx
|
3
|
+
b = @x.to_i
|
4
|
+
e = (@x.frc * 1000).to_i
|
5
|
+
n = e - b
|
6
|
+
if @a != ""
|
7
|
+
if File.exist?(Dir.home + "/.xrpn/data/" + @a + ".da")
|
8
|
+
load_xm(@a)
|
9
|
+
else
|
10
|
+
crfld
|
11
|
+
end
|
12
|
+
end
|
13
|
+
if @xmcont[0][1] != "DA"
|
14
|
+
return "Not a data file"
|
15
|
+
end
|
16
|
+
@reg.each do |key, value|
|
17
|
+
next unless key.match(/\d\d\d*/)
|
18
|
+
r = key.to_i
|
19
|
+
next if r < b
|
20
|
+
break if r > e
|
21
|
+
break if @xmcont[0][3] > @xmcont.length - 2
|
22
|
+
value = 0.0 if value == nil
|
23
|
+
@xmcont[@xmcont[0][3]] = value
|
24
|
+
@xmcont[0][3] += 1
|
25
|
+
end
|
26
|
+
@xmcont.map! { |x| x || 0.0 }
|
27
|
+
savexm
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# vim:ft=ruby:
|
data/xcmd/savex
ADDED
data/xcmd/savexm
ADDED
data/xcmd/sci
ADDED
data/xcmd/sdev
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
class XRPN
|
2
|
+
def sdev
|
3
|
+
@l = @x
|
4
|
+
lift
|
5
|
+
lift
|
6
|
+
@x = Math::sqrt(((@reg[@srg + 5] * @reg[@srg + 1]) - (@reg[@srg] * @reg[@srg])) / (@reg[@srg + 5] * (@reg[@srg + 5] - 1)))
|
7
|
+
@y = Math::sqrt(((@reg[@srg + 5] * @reg[@srg + 3]) - (@reg[@srg + 2] * @reg[@srg + 2])) / (@reg[@srg + 5] * (@reg[@srg + 5] - 1)))
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# vim:ft=ruby:
|
data/xcmd/seekpt
ADDED
data/xcmd/seekpta
ADDED
data/xcmd/sep
ADDED
data/xcmd/setaf
ADDED
data/xcmd/setsw
ADDED
data/xcmd/sf
ADDED
data/xcmd/shellcmd
ADDED
data/xcmd/sign
ADDED
data/xcmd/sin
ADDED
data/xcmd/size
ADDED
data/xcmd/sizeq
ADDED
data/xcmd/sminus
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class XRPN
|
2
|
+
def sminus
|
3
|
+
@l = @x
|
4
|
+
@reg[(@srg.to_i + 0).to_s] = 0 if @reg[(@srg.to_i + 0).to_s] == nil
|
5
|
+
@reg[(@srg.to_i + 1).to_s] = 0 if @reg[(@srg.to_i + 1).to_s] == nil
|
6
|
+
@reg[(@srg.to_i + 2).to_s] = 0 if @reg[(@srg.to_i + 2).to_s] == nil
|
7
|
+
@reg[(@srg.to_i + 3).to_s] = 0 if @reg[(@srg.to_i + 3).to_s] == nil
|
8
|
+
@reg[(@srg.to_i + 4).to_s] = 0 if @reg[(@srg.to_i + 4).to_s] == nil
|
9
|
+
@reg[(@srg.to_i + 5).to_s] = 0 if @reg[(@srg.to_i + 5).to_s] == nil
|
10
|
+
@reg[(@srg.to_i + 0).to_s] -= @x
|
11
|
+
@reg[(@srg.to_i + 1).to_s] -= @x * @x
|
12
|
+
@reg[(@srg.to_i + 2).to_s] -= @y
|
13
|
+
@reg[(@srg.to_i + 3).to_s] -= @y * @y
|
14
|
+
@reg[(@srg.to_i + 4).to_s] -= @x * @y
|
15
|
+
@reg[(@srg.to_i + 5).to_s] -= 1
|
16
|
+
@nolift = true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# vim:ft=ruby:
|
data/xcmd/splus
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class XRPN
|
2
|
+
def splus
|
3
|
+
@l = @x
|
4
|
+
@reg[(@srg.to_i + 0).to_s] = 0 if @reg[(@srg.to_i + 0).to_s] == nil
|
5
|
+
@reg[(@srg.to_i + 1).to_s] = 0 if @reg[(@srg.to_i + 1).to_s] == nil
|
6
|
+
@reg[(@srg.to_i + 2).to_s] = 0 if @reg[(@srg.to_i + 2).to_s] == nil
|
7
|
+
@reg[(@srg.to_i + 3).to_s] = 0 if @reg[(@srg.to_i + 3).to_s] == nil
|
8
|
+
@reg[(@srg.to_i + 4).to_s] = 0 if @reg[(@srg.to_i + 4).to_s] == nil
|
9
|
+
@reg[(@srg.to_i + 5).to_s] = 0 if @reg[(@srg.to_i + 5).to_s] == nil
|
10
|
+
@reg[(@srg.to_i + 0).to_s] += @x
|
11
|
+
@reg[(@srg.to_i + 1).to_s] += @x * @x
|
12
|
+
@reg[(@srg.to_i + 2).to_s] += @y
|
13
|
+
@reg[(@srg.to_i + 3).to_s] += @y * @y
|
14
|
+
@reg[(@srg.to_i + 4).to_s] += @x * @y
|
15
|
+
@reg[(@srg.to_i + 5).to_s] += 1
|
16
|
+
@nolift = true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# vim:ft=ruby:
|
data/xcmd/sqr
ADDED
data/xcmd/sqrt
ADDED
data/xcmd/sreg
ADDED
data/xcmd/sregq
ADDED
data/xcmd/stdivide
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
class XRPN
|
2
|
+
def stdivide (r)
|
3
|
+
case r.downcase
|
4
|
+
when "x"
|
5
|
+
@l = @x
|
6
|
+
@x /= @x
|
7
|
+
when "y"
|
8
|
+
@y /= @x
|
9
|
+
when "z"
|
10
|
+
@z /= @x
|
11
|
+
when "t"
|
12
|
+
@t /= @x
|
13
|
+
when "l"
|
14
|
+
@l /= @x
|
15
|
+
else
|
16
|
+
@reg[r] = 0 if @reg[r] == nil
|
17
|
+
@reg[r] /= @x
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# vim:ft=ruby:
|