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.
Files changed (289) hide show
  1. checksums.yaml +7 -0
  2. data/bin/xrpn +110 -0
  3. data/cmd/abs +7 -0
  4. data/cmd/acos +10 -0
  5. data/cmd/adate +12 -0
  6. data/cmd/adateiso +13 -0
  7. data/cmd/add +9 -0
  8. data/cmd/adv +7 -0
  9. data/cmd/agsub +8 -0
  10. data/cmd/aleng +8 -0
  11. data/cmd/almcat +7 -0
  12. data/cmd/almnow +7 -0
  13. data/cmd/anum +10 -0
  14. data/cmd/aoff +7 -0
  15. data/cmd/aon +7 -0
  16. data/cmd/appchr +13 -0
  17. data/cmd/apprec +13 -0
  18. data/cmd/arcl +22 -0
  19. data/cmd/arcli +7 -0
  20. data/cmd/arclrec +30 -0
  21. data/cmd/arot +13 -0
  22. data/cmd/ashf +7 -0
  23. data/cmd/asin +10 -0
  24. data/cmd/asroom +7 -0
  25. data/cmd/asto +21 -0
  26. data/cmd/asub +8 -0
  27. data/cmd/atan +10 -0
  28. data/cmd/atime +26 -0
  29. data/cmd/atime24 +21 -0
  30. data/cmd/atox +9 -0
  31. data/cmd/aview +7 -0
  32. data/cmd/aviewc +7 -0
  33. data/cmd/beep +7 -0
  34. data/cmd/bindec +8 -0
  35. data/cmd/cat +26 -0
  36. data/cmd/cf +7 -0
  37. data/cmd/chs +7 -0
  38. data/cmd/cla +7 -0
  39. data/cmd/clalma +7 -0
  40. data/cmd/clalmx +7 -0
  41. data/cmd/cld +6 -0
  42. data/cmd/clear +7 -0
  43. data/cmd/clfl +13 -0
  44. data/cmd/clk12 +7 -0
  45. data/cmd/clk24 +7 -0
  46. data/cmd/clkeys +7 -0
  47. data/cmd/clock +7 -0
  48. data/cmd/clp +8 -0
  49. data/cmd/clralms +7 -0
  50. data/cmd/clrg +7 -0
  51. data/cmd/clrgx +12 -0
  52. data/cmd/cls +12 -0
  53. data/cmd/clst +10 -0
  54. data/cmd/clx +8 -0
  55. data/cmd/cmdadd +7 -0
  56. data/cmd/cmddel +7 -0
  57. data/cmd/correct +7 -0
  58. data/cmd/cos +10 -0
  59. data/cmd/crflas +9 -0
  60. data/cmd/crfld +9 -0
  61. data/cmd/cube +8 -0
  62. data/cmd/d_r +8 -0
  63. data/cmd/date +8 -0
  64. data/cmd/dateplus +12 -0
  65. data/cmd/ddate +11 -0
  66. data/cmd/dec +7 -0
  67. data/cmd/decbin +8 -0
  68. data/cmd/dechex +8 -0
  69. data/cmd/decoct +8 -0
  70. data/cmd/deg +7 -0
  71. data/cmd/degq +7 -0
  72. data/cmd/delchr +14 -0
  73. data/cmd/delrec +12 -0
  74. data/cmd/divide +9 -0
  75. data/cmd/dmy +7 -0
  76. data/cmd/dot +7 -0
  77. data/cmd/dow +9 -0
  78. data/cmd/drop +7 -0
  79. data/cmd/dropy +7 -0
  80. data/cmd/dse +40 -0
  81. data/cmd/ed +7 -0
  82. data/cmd/emdir +7 -0
  83. data/cmd/emdirx +14 -0
  84. data/cmd/emroom +7 -0
  85. data/cmd/end +9 -0
  86. data/cmd/eng +9 -0
  87. data/cmd/enter +8 -0
  88. data/cmd/exp +9 -0
  89. data/cmd/expx1 +9 -0
  90. data/cmd/fact +9 -0
  91. data/cmd/fc +7 -0
  92. data/cmd/fcc +8 -0
  93. data/cmd/fcs +8 -0
  94. data/cmd/fix +9 -0
  95. data/cmd/fixq +7 -0
  96. data/cmd/flsize +7 -0
  97. data/cmd/frc +8 -0
  98. data/cmd/fs +7 -0
  99. data/cmd/fsc +8 -0
  100. data/cmd/fss +8 -0
  101. data/cmd/geir +11 -0
  102. data/cmd/getas +7 -0
  103. data/cmd/getfile +12 -0
  104. data/cmd/getfilea +11 -0
  105. data/cmd/getkey +9 -0
  106. data/cmd/getkeyx +10 -0
  107. data/cmd/getp +13 -0
  108. data/cmd/getr +13 -0
  109. data/cmd/getrec +8 -0
  110. data/cmd/getrx +17 -0
  111. data/cmd/getsub +7 -0
  112. data/cmd/getweb +12 -0
  113. data/cmd/getx +12 -0
  114. data/cmd/grad +7 -0
  115. data/cmd/gsb +7 -0
  116. data/cmd/gto +23 -0
  117. data/cmd/help +14 -0
  118. data/cmd/hexdec +8 -0
  119. data/cmd/hms +12 -0
  120. data/cmd/hmsminus +14 -0
  121. data/cmd/hmsplus +13 -0
  122. data/cmd/hr +11 -0
  123. data/cmd/inschr +14 -0
  124. data/cmd/insrec +12 -0
  125. data/cmd/int +8 -0
  126. data/cmd/invf +7 -0
  127. data/cmd/isg +40 -0
  128. data/cmd/lastx +8 -0
  129. data/cmd/lbl +6 -0
  130. data/cmd/lift +8 -0
  131. data/cmd/ln +8 -0
  132. data/cmd/ln1x +8 -0
  133. data/cmd/log +8 -0
  134. data/cmd/mdy +7 -0
  135. data/cmd/mean +11 -0
  136. data/cmd/mod +13 -0
  137. data/cmd/multiply +9 -0
  138. data/cmd/oct +7 -0
  139. data/cmd/octdec +8 -0
  140. data/cmd/off +8 -0
  141. data/cmd/on +7 -0
  142. data/cmd/p_r +13 -0
  143. data/cmd/pack +7 -0
  144. data/cmd/page +13 -0
  145. data/cmd/pagedel +8 -0
  146. data/cmd/pageq +7 -0
  147. data/cmd/pageswap +8 -0
  148. data/cmd/pasn +7 -0
  149. data/cmd/pcat +14 -0
  150. data/cmd/pclps +12 -0
  151. data/cmd/percent +9 -0
  152. data/cmd/percentch +9 -0
  153. data/cmd/pi +8 -0
  154. data/cmd/posa +23 -0
  155. data/cmd/posfl +26 -0
  156. data/cmd/pow +9 -0
  157. data/cmd/pprg +27 -0
  158. data/cmd/pprgx +33 -0
  159. data/cmd/pra +7 -0
  160. data/cmd/prflags +8 -0
  161. data/cmd/prompt +8 -0
  162. data/cmd/prp +7 -0
  163. data/cmd/prregs +8 -0
  164. data/cmd/prstk +10 -0
  165. data/cmd/prx +7 -0
  166. data/cmd/prxm +21 -0
  167. data/cmd/pse +7 -0
  168. data/cmd/psize +7 -0
  169. data/cmd/purfl +14 -0
  170. data/cmd/r_d +8 -0
  171. data/cmd/r_p +18 -0
  172. data/cmd/rad +7 -0
  173. data/cmd/rand +10 -0
  174. data/cmd/rcl +23 -0
  175. data/cmd/rclaf +7 -0
  176. data/cmd/rclflag +16 -0
  177. data/cmd/rclpt +8 -0
  178. data/cmd/rclpta +16 -0
  179. data/cmd/rclsw +7 -0
  180. data/cmd/rdn +7 -0
  181. data/cmd/recip +8 -0
  182. data/cmd/regmove +18 -0
  183. data/cmd/regswap +19 -0
  184. data/cmd/reload +7 -0
  185. data/cmd/reszfl +7 -0
  186. data/cmd/rnd +8 -0
  187. data/cmd/root +9 -0
  188. data/cmd/rtn +12 -0
  189. data/cmd/rubycmd +7 -0
  190. data/cmd/runsw +7 -0
  191. data/cmd/rup +7 -0
  192. data/cmd/saveas +7 -0
  193. data/cmd/savep +7 -0
  194. data/cmd/saver +24 -0
  195. data/cmd/saverx +31 -0
  196. data/cmd/savex +10 -0
  197. data/cmd/savexm +7 -0
  198. data/cmd/sci +9 -0
  199. data/cmd/sdev +11 -0
  200. data/cmd/seekpt +10 -0
  201. data/cmd/seekpta +7 -0
  202. data/cmd/sep +7 -0
  203. data/cmd/setaf +7 -0
  204. data/cmd/setsw +7 -0
  205. data/cmd/sf +7 -0
  206. data/cmd/shellcmd +7 -0
  207. data/cmd/sign +19 -0
  208. data/cmd/sin +10 -0
  209. data/cmd/size +7 -0
  210. data/cmd/sizeq +7 -0
  211. data/cmd/sminus +20 -0
  212. data/cmd/splus +20 -0
  213. data/cmd/sqr +8 -0
  214. data/cmd/sqrt +8 -0
  215. data/cmd/sreg +7 -0
  216. data/cmd/sregq +7 -0
  217. data/cmd/stdivide +22 -0
  218. data/cmd/stmultiply +22 -0
  219. data/cmd/sto +21 -0
  220. data/cmd/stoflag +13 -0
  221. data/cmd/stop +7 -0
  222. data/cmd/stopsw +7 -0
  223. data/cmd/stplus +22 -0
  224. data/cmd/stsubtract +22 -0
  225. data/cmd/subtract +9 -0
  226. data/cmd/sw +7 -0
  227. data/cmd/swap +7 -0
  228. data/cmd/swpt +7 -0
  229. data/cmd/tan +10 -0
  230. data/cmd/tenx +8 -0
  231. data/cmd/time +8 -0
  232. data/cmd/tx +7 -0
  233. data/cmd/version +7 -0
  234. data/cmd/view +7 -0
  235. data/cmd/writefile +12 -0
  236. data/cmd/xeq +21 -0
  237. data/cmd/xeq0 +7 -0
  238. data/cmd/xeqnn +9 -0
  239. data/cmd/xeqy +7 -0
  240. data/cmd/xf +20 -0
  241. data/cmd/xgt0 +7 -0
  242. data/cmd/xgteq0 +7 -0
  243. data/cmd/xgteqnn +9 -0
  244. data/cmd/xgteqy +7 -0
  245. data/cmd/xgtnn +9 -0
  246. data/cmd/xgty +7 -0
  247. data/cmd/xlt0 +7 -0
  248. data/cmd/xlteq0 +7 -0
  249. data/cmd/xlteqnn +9 -0
  250. data/cmd/xlteqy +7 -0
  251. data/cmd/xltnn +9 -0
  252. data/cmd/xlty +7 -0
  253. data/cmd/xmexistq +15 -0
  254. data/cmd/xmfileq +7 -0
  255. data/cmd/xneq0 +7 -0
  256. data/cmd/xneqnn +9 -0
  257. data/cmd/xneqy +7 -0
  258. data/cmd/xnn +21 -0
  259. data/cmd/xtoa +7 -0
  260. data/cmd/xy +7 -0
  261. data/cmd/xyzalm +7 -0
  262. data/lib/_xrpn_version +5 -0
  263. data/lib/bei +18 -0
  264. data/lib/check +26 -0
  265. data/lib/conditional +10 -0
  266. data/lib/convert_base +8 -0
  267. data/lib/debug_mode +124 -0
  268. data/lib/dtparse +10 -0
  269. data/lib/error +10 -0
  270. data/lib/fact +7 -0
  271. data/lib/getpt +7 -0
  272. data/lib/help +12 -0
  273. data/lib/hp_41 +83 -0
  274. data/lib/ind +21 -0
  275. data/lib/load_xm +28 -0
  276. data/lib/locate_prg +32 -0
  277. data/lib/numeric +62 -0
  278. data/lib/numformat +12 -0
  279. data/lib/optparse +23 -0
  280. data/lib/read_cmd +12 -0
  281. data/lib/read_state +6 -0
  282. data/lib/save_state +18 -0
  283. data/lib/save_xm +5 -0
  284. data/lib/setpt +5 -0
  285. data/lib/string +28 -0
  286. data/lib/theme_dark +10 -0
  287. data/lib/theme_light +10 -0
  288. data/lib/xrpn_class +34 -0
  289. metadata +348 -0
