@0
MOV RIGHT, DOWN

@1
MOV 0, LEFT
A: MOV RIGHT, ACC
MOV ACC, LEFT
JNZ A
B: MOV RIGHT, ACC
JEZ C
NEG
MOV ACC, DOWN
JMP B
C: MOV RIGHT, DOWN
JMP C

@2
MOV RIGHT, LEFT

@3
MOV UP, LEFT

@4
Q: MOV UP, ACC
SAV
MOV LEFT, NIL
R: MOV LEFT, ACC
MOV ACC, DOWN
SWP
MOV ACC, DOWN
SWP
JNZ R
MOV ACC, RIGHT
MOV ACC, LEFT
RS: MOV RIGHT, ACC
MOV ACC, LEFT
JNZ RS

@5
MOV 0, DOWN
W: MOV LEFT, NIL
MOV DOWN, NIL
P: MOV DOWN, ACC
MOV ACC, LEFT
JNZ P
MOV ACC, DOWN
JMP W

@7
F: MOV UP, ACC
MOV ACC, RIGHT
ADD UP
JNZ F
MOV RIGHT, ACC
NEG
JGZ O
MOV ACC, RIGHT
JMP F
O: MOV ACC, DOWN
