newrpl/newrpl
2017-12-04 17:56:54 -05:00
..
contrib/mpdecimal-2.4.0 Cleanup warnings - work in progress. 2015-05-21 22:17:09 -04:00
docs Implemented addition of polar vectors in arrays (add,sub and neg). Updated command database. Fixed compiler warnings on string lib. 2017-11-06 13:00:16 -05:00
rpl-objects Implemented flag -45=Chain custom key handler, -46=Chain default key handler 2017-11-03 13:14:08 -04:00
arithmetic.c Cleanup of complex errors (work in progress). 2016-08-09 10:57:52 -04:00
arithmetic.h Implemented LNP1,EXPM,RENAME,TVARS,TVARSE. 2017-08-03 09:32:39 -04:00
atan_1_8_comp.c Added basic changes for 39gs/40gs support 2017-05-04 18:00:15 -04:00
atan_1_comp.c Massive directory reorganization. 2015-03-05 14:35:35 -05:00
atan_2_8_comp.c Added basic changes for 39gs/40gs support 2017-05-04 18:00:15 -04:00
atan_2_comp.c Massive directory reorganization. 2015-03-05 14:35:35 -05:00
atan_5_8_comp.c Added basic changes for 39gs/40gs support 2017-05-04 18:00:15 -04:00
atan_5_comp.c Massive directory reorganization. 2015-03-05 14:35:35 -05:00
atan_ltables.c Added light transcendentals. 2017-06-27 22:59:23 -04:00
atanh_1_8_comp.c Added basic changes for 39gs/40gs support 2017-05-04 18:00:15 -04:00
atanh_1_comp.c Massive directory reorganization. 2015-03-05 14:35:35 -05:00
atanh_2_8_comp.c Added basic changes for 39gs/40gs support 2017-05-04 18:00:15 -04:00
atanh_2_comp.c Massive directory reorganization. 2015-03-05 14:35:35 -05:00
atanh_5_8_comp.c Added basic changes for 39gs/40gs support 2017-05-04 18:00:15 -04:00
atanh_5_comp.c Massive directory reorganization. 2015-03-05 14:35:35 -05:00
autocomplete.c Major code cleanup - builds almost without warnings. 2016-01-08 12:43:43 -05:00
backup.c Implemented buffered writes on file system. Implemented SDARCHIVE/SDRESTORE. Fixed bug in ->Q. 2017-08-17 19:12:05 -04:00
cmdcodes.h More work but still broken for build. 2016-01-06 19:31:41 -05:00
common-macros.h More progress on command extraction. 2016-01-06 18:43:28 -05:00
compiler.c Implemented SETNFMT, GETNFMT, GETLOCALE. Fixed render cache not cleared on ON+key. Fixed decompiler adds extra newline. 2017-08-02 11:45:49 -04:00
cordic_K_8_comp.c Added basic changes for 39gs/40gs support 2017-05-04 18:00:15 -04:00
cordic_K_comp.c Massive directory reorganization. 2015-03-05 14:35:35 -05:00
cordic_Kh_8_comp.c Added basic changes for 39gs/40gs support 2017-05-04 18:00:15 -04:00
cordic_Kh_comp.c Massive directory reorganization. 2015-03-05 14:35:35 -05:00
datastack.c Finished multiple object cut,copy and paste. 2017-01-31 12:19:55 -05:00
decimal.c Device connector detects presence of calculator 2017-12-04 17:56:54 -05:00
decimal.h Device connector detects presence of calculator 2017-12-04 17:56:54 -05:00
dectranscen.c Bugfixes, improved speed, updated project files and removed old transcendental functions. 2017-07-03 11:08:06 -04:00
directory.c Added TRN and TRAN. Enabled absolute and relative paths in STO and RCL. 2017-10-27 17:07:20 -04:00
errors.c Implemented EXIT 2017-11-01 19:02:27 -04:00
fastmath.c Added LIBDATA objects. More progress on bitmap renderer for PLOT objects. 2017-04-06 17:43:50 -04:00
fastmath.h Added LIBDATA objects. More progress on bitmap renderer for PLOT objects. 2017-04-06 17:43:50 -04:00
gc.c Added bitmap library (work in progress). Added rendering engine with cache (core only, work in progress). 2017-01-18 17:38:09 -05:00
hal.c More 64-bit compatibility fixes. 2015-03-28 13:13:27 -04:00
hal.h Major code cleanup - builds almost without warnings. 2016-01-08 12:43:43 -05:00
include-all.h More work but still broken for build. 2016-01-06 19:31:41 -05:00
io_substring.c Fixed exponent string conversion bug. 2015-06-07 22:22:59 -04:00
lam.c Added optional 32-bit attributes to variable names (for future CAS use). 2017-10-20 23:05:55 -04:00
lib-20-comments.c Added ISTRUE operator. Used it for REPEAT, THEN, THENCASE and UNTIL..END. 2017-09-01 18:47:48 -04:00
lib-24-string.c Implemented addition of polar vectors in arrays (add,sub and neg). Updated command database. Fixed compiler warnings on string lib. 2017-11-06 13:00:16 -05:00
lib-28-dirs.c Added TRN and TRAN. Enabled absolute and relative paths in STO and RCL. 2017-10-27 17:07:20 -04:00
lib-30-complex.c Added TRN and TRAN. Enabled absolute and relative paths in STO and RCL. 2017-10-27 17:07:20 -04:00
lib-32-lam.c Added list support to all complex commands. Fixed local variables inside WHILE loops. Added flexibility to STO+,-,*,/. Added command STOADD. 2017-09-14 16:52:30 -04:00
lib-48-angles.c Added ISTRUE operator. Used it for REPEAT, THEN, THENCASE and UNTIL..END. 2017-09-01 18:47:48 -04:00
lib-52-matrix.c Implemented addition of polar vectors in arrays (add,sub and neg). Updated command database. Fixed compiler warnings on string lib. 2017-11-06 13:00:16 -05:00
lib-54-units.c Fixed visual glitches with fonts. 2017-09-19 10:28:19 -04:00
lib-56-symbolic.c Added ISTRUE operator. Used it for REPEAT, THEN, THENCASE and UNTIL..END. 2017-09-01 18:47:48 -04:00
lib-62-lists.c Fixed operators SAME and ISTRUE for lists, and all other operators are back to normal. 2017-10-22 11:24:08 -04:00
lib-64-arithmetic.c Added RDZ and RAND - updated all project files. 2017-10-24 13:14:51 -04:00
lib-65-system.c Fixed shift state after power off - improved PEEK/POKE. More tests with usb driver 2017-12-04 17:56:54 -05:00
lib-66-transcendentals.c Improved PROOT precision. 2017-10-20 13:08:01 -04:00
lib-68-flags.c Fixed bug in SETNFMT 2017-09-19 11:04:02 -04:00
lib-70-binary.c Added REPL, POS, NPOS, POSREV, NPOSREV, SIZE, SUB 2017-07-31 18:59:54 -04:00
lib-72-stack.c Fixed IFT and added EXIT to database 2017-11-03 17:57:37 -04:00
lib-74-sdcard.c Fixed SDARCHIVE/SDRESTORE halt behavior. 2017-08-18 18:14:35 -04:00
lib-76-ui.c Added REPL, POS, NPOS, POSREV, NPOSREV, SIZE, SUB 2017-07-31 18:59:54 -04:00
lib-77-libdata.c Added ISTRUE operator. Used it for REPEAT, THEN, THENCASE and UNTIL..END. 2017-09-01 18:47:48 -04:00
lib-78-fonts.c Bound CONT to LS-On 2017-11-03 16:27:24 -04:00
lib-80-bitmaps.c Added ISTRUE operator. Used it for REPEAT, THEN, THENCASE and UNTIL..END. 2017-09-01 18:47:48 -04:00
lib-88-plot.c Added ISTRUE operator. Used it for REPEAT, THEN, THENCASE and UNTIL..END. 2017-09-01 18:47:48 -04:00
lib-96-composites.c Changed SIZE to return the size of string in bytes, not characters. 2017-09-28 17:12:45 -04:00
lib-98-statistics.c Added RDZ and RAND - updated all project files. 2017-10-24 13:14:51 -04:00
lib-100-usb.c Added USB commands. 2017-12-04 17:56:54 -05:00
lib-4079-rpl2c.c Fixed several warnings with newer gcc. 2016-07-20 12:10:40 -04:00
lib-4080-localenv.c Added TYPE command. 2017-01-05 15:10:04 -05:00
lib-4090-overloaded.c Added REPL, POS, NPOS, POSREV, NPOSREV, SIZE, SUB 2017-07-31 18:59:54 -04:00
lib-common.c Added support for combining characters in editor 2016-06-07 15:40:24 +00:00
lib-eight-docol.c Implemented EXIT 2017-11-01 19:02:27 -04:00
lib-header.h Error codes are now defined by libraries. Help also provided by libraries. 2016-03-14 17:33:13 -04:00
lib-nine-docol2.c Added list support to all complex commands. Fixed local variables inside WHILE loops. Added flexibility to STO+,-,*,/. Added command STOADD. 2017-09-14 16:52:30 -04:00
lib-ten-reals.c Fixed ISTRUE operator on reals. 2017-09-16 12:51:09 -04:00
lib-twelve-bint.c Added ISTRUE operator. Used it for REPEAT, THEN, THENCASE and UNTIL..END. 2017-09-01 18:47:48 -04:00
lib-two-ident.c Fixed bug - local variable names remain unquoted 2017-10-18 12:44:32 -04:00
lib-zero-messages.c Moved more messages out to libraries (added lib 0 - system messages). 2017-01-05 12:58:05 -05:00
libraries.h Fixed operators SAME and ISTRUE for lists, and all other operators are back to normal. 2017-10-22 11:24:08 -04:00
LICENSE.txt Massive directory reorganization. 2015-03-05 14:35:35 -05:00
lighttranscend.c Fixed bug in LN(), fixed normalization bug in divmod, and overflow error in integers. 2017-08-23 23:07:31 -04:00
lists.c Fixed visual glitches with fonts. 2017-09-19 10:28:19 -04:00
ln_ltables.c Added light transcendentals. 2017-06-27 22:59:23 -04:00
main.cpp Added project to compile 50g firmware 2015-03-28 19:02:03 -04:00
Makefile Massive directory reorganization. 2015-03-05 14:35:35 -05:00
matrix.c Implemented addition of polar vectors in arrays (add,sub and neg). Updated command database. Fixed compiler warnings on string lib. 2017-11-06 13:00:16 -05:00
mul_real_arm.c Added word skip during normalization. 2017-07-21 16:20:55 -04:00
newRPL-base.pro Ranamed utf8 API + fixed compiler for UTF8 compliance. 2015-05-03 21:57:58 -04:00
newrpl.h Implemented addition of polar vectors in arrays (add,sub and neg). Updated command database. Fixed compiler warnings on string lib. 2017-11-06 13:00:16 -05:00
README.txt Massive directory reorganization. 2015-03-05 14:35:35 -05:00
render.c Implemented MIN/MAX and updated command database. Updated project files. 2017-04-18 17:20:40 -04:00
render.h Implemented MIN/MAX and updated command database. Updated project files. 2017-04-18 17:20:40 -04:00
returnstack.c Added HALT, CONT, KILL and supporting changes in core execution. 2016-12-21 18:08:34 -05:00
rng.c Added RDZ and RAND - updated all project files. 2017-10-24 13:14:51 -04:00
romlibs.c More work but still broken for build. 2016-01-06 19:31:41 -05:00
romlibs.h Added RDZ and RAND - updated all project files. 2017-10-24 13:14:51 -04:00
runstream.c Re-seed the RNG upon warmstart/reset. 2017-10-24 15:45:18 -04:00
sanity.c Replaced Angstrom symbol with U+00C5 2016-01-26 19:56:52 -05:00
solvers.c Fixed bug in root finder. 2017-10-21 09:04:22 -04:00
symbolic.c Implemented BASIS command. 2017-10-04 13:14:21 -04:00
sysvars.c Added bitmap library (work in progress). Added rendering engine with cache (core only, work in progress). 2017-01-18 17:38:09 -05:00
sysvars.h Added bitmap library (work in progress). Added rendering engine with cache (core only, work in progress). 2017-01-18 17:38:09 -05:00
tempob.c Improved system behavior in low-mem conditions. 2017-01-06 09:17:45 -05:00
transcendentals.c Added speed management. Fixed precision bug in trig_sincos 2015-05-31 14:07:00 -04:00
units.c Changed Micron to use micro U+00B5 character 2017-09-20 22:58:00 -04:00
utf8data.c Added ->NFC command. Updated Unicode data to 10.0. 2017-07-28 17:52:16 -04:00
utf8lib.c Added code beautifier (work in progress). 2017-04-25 18:18:53 -04:00
utf8lib.h Added code beautifier (work in progress). 2017-04-25 18:18:53 -04:00

