blob: 2d4c2769637594b7583da5df2a62d6750e305379 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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
```
|