FLIPER

From Esolang
Jump to navigation Jump to search

The FLIPER Computer is a computational model made by User:FireCubez with 6 commands.

Commands

Command Position Action
F 0 Flips the program by shifting each position, so F becomes L, L becomes I, E becomes F etc.
L 1 Calculates the logical NAND of the program's instructions' positions modulo 2 at an index specified by the positions of the next 2 commands and stores it in the first specified value
I 2 Shifts the program's code to the left x times (overflows back to the right) where x is the next command's position
P 3 Copies a value from position x in the program code and stores it in y, where x and y are the next 2 commands' positions
E 4 If the next instruction is an R, change it to an E and shift the program's code to the left so as to skip executing that instruction, otherwise change it to an R.
R 5+ NOP. When flipped by F, it doesn't wrap back, instead it just gets a position of 6 and so on, always staying an R instruction unless changed.

For control flow, the program loops infinitely

Any invalid command will make the machine halt when executed, but has a position considered to be it's ASCII value modulo 65

All "indexes" mentioned are 0-based

Examples

NAND 2 values

LGHNNN__

Replace __ with any 2 characters to NAND, result stored in the first _ after execution as "F" for false and "L" for true

Broken down:

L        (NAND)
 G       (The value at pos 6)
  H      (and at pos 7)
   NNN   (NOPs, also make the program halt)
      __ (Spaces for result and input)