LEGAL:
------

This program in its entirety is released under the license present in the file LICENSE.txt.

This program is linked against a modified version of the mpdecimal library, which is copyrighted
by its original author and is redistributed here in compliance with the original license that follows:

/*
 * Copyright (c) 2008-2016 Stefan Krah. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */


WHAT THIS DEMO IS AND IS NOT:
----------------------------

This is a console application with a rudimentary user interface intended for testing purposes only.
This demo does not represent in any way the final user interface.

HOW TO USE IT:
-------------

The demo will show a familiar stack interface and a prompt. In the prompt, familiar RPL commands
can be typed. Special symbols can be typed simply expanded with normal characters per this list:

<< as two 'less than' symbols
>> as two 'greather than' symbols
-> as a 'minus' and a 'greater than'
(square root) as the command SQRT

To end a session, enter an empty line and will be asked confirmation to quit.

Operators have to be entered in the prompt and ENTER pressed, there's no single-keystroke
operation in this demo.

THINGS TO TRY IN THIS VERSION:
-----------------------------
* Basic numeric operations:
    This follows the familiar set of commands, with the exception of SQRT for the square root symbol.
* Basic stack operations
    Not all stack operations are implemented yet, but the most common ones are available.
* Global variables and directories
    The behavior follows the conventions: unquoted names will be RCL'd and EVAL'd automatically. Quoted
    names have to be explicitly RCL'd (and explicitly EVAL'd as needed).
    Variables RCL'd will be searched for in the current directory and all its parents.
    Variables STOred will be stored in the current directory only.
