* Fixes #35 by guarding SCENE from initial I script Added an initialization flag to the scene state to denote when a scene is first loading. SCENE operator aborts if the flag is present. * Fixes #63 by overhauling data entry in tracker Buffered input Clear-on-new-entry Apply-on-Enter Abort-on-navigation Incrementers wrap around 16-bit limits Number entry blocks if it would exceed limits * New Op: MSPB (milliseconds per beat) * Fixes #14 by allowing code commenting with alt-/ * New Op: LAST - delta between script run times Now tracking script number in the execution state and script last run times in the script state. One line tap tempo (hit F1 twice): 1: M LAST M: TR.P 1 * Fixes #38 by making AVG round UP AVG -32767 -32768 == -32767 AVG 32767 32766 == 32767 * Fixes #38 by making Q.AVG round UP * New Op: BREAK (alias BRK): Terminates a script * New Op: W (while loop) Maximum depth set by WHILE_DEPTH (default 10000) * Bugfix for W op: while counter for each exec_depth SCRIPT was breaking W. Now it doesn't. * Added documentation for W op * Added docs for BREAK op * Added docs for LAST op * Updated keystroke documentation * Updated keystroke documentation * Updated SCENE documentation to reflect I behaviour * Fixes #94 by tracking execution states by depth If conditions and for loop iterators do not transcend their execution depth. Live mode now behaves like this: > L 1 4: A I > A => 4 > I => 0 I is 0 because it exists in a different context than the first command. * Bugfix: fixes recursion crash As a result, the code is cleaner and easier to read. Short story: only SCRIPT should call es_push and es_pop * Formatting mistake * Renamed MSPB to BPM * Fixes #2 by correcting fencepost error in P.RM * Teletype 2.1 beta 1 build * Poor merging discipline problems fixed PEBCAK / ID 10 T error * Added built zip. * Fixes M in beta1 * Changed LAST, added THIS, fixed behaviour * Added beta2 build * Code cleanup, commenting * Half-fixes operator table in documentation * Beta2 tag in Makefile * Forced L to respect BREAK's authority * Fixes #93 by clearing TRs in tele_kill * Added turtle structures and function prototypes * Added turtle function bodies, updated prototypes. * Added Turtle operators to turtle.c * Finished up operators, needs testing. * Fixed WRAP and BUMP turtle behaviour and various other things that needed fixing. * Preparing for beta3 release * Released beta3 * A turtle that works and is partially tested Fixed WRAP behaviour Changed UP to N, etc. Added FX1, FY1, FX2, FY2 individual get/set for fence Added HX, HY for home get/set Added tests for fence and WRAP behaviour (more to come) * Test revealed bug with new operator * Fixed test framework and some bugs with turtle * Test naming fix * Fixed bugs with WRAP mode * Prevent a crash with bounds checking * Fixed confusion between Q15 and Q12 in sin call * Updated makefile for beta4 release * Added beta4 build * Added some tests, fixed others * Fixed divide by zero in Q.AVG * Modified operators to match approved set * Fixed a test * Added es_push() after es_init() * Cleaned up test file. * Implemented @script * Updated to approved syntax and began testing * Moved turtle stuff out of state.h/c into new files * Committed to sin() logic for all calculations * Added release files for beta5 * Fixed various turtle bugs * Added final beta5 build * Trigger Travis build * Added turtle object files * Ninja patch to beta5 CTRL-F numbers now enable disable scripts CTRL-F9 toggles the metro KILL updated * Adjusted travis build to detect test errors * Updated changelog * Updated broken tests to reflect bounce behaviour Also to test travis-ci * Fixed travis-test Makefile deps * Added a few tests and squashed the sin() bug Should really have tested it this way sooner. * Removed hex file from repo. * Beta 6 prep * Removed hex file. * Implemented @show @show 1 now produces an @ sign beside the current turtle cell in pattern (tracker) mode. * Temp script no longer accessible via [ and ] * Changed THIS -> SCRIPT getter Now instead of SCRIPT THIS for recursion, SCRIPT SCRIPT. Per @tehn. * Fixes fix of [ and ] accessing temp script. A shameful commit. * Changed Turtle @show symbol to < * Changed COMMAND_MAX_LENGTH to 16 * Changed STACK_OP_SIZE to 16 * Changed Q_LENGTH to 64 * Updated CHANGELOG * Fixed [ still showing temp script The second such shameful commit. * SCRIPT now returns 0 in live mode * Added more 2.1 documentation - Turtle operator - Minor other fixes * Changed @Bounce and @bump behaviour at fence @bump won't actually change behaviour, but its internal fraction will remain at a 0.5 offset. * Fixed @Bounce where x2 = x1 + 1 * Fixed test case * Added Shift-2 = Toggle @show in TRACKER Plus a little refactor of access to turtle.shown * Reverted to git dirty flag for release * Initial implementation of EVERY * Fixed simulator Makefile for EVERY * Added SKIP, OTHER, and SYNC * Changed OTHER to reflect any last EVERY or SKIP OTHER now makes sense at the top of the script. * Cleared the every_last flag on SYNC * Tracker entry mode changes Enter no longer moves down a cell Increment and decrement no longer exceed int16 limits * Unified in/decrement between edit and nav modes Now wraps around limits instead of bumping * Updated CHANGELOG for 2.1.0-rc1 * Removed references to @accel and @frict * Fixed formatting for 2.1 release * Included EVERY in changelog * Removed old, commented-out code. * Updated help mode for 2.1 * Fixed line overflow in @f doc line * Fixed formatting One more pass at make format * Changed sin() to _sin() to avoid warning Not like we were linking against libmath but GCC won't shut up. * Changed documentation header for Turtle removed word 'operator'. * Added some missing documentation @step, BRK were missing TR.P alias was broken * Fixed ss_clear_script() I must have been out of it when I wrote that code!