readme
This commit is contained in:
parent
fafd290ed9
commit
d425cc445b
1 changed files with 75 additions and 0 deletions
75
readme.md
Normal file
75
readme.md
Normal file
|
@ -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
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in a new issue