diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..2d4c276 --- /dev/null +++ b/readme.md @@ -0,0 +1,75 @@ + +# Brainfucked + +Its brainfuck but with manual memory allocation :3 + +All normal brainfuck is valid brainfucked. Though your tape only starts with as much memory that can hold a pointer. In other words, if you're on a 64 bit computer you get 8 cells, and if you're on a 32bit computer you get 4 cells. + +Pointers in brainfucked span as many cells as they are bytes. + +Just like brainfuck, cells wrap from 0 to 255, and vice versa, and also the tape wraps from front to end and end to front. The tape will not wrap though if you are inputting a string. + +## Commands + +`<` Move pointer left + +`>` Move pointer right + +`+` Increment cell by one + +`-` Decrement cell by one + +`[` Jump past the matching ] if the cell at the pointer is 0 + +`]` Jump back to the matching [ if the cell at the pointer is nonzero + +`.` Output ascii at current cell + +`,` Input ascii into current cell + +`*` Allocate new tape size of current cell and replace with pointer + +`!` Free allocated pointer in current cell + +`(` Go to tape at pointer in current cell + +`)` Leave tape last entered + +`` ` `` Output null terminated string at current cell + +`~` Input string into current cells with max length in current cell + +`%` Clear screen + +`\` Comment out the rest of the line + +## Usage + +The `brainfucked` command expects only one argument which is the path to a file containing brainfucked. + +For example: +``` +$ brainfucked helloworld.bfd +``` + +## License + +This project is Licensed under the [WTFPL](http://www.wtfpl.net/) + +## Compilation + +Brainfucked only runs on Linux systems because im too lazy to make other makefiles. Though it can compile if they are made. + +Make sure to have `gcc` and `make` installed, and then run + +```shell +$ make # compiles the program +$ sudo make install # installs the binary +``` + +If you wish to remove the program, you can run + +```shell +$ sudo make uninstall # removes the binary +``` +