Bläddra i källkod

Syntax highlighting now includes comments.

Paul Onions 11 år sedan
förälder
incheckning
0cd4e664ea
8 ändrade filer med 389 tillägg och 806 borttagningar
  1. 25 90
      data/sysrpl-data.38G.el
  2. 23 81
      data/sysrpl-data.39G.el
  3. 73 220
      data/sysrpl-data.48G.el
  4. 115 334
      data/sysrpl-data.49G.el
  5. 4 52
      rpl-base.el
  6. 100 16
      rpl-edb.el
  7. 1 0
      rpl-tools.el
  8. 48 13
      sysrpl-mode.el

+ 25 - 90
data/sysrpl-data.38G.el

@@ -1,5 +1,5 @@
 
 
-#s(hash-table size 5541 test eql rehash-size 1.5 rehash-threshold 0.8 data ("any" ("0d 0h
+#s(hash-table size 5541 test equal rehash-size 1.5 rehash-threshold 0.8 data ("any" ("0d 0h
 " "" "0403F" :NOSDIAG) "ZERO" ("0d 0h
 " "" "0403F" :NOSDIAG) "ZERO" ("0d 0h
 " "" "0403F" :NOSDIAG) "BINT0" ("0d 0h
 " "" "0403F" :NOSDIAG) "BINT0" ("0d 0h
 " "" "0403F" :NOSDIAG) "MEMERR" ("1d 1h
 " "" "0403F" :NOSDIAG) "MEMERR" ("1d 1h
@@ -1326,17 +1326,14 @@ ob #0 \\-> #0
 " "" "814FF") "#+ROLL" ("1..n+m #n #m \\-> 2..n+m 1
 " "" "814FF") "#+ROLL" ("1..n+m #n #m \\-> 2..n+m 1
 " "" "814F5") "#-ROLL" ("1..n-m #n #m \\-> 2..n-m 1
 " "" "814F5") "#-ROLL" ("1..n-m #n #m \\-> 2..n-m 1
 " "" "814F0") "XYZ>ZXY" ("1 2 3 \\-> 3 1 2
 " "" "814F0") "XYZ>ZXY" ("1 2 3 \\-> 3 1 2
-" "" "815CC") "3UNROLL" ("1 2 3 \\-> 3 1 2
-" "" "815CC") "UNROT" ("1 2 3 \\-> 3 1 2
-" "" "815CC") "UNROTDUP" ("1 2 3 \\-> 3 1 2 1
+" "" "814A5") "3UNROLL" ("1 2 3 \\-> 3 1 2
+" "" "814A5") "UNROT" ("1 2 3 \\-> 3 1 2
+" "" "814A5") "UNROTDUP" ("1 2 3 \\-> 3 1 2 1
 " "" "83764") "XYZ>ZX" ("1 2 3 \\-> 3 1
 " "" "83764") "XYZ>ZX" ("1 2 3 \\-> 3 1
 " "" "81559") "SWAPDROPSWAP" ("1 2 3 \\-> 3 1
 " "" "81559") "SWAPDROPSWAP" ("1 2 3 \\-> 3 1
 " "" "81559") "UNROTDROP" ("1 2 3 \\-> 3 1
 " "" "81559") "UNROTDROP" ("1 2 3 \\-> 3 1
 " "" "81559") "UNROTOVER" ("1 2 3 \\-> 3 1 2 1
 " "" "81559") "UNROTOVER" ("1 2 3 \\-> 3 1 2 1
-" "" "83AFC") "XYZ>ZXY" ("1 2 3 \\-> 3 1 2
-" "" "814A5") "UNROT" ("1 2 3 \\-> 3 1 2
-" "" "814A5") "3UNROLL" ("1 2 3 \\-> 3 1 2
-" "" "814A5") "XYZW>WXYZ" ("1 2 3 4 \\-> 4 1 2 3
+" "" "83AFC") "XYZW>WXYZ" ("1 2 3 4 \\-> 4 1 2 3
 " "" "814B9") "FOURUNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "814B9") "FOURUNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "814B9") "4UNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "814B9") "4UNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "814B9") "4UNROLLDUP" ("1 2 3 4 \\-> 4 1 2 3 3
 " "" "814B9") "4UNROLLDUP" ("1 2 3 4 \\-> 4 1 2 3 3
@@ -1360,8 +1357,6 @@ ob #0 \\-> #0
 " "" "81D65") "OVERDUP" ("1 2 \\-> 1 2 1 1
 " "" "81D65") "OVERDUP" ("1 2 \\-> 1 2 1 1
 " "" "8373C") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "8373C") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "837A0") "OVERSWAP" ("1 2 \\-> 1 1 2
 " "" "837A0") "OVERSWAP" ("1 2 \\-> 1 1 2
-" "" "837A0") "OVERSWAP" ("1 2 \\-> 1 1 2
-" "" "837A0") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "837A0") "OVER5PICK" ("1 2 3 4 \\-> 1 2 3 4 3 1
 " "" "837A0") "OVER5PICK" ("1 2 3 4 \\-> 1 2 3 4 3 1
 " "" "8469B") "2OVER" ("1 2 3 4 \\-> 1 2 3 4 1 2
 " "" "8469B") "2OVER" ("1 2 3 4 \\-> 1 2 3 4 1 2
 " "" "849C5") "3PICK" ("1 2 3 \\-> 1 2 3 1
 " "" "849C5") "3PICK" ("1 2 3 \\-> 1 2 3 1
@@ -2160,9 +2155,6 @@ necessary.
 " "81B12") "0LASTOWDOB!" ("\\->
 " "81B12") "0LASTOWDOB!" ("\\->
 " "Clears command save by last CK<n> command.
 " "Clears command save by last CK<n> command.
 <REF>CK0
 <REF>CK0
-" "81B12") "0LASTOWDOB!" ("\\->
-" "Clears command save by last CK<n> command.
-<REF>CK0
 " "81B12") "CKREAL" ("% \\-> %
 " "81B12") "CKREAL" ("% \\-> %
 Z \\-> %
 Z \\-> %
 " "Checks for real.  If a ZINT, convert
 " "Checks for real.  If a ZINT, convert
@@ -6097,12 +6089,12 @@ and returns the new value to
 level 1.
 level 1.
  --
  --
 Related: INCR,STO+,STO-
 Related: INCR,STO+,STO-
-" "0FE002" :Usr) "~" ("" "Delete Key Assignments Cmd
+" "0FE002" :Usr) "~" ("" "Exponent Func
  --
  --
-Clears user-defined key assignments.
+Returns the exponent of the arg.
  --
  --
-Related: ASB,RCLKEYS,STOKEYS
-" "10D002" :Usr) "~xDEPTH" ("\\-> n
+Related: MANT,SIGN
+" "05B002" :Usr) "~xDEPTH" ("\\-> n
 " "Depth Cmd
 " "Depth Cmd
  --
  --
 Returns a real number representing
 Returns a real number representing
@@ -6306,51 +6298,29 @@ See the IF and IFERR keyword
 entries for syntax information.
 entries for syntax information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "002700" :Usr) "~xEND" ("1/0 \\->
+" "002700" :Usr) "~xEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
 and indefinite loop structures.
 and indefinite loop structures.
-
-See the IF, CASE, IFERR, DO, and
-WHILE keyword entries for syntax
-information.
  --
  --
-Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "015700" :Usr) "~xENDDO" ("1/0 \\->
-" "END Cmd
- --
-Ends conditional, error-trapping,
-and indefinite loop structures.
-
 See the IF, CASE, IFERR, DO, and
 See the IF, CASE, IFERR, DO, and
 WHILE keyword entries for syntax
 WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "015700" :Usr) "~xEND" ("
+" "014700" :Usr) "~xENDDO" ("1/0 \\->
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
 and indefinite loop structures.
 and indefinite loop structures.
- --
-See the IF, CASE, IFERR, DO, and
-WHILE keyword entries for syntax
-information.
- --
-Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "003700" :Usr) "~xIFEND" ("
-" "END Cmd
- --
-Ends conditional, error-trapping,
-and indefinite loop structures.
- --
+
 See the IF, CASE, IFERR, DO, and
 See the IF, CASE, IFERR, DO, and
 WHILE keyword entries for syntax
 WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "003700" :Usr) "~xEND" ("
+" "015700" :Usr) "~xIFEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -6361,7 +6331,7 @@ WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "014700" :Usr) "~xWHILEEND" ("
+" "003700" :Usr) "~xWHILEEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -6953,7 +6923,6 @@ Related: COLCT,EXPAN,QUAD,SHOW,SOLVE
 " "102002" :Usr) "~x_" ("
 " "102002" :Usr) "~x_" ("
 " "" "0E0002" :Usr) "~xFORMUNIT" ("
 " "" "0E0002" :Usr) "~xFORMUNIT" ("
 " "" "0E0002" :Usr) "~x'" ("
 " "" "0E0002" :Usr) "~x'" ("
-" "" "012700" :Usr) "~x'" ("
 " "" "013700" :Usr) "~xENDTIC" ("
 " "" "013700" :Usr) "~xENDTIC" ("
 " "" "013700" :Usr) "~x\\<<" ("
 " "" "013700" :Usr) "~x\\<<" ("
 " "" "010700" :Usr) "~x<<" ("
 " "" "010700" :Usr) "~x<<" ("
@@ -7547,14 +7516,7 @@ the current stastics matrix
 <REF>TEXT:Reserved|\\GSDAT
 <REF>TEXT:Reserved|\\GSDAT
  --
  --
 Related: MEAN,PCOV,PVAR,SDEV,TOT,VAR
 Related: MEAN,PCOV,PVAR,SDEV,TOT,VAR
-" "0200F2" :Usr) "~" ("" "Purge Cmd
- --
-Purges the named variables or
-empty subdirectories from the
-current directory.
- --
-Related: CLEAR,CLVAR,NEWOB,PGDIR
-" "108002" :Usr) "~xPUT" ("ob pos obj \\-> ob'
+" "0200F2" :Usr) "~xPUT" ("ob pos obj \\-> ob'
 ob  = [] or [[]] or {} or name
 ob  = [] or [[]] or {} or name
 pos = n or {n} or {n m}
 pos = n or {n} or {n m}
 " "Put Element Cmd
 " "Put Element Cmd
@@ -8495,26 +8457,15 @@ Related: \\.d,\\.S,\\GS
 Displays the stack display.
 Displays the stack display.
  --
  --
 Related: PICTURE,PVIEW
 Related: PICTURE,PVIEW
-" "0BD002" :Usr) "~xTHEN" ("0/1 \\->
-" "THEN Cmd
- --
-Starts the true-clause in conditional
-or error-trapping structure
- --
-Related: CASE,ELSE,END,IFERR
-" "001700" :Usr) "~xTHEN" ("
-" "THEN in a CASE statement.
+" "0BD002" :Usr) "~xTHEN" ("
+" "THEN in an ON ERROR construct.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
-" "018700" :Usr) "~xTHENCASE" ("
+" "016700" :Usr) "~xTHENCASE" ("
 " "THEN in a CASE statement.
 " "THEN in a CASE statement.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
-" "018700" :Usr) "~xTHEN" ("
-" "THEN in an ON ERROR construct.
- --
-Related: CASE,ELSE,END,IFERR
-" "016700" :Usr) "~xERRTHEN" ("
+" "018700" :Usr) "~xERRTHEN" ("
 " "THEN in an ON ERROR construct.
 " "THEN in an ON ERROR construct.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
@@ -8853,12 +8804,7 @@ of two arguments.
  'sym1' 'sym2' \\-> 'sym1 XOR sym2'
  'sym1' 'sym2' \\-> 'sym1 XOR sym2'
  --
  --
 Related: AND,OR,NOT
 Related: AND,OR,NOT
-" "0C7002" :Usr) "~" ("" "Exponent Func
- --
-Returns the exponent of the arg.
- --
-Related: MANT,SIGN
-" "05B002" :Usr) "~xXRECV" ("name \\->
+" "0C7002" :Usr) "~xXRECV" ("name \\->
 " "XModem Receive Cmd
 " "XModem Receive Cmd
  --
  --
 Prepares the HP 48 to receive an
 Prepares the HP 48 to receive an
@@ -9065,18 +9011,10 @@ Tests if two objects are equal.
 Flags: -3
 Flags: -3
  --
  --
 Related: SAME,TYPE,<,\\<=,>,\\>=, ==
 Related: SAME,TYPE,<,\\<=,>,\\>=, ==
-" "0C9002" :Usr) "~x\\->" ("ob1 .. obn \\->
-" "Create Local Variables Cmd
- --
-Creates local variables.
- obj1 ... objn \\->
- --
-Syntax:
- \\-> name1 name2 ... nameN \\<< prog \\>>
- \\-> name1 name2 ... nameN 'Expr'
- --
-Related: DEFINE,STO
-" "00F700" :Usr) "~xRPN->" ("ob1 .. obn \\->
+" "0C9002" :Usr) "~x\\->" ("
+" "Create local variable comand.
+<REF>xRPN->
+" "004700" :Usr) "~xRPN->" ("ob1 .. obn \\->
 " "Create Local Variables Cmd
 " "Create Local Variables Cmd
  --
  --
 Creates local variables.
 Creates local variables.
@@ -9087,10 +9025,7 @@ Syntax:
  \\-> name1 name2 ... nameN 'Expr'
  \\-> name1 name2 ... nameN 'Expr'
  --
  --
 Related: DEFINE,STO
 Related: DEFINE,STO
-" "00F700" :Usr) "~x\\->" ("
-" "Create local variable comand.
-<REF>xRPN->
-" "004700" :Usr) "~xALG->" ("
+" "00F700" :Usr) "~xALG->" ("
 " "Create local variable comand.
 " "Create local variable comand.
 <REF>xRPN->
 <REF>xRPN->
 " "004700" :Usr) "~x!" ("x \\-> x'
 " "004700" :Usr) "~x!" ("x \\-> x'

+ 23 - 81
data/sysrpl-data.39G.el

@@ -1,5 +1,5 @@
 
 
-#s(hash-table size 8311 test eql rehash-size 1.5 rehash-threshold 0.8 data ("any" ("0d 0h
+#s(hash-table size 8311 test equal rehash-size 1.5 rehash-threshold 0.8 data ("any" ("0d 0h
 " "" "04049" :NOSDIAG) "ZERO" ("0d 0h
 " "" "04049" :NOSDIAG) "ZERO" ("0d 0h
 " "" "04049" :NOSDIAG) "BINT0" ("0d 0h
 " "" "04049" :NOSDIAG) "BINT0" ("0d 0h
 " "" "04049" :NOSDIAG) "MEMERR" ("1d 1h
 " "" "04049" :NOSDIAG) "MEMERR" ("1d 1h
@@ -1510,10 +1510,7 @@ ob #0 \\-> #0
 " "" "0E3C6") "SWAPDROPSWAP" ("1 2 3 \\-> 3 1
 " "" "0E3C6") "SWAPDROPSWAP" ("1 2 3 \\-> 3 1
 " "" "0E3C6") "UNROTDROP" ("1 2 3 \\-> 3 1
 " "" "0E3C6") "UNROTDROP" ("1 2 3 \\-> 3 1
 " "" "0E3C6") "UNROTOVER" ("1 2 3 \\-> 3 1 2 1
 " "" "0E3C6") "UNROTOVER" ("1 2 3 \\-> 3 1 2 1
-" "" "0F96E") "XYZ>ZXY" ("1 2 3 \\-> 3 1 2
-" "" "0CD84") "UNROT" ("1 2 3 \\-> 3 1 2
-" "" "0CD84") "3UNROLL" ("1 2 3 \\-> 3 1 2
-" "" "0CD84") "XYZW>WXYZ" ("1 2 3 4 \\-> 4 1 2 3
+" "" "0F96E") "XYZW>WXYZ" ("1 2 3 4 \\-> 4 1 2 3
 " "" "0CE8A") "FOURUNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "0CE8A") "FOURUNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "0CE8A") "4UNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "0CE8A") "4UNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "0CE8A") "4UNROLLDUP" ("1 2 3 4 \\-> 4 1 2 3 3
 " "" "0CE8A") "4UNROLLDUP" ("1 2 3 4 \\-> 4 1 2 3 3
@@ -1537,8 +1534,6 @@ ob #0 \\-> #0
 " "" "032C2") "OVERDUP" ("1 2 \\-> 1 2 1 1
 " "" "032C2") "OVERDUP" ("1 2 \\-> 1 2 1 1
 " "" "0F5A7") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "0F5A7") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "0F60B") "OVERSWAP" ("1 2 \\-> 1 1 2
 " "" "0F60B") "OVERSWAP" ("1 2 \\-> 1 1 2
-" "" "0F60B") "OVERSWAP" ("1 2 \\-> 1 1 2
-" "" "0F60B") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "0F60B") "OVER5PICK" ("1 2 3 4 \\-> 1 2 3 4 3 1
 " "" "0F60B") "OVER5PICK" ("1 2 3 4 \\-> 1 2 3 4 3 1
 " "" "1050B") "2OVER" ("1 2 3 4 \\-> 1 2 3 4 1 2
 " "" "1050B") "2OVER" ("1 2 3 4 \\-> 1 2 3 4 1 2
 " "" "10835") "3PICK" ("1 2 3 \\-> 1 2 3 1
 " "" "10835") "3PICK" ("1 2 3 \\-> 1 2 3 1
@@ -2338,9 +2333,6 @@ necessary.
 " "232A7") "0LASTOWDOB!" ("\\->
 " "232A7") "0LASTOWDOB!" ("\\->
 " "Clears command save by last CK<n> command.
 " "Clears command save by last CK<n> command.
 <REF>CK0
 <REF>CK0
-" "232A7") "0LASTOWDOB!" ("\\->
-" "Clears command save by last CK<n> command.
-<REF>CK0
 " "232A7") "CKREAL" ("% \\-> %
 " "232A7") "CKREAL" ("% \\-> %
 Z \\-> %
 Z \\-> %
 " "Checks for real.  If a ZINT, convert
 " "Checks for real.  If a ZINT, convert
@@ -6340,12 +6332,14 @@ and returns the new value to
 level 1.
 level 1.
  --
  --
 Related: INCR,STO+,STO-
 Related: INCR,STO+,STO-
-" "080004" :Usr) "~" ("" "Delete Key Assignments Cmd
+" "080004" :Usr) "~" ("" "Purge Cmd
  --
  --
-Clears user-defined key assignments.
+Purges the named variables or
+empty subdirectories from the
+current directory.
  --
  --
-Related: ASB,RCLKEYS,STOKEYS
-" "088004" :Usr) "~xDEPTH" ("\\-> n
+Related: CLEAR,CLVAR,NEWOB,PGDIR
+" "083004" :Usr) "~xDEPTH" ("\\-> n
 " "Depth Cmd
 " "Depth Cmd
  --
  --
 Returns a real number representing
 Returns a real number representing