* Local variables
    The behavior follows the conventions: unquoted names will be RCL'd and EVAL'd automatically. Quoted
    names have to be explicitly RCL'd (and explicitly EVAL'd as needed).
    Variables vanish as they reach the end of their scope, as follows:
    - Variables created with the -> operator exist only within the defined << >> delimiters.
    - Variables created with LSTO within a secondary, only exist within that secondary and after the
      initial creation statement.
    - Variables created within loops will exist only within that loop
    - Variables created within a secondary will be available to all inner secondaries or external programs
      called by the creating program.
* Directories
    Normal behavior.
* Loops
    Normal behavior
* Flow control statements
    Nothing new here
* Secondaries
    There's two kinds of secondaries: normal programs use << >> delimiters, and will be pushed on the stack
    when reached within another secondary, then they must be EVAL'd explicitly for execution. The direct-execution
    secondaries use the :: ; delimiters, and when included within a secondary they will be executed directly
    and never pushed to the stack. They otherwise work as a normal secondary.
    Notice that normal secondaries will be EVAL'd automatically if they are stored in a variable, when that
    variable name is used unquoted.
* Lists
    List objects are created, but no list operations are implemented yet.
* Numbers
    Integers and real numbers are interchangeable. The compiler decides when a number is an integer and will
    automatically compile as an integer or real. From the user's perspective there's only numbers.
    Integers in bases other than 10 can be used:
        #10d is a decimal 10
        #10h is a hexadecimal number
        #10b is a binary number
        #10o is an octal number
    By default a number will be in decimal base. Real numbers can only be in decimal base. The base is a
    property of the number (rather than a system setting), and will be retained by operators when possible.
    This means a numbers in different bases can coexist in the stack. Operating on a number with a base will
    try to keep the base of the original number, even if the second operand is in a different base.
    Mixed based operations are performed correctly.
    A division might convert the number to a real number if the division result is not an integer. In that case
    the result will always be in base 10.
    Integers are signed 64-bit numbers, and an overflow will automatically convert to a real number, there is
    no wrap around. In that case the base will be changed to 10.