annotate share/delvs-master/README.md @ 12500:e48c08805365 draft default tip

<b_jonas> ` learn \'The password of the month is Cthulhuquagdonic Mothraquagdonic Narwhalicorn.\' # https://logs.esolangs.org/libera-esolangs/2024-04.html#lKE Infinite craft
author HackEso <hackeso@esolangs.org>
date Wed, 01 May 2024 06:39:10 +0000
parents 38a5b4d8a98e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3840
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
1 Delvs
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
2 =====
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
3
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
4 Delvs(Pronounced Del-vis) is my own personal variation of brainfuck, the interpreter is written in C.
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
5 File reading was inspired by brainfuck++, and the bit fiddling was inspired by boolfuck(DuckDuckGo them if you have to, I'm not putting links there right now)
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
6
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
7 Additions
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
8 ---------
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
9 - `:` casts the current value to a string and prints it. Code: `printf("%hhd", *p);`
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
10 - `;` grabs value from user input and casts to cell value. Code: `scanf("%hhd", p);`
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
11 - `#` reads following cells as null-terminating string for filename, then if current cell is != 1, open file for reading, or if 1, open file writing. Code: `f = fopen(p + 1, p == 1 ? "w" : "r");`
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
12 - `` ` `` read next char from file, apply to current cell. (`EOF` becomes `0`) Code: `*p = fgetc(f);`
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
13 - `!` write char from current cell to file. Code: `fputc(*p, f);`
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
14 - `"` increment current bit position by 1. (psuedo)Code: `b++;`
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
15 - `'` flip bit at current bit position, then incrment current bit position by 1. Code: `*p ^= (1 << b)`
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
16 - `\ ...` ignore EVERYTHING until newline is reached. `while(*c) if(*c++ == '\') return;`
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
17 - `@` prints value of current cell and surrounding 4 cells. Code:
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
18 - `$` sleeps the current cell's value in seconds
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
19
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
20 ### To do
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
21 - implement a working socket system
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
22 - implement an stdout flushing system
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
23 - implement runtime args
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
24 - implement namespaces(seperate arrays of 30000 chars)
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
25 - (maybe) implement better way to divide
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
26 - implement full integers
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
27
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
28 Examples
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
29 --------
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
30 Setting entire cell values with just the bit intructions is as easy as converting 0's to `"`s and 1's to `'`s.
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
31
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
32 01001000 = 72
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
33 "'""'""" . >
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
34 01101001 = 105
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
35 "''"'""' .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
36
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
37 Block comments are very straight forward to use, just plant a `\[` when you start "commenting" and a `]` when you're done.
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
38
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
39 +++++ +++++ [
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
40 > +++++ ++
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
41 > +++++ +++++
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
42 \ This is a well placed comment. See, all these code intrustions aren't messing with the program unlike vanilla Brainfuck
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
43 > +++
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
44 > +
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
45 <<<< -
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
46 ]
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
47 > ++ .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
48 > + .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
49 +++++ ++ . .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
50 \ Another intruding comment.
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
51 +++ .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
52 > ++ .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
53 << +++++ +++++ +++++ .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
54 > . +++ .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
55 ------ . -------- .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
56 > + .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
57 > .
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
58
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
59 How about reading files? Just generate a string as the filename an the use a `#` at the beginning of it. Like so:
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
60
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
61 01101101 m
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
62 "''"''"'
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
63 01111001 y
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
64 "''''""'
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
65 01110100 t
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
66 "'''"'""
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
67 01100101 e
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
68 "''""'"'
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
69 01111000 x
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
70 "''''"""
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
71 01110100 t
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
72 "'''"'""
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
73 01100110 f
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
74 "''""''"
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
75 01101001 i
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
76 "''"'""'
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
77 01101100 l
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
78 "''"''""
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
79 01100101 e
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
80 "''""'"'
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
81 00101110\.
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
82 ""'"'''"
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
83 01110100 t
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
84 "'''"'""
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
85 01111000 x
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
86 "''''"""
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
87 01110100 t
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
88 "'''"'""
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
89
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
90 [<] #
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
91 \ standard concatenation loop with file reading(and EOF check)
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
92 `+[-.`+]
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
93
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
94 Want to give the actual value of the cell when printing? Just add a dot above your intruction!
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
95
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
96 01100100 \ 'd' or 100
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
97 "''""'""
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
98
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
99 . \ prints "d"
38a5b4d8a98e <oerjan> rm -R share/delvs-master; mv delvs-master share
HackBot
parents:
diff changeset
100 : \ prints "100"