@@ -6549,29 +6543,7 @@ See the IF and IFERR keyword
 entries for syntax information.
 entries for syntax information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "3E54D" :Usr) "xEND" ("1/0 \\->
-" "END Cmd
- --
-Ends conditional, error-trapping,
-and indefinite loop structures.
-
-See the IF, CASE, IFERR, DO, and
-WHILE keyword entries for syntax
-information.
- --
-Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "3EDD3" :Usr) "xENDDO" ("1/0 \\->
-" "END Cmd
- --
-Ends conditional, error-trapping,
-and indefinite loop structures.
-
-See the IF, CASE, IFERR, DO, and
-WHILE keyword entries for syntax
-information.
- --
-Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "3EDD3" :Usr) "xEND" ("
+" "3E54D" :Usr) "xEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -6582,18 +6554,18 @@ WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "3E568" :Usr) "xIFEND" ("
+" "3EDB3" :Usr) "xENDDO" ("1/0 \\->
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
 and indefinite loop structures.
 and indefinite loop structures.
- --
+
 See the IF, CASE, IFERR, DO, and
 See the IF, CASE, IFERR, DO, and
 WHILE keyword entries for syntax
 WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "3E568" :Usr) "xEND" ("
+" "3EDD3" :Usr) "xIFEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -6604,7 +6576,7 @@ WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "3EDB3" :Usr) "xWHILEEND" ("
+" "3E568" :Usr) "xWHILEEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -7197,7 +7169,6 @@ Related: COLCT,EXPAN,QUAD,SHOW,SOLVE
 " "3DAA0" :Usr) "x_" ("
 " "3DAA0" :Usr) "x_" ("
 " "" "3D905" :Usr) "xFORMUNIT" ("
 " "" "3D905" :Usr) "xFORMUNIT" ("
 " "" "3D905" :Usr) "x'" ("
 " "" "3D905" :Usr) "x'" ("
-" "" "3ED7E" :Usr) "x'" ("
 " "" "3ED98" :Usr) "xENDTIC" ("
 " "" "3ED98" :Usr) "xENDTIC" ("
 " "" "3ED98" :Usr) "x\\<<" ("
 " "" "3ED98" :Usr) "x\\<<" ("
 " "" "3ED4D" :Usr) "x<<" ("
 " "" "3ED4D" :Usr) "x<<" ("
@@ -7791,14 +7762,7 @@ the current stastics matrix
 <REF>TEXT:Reserved|\\GSDAT
 <REF>TEXT:Reserved|\\GSDAT
  --
  --
 Related: MEAN,PCOV,PVAR,SDEV,TOT,VAR
 Related: MEAN,PCOV,PVAR,SDEV,TOT,VAR
-" "2BDDC" :Usr) "~" ("" "Purge Cmd
- --
-Purges the named variables or
-empty subdirectories from the
-current directory.
- --
-Related: CLEAR,CLVAR,NEWOB,PGDIR
-" "083004" :Usr) "~xPUT" ("ob pos obj \\-> ob'
+" "2BDDC" :Usr) "~xPUT" ("ob pos obj \\-> ob'
 ob  = [] or [[]] or {} or name
 ob  = [] or [[]] or {} or name
 pos = n or {n} or {n m}
 pos = n or {n} or {n m}
 " "Put Element Cmd
 " "Put Element Cmd
@@ -8751,26 +8715,15 @@ Related: \\.d,\\.S,\\GS
 Displays the stack display.
 Displays the stack display.
  --
  --
 Related: PICTURE,PVIEW
 Related: PICTURE,PVIEW
-" "067004" :Usr) "xTHEN" ("0/1 \\->
-" "THEN Cmd
- --
-Starts the true-clause in conditional
-or error-trapping structure
- --
-Related: CASE,ELSE,END,IFERR
-" "3E4AB" :Usr) "xTHEN" ("
-" "THEN in a CASE statement.
+" "067004" :Usr) "xTHEN" ("
+" "THEN in an ON ERROR construct.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
-" "3EF1F" :Usr) "xTHENCASE" ("
+" "3EE34" :Usr) "xTHENCASE" ("
 " "THEN in a CASE statement.
 " "THEN in a CASE statement.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
-" "3EF1F" :Usr) "xTHEN" ("
-" "THEN in an ON ERROR construct.
- --
-Related: CASE,ELSE,END,IFERR
-" "3EE34" :Usr) "xERRTHEN" ("
+" "3EF1F" :Usr) "xERRTHEN" ("
 " "THEN in an ON ERROR construct.
 " "THEN in an ON ERROR construct.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
@@ -9316,18 +9269,10 @@ Tests if two objects are equal.
 Flags: -3
 Flags: -3
  --
  --
 Related: SAME,TYPE,<,\\<=,>,\\>=, ==
 Related: SAME,TYPE,<,\\<=,>,\\>=, ==
-" "3DF0F" :Usr) "x\\->" ("ob1 .. obn \\->
-" "Create Local Variables Cmd
- --
-Creates local variables.
- obj1 ... objn \\->
- --
-Syntax:
- \\-> name1 name2 ... nameN \\<< prog \\>>
- \\-> name1 name2 ... nameN 'Expr'
- --
-Related: DEFINE,STO
-" "3EC15" :Usr) "xRPN->" ("ob1 .. obn \\->
+" "3DF0F" :Usr) "x\\->" ("
+" "Create local variable comand.
+<REF>xRPN->
+" "3E57E" :Usr) "xRPN->" ("ob1 .. obn \\->
 " "Create Local Variables Cmd
 " "Create Local Variables Cmd
  --
  --
 Creates local variables.
 Creates local variables.
@@ -9338,10 +9283,7 @@ Syntax:
  \\-> name1 name2 ... nameN 'Expr'
  \\-> name1 name2 ... nameN 'Expr'
  --
  --
 Related: DEFINE,STO
 Related: DEFINE,STO
-" "3EC15" :Usr) "x\\->" ("
-" "Create local variable comand.
-<REF>xRPN->
-" "3E57E" :Usr) "xALG->" ("
+" "3EC15" :Usr) "xALG->" ("
 " "Create local variable comand.
 " "Create local variable comand.
 <REF>xRPN->
 <REF>xRPN->
 " "3E57E" :Usr) "x!" ("x \\-> x'
 " "3E57E" :Usr) "x!" ("x \\-> x'

+ 73 - 220
data/sysrpl-data.48G.el

@@ -1,5 +1,5 @@
 
 
-#s(hash-table size 5541 test eql rehash-size 1.5 rehash-threshold 0.8 data ("any" ("0d 0h
+#s(hash-table size 5541 test equal rehash-size 1.5 rehash-threshold 0.8 data ("any" ("0d 0h
 " "" "03FEF") "ZERO" ("0d 0h
 " "" "03FEF") "ZERO" ("0d 0h
 " "" "03FEF") "BINT0" ("0d 0h
 " "" "03FEF") "BINT0" ("0d 0h
 " "" "03FEF") "MEMERR" ("1d 1h
 " "" "03FEF") "MEMERR" ("1d 1h
@@ -466,8 +466,8 @@ invalid input.
 " "" "62809") "#1+SWAP" ("ob # \\-> #+1 ob
 " "" "62809") "#1+SWAP" ("ob # \\-> #+1 ob
 " "" "62E26") "#1+ROT" ("ob ob' # \\-> ob' #+1 ob
 " "" "62E26") "#1+ROT" ("ob ob' # \\-> ob' #+1 ob
 " "" "1DABB") "#1-DUP" ("# \\-> #-1 #-1
 " "" "1DABB") "#1-DUP" ("# \\-> #-1 #-1
-" "" "6281A") "pull" ("ob # \\-> #-1 ob
-" "" "5E4A9") "#1-SWAP" ("ob # \\-> #-1 ob
+" "" "6281A") "pull" ("meta&ob \\-> meta ob
+" "" "5E4A9") "#1-SWAP" ("meta&ob \\-> meta ob
 " "" "5E4A9") "#1-ROT" ("ob ob' # \\-> ob' #-1 ob
 " "" "5E4A9") "#1-ROT" ("ob ob' # \\-> ob' #-1 ob
 " "" "62FD9") "#1-UNROT" ("ob ob' # \\-> #-1 ob ob'
 " "" "62FD9") "#1-UNROT" ("ob ob' # \\-> #-1 ob ob'
 " "" "28558") "#1-1SWAP" ("# \\-> 1 #-1
 " "" "28558") "#1-1SWAP" ("# \\-> 1 #-1
@@ -479,8 +479,8 @@ invalid input.
 " "" "63704") "2DUP#+" ("# #' \\-> # #' #+#'
 " "" "63704") "2DUP#+" ("# #' \\-> # #' #+#'
 " "" "63704") "DROP#1-" ("# ob \\-> #-1
 " "" "63704") "DROP#1-" ("# ob \\-> #-1
 " "" "637F4") "SWAP#-" ("# #' \\-> #'-#
 " "" "637F4") "SWAP#-" ("# #' \\-> #'-#
-" "" "62794") "SWP1+" ("# ob \\-> ob #+1
-" "" "62904") "SWAP#1+" ("# ob \\-> ob #+1
+" "" "62794") "SWP1+" ("meta ob \\-> meta&ob
+" "" "62904") "SWAP#1+" ("meta ob \\-> meta&ob
 " "" "62904") "SWAP#1+SWAP" ("# ob \\-> #+1 ob
 " "" "62904") "SWAP#1+SWAP" ("# ob \\-> #+1 ob
 " "" "51843") "SWAP#1-" ("# ob \\-> ob #-1
 " "" "51843") "SWAP#1-" ("# ob \\-> ob #-1
 " "" "637E0") "SWAP#1-SWAP" ("# ob \\-> #-1 ob
 " "" "637E0") "SWAP#1-SWAP" ("# ob \\-> #-1 ob
@@ -814,8 +814,8 @@ system flag.
 " "" "51A4A" :U) "C/i" ("C% \\-> C%'
 " "" "51A4A" :U) "C/i" ("C% \\-> C%'
 " "" "51A5F" :U) "C%C+C" ("C% C%' \\-> C%''
 " "" "51A5F" :U) "C%C+C" ("C% C%' \\-> C%''
 " "" "51C16" :U) "C%C-C" ("C% C%' \\-> C%''
 " "" "51C16" :U) "C%C-C" ("C% C%' \\-> C%''
-" "" "51CFC" :U) "C%C*C" ("C% C%' \\-> C%''
-" "" "51D88" :U) "C%C/C" ("C% C%' \\-> C%''
+" "" "51CFC" :U) "C%C*C" ("C% \\-> C%^2
+" "" "1B48F" :U) "C%C/C" ("C% C%' \\-> C%''
 " "" "51EC8" :U) "C%C+R" ("C% % \\-> C%'
 " "" "51EC8" :U) "C%C+R" ("C% % \\-> C%'
 " "" "51BD0" :U) "C%R+C" ("% C% \\-> C%'
 " "" "51BD0" :U) "C%R+C" ("% C% \\-> C%'
 " "" "51BF8" :U) "C%C-R" ("C% % \\-> C%'
 " "" "51BF8" :U) "C%C-R" ("C% % \\-> C%'
@@ -831,8 +831,7 @@ system flag.
 " "" "52062") "C%CHS" ("C% \\-> -C%
 " "" "52062") "C%CHS" ("C% \\-> -C%
 " "" "51B70") "C%1/" ("C% \\-> 1/C%
 " "" "51B70") "C%1/" ("C% \\-> 1/C%
 " "" "51EFA") "C%SQRT" ("C% \\-> \\v/C%
 " "" "51EFA") "C%SQRT" ("C% \\-> \\v/C%
-" "" "52107") "C%C*C" ("C% \\-> C%^2
-" "" "1B48F" :U) "C%SGN" ("C% \\-> C%/C%ABS
+" "" "52107") "C%SGN" ("C% \\-> C%/C%ABS
 " "" "520CB") "C%CONJ" ("C% \\-> C%'
 " "" "520CB") "C%CONJ" ("C% \\-> C%'
 " "" "51BB2") "C%ARG" ("C% \\-> %
 " "" "51BB2") "C%ARG" ("C% \\-> %
 " "" "52099") "C%EXP" ("C% \\-> e^C%
 " "" "52099") "C%EXP" ("C% \\-> e^C%
@@ -1201,10 +1200,7 @@ position to the end (exclusive).
 " "Returns bint with ASCII code of character at
 " "Returns bint with ASCII code of character at
 the specified position.
 the specified position.
 " "30805") "EXPAND" ("hxs #nibs \\-> hxs'
 " "30805") "EXPAND" ("hxs #nibs \\-> hxs'
-" "Appends null characters to the string. Since
-refers to the number of nibbles, you must
-use a number twice as large as the number
-of null characters you want appended.
+" "Appends #nibs zero nibbles to the hxs.
 " "61C1C") "&$" ("$ $' \\-> $+$'
 " "61C1C") "&$" ("$ $' \\-> $+$'
 " "Concatenates two strings.
 " "Concatenates two strings.
 " "05193") "&$SWAP" ("ob $ $' \\-> $+$' ob
 " "05193") "&$SWAP" ("ob $ $' \\-> $+$' ob
@@ -1374,9 +1370,7 @@ called %>HXS.
 " "05566" :U) "#>%" ("hxs \\-> %
 " "05566" :U) "#>%" ("hxs \\-> %
 " "" "5435D") "&HXS" ("hxs hxs' \\-> hxs''
 " "" "5435D") "&HXS" ("hxs hxs' \\-> hxs''
 " "Appends hxs'' to hxs'.
 " "Appends hxs'' to hxs'.
-" "0518A") "EXPAND" ("hxs #nibs \\-> hxs'
-" "Appends #nibs zero nibbles to the hxs.
-" "61C1C") "MAKEHXS" ("#nibs \\-> hxs
+" "0518A") "MAKEHXS" ("#nibs \\-> hxs
 " "Makes blank hxs of specified size.
 " "Makes blank hxs of specified size.
 " "0EDE1") "!MAKEHXS" ("#nibs \\-> hxs
 " "0EDE1") "!MAKEHXS" ("#nibs \\-> hxs
 " "Makes hxs filled with random data.
 " "Makes hxs filled with random data.
@@ -1484,9 +1478,9 @@ rompointer.
 " "0C501" :U) "MATIDN" ("[F%] \\-> [F%]'
 " "0C501" :U) "MATIDN" ("[F%] \\-> [F%]'
 " "Creates identity matrix. Errors if input is
 " "Creates identity matrix. Errors if input is
 not a square matrix.
 not a square matrix.
-" "35D35" :U) "SWAPROWS" ("[] #m #n \\-> []' #m #n
-" "Swaps two rows. Does not make copy in
-tempob.
+" "35D35" :U) "SWAPROWS" ("M % %' \\-> M'
+" "SWAP two rows in matrix.  Internal version of
+xRSWP. 
 " "3745E") "SWAPCOLUMNS" ("[] #m #n \\-> []' #m #n
 " "3745E") "SWAPCOLUMNS" ("[] #m #n \\-> []' #m #n
 " "" "37508" :U) "TYPEARRY@" ("[] \\-> #
 " "" "37508" :U) "TYPEARRY@" ("[] \\-> #
 " "Returns address of the prolog of the array
 " "Returns address of the prolog of the array
@@ -1497,8 +1491,8 @@ element type.
 " "03685" :U) "FINDELN" ("{} A \\-> # flag
 " "03685" :U) "FINDELN" ("{} A \\-> # flag
 " "Return index # of element {} in array.
 " "Return index # of element {} in array.
 " "03685" :U) "BANGARRY" ("el # M \\-> M'
 " "03685" :U) "BANGARRY" ("el # M \\-> M'
-" "Put element at index # of matrix.
-" "1DBB0" :U) "MATCON" ("[%] % \\-> [%]'
+" "Puts el at index # of matrix M.
+" "1DBB0" :UBS) "MATCON" ("[%] % \\-> [%]'
 [C%] C% \\-> [C%]'
 [C%] C% \\-> [C%]'
 " "Replace all elements of [F%] by F%.
 " "Replace all elements of [F%] by F%.
 " "35CAE") "METREDIM" ("[F%] {#n #m} \\-> [F%]'
 " "35CAE") "METREDIM" ("[F%] {#n #m} \\-> [F%]'
@@ -1878,9 +1872,8 @@ ZERO works as well.
 " "6480B") "COMPN" ("obn..ob1 #n #prolog \\-> comp
 " "6480B") "COMPN" ("obn..ob1 #n #prolog \\-> comp
 " "" "05331") "{}N" ("obn..ob1 #n \\-> { obn..ob1 }
 " "" "05331") "{}N" ("obn..ob1 #n \\-> { obn..ob1 }
 " "" "05459") "::N" ("ob1..obn #n \\-> :: ob1..obn ;
 " "" "05459") "::N" ("ob1..obn #n \\-> :: ob1..obn ;
-" "" "05445") "SYMBN" ("ob1..obn #n \\-> symb
-" "Build a symbolic object.
-" "0546D") "SYMBN:" ("ob1..obn #n \\-> symb
+" "" "05445") "SYMBN" ("ob1..obn #n \\-> sym
+" "" "0546D") "SYMBN:" ("ob1..obn #n \\-> symb
 " "Does 'R, SWAP#1+ then SYMBN. Creates a
 " "Does 'R, SWAP#1+ then SYMBN. Creates a
 symbolic from the meta in the stack and the
 symbolic from the meta in the stack and the
 next object in the runstream. This object is
 next object in the runstream. This object is
@@ -1888,9 +1881,7 @@ added to the end of the symbolic.
 " "54CEF" :U) "top&Cr" ("meta1 meta2 \\-> symb
 " "54CEF" :U) "top&Cr" ("meta1 meta2 \\-> symb
 " "Does top& then <REF>SYMBN: .
 " "Does top& then <REF>SYMBN: .
 " "63F01") "ONESYMBN" ("ob1..obn #n \\-> symb
 " "63F01") "ONESYMBN" ("ob1..obn #n \\-> symb
-" "" "5E661" :U) "EXTN" ("ob1..obn #n \\-> u
-" "Builds a unit object.
-" "05481") "P{}N" ("ob1..obn #n \\-> {}
+" "" "5E661" :U) "P{}N" ("ob1..obn #n \\-> {}
 " "Build list with possible garbage collection.
 " "Build list with possible garbage collection.
 " "5E0DA") "P::N" ("ob1..obn #n \\-> seco
 " "5E0DA") "P::N" ("ob1..obn #n \\-> seco
 " "Build seco with possible garbage collection.
 " "Build seco with possible garbage collection.
@@ -1949,17 +1940,12 @@ CK1&Dispatch, etc. #5 is returned.
 " "5E8DE" :U) "infarg?" ("seco \\-> seco flag
 " "5E8DE" :U) "infarg?" ("seco \\-> seco flag
 " "Is first command in secondary CKINFARGS?
 " "Is first command in secondary CKINFARGS?
 " "5E9A7" :U) "dup" ("meta \\-> meta meta
 " "5E9A7" :U) "dup" ("meta \\-> meta meta
-" "" "5E35C" :U) "NDROP" ("meta \\->
-" "Should be called drop.
-" "0326E") "DROPNDROP" ("meta ob \\->
-" "Should be called DROPdrop.
-" "63FA6") "N+1DROP" ("ob meta \\->
-" "Should be called dropDROP.
-" "62F75") "#1+NDROP" ("ob meta \\->
-" "Should be called dropDROP.
-" "62F75") "NDROPFALSE" ("meta \\-> F
-" "Should be called dropFALSE.
-" "169A5") "psh" ("meta1 meta2 \\-> meta2 meta1
+" "" "5E35C" :U) "NDROP" ("1..n #n \\->
+" "" "0326E") "DROPNDROP" ("1..n #n ob \\->
+" "" "63FA6") "N+1DROP" ("ob 1..n #n \\->
+" "" "62F75") "#1+NDROP" ("ob 1..n #n \\->
+" "" "62F75") "NDROPFALSE" ("ob1..obn #n \\-> F
+" "" "169A5") "psh" ("meta1 meta2 \\-> meta2 meta1
 " "Should be called swap.
 " "Should be called swap.
 " "5EB1C") "rot" ("meta1 meta2 meta3 \\-> meta2 meta3 meta1
 " "5EB1C") "rot" ("meta1 meta2 meta3 \\-> meta2 meta3 meta1
 " "" "5EB58" :UBS) "unrot" ("meta1 meta2 meta3 \\-> meta3 meta1 meta2
 " "" "5EB58" :UBS) "unrot" ("meta1 meta2 meta3 \\-> meta3 meta1 meta2
@@ -1988,17 +1974,13 @@ be called swapDROP.
 " "" "5E3AC") "overev&" ("meta1 meta2 meta3 \\-> meta2&meta1 meta3
 " "" "5E3AC") "overev&" ("meta1 meta2 meta3 \\-> meta2&meta1 meta3
 " "" "5E843" :U) "2top&" ("meta1 meta2 meta3 \\-> meta1&meta2&meta3
 " "" "5E843" :U) "2top&" ("meta1 meta2 meta3 \\-> meta1&meta2&meta3
 " "" "5E490" :U) "top&pshtop&" ("meta1 meta2 meta3 \\-> meta2&meta3&meta1
 " "" "5E490" :U) "top&pshtop&" ("meta1 meta2 meta3 \\-> meta2&meta3&meta1
-" "" "5B861" :U) "SWP1+" ("meta ob \\-> meta&ob
-" "" "62904") "SWAP#1+" ("meta ob \\-> meta&ob
-" "" "62904") "DUP#1+PICK" ("ob&meta \\-> ob&meta ob
+" "" "5B861" :U) "DUP#1+PICK" ("n..1 #n \\-> n..1 #n n
 " "" "6119E") "pick1" ("ob meta \\-> ob meta ob
 " "" "6119E") "pick1" ("ob meta \\-> ob meta ob
 " "" "5FC24" :U) "get1" ("ob meta \\-> meta ob
 " "" "5FC24" :U) "get1" ("ob meta \\-> meta ob
 " "" "61305") "OVER#2+UNROL" ("meta ob \\-> ob meta
 " "" "61305") "OVER#2+UNROL" ("meta ob \\-> ob meta
 " "" "63105") "pshm1" ("meta ob \\-> ob #1 meta
 " "" "63105") "pshm1" ("meta ob \\-> ob #1 meta
 " "" "5E3E8" :U) "psh1top&" ("meta ob \\-> ob&meta
 " "" "5E3E8" :U) "psh1top&" ("meta ob \\-> ob&meta
-" "" "5E401") "#1-SWAP" ("meta&ob \\-> meta ob
-" "" "5E4A9") "pull" ("meta&ob \\-> meta ob
-" "" "5E4A9") "pulldrop" ("meta&ob \\-> meta
+" "" "5E401") "pulldrop" ("meta&ob \\-> meta
 " "" "5EAF4" :U) "pullpshm1" ("meta&ob \\-> ob #1 meta
 " "" "5EAF4" :U) "pullpshm1" ("meta&ob \\-> ob #1 meta
 " "" "5E6BB" :U) "pullrev" ("ob&meta \\-> meta ob
 " "" "5E6BB" :U) "pullrev" ("ob&meta \\-> meta ob
 " "" "5E4BD") "pulldroppull" ("meta&ob1&ob2 \\-> meta ob1
 " "" "5E4BD") "pulldroppull" ("meta&ob1&ob2 \\-> meta ob1
@@ -2102,8 +2084,7 @@ are changed to LAM_'dvar. (meta1 can be #0).
 " "" "56183" :U) "2Repl-1" ("meta1 meta2 \\-> %-1 #1
 " "" "56183" :U) "2Repl-1" ("meta1 meta2 \\-> %-1 #1
 " "" "561D8" :U) "DropRepl0" ("meta ob \\-> %0 #1
 " "" "561D8" :U) "DropRepl0" ("meta ob \\-> %0 #1
 " "" "5643A" :U) "Repl0ABND" ("meta \\-> %0
 " "" "5643A" :U) "Repl0ABND" ("meta \\-> %0
-" "" "5499F" :U) "SYMBN" ("ob1..obn #n \\-> sym
-" "" "0546D") "Cr" ("ob1..obn #n -> symb
+" "" "5499F" :U) "Cr" ("ob1..obn #n -> symb
 " "Does 'R, SWAP#1+ then <REF>SYMBN . Creates a
 " "Does 'R, SWAP#1+ then <REF>SYMBN . Creates a
 symbolic from the meta in the stack and the
 symbolic from the meta in the stack and the
 next object in the runstream. This object is
 next object in the runstream. This object is
@@ -2910,17 +2891,13 @@ ob #0 \\-> #0
 " "" "61099") "DUPPICK" ("n..1 #n \\-> n..1 #n n-1
 " "" "61099") "DUPPICK" ("n..1 #n \\-> n..1 #n n-1
 " "" "630DD") "2DUPSWAP" ("1 2 \\-> 1 2 2 1
 " "" "630DD") "2DUPSWAP" ("1 2 \\-> 1 2 2 1
 " "" "611F9") "DUP3PICK" ("1 2 \\-> 1 2 2 1
 " "" "611F9") "DUP3PICK" ("1 2 \\-> 1 2 2 1
-" "" "611F9") "DUP#1+PICK" ("n..1 #n \\-> n..1 #n n
-" "" "6119E") "DUP#2+PICK" ("n..1 #n \\-> n..1 #n n+1
+" "" "611F9") "DUP#2+PICK" ("n..1 #n \\-> n..1 #n n+1
 " "" "5FC24" :U) "2DUP" ("1 2 \\-> 1 2 1 2
 " "" "5FC24" :U) "2DUP" ("1 2 \\-> 1 2 1 2
-" "" "031AC") "DUP3PICK" ("1 2 \\-> 1 2 2 1
-" "" "611F9") "2DUPSWAP" ("1 2 \\-> 1 2 2 1
-" "" "611F9") "2DUP5ROLL" ("1 2 3 \\-> 2 3 2 3 1
+" "" "031AC") "2DUP5ROLL" ("1 2 3 \\-> 2 3 2 3 1
 " "" "63C40") "NDUP" ("1..n #n \\-> 1..n 1..n
 " "" "63C40") "NDUP" ("1..n #n \\-> 1..n 1..n
 " "" "031D9") "DROP" ("1 \\->
 " "" "031D9") "DROP" ("1 \\->
 " "" "03244") "DROPDUP" ("1 2 \\-> 1 1
 " "" "03244") "DROPDUP" ("1 2 \\-> 1 1
-" "" "627A7") "DROPNDROP" ("1..n #n ob \\->
-" "" "63FA6") "DROPSWAP" ("1 2 3 \\-> 2 1
+" "" "627A7") "DROPSWAP" ("1 2 3 \\-> 2 1
 " "" "6270C") "XYZ>Y" ("1 2 3 \\-> 2
 " "" "6270C") "XYZ>Y" ("1 2 3 \\-> 2
 " "" "62726") "ROT2DROP" ("1 2 3 \\-> 2
 " "" "62726") "ROT2DROP" ("1 2 3 \\-> 2
 " "" "62726") "DROPSWAPDROP" ("1 2 3 \\-> 2
 " "" "62726") "DROPSWAPDROP" ("1 2 3 \\-> 2
@@ -2934,10 +2911,7 @@ ob #0 \\-> #0
 " "" "60F7E") "5DROP" ("1..5 \\->
 " "" "60F7E") "5DROP" ("1..5 \\->
 " "" "60F72") "6DROP" ("1..6 \\->
 " "" "60F72") "6DROP" ("1..6 \\->
 " "" "60F66") "7DROP" ("1..7 \\->
 " "" "60F66") "7DROP" ("1..7 \\->
-" "" "60F54") "NDROP" ("1..n #n \\->
-" "" "0326E") "N+1DROP" ("ob 1..n #n \\->
-" "" "62F75") "#1+NDROP" ("ob 1..n #n \\->
-" "" "62F75") "RESETDEPTH" ("ob1..obn obn+1..obx #n \\-> ob1..obn
+" "" "60F54") "RESETDEPTH" ("ob1..obn obn+1..obx #n \\-> ob1..obn
 " "Drops all but #n levels of the stack. 
 " "Drops all but #n levels of the stack. 
 " "4B710") "DEPTH" ("1..n \\-> 1..n #n
 " "4B710") "DEPTH" ("1..n \\-> 1..n #n
 " "" "0314C") "UStackDepth" ("\\-> #
 " "" "0314C") "UStackDepth" ("\\-> #
@@ -2957,19 +2931,14 @@ ob #0 \\-> #0
 " "" "60F33") "SWAPROT" ("1 2 3 \\-> 3 2 1
 " "" "60F33") "SWAPROT" ("1 2 3 \\-> 3 2 1
 " "" "60F33") "XYZW>YWZX" ("1 2 3 4 \\-> 2 4 3 1
 " "" "60F33") "XYZW>YWZX" ("1 2 3 4 \\-> 2 4 3 1
 " "" "63C2C") "SWAP4ROLL" ("1 2 3 4 \\-> 2 4 3 1
 " "" "63C2C") "SWAP4ROLL" ("1 2 3 4 \\-> 2 4 3 1
-" "" "63C2C") "DUPUNROT" ("1 2 \\-> 2 1 2
-" "" "61380") "SWAPOVER" ("1 2 \\-> 2 1 2
-" "" "61380") "SWAP3PICK" ("1 2 3 \\-> 1 3 2 1
+" "" "63C2C") "SWAP3PICK" ("1 2 3 \\-> 1 3 2 1
 " "" "63C54") "2SWAP" ("1 2 3 4 \\-> 3 4 1 2
 " "" "63C54") "2SWAP" ("1 2 3 4 \\-> 3 4 1 2
 " "" "62001") "ROT" ("1 2 3 \\-> 2 3 1
 " "" "62001") "ROT" ("1 2 3 \\-> 2 3 1
 " "" "03295") "ROTDUP" ("1 2 3 \\-> 2 3 1 1
 " "" "03295") "ROTDUP" ("1 2 3 \\-> 2 3 1 1
 " "" "62775") "ROT2DUP" ("1 2 3 \\-> 2 3 1 3 1
 " "" "62775") "ROT2DUP" ("1 2 3 \\-> 2 3 1 3 1
 " "" "62C7D") "XYZ>YZ" ("1 2 3 \\-> 2 3
 " "" "62C7D") "XYZ>YZ" ("1 2 3 \\-> 2 3
 " "" "60F21") "ROTDROP" ("1 2 3 \\-> 2 3
 " "" "60F21") "ROTDROP" ("1 2 3 \\-> 2 3
-" "" "60F21") "XYZ>Y" ("1 2 3 \\-> 2
-" "" "62726") "DROPSWAPDROP" ("1 2 3 \\-> 2
-" "" "62726") "ROT2DROP" ("1 2 3 \\-> 2
-" "" "62726") "XYZ>ZY" ("1 2 3 \\-> 3 2
+" "" "60F21") "XYZ>ZY" ("1 2 3 \\-> 3 2
 " "" "60F0E") "ROTDROPSWAP" ("1 2 3 \\-> 3 2
 " "" "60F0E") "ROTDROPSWAP" ("1 2 3 \\-> 3 2
 " "" "60F0E") "XYZ>YXZ" ("1 2 3 \\-> 2 1 3
 " "" "60F0E") "XYZ>YXZ" ("1 2 3 \\-> 2 1 3
 " "" "60EE7") "ROTSWAP" ("1 2 3 \\-> 2 1 3
 " "" "60EE7") "ROTSWAP" ("1 2 3 \\-> 2 1 3
@@ -3005,23 +2974,9 @@ ob #0 \\-> #0
 " "" "60FAC") "3UNROLL" ("1 2 3 \\-> 3 1 2
 " "" "60FAC") "3UNROLL" ("1 2 3 \\-> 3 1 2
 " "" "60FAC") "UNROT" ("1 2 3 \\-> 3 1 2
 " "" "60FAC") "UNROT" ("1 2 3 \\-> 3 1 2
 " "" "60FAC") "UNROTDUP" ("1 2 3 \\-> 3 1 2 1
 " "" "60FAC") "UNROTDUP" ("1 2 3 \\-> 3 1 2 1
-" "" "62CF5") "XYZ>ZX" ("1 2 3 \\-> 3 1
-" "" "6284B") "SWAPDROPSWAP" ("1 2 3 \\-> 3 1
-" "" "6284B") "UNROTDROP" ("1 2 3 \\-> 3 1
-" "" "6284B") "XYZ>Z" ("1 2 3 \\-> 3
-" "" "6112A") "ROTROT2DROP" ("1 2 3 \\-> 3
-" "" "6112A") "UNROT2DROP" ("1 2 3 \\-> 3
-" "" "6112A") "XYZ>ZYX" ("1 2 3 \\-> 3 2 1
-" "" "60F33") "SWAPROT" ("1 2 3 \\-> 3 2 1
-" "" "60F33") "UNROTSWAP" ("1 2 3 \\-> 3 2 1
-" "" "60F33") "XYZ>ZY" ("1 2 3 \\-> 3 2
-" "" "60F0E") "ROTDROPSWAP" ("1 2 3 \\-> 3 2
-" "" "60F0E") "UNROTSWAPDROP" ("1 2 3 \\-> 3 2
+" "" "62CF5") "UNROTSWAPDROP" ("1 2 3 \\-> 3 2
 " "" "60F0E") "UNROTOVER" ("1 2 3 \\-> 3 1 2 1
 " "" "60F0E") "UNROTOVER" ("1 2 3 \\-> 3 1 2 1
-" "" "6308D") "XYZ>ZXY" ("1 2 3 \\-> 3 1 2
-" "" "60FAC") "UNROT" ("1 2 3 \\-> 3 1 2
-" "" "60FAC") "3UNROLL" ("1 2 3 \\-> 3 1 2
-" "" "60FAC") "XYZW>WXYZ" ("1 2 3 4 \\-> 4 1 2 3
+" "" "6308D") "XYZW>WXYZ" ("1 2 3 4 \\-> 4 1 2 3
 " "" "6109E") "FOURUNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "6109E") "FOURUNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "6109E") "4UNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "6109E") "4UNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "6109E") "4UNROLLDUP" ("1 2 3 4 \\-> 4 1 2 3 3
 " "" "6109E") "4UNROLLDUP" ("1 2 3 4 \\-> 4 1 2 3 3
@@ -3045,8 +3000,6 @@ ob #0 \\-> #0
 " "" "032C2") "OVERDUP" ("1 2 \\-> 1 2 1 1
 " "" "032C2") "OVERDUP" ("1 2 \\-> 1 2 1 1
 " "" "62CCD") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "62CCD") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "62D31") "OVERSWAP" ("1 2 \\-> 1 1 2
 " "" "62D31") "OVERSWAP" ("1 2 \\-> 1 1 2
-" "" "62D31") "OVERSWAP" ("1 2 \\-> 1 1 2
-" "" "62D31") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "62D31") "OVER#2+UNROLL" ("1..n #n ob \\-> ob 1..n #n
 " "" "62D31") "OVER#2+UNROLL" ("1..n #n ob \\-> ob 1..n #n
 " "" "63105") "OVER5PICK" ("1 2 3 4 \\-> 1 2 3 4 3 1
 " "" "63105") "OVER5PICK" ("1 2 3 4 \\-> 1 2 3 4 3 1
 " "" "63C90") "2OVER" ("1 2 3 4 \\-> 1 2 3 4 1 2
 " "" "63C90") "2OVER" ("1 2 3 4 \\-> 1 2 3 4 1 2
@@ -3097,6 +3050,8 @@ stack.
 " "LAM 'dvar
 " "LAM 'dvar
 " "549DB" :U) "'IDPAR" ("\\-> id
 " "549DB" :U) "'IDPAR" ("\\-> id
 " "Puts ID PPAR unevaluated on the stack.
 " "Puts ID PPAR unevaluated on the stack.
+ --
+<REF>TEXT:Reserved|PPAR
 " "5127E" :U) "$>ID" ("$ \\-> ID
 " "5127E" :U) "$>ID" ("$ \\-> ID
 " "" "05B15") "DUP$>ID" ("$ \\-> $ ID
 " "" "05B15") "DUP$>ID" ("$ \\-> $ ID
 " "" "63295") "ID>LAM" ("id \\-> lam
 " "" "63295") "ID>LAM" ("id \\-> lam
@@ -3378,8 +3333,8 @@ library numbers.
 " "Generates \"Invalid Unit\" error.
 " "Generates \"Invalid Unit\" error.
 " "10EEA" :U) "CONSTUNITERR" ("Error B02h
 " "10EEA" :U) "CONSTUNITERR" ("Error B02h
 " "Generates \"Inconsistent Units\" error.
 " "Generates \"Inconsistent Units\" error.
-" "10EFA" :U) "SetIOPARerr" ("Error C12h
-" "Generates \"Invalid IOPAR\" error.
+" "10EFA" :U) "SetIOPARerr" ("\\->
+" "Throws the IOPAR error: \"Invalid IOPAR\".
 " "2EC34") "NOALARMERR" ("Error D04h
 " "2EC34") "NOALARMERR" ("Error D04h
 " "Generates \"nonexistent alarm\" error.
 " "Generates \"nonexistent alarm\" error.
 " "0CBAE" :U) "Sig?ErrJmp" ("# \\->
 " "0CBAE" :U) "Sig?ErrJmp" ("# \\->
@@ -3393,10 +3348,7 @@ Calls <REF>rstfmt1 and then errors out.
 F \\-> %0
 F \\-> %0
 " "Converts system flag to user flag, drops
 " "Converts system flag to user flag, drops
 current stream.
 current stream.
-" "5380E") "%0<>" ("% \\-> flag
-" "Can be used to change a user flag into a
-system flag. 
-" "2A7CF") "TRUE" ("\\-> T
+" "5380E") "TRUE" ("\\-> T
 " "" "03A81") "TrueTrue" ("\\-> T T
 " "" "03A81") "TrueTrue" ("\\-> T T
 " "" "0BBED") "TRUEFALSE" ("\\-> T F
 " "" "0BBED") "TRUEFALSE" ("\\-> T F
 " "" "634F7") "TrueFalse" ("\\-> T F
 " "" "634F7") "TrueFalse" ("\\-> T F
@@ -3413,8 +3365,7 @@ system flag.
 " "" "6210C") "2DROPFALSE" ("ob1 ob2 \\-> F
 " "" "6210C") "2DROPFALSE" ("ob1 ob2 \\-> F
 " "" "62B0B") "4DROPFALSE" ("ob1..ob4 \\-> F
 " "" "62B0B") "4DROPFALSE" ("ob1..ob4 \\-> F
 " "" "5F5E4" :U) "5DROPFALSE" ("ob1..ob5 \\-> F
 " "" "5F5E4" :U) "5DROPFALSE" ("ob1..ob5 \\-> F
-" "" "5F6B1" :U) "NDROPFALSE" ("ob1..obn #n \\-> F
-" "" "169A5") "SWAPTRUE" ("ob1 ob2 \\-> ob2 ob1 T
+" "" "5F6B1" :U) "SWAPTRUE" ("ob1 ob2 \\-> ob2 ob1 T
 " "" "4F1D8") "SWAPDROPTRUE" ("ob1 ob2 \\-> ob2 T
 " "" "4F1D8") "SWAPDROPTRUE" ("ob1 ob2 \\-> ob2 T
 " "" "21660") "XYZ>ZTRUE" ("ob1 ob2 ob3 \\-> ob3 T
 " "" "21660") "XYZ>ZTRUE" ("ob1 ob2 ob3 \\-> ob3 T
 " "" "62EB7") "COLATRUE" ("\\-> T
 " "" "62EB7") "COLATRUE" ("\\-> T
@@ -3826,7 +3777,8 @@ return stack body to stack.
 " "Like <REF>R>, but the return stack is not
 " "Like <REF>R>, but the return stack is not
 popped.
 popped.
 " "07012") "IDUP" ("\\->
 " "07012") "IDUP" ("\\->
-" "Pushes top body into return stack.
+" "Pushes interpreter pointer into the return
+stack. 
 " "0716B") "EVAL" ("ob \\->
 " "0716B") "EVAL" ("ob \\->
 " "Evaluates object.
 " "Evaluates object.
 " "06F8E") "COMPEVAL" ("comp \\->
 " "06F8E") "COMPEVAL" ("comp \\->
@@ -3960,10 +3912,7 @@ does COLA in the above one.
 and skips one obj in above stream.
 and skips one obj in above stream.
 " "" "633B2") "COLAskipcola" ("Drops rest of current stream,
 " "" "633B2") "COLAskipcola" ("Drops rest of current stream,
 skipcola in the above.
 skipcola in the above.
-" "" "283C4" :U) "IDUP" ("\\->
-" "Pushes interpreter pointer into the return
-stack. 
-" "0716B") "BEGIN" ("\\->
+" "" "283C4" :U) "BEGIN" ("\\->
 " "Pushes interpreter pointer into the return
 " "Pushes interpreter pointer into the return
 stack. 
 stack. 
 " "071A2") "AGAIN" ("\\->
 " "071A2") "AGAIN" ("\\->
@@ -4173,14 +4122,12 @@ list, else it is dropped.
 " "Gets parent directory.  Returns FALSE if
 " "Gets parent directory.  Returns FALSE if
 parent directory is HOME.
 parent directory is HOME.
 " "08309" :U) "SYSRRP?" ("rrp \\-> flag
 " "08309" :U) "SYSRRP?" ("rrp \\-> flag
-" "Is the directory the HOME directory?
-" "08DD4" :U) "CONTEXT@" ("\\-> rrp
+" "Is rrp HOME?
+" "08DD4") "CONTEXT@" ("\\-> rrp
 " "Recalls current directory.
 " "Recalls current directory.
 " "08D5A") "CONTEXT!" ("rrp \\->
 " "08D5A") "CONTEXT!" ("rrp \\->
 " "Sets new current directory.
 " "Sets new current directory.
-" "08D08") "SYSRRP?" ("rrp \\-> flag
-" "Is rrp HOME?
-" "08DD4") "STOPSIGN@" ("\\-> rrp
+" "08D08") "STOPSIGN@" ("\\-> rrp
 " "Recalls last directory.
 " "Recalls last directory.
 " "08D82" :U) "STOPSIGN!" ("rrp \\->
 " "08D82" :U) "STOPSIGN!" ("rrp \\->
 " "Stores new last directory.
 " "Stores new last directory.
@@ -4303,11 +4250,7 @@ valid.
 " "Returns tick count.
 " "Returns tick count.
 " "0EB81") "CLKTICKS" ("\\-> hxs
 " "0EB81") "CLKTICKS" ("\\-> hxs
 " "Returns tick count.
 " "Returns tick count.
-" "0EB81") "TIMESTR" ("%dt %tm \\-> \"dy dt tm\"
-" "Returns string representation of time, using
-current format.  Example:
- \"WED 06/24/98  10:00:45A\"
-" "0D304") "Date>d$" ("%date \\-> $
+" "0EB81") "Date>d$" ("%date \\-> $
 " "Returns string representation of date, using
 " "Returns string representation of date, using
 current format.
 current format.
 " "0CFD9") "Date>wd$" ("%date \\-> $weekday
 " "0CFD9") "Date>wd$" ("%date \\-> $weekday
@@ -4664,10 +4607,7 @@ Editline.
 " "" "2EAE2") "DOOPENIO" ("
 " "" "2EAE2") "DOOPENIO" ("
 " "" "2EB37") "OpenIO" ("
 " "" "2EB37") "OpenIO" ("
 " "" "2EB62") "OpenIOPrt" ("
 " "" "2EB62") "OpenIOPrt" ("
-" "" "3187C") "APNDCRLF" ("$ \\-> $'
-" "Appends carriage return and line feed to
-string.
-" "2E4DC") "docr" ("
+" "" "3187C") "docr" ("
 " "" "31854") "IOCheckReal" ("
 " "" "31854") "IOCheckReal" ("
 " "" "2EC25") "StdIOPAR" ("\\-> {}
 " "" "2EC25") "StdIOPAR" ("\\-> {}
 " "Default IOPAR: { 9600 0 0 0 3 1 }.
 " "Default IOPAR: { 9600 0 0 0 3 1 }.
@@ -4676,9 +4616,7 @@ string.
 " "2EA4F") "StoIOPAR" ("{} \\->
 " "2EA4F") "StoIOPAR" ("{} \\->
 " "STO the list of IO parameters in the HOME
 " "STO the list of IO parameters in the HOME
 directory in the variable IOPAR.
 directory in the variable IOPAR.
-" "2E9CB") "SetIOPARerr" ("\\->
-" "Throws the IOPAR error: \"Invalid IOPAR\".
-" "2EC34") "StdPRTPAR" ("
+" "2E9CB") "StdPRTPAR" ("
 " "" "31F4A") "StoPRTPAR" ("
 " "" "31F4A") "StoPRTPAR" ("
 " "" "31F7D") "GetChkPRTPAR" ("
 " "" "31F7D") "GetChkPRTPAR" ("
 " "" "3205C") "OUTUART" ("
 " "" "3205C") "OUTUART" ("
@@ -4843,9 +4781,6 @@ CK1NOLASTWD, and explodes the meta again.
 " "1884D") "0LASTOWDOB!" ("\\->
 " "1884D") "0LASTOWDOB!" ("\\->
 " "Clears command save by last CK<n> command.
 " "Clears command save by last CK<n> command.
 <REF>CK0
 <REF>CK0
-" "1884D") "0LASTOWDOB!" ("\\->
-" "Clears command save by last CK<n> command.
-<REF>CK0
 " "1884D") "AtUserStack" ("\\->
 " "1884D") "AtUserStack" ("\\->
 " " :: CK0NOLASTWD 0LASTOWDOB! ;
 " " :: CK0NOLASTWD 0LASTOWDOB! ;
 " "40BC9") "CK1NoBlame" ("\\->
 " "40BC9") "CK1NoBlame" ("\\->
@@ -4867,10 +4802,6 @@ Any other first command is also skipped!
 ob \\->
 ob \\->
 " "<REF>EvalNoCK with the next object in the
 " "<REF>EvalNoCK with the next object in the
 runstream as argument.
 runstream as argument.
-" "18F6A" :U) "EvalNoCK:" ("RS
-ob \\->
-" "<REF>EvalNoCK with the next object in the
-runstream as argument.
 " "18F6A" :U) "'EvalNoCK:_sup" ("RS
 " "18F6A" :U) "'EvalNoCK:_sup" ("RS
 ob \\->
 ob \\->
 " "<REF>EvalNoCK with the next object in the
 " "<REF>EvalNoCK with the next object in the
@@ -5281,13 +5212,13 @@ SetThisRow.
 nothing. If Track? then ?DoTrackAct@. If
 nothing. If Track? then ?DoTrackAct@. If
 Rebuild? then SetThisRow.
 Rebuild? then SetThisRow.
 " "3866F") "?DispMenu" ("\\->
 " "3866F") "?DispMenu" ("\\->
-" "Redisplay the menu now if no key is waiting
+" "Redisplays the menu now if no key is waiting
 in the buffer.  Even better is this:
 in the buffer.  Even better is this:
  :: DA3OK?NOTIT ?DispMenu ;
  :: DA3OK?NOTIT ?DispMenu ;
 " "3A1CA") "DispMenu.1" ("\\->
 " "3A1CA") "DispMenu.1" ("\\->
-" "Displays the menu immediately.
+" "Displays menu now.
 " "3A1FC") "DispMenu" ("\\->
 " "3A1FC") "DispMenu" ("\\->
-" " :: DispMenu.1 SetDAsValid ;
+" ":: DispMenu.1 SetDAsValid ;
 " "3A1E8") "Grob>Menu" ("#col grob \\->
 " "3A1E8") "Grob>Menu" ("#col grob \\->
 " "Displays grob as menu label.
 " "Displays grob as menu label.
 " "3A297") "Str>Menu" ("#col $ \\->
 " "3A297") "Str>Menu" ("#col $ \\->
@@ -5808,15 +5739,7 @@ immediately, without waiting for the current
 command to finish.
 command to finish.
 " "386A1") "DispEditLine" ("\\->
 " "386A1") "DispEditLine" ("\\->
 " "Just calls DispCommandLine.
 " "Just calls DispCommandLine.
-" "3A00D") "?DispMenu" ("\\->
-" "Redisplays the menu now if no key is waiting
-in the buffer.  Even better is this:
- :: DA3OK?NOTIT ?DispMenu ;
-" "3A1CA") "DispMenu.1" ("\\->
-" "Displays menu now.
-" "3A1FC") "DispMenu" ("\\->
-" ":: DispMenu.1 SetDAsValid ;
-" "3A1E8") "?DispStack" ("\\->
+" "3A00D") "?DispStack" ("\\->
 " "Redisplays the stack now if necessary.
 " "Redisplays the stack now if necessary.
 " "39B85") "?DispStatus" ("\\->
 " "39B85") "?DispStatus" ("\\->
 " "Redisplays the status area now if necessary.
 " "Redisplays the status area now if necessary.
@@ -6332,19 +6255,7 @@ Does NumbMode and EQ, then Box/StdLabel.
 Tests the system flag specified, does
 Tests the system flag specified, does
 Std/BoxLabel.
 Std/BoxLabel.
  Usage: :: FStd/BoxLbl: $ #flag ;
  Usage: :: FStd/BoxLbl: $ #flag ;
-" "3ECD0" :U) "Grob>Menu" ("#col grob \\->
-" "Displays grob as menu label.
-" "3A297") "Str>Menu" ("#col $ \\->
-" "Displays string as menu label.
-" "3A2B5") "Id>Menu" ("#col id \\->
-" "Displays id as menu label.
-" "3A2DD") "Seco>Menu" ("#col :: \\->
-" "Does EVAL then DoLabel.
-" "3A2C9") "DoLabel" ("#col ob \\->
-" "If ob is of one of the supported types,
-displays a menu label. If not, generates a
-\"Bad Argument Type\" error.
-" "41904") "StdLabelDef" ("#col grob \\->
+" "3ECD0" :U) "StdLabelDef" ("#col grob \\->
 #col $ \\->
 #col $ \\->
 #col id \\->
 #col id \\->
 #col :: \\->
 #col :: \\->
@@ -6375,14 +6286,7 @@ The grob is centered around #x and the to is
 put at #y. #w represents the maximum width of
 put at #y. #w represents the maximum width of
 the grob created. If the text is wider, it is
 the grob created. If the text is wider, it is
 truncated.  Bangtype.
 truncated.  Bangtype.
-" "1215E") "MakeLabel" ("$ #w #x grob \\-> grob'
-" "Inserts $ into grob using CENTER$3x5 with
-y=5.
-" "3A4AB") "'IDPAR" ("\\-> id
-" "Puts ID PPAR unevaluated on the stack.
- --
-<REF>TEXT:Reserved|PPAR
-" "5127E" :U) "CHECKPICT" ("\\->
+" "1215E") "CHECKPICT" ("\\->
 " "Checks size of GBUFF. If it is smaller than
 " "Checks size of GBUFF. If it is smaller than
 131x64 sets GBUFF back to its default size
 131x64 sets GBUFF back to its default size
 (131x64).
 (131x64).
@@ -6545,12 +6449,7 @@ coordinates.  Inverse operation is DOC>PX.
 " "Converts a complex coordinate point into list
 " "Converts a complex coordinate point into list
 of two HXS numbers.  Inverse operation is
 of two HXS numbers.  Inverse operation is
 DOPX>C. 
 DOPX>C. 
-" "4F179") "BANGARRY" ("el # M \\-> M'
-" "Puts el at index # of matrix M.
-" "1DBB0" :UBS) "SWAPROWS" ("M % %' \\-> M'
-" "SWAP two rows in matrix.  Internal version of
-xRSWP. 
-" "3745E") "xABS" ("x \\-> x'
+" "4F179") "xABS" ("x \\-> x'
 " "Absolute Value Function
 " "Absolute Value Function
  --
  --
 Returns the absolute value of
 Returns the absolute value of
@@ -7706,51 +7605,29 @@ See the IF and IFERR keyword
 entries for syntax information.
 entries for syntax information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "22FB5" :Usr) "xEND" ("1/0 \\->
+" "22FB5" :Usr) "xEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
 and indefinite loop structures.
 and indefinite loop structures.
-
-See the IF, CASE, IFERR, DO, and
-WHILE keyword entries for syntax
-information.
  --
  --
-Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "236B9" :Usr) "xENDDO" ("1/0 \\->
-" "END Cmd
- --
-Ends conditional, error-trapping,
-and indefinite loop structures.
-
 See the IF, CASE, IFERR, DO, and
 See the IF, CASE, IFERR, DO, and
 WHILE keyword entries for syntax
 WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "236B9" :Usr) "xEND" ("
+" "23694" :Usr) "xENDDO" ("1/0 \\->
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
 and indefinite loop structures.
 and indefinite loop structures.
- --
-See the IF, CASE, IFERR, DO, and
-WHILE keyword entries for syntax
-information.
- --
-Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "22FD5" :Usr) "xIFEND" ("
-" "END Cmd
- --
-Ends conditional, error-trapping,
-and indefinite loop structures.
- --
+
 See the IF, CASE, IFERR, DO, and
 See the IF, CASE, IFERR, DO, and
 WHILE keyword entries for syntax
 WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "22FD5" :Usr) "xEND" ("
+" "236B9" :Usr) "xIFEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -7761,7 +7638,7 @@ WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "23694" :Usr) "xWHILEEND" ("
+" "22FD5" :Usr) "xWHILEEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -8416,14 +8293,12 @@ Related: COLCT,EXPAN,QUAD,SHOW,SOLVE
 " "20A93" :Usr) "x_" ("
 " "20A93" :Usr) "x_" ("
 " "" "1FAEB" :Usr) "xFORMUNIT" ("
 " "" "1FAEB" :Usr) "xFORMUNIT" ("
 " "" "1FAEB" :Usr) "x'" ("
 " "" "1FAEB" :Usr) "x'" ("
-" "" "23654" :Usr) "x'" ("
 " "" "23679" :Usr) "xENDTIC" ("
 " "" "23679" :Usr) "xENDTIC" ("
 " "" "23679" :Usr) "x\\<<" ("
 " "" "23679" :Usr) "x\\<<" ("
 " "" "2361E" :Usr) "x<<" ("
 " "" "2361E" :Usr) "x<<" ("
 " "" "2361E" :Usr) "x\\>>" ("
 " "" "2361E" :Usr) "x\\>>" ("
-" "" "23639" :Usr) "x>>" ("
-" "" "23639" :Usr) "x\\>>" ("
-" "" "235FE" :Usr) "x>>ABND" ("
+" "" "235FE" :Usr) "x>>" ("
+" "" "23639" :Usr) "x>>ABND" ("
 " "" "235FE" :Usr) "xKERRM" ("\\-> msg
 " "" "235FE" :Usr) "xKERRM" ("\\-> msg
 " "Kermit Error Message Cmd
 " "Kermit Error Message Cmd
  --
  --
@@ -10349,26 +10224,15 @@ Related: \\.d,\\.S,\\GS
 Displays the stack display.
 Displays the stack display.
  --
  --
 Related: PICTURE,PVIEW
 Related: PICTURE,PVIEW
-" "1E606" :Usr) "xTHEN" ("0/1 \\->
-" "THEN Cmd
- --
-Starts the true-clause in conditional
-or error-trapping structure
- --
-Related: CASE,ELSE,END,IFERR
-" "22EFA" :Usr) "xTHEN" ("
-" "THEN in a CASE statement.
+" "1E606" :Usr) "xTHEN" ("
+" "THEN in an ON ERROR construct.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
-" "237A8" :Usr) "xTHENCASE" ("
+" "2371F" :Usr) "xTHENCASE" ("
 " "THEN in a CASE statement.
 " "THEN in a CASE statement.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
-" "237A8" :Usr) "xTHEN" ("
-" "THEN in an ON ERROR construct.
- --
-Related: CASE,ELSE,END,IFERR
-" "2371F" :Usr) "xERRTHEN" ("
+" "237A8" :Usr) "xERRTHEN" ("
 " "THEN in an ON ERROR construct.
 " "THEN in an ON ERROR construct.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
@@ -11138,18 +11002,10 @@ Tests if two objects are equal.
 Flags: -3
 Flags: -3
  --
  --
 Related: SAME,TYPE,<,\\<=,>,\\>=, ==
 Related: SAME,TYPE,<,\\<=,>,\\>=, ==
-" "1EA9D" :Usr) "x\\->" ("ob1 .. obn \\->
-" "Create Local Variables Cmd
- --
-Creates local variables.
- obj1 ... objn \\->
- --
-Syntax:
- \\-> name1 name2 ... nameN \\<< prog \\>>
- \\-> name1 name2 ... nameN 'Expr'
- --
-Related: DEFINE,STO
-" "234C1" :Usr) "xRPN->" ("ob1 .. obn \\->
+" "1EA9D" :Usr) "x\\->" ("
+" "Create local variable comand.
+<REF>xRPN->
+" "22FEB" :Usr) "xRPN->" ("ob1 .. obn \\->
 " "Create Local Variables Cmd
 " "Create Local Variables Cmd
  --
  --
 Creates local variables.
 Creates local variables.
@@ -11160,10 +11016,7 @@ Syntax:
  \\-> name1 name2 ... nameN 'Expr'
  \\-> name1 name2 ... nameN 'Expr'
  --
  --
 Related: DEFINE,STO
 Related: DEFINE,STO
-" "234C1" :Usr) "x\\->" ("
-" "Create local variable comand.
-<REF>xRPN->
-" "22FEB" :Usr) "xALG->" ("
+" "234C1" :Usr) "xALG->" ("
 " "Create local variable comand.
 " "Create local variable comand.
 <REF>xRPN->
 <REF>xRPN->
 " "22FEB" :Usr) "x!" ("x \\-> x'
 " "22FEB" :Usr) "x!" ("x \\-> x'

+ 115 - 334
data/sysrpl-data.49G.el

@@ -1,5 +1,5 @@
 
 
-#s(hash-table size 8311 test eql rehash-size 1.5 rehash-threshold 0.8 data ("any" ("0d 0h
+#s(hash-table size 8311 test equal rehash-size 1.5 rehash-threshold 0.8 data ("any" ("0d 0h
 " "" "33107" :NOSDIAG) "ZERO" ("0d 0h
 " "" "33107" :NOSDIAG) "ZERO" ("0d 0h
 " "" "33107" :NOSDIAG) "BINT0" ("0d 0h
 " "" "33107" :NOSDIAG) "BINT0" ("0d 0h
 " "" "33107" :NOSDIAG) "MEMERR" ("1d 1h
 " "" "33107" :NOSDIAG) "MEMERR" ("1d 1h
@@ -479,15 +479,14 @@
 " "" "03FEF" :UBS :NOSDIAG) "TYPEMATRIX" ("9862d 2686h
 " "" "03FEF" :UBS :NOSDIAG) "TYPEMATRIX" ("9862d 2686h
 " "" "03FF9" :UBS :NOSDIAG) "TYPEREAL" ("10547d 2933h
 " "" "03FF9" :UBS :NOSDIAG) "TYPEREAL" ("10547d 2933h
 " "" "03F8B") "TYPEEREL" ("10581d 2955h
 " "" "03F8B") "TYPEEREL" ("10581d 2955h
-" "" "03FDB" :UBS) "TYPEIDNT" ("10568d 2948h
-" "" "03FA9") "TYPECMP" ("10615d 2977h
+" "" "03FDB" :UBS) "TYPEIDNT" ("11848d 2E48h
+" "" "03FA9" :UBS :NOSDIAG) "TYPECMP" ("10615d 2977h
 " "" "03F95" :UBS) "TYPELIST" ("10868d 2A74h
 " "" "03F95" :UBS) "TYPELIST" ("10868d 2A74h
 " "" "03F9F" :UBS) "TYPERRP" ("10902d 2A96h
 " "" "03F9F" :UBS) "TYPERRP" ("10902d 2A96h
 " "" "03FC7" :UBS) "TYPESYMB" ("10936d 2AB8h
 " "" "03FC7" :UBS) "TYPESYMB" ("10936d 2AB8h
 " "" "03FBD" :UBS) "TYPEEXT" ("10970d 2ADAh
 " "" "03FBD" :UBS) "TYPEEXT" ("10970d 2ADAh
 " "" "03FE5" :UBS) "TYPECOL" ("11677d 2D9Dh
 " "" "03FE5" :UBS) "TYPECOL" ("11677d 2D9Dh
-" "" "03FB3" :UBS) "TYPEIDNT" ("11848d 2E48h
-" "" "03FA9" :UBS :NOSDIAG) "TYPELAM" ("11885d 2E6Dh
+" "" "03FB3" :UBS) "TYPELAM" ("11885d 2E6Dh
 " "" "03FD1" :UBS) "#5B11" ("23313d 5B11h
 " "" "03FD1" :UBS) "#5B11" ("23313d 5B11h
 " "" "3C8DF" :UBS :NOSDIAG) "SYMRRANY" ("41232d A110h
 " "" "3C8DF" :UBS :NOSDIAG) "SYMRRANY" ("41232d A110h
 " "" "3D50D" :UBS :NOSDIAG) "SYMRSYMANY" ("41376d A1A0h
 " "" "3D50D" :UBS :NOSDIAG) "SYMRSYMANY" ("41376d A1A0h
@@ -616,8 +615,8 @@ otherwise returns #-#'.
 " "" "35830") "#1+SWAP" ("ob # \\-> #+1 ob
 " "" "35830") "#1+SWAP" ("ob # \\-> #+1 ob
 " "" "35E61") "#1+ROT" ("ob ob' # \\-> ob' #+1 ob
 " "" "35E61") "#1+ROT" ("ob ob' # \\-> ob' #+1 ob
 " "" "2F222") "#1-DUP" ("# \\-> #-1 #-1
 " "" "2F222") "#1-DUP" ("# \\-> #-1 #-1
-" "" "35841") "pull" ("ob # \\-> #-1 ob
-" "" "28071") "#1-SWAP" ("ob # \\-> #-1 ob
+" "" "35841") "pull" ("meta&ob \\-> meta ob
+" "" "28071") "#1-SWAP" ("meta&ob \\-> meta ob
 " "" "28071") "#1-ROT" ("ob ob' # \\-> ob' #-1 ob
 " "" "28071") "#1-ROT" ("ob ob' # \\-> ob' #-1 ob
 " "" "3601B") "#1-UNROT" ("ob ob' # \\-> #-1 ob ob'
 " "" "3601B") "#1-UNROT" ("ob ob' # \\-> #-1 ob ob'
 " "" "281D5") "#1-1SWAP" ("# \\-> 1 #-1
 " "" "281D5") "#1-1SWAP" ("# \\-> 1 #-1
@@ -629,8 +628,8 @@ otherwise returns #-#'.
 " "" "3674D") "2DUP#+" ("# #' \\-> # #' #+#'
 " "" "3674D") "2DUP#+" ("# #' \\-> # #' #+#'
 " "" "3674D") "DROP#1-" ("# ob \\-> #-1
 " "" "3674D") "DROP#1-" ("# ob \\-> #-1
 " "" "3683D") "SWAP#-" ("# #' \\-> #'-#
 " "" "3683D") "SWAP#-" ("# #' \\-> #'-#
-" "" "357BB") "SWP1+" ("# ob \\-> ob #+1
-" "" "3592B") "SWAP#1+" ("# ob \\-> ob #+1
+" "" "357BB") "SWP1+" ("meta ob \\-> meta&ob
+" "" "3592B") "SWAP#1+" ("meta ob \\-> meta&ob
 " "" "3592B") "'RSWP1+" ("# \\-> nob #+1
 " "" "3592B") "'RSWP1+" ("# \\-> nob #+1
 " "nob is the next object in the runstream.
 " "nob is the next object in the runstream.
 " "29786" :UBS) "SWAP#1+SWAP" ("# ob \\-> #+1 ob
 " "29786" :UBS) "SWAP#1+SWAP" ("# ob \\-> #+1 ob
@@ -1393,10 +1392,7 @@ position to the end (exclusive).
 " "Returns bint with ASCII code of character at
 " "Returns bint with ASCII code of character at
 the specified position.
 the specified position.
 " "2A5CA") "EXPAND" ("hxs #nibs \\-> hxs'
 " "2A5CA") "EXPAND" ("hxs #nibs \\-> hxs'
-" "Appends null characters to the string. Since
-refers to the number of nibbles, you must
-use a number twice as large as the number
-of null characters you want appended.
+" "Appends #nibs zero nibbles to the hxs.
 " "34C82") "&$" ("$ $' \\-> $+$'
 " "34C82") "&$" ("$ $' \\-> $+$'
 " "Concatenates two strings.
 " "Concatenates two strings.
 " "05193") "&$SWAP" ("ob $ $' \\-> $+$' ob
 " "05193") "&$SWAP" ("ob $ $' \\-> $+$' ob
@@ -1672,7 +1668,6 @@ characters.
 " "" "3CB4A" :UBS :NOSDIAG :NOETAB) "PDataNSQRT" ("HXS 4 010C
 " "" "3CB4A" :UBS :NOSDIAG :NOETAB) "PDataNSQRT" ("HXS 4 010C
 " "" "3A4B0" :UBS :NOSDIAG :NOETAB) "hxs70107" ("HXS 5 70107
 " "" "3A4B0" :UBS :NOSDIAG :NOETAB) "hxs70107" ("HXS 5 70107
 " "" "39C79" :UBS :NOSDIAG :NOETAB) "hxs80108" ("HXS 5 80108
 " "" "39C79" :UBS :NOSDIAG :NOETAB) "hxs80108" ("HXS 5 80108
-" "" "39F2E" :UBS :NOSDIAG :NOETAB) "hxs80108" ("HXS 5 80108
 " "" "3B002" :UBS :NOSDIAG :NOETAB) "hxs50105" ("HXS 5 50105
 " "" "3B002" :UBS :NOSDIAG :NOETAB) "hxs50105" ("HXS 5 50105
 " "" "3CA52" :UBS :NOSDIAG :NOETAB) "hxs40104" ("HXS 5 40104
 " "" "3CA52" :UBS :NOSDIAG :NOETAB) "hxs40104" ("HXS 5 40104
 " "" "3CAD8" :UBS :NOSDIAG :NOETAB) "hxs60106" ("HXS 5 60106
 " "" "3CAD8" :UBS :NOSDIAG :NOETAB) "hxs60106" ("HXS 5 60106
@@ -1702,9 +1697,7 @@ called %>HXS.
 " "Returns TRUE if the input is a null hxs.
 " "Returns TRUE if the input is a null hxs.
 " "05566" :UBS) "&HXS" ("hxs hxs' \\-> hxs''
 " "05566" :UBS) "&HXS" ("hxs hxs' \\-> hxs''
 " "Appends hxs'' to hxs'.
 " "Appends hxs'' to hxs'.
-" "0518A") "EXPAND" ("hxs #nibs \\-> hxs'
-" "Appends #nibs zero nibbles to the hxs.
-" "34C82") "LENHXS" ("hxs \\-> #nibs
+" "0518A") "LENHXS" ("hxs \\-> #nibs
 " "Returns length in nibbles.
 " "Returns length in nibbles.
 " "05616") "SUBHXS" ("hxs #m #n \\-> hxs'
 " "05616") "SUBHXS" ("hxs #m #n \\-> hxs'
 " "Returns sub hxs string.
 " "Returns sub hxs string.
@@ -1866,8 +1859,11 @@ ob.
 ob11...obmn {%m %n} \\-> [[mxn]]
 ob11...obmn {%m %n} \\-> [[mxn]]
 " "Builds a matrix a la \\->ARRY.
 " "Builds a matrix a la \\->ARRY.
 " "17F006" :wasCSys) "^XEQ>ARRAY1" ("
 " "17F006" :wasCSys) "^XEQ>ARRAY1" ("
-" "" "180006" :wasCSys) "^" ("" "Explodes a matrix a la \\->ARRY.
-" "17C006" :wasCSys) "^ArryToMatrix" ("[] \\-> M
+" "" "180006" :wasCSys) "^" ("" "Euclidean division.  Assumes P and Q have
+integer or Gaussian integer coefficient.
+Returns FALSE in complex mode or if sparse
+short division fails.
+" "3F6006" :CSys) "^ArryToMatrix" ("[] \\-> M
 " "Converts array to symbolic array.
 " "Converts array to symbolic array.
 " "002007") "STATCLST" ("\\->
 " "002007") "STATCLST" ("\\->
 " "Clears \\GSDAT.
 " "Clears \\GSDAT.
@@ -2115,14 +2111,11 @@ ZERO works as well.
 " "37B54") "COMPN" ("obn..ob1 #n #prolog \\-> comp
 " "37B54") "COMPN" ("obn..ob1 #n #prolog \\-> comp
 " "" "05331" :UBS) "{}N" ("obn..ob1 #n \\-> { obn..ob1 }
 " "" "05331" :UBS) "{}N" ("obn..ob1 #n \\-> { obn..ob1 }
 " "" "05459") "::N" ("ob1..obn #n \\-> :: ob1..obn ;
 " "" "05459") "::N" ("ob1..obn #n \\-> :: ob1..obn ;
-" "" "05445") "SYMBN" ("ob1..obn #n \\-> symb
-" "Build a symbolic object.
-" "0546D") "top&Cr" ("meta1 meta2 \\-> symb
+" "" "05445") "SYMBN" ("ob1..obn #n \\-> sym
+" "" "0546D") "top&Cr" ("meta1 meta2 \\-> symb
 " "Does top& then <REF>SYMBN: .
 " "Does top& then <REF>SYMBN: .
 " "36F8D") "ONESYMBN" ("ob1..obn #n \\-> symb
 " "36F8D") "ONESYMBN" ("ob1..obn #n \\-> symb
-" "" "286F6" :UBS) "EXTN" ("ob1..obn #n \\-> u
-" "Builds a unit object.
-" "05481") "P{}N" ("ob1..obn #n \\-> {}
+" "" "286F6" :UBS) "P{}N" ("ob1..obn #n \\-> {}
 " "Build list with possible garbage collection.
 " "Build list with possible garbage collection.
 " "293F8") "P::N" ("ob1..obn #n \\-> seco
 " "293F8") "P::N" ("ob1..obn #n \\-> seco
 " "Build seco with possible garbage collection.
 " "Build seco with possible garbage collection.
@@ -2143,9 +2136,9 @@ ob \\-> ob #1
 " "Explodes symbolic object into meta. Other
 " "Explodes symbolic object into meta. Other
 objects are converted into one-object metas
 objects are converted into one-object metas
 by pushing #1 into the stack. 
 by pushing #1 into the stack. 
-" "157006" :wasCSys) "^2SYMBINCOMP" ("ob1 ob2 \\-> meta1 meta2
+" "157006" :CSys) "^2SYMBINCOMP" ("ob1 ob2 \\-> meta1 meta2
 " "Does ^SYMBINCOMP for 2 objects.
 " "Does ^SYMBINCOMP for 2 objects.
-" "12A006" :wasCSys) "^CKINNERCOMP" ("{} \\-> ob1 .. obN #n
+" "12A006" :CSys) "^CKINNERCOMP" ("{} \\-> ob1 .. obN #n
 ob \\-> ob #1
 ob \\-> ob #1
 " "Explodes a list into a meta object. Other
 " "Explodes a list into a meta object. Other
 objects are converted into one-object metas
 objects are converted into one-object metas
@@ -2218,17 +2211,12 @@ Ob>Seco.
 " "37087") "::NEVAL" ("ob1..obn #n \\-> ?
 " "37087") "::NEVAL" ("ob1..obn #n \\-> ?
 " "Does <REF>::N then <REF>EVAL.
 " "Does <REF>::N then <REF>EVAL.
 " "3631A") "dup" ("meta \\-> meta meta
 " "3631A") "dup" ("meta \\-> meta meta
-" "" "29A35" :UBS) "NDROP" ("meta \\->
-" "Should be called drop.
-" "0326E") "DROPNDROP" ("meta ob \\->
-" "Should be called DROPdrop.
-" "37032") "N+1DROP" ("ob meta \\->
-" "Should be called dropDROP.
-" "35FB0") "#1+NDROP" ("ob meta \\->
-" "Should be called dropDROP.
-" "35FB0") "NDROPFALSE" ("meta \\-> F
-" "Should be called dropFALSE.
-" "28211") "^NDROPZERO" ("obn..ob1 #n \\-> #0
+" "" "29A35" :UBS) "NDROP" ("1..n #n \\->
+" "" "0326E") "DROPNDROP" ("1..n #n ob \\->
+" "" "37032") "N+1DROP" ("ob 1..n #n \\->
+" "" "35FB0") "#1+NDROP" ("ob 1..n #n \\->
+" "" "35FB0") "NDROPFALSE" ("ob1..obn #n \\-> F
+" "" "28211") "^NDROPZERO" ("obn..ob1 #n \\-> #0
 " "Replace Meta object with empty Meta object.
 " "Replace Meta object with empty Meta object.
 Should be called dropZERO.
 Should be called dropZERO.
 " "391006" :wasCSys) "psh" ("meta1 meta2 \\-> meta2 meta1
 " "391006" :wasCSys) "psh" ("meta1 meta2 \\-> meta2 meta1
@@ -2251,18 +2239,14 @@ be called swapDROP.
 " "" "36FBA") "rolltwotop&" ("meta1 meta2 meta3 \\-> meta3 meta1&meta2
 " "" "36FBA") "rolltwotop&" ("meta1 meta2 meta3 \\-> meta3 meta1&meta2
 " "" "36FCE") "roll2top&" ("meta1 meta2 meta3 \\-> meta3 meta1&meta2
 " "" "36FCE") "roll2top&" ("meta1 meta2 meta3 \\-> meta3 meta1&meta2
 " "" "36FCE") "psh&" ("meta1 meta2 meta3 \\-> meta1&meta3 meta2
 " "" "36FCE") "psh&" ("meta1 meta2 meta3 \\-> meta1&meta3 meta2
-" "" "2963E") "SWP1+" ("meta ob \\-> meta&ob
-" "" "3592B") "SWAP#1+" ("meta ob \\-> meta&ob
-" "" "3592B") "DUP#1+PICK" ("ob&meta \\-> ob&meta ob
+" "" "2963E") "DUP#1+PICK" ("n..1 #n \\-> n..1 #n n
 " "" "34431") "'R'RROT2+" ("meta \\-> meta&nob&nob1
 " "" "34431") "'R'RROT2+" ("meta \\-> meta&nob&nob1
 " "Takes nob and nob1 from run stream and adds
 " "Takes nob and nob1 from run stream and adds
 them to the meta. 
 them to the meta. 
 " "2979A" :UBS) "get1" ("ob meta \\-> meta ob
 " "2979A" :UBS) "get1" ("ob meta \\-> meta ob
 " "" "34504") "OVER#2+UNROL" ("meta ob \\-> ob meta
 " "" "34504") "OVER#2+UNROL" ("meta ob \\-> ob meta
 " "" "36147") "psh1top&" ("meta ob \\-> ob&meta
 " "" "36147") "psh1top&" ("meta ob \\-> ob&meta
-" "" "29693") "#1-SWAP" ("meta&ob \\-> meta ob
-" "" "28071") "pull" ("meta&ob \\-> meta ob
-" "" "28071") "pullrev" ("ob&meta \\-> meta ob
+" "" "29693") "pullrev" ("ob&meta \\-> meta ob
 " "" "28085") "pulldroppull" ("meta&ob1&ob2 \\-> meta ob1
 " "" "28085") "pulldroppull" ("meta&ob1&ob2 \\-> meta ob1
 " "" "29137" :UBS) "2pull2DROP" ("meta&ob1&ob2 \\-> meta
 " "" "29137" :UBS) "2pull2DROP" ("meta&ob1&ob2 \\-> meta
 " "" "2899D" :UBS) "psh1&" ("meta1 meta2 ob \\-> ob&meta1 meta2
 " "" "2899D" :UBS) "psh1&" ("meta1 meta2 ob \\-> ob&meta1 meta2
@@ -2314,11 +2298,10 @@ Meta2. #pos is >0 if in meta2, is <0 if in
 meta1 (#pos=MINUSONE-#).
 meta1 (#pos=MINUSONE-#).
 " "3C0006" :wasCSys) "^METAINT?" ("Meta \\-> Meta flag
 " "3C0006" :wasCSys) "^METAINT?" ("Meta \\-> Meta flag
 " "Tests if Meta is an integer.
 " "Tests if Meta is an integer.
-" "198006" :wasCSys) "^METAPOSINT?" ("Meta \\-> Meta flag
+" "198006" :CSys) "^METAPOSINT?" ("Meta \\-> Meta flag
 " "Tests if Meta is a positive integer smaller
 " "Tests if Meta is a positive integer smaller
 than Zsmall.
 than Zsmall.
-" "199006" :wasCSys) "SYMBN" ("ob1..obn #n \\-> sym
-" "" "0546D") "Cr" ("ob1..obn #n -> symb
+" "199006" :CSys) "Cr" ("ob1..obn #n -> symb
 " "Does 'R, SWAP#1+ then <REF>SYMBN . Creates a
 " "Does 'R, SWAP#1+ then <REF>SYMBN . Creates a
 symbolic from the meta in the stack and the
 symbolic from the meta in the stack and the
 next object in the runstream. This object is
 next object in the runstream. This object is
@@ -2632,17 +2615,13 @@ ob #0 \\-> #0
 " "" "3432C") "DUPPICK" ("n..1 #n \\-> n..1 #n n-1
 " "" "3432C") "DUPPICK" ("n..1 #n \\-> n..1 #n n-1
 " "" "3611F") "2DUPSWAP" ("1 2 \\-> 1 2 2 1
 " "" "3611F") "2DUPSWAP" ("1 2 \\-> 1 2 2 1
 " "" "35D30") "DUP3PICK" ("1 2 \\-> 1 2 2 1
 " "" "35D30") "DUP3PICK" ("1 2 \\-> 1 2 2 1
-" "" "35D30") "DUP#1+PICK" ("n..1 #n \\-> n..1 #n n
-" "" "34431") "DUP#2+PICK" ("n..1 #n \\-> n..1 #n n+1
+" "" "35D30") "DUP#2+PICK" ("n..1 #n \\-> n..1 #n n+1
 " "" "29362" :UBS) "2DUP" ("1 2 \\-> 1 2 1 2
 " "" "29362" :UBS) "2DUP" ("1 2 \\-> 1 2 1 2
-" "" "031AC") "DUP3PICK" ("1 2 \\-> 1 2 2 1
-" "" "35D30") "2DUPSWAP" ("1 2 \\-> 1 2 2 1
-" "" "35D30") "2DUP5ROLL" ("1 2 3 \\-> 2 3 2 3 1
+" "" "031AC") "2DUP5ROLL" ("1 2 3 \\-> 2 3 2 3 1
 " "" "36CA4") "NDUP" ("1..n #n \\-> 1..n 1..n
 " "" "36CA4") "NDUP" ("1..n #n \\-> 1..n 1..n
 " "" "031D9") "DROP" ("1 \\->
 " "" "031D9") "DROP" ("1 \\->
 " "" "03244") "DROPDUP" ("1 2 \\-> 1 1
 " "" "03244") "DROPDUP" ("1 2 \\-> 1 1
-" "" "357CE") "DROPNDROP" ("1..n #n ob \\->
-" "" "37032") "DROPSWAP" ("1 2 3 \\-> 2 1
+" "" "357CE") "DROPSWAP" ("1 2 3 \\-> 2 1
 " "" "35733") "XYZ>Y" ("1 2 3 \\-> 2
 " "" "35733") "XYZ>Y" ("1 2 3 \\-> 2
 " "" "3574D") "ROT2DROP" ("1 2 3 \\-> 2
 " "" "3574D") "ROT2DROP" ("1 2 3 \\-> 2
 " "" "3574D") "DROPSWAPDROP" ("1 2 3 \\-> 2
 " "" "3574D") "DROPSWAPDROP" ("1 2 3 \\-> 2
@@ -2656,10 +2635,7 @@ ob #0 \\-> #0
 " "" "341D7") "5DROP" ("1..5 \\->
 " "" "341D7") "5DROP" ("1..5 \\->
 " "" "341DC") "6DROP" ("1..6 \\->
 " "" "341DC") "6DROP" ("1..6 \\->
 " "" "341E8") "7DROP" ("1..7 \\->
 " "" "341E8") "7DROP" ("1..7 \\->
-" "" "341F4") "NDROP" ("1..n #n \\->
-" "" "0326E") "N+1DROP" ("ob 1..n #n \\->
-" "" "35FB0") "#1+NDROP" ("ob 1..n #n \\->
-" "" "35FB0") "RESETDEPTH" ("ob1..obn obn+1..obx #n \\-> ob1..obn
+" "" "341F4") "RESETDEPTH" ("ob1..obn obn+1..obx #n \\-> ob1..obn
 " "Drops all but #n levels of the stack. 
 " "Drops all but #n levels of the stack. 
 " "2F0A1") "KEEP" ("ob1..obn ob1'..obm' #m \\-> ob1'..obm'
 " "2F0A1") "KEEP" ("ob1..obn ob1'..obm' #m \\-> ob1'..obm'
 " "Drops all stack levels above #m.
 " "Drops all stack levels above #m.
@@ -2684,19 +2660,14 @@ the runstream.
 " "" "341BA") "SWAPROT" ("1 2 3 \\-> 3 2 1
 " "" "341BA") "SWAPROT" ("1 2 3 \\-> 3 2 1
 " "" "341BA") "XYZW>YWZX" ("1 2 3 4 \\-> 2 4 3 1
 " "" "341BA") "XYZW>YWZX" ("1 2 3 4 \\-> 2 4 3 1
 " "" "36C90") "SWAP4ROLL" ("1 2 3 4 \\-> 2 4 3 1
 " "" "36C90") "SWAP4ROLL" ("1 2 3 4 \\-> 2 4 3 1
-" "" "36C90") "DUPUNROT" ("1 2 \\-> 2 1 2
-" "" "3457F") "SWAPOVER" ("1 2 \\-> 2 1 2
-" "" "3457F") "SWAP3PICK" ("1 2 3 \\-> 1 3 2 1
+" "" "36C90") "SWAP3PICK" ("1 2 3 \\-> 1 3 2 1
 " "" "36CB8") "2SWAP" ("1 2 3 4 \\-> 3 4 1 2
 " "" "36CB8") "2SWAP" ("1 2 3 4 \\-> 3 4 1 2
 " "" "35018") "ROT" ("1 2 3 \\-> 2 3 1
 " "" "35018") "ROT" ("1 2 3 \\-> 2 3 1
 " "" "03295") "ROTDUP" ("1 2 3 \\-> 2 3 1 1
 " "" "03295") "ROTDUP" ("1 2 3 \\-> 2 3 1 1
 " "" "3579C") "ROT2DUP" ("1 2 3 \\-> 2 3 1 3 1
 " "" "3579C") "ROT2DUP" ("1 2 3 \\-> 2 3 1 3 1
 " "" "35CA4") "XYZ>YZ" ("1 2 3 \\-> 2 3
 " "" "35CA4") "XYZ>YZ" ("1 2 3 \\-> 2 3
 " "" "341A8") "ROTDROP" ("1 2 3 \\-> 2 3
 " "" "341A8") "ROTDROP" ("1 2 3 \\-> 2 3
-" "" "341A8") "XYZ>Y" ("1 2 3 \\-> 2
-" "" "3574D") "DROPSWAPDROP" ("1 2 3 \\-> 2
-" "" "3574D") "ROT2DROP" ("1 2 3 \\-> 2
-" "" "3574D") "XYZ>ZY" ("1 2 3 \\-> 3 2
+" "" "341A8") "XYZ>ZY" ("1 2 3 \\-> 3 2
 " "" "34195") "ROTDROPSWAP" ("1 2 3 \\-> 3 2
 " "" "34195") "ROTDROPSWAP" ("1 2 3 \\-> 3 2
 " "" "34195") "XYZ>YXZ" ("1 2 3 \\-> 2 1 3
 " "" "34195") "XYZ>YXZ" ("1 2 3 \\-> 2 1 3
 " "" "3416E") "ROTSWAP" ("1 2 3 \\-> 2 1 3
 " "" "3416E") "ROTSWAP" ("1 2 3 \\-> 2 1 3
@@ -2734,20 +2705,8 @@ the runstream.
 " "" "3422B") "3UNROLL" ("1 2 3 \\-> 3 1 2
 " "" "3422B") "3UNROLL" ("1 2 3 \\-> 3 1 2
 " "" "3422B") "UNROT" ("1 2 3 \\-> 3 1 2
 " "" "3422B") "UNROT" ("1 2 3 \\-> 3 1 2
 " "" "3422B") "UNROTDUP" ("1 2 3 \\-> 3 1 2 1
 " "" "3422B") "UNROTDUP" ("1 2 3 \\-> 3 1 2 1
-" "" "35D1C") "XYZ>ZX" ("1 2 3 \\-> 3 1
-" "" "35872") "SWAPDROPSWAP" ("1 2 3 \\-> 3 1
-" "" "35872") "UNROTDROP" ("1 2 3 \\-> 3 1
-" "" "35872") "XYZ>Z" ("1 2 3 \\-> 3
-" "" "343BD") "ROTROT2DROP" ("1 2 3 \\-> 3
-" "" "343BD") "UNROT2DROP" ("1 2 3 \\-> 3
-" "" "343BD") "XYZ>ZYX" ("1 2 3 \\-> 3 2 1
-" "" "341BA") "SWAPROT" ("1 2 3 \\-> 3 2 1
-" "" "341BA") "UNROTSWAP" ("1 2 3 \\-> 3 2 1
-" "" "341BA") "UNROTOVER" ("1 2 3 \\-> 3 1 2 1
-" "" "360CF") "XYZ>ZXY" ("1 2 3 \\-> 3 1 2
-" "" "3422B") "UNROT" ("1 2 3 \\-> 3 1 2
-" "" "3422B") "3UNROLL" ("1 2 3 \\-> 3 1 2
-" "" "3422B") "XYZW>WXYZ" ("1 2 3 4 \\-> 4 1 2 3
+" "" "35D1C") "UNROTOVER" ("1 2 3 \\-> 3 1 2 1
+" "" "360CF") "XYZW>WXYZ" ("1 2 3 4 \\-> 4 1 2 3
 " "" "34331") "FOURUNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "34331") "FOURUNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "34331") "4UNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "34331") "4UNROLL" ("1 2 3 4 \\-> 4 1 2 3
 " "" "34331") "4UNROLLDUP" ("1 2 3 4 \\-> 4 1 2 3 3
 " "" "34331") "4UNROLLDUP" ("1 2 3 4 \\-> 4 1 2 3 3
@@ -2772,8 +2731,6 @@ the runstream.
 " "" "032C2") "OVERDUP" ("1 2 \\-> 1 2 1 1
 " "" "032C2") "OVERDUP" ("1 2 \\-> 1 2 1 1
 " "" "35CF4") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "35CF4") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "35D6C") "OVERSWAP" ("1 2 \\-> 1 1 2
 " "" "35D6C") "OVERSWAP" ("1 2 \\-> 1 1 2
-" "" "35D6C") "OVERSWAP" ("1 2 \\-> 1 1 2
-" "" "35D6C") "OVERUNROT" ("1 2 \\-> 1 1 2
 " "" "35D6C") "OVER5PICK" ("1 2 3 4 \\-> 1 2 3 4 3 1
 " "" "35D6C") "OVER5PICK" ("1 2 3 4 \\-> 1 2 3 4 3 1
 " "" "36CF4") "2OVER" ("1 2 3 4 \\-> 1 2 3 4 1 2
 " "" "36CF4") "2OVER" ("1 2 3 4 \\-> 1 2 3 4 1 2
 " "" "37046") "3PICK" ("1 2 3 \\-> 1 2 3 1
 " "" "37046") "3PICK" ("1 2 3 \\-> 1 2 3 1
@@ -2813,8 +2770,9 @@ enters the hidden directory.
 " "Evaluate empty identifier.
 " "Evaluate empty identifier.
 " "27308") "NULLLAM" ("\\-> lam
 " "27308") "NULLLAM" ("\\-> lam
 " "Puts NULLLAM in the stack.
 " "Puts NULLLAM in the stack.
-" "2B3AB") "ID_CST" ("ID CST
-" "" "3EA01" :UBS) "ID_S" ("ID S
+" "2B3AB") "ID_CST" ("\\-> ob
+" "Evaluates ID CST.
+" "3EA01" :UBS) "ID_S" ("ID S
 " "" "3EF97" :UBS) "ID_X" ("ID X
 " "" "3EF97" :UBS) "ID_X" ("ID X
 " "" "2715F" :UBS) "'IDX" ("\\-> id
 " "" "2715F" :UBS) "'IDX" ("\\-> id
 " "Puts ID X unevaluated on the stack.
 " "Puts ID X unevaluated on the stack.
@@ -2822,8 +2780,12 @@ enters the hidden directory.
 " "" "272F3" :UBS) "ID_SIGMADAT" ("ID \\GSDAT
 " "" "272F3" :UBS) "ID_SIGMADAT" ("ID \\GSDAT
 " "" "27937" :UBS) "'IDPAR" ("\\-> id
 " "" "27937" :UBS) "'IDPAR" ("\\-> id
 " "Puts ID PPAR unevaluated on the stack.
 " "Puts ID PPAR unevaluated on the stack.
+ --
+<REF>TEXT:Reserved|PPAR
 " "27AE9" :UBS) "ID_PPAR" ("ID PPAR
 " "27AE9" :UBS) "ID_PPAR" ("ID PPAR
-" "" "2799A" :UBS) "ID_TPAR" ("ID TPAR
+" " --
+<REF>TEXT:Reserved|PPAR
+" "2799A" :UBS) "ID_TPAR" ("ID TPAR
 " "" "27B2F" :UBS) "'IDTPAR" ("\\-> id
 " "" "27B2F" :UBS) "'IDTPAR" ("\\-> id
 " "" "27B25" :UBS) "ID_VPAR" ("ID VPAR
 " "" "27B25" :UBS) "ID_VPAR" ("ID VPAR
 " "" "27B11" :UBS) "'IDVPAR" ("\\-> id
 " "" "27B11" :UBS) "'IDVPAR" ("\\-> id
@@ -3097,8 +3059,8 @@ library numbers.
 " "Generates \"Undefined Name\" error.
 " "Generates \"Undefined Name\" error.
 " "262E7") "SETIVLERR" ("Error 304h
 " "262E7") "SETIVLERR" ("Error 304h
 " "Generates \"Undefined Result\" error.
 " "Generates \"Undefined Result\" error.
-" "2F458") "SetIOPARErr" ("Error C12h
-" "Generates \"Invalid IOPAR\" error.
+" "2F458") "SetIOPARErr" ("\\->
+" "Throws the IOPAR error: \"Invalid IOPAR\".
 " "2F37B") "Sig?ErrJmp" ("# \\->
 " "2F37B") "Sig?ErrJmp" ("# \\->
 " "Calls ERRJMP if the error number is any of
 " "Calls ERRJMP if the error number is any of
 {13E 123 DFF}.
 {13E 123 DFF}.
@@ -3114,10 +3076,7 @@ Calls <REF>rstfmt1 and then errors out.
 F \\-> %0
 F \\-> %0
 " "Converts system flag to user flag, drops
 " "Converts system flag to user flag, drops
 current stream.
 current stream.
-" "2602B") "%0<>" ("% \\-> flag
-" "Can be used to change a user flag into a
-system flag. 
-" "301BA") "TRUE" ("\\-> T
+" "2602B") "TRUE" ("\\-> T
 " "" "03A81") "TrueTrue" ("\\-> T T
 " "" "03A81") "TrueTrue" ("\\-> T T
 " "" "27E87") "TRUEFALSE" ("\\-> T F
 " "" "27E87") "TRUEFALSE" ("\\-> T F
 " "" "36540") "TrueFalse" ("\\-> T F
 " "" "36540") "TrueFalse" ("\\-> T F
@@ -3134,8 +3093,7 @@ system flag.
 " "" "35289") "2DROPFALSE" ("ob1 ob2 \\-> F
 " "" "35289") "2DROPFALSE" ("ob1 ob2 \\-> F
 " "" "35B32") "4DROPFALSE" ("ob1..ob4 \\-> F
 " "" "35B32") "4DROPFALSE" ("ob1..ob4 \\-> F
 " "" "28D38" :UBS) "5DROPFALSE" ("ob1..ob5 \\-> F
 " "" "28D38" :UBS) "5DROPFALSE" ("ob1..ob5 \\-> F
-" "" "28E05" :UBS) "NDROPFALSE" ("ob1..obn #n \\-> F
-" "" "28211") "SWAPTRUE" ("ob1 ob2 \\-> ob2 ob1 T
+" "" "28E05" :UBS) "SWAPTRUE" ("ob1 ob2 \\-> ob2 ob1 T
 " "" "2812F") "SWAPFALSE" ("ob1 ob2 \\-> ob2 ob1 F
 " "" "2812F") "SWAPFALSE" ("ob1 ob2 \\-> ob2 ob1 F
 " "" "374AA" :UBS) "SWAPDROPTRUE" ("ob1 ob2 \\-> ob2 T
 " "" "374AA" :UBS) "SWAPDROPTRUE" ("ob1 ob2 \\-> ob2 T
 " "" "374BE") "SWAPDROPFALSE" ("ob1 ob2 \\-> ob2 F
 " "" "374BE") "SWAPDROPFALSE" ("ob1 ob2 \\-> ob2 F
@@ -3529,7 +3487,8 @@ return stack body to stack.
 " "Like <REF>R>, but the return stack is not
 " "Like <REF>R>, but the return stack is not
 popped.
 popped.
 " "07012") "IDUP" ("\\->
 " "07012") "IDUP" ("\\->
-" "Pushes top body into return stack.
+" "Pushes interpreter pointer into the return
+stack. 
 " "0716B") "EVAL" ("ob \\->
 " "0716B") "EVAL" ("ob \\->
 " "Evaluates object.
 " "Evaluates object.
 " "06F8E") "COMPEVAL" ("comp \\->
 " "06F8E") "COMPEVAL" ("comp \\->
@@ -3668,10 +3627,7 @@ does COLA in the above one.
 " "" "35703") "5skipcola" ("Skips 5 objects, then does COLA.
 " "" "35703") "5skipcola" ("Skips 5 objects, then does COLA.
 " "" "356D5") "COLASKIP" ("Drops rest of current stream
 " "" "356D5") "COLASKIP" ("Drops rest of current stream
 and skips one obj in above stream.
 and skips one obj in above stream.
-" "" "363FB") "IDUP" ("\\->
-" "Pushes interpreter pointer into the return
-stack. 
-" "0716B") "BEGIN" ("\\->
+" "" "363FB") "BEGIN" ("\\->
 " "Pushes interpreter pointer into the return
 " "Pushes interpreter pointer into the return
 stack. 
 stack. 
 " "071A2") "AGAIN" ("\\->
 " "071A2") "AGAIN" ("\\->
@@ -3797,9 +3753,9 @@ directory.
 " "25E79") "XEQStoKey" ("ob ID \\->
 " "25E79") "XEQStoKey" ("ob ID \\->
 " "" "25F0C") "xSTO>" ("ob id \\->
 " "" "25F0C") "xSTO>" ("ob id \\->
 ob symb \\->
 ob symb \\->
-" "Like <REF>xSTO, but if the level 1 argument is
-symbolic, use the first element of it as the
-variable to write to.
+" "Like <REF>xSTO, but if the level 1 argument
+is symbolic, use the first element of it as
+the variable to write to.
 " "3E823") "^PROMPTSTO1" ("id/lam \\->
 " "3E823") "^PROMPTSTO1" ("id/lam \\->
 " "Inputs value for a variable and stores it.
 " "Inputs value for a variable and stores it.
 " "0BD007" :wasCSys) "REPLACE" ("newob oldob \\-> newob
 " "0BD007" :wasCSys) "REPLACE" ("newob oldob \\-> newob
@@ -3880,16 +3836,14 @@ TVARS program.
 " "Gets parent directory.  Returns FALSE if
 " "Gets parent directory.  Returns FALSE if
 parent directory is HOME.
 parent directory is HOME.
 " "08309" :UBS) "SYSRRP?" ("rrp \\-> flag
 " "08309" :UBS) "SYSRRP?" ("rrp \\-> flag
-" "Is the directory the HOME directory?
-" "08DD4" :UBS) "CONTEXT@" ("\\-> rrp
+" "Is rrp HOME?
+" "08DD4") "CONTEXT@" ("\\-> rrp
 " "Recalls current directory.
 " "Recalls current directory.
 " "08D5A") "CONTEXT!" ("rrp \\->
 " "08D5A") "CONTEXT!" ("rrp \\->
 " "Sets new current directory.
 " "Sets new current directory.
 " "08D08") "LastContext!" ("rrp \\->
 " "08D08") "LastContext!" ("rrp \\->
 " "" "25917" :UBS) "LastContext@" ("\\-> rrp
 " "" "25917" :UBS) "LastContext@" ("\\-> rrp
-" "" "2591C" :UBS) "SYSRRP?" ("rrp \\-> flag
-" "Is rrp HOME?
-" "08DD4") "STOPSIGN@" ("\\-> rrp
+" "" "2591C" :UBS) "STOPSIGN@" ("\\-> rrp
 " "Recalls last directory.
 " "Recalls last directory.
 " "08D82" :UBS) "STOPSIGN!" ("rrp \\->
 " "08D82" :UBS) "STOPSIGN!" ("rrp \\->
 " "Stores new last directory.
 " "Stores new last directory.
@@ -4002,11 +3956,7 @@ valid.
 " "Returns tick count.
 " "Returns tick count.
 " "2EED7") "CLKTICKS" ("\\-> hxs
 " "2EED7") "CLKTICKS" ("\\-> hxs
 " "Returns tick count.
 " "Returns tick count.
-" "2EED7") "TIMESTR" ("%dt %tm \\-> \"dy dt tm\"
-" "Returns string representation of time, using
-current format.  Example:
- \"WED 06/24/98  10:00:45A\"
-" "2EED3") "Date>d$" ("%date \\-> $
+" "2EED7") "Date>d$" ("%date \\-> $
 " "Returns string representation of date, using
 " "Returns string representation of date, using
 current format.
 current format.
 " "2F329") "TOD>t$" ("%time \\-> $
 " "2F329") "TOD>t$" ("%time \\-> $
@@ -4442,22 +4392,16 @@ of the last VStack level.
 " "" "2F0E6") "DOOPENIO" ("
 " "" "2F0E6") "DOOPENIO" ("
 " "" "2EEC0") "OpenIO" ("
 " "" "2EEC0") "OpenIO" ("
 " "" "2F2FF") "OpenIOPrt" ("
 " "" "2F2FF") "OpenIOPrt" ("
-" "" "2F35D") "APNDCRLF" ("$ \\-> $'
-" "Appends carriage return and line feed to
-string.
-" "2F31A") "docr" ("
+" "" "2F35D") "docr" ("
 " "" "2EECA") "IOCheckReal" ("
 " "" "2EECA") "IOCheckReal" ("
-" "" "2F346") "IDIOPAR" ("ID IOPAR
-" "" "271A3" :UBS) "StdIOPAR" ("\\-> {}
+" "" "2F346") "StdIOPAR" ("\\-> {}
 " "Default IOPAR: { 9600 0 0 0 3 1 }.
 " "Default IOPAR: { 9600 0 0 0 3 1 }.
 " "2716D") "GetIOPAR" ("\\-> %baud % % % % %
 " "2716D") "GetIOPAR" ("\\-> %baud % % % % %
 " "Recalls IOPAR and explodes it into the stack.
 " "Recalls IOPAR and explodes it into the stack.
 " "2EEBF") "StoIOPAR" ("{} \\->
 " "2EEBF") "StoIOPAR" ("{} \\->
 " "STO the list of IO parameters in the HOME
 " "STO the list of IO parameters in the HOME
 directory in the variable IOPAR.
 directory in the variable IOPAR.
-" "2F062") "SetIOPARErr" ("\\->
-" "Throws the IOPAR error: \"Invalid IOPAR\".
-" "2F37B") "StdPRTPAR" ("
+" "2F062") "StdPRTPAR" ("
 " "" "27A3A") "StoPRTPAR" ("
 " "" "27A3A") "StoPRTPAR" ("
 " "" "2F063") "GetChkPRTPAR" ("
 " "" "2F063") "GetChkPRTPAR" ("
 " "" "2F338") "OpenUartClr" ("
 " "" "2F338") "OpenUartClr" ("
@@ -4616,9 +4560,6 @@ necessary.
 " "25F9A") "0LASTOWDOB!" ("\\->
 " "25F9A") "0LASTOWDOB!" ("\\->
 " "Clears command save by last CK<n> command.
 " "Clears command save by last CK<n> command.
 <REF>CK0
 <REF>CK0
-" "25F9A") "0LASTOWDOB!" ("\\->
-" "Clears command save by last CK<n> command.
-<REF>CK0
 " "25F9A") "AtUserStack" ("\\->
 " "25F9A") "AtUserStack" ("\\->
 " " :: CK0NOLASTWD 0LASTOWDOB! ;
 " " :: CK0NOLASTWD 0LASTOWDOB! ;
 " "2EF6C") "CK1NoBlame" ("\\->
 " "2EF6C") "CK1NoBlame" ("\\->
@@ -4640,10 +4581,6 @@ Any other first command is also skipped!
 ob \\->
 ob \\->
 " "<REF>EvalNoCK with the next object in the
 " "<REF>EvalNoCK with the next object in the
 runstream as argument.
 runstream as argument.
-" "25F29" :UBS) "EvalNoCK:" ("RS
-ob \\->
-" "<REF>EvalNoCK with the next object in the
-runstream as argument.
 " "25F29" :UBS) "'EvalNoCK:_sup" ("RS
 " "25F29" :UBS) "'EvalNoCK:_sup" ("RS
 ob \\->
 ob \\->
 " "<REF>EvalNoCK with the next object in the
 " "<REF>EvalNoCK with the next object in the
@@ -4661,14 +4598,14 @@ Z \\-> %
 " "Checks for real.  If a ZINT, convert
 " "Checks for real.  If a ZINT, convert
 to real.  Else SETTYPEERR.
 to real.  Else SETTYPEERR.
 " "36B7B") "^CK1Z" ("$/#/hxs \\-> Z
 " "36B7B") "^CK1Z" ("$/#/hxs \\-> Z
-" "CHecks for an integer.  Converts strings,
+" "Checks for an integer.  Converts strings,
 bints or hxs's to zints.  Errors for other
 bints or hxs's to zints.  Errors for other
 object types.
 object types.
-" "184006" :wasCSys) "^CK2Z" ("ob ob' \\-> Z Z'
+" "184006" :CSys) "^CK2Z" ("ob ob' \\-> Z Z'
 " "Like <REF>^CK1Z, but for two objects.
 " "Like <REF>^CK1Z, but for two objects.
-" "185006" :wasCSys) "^CK3Z" ("ob ob' ob'' \\-> Z Z' Z''
+" "185006" :CSys) "^CK3Z" ("ob ob' ob'' \\-> Z Z' Z''
 " "Like <REF>^CK1Z, but for three objects.
 " "Like <REF>^CK1Z, but for three objects.
-" "186006" :wasCSys) "CKARRY" ("\\->
+" "186006" :CSys) "CKARRY" ("\\->
 " "Checks for array.
 " "Checks for array.
 " "3F33F" :UBS) "CKLIST" ("\\->
 " "3F33F" :UBS) "CKLIST" ("\\->
 " "Checks for list.
 " "Checks for list.
@@ -4926,9 +4863,7 @@ format).
 " "25962" :UBS) "UserKeys0" ("\\->
 " "25962" :UBS) "UserKeys0" ("\\->
 " "" "25958" :UBS) "UserKeys0?" ("\\-> flag
 " "" "25958" :UBS) "UserKeys0?" ("\\-> flag
 " "" "2595D" :UBS) "NonUsrKeyOK?" ("\\-> flag
 " "" "2595D" :UBS) "NonUsrKeyOK?" ("\\-> flag
-" "Returns TRUE if the keys not defined do their
-normal actions.
-" "25621" :UBS) "SetNUsrKeyOK" ("\\->
+" "" "25612" :UBS) "SetNUsrKeyOK" ("\\->
 " "Keys not defined do their normal actions.
 " "Keys not defined do their normal actions.
 " "25617" :UBS) "ClrNUsrKeyOK" ("\\->
 " "25617" :UBS) "ClrNUsrKeyOK" ("\\->
 " "Keys not defined just beep when pressed.
 " "Keys not defined just beep when pressed.
@@ -4956,8 +4891,7 @@ Flags: -61
 " "Clears the 1USR flag.
 " "Clears the 1USR flag.
  --
  --
 Flags: -61
 Flags: -61
-" "2560A" :UBS) "NonUsrKeyOK?" ("\\-> flag
-" "" "25612" :UBS) "GETDF" ("#menukey \\-> ob
+" "2560A" :UBS) "GETDF" ("#menukey \\-> ob
 " "Gets the definition of a menu key from
 " "Gets the definition of a menu key from
 THOUCHTAB.  #menukey = #1..#6
 THOUCHTAB.  #menukey = #1..#6
 " "04A41") "GETPROC" ("#menukey \\-> ob
 " "04A41") "GETPROC" ("#menukey \\-> ob
@@ -5167,13 +5101,13 @@ SetThisRow.
 nothing. If Track? then ?DoTrackAct@. If
 nothing. If Track? then ?DoTrackAct@. If
 Rebuild? then SetThisRow.
 Rebuild? then SetThisRow.
 " "2EF66") "?DispMenu" ("\\->
 " "2EF66") "?DispMenu" ("\\->
-" "Redisplay the menu now if no key is waiting
+" "Redisplays the menu now if no key is waiting
 in the buffer.  Even better is this:
 in the buffer.  Even better is this:
  :: DA3OK?NOTIT ?DispMenu ;
  :: DA3OK?NOTIT ?DispMenu ;
 " "2DFCC") "DispMenu.1" ("\\->
 " "2DFCC") "DispMenu.1" ("\\->
-" "Displays the menu immediately.
+" "Displays menu now.
 " "2DFF4") "DispMenu" ("\\->
 " "2DFF4") "DispMenu" ("\\->
-" " :: DispMenu.1 SetDAsValid ;
+" ":: DispMenu.1 SetDAsValid ;
 " "2DFE0") "Grob>Menu" ("#col grob \\->
 " "2DFE0") "Grob>Menu" ("#col grob \\->
 " "Displays grob as menu label.
 " "Displays grob as menu label.
 " "2E0D5") "Str>Menu" ("#col $ \\->
 " "2E0D5") "Str>Menu" ("#col $ \\->
@@ -5199,9 +5133,7 @@ y=5.
 " "Takes NOB from Runstream.
 " "Takes NOB from Runstream.
 " "275FD") "CLEARMENU" ("\\->
 " "275FD") "CLEARMENU" ("\\->
 " "" "2F15B") "CHECKMENU" ("\\->
 " "" "2F15B") "CHECKMENU" ("\\->
-" "" "25F2B") "ID_CST" ("\\-> ob
-" "Evaluates ID CST.
-" "3EA01" :UBS) "nCustomMenu" ("\\->
+" "" "25F2B") "nCustomMenu" ("\\->
 " "Installs the CST menu.
 " "Installs the CST menu.
 " "2C2C0") "SolvMenuInit" ("\\->
 " "2C2C0") "SolvMenuInit" ("\\->
 " "Sets MenuKeyNS/LS/RS, ReviewKey and LabelDef
 " "Sets MenuKeyNS/LS/RS, ReviewKey and LabelDef
@@ -5402,8 +5334,7 @@ The types are prologue addresses like
 { DOFONT DORRP DOBAK } etc.
 { DOFONT DORRP DOBAK } etc.
 <REF>FILER_MANAGER
 <REF>FILER_MANAGER
 <REF>Filer_Action_Reference
 <REF>Filer_Action_Reference
-" "06E004") "^" ("" "Uses the File Manager to search for fonts. 
-" "06F004") "~Choose" ("::Appl $Title ::Convert {} offset \\-> {}' T
+" "06E004") "~Choose" ("::Appl $Title ::Convert {} offset \\-> {}' T
                                   \\-> ob T
                                   \\-> ob T
                                   \\-> F
                                   \\-> F
 " "The return value is a list if checkfields are
 " "The return value is a list if checkfields are
@@ -6172,13 +6103,8 @@ removed from the stack.
 FALSE is returned.  Otherwise the changed
 FALSE is returned.  Otherwise the changed
 object along with TRUE is returned.
 object along with TRUE is returned.
 " "2F1AE") "StrEdit" ("
 " "2F1AE") "StrEdit" ("
-" "" "2F1AC") "^EQW3Edit" ("symb \\-> symb' T
-     \\-> F
-" "Opens the equation editor to edit the
-expression. If exited by ENTER, returns new
-expression and TRUE.  If exited by CANCEL,
-returns just FALSE. 
-" "011004") "EditString" ("$ \\->
+" "" "2F1AC") "^EQW3Edit" ("
+" "" "011004") "EditString" ("$ \\->
 " "Starts editing the string in the command line
 " "Starts editing the string in the command line
 when the current program exits.  This is the
 when the current program exits.  This is the
 entry to use if a program should exit with
 entry to use if a program should exit with
@@ -6279,9 +6205,9 @@ update the display.  For speed, if you
 want to do more insertion before the
 want to do more insertion before the
 user needs to see it.
 user needs to see it.
 " "2EF96") "DispCommandLine" ("\\->
 " "2EF96") "DispCommandLine" ("\\->
-" "Redisplays the command line.
+" "Redisplays the command line now.
 " "2F19E") "?DispCommandLine" ("\\->
 " "2F19E") "?DispCommandLine" ("\\->
-" "Redisplays the command line if necessary.
+" "Redisplays the command line now if necessary.
 " "2F19F") "PUT_STYLE" ("# \\->
 " "2F19F") "PUT_STYLE" ("# \\->
 " "Changes the style at point.  If the
 " "Changes the style at point.  If the
 selection is active, changes the style
 selection is active, changes the style
@@ -6334,9 +6260,7 @@ something there before calling it.
 " "Returns the `SKIP\\->' menu key.
 " "Returns the `SKIP\\->' menu key.
 " "27EFB") "InitEd&Modes" ("\\->
 " "27EFB") "InitEd&Modes" ("\\->
 " ":: InitEdLine InitEdModes ;
 " ":: InitEdLine InitEdModes ;
-" "2EEE6") "InitEdLine" ("\\->
-" " :: DEL_CMD ;
-" "2EEE7") "InitEdModes" ("\\->
+" "2EEE6") "InitEdModes" ("\\->
 " "" "2EEE8") "SaveLastEdit" ("$ \\->
 " "" "2EEE8") "SaveLastEdit" ("$ \\->
 " "Calls CMD_STO if history is on.
 " "Calls CMD_STO if history is on.
 " "2F05E") "CMDSTO" ("$ \\->
 " "2F05E") "CMDSTO" ("$ \\->
@@ -6346,8 +6270,7 @@ commands, accessible with the `CMD' key.
 " "" "010004") "^EQW3Code" ("
 " "" "010004") "^EQW3Code" ("
 " "" "01D004") "^EQW3CursorOff" ("
 " "" "01D004") "^EQW3CursorOff" ("
 " "" "01C004") "^EQW3CursorOn" ("
 " "" "01C004") "^EQW3CursorOn" ("
-" "" "01B004") "^EQW3Edit" ("
-" "" "011004") "^EQW3StartEdit" ("
+" "" "01B004") "^EQW3StartEdit" ("
 " "" "012004") "^EQW3ViewLeft" ("
 " "" "012004") "^EQW3ViewLeft" ("
 " "" "016004") "^EQW3ViewLeftX" ("
 " "" "016004") "^EQW3ViewLeftX" ("
 " "" "014004") "^EQW3ViewMargin" ("
 " "" "014004") "^EQW3ViewMargin" ("
@@ -6426,21 +6349,9 @@ changing its size.
 " "Redisplays all required areas.  Does it
 " "Redisplays all required areas.  Does it
 immediately, without waiting for the current
 immediately, without waiting for the current
 command to finish.
 command to finish.
-" "2EF67") "?DispCommandLine" ("\\->
-" "Redisplays the command line now if necessary.
-" "2F19F") "DispCommandLine" ("\\->
-" "Redisplays the command line now.
-" "2F19E") "DispEditLine" ("\\->
+" "2EF67") "DispEditLine" ("\\->
 " "Just calls DispCommandLine.
 " "Just calls DispCommandLine.
-" "2EE5A") "?DispMenu" ("\\->
-" "Redisplays the menu now if no key is waiting
-in the buffer.  Even better is this:
- :: DA3OK?NOTIT ?DispMenu ;
-" "2DFCC") "DispMenu.1" ("\\->
-" "Displays menu now.
-" "2DFF4") "DispMenu" ("\\->
-" ":: DispMenu.1 SetDAsValid ;
-" "2DFE0") "?DispStack" ("\\->
+" "2EE5A") "?DispStack" ("\\->
 " "Redisplays the stack now if necessary.
 " "Redisplays the stack now if necessary.
 " "2C341") "?DispStatus" ("\\->
 " "2C341") "?DispStatus" ("\\->
 " "Redisplays the status area now if necessary.
 " "Redisplays the status area now if necessary.
@@ -6854,8 +6765,7 @@ editing objects).
 " "Returns system font height.
 " "Returns system font height.
 " "2623D") "CHECK_SCAN_FONT" ("
 " "2623D") "CHECK_SCAN_FONT" ("
 " "" "26210") "DOMINIFONT" ("
 " "" "26210") "DOMINIFONT" ("
-" "" "026FE") "^" ("" "Uses the File Manager to search for fonts. 
-" "06F004") "FSCANFONT" ("
+" "" "026FE") "FSCANFONT" ("
 " "" "2621F") "INITMKFONT" ("
 " "" "2621F") "INITMKFONT" ("
 " "" "26256") "Init_MetaKernelFont" ("
 " "" "26256") "Init_MetaKernelFont" ("
 " "" "26904" :ML) "SCANFONT" ("
 " "" "26904" :ML) "SCANFONT" ("
@@ -7062,19 +6972,7 @@ box label.
 " "Does  Box/StdLabel with the next two objects
 " "Does  Box/StdLabel with the next two objects
 from the stream.
 from the stream.
  Usage: :: Box/StdLbl: $ <test> ;
  Usage: :: Box/StdLbl: $ <test> ;
-" "25E80") "Grob>Menu" ("#col grob \\->
-" "Displays grob as menu label.
-" "2E0D5") "Str>Menu" ("#col $ \\->
-" "Displays string as menu label.
-" "2E0F3") "Id>Menu" ("#col id \\->
-" "Displays id as menu label.
-" "2E11B") "Seco>Menu" ("#col :: \\->
-" "Does EVAL then DoLabel.
-" "2E107") "DoLabel" ("#col ob \\->
-" "If ob is of one of the supported types,
-displays a menu label. If not, generates a
-\"Bad Argument Type\" error.
-" "25886") "StdLabelDef" ("#col grob \\->
+" "25E80") "StdLabelDef" ("#col grob \\->
 #col $ \\->
 #col $ \\->
 #col id \\->
 #col id \\->
 #col :: \\->
 #col :: \\->
@@ -7108,10 +7006,7 @@ The grob is centered around #x and the to is
 put at #y. #w represents the maximum width of
 put at #y. #w represents the maximum width of
 the grob created. If the text is wider, it is
 the grob created. If the text is wider, it is
 truncated.  Bangtype.
 truncated.  Bangtype.
-" "25FEF") "MakeLabel" ("$ #w #x grob \\-> grob'
-" "Inserts $ into grob using CENTER$3x5 with
-y=5.
-" "2E2AA") "^MkTitle" ("$ \\-> grob
+" "25FEF") "^MkTitle" ("$ \\-> grob
 " "Create a title grob.  This is the text
 " "Create a title grob.  This is the text
 embedded in a dot matrix pattern, as used for
 embedded in a dot matrix pattern, as used for
 Choose boxes etc.  The size of the grob is
 Choose boxes etc.  The size of the grob is
@@ -7166,14 +7061,7 @@ with arrows.
 " "0BE007" :wasCSys) "^DISPLAYext" ("grob ob \\-> grob'
 " "0BE007" :wasCSys) "^DISPLAYext" ("grob ob \\-> grob'
 " "Adds ob to grob after converting it to a
 " "Adds ob to grob after converting it to a
 grob.
 grob.
-" "0C0007" :wasCSys) "'IDPAR" ("\\-> id
-" "Puts ID PPAR unevaluated on the stack.
- --
-<REF>TEXT:Reserved|PPAR
-" "27AE9" :UBS) "ID_PPAR" ("ID PPAR
-" " --
-<REF>TEXT:Reserved|PPAR
-" "2799A" :UBS) "CHECKPICT" ("\\->
+" "0C0007" :wasCSys) "CHECKPICT" ("\\->
 " "Checks size of GBUFF. If it is smaller than
 " "Checks size of GBUFF. If it is smaller than
 131x64 sets GBUFF back to its default size
 131x64 sets GBUFF back to its default size
 (131x64).
 (131x64).
@@ -7336,15 +7224,7 @@ coordinates.  Inverse operation is DOC>PX.
 " "Converts a complex coordinate point into list
 " "Converts a complex coordinate point into list
 of two HXS numbers.  Inverse operation is
 of two HXS numbers.  Inverse operation is
 DOPX>C. 
 DOPX>C. 
-" "2EF02") "^SYMBINCOMP" ("symb \\-> ob1 .. obN #n
-ob \\-> ob #1
-{} \\-> {} #1
-" "Explodes symbolic object into meta. Other
-objects are converted into one-object metas
-by pushing #1 into the stack. 
-" "157006" :CSys) "^2SYMBINCOMP" ("ob1 ob2 \\-> meta1 meta2
-" "Does ^SYMBINCOMP for 2 objects.
-" "12A006" :CSys) "^VXXLext" ("ob Lvar \\-> Q
+" "2EF02") "^VXXLext" ("ob Lvar \\-> Q
 " "Converts object to internal form. The object
 " "Converts object to internal form. The object
 can be a symbolic, a symbolic vector or a
 can be a symbolic, a symbolic vector or a
 symbolic matrix.  If the conversion was not
 symbolic matrix.  If the conversion was not
@@ -7439,15 +7319,7 @@ trims it.
 " "If possible, converts string into a zint and
 " "If possible, converts string into a zint and
 returns TRUE. If not, keeps the original
 returns TRUE. If not, keeps the original
 string and returns FALSE.
 string and returns FALSE.
-" "0F3006" :CSys) "^CK1Z" ("$/#/hxs \\-> Z
-" "Checks for an integer.  Converts strings,
-bints or hxs's to zints.  Errors for other
-object types.
-" "184006" :CSys) "^CK2Z" ("ob ob' \\-> Z Z'
-" "Like <REF>^CK1Z, but for two objects.
-" "185006" :CSys) "^CK3Z" ("ob ob' ob'' \\-> Z Z' Z''
-" "Like <REF>^CK1Z, but for three objects.
-" "186006" :CSys) "^CK&CONVINT" ("symb \\-> zint
+" "0F3006" :CSys) "^CK&CONVINT" ("symb \\-> zint
      \\-> :: zint zint' ;
      \\-> :: zint zint' ;
 " "Check that a sym is a zint or Gauss integer,
 " "Check that a sym is a zint or Gauss integer,
 convert it.
 convert it.
@@ -7612,16 +7484,7 @@ automatically detected.
 " "" "274A9" :UBS) "Z0Z1" ("(0,1)
 " "" "274A9" :UBS) "Z0Z1" ("(0,1)
 " "" "27516" :UBS) "Z-1Z0" ("(-1,0)
 " "" "27516" :UBS) "Z-1Z0" ("(-1,0)
 " "" "2754B" :UBS) "Z1Z1" ("(1,1)
 " "" "2754B" :UBS) "Z1Z1" ("(1,1)
-" "" "2756C" :UBS) "^TYPEGAUSSINT?" ("ob \\-> flag
-" "Checks if ob is Gaussian integer.
-" "114007" :1\.11 :wasCSys) "^DTYPEGAUSSINT?" ("ob \\-> ob flag
-" "Checks if ob is Gaussian integer.
-" "115007" :1\.11 :wasCSys) "^DUPTYPEGAUSSINT?" ("ob \\-> ob flag
-" "Checks if ob is Gaussian integer.
-" "116007" :1\.11 :wasCSys) "^CK1Cext" ("ob \\-> flag
-" "Checks if object is integer or Gaussian
-integer.
-" "187006" :wasCSys) "^CXRIext" ("C \\-> Zre Zim
+" "" "2756C" :UBS) "^CXRIext" ("C \\-> Zre Zim
 " "Returns real and imaginary part of Gaussian
 " "Returns real and imaginary part of Gaussian
 integer.
 integer.
 " "15D006" :CSys) "^CGCDext" ("C2 C1 \\-> C
 " "15D006" :CSys) "^CGCDext" ("C2 C1 \\-> C
@@ -7674,12 +7537,7 @@ list contains only lists or hexes!.
 than Zsmall.
 than Zsmall.
 " "19B006" :CSys) "^CKINT>0" ("Obj \\-> Obj flag
 " "19B006" :CSys) "^CKINT>0" ("Obj \\-> Obj flag
 " "Tests if Obj is a strictly positive integer.
 " "Tests if Obj is a strictly positive integer.
-" "19C006" :CSys) "^METAINT?" ("Meta \\-> Meta flag
-" "Tests if Meta is an integer.
-" "198006" :CSys) "^METAPOSINT?" ("Meta \\-> Meta flag
-" "Tests if Meta is a positive integer smaller
-than Zsmall.
-" "199006" :CSys) "^DupTypeS?" ("Z \\-> Z flag
+" "19C006" :CSys) "^DupTypeS?" ("Z \\-> Z flag
 " "Tests if Z is short (\\<= 64 bits).
 " "Tests if Z is short (\\<= 64 bits).
 " "0CC006" :CSys) "^MATIDN" ("M/z/% \\-> M'
 " "0CC006" :CSys) "^MATIDN" ("M/z/% \\-> M'
 " "Creates identity matrix.
 " "Creates identity matrix.
@@ -8435,11 +8293,7 @@ otherwise returns FALSE.
     \\-> F
     \\-> F
 " "Returns TRUE and quotient if b divides a,
 " "Returns TRUE and quotient if b divides a,
 otherwise returns FALSE.
 otherwise returns FALSE.
-" "3F5006" :CSys) "^" ("" "Euclidean division.  Assumes P and Q have
-integer or Gaussian integer coefficient.
-Returns FALSE in complex mode or if sparse
-short division fails.
-" "3F6006" :CSys) "^POTENCEext" ("z1 z2 \\-> q r
+" "3F5006" :CSys) "^POTENCEext" ("z1 z2 \\-> q r
 " "Step by step Euclidean division for small
 " "Step by step Euclidean division for small
 integers.
 integers.
 " "3F7006" :CSys) "^DENOLCMext" ("list \\-> ob
 " "3F7006" :CSys) "^DENOLCMext" ("list \\-> ob
@@ -8461,13 +8315,7 @@ returned after failure of GCDHEUext.
 " "Generic internal GCD.
 " "Generic internal GCD.
  ( LAM2: GCDext ob1, ob2 \\-> pgcd ).
  ( LAM2: GCDext ob1, ob2 \\-> pgcd ).
 " "2B3006" :CSys) "^GCDext" ("
 " "2B3006" :CSys) "^GCDext" ("
-" "" "2B4006" :CSys) "^SYMBINCOMP" ("symb \\-> ob1 .. obN #n
-ob \\-> ob #1
-{} \\-> {} #1
-" "Explodes symbolic object into meta. Other
-objects are converted into one-object metas
-by pushing #1 into the stack. 
-" "157006" :CSys) "^m-1&m+1" ("meta \\-> meta&1&+ meta&1&-
+" "" "2B4006" :CSys) "^m-1&m+1" ("meta \\-> meta&1&+ meta&1&-
 " "Creates two copies of the meta. To the first
 " "Creates two copies of the meta. To the first
 one, adds 1 and +, to the second one, adds 1
 one, adds 1 and +, to the second one, adds 1
 and -.
 and -.
@@ -8549,10 +8397,7 @@ simplifications.  Checks for infinities and
 " "Divide 2 meta objects with trivial
 " "Divide 2 meta objects with trivial
 simplifications.  Checks for infinities and 0
 simplifications.  Checks for infinities and 0
 then call metadiv.
 then call metadiv.
-" "3B1006" :CSys) "^DIVMETAOBJ" ("o1...on #n ob \\-> {o1/ob...on/ob}
-" "Division of all elements of a meta by ob.
-Tests if o=1.
-" "3F1006" :wasCSys) "^meta^" ("Meta ob \\-> Meta&ob&^
+" "3B1006" :CSys) "^meta^" ("Meta ob \\-> Meta&ob&^
 " "Elevates expression to a power. If ob=1, just
 " "Elevates expression to a power. If ob=1, just
 returns the expression. Tests for present of
 returns the expression. Tests for present of
 xNEG in the end of meta for integral powers. 
 xNEG in the end of meta for integral powers. 
@@ -10526,11 +10371,7 @@ the list.
 " "26B006" :CSys) "^CK1TONOext" ("ob \\-> ob'
 " "26B006" :CSys) "^CK1TONOext" ("ob \\-> ob'
 " "Applies prg to ob, recursively for lists.
 " "Applies prg to ob, recursively for lists.
 prg is fetched from runstream.
 prg is fetched from runstream.
-" "26D006" :CSys) "^TYPEIRRQ?" ("ob \\-> flag
-" "Is ob an irrquad?
-" "167006" :CSys) "^DTYPEIRRQ?" ("ob \\-> ob flag
-" "DUP, then ^TYPEIRRQ?.
-" "168006" :CSys) "^QXNDext" ("irrq \\-> a b c
+" "26D006" :CSys) "^QXNDext" ("irrq \\-> a b c
 " "b=0 and c=1 if stack level 1 is not an irrq.
 " "b=0 and c=1 if stack level 1 is not an irrq.
 " "165006" :CSys) "^NDXQext" ("a b c \\-> irrq
 " "165006" :CSys) "^NDXQext" ("a b c \\-> irrq
 " "" "166006" :CSys) "^IRRQ#ULTIMATE" ("ob \\-> # c
 " "" "166006" :CSys) "^IRRQ#ULTIMATE" ("ob \\-> # c
@@ -10545,9 +10386,7 @@ Work always if irrq is made of Z.
 " "509006" :CSys) "^QNORMext" ("Zirr \\-> a^2-b*c^2
 " "509006" :CSys) "^QNORMext" ("Zirr \\-> a^2-b*c^2
 " "Irrq-norm of an irrquad.
 " "Irrq-norm of an irrquad.
 This is *not* the complex modulus.
 This is *not* the complex modulus.
-" "51A006" :CSys) "^SECOSQFFext" (":: x<< a b c x>> ; \\-> { fact1 mult1 ... factn multn }
-" "Factorization of irrquads and Gauss integers.
-" "4D4006" :CSys) "^PREPARext" ("o1 o2 \\-> a1 b1 c1 a2 b2 c2
+" "51A006" :CSys) "^PREPARext" ("o1 o2 \\-> a1 b1 c1 a2 b2 c2
 " "Returns irrquad decomposition of o1 and o2.
 " "Returns irrquad decomposition of o1 and o2.
 with either c1=c2 or c1 and c2 have no
 with either c1=c2 or c1 and c2 have no
 factors in comon.  c1<c2, ordering handled
 factors in comon.  c1<c2, ordering handled
@@ -12811,29 +12650,7 @@ See the IF and IFERR keyword
 entries for syntax information.
 entries for syntax information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "3805D" :Usr) "xEND" ("1/0 \\->
-" "END Cmd
- --
-Ends conditional, error-trapping,
-and indefinite loop structures.
-
-See the IF, CASE, IFERR, DO, and
-WHILE keyword entries for syntax
-information.
- --
-Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "38A54" :Usr) "xENDDO" ("1/0 \\->
-" "END Cmd
- --
-Ends conditional, error-trapping,
-and indefinite loop structures.
-
-See the IF, CASE, IFERR, DO, and
-WHILE keyword entries for syntax
-information.
- --
-Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "38A54" :Usr) "xEND" ("
+" "3805D" :Usr) "xEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -12844,18 +12661,18 @@ WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "3807D" :Usr) "xIFEND" ("
+" "38A2F" :Usr) "xENDDO" ("1/0 \\->
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
 and indefinite loop structures.
 and indefinite loop structures.
- --
+
 See the IF, CASE, IFERR, DO, and
 See the IF, CASE, IFERR, DO, and
 WHILE keyword entries for syntax
 WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "3807D" :Usr) "xEND" ("
+" "38A54" :Usr) "xIFEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -12866,7 +12683,7 @@ WHILE keyword entries for syntax
 information.
 information.
  --
  --
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
 Related: IF,CASE,DO,ELSE,IFERR,REPEAT, THEN,UNTIL,WHILE
-" "38A2F" :Usr) "xWHILEEND" ("
+" "3807D" :Usr) "xWHILEEND" ("
 " "END Cmd
 " "END Cmd
  --
  --
 Ends conditional, error-trapping,
 Ends conditional, error-trapping,
@@ -13561,12 +13378,8 @@ current directory.
 Related: CRDIR,PATH,PGDIR,UPDIR
 Related: CRDIR,PATH,PGDIR,UPDIR
 " "39405" :Usr) "~xHORNER" ("symb1 x \\-> symb2 x symb3
 " "39405" :Usr) "~xHORNER" ("symb1 x \\-> symb2 x symb3
 " "" "037314" :CASHELP :Usr) "~xHYPERBOLIC" ("
 " "" "037314" :CASHELP :Usr) "~xHYPERBOLIC" ("
-" "" "02B0DE" :Usr) "xi" ("\\-> (0.,1.)
-\\-> 'i'
-" "Returns the complex constant i.
- --
-Related: e,MAXR,MINR,\\pi
-" "39B3B" :Usr) "~xIABCUV" ("n1 n2 n3 \\-> n4 n5
+" "" "02B0DE" :Usr) "xi" ("\\-> i
+" "" "39B3B" :Usr) "~xIABCUV" ("n1 n2 n3 \\-> n4 n5
 " "" "031314" :CASHELP :Usr) "~xIBASIS" ("
 " "" "031314" :CASHELP :Usr) "~xIBASIS" ("
 " "" "0120DE" :Usr) "~xIBERNOULLI" ("n \\-> x
 " "" "0120DE" :Usr) "~xIBERNOULLI" ("n \\-> x
 " "" "0060DE" :CASHELP :Usr) "~xIBP" ("uv' v \\-> uv -u'v
 " "" "0060DE" :CASHELP :Usr) "~xIBP" ("uv' v \\-> uv -u'v
@@ -13630,8 +13443,7 @@ Related: IFTE
  --
  --
 Executes objT if T/F is nonzero.
 Executes objT if T/F is nonzero.
 Discards objF if T/F is zero.
 Discards objF if T/F is zero.
-" "395F3" :Usr) "xi" ("\\-> i
-" "" "39B3B" :Usr) "~xILAP" ("symb \\-> symb'
+" "395F3" :Usr) "~xILAP" ("symb \\-> symb'
 " "" "011314" :CASHELP :Usr) "xIM" ("(x,y) \\-> y
 " "" "011314" :CASHELP :Usr) "xIM" ("(x,y) \\-> y
 [] \\-> []'
 [] \\-> []'
 " "Imaginary Part Func
 " "Imaginary Part Func
@@ -13658,8 +13470,6 @@ the new value to level 1.
 Related: DECR
 Related: DECR
 " "3E54C" :Usr) "~x\\oo" ("\\-> '+\\oo'
 " "3E54C" :Usr) "~x\\oo" ("\\-> '+\\oo'
 " "Infinity
 " "Infinity
-" "08A314" :Usr) "~x\\oo" ("\\-> '+\\oo'
-" "Infinity
 " "08A314" :Usr) "~xINFORM" ("$ {flds} fmt {rst} {init} \\-> {} 1
 " "08A314" :Usr) "~xINFORM" ("$ {flds} fmt {rst} {init} \\-> {} 1
                           \\-> 0
                           \\-> 0
 " "User-Defined Dialog Box Cmd
 " "User-Defined Dialog Box Cmd
@@ -13789,14 +13599,12 @@ Related: COLCT,EXPAN,QUAD,SHOW,SOLVE
 " "" "3DB62" :Usr) "x;" ("
 " "" "3DB62" :Usr) "x;" ("
 " "" "3F053" :Usr) "~x?" ("
 " "" "3F053" :Usr) "~x?" ("
 " "" "089314" :Usr) "x'" ("
 " "" "089314" :Usr) "x'" ("
-" "" "389EF" :Usr) "x'" ("
 " "" "38A14" :Usr) "xENDTIC" ("
 " "" "38A14" :Usr) "xENDTIC" ("
 " "" "38A14" :Usr) "x\\<<" ("
 " "" "38A14" :Usr) "x\\<<" ("
 " "" "389B9" :Usr) "x<<" ("
 " "" "389B9" :Usr) "x<<" ("
 " "" "389B9" :Usr) "x\\>>" ("
 " "" "389B9" :Usr) "x\\>>" ("
-" "" "389D4" :Usr) "x>>" ("
-" "" "389D4" :Usr) "x\\>>" ("
-" "" "38999" :Usr) "x>>ABND" ("
+" "" "38999" :Usr) "x>>" ("
+" "" "389D4" :Usr) "x>>ABND" ("
 " "" "38999" :Usr) "~xJORDAN" ("[nxn] \\-> minpol chrpol {} []
 " "" "38999" :Usr) "~xJORDAN" ("[nxn] \\-> minpol chrpol {} []
 " "" "050314" :CASHELP :Usr) "~xKER" ("
 " "" "050314" :CASHELP :Usr) "~xKER" ("
 " "" "00F0DE" :Usr) "xKERRM" ("\\-> msg
 " "" "00F0DE" :Usr) "xKERRM" ("\\-> msg
@@ -16231,12 +16039,7 @@ Related: CL\\GS,RCL\\GS,\\GS+,\\GS-
 VX.
 VX.
  --
  --
 <REF>TEXT:Reserved|VX
 <REF>TEXT:Reserved|VX
-" "0400DE" :Usr :1\.19-6) "xSTO>" ("ob id \\->
-ob symb \\->
-" "Like <REF>xSTO, but if the level 1 argument
-is symbolic, use the first element of it as
-the variable to write to.
-" "3E823") "~xSTORE" ("
+" "0400DE" :Usr :1\.19-6) "~xSTORE" ("
 " "" "0240DE" :Usr) "xSTR\\->" ("$ \\-> ob
 " "" "0240DE" :Usr) "xSTR\\->" ("$ \\-> ob
 " "Evaluate String Cmd
 " "Evaluate String Cmd
  --
  --
@@ -16441,26 +16244,15 @@ Related: TINC
 Displays the stack display.
 Displays the stack display.
  --
  --
 Related: PICTURE,PVIEW
 Related: PICTURE,PVIEW
-" "3C8FA" :Usr) "xTHEN" ("0/1 \\->
-" "THEN Cmd
- --
-Starts the true-clause in conditional
-or error-trapping structure
- --
-Related: CASE,ELSE,END,IFERR
-" "37F7F" :Usr) "xTHEN" ("
-" "THEN in a CASE statement.
+" "3C8FA" :Usr) "xTHEN" ("
+" "THEN in an ON ERROR construct.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
-" "38B43" :Usr) "xTHENCASE" ("
+" "38ABA" :Usr) "xTHENCASE" ("
 " "THEN in a CASE statement.
 " "THEN in a CASE statement.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
-" "38B43" :Usr) "xTHEN" ("
-" "THEN in an ON ERROR construct.
- --
-Related: CASE,ELSE,END,IFERR
-" "38ABA" :Usr) "xERRTHEN" ("
+" "38B43" :Usr) "xERRTHEN" ("
 " "THEN in an ON ERROR construct.
 " "THEN in an ON ERROR construct.
  --
  --
 Related: CASE,ELSE,END,IFERR
 Related: CASE,ELSE,END,IFERR
@@ -17488,18 +17280,10 @@ Tests if two objects are equal.
 Flags: -3
 Flags: -3
  --
  --
 Related: SAME,TYPE,<,\\<=,>,\\>=, ==
 Related: SAME,TYPE,<,\\<=,>,\\>=, ==
-" "3CD21" :Usr) "x\\->" ("ob1 .. obn \\->
-" "Create Local Variables Cmd
- --
-Creates local variables.
- obj1 ... objn \\->
- --
-Syntax:
- \\-> name1 name2 ... nameN \\<< prog \\>>
- \\-> name1 name2 ... nameN 'Expr'
- --
-Related: DEFINE,STO
-" "3885C" :Usr) "xRPN->" ("ob1 .. obn \\->
+" "3CD21" :Usr) "x\\->" ("
+" "Create local variable comand.
+<REF>xRPN->
+" "38093" :Usr) "xRPN->" ("ob1 .. obn \\->
 " "Create Local Variables Cmd
 " "Create Local Variables Cmd
  --
  --
 Creates local variables.
 Creates local variables.
@@ -17510,10 +17294,7 @@ Syntax:
  \\-> name1 name2 ... nameN 'Expr'
  \\-> name1 name2 ... nameN 'Expr'
  --
  --
 Related: DEFINE,STO
 Related: DEFINE,STO
-" "3885C" :Usr) "x\\->" ("
-" "Create local variable comand.
-<REF>xRPN->
-" "38093" :Usr) "xALG->" ("
+" "3885C" :Usr) "xALG->" ("
 " "Create local variable comand.
 " "Create local variable comand.
 <REF>xRPN->
 <REF>xRPN->
 " "38093" :Usr) "x!" ("x \\-> x'
 " "38093" :Usr) "x!" ("x \\-> x'

+ 4 - 52
rpl-base.el

@@ -23,21 +23,9 @@
 (defgroup rpl nil
 (defgroup rpl nil
   "Tools for working with the RPL calculator programming language.")
   "Tools for working with the RPL calculator programming language.")
 
 
-(defcustom rpl-sysrpl-data-file-prefix "sysrpl-data"
-  "Filename prefix for files from which to `read' SysRPL data."
-  :type 'string
-  :group 'rpl)
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Utility functions for generating/loading pre-computed data
 ;; Utility functions for generating/loading pre-computed data
 ;;
 ;;
-(defun rpl-make-sysrpl-data-filename (calculator)
-  "Make the SysRPL data filename used for CALCULATOR.
-Where CALCULATOR should be a keyword symbol identifying the
-calculator model, e.g. :48G, :49G etc."
-  (cl-assert (keywordp calculator))
-  (concat rpl-sysrpl-data-file-prefix "." (substring (symbol-name calculator) 1) ".el"))
-
 (defvar rpl-tools-data-dir
 (defvar rpl-tools-data-dir
   (and load-file-name (concat (file-name-directory load-file-name) "data/"))
   (and load-file-name (concat (file-name-directory load-file-name) "data/"))
   "RPL tools data directory.")
   "RPL tools data directory.")
@@ -67,45 +55,6 @@ string (either relative or absolute)."
       (goto-char (point-min))
       (goto-char (point-min))
       (read (current-buffer)))))
       (read (current-buffer)))))
 
 
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Load SysRPL names files
-;;
-(message "Loading SysRPL information")
-
-(defvar rpl-sysrpl-data-38g
-  (rpl-read-data-file (rpl-make-sysrpl-data-filename :38G))
-  "SysRPL data for the 38G calculator.")
-
-(defvar rpl-sysrpl-data-39g
-  (rpl-read-data-file (rpl-make-sysrpl-data-filename :39G))
-  "SysRPL data for the 39G calculator.")
-
-(defvar rpl-sysrpl-data-48g
-  (rpl-read-data-file (rpl-make-sysrpl-data-filename :48G))
-  "SysRPL data for the 48G calculator.")
-
-(defvar rpl-sysrpl-data-49g
-  (rpl-read-data-file (rpl-make-sysrpl-data-filename :49G))
-  "SysRPL data for the 49G calculator.")
-
-(defun rpl-sysrpl-data-get-names (data)
-  (let ((names nil))
-    (maphash (lambda (key val)
-               (setq names (cons key names)))
-             data)
-    names))
-
-(defun rpl-sysrpl-names (calculator)
-  (cl-assert (keywordp calculator))
-  (cond ((eql calculator :38G)
-         (rpl-sysrpl-data-get-names rpl-sysrpl-data-38g))
-        ((eql calculator :39G)
-         (rpl-sysrpl-data-get-names rpl-sysrpl-data-39g))
-        ((eql calculator :48G)
-         (rpl-sysrpl-data-get-names rpl-sysrpl-data-48g))
-        ((eql calculator :49G)
-         (rpl-sysrpl-data-get-names rpl-sysrpl-data-49g))))
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Common keymap (including the ``RPL'' menu)
 ;; Common keymap (including the ``RPL'' menu)
 ;;
 ;;
