@0
MOV UP, DOWN

@2
MOV RIGHT, ACC
SAV
SUB RIGHT
MOV ACC, RIGHT
SWP
MOV ACC, RIGHT

@3
MOV UP, ACC
L: MOV DOWN, LEFT
MOV ACC, LEFT
SAV
MOV LEFT, ACC
JGZ E
MOV LEFT, RIGHT
SWP
JMP L
E: MOV LEFT, DOWN
SWP
MOV ACC, DOWN
NEG
MOV ACC, RIGHT
MOV RIGHT, NIL

@4
MOV 0, UP
M: MOV LEFT, ACC
JEZ OUT
JLZ FL
MOV ACC, UP
JMP M
FL: MOV UP, ACC
JEZ FA
MOV ACC, DOWN
JMP FL
OUT: MOV 0, DOWN
MOV DOWN, NIL
MOV 0, LEFT
JMP M
FA: MOV 0, LEFT

@7
MOV 999, LEFT
M: MOV UP, ACC
JEZ O
MOV ACC, LEFT
JMP M
O: MOV LEFT, NIL
L: MOV LEFT, ACC
SUB 999
JEZ E
ADD 999
MOV ACC, DOWN
JMP L
E: MOV 0, DOWN
MOV 0, UP
