6 bits, 12 bytes

From Esolang
Jump to navigation Jump to search

6 bits, 12 bytes is the fifth ___ bits ___ bytes language and the first one to not be a joke, created by Europe2048.

6 bits, 12 bytes
Designed by User:Europe2048
Appeared in 2024
Memory system Stack-based
Dimensions one-dimensional
Computational class Bounded-storage machine
Reference implementation Unimplemented
Influenced by the four other __ bits, __ bytes
File extension(s) .6btb

Characters

Here is the standard character map used for outputting, one character per byte:

. 0123456789ABCDEF
0 □αβγδεζηθικλμνξπ
1 ρστυφχψωΔΘΛΞΠΦΨΩ
2  !"#$%&'()*+,-./
3 0123456789:;<=>?
4 @ABCDEFGHIJKLMNO
5 PQRSTUVWXYZ[\]^_
6 `abcdefghijklmno
7 pqrstuvwxyz{|}~⌂
8 €ΣςΓƒ…†‡ˆ‰Š‹Œ♦Ž♠
9 ≠≤≥☺♥•–—˜™š›œ♣žŸ
A █¡¢£¤¥¦§¨©ª«¬▄®¯
B °±²³´▀¶·¸¹º»¼½¾¿
C ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ
D ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß
E àáâãäåæçèéêëìíîï
F ðñòóôõö÷øùúûüýþÿ

Commands

"top value of the stack" is shortened to "top value". Do A on B means to pop B, and push operation A applied to B.

Talk before you change! (if you aren't the owner)

Byte Name Shortened Action
00 null * Does absolutely nothing.
01 duplicate . Duplicates the top value.
02 over , Duplicates the second-to-top value.
03 flip : Flips the top two values.
04 flip all Flips the entire stack.
05 pop Pops the top value.
06 add + Adds the top two values.
07 subtract - Subtracts the top two values.
08 multiply × Multiplies the top two values.
09 divide ÷ Divides the top two values.
0a power I think you get the pattern.
0b modulus Takes the remainder when divided.
0c floor Rounds towards 0.
0d sine
0e number # Prints the top value as a number.
0f print Prints the top value as a character (modulo 256).
10 zero 0 Pushes 0.
11 one 1 Pushes 1.
12 two 2 Pushes 2.
13 three 3 Pushes 3.
14 four 4 Pushes 4.
15 five 5 Pushes 5.
16 six 6 Pushes 6.
17 seven 7 Pushes 7.
18 eight 8 Pushes 8.
19 nine 9 Pushes 9.
1a push Pushes a number on to the stack.
1b pi π Pushes pi.
1c euler e Pushes Euler's number.
1d byte Pushes 256.
1e round [ Rounds as usual.
1f ceiling Rounds away from 0.
20 jump Jumps to the corresponding instruction.
21 start loop ( Jumps to the corresponding ) if the top value is ≤0.
22 end loop ) Goes back to the corresponding ( if the top value is >0.
23 input Input a number and push it to the stack.
24 increment i Increases the top value by 1.
25 decrement d Decreases the top value by 1.
26 square s Squares the top value.
27 negative ` Negates the top value.
28 short σ Pushes 65536.
29 int λ Pushes 2147483648.
2a long Λ Pushes 9223372036854775808.
2b double Δ Pushes 1.797693134862316e+308.
2c reciprocal r Divide 1 by the top value.
2d logarithm l Take log base a of b.
2e nan ! Pushes NaN.
2f infinity Pushes infinity (float).
30 if c If the top value of the stack is a specified number, run the code.
31 else C Otherwise, do this.
32 end conditional x End the code in the else block.
33 range N Make an array of all the natural numbers (starting at 1) ≤ the top value.
34 complex C Make a complex number of the form a+bi.
35 unary ¹ Output the top value in unary.
36 newline Insert a newline.
37 ? ? ?
38 ? ? ?
39 ? ? ?
3a quack q Plays a quacking sound effect. The only source of sound in this language.
3b random Pushes a random number between 0 and 1.
3c un ° Inverses a given command.
3d cycle Toggles cycle mode: the program goes back to the first command after finishing the last.
3e clear Pops everything.
3f end Ends the program.

Order

When using a command like subtract -, the top value is the first argument. So,

25-# **** **** ****

outputs 3, but

52-# **** **** ****

outputs -3.

Numbers

Numbers are represented in six bits, using the standard binary representation.

Table of values
Number Byte Number Byte Number Byte Number Byte
0 00 16 10 32 20 48 30
1 01 17 11 33 21 49 31
2 02 18 12 34 22 50 32
3 03 19 13 35 23 51 33
4 04 20 14 36 24 52 34
5 05 21 15 37 25 53 35
6 06 22 16 38 26 54 36
7 07 23 17 39 27 55 37
8 08 24 18 40 28 56 38
9 09 25 19 41 29 57 39
10 0a 26 1a 42 2a 58 3a
11 0b 27 1b 43 2b 59 3b
12 0c 28 1c 44 2c 60 3c
13 0d 29 1d 45 2d 61 3d
14 0e 30 1e 46 2e 62 3e
15 0f 31 1f 47 2f 63 3f

Examples

Does nothing

Normal: □□□□□□□□□□□□
Unshackled: **** **** **** ****
Bytes: 00 00 00 00 00 00 00 00 00 00 00 00

Print "hi" in lowercase

Normal: kDˆ<CÀ□□□□□□
Unshackled: ↑C2× →i→* **** ****
Bytes: 6b 44 88 3d 43 c0 00 00 00 00 00 00

Truth-machine

Normal: ♠□ρ?ΠαFυÒ□□□
Unshackled: ↓c*0 →Cc. 1(→) ****
Bytes: 8f 00 10 3f 1c 01 46 13 d2 00 00 00