@1
MOV UP, DOWN

@2
MOV UP, DOWN

@3
TOP: MOV UP, ACC
JEZ ZERO
LOOP: SAV
MOV ACC, RIGHT
MOV ACC, RIGHT
MOV ACC, LEFT
MOV RIGHT, ACC
SUB LEFT
JEZ TOP
SWP
JMP LOOP
ZERO: MOV 999, ACC
JMP LOOP

@4
S: MOV LEFT, ACC
SAV
MOV RIGHT, ACC
SUB LEFT
JGZ A
B: MOV RIGHT, ACC
O: MOV ACC, LEFT
MOV ACC, RIGHT
MOV ACC, DOWN
JMP S
A: SWP
MOV RIGHT, NIL
JMP O

@5
TOP: MOV UP, ACC
JEZ ZERO
LOOP: SAV
MOV ACC, LEFT
MOV ACC, LEFT
MOV ACC, DOWN
MOV LEFT, ACC
SUB DOWN
JEZ TOP
SWP
JMP LOOP
ZERO: MOV 999, ACC
JMP LOOP

@8
L: MOV UP, ACC
SUB 999
JEZ Z
ADD 999
MOV ACC, DOWN
JMP L
Z: MOV ACC, DOWN
