Uncompiled
Kung-FU mode

Symball-FU

is a hellish language to program in. Like, seriously, don't even bother.

Symball-FU runs under one principal: the byte-value of each character is decremented once per character before it, and twice per character after it.

ABC becomes =?A

Symball-FU is almost impossible to program in because whenever you insert new characters, it changes the rest of the code.

S2FU

Symball X is heavily in development.

Here are some features you can expect:

  • Longer variables
  • Better support for strings
  • Better support for numbers and math
  • Lots more, but those are the important ones
  • Symball Xtd is basically a wimpmode for Symball

Symball

Symball is a Procedural programming language composed of single-character commands, variables, and values.

Because everything is single-character, this allows for concise, pregolfed code with pre-determined line length.

For example, the Add command, +, will always be succeded by 3 parameters: input variable 1, input variable 2, and a variable to output to. It could end up looking like +^&$, which adds variable ^ to variable & and stores the result in $. +### adds variable # to itself and stores the result in itself.

There is never need to separate lines of code with newlines or semicolons, or even to separate individual commands with spaces. This is because commands are always the same length. " (print) will always have one parameter exactly one character long, and ? (test) will always have five parameters exactly one character long each. Thus, commands and lines can run together indefinitely.

Variable Types

  • ! Integer
  • @ float
  • # double
  • $ string
  • % char

There is no Boolean datatype, so just use 1 and 0 integers instead.

Variable Names

Variable names can be any ASCII symbol (non-ASCII Unicode symbols are treated as normal characters), including command names -- there are no reserved keyboards, as Symball variables are always preceded by commands. As such, you can get zany commands such as !! which defines a variable and names it !.

Constants

  • π returns the value of π
  • _ returns space -- useful because whitespace is removed before running

Passing parameters

Certain commands allow numbers, chars, and constants to be passed in place of variables. For instance, have a look at the Hello World script:

=&H
&&e&
&&l&
&&l&
&&o&
&& &
&&W&
&&o&
&&r&
&&l&
&&d&
“0&

Line 1 declares a string called &

Line 2 sets & to H

Lines 3 to 14 add the e through the d in Hello World

Line 15 prints the variable & which now contains the string Hello World.

To pass different parameter types

"01 prints the number 1

"0A prints the letter A

"0^ prints the contents of variable ^

Please note:

Numbers, chars, strings, and constants may sometimes be passed in place of input variables, but may never be passed in place of output variables.

Commands

Add

+ adds two variables together.

Form: +•••

Parameter 1: Input number 1

Parameter 2: Input number 2

Parameter 3: Output number

Example 1: +!@# adds ! to @ and stores the result in #

Example 2: +@!! adds @ to ! and stores the result in itself

Subtract

- subtracts one variable from another, and outputs it to a number variable.

Form: -•••

Parameter 1: Input number

Parameter 2: Input number

Parameter 3: Output variable name

Example 1: -!@# subtracts variable @ from variable ! and stores it in #

Example 2: -23# subtracts variable 3 from variable 2 and stores it in #

Example 3: -uP# subtracts P (Unicode for 80) from u (Unicode for 117) and stores the result (%, Unicode for 37) in variable #

Multiply

* multipies to variables together

Form: *•••

Parameter 1: Input number 1

Parameter 2: Input number 2

Parameter 3: Output number

Example 1: *!@# multiplies ! by @ and stores the result in #

Example 2: *@!! multiplies @ by ! and stores the result in itself

Divide

/ divides a number by another number

Form: /•••

Parameter 1: Input number 1

Parameter 2: Input number 2

Parameter 3: Output number

Example 1: /!@# divides ! by @ and stores the result in %

Example 2: /82! divides 8 by 2 and stores the result in !

Print

" prints a parameter to the screen, followed by a newline.

Form: "••

Parameter 1: Output type:

  • 0 prints normally
  • 1 prints the Unicode value of a char, or a Unicode value as a char

Parameter 2: Input variable (number, char, variable)

Example 1: "02 prints 2 to the screen

Example 2: "0g prints g to the screen

Example 3: "0$ prints the contents of variable $ to the screen

Example 4: *89$"0$ prints 72 to the screen

Example 5: *89$"1$ prints H (U+0048) to the screen

Uniline Print

' prints a parameter to the screen, not followed by a newline.

Form: '••

Parameter 1: Output type:

  • 0 prints as a string or char
  • 1 prints as an integer

Parameter 2: Input variable (number, char, variable)

