diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..9714691 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Hundredrabbits + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 34c2ef8..27a003f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,10 @@ -C engine for the ORCΛ programming environment, with a commandline interpreter. +# ORCΛ + + + +**Each letter of the alphabet is an operation**, lowercase letters typically operate on bang(`*`), uppercase letters operate on each frame. Bangs can be generated by various operations, such as `E` colliding with a `0`, see the [bang.orca](https://github.com/hundredrabbits/Orca/blob/master/examples/bang.orca) example. Watch a music video of [ORCΛ in action](https://twitter.com/neauoire/status/1069129232708657152). + +**C Port** for the [ORCΛ](https://github.com/hundredrabbits/Orca) programming environment, with a commandline interpreter. ## Prerequisites @@ -44,3 +50,9 @@ You can also make orca read from stdin: ```sh echo -e "...\na34\n..." | orca /dev/stdin ``` + +## Extras + +- Support this project through [Patreon](https://patreon.com/100). +- See the [License](LICENSE.md) file for license rights and limitations (MIT). +- Pull Requests are welcome! diff --git a/examples/_benchmark.orca b/examples/_benchmark.orca index b987ed3..d616785 100644 --- a/examples/_benchmark.orca +++ b/examples/_benchmark.orca @@ -1,27 +1,46 @@ -............................................................................................ -............................................................................................ -#..add...bang..clock.if....incr..loop..modul.offse.count.rand..track.telep.MOVES...........# -............................................................................................ -............................................................................................ -...A.....B.....C.....F.....I.....Lc....M.....O.....Q.....R.....Tc....X........U............. -...0...........9.....1.....4...........0...........0.....0.....c...........U................ -............................................................................N..U............ -...A2....B1....C2....F2....I2...0Lc....M2..0.O2....Q2....R2...3Tc..0.X2.....U............... -...2.....*.....1.....0.....6...........0.....2.....1.....1.....c............................ -...........................................................................#KILL#........... -...A.2...B0....Cc....F.2...I.2..1Lc....M.2..0O2....Q2....R.2.4.Tc...0X2..................... -...2...........9.....0.....0...........0.....2.....1.....0.....c.............I.4............ -............................................................................B1.............. -...A22...Bw..........F22...I22..2Lc....M22.20O23...Q22...R22.03Tc..20X23...K*GW............. -...4.....*...........1.....2...........0.....3.....1.....2.....c.............W.............. -............................................................................................ -...A23...Bs..........F23...I23..3L.c...M23.10O23...Q23...R24.13Tc..10X23...#BEAM#........... -...5.....*...........0.....2...........2.....2.....1.....2.................................. -.............................................................................I.4............ -...A2K...Be..........F2K...I2K.........M9K.11O.....Q9K...R2K.c3Tc..11X......F20............. -...m.....*...........0.....2...........9.....44....1.....3.....c......4....B0............... -............................................................................V............... -...AK2...Bw..........FKK...IK2.........MK6.........Q.....RKK.50T............................ -...m.....*...........1.....k...........2...........0.....k..................J............... -............................................................................................ -............................................................................................ +#.......A.......B.......C.......D.......E.......F.......G.......H.......I.......J.......K.......L.......M......# +................................................................................................................ +........A.......B.......C.......D...............F...............H.......I.......J.......K.......Lc......M....... +........0...............0.......................1.......................4...............................0....... +................................................................................................................ +........A2......B1......C2.....0D...............F2.............0H.......I2.....................0Lc......M2...... +........................0.......................0...............123.....6...............................0....... +................................................................................................................ +........A.2.....B0......Cc.....2D...............F.2............1H.......I.2....................1Lc......M.2..... +........................0.......................0...............123.....0...............................0....... +................................................................................................................ +........A22.....Bw.....0C......3D0..............F22............2H.......I22....................2Lc......M22..... +........................0.......................1...............123.....2...............................0....... +................................................................................................................ +........A23.....Bs.....1C2.....4D1..............F23.....................I23....................3L.c.....M23..... +........................0.......................0.......................2...............................2....... +................................................................................................................ +........A2K.....Be.....2Cc.....4D2..............F2K.....................I2K.............................M9K..... +........................0.......................0.......................2...............................9....... +................................................................................................................ +........AK2.....Bw.....3C4.....gD8..............FKK.....................IK2.............................MK6..... +........................0.......................1.......................k...............................2....... +................................................................................................................ +#.......N.......O.......P.......Q.......R.......S.......T.......U.......V.......W.......X.......Y.......Z......# +................................................................................................................ +................O......2P1......Q.......R...............Tc......U.......V...............X....................... +........................................0....................................................................... +................................................................................................................ +..............0.O2....1.P1.....1Q2......R2.............3Tc............................0.X2...................... +................2.......................1....................................................................... +................................................................................................................ +...............0O2....2.P......2Q2......R.2...........4.Tc.............................0X2...................... +................2.......................0....................................................................... +................................................................................................................ +..............20O23............3Q22.....R22...........03Tc............................20X23..................... +................3.......................2....................................................................... +................................................................................................................ +..............10O23............4Q23.....R24...........13Tc............................10X23..................... +................2.......................2....................................................................... +................................................................................................................ +..............11O..............4Q9K.....R2K...........c3Tc............................11X....................... +................44......................3................................................4...................... +................................................................................................................ +...............................0Q.......RKK...........50T....................................................... +........................................k....................................................................... +................................................................................................................ \ No newline at end of file diff --git a/examples/bang.orca b/examples/bang.orca index 2ecde3e..30a8077 100644 --- a/examples/bang.orca +++ b/examples/bang.orca @@ -2,11 +2,11 @@ .# BANG #................................ ......................................... ......................................... -.........Cg.............................. -........F80.............................. -.......B0................................ -........GE............................... -................E.......0................ +......................................... +......................................... +.....8D4H................................ +.......gE................................ +........................0................ ......................................... ......................................... ......................................... diff --git a/examples/delay.orca b/examples/delay.orca index bdf8a80..18f14c1 100644 --- a/examples/delay.orca +++ b/examples/delay.orca @@ -2,12 +2,12 @@ .# DELAY #............................... ......................................... ......................................... -.........C8.............................. -........F.0.............................. -.......B................................. -........GE.....77D....................... +.......2C4.....4C4.....8C4.....gC4....... +........2.......3.......3.......3........ ......................................... ......................................... +.......2D......4D......8D......gD........ +........*.......*........................ +......................................... ......................................... ......................................... -......................................... \ No newline at end of file diff --git a/examples/pendulum.orca b/examples/pendulum.orca index f417d89..a400b01 100644 --- a/examples/pendulum.orca +++ b/examples/pendulum.orca @@ -3,8 +3,8 @@ ......................................... ........U.......E......U................. ................J........................ -...............B......................... -................GS....................... +...............B.H....................... +................gS....................... ......................................... ......................................... ......................................... diff --git a/examples/read+write.orca b/examples/read+write.orca index aec0629..c60f47e 100644 --- a/examples/read+write.orca +++ b/examples/read+write.orca @@ -5,9 +5,9 @@ .........30O1230.....34T1230............. ...........0...........0................. ......................................... -............C4..........C4............... -...........H0..........H0................ -.........C4*J........C4*J................ +......................................... +.........C4.C4.......C4.C4............... .........30X3........34P7................ ......................................... ......................................... +......................................... diff --git a/examples/udp.orca b/examples/udp.orca index 1bf2060..fb75a09 100644 --- a/examples/udp.orca +++ b/examples/udp.orca @@ -4,8 +4,8 @@ ......................................... .........Cf..............Cf.............. ........F80.............F82.............. -.......B0..............B0................ -........GS..............GS............... +.......B0H.............B0H............... +........gS..............gS............... ......................................... ......................................... .......5;HELLO.........4;ORCA............ diff --git a/examples/variables.orca b/examples/variables.orca new file mode 100644 index 0000000..1a228a5 --- /dev/null +++ b/examples/variables.orca @@ -0,0 +1,13 @@ +......................................... +.#.VARIABLES.#....R.3.R.3.R.3............ +................aV1.bV2.cV2.............. +...Va.Vb.Vc.............................. +...1..2..2............................... +...J..J..J.......#.READ.#................ +...1Y12Y22............................... +.....JJ.JJ............................... +....A12A22.......Va..Vb..Vc.............. +....3Y34.........1...2...2............... +......JJ................................. +......34................................. +......................................... \ No newline at end of file