@0
S: MOV UP, ACC
JEZ P
MOV ACC, RIGHT
JMP S
P: MOV RIGHT, ACC
MOV ACC, DOWN
MOV ACC, DOWN
MOV ACC, DOWN
JNZ P
MOV DOWN, ACC
JNZ P
JMP S

@3
P: MOV 0, DOWN
MOV 999, ACC
L: SUB UP
JGZ N
ADD UP
MOV UP, DOWN
JMP L
N: ADD UP
MOV ACC, DOWN
MOV UP, ACC
JNZ L
MOV DOWN, RIGHT
MOV RIGHT, UP
JMP P

@4
MOV 0, UP
T: MOV LEFT, ACC
SUB 999
JEZ Z
ADD 999
Z: SAV
MOV ACC, DOWN
MOV 0, UP
L: MOV DOWN, ACC
JEZ D
MOV ACC, UP
JMP L
D: SWP
MOV ACC, LEFT
JMP T

@7
MOV UP, DOWN
L: MOV LEFT, ACC
SUB 999
JEZ L
ADD 999
MOV ACC, UP
JNZ L
