xrpn 1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/xrpn +110 -0
- data/cmd/abs +7 -0
- data/cmd/acos +10 -0
- data/cmd/adate +12 -0
- data/cmd/adateiso +13 -0
- data/cmd/add +9 -0
- data/cmd/adv +7 -0
- data/cmd/agsub +8 -0
- data/cmd/aleng +8 -0
- data/cmd/almcat +7 -0
- data/cmd/almnow +7 -0
- data/cmd/anum +10 -0
- data/cmd/aoff +7 -0
- data/cmd/aon +7 -0
- data/cmd/appchr +13 -0
- data/cmd/apprec +13 -0
- data/cmd/arcl +22 -0
- data/cmd/arcli +7 -0
- data/cmd/arclrec +30 -0
- data/cmd/arot +13 -0
- data/cmd/ashf +7 -0
- data/cmd/asin +10 -0
- data/cmd/asroom +7 -0
- data/cmd/asto +21 -0
- data/cmd/asub +8 -0
- data/cmd/atan +10 -0
- data/cmd/atime +26 -0
- data/cmd/atime24 +21 -0
- data/cmd/atox +9 -0
- data/cmd/aview +7 -0
- data/cmd/aviewc +7 -0
- data/cmd/beep +7 -0
- data/cmd/bindec +8 -0
- data/cmd/cat +26 -0
- data/cmd/cf +7 -0
- data/cmd/chs +7 -0
- data/cmd/cla +7 -0
- data/cmd/clalma +7 -0
- data/cmd/clalmx +7 -0
- data/cmd/cld +6 -0
- data/cmd/clear +7 -0
- data/cmd/clfl +13 -0
- data/cmd/clk12 +7 -0
- data/cmd/clk24 +7 -0
- data/cmd/clkeys +7 -0
- data/cmd/clock +7 -0
- data/cmd/clp +8 -0
- data/cmd/clralms +7 -0
- data/cmd/clrg +7 -0
- data/cmd/clrgx +12 -0
- data/cmd/cls +12 -0
- data/cmd/clst +10 -0
- data/cmd/clx +8 -0
- data/cmd/cmdadd +7 -0
- data/cmd/cmddel +7 -0
- data/cmd/correct +7 -0
- data/cmd/cos +10 -0
- data/cmd/crflas +9 -0
- data/cmd/crfld +9 -0
- data/cmd/cube +8 -0
- data/cmd/d_r +8 -0
- data/cmd/date +8 -0
- data/cmd/dateplus +12 -0
- data/cmd/ddate +11 -0
- data/cmd/dec +7 -0
- data/cmd/decbin +8 -0
- data/cmd/dechex +8 -0
- data/cmd/decoct +8 -0
- data/cmd/deg +7 -0
- data/cmd/degq +7 -0
- data/cmd/delchr +14 -0
- data/cmd/delrec +12 -0
- data/cmd/divide +9 -0
- data/cmd/dmy +7 -0
- data/cmd/dot +7 -0
- data/cmd/dow +9 -0
- data/cmd/drop +7 -0
- data/cmd/dropy +7 -0
- data/cmd/dse +40 -0
- data/cmd/ed +7 -0
- data/cmd/emdir +7 -0
- data/cmd/emdirx +14 -0
- data/cmd/emroom +7 -0
- data/cmd/end +9 -0
- data/cmd/eng +9 -0
- data/cmd/enter +8 -0
- data/cmd/exp +9 -0
- data/cmd/expx1 +9 -0
- data/cmd/fact +9 -0
- data/cmd/fc +7 -0
- data/cmd/fcc +8 -0
- data/cmd/fcs +8 -0
- data/cmd/fix +9 -0
- data/cmd/fixq +7 -0
- data/cmd/flsize +7 -0
- data/cmd/frc +8 -0
- data/cmd/fs +7 -0
- data/cmd/fsc +8 -0
- data/cmd/fss +8 -0
- data/cmd/geir +11 -0
- data/cmd/getas +7 -0
- data/cmd/getfile +12 -0
- data/cmd/getfilea +11 -0
- data/cmd/getkey +9 -0
- data/cmd/getkeyx +10 -0
- data/cmd/getp +13 -0
- data/cmd/getr +13 -0
- data/cmd/getrec +8 -0
- data/cmd/getrx +17 -0
- data/cmd/getsub +7 -0
- data/cmd/getweb +12 -0
- data/cmd/getx +12 -0
- data/cmd/grad +7 -0
- data/cmd/gsb +7 -0
- data/cmd/gto +23 -0
- data/cmd/help +14 -0
- data/cmd/hexdec +8 -0
- data/cmd/hms +12 -0
- data/cmd/hmsminus +14 -0
- data/cmd/hmsplus +13 -0
- data/cmd/hr +11 -0
- data/cmd/inschr +14 -0
- data/cmd/insrec +12 -0
- data/cmd/int +8 -0
- data/cmd/invf +7 -0
- data/cmd/isg +40 -0
- data/cmd/lastx +8 -0
- data/cmd/lbl +6 -0
- data/cmd/lift +8 -0
- data/cmd/ln +8 -0
- data/cmd/ln1x +8 -0
- data/cmd/log +8 -0
- data/cmd/mdy +7 -0
- data/cmd/mean +11 -0
- data/cmd/mod +13 -0
- data/cmd/multiply +9 -0
- data/cmd/oct +7 -0
- data/cmd/octdec +8 -0
- data/cmd/off +8 -0
- data/cmd/on +7 -0
- data/cmd/p_r +13 -0
- data/cmd/pack +7 -0
- data/cmd/page +13 -0
- data/cmd/pagedel +8 -0
- data/cmd/pageq +7 -0
- data/cmd/pageswap +8 -0
- data/cmd/pasn +7 -0
- data/cmd/pcat +14 -0
- data/cmd/pclps +12 -0
- data/cmd/percent +9 -0
- data/cmd/percentch +9 -0
- data/cmd/pi +8 -0
- data/cmd/posa +23 -0
- data/cmd/posfl +26 -0
- data/cmd/pow +9 -0
- data/cmd/pprg +27 -0
- data/cmd/pprgx +33 -0
- data/cmd/pra +7 -0
- data/cmd/prflags +8 -0
- data/cmd/prompt +8 -0
- data/cmd/prp +7 -0
- data/cmd/prregs +8 -0
- data/cmd/prstk +10 -0
- data/cmd/prx +7 -0
- data/cmd/prxm +21 -0
- data/cmd/pse +7 -0
- data/cmd/psize +7 -0
- data/cmd/purfl +14 -0
- data/cmd/r_d +8 -0
- data/cmd/r_p +18 -0
- data/cmd/rad +7 -0
- data/cmd/rand +10 -0
- data/cmd/rcl +23 -0
- data/cmd/rclaf +7 -0
- data/cmd/rclflag +16 -0
- data/cmd/rclpt +8 -0
- data/cmd/rclpta +16 -0
- data/cmd/rclsw +7 -0
- data/cmd/rdn +7 -0
- data/cmd/recip +8 -0
- data/cmd/regmove +18 -0
- data/cmd/regswap +19 -0
- data/cmd/reload +7 -0
- data/cmd/reszfl +7 -0
- data/cmd/rnd +8 -0
- data/cmd/root +9 -0
- data/cmd/rtn +12 -0
- data/cmd/rubycmd +7 -0
- data/cmd/runsw +7 -0
- data/cmd/rup +7 -0
- data/cmd/saveas +7 -0
- data/cmd/savep +7 -0
- data/cmd/saver +24 -0
- data/cmd/saverx +31 -0
- data/cmd/savex +10 -0
- data/cmd/savexm +7 -0
- data/cmd/sci +9 -0
- data/cmd/sdev +11 -0
- data/cmd/seekpt +10 -0
- data/cmd/seekpta +7 -0
- data/cmd/sep +7 -0
- data/cmd/setaf +7 -0
- data/cmd/setsw +7 -0
- data/cmd/sf +7 -0
- data/cmd/shellcmd +7 -0
- data/cmd/sign +19 -0
- data/cmd/sin +10 -0
- data/cmd/size +7 -0
- data/cmd/sizeq +7 -0
- data/cmd/sminus +20 -0
- data/cmd/splus +20 -0
- data/cmd/sqr +8 -0
- data/cmd/sqrt +8 -0
- data/cmd/sreg +7 -0
- data/cmd/sregq +7 -0
- data/cmd/stdivide +22 -0
- data/cmd/stmultiply +22 -0
- data/cmd/sto +21 -0
- data/cmd/stoflag +13 -0
- data/cmd/stop +7 -0
- data/cmd/stopsw +7 -0
- data/cmd/stplus +22 -0
- data/cmd/stsubtract +22 -0
- data/cmd/subtract +9 -0
- data/cmd/sw +7 -0
- data/cmd/swap +7 -0
- data/cmd/swpt +7 -0
- data/cmd/tan +10 -0
- data/cmd/tenx +8 -0
- data/cmd/time +8 -0
- data/cmd/tx +7 -0
- data/cmd/version +7 -0
- data/cmd/view +7 -0
- data/cmd/writefile +12 -0
- data/cmd/xeq +21 -0
- data/cmd/xeq0 +7 -0
- data/cmd/xeqnn +9 -0
- data/cmd/xeqy +7 -0
- data/cmd/xf +20 -0
- data/cmd/xgt0 +7 -0
- data/cmd/xgteq0 +7 -0
- data/cmd/xgteqnn +9 -0
- data/cmd/xgteqy +7 -0
- data/cmd/xgtnn +9 -0
- data/cmd/xgty +7 -0
- data/cmd/xlt0 +7 -0
- data/cmd/xlteq0 +7 -0
- data/cmd/xlteqnn +9 -0
- data/cmd/xlteqy +7 -0
- data/cmd/xltnn +9 -0
- data/cmd/xlty +7 -0
- data/cmd/xmexistq +15 -0
- data/cmd/xmfileq +7 -0
- data/cmd/xneq0 +7 -0
- data/cmd/xneqnn +9 -0
- data/cmd/xneqy +7 -0
- data/cmd/xnn +21 -0
- data/cmd/xtoa +7 -0
- data/cmd/xy +7 -0
- data/cmd/xyzalm +7 -0
- data/lib/_xrpn_version +5 -0
- data/lib/bei +18 -0
- data/lib/check +26 -0
- data/lib/conditional +10 -0
- data/lib/convert_base +8 -0
- data/lib/debug_mode +124 -0
- data/lib/dtparse +10 -0
- data/lib/error +10 -0
- data/lib/fact +7 -0
- data/lib/getpt +7 -0
- data/lib/help +12 -0
- data/lib/hp_41 +83 -0
- data/lib/ind +21 -0
- data/lib/load_xm +28 -0
- data/lib/locate_prg +32 -0
- data/lib/numeric +62 -0
- data/lib/numformat +12 -0
- data/lib/optparse +23 -0
- data/lib/read_cmd +12 -0
- data/lib/read_state +6 -0
- data/lib/save_state +18 -0
- data/lib/save_xm +5 -0
- data/lib/setpt +5 -0
- data/lib/string +28 -0
- data/lib/theme_dark +10 -0
- data/lib/theme_light +10 -0
- data/lib/xrpn_class +34 -0
- metadata +348 -0
data/cmd/pra
ADDED
data/cmd/prflags
ADDED
data/cmd/prompt
ADDED
data/cmd/prp
ADDED
data/cmd/prregs
ADDED
data/cmd/prstk
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class XRPN
|
|
2
|
+
def prstk
|
|
3
|
+
puts "T = ".c_t + numformat(@t).c_t(1) + " α = ".c_a + @a.to_s.c_a(1)
|
|
4
|
+
puts "Z = ".c_z + numformat(@z).c_z(1)
|
|
5
|
+
puts "Y = ".c_y + numformat(@y).c_y(1)
|
|
6
|
+
puts "X = ".c_x + numformat(@x).c_x(1) + " L = ".c_l + numformat(@l).c_l(1)
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# vim:ft=ruby:
|
data/cmd/prx
ADDED
data/cmd/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/cmd/pse
ADDED
data/cmd/psize
ADDED
data/cmd/purfl
ADDED
data/cmd/r_d
ADDED
data/cmd/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/cmd/rad
ADDED
data/cmd/rand
ADDED
data/cmd/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/cmd/rclaf
ADDED
data/cmd/rclflag
ADDED
data/cmd/rclpt
ADDED
data/cmd/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/cmd/rclsw
ADDED
data/cmd/rdn
ADDED
data/cmd/recip
ADDED
data/cmd/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/cmd/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/cmd/reload
ADDED
data/cmd/reszfl
ADDED
data/cmd/rnd
ADDED
data/cmd/root
ADDED
data/cmd/rtn
ADDED
data/cmd/rubycmd
ADDED
data/cmd/runsw
ADDED
data/cmd/rup
ADDED
data/cmd/saveas
ADDED
data/cmd/savep
ADDED
data/cmd/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/cmd/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/cmd/savex
ADDED
data/cmd/savexm
ADDED
data/cmd/sci
ADDED
data/cmd/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/cmd/seekpt
ADDED
data/cmd/seekpta
ADDED
data/cmd/sep
ADDED
data/cmd/setaf
ADDED
data/cmd/setsw
ADDED
data/cmd/sf
ADDED
data/cmd/shellcmd
ADDED
data/cmd/sign
ADDED
data/cmd/sin
ADDED
data/cmd/size
ADDED
data/cmd/sizeq
ADDED
data/cmd/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/cmd/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:
|