We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

SS (CatLooks)

From Esolang
(Redirected from Ss)
Jump to navigation Jump to search

SS is an esoteric programming language created by CatLooks.

Overview

Each line in SS is written in int [byte] style.

It uses console I/O, has 2 registers and 256 bytes of shelf memory.

Memory

There're 2 registers: data & buffer. Each of them contain a single byte representing an unsigned integer.

For more space we have 256 bytes of shelf memory. Shelf memory is a type of memory similar to stack memory.

When you push a byte, everything moves to the left and the last byte is overwritten with value in data.

When you pop a byte, everything moves to the right and the last byte is moved to data.

You can also rotate the whole thing, either right or left.

Instructions

Opcode Description
set <byte> Sets a value for data
add <byte> Adds a value to data
sub <byte> Subtracts a value from data
and <byte> ANDs data by value
orb <byte> ORs data by value
xor <byte> XORs data by value
mov Moves data to shelf
pop Pops the top byte to data
rol Rotates shelf left
ror Rotates shelf right
inc Adds 1 to data
dec Subtracts 1 from data
rec Records data
res Restores data
lab <str> Creates a label
jmp <str> Jumps to label
equ <str> Jumps to label if data == buffer
neq <str> Jumps to label if data != buffer
gtr <str> Jumps to label if data > buffer
lss <str> Jumps to label if data < buffer
geq <str> Jumps to label if data >= buffer
leq <str> Jumps to label if data <= buffer
jsr <str> Jumps to label as a subroutine
rts Returns from subroutine
end Exits program
out Output data as an ASCII character
inp Input a single character into data
int <byte> Outputs data as a number in the system (2, 8, 10, 16)
str <str> Outputs a string (\n = new line, \r = blank, \s = space, \t = tab)

Interpreter

I wrote Python interpreter which is available on [1].