@1
MOV UP, DOWN

@2
T: MOV UP, ACC
JNZ M
ADD 500
M: MOV ACC, DOWN

@3
TOP: MOV UP, ACC
JNZ N
ADD 999
N: SAV
LP: MOV ACC, RIGHT
MOV RIGHT, ACC
JGZ OUT
ADD 499
JEZ TOP
SWP
SAV
JMP LP
OUT: SWP
MOV ACC, RIGHT

@4
T: MOV RIGHT, ACC
SAV
CMP: SUB LEFT
MOV ACC, LEFT
JGZ PA
SWP
MOV ACC, DOWN
JMP T
PA: MOV LEFT, ACC
MOV ACC, DOWN
SWP
SAV
JMP CMP

@5
MOV UP, LEFT

@8
L: MOV UP, ACC
SUB 500
JEZ O
ADD 500
O: MOV ACC, DOWN
