jaredkrinke / sic1

Single-instruction (subleq) programming game
https://jaredkrinke.itch.io/sic-1
Other
83 stars 3 forks source link
esolang esoteric-programming-languages game html5 oisc programming-game subleq zachlike

SIC-1 Logo

SIC-1 is a free and open source single-instruction (subleq) programming game. Neglect your personal life in pursuit of promotions and vague assurances of job security! Optimize your programs to rise to the top of the leaderboards! SIC Systems thanks you for your hard work! Now please return to your desk.

Play

Contribute

Links

Description

SIC-1 is a programming game where the computer only understands a single instruction.

It's an assembly language zachlike for everyone! New programmers will appreciate how few unique instructions there are to learn (just one!), and experienced programmers will appreciate how poorly suited this one instruction is for writing straight-forward programs.

If you're ready for a challenge, respond to this job posting from SIC Systems:

SIC Systems is hiring engineers to produce highly efficient programs for our flagship product: the Single Instruction Computer Mark 1 (SIC-1).

The SIC-1 represents a transformational change in computing, reducing complexity to the point that the processor only executes a single instruction: subtract and branch if less than or equal to zero ("subleq").

Enter the brave new world of single-instruction computing and invent new ways of implementing programs that would be trivial on a conventional computer. Don't adjust the technology to match how you think, adjust your thinking to match how the SIC-1 operates!

Screenshots

Gameplay screenshot

User rank screenshot

SIC-1 Assembly Language

Examples and in-depth documentation are available both in-game and here:

SIC-1 Assembly Language

Example

; Read two numbers and output their sum. Repeat.
@loop:
subleq @tmp, @IN
subleq @tmp, @IN
subleq @OUT, @tmp
subleq @tmp, @tmp, @loop

@tmp: .data 0

General information about subleq

Note: these resources are not specific to the SIC-1 and do not use SIC-1 Assembly Language.