# Quell

Jump to navigation
Jump to search

**Quell** (**Que**ue ca**ll**) - is an esolang by User:ChuckEsoteric08. It was created as a compilation target for high-level languages which use Call Queue that could be compiled into Sque bytecode

## Specification

Quell uses infinte tape which can hold unbounded values. It also uses Call Queue for subroutines.`*x`

returns value in cell x

### Commands

SET x y - set cell x to y ADD x y - add cell x and cell y and store in x SUB x y - subtract cell y from cell x and store in x JMP x - jump to subroutine x JNZ x y - if cell x is not zero jump to subroutine y JZ x y - if cell x is zero jump to subroutine y JEQ x y z - if cell x is y jump to subroutine z RET - return from subroutine INP x - input one byte and store it in x OUT x - output x as ASCII character abc: - subroutine called abc

### Additional commands

If the language would be compiled to Quell and then to Sque, then following commands can be used, but they are optional and examples would only use instructions above:

STR x y - set x to string y INT x y - set x to integer y BOOL x y - set x to boolean y JGT x y z - jump if greater than JLT x y z - jump if less than MUL x y - multiply DIV x y - divide MOD x y - modulo ADD x y - if at least one of the cell is a string, then concatenate INP x - input string and set cell x to it OUT x - output cell x CHR x y z - set cell x to y-th chatacter in string z

## Examples

### Cat

loop: INP 0 OUT 0 JNZ 0 loop