data/cmd/clp ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def clp (p)
3
+ page, pos, prgm = locate_prg (p)
4
+ @prg[page] -= prgm
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/clralms ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def clralms
3
+ return "CLRALMS: No clock, alarm or stopwatch functions are implemented"
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/clrg ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def clrg
3
+ @reg.each_key {|key| @reg[key] = 0 }
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/clrgx ADDED
@@ -0,0 +1,12 @@
1
+ class XRPN
2
+ def clrgx
3
+ b, e, i = x2bei(@x)
4
+ j = b
5
+ until j > e do
6
+ @reg[j] = 0
7
+ j += i
8
+ end
9
+ end
10
+ end
11
+
12
+ # vim:ft=ruby:
data/cmd/cls ADDED
@@ -0,0 +1,12 @@
1
+ class XRPN
2
+ def cls
3
+ @reg[@srg + 0] = 0.0
4
+ @reg[@srg + 1] = 0.0
5
+ @reg[@srg + 2] = 0.0
6
+ @reg[@srg + 3] = 0.0
7
+ @reg[@srg + 4] = 0.0
8
+ @reg[@srg + 5] = 0.0
9
+ end
10
+ end
11
+
12
+ # vim:ft=ruby:
data/cmd/clst ADDED
@@ -0,0 +1,10 @@
1
+ class XRPN
2
+ def clst
3
+ @x = 0.0
4
+ @y = 0.0
5
+ @z = 0.0
6
+ @t = 0.0
7
+ end
8
+ end
9
+
10
+ # vim:ft=ruby:
data/cmd/clx ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def clx
3
+ @x = 0.0
4
+ @nolift = true
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/cmdadd ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def cmdadd
3
+ @prg.insert(@x.to_i, @a)
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/cmddel ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def cmddel
3
+ @prg.delete_at(@x.to_i)
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/correct ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def correct
3
+ return "CORRECT: No clock, alarm or stopwatch functions are implemented"
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/cos ADDED
@@ -0,0 +1,10 @@
1
+ class XRPN
2
+ def cos
3
+ @l = @x
4
+ @x = @x.to_rad if @deg == "deg"
5
+ @x = @x.to_radg if @deg == "grad"
6
+ @x = Math::cos(@x)
7
+ end
8
+ end
9
+
10
+ # vim:ft=ruby:
data/cmd/crflas ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def crflas
3
+ f = Dir.home + "/.xrpn/data/" + @a + ".as"
4
+ File.write(f, [[f, "AS", 0, 0.0]])
5
+ load_xm(@a, 0.0)
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/crfld ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def crfld
3
+ f = Dir.home + "/.xrpn/data/" + @a + ".da"
4
+ File.write(f, [[f, "DA", 0, 0.0]])
5
+ load_xm(@a, 0.0)
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/cube ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def cube
3
+ @l = @x
4
+ @x = @x ** 3
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/d_r ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def d_r
3
+ @l = @x
4
+ @x = @x * Math::PI / 180
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/date ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def date
3
+ lift
4
+ @flg["31"] ? @x = Time.now.strftime("%d.%m%Y").to_f : @x = Time.now.strftime("%m.%d%Y").to_f
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/dateplus ADDED
@@ -0,0 +1,12 @@
1
+ class XRPN
2
+ def dateplus
3
+ @l = @x
4
+ date = dtparse(@y)
5
+ n = (date+@x).to_s
6
+ new = Date.parse(n)
7
+ @flg["31"] ? @x = new.day.to_f + new.month.to_f/100 + new.year.to_f/1000000 : @x = new.month.to_f + new.day.to_f/100 + new.year.to_f/1000000
8
+ dropy
9
+ end
10
+ end
11
+
12
+ # vim:ft=ruby:
data/cmd/ddate ADDED
@@ -0,0 +1,11 @@
1
+ class XRPN
2
+ def ddate
3
+ @l = @x
4
+ dt1 = dtparse(@y)
5
+ dt2 = dtparse(@x)
6
+ dropy
7
+ @x = (dt1-dt2).to_i
8
+ end
9
+ end
10
+
11
+ # vim:ft=ruby:
data/cmd/dec ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def dec
3
+ octdec
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/decbin ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def decbin
3
+ @l = @x
4
+ @x = @x.to_s.convert_base(10, 2).to_f
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/dechex ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def dechex
3
+ @l = @x
4
+ @x = @x.to_s.convert_base(10, 16)
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/decoct ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def decoct
3
+ @l = @x
4
+ @x = @x.to_s.convert_base(10, 8).to_f
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/deg ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def deg
3
+ @deg = "deg"
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/degq ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def deg?
3
+ p @deg
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/delchr ADDED
@@ -0,0 +1,14 @@
1
+ class XRPN
2
+ def delchr
3
+ if @xmcont[0][0] == ""
4
+ return
5
+ else
6
+ r = @xmcont[0][3].to_i + 1
7
+ c = (@xmcont[0][3].frc * 1000).to_i
8
+ @xmcont[r][c..(c + @x.to_i)] = ""
9
+ savexm
10
+ end
11
+ end
12
+ end
13
+
14
+ # vim:ft=ruby:
data/cmd/delrec ADDED
@@ -0,0 +1,12 @@
1
+ class XRPN
2
+ def delrec
3
+ if @xmcont[0][0] == ""
4
+ return
5
+ else
6
+ @xmcont.delete_at(@xmcont[0][3] + 1)
7
+ savexm
8
+ end
9
+ end
10
+ end
11
+
12
+ # vim:ft=ruby:
data/cmd/divide ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def /
3
+ @l = @x
4
+ @x = @y / @x
5
+ dropy
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/dmy ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def dmy
3
+ @flg["31"] = true
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/dot ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def dot
3
+ @flg["28"] = !@flg["28"]
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/dow ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def dow
3
+ @l = @x
4
+ lift
5
+ @x = dtparse(@x).wday
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/drop ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def drop
3
+ @x, @y, @z = @y, @z, @t
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/dropy ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def dropy
3
+ @y, @z = @z, @t
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/dse ADDED
@@ -0,0 +1,40 @@
1
+ class XRPN
2
+ def dse (r)
3
+ case r.downcase
4
+ when "x"
5
+ c = @x
6
+ when "y"
7
+ c = @y
8
+ when "z"
9
+ c = @z
10
+ when "t"
11
+ c = @t
12
+ when "l"
13
+ c = @l
14
+ else
15
+ c = @reg[r]
16
+ end
17
+ b, e, i = x2bei(c)
18
+ i2 = i
19
+ i2 = 1 if i2 == 0
20
+ b -= i2
21
+ @pc += 1 if b <= e
22
+ c = bei2x(b, e, i)
23
+ case r.downcase
24
+ when "x"
25
+ @x = c
26
+ when "y"
27
+ @y = c
28
+ when "z"
29
+ @z = c
30
+ when "t"
31
+ @t = c
32
+ when "l"
33
+ @l = c
34
+ else
35
+ @reg[r] = c
36
+ end
37
+ end
38
+ end
39
+
40
+ # vim:ft=ruby:
data/cmd/ed ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def ed
3
+ return "No need for an editor.\nEdit your files in ~/.xrpn/data/ with your favourite editor (VIM)."
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/emdir ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def emdir
3
+ cat 4
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/emdirx ADDED
@@ -0,0 +1,14 @@
1
+ class XRPN
2
+ def emdirx
3
+ fl = Dir[Dir.home+"/.xrpn/data/*"][@x.to_i - 1]
4
+ f = fl.sub(/.*\/(.*)\...$/, '\1')
5
+ t = fl.sub(/.*\.(..)$/, '\1').upcase
6
+ l = File.size(fl) / 7
7
+ puts "#{f.ljust(12)} #{t} #{l.to_s.rjust(4)}"
8
+ @a = f
9
+ lift
10
+ @x = t
11
+ end
12
+ end
13
+
14
+ # vim:ft=ruby:
data/cmd/emroom ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def emroom
3
+ return "EMROOM: There's always plenty of room"
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/end ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def end
3
+ p = @pc
4
+ rtn
5
+ @pc = 0 if @pc == p
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/eng ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def eng (n)
3
+ @i = n.to_i
4
+ @g = 3
5
+ @s = 6
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/enter ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def enter
3
+ lift
4
+ @nolift = true
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/exp ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def exp
3
+ @l = @x
4
+ lift
5
+ @x = Math::exp(@x)
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/expx1 ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def expx1
3
+ @l = @x
4
+ lift
5
+ @x = Math::exp(@x - 1)
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/fact ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def fact
3
+ @l = @x
4
+ lift
5
+ @x = @x.to_i.fact
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/fc ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def fc? (r)
3
+ @flg[r] == false ? conditional(true) : conditional(false)
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/fcc ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def fcc? (r)
3
+ @flg[r] == false ? conditional(true) : conditional(false)
4
+ @flg[r] = false
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/fcs ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def fcs? (r)
3
+ @flg[r] == false ? conditional(true) : conditional(false)
4
+ @flg[r] = true
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/fix ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def fix (n)
3
+ @i = n.to_i
4
+ @s = 9
5
+ @g = 1
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/fixq ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def fix?
3
+ return "FIX = #{@i}"
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/flsize ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def flsize
3
+ return "FLSIZE: Always plenty of room."
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/frc ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def frc
3
+ @l = @x
4
+ @x = @x.frc
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/fs ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def fs? (r)
3
+ @flg[r] == true ? conditional(true) : conditional(false)
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/fsc ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def fsc? (r)
3
+ @flg[r] == true ? conditional(true) : conditional(false)
4
+ @flg[r] = false
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/fss ADDED
@@ -0,0 +1,8 @@
1
+ class XRPN
2
+ def fss? (r)
3
+ @flg[r] == true ? conditional(true) : conditional(false)
4
+ @flg[r] = true
5
+ end
6
+ end
7
+
8
+ # vim:ft=ruby:
data/cmd/geir ADDED
@@ -0,0 +1,11 @@
1
+ class XRPN
2
+ def geir
3
+ puts
4
+ puts "Geir Isene <g@isene.com> https://isene.com"
5
+ puts "Creator of the XRPN programming language."
6
+ puts "Send me a message. Let's have an inspirational chat."
7
+ puts
8
+ end
9
+ end
10
+
11
+ # vim:ft=ruby:
data/cmd/getas ADDED
@@ -0,0 +1,7 @@
1
+ class XRPN
2
+ def getas
3
+ load_xm(@a)
4
+ end
5
+ end
6
+
7
+ # vim:ft=ruby:
data/cmd/getfile ADDED
@@ -0,0 +1,12 @@
1
+ class XRPN
2
+ def getfile
3
+ lift
4
+ begin
5
+ @x = File.read(@a)
6
+ rescue
7
+ return "Cannot read the file '#{a}'"
8
+ end
9
+ end
10
+ end
11
+
12
+ # vim:ft=ruby:
data/cmd/getfilea ADDED
@@ -0,0 +1,11 @@
1
+ class XRPN
2
+ def getfilea
3
+ begin
4
+ @a = File.read(@a)
5
+ rescue
6
+ return "Cannot read the file '#{a}'"
7
+ end
8
+ end
9
+ end
10
+
11
+ # vim:ft=ruby:
data/cmd/getkey ADDED
@@ -0,0 +1,9 @@
1
+ class XRPN
2
+ def getkey
3
+ key = STDIN.getch(min: 0, time: 10)
4
+ lift
5
+ key ? @x = key.ord : @x = 0
6
+ end
7
+ end
8
+
9
+ # vim:ft=ruby:
data/cmd/getkeyx ADDED
@@ -0,0 +1,10 @@
1
+ class XRPN
2
+ def getkeyx
3
+ @l = @x
4
+ key = STDIN.getch(min: 0, time: @x)
5
+ lift
6
+ key ? @x = key.ord : @x = 0
7
+ end
8
+ end
9
+
10
+ # vim:ft=ruby:
data/cmd/getp ADDED
@@ -0,0 +1,13 @@
1
+ class XRPN
2
+ def getp
3
+ f = Dir.home + "/.xrpn/data/" + @a + ".pr"
4
+ if File.exist?(f)
5
+ @prg[@prg.length] = JSON.parse(File.read(f))
6
+ @prg.uniq!
7
+ else
8
+ return "No such program file: #{@a}"
9
+ end
10
+ end
11
+ end
12
+
13
+ # vim:ft=ruby:
data/cmd/getr ADDED
@@ -0,0 +1,13 @@
1
+ class XRPN
2
+ def getr
3
+ # No reason to not allow ascii files to be read into regs
4
+ i = 0
5
+ @xmcont.each do |r|
6
+ i += 1
7
+ dest = "%02d" % (i - 1)
8
+ @reg[dest] = r
9
+ end
10
+ end
11
+ end
12
+
13
+ # vim:ft=ruby: