SwapLoad
Designed by | RainbowDash |
---|---|
Appeared in | 2025 |
Memory system | Counters |
Computational class | Category:Unknown computational class |
Reference implementation | Provided on the page. |
SwapLoad is a minimalistic OISC that uses only a single instruction. The instruction can be described in pseudo-code as:
SWAP PTR $PTR $PTR = CONSTANT
When this is presented in assembly form it takes this shape.
SWPLD 10 SWPLD 32 SWPLD 23
Or more simply
10 32 23
Memory Layout
In a SwapLoad environment, memory is organized as follows:
[ PTR | IP | Program ... | Editable memory ... ]
PTR points to the memory location to be modified. The initial value for this is set at zero and also accesses values with zero-indexing.
IP is the instruction pointer. The initial value for this is set at two, because that is where the program starts.
Program is the instructions that will run until IP hits the end of the program.
Editable memory is the remaining memory cells, which can be modified by the program.
Reference Implementation
program = [ # Random values; purely for demonstration 10, 32, 23, ] memory = [0, 2] + program + [0]*300 while memory[1] < 2+len(program): ip = memory[1] # fetch IP value = memory[ip] # fetch program value pointer = memory[0] # pointer in memory memory[0], memory[pointer] = memory[pointer], memory[0] memory[pointer] = value print(f"ADDR {pointer} is now set to {memory[pointer]}") memory[1] += 1 print(memory[:20]) # print first 20 memory cells
Computational Class
Currently, SwapLoad is not believed to be Turing Complete. While it can perform infinite loops and modify memory, creating conditionals or a truth machine has not been done yet under this OISC.