xrpn 1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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/sqr
ADDED
data/cmd/sqrt
ADDED
data/cmd/sreg
ADDED
data/cmd/sregq
ADDED
data/cmd/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:
|
data/cmd/stmultiply
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
class XRPN
|
2
|
+
def stmultiply (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:
|
data/cmd/sto
ADDED
data/cmd/stoflag
ADDED
data/cmd/stop
ADDED
data/cmd/stopsw
ADDED
data/cmd/stplus
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
class XRPN
|
2
|
+
def stplus (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:
|
data/cmd/stsubtract
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
class XRPN
|
2
|
+
def stsubtract (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:
|
data/cmd/subtract
ADDED
data/cmd/sw
ADDED
data/cmd/swap
ADDED
data/cmd/swpt
ADDED
data/cmd/tan
ADDED
data/cmd/tenx
ADDED
data/cmd/time
ADDED
data/cmd/tx
ADDED
data/cmd/version
ADDED
data/cmd/view
ADDED
data/cmd/writefile
ADDED
data/cmd/xeq
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
class XRPN
|
2
|
+
def xeq (l)
|
3
|
+
page, pos = locate_prg (l)
|
4
|
+
if pos == nil
|
5
|
+
if l.match(/".*"/)
|
6
|
+
return "Error: No such global label: #{l}"
|
7
|
+
else
|
8
|
+
return "Error: No such label: #{l}"
|
9
|
+
end
|
10
|
+
else
|
11
|
+
if @page != @pg
|
12
|
+
@pg = page
|
13
|
+
end
|
14
|
+
@rtn.push(@pc) unless $debug
|
15
|
+
@pc = pos
|
16
|
+
$debug = false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# vim:ft=ruby:
|
data/cmd/xeq0
ADDED
data/cmd/xeqnn
ADDED
data/cmd/xeqy
ADDED
data/cmd/xf
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class XRPN
|
2
|
+
def xf # X<>F
|
3
|
+
fsumx = 0
|
4
|
+
7.times do |f|
|
5
|
+
fl = "%02d" % [f]
|
6
|
+
fsumx += 2 ** f if @flg[fl]
|
7
|
+
fl = "%02d" % [7 - f]
|
8
|
+
fx = 2 ** (7 - f)
|
9
|
+
if @x / fx >= 1
|
10
|
+
@flg[fl] = true
|
11
|
+
@x -= fx
|
12
|
+
else
|
13
|
+
@flg[fl] = false
|
14
|
+
end
|
15
|
+
end
|
16
|
+
@x = fsumx
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# vim:ft=ruby:
|
data/cmd/xgt0
ADDED
data/cmd/xgteq0
ADDED
data/cmd/xgteqnn
ADDED
data/cmd/xgteqy
ADDED
data/cmd/xgtnn
ADDED
data/cmd/xgty
ADDED
data/cmd/xlt0
ADDED
data/cmd/xlteq0
ADDED
data/cmd/xlteqnn
ADDED
data/cmd/xlteqy
ADDED
data/cmd/xltnn
ADDED
data/cmd/xlty
ADDED
data/cmd/xmexistq
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
class XRPN
|
2
|
+
def xmexist?
|
3
|
+
f = Dir.home + "/.xrpn/data/" + @a
|
4
|
+
if File.exist?(f + ".da")
|
5
|
+
return "YES (DA)"
|
6
|
+
elsif File.exist?(f + ".as")
|
7
|
+
return "YES (AS)"
|
8
|
+
elsif File.exist?(f + ".pr")
|
9
|
+
return "YES (PR)"
|
10
|
+
else return "NO"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# vim:ft=ruby:
|
data/cmd/xmfileq
ADDED
data/cmd/xneq0
ADDED
data/cmd/xneqnn
ADDED
data/cmd/xneqy
ADDED
data/cmd/xnn
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
class XRPN
|
2
|
+
def xnn (r) # X<> r
|
3
|
+
case r.downcase
|
4
|
+
when "x"
|
5
|
+
@l = @x
|
6
|
+
when "y"
|
7
|
+
@x, @y = @y, @x
|
8
|
+
when "z"
|
9
|
+
@x, @z = @z, @x
|
10
|
+
when "t"
|
11
|
+
@x, @t = @t, @x
|
12
|
+
when "l"
|
13
|
+
@x, @l = @l, @x
|
14
|
+
else
|
15
|
+
@reg[r] = 0 if @reg[r] == nil
|
16
|
+
@x, @reg[r] = @reg[r], @x
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# vim:ft=ruby:
|
data/cmd/xtoa
ADDED
data/cmd/xy
ADDED
data/cmd/xyzalm
ADDED
data/lib/_xrpn_version
ADDED
data/lib/bei
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
def x2bei (x)
|
2
|
+
b = x.to_i
|
3
|
+
e = (1000 * (x - b)).to_i
|
4
|
+
i = (((1000 * x) - (1000 * x).to_i) * 100).round()
|
5
|
+
i = 1 if i == 0
|
6
|
+
return b, e, i
|
7
|
+
end
|
8
|
+
|
9
|
+
def bei2x (b, e, i)
|
10
|
+
b = b.to_i
|
11
|
+
e = e.to_i
|
12
|
+
i = 1 if i == 0
|
13
|
+
i = i.to_i
|
14
|
+
x = b.to_f + (e.to_f / 1000) + (i.to_f / 100000)
|
15
|
+
return x
|
16
|
+
end
|
17
|
+
|
18
|
+
# vim:ft=ruby:
|
data/lib/check
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
def check(file)
|
2
|
+
load Dir.home+"/.xrpn/lib/read_cmd"
|
3
|
+
read_cmd
|
4
|
+
errors = 0
|
5
|
+
if File.exist?(file)
|
6
|
+
cfile = File.read(file).split("\n")
|
7
|
+
else
|
8
|
+
puts "No such file: #{file}"
|
9
|
+
exit
|
10
|
+
end
|
11
|
+
cfile41 = hp_41(cfile.dup)
|
12
|
+
cfile41.each_with_index do |line, i|
|
13
|
+
if line.match(/^-*[\d\.,e]+$/)
|
14
|
+
elsif line.match(/^>?".*"/)
|
15
|
+
else
|
16
|
+
l1 = line.split[0]
|
17
|
+
if not $cmd.include?(l1.downcase)
|
18
|
+
puts "Line #{i + 1}: No such command: #{cfile[i]}"
|
19
|
+
errors += 1
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
puts "Errors = #{errors}"
|
24
|
+
end
|
25
|
+
|
26
|
+
# vim:ft=ruby:
|
data/lib/conditional
ADDED