Jump to navigation Jump to search
GrainFimple is an esoteric programming language by User:Zzo38 based on Brainfuck and BF-RLE, and which can be used to make games.
Each program must start with a header containing the following fields:
- SPEED=number of frames per second.
- CHARSET=ASCII7 or DOSASCII.
- If ASCII7, then 32-126 are printable characters, 0-31 and 127 are blank, and 128-255 are reverse-video.
- If DOSASCII, then 0-255 are DOS ASCII symbols.
- ROWS=number of rows in video memory.
- COLS=number of columns in video memory.
- MEMORY=bytes of normal memory required by the program.
- START indicates the end of the header and the start of program execution.
- All BF-RLE commands except
;= Read input of buttons: Bit0=A Bit1=B Bit2=SELECT Bit3=START Bit4=RIGHT Bit5=LEFT Bit6=UP Bit7=DOWN.
:= Switch between normal memory and video memory.
?= Get the value y at the current memory position and the value x at the next memory position and play a sound with frequency (256*y+x) Hz. If y and x are both zero then stop the sound.
~~= Comment until end of line.
$= Next frame.
^= Number of frames passed since last
$(used to test speed).
"= Set memory to the ASCII character after the quotation mark.
&= Compute NAND of the values at the current and next memory positions.
SPEED=30 CHARSET=ASCII7 ROWS=10 COLS=16 MEMORY=256 START :"P>"R>"E>"S>"S>" >"S>"T>"A>"R>"T>"!: +[;>+5<&>[-]-<&-5] :<8"H>"e>"l>"l>"o>" >"W>"o>"r>"l>"d>"!: +