Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
2.1.0 Release (#114)
* 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!
- Loading branch information
Showing
with
2,339 additions
and 198 deletions.
- +1 −1 .travis.yml
- +22 −1 CHANGELOG.md
- +1 −1 docs/intro.md
- +8 −4 docs/keys.md
- +89 −16 docs/ops/controlflow.toml
- +1 −1 docs/ops/hardware.toml
- +4 −0 docs/ops/maths.toml
- +4 −0 docs/ops/turtle.md
- +81 −0 docs/ops/turtle.toml
- +15 −0 docs/ops/variables.toml
- +1 −1 docs/quickstart.md
- +55 −0 docs/whats_new.md
- +5 −2 module/config.mk
- +18 −3 module/edit_mode.c
- +1 −0 module/edit_mode.h
- +56 −20 module/help_mode.c
- +8 −1 module/live_mode.c
- +40 −21 module/main.c
- +148 −30 module/pattern_mode.c
- +2 −0 module/preset_r_mode.c
- +2 −2 module/preset_w_mode.c
- +3 −3 simulator/Makefile
- +1 −1 src/command.h
- +24 −0 src/every.c
- +19 −0 src/every.h
- +29 −1 src/match_token.rl
- +135 −14 src/ops/controlflow.c
- +7 −0 src/ops/controlflow.h
- +3 −2 src/ops/delay.c
- +16 −1 src/ops/maths.c
- +1 −0 src/ops/maths.h
- +17 −8 src/ops/op.c
- +26 −0 src/ops/op_enum.h
- +1 −1 src/ops/patterns.c
- +9 −5 src/ops/queue.c
- +306 −0 src/ops/turtle.c
- +26 −0 src/ops/turtle.h
- +25 −1 src/ops/variables.c
- +1 −0 src/ops/variables.h
- +143 −12 src/state.c
- +59 −13 src/state.h
- +73 −19 src/teletype.c
- +1 −1 src/teletype.h
- +281 −0 src/turtle.c
- +99 −0 src/turtle.h
- +8 −2 tests/Makefile
- +95 −0 tests/log.c
- +22 −0 tests/log.h
- +2 −0 tests/main.c
- +6 −4 tests/op_mod_tests.c
- +6 −3 tests/process_tests.c
- +302 −0 tests/turtle_tests.c
- +8 −0 tests/turtle_tests.h
- +18 −1 utils/common/__init__.py
- +5 −2 utils/docs.py
| @@ -0,0 +1,4 @@ | ||
| ## Turtle | ||
|
|
||
| A 2-dimensional, movable index into the pattern values as displayed on the TRACKER screen. | ||
|
|
| @@ -0,0 +1,81 @@ | ||
| ["@"] | ||
| prototype = "@" | ||
| prototype_set = "@ x" | ||
| short = "get or set the current pattern value under the turtle" | ||
|
|
||
| ["@X"] | ||
| prototype = "@X" | ||
| prototype_set = "@X x" | ||
| short = "get the turtle X coordinate, or set it to x" | ||
|
|
||
| ["@Y"] | ||
| prototype = "@Y" | ||
| prototype_set = "@Y x" | ||
| short = "get the turtle Y coordinate, or set it to x" | ||
|
|
||
| ["@MOVE"] | ||
| prototype = "@MOVE x y" | ||
| short = "move the turtle x cells in the X axis and y cells in the Y axis" | ||
|
|
||
| ["@F"] | ||
| prototype = "@F x1 y1 x2 y2" | ||
| short = "set the turtle's fence to corners x1,y1 and x2,y2" | ||
|
|
||
| ["@FX1"] | ||
| prototype = "@FX1" | ||
| prototype_set = "@FX1 x" | ||
| short = "get the left fence line or set it to x" | ||
|
|
||
| ["@FX2"] | ||
| prototype = "@FX2" | ||
| prototype_set = "@FX2 x" | ||
| short = "get the right fence line or set it to x" | ||
|
|
||
| ["@FY1"] | ||
| prototype = "@FY1" | ||
| prototype_set = "@FY1 x" | ||
| short = "get the top fence line or set it to x" | ||
|
|
||
| ["@FY2"] | ||
| prototype = "@FY2" | ||
| prototype_set = "@FY2 x" | ||
| short = "get the bottom fence line or set it to x" | ||
|
|
||
| ["@SPEED"] | ||
| prototype = "@SPEED" | ||
| prototype_set = "@SPEED x" | ||
| short = "get the speed of the turtle's @STEP in cells per step or set it to x" | ||
|
|
||
| ["@DIR"] | ||
| prototype = "@DIR" | ||
| prototype_set = "@DIR x" | ||
| short = "get the direction of the turtle's @STEP in degrees or set it to x" | ||
|
|
||
| ["@STEP"] | ||
| prototype = "@STEP" | ||
| short = "move `@SPEED`/100 cells forward in `@DIR`, triggering `@SCRIPT` on cell change" | ||
|
|
||
| ["@BUMP"] | ||
| prototype = "@BUMP" | ||
| prototype_set = "@BUMP 1" | ||
| short = "get whether the turtle fence mode is BUMP, or set it to BUMP with 1" | ||
|
|
||
| ["@WRAP"] | ||
| prototype = "@WRAP" | ||
| prototype_set = "@WRAP 1" | ||
| short = "get whether the turtle fence mode is WRAP, or set it to WRAP with 1" | ||
|
|
||
| ["@BOUNCE"] | ||
| prototype = "@BOUNCE" | ||
| prototype_set = "@BOUNCE 1" | ||
| short = "get whether the turtle fence mode is BOUNCE, or set it to BOUNCE with 1" | ||
|
|
||
| ["@SCRIPT"] | ||
| prototype = "@SCRIPT" | ||
| prototype_set = "@SCRIPT x" | ||
| short = "get which script runs when the turtle changes cells, or set it to x" | ||
|
|
||
| ["@SHOW"] | ||
| prototype = "@SHOW" | ||
| prototype_set = "@SHOW 0/1" | ||
| short = "get whether the turtle is displayed on the TRACKER screen, or turn it on or off" |
Oops, something went wrong.