This commit is contained in:
Murphy 2023-04-13 17:18:39 -04:00
parent fafd290ed9
commit d425cc445b

75
readme.md Normal file
View 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
```