@0
MOV RIGHT, DOWN

@1
N: MOV UP, ACC
S: SAV
MOV ACC, DOWN
MOV DOWN, ACC
JLZ R
SUB 1
JEZ D
ADD 1
JMP S
R: SWP
MOV ACC, RIGHT
JMP S
D: MOV 0, LEFT

@2
L: MOV LEFT, ACC
SAV
MOV DOWN, ACC
SUB 7
JEZ P
ADD 7
SUB 2
JEZ T
ADD 4
O: MOV ACC, DOWN
JMP L
T: MOV 3, ACC
JMP O
P: SWP
JMP O

@3
MOV UP, DOWN

@4
S: MOV UP, ACC
L: SUB RIGHT
JGZ C
JLZ N
MOV 7, RIGHT
MOV RIGHT, UP
JMP S
C: MOV 1, RIGHT
JMP L
N: MOV 3, RIGHT
MOV ACC, UP

@5
R: MOV 2, ACC
L: MOV ACC, LEFT
JRO LEFT
C: MOV 1, RIGHT
JMP L
I: MOV -1, RIGHT
MOV ACC, UP
MOV UP, ACC
JMP L
F: MOV 3, RIGHT
MOV RIGHT, LEFT
MOV ACC, DOWN
JMP R

@6
R: MOV 0, ACC
L: JRO LEFT
ADD 1
JMP L
ADD 1
MOV ACC, LEFT
JMP R

@7
MOV UP, RIGHT

@8
MOV ANY, DOWN

@9
MOV UP, LEFT

@10