@@ -144,6 +93,9 @@ string (either relative or absolute)."
 (defun rpl-force-reload ()
 (defun rpl-force-reload ()
   (interactive)
   (interactive)
   (load "rpl-base")
   (load "rpl-base")
-  (load "rpl-sysrpl-mode"))
+  (load "sysrpl-mode"))
 
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; End of file
+;;
 (provide 'rpl-base)
 (provide 'rpl-base)

+ 100 - 16
rpl-edb.el

@@ -12,10 +12,15 @@
 
 
 ;;; Commentary:
 ;;; Commentary:
 
 
-;; Functions to parse the entries.db file.
+;; Functions to parse the entries.db file and create accessible
+;; databases of SysRPL information.
 
 
 ;;; Code:
 ;;; Code:
 (require 'cl-lib)
 (require 'cl-lib)
+(require 'rpl-base)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Functions for parsing the EDB file
 
 
 (defun rpl-edb-get-line ()
 (defun rpl-edb-get-line ()
   "Get line that point is on from the current buffer.
   "Get line that point is on from the current buffer.
@@ -131,9 +136,13 @@ Return a string.  Move point to the start of the next line."
 
 
 ;;; Parsing the entries.db buffer
 ;;; Parsing the entries.db buffer
 ;;;
 ;;;
+(defvar rpl-edb-entries nil
+  "A place on which to push the entries parsed from the EDB file.")
+
 (defun rpl-edb-parse-buffer ()
 (defun rpl-edb-parse-buffer ()
   "Parse the current buffer, assumed to be the entries.db file.
   "Parse the current buffer, assumed to be the entries.db file.
-Return a list of EDB entries, where each entry has the format:
+Set `rpl-edb-entries' to the parsed results, a list of EDB
+entries, where each entry has the format:
   (NAMES STACK-EFFECT DESCRIPTION CALC-INFOS)
   (NAMES STACK-EFFECT DESCRIPTION CALC-INFOS)
 where NAMES is a list of strings representing the different names
 where NAMES is a list of strings representing the different names
 under which the entry is known, STACK-EFFECT and DESCRIPTION are
 under which the entry is known, STACK-EFFECT and DESCRIPTION are
@@ -147,6 +156,7 @@ library/flash pointer), NAME-FORMAT is a FORMAT string allowing
 the name of the entry to be modified for this particular
 the name of the entry to be modified for this particular
 calculator, and FLAG-KEYS are keyword symbols specifying certain
 calculator, and FLAG-KEYS are keyword symbols specifying certain
 flags for this calculator."
 flags for this calculator."
+  (interactive)
   (let ((entry-names nil)
   (let ((entry-names nil)
         (entry-stack-effect nil)
         (entry-stack-effect nil)
         (entry-description nil)
         (entry-description nil)
@@ -187,18 +197,21 @@ flags for this calculator."
                (setq entry-description nil)))))
                (setq entry-description nil)))))
     (when entry-names
     (when entry-names
       (push (list entry-names entry-stack-effect (reverse entry-description) entry-calc-infos) entries))
       (push (list entry-names entry-stack-effect (reverse entry-description) entry-calc-infos) entries))
-    (reverse entries)))
+    (setq rpl-edb-entries (reverse entries))))
 
 
-;;; Creating calculator data files
-;;;
-(defun rpl-edb-generate-calculator-data (edb-entries calculator)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Functions to create calculator data files
+
+(defun rpl-edb-generate-calculator-data (calculator)
   "Generate data for CALCULATOR (a keyword identifying the model).
   "Generate data for CALCULATOR (a keyword identifying the model).
 Return a hash-table whose entries are keyed by entry name and
 Return a hash-table whose entries are keyed by entry name and
 whose values are lists of the form:
 whose values are lists of the form:
-  (STACK-EFFECT DESCRIPTION ADDRESS &rest FLAGS)."
+  (STACK-EFFECT DESCRIPTION ADDRESS &rest FLAGS).
+Assumes `rpl-edb-entries' has been set by calling
+`rpl-edb-parse-buffer'."
   (cl-assert (keywordp calculator))
   (cl-assert (keywordp calculator))
-  (let ((table (make-hash-table)))
-    (dolist (entry edb-entries)
+  (let ((table (make-hash-table :test 'equal)))
+    (dolist (entry rpl-edb-entries)
       (cl-destructuring-bind (names stack-effect description calc-infos) entry
       (cl-destructuring-bind (names stack-effect description calc-infos) entry
         (let ((calc-info (car (cl-member calculator calc-infos
         (let ((calc-info (car (cl-member calculator calc-infos
                                          :test (lambda (key info) (equal key (car info)))))))
                                          :test (lambda (key info) (equal key (car info)))))))
@@ -213,18 +226,89 @@ whose values are lists of the form:
                 (puthash (format fmt-str name) data table)))))))
                 (puthash (format fmt-str name) data table)))))))
     table))
     table))
 
 
-(defun rpl-edb-make-calculator-data-file (edb-entries calculator)
-  ""
+(defun rpl-edb-make-data-filename (calculator)
+  "Make the SysRPL data filename used for CALCULATOR.
+Where CALCULATOR should be a keyword symbol identifying the
+calculator model, e.g. :48G, :49G etc."
   (cl-assert (keywordp calculator))
   (cl-assert (keywordp calculator))
-  (rpl-write-data-file (rpl-edb-generate-calculator-data edb-entries calculator)
-                       (rpl-make-sysrpl-data-filename calculator)))
+  (concat "sysrpl-data." (substring (symbol-name calculator) 1) ".el"))
 
 
-(defvar rpl-edb-entries nil
-  "A place on which to push the parsed entries.")
+(defun rpl-edb-make-calculator-data-file (calculator)
+  ""
+  (cl-assert (keywordp calculator))
+  (rpl-write-data-file (rpl-edb-generate-calculator-data calculator)
+                       (rpl-edb-make-data-filename calculator)))
 
 
 (defun rpl-edb-make-all-data-files ()
 (defun rpl-edb-make-all-data-files ()
   ""
   ""
   (interactive)
   (interactive)
-  (setq rpl-edb-entries (rpl-edb-parse-buffer))
+  (unless rpl-edb-entries
+    (rpl-edb-parse-buffer))
   (dolist (calculator '(:38G :39G :48G :49G))
   (dolist (calculator '(:38G :39G :48G :49G))
     (rpl-edb-make-calculator-data-file rpl-edb-entries calculator)))
     (rpl-edb-make-calculator-data-file rpl-edb-entries calculator)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Functions to read and query calculator data files
+
+(defvar rpl-edb-data-38g nil
+  "SysRPL data for the 38G calculator.")
+
+(defvar rpl-edb-data-39g nil
+  "SysRPL data for the 39G calculator.")
+
+(defvar rpl-sysrpl-data-48g nil
+  "SysRPL data for the 48G calculator.")
+
+(defvar rpl-sysrpl-data-49g nil
+  "SysRPL data for the 49G calculator.")
+
+(defun rpl-edb-data (calculator)
+"Get SysRPL data for the specified CALCULATOR.
+Returns a hash table, keyed by SysRPL word name, whose values each
+have the form (STACK-EFFECT DESCRIPTION ADDRESS &rest FLAGS)."
+  (cl-assert (keywordp calculator))
+  (cond ((eql calculator :38G)
+         (unless rpl-sysrpl-data-38g
+           (setq rpl-sysrpl-data-38g
+                 (rpl-read-data-file (rpl-edb-make-data-filename :38G))))
+         rpl-sysrpl-data-38g)
+        ((eql calculator :39G)
+         (unless rpl-sysrpl-data-39g
+           (setq rpl-sysrpl-data-39g
+                 (rpl-read-data-file (rpl-edb-make-data-filename :39G))))
+         rpl-sysrpl-data-39g)
+        ((eql calculator :48G)
+         (unless rpl-sysrpl-data-48g
+           (setq rpl-sysrpl-data-48g
+                 (rpl-read-data-file (rpl-edb-make-data-filename :48G))))
+         rpl-sysrpl-data-48g)
+        ((eql calculator :49G)
+         (unless rpl-sysrpl-data-49g
+           (setq rpl-sysrpl-data-49g
+                 (rpl-read-data-file (rpl-edb-make-data-filename :49G))))
+         rpl-sysrpl-data-49g)))
+
+(defun rpl-edb-all-names (calculator)
+  (cl-assert (keywordp calculator))
+  (let ((names nil))
+    (maphash (lambda (key val)
+               (setq names (cons key names)))
+             (rpl-edb-data calculator))
+    names))
+
+(defun rpl-edb-get-stack-effect (calculator name)
+  (car (gethash name (rpl-edb-data calculator))))
+
+(defun rpl-edb-get-description (calculator name)
+  (cadr (gethash name (rpl-edb-data calculator))))
+
+(defun rpl-edb-get-address (calculator name)
+  (caddr (gethash name (rpl-edb-data calculator))))
+
+(defun rpl-edb-get-flags (calculator name)
+  (cadddr (gethash name (rpl-edb-data calculator))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; End of file
+;;
+(provide 'rpl-edb)

+ 1 - 0
rpl-tools.el

@@ -23,6 +23,7 @@
 
 
 ;; Load everything
 ;; Load everything
 (require 'rpl-base)
 (require 'rpl-base)
+(require 'rpl-edb)
 (require 'sysrpl-mode)
 (require 'sysrpl-mode)
 
 
 ;; Acknowledge we're loaded
 ;; Acknowledge we're loaded

+ 48 - 13
sysrpl-mode.el

@@ -18,19 +18,47 @@
 ;;; Code:
 ;;; Code:
 (require 'cl-lib)
 (require 'cl-lib)
 (require 'rpl-base)
 (require 'rpl-base)
+(require 'rpl-edb)
 
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Customizations
+;;
 (defcustom rpl-sysrpl-default-calculator :48G
 (defcustom rpl-sysrpl-default-calculator :48G
   "Default calculator type for SysRPL mode."
   "Default calculator type for SysRPL mode."
   :type '(radio :38G :39G :48G :49G)
   :type '(radio :38G :39G :48G :49G)
   :group 'rpl)
   :group 'rpl)
 
 
-(defface sysrpl-name '((t (:foreground "blue")))
-  "Face used for displaying SysRPL names."
+(defface sysrpl-name '((t :foreground "darkblue"))
+  "Face used for displaying SysRPL names (e.g DROP)."
+  :group 'rpl)
+
+(defface sysrpl-keyword '((t :foreground "purple"))
+  "Face used for displaying SysRPL keywords (e.g. :: ;)."
+  :group 'rpl)
+
+(defface sysrpl-comment '((t :foreground "darkgreen"))
+  "Face used for displaying SysRPL comments."
+  :group 'rpl)
+
+(defcustom sysrpl-font-lock-name-face 'sysrpl-name
+  "Name of face to use for displaying SysRPL names."
+  :type 'symbol
+  :group 'rpl)
+
+(defcustom sysrpl-font-lock-keyword-face 'sysrpl-keyword
+  "Name of face to use for displaying SysRPL keywords."
+  :type 'symbol
+  :group 'rpl)
+
+(defcustom sysrpl-font-lock-comment-face 'sysrpl-comment
+  "Name of face to use for displaying SysRPL comments."
+  :type 'symbol
   :group 'rpl)
   :group 'rpl)
 
 
 (defvar sysrpl-mode-syntax-table
 (defvar sysrpl-mode-syntax-table
   (let ((table (make-syntax-table prog-mode-syntax-table)))
   (let ((table (make-syntax-table prog-mode-syntax-table)))
     (modify-syntax-entry ?:  "w" table)
     (modify-syntax-entry ?:  "w" table)
+    (modify-syntax-entry ?\; "w" table)
     (modify-syntax-entry ?!  "w" table)
     (modify-syntax-entry ?!  "w" table)
     (modify-syntax-entry ?@  "w" table)
     (modify-syntax-entry ?@  "w" table)
     (modify-syntax-entry ?#  "w" table)
     (modify-syntax-entry ?#  "w" table)
@@ -51,16 +79,17 @@
     table)
     table)
   "The SysRPL syntax table.")
   "The SysRPL syntax table.")
 
 
-(defvar sysrpl-keyword-face 'sysrpl-name)
-
 (defun sysrpl-font-lock-compile-keywords (names)
 (defun sysrpl-font-lock-compile-keywords (names)
-  "Construct a list of keyword matcher clauses suitable for ``font-lock-keywords''."
-  (mapcar (lambda (str) (list (concat "\\<" (regexp-quote str) "\\>")
-                              (list 0 'sysrpl-keyword-face)))
-          names))
+  "Construct a list of keyword matcher clauses suitable for `font-lock-keywords'."
+  (append (list (list "^\\*.*$" (list 0 'sysrpl-font-lock-comment-face))
+                (list "(.*)" (list 0 'sysrpl-font-lock-comment-face))
+                (list (concat "\\<" (regexp-opt '("::" ";")) "\\>") (list 0 'sysrpl-font-lock-keyword-face)))
+          (mapcar (lambda (str) (list (concat "\\<" (regexp-quote str) "\\>")
+                                      (list 0 'sysrpl-font-lock-name-face)))
+                  names)))
 
 
 (defvar sysrpl-font-lock-keywords
 (defvar sysrpl-font-lock-keywords
-  (sysrpl-font-lock-compile-keywords (rpl-sysrpl-names rpl-sysrpl-default-calculator)))
+  (sysrpl-font-lock-compile-keywords (rpl-edb-all-names rpl-sysrpl-default-calculator)))
 
 
 (defvar sysrpl-selected-calculator rpl-sysrpl-default-calculator
 (defvar sysrpl-selected-calculator rpl-sysrpl-default-calculator
   "Currently selected calculator model.")
   "Currently selected calculator model.")
@@ -69,30 +98,33 @@
   "Set the currently selected calculator model to be the 38G."
   "Set the currently selected calculator model to be the 38G."
   (interactive)
   (interactive)
   (setq sysrpl-selected-calculator :38G)
   (setq sysrpl-selected-calculator :38G)
-  (setq sysrpl-font-lock-keywords (sysrpl-font-lock-compile-keywords (rpl-sysrpl-names :38G)))
+  (setq sysrpl-font-lock-keywords (sysrpl-font-lock-compile-keywords (rpl-edb-all-names :38G)))
   (sysrpl-mode))
   (sysrpl-mode))
 
 
 (defun sysrpl-select-39g ()
 (defun sysrpl-select-39g ()
   "Set the currently selected calculator model to be the 39G."
   "Set the currently selected calculator model to be the 39G."
   (interactive)
   (interactive)
   (setq sysrpl-selected-calculator :39G)
   (setq sysrpl-selected-calculator :39G)
-  (setq sysrpl-font-lock-keywords (sysrpl-font-lock-compile-keywords (rpl-sysrpl-names :39G)))
+  (setq sysrpl-font-lock-keywords (sysrpl-font-lock-compile-keywords (rpl-edb-all-names :39G)))
   (sysrpl-mode))
   (sysrpl-mode))
 
 
 (defun sysrpl-select-48g ()
 (defun sysrpl-select-48g ()
   "Set the currently selected calculator model to be the 48G."
   "Set the currently selected calculator model to be the 48G."
   (interactive)
   (interactive)
   (setq sysrpl-selected-calculator :48G)
   (setq sysrpl-selected-calculator :48G)
-  (setq sysrpl-font-lock-keywords (sysrpl-font-lock-compile-keywords (rpl-sysrpl-names :48G)))
+  (setq sysrpl-font-lock-keywords (sysrpl-font-lock-compile-keywords (rpl-edb-all-names :48G)))
   (sysrpl-mode))
   (sysrpl-mode))
 
 
 (defun sysrpl-select-49g ()
 (defun sysrpl-select-49g ()
   "Set the currently selected calculator model to be the 49G."
   "Set the currently selected calculator model to be the 49G."
   (interactive)
   (interactive)
   (setq sysrpl-selected-calculator :49G)
   (setq sysrpl-selected-calculator :49G)
-  (setq sysrpl-font-lock-keywords (sysrpl-font-lock-compile-keywords (rpl-sysrpl-names :49G)))
+  (setq sysrpl-font-lock-keywords (sysrpl-font-lock-compile-keywords (rpl-edb-all-names :49G)))
   (sysrpl-mode))
   (sysrpl-mode))
 
 
+(defun sysrpl-show-stack-effect (name)
+  (message (rpl-edb-get-stack-effect sysrpl-selected-calculator name)))
+
 (defvar sysrpl-mode-map
 (defvar sysrpl-mode-map
   (let ((map (make-sparse-keymap))
   (let ((map (make-sparse-keymap))
         (menu-map (make-sparse-keymap)))
         (menu-map (make-sparse-keymap)))
@@ -125,4 +157,7 @@
   (setq font-lock-defaults (list 'sysrpl-font-lock-keywords))
   (setq font-lock-defaults (list 'sysrpl-font-lock-keywords))
   (setq rpl-menu-compile-file-enable nil))
   (setq rpl-menu-compile-file-enable nil))
 
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; End of file
+;;
 (provide 'sysrpl-mode)
 (provide 'sysrpl-mode)