Example 1: '02 prints 2 to the screen

Example 2: '0g prints g to the screen

Example 3: '0$ prints the contents of variable $ to the screen

Example 4: *89$'0$ prints 72 to the screen

Example 5: *89$'1$ prints H (U+0048) to the screen

Concat

& concatenates a char or string to another char or string, and outputs it to a string.

Form: &•••

Parameter 1: Input char or string

Parameter 2: Input char or string

Parameter 3: Output string

Example 1: &$#& appends the contents of variable # to the contents of variable $ and stores it in variable &

Example 2: &$D& appends D to the contents of variable $ and stores it in variable &

Example 3: &ab& sets variable $ to ab

Set

= initializes a variable to a number, char, or other variable (including string).

Form: =••

Parameter 1: Variable to set

Parameter 2: Value to set

Example 1: =!@ sets variable ! to @

Example 2: =$H sets variable $ to H

Example 3: =^7 sets variable ^ to 7

Test

? tests conditions and jumps to a : marker if satisfied

Form: ?••••

Parameter 1: First input variable

Parameter 2: Operator

  • < less than
  • - less than or equal to
  • = equal to
  • + more than or equal to
  • > more than

Parameter 3: Second input variable

Parameter 4: Marker to jump to

Example 1: ?&<*# tests if variable & is less than variable *; if so, jumps to marker #

Example 2: ?&=*# tests if variable & is equal to variable *; if so, jumps to marker #

Example 3: ?&+*# tests if variable & is more than or equal to variable *; if so, jumps to marker #

Marker

: creates a marker for an if orgoto` to go to.

Form: :•

Parameter: Marker name

Example 1: :& creates a marker called & for an if or goto to jump to

Example 2: :^ creates a marker called ^ for an if or goto to jump to

Goto

Form: <•

Parameter: Marker to jump to

Example 1: <& jumps to a marker called &

Example 2: <: jumps to a marker called :

π (Pi)

π is a constant preset variable holding the first 15 digits of π (excluding the 3.).

Form: π

No Parameter

Example 1: prints the first 15 digits of π

Example 2: =*π stores the first 15 digits of π in number variable *

_ (Underscore)

_ is a constant preset variable set to <space>.

Form: _

No Parameter

Example 1: "_ prints a space

Example 2: =*_ stores <space> in variable *

Pow

^ raises a variable to the power of another variable.

Form: ^•••

Parameter 1: Operand

Parameter 2: Exponent

Parameter 3: Output variable

Example 1: ^47% raises 4 to the power of 7 and stores the result in %``

Example 2: ^2&% raises 2 to the power of the variable & and stores the result in %

Example 3: ^$2%' raises the variable$to the power of2and stores the result in%`

Example 4: ^^^^ raises the variable ^ to the power of the variable ^ and stores the result in itself.

Repeat --removed, Use GoTo (<) instead

, repeats the last command executed.

Form: ,

No Parameter

Example 1: 'B'o, prints Boo to the screen

Example 2: +9$$,, adds 9 to the variable $, then repeats it twice for a total of 27 added.

Example 3: &o&&,,,,, adds the char o to the end of string or char variable &, stores it in itself, and repeats the process five times.

Examples

Hello, World!

'0H'0e'0l'0l'0o*67+++2'-+9-'1''0_'0W'0o'0r'0l'0d'1-

Prints "Hello, World!", including special characters ,, , and !

Hello, World codeball

 '0H'0e
'0l'0l'0o*
67+++2'-+9-'
1''0_'0W'0o'
0r'0l'0d"1
-'0π:3

An actual Symball. Hard to build, even harder to read. 100% valid. Simply prints:

Hello, World!
3.141592653589793

Note: the :3 (marker) on the end is there purely to fill out the ball. And look cute :3

Symball-FU

Symball-FU runs under one principal: the byte-value of each character is decremented once per character before it, and twice per character after it.

ABC becomes =?A

Symball-FU is almost impossible to program in because whenever you insert new characters, it changes the rest of the code.

Name

Email

Phone # (Optional)

Subject

Message

Enter LOLcode here

Enter BrainF*ck code here

Type text below...

...and the obfuscated code appears here:

Type text below...

...and the non-obfuscated code will appear here.

Eso3D Testing Ground

Eso3D is under development, and is 0% functional. However, any progress I make is updated here, even though it doesn't work.

^ Bytes:
Compression
Obscurity
v Bytes: