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/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