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
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: ec611b098ae31061be5df9cb0d924ff76b84ecb71d606acd204775f7b3775a56
|
|
4
|
+
data.tar.gz: 62e8c735f5cffaa562ac2620d564d7b41b6841443d94819b63a4342c0ee2009b
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 6f030302c85ef1b7606c370b174a20e91cf1cc32fe28ecd992ffee376c5dcd69d827bc437287d7c40b76cc90cb1e4debe5cbde59c5f7d73530c70d7f5a69be1a
|
|
7
|
+
data.tar.gz: ba1c3c64c2f5d5e5aa7551dd991c7fbe89c2e778590df08feb12893ee95be4d6991967dbe66c9c91c0fa343f8c8fc9420940bf6709df28448216b5d5793d96cc
|
data/bin/xrpn
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# encoding: utf-8
|
|
3
|
+
|
|
4
|
+
# GET EXTENSIONS
|
|
5
|
+
begin
|
|
6
|
+
require 'xrpn'
|
|
7
|
+
rescue LoadError
|
|
8
|
+
puts "You may want to install xrpn via `gem install xrpn`"
|
|
9
|
+
end
|
|
10
|
+
require 'optparse'
|
|
11
|
+
require 'io/console'
|
|
12
|
+
require 'date'
|
|
13
|
+
require 'bigdecimal'
|
|
14
|
+
require 'open-uri'
|
|
15
|
+
require 'json'
|
|
16
|
+
require 'tty-prompt'
|
|
17
|
+
|
|
18
|
+
# ENSURE DIRs
|
|
19
|
+
Dir.mkdir(Dir.home + "/.xrpn") unless File.exist?(Dir.home + "/.xrpn")
|
|
20
|
+
["cmd", "data", "extra", "lib", "print"].each do |d|
|
|
21
|
+
Dir.mkdir(Dir.home + "/.xrpn/" + d) unless File.exist?(Dir.home + "/.xrpn/" + d)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# INITIALIZE
|
|
25
|
+
@x, @y, @z, @t, @a = 0, 0, 0, 0, ""
|
|
26
|
+
Dir[Dir.home+"/.xrpn/lib/*"].each { |file| load file } # Read libraries
|
|
27
|
+
read_cmd # Read XRPN commands
|
|
28
|
+
@p = XRPN.new($rfile)
|
|
29
|
+
@p.x, @p.y, @p.z, @p.t, @p.a = @x, @y, @z, @t, @a
|
|
30
|
+
@p.prg[@p.pg] = ["LBL \"XRPN\"", "END"] unless $rfile # Put dummy program in page 0 if no file to run
|
|
31
|
+
@p.prg[@p.pg] = hp_41(@p.prg[@p.pg]) if $rfile # Substitute HP-41 commands with XRPN commands
|
|
32
|
+
if $lfile # Read file to load but not run if -l switch is used
|
|
33
|
+
$lfile.each_with_index do |f, i|
|
|
34
|
+
@p.prg[i] = File.read(f).split("\n")
|
|
35
|
+
@p.prg[i] = hp_41(@p.prg[i])
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
read_state($sfile) if $sfile # Read state file in ~.xrpn/ if -s switch is used
|
|
39
|
+
$debug = true if $lfile or $sfile # Do not run loaded program or program in state file
|
|
40
|
+
load(Dir.home+'/.xrpn/lib/theme_dark') if File.exist?(Dir.home+'/.xrpn/lib/theme_dark') # Read theme file
|
|
41
|
+
load(Dir.home+'/.xrpn/conf') if File.exist?(Dir.home+'/.xrpn/conf') # Read config file
|
|
42
|
+
load(Dir.home+'/.xrpn/lib/theme_light') if $theme == "light" and File.exist?(Dir.home+'/.xrpn/lib/theme_light') # Read theme file
|
|
43
|
+
load(Dir.home+'/.xrpn/theme') if File.exist?(Dir.home+'/.xrpn/theme') # Override theme if user theme file exists
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# THE CORE OF THE RPN PROGRAM
|
|
47
|
+
@nl = false # Nolift set to false
|
|
48
|
+
@i = 0 # Counter to prevent infinite loops
|
|
49
|
+
until @p.pc == @p.prg[@p.pg].length do
|
|
50
|
+
# Enter debug mode if $debug or $prompt is set, else read next program line
|
|
51
|
+
($debug or $prompt) ? debug_mode : @line = @p.prg[@p.pg][@p.pc]
|
|
52
|
+
@line = "" if @line == nil
|
|
53
|
+
if @line.match(/^-*[\d\.,e]+$/) # If a number is supplied
|
|
54
|
+
@line.sub!(/,/, '.')
|
|
55
|
+
@p.lift
|
|
56
|
+
@p.x = @line.to_f
|
|
57
|
+
@p.flg["22"] = true # Number has been entered
|
|
58
|
+
@p.flg["23"] = false
|
|
59
|
+
elsif @line.match(/^>?".*"/) # If an Alpha string is supplied
|
|
60
|
+
if @line.match(/^"\|/)
|
|
61
|
+
@p.a += @line.sub(/\|-?/, '').gsub(/\"/, '') # Append to Alpha if "|abc", "|-abc"
|
|
62
|
+
elsif @line.match(/^>"/)
|
|
63
|
+
@p.a += @line.sub(/>/, '').gsub(/\"/, '') # Append to Alpha if >"abc"
|
|
64
|
+
else
|
|
65
|
+
@p.a = @line.gsub(/\"/, '') # ...or set Alpha to the supplied string
|
|
66
|
+
end
|
|
67
|
+
@p.flg["22"] = false
|
|
68
|
+
@p.flg["23"] = true # String has been entered
|
|
69
|
+
else # Split command in maximum three words (e.g. STO IND 13)
|
|
70
|
+
l1, l2, l3 = @line.split[0], @line.split[1], @line.split[2]
|
|
71
|
+
l2 = "%02d" % [l2] if l2 == l2.to_i.to_s
|
|
72
|
+
l3 = "%02d" % [l3] if l3 == l3.to_i.to_s
|
|
73
|
+
l2 = ind(l3) if l3 # If middle word is "IND" (or anything actually - since IND is the only possibility)
|
|
74
|
+
l1 = "" if l1 == nil
|
|
75
|
+
if not $cmd.include?(l1.downcase) # Catch unknown command
|
|
76
|
+
puts "No such command: #{l1}"
|
|
77
|
+
@p.stop
|
|
78
|
+
elsif XRPN.method_defined?(l1.downcase) # Or execute the command with either 1 or 2 parts
|
|
79
|
+
begin
|
|
80
|
+
l2 ? ret = @p.send(l1.downcase, l2) : ret = @p.send(l1.downcase)
|
|
81
|
+
rescue ArgumentError
|
|
82
|
+
puts "Command needs an argument."
|
|
83
|
+
@p.stop
|
|
84
|
+
rescue TypeError
|
|
85
|
+
error("ERROR: Wrong type.")
|
|
86
|
+
rescue ZeroDivisionError
|
|
87
|
+
error("ERROR: Division by zero.")
|
|
88
|
+
rescue FloatDomainError
|
|
89
|
+
error("ERROR: Number out of range.")
|
|
90
|
+
rescue Math::DomainError
|
|
91
|
+
error("ERROR: Number out of domain.")
|
|
92
|
+
end
|
|
93
|
+
puts ret if $debug and ret.instance_of? String
|
|
94
|
+
puts ret if not $debug and ret.to_s.match(/Error:/)
|
|
95
|
+
@p.flg["22"] = false
|
|
96
|
+
@p.flg["23"] = false
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
@p.nolift = false if @nl
|
|
100
|
+
@p.nolift ? @nl = true : @nl = false
|
|
101
|
+
@p.pc += 1 unless ($debug or $prompt)
|
|
102
|
+
@i += 1 unless ($debug or @i < 0) # Handling of potential infinite loops
|
|
103
|
+
if @i > 1000
|
|
104
|
+
puts "Looped 1000 times. Press 'c' to continue indefinitely or any other key to stop."
|
|
105
|
+
ans = STDIN.getch
|
|
106
|
+
ans == "c" ? @i = -1 : $debug = true
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# vim: set sw=2 sts=2 et ft=ruby fdm=syntax fdn=2 fcs=fold\:\ :
|
data/cmd/abs
ADDED
data/cmd/acos
ADDED
data/cmd/adate
ADDED
data/cmd/adateiso
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
class XRPN
|
|
2
|
+
def adateiso
|
|
3
|
+
d = @x.to_s
|
|
4
|
+
d = "0" + d if d.match(/^\d\./)
|
|
5
|
+
if @flg["31"] # DMY
|
|
6
|
+
@a += d.sub(/(\d*)\.(\d\d)(\d\d\d\d)\d*/, '\3-\2-\1')
|
|
7
|
+
else # MDY
|
|
8
|
+
@a += d.sub(/(\d*)\.(\d\d)(\d\d\d\d)\d*/, '\3-\1-\2')
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# vim:ft=ruby:
|
data/cmd/add
ADDED
data/cmd/adv
ADDED
data/cmd/agsub
ADDED
data/cmd/aleng
ADDED
data/cmd/almcat
ADDED
data/cmd/almnow
ADDED
data/cmd/anum
ADDED
data/cmd/aoff
ADDED
data/cmd/aon
ADDED
data/cmd/appchr
ADDED
data/cmd/apprec
ADDED
data/cmd/arcl
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
class XRPN
|
|
2
|
+
def arcl (r)
|
|
3
|
+
a = false
|
|
4
|
+
case r.downcase
|
|
5
|
+
when "x"
|
|
6
|
+
a = @x
|
|
7
|
+
when "y"
|
|
8
|
+
a = @y
|
|
9
|
+
when "z"
|
|
10
|
+
a = @z
|
|
11
|
+
when "t"
|
|
12
|
+
a = @t
|
|
13
|
+
end
|
|
14
|
+
a ? @a += numformat(a) : @a += numformat(@reg[r])
|
|
15
|
+
if @a == nil
|
|
16
|
+
@reg[r] = ""
|
|
17
|
+
@a = ""
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# vim:ft=ruby:
|
data/cmd/arcli
ADDED
data/cmd/arclrec
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
class XRPN
|
|
2
|
+
def arclrec
|
|
3
|
+
if @xmcont[0][0] == ""
|
|
4
|
+
return
|
|
5
|
+
else
|
|
6
|
+
if @xmcont[0][3] > @xmcont.length - 2
|
|
7
|
+
@xmcont[0][3] = 0.0
|
|
8
|
+
return "END OF FILE"
|
|
9
|
+
end
|
|
10
|
+
r, c = getpt
|
|
11
|
+
n = 24 - @a.length
|
|
12
|
+
n = 0 if n < 0
|
|
13
|
+
e = c + n
|
|
14
|
+
n > 0 ? s = @xmcont[r][c..e - 1] : s = ""
|
|
15
|
+
@a += s
|
|
16
|
+
if e > @xmcont[r].length - 2
|
|
17
|
+
setpt(r + 1, 0)
|
|
18
|
+
@flg["17"] = true
|
|
19
|
+
elsif n > 0
|
|
20
|
+
p c, n, @xmcont[0][3]
|
|
21
|
+
setpt(r, e + 1)
|
|
22
|
+
p "After", @xmcont[0][3]
|
|
23
|
+
@flg["17"] = false
|
|
24
|
+
end
|
|
25
|
+
savexm
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# vim:ft=ruby:
|
data/cmd/arot
ADDED
data/cmd/ashf
ADDED
data/cmd/asin
ADDED
data/cmd/asroom
ADDED
data/cmd/asto
ADDED
data/cmd/asub
ADDED
data/cmd/atan
ADDED
data/cmd/atime
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class XRPN
|
|
2
|
+
def atime
|
|
3
|
+
t = @x.to_f
|
|
4
|
+
am = true
|
|
5
|
+
case t
|
|
6
|
+
when ..-12
|
|
7
|
+
t = t.abs
|
|
8
|
+
when -12..-1
|
|
9
|
+
t = t.abs
|
|
10
|
+
am = false
|
|
11
|
+
t += 12 if @clk24
|
|
12
|
+
when -1..0
|
|
13
|
+
t = t.abs
|
|
14
|
+
end
|
|
15
|
+
t = BigDecimal(t.to_s).truncate(@i).to_f
|
|
16
|
+
h = t.to_i
|
|
17
|
+
m = (100 * (t - h)).to_i
|
|
18
|
+
s = (100 * (100 * (t -h) - m)).round(@i)
|
|
19
|
+
@a += "#{h}:#{m}:#{s}"
|
|
20
|
+
if @clk24 == false
|
|
21
|
+
am ? @a += " AM" : @a += " PM"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# vim:ft=ruby:
|
data/cmd/atime24
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class XRPN
|
|
2
|
+
def atime24
|
|
3
|
+
t = @x.to_f
|
|
4
|
+
case t
|
|
5
|
+
when ..-12
|
|
6
|
+
t = t.abs
|
|
7
|
+
when -12..-1
|
|
8
|
+
t = t.abs
|
|
9
|
+
t += 12
|
|
10
|
+
when -1..0
|
|
11
|
+
t = t.abs
|
|
12
|
+
end
|
|
13
|
+
t = BigDecimal(t.to_s).truncate(@i).to_f
|
|
14
|
+
h = t.to_i
|
|
15
|
+
m = (100 * (t - h)).to_i
|
|
16
|
+
s = (100 * (100 * (t -h) - m)).round(@i)
|
|
17
|
+
@a += "#{h}:#{m}:#{s}"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# vim:ft=ruby:
|
data/cmd/atox
ADDED
data/cmd/aview
ADDED
data/cmd/aviewc
ADDED
data/cmd/beep
ADDED
data/cmd/bindec
ADDED
data/cmd/cat
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class XRPN
|
|
2
|
+
def cat (c)
|
|
3
|
+
case c.to_i
|
|
4
|
+
when 1
|
|
5
|
+
pcat
|
|
6
|
+
when 3
|
|
7
|
+
puts "Commands:"
|
|
8
|
+
i = 1
|
|
9
|
+
$cmd.each do |cm|
|
|
10
|
+
print cm.ljust(12)
|
|
11
|
+
print "\n" if i % 7 == 0
|
|
12
|
+
i += 1
|
|
13
|
+
end
|
|
14
|
+
print "\n"
|
|
15
|
+
when 4
|
|
16
|
+
Dir[Dir.home+"/.xrpn/data/*"].each do |file|
|
|
17
|
+
f = file.sub(/.*\/(.*)\...$/, '\1')
|
|
18
|
+
t = file.sub(/.*\.(..)$/, '\1').upcase
|
|
19
|
+
l = File.size(file) / 7
|
|
20
|
+
puts "#{f.ljust(12)} #{t} #{l.to_s.rjust(4)}"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# vim:ft=ruby:
|
data/cmd/cf
ADDED
data/cmd/chs
ADDED
data/cmd/cla
ADDED
data/cmd/clalma
ADDED
data/cmd/clalmx
ADDED
data/cmd/cld
ADDED
data/cmd/clear
ADDED
data/cmd/clfl
ADDED
data/cmd/clk12
ADDED
data/cmd/clk24
ADDED
data/cmd/clkeys
ADDED