@0
MOV UP, DOWN

@3
S: MOV UP, ACC
MOV ACC, RIGHT
JEZ S
SAV
MOV 999, DOWN
P: MOV RIGHT, ACC
JGZ Q
MOV 0, DOWN
Q: MOV ACC, DOWN
JGZ P
B: SWP
SAV
SUB DOWN
MOV ACC, RIGHT
JGZ B

@4
I: MOV 999, UP
S: MOV LEFT, ACC
JEZ O
SAV
L: SWP
SAV
SUB UP
MOV ACC, LEFT
JGZ L
R: MOV LEFT, ACC
JLZ S
MOV ACC, UP
JMP R
O: MOV UP, DOWN
JRO DOWN

@7
L: MOV UP, ACC
SUB 999
JEZ Z
MOV -1, UP
ADD 999
Z: MOV ACC, DOWN
JNZ L
MOV -14, UP
