@0
MOV RIGHT, ACC
S: SAV
MOV ACC, DOWN
MOV -1, ACC
L: ADD 1
JRO DOWN
SWP
JMP S
JEZ D
ADD 1
MOV 1, DOWN
JMP S
D: MOV 3, DOWN

@1
MOV UP, RIGHT
MOV UP, RIGHT
MOV UP, LEFT

@2
MOV LEFT, DOWN
MOV LEFT, ACC
S: SAV
MOV ACC, DOWN
MOV -1, ACC
L: ADD 1
JRO DOWN
SWP
JMP S
JEZ D
ADD 1
MOV -2, DOWN
JMP S
D: MOV 1, DOWN

@3
T: MOV UP, ACC
JMP S
L: MOV -1, DOWN
MOV -1, UP
S: SUB DOWN
JGZ L
JEZ D
MOV 1, UP
MOV -5, DOWN
JMP T
D: MOV 3, UP
MOV UP, DOWN

@4
L1: SUB 2
JNZ O
SUB 1
O: ADD 4
JMP L2
D1: MOV ACC, DOWN
L2: MOV ACC, RIGHT
JRO RIGHT
MOV ACC, DOWN
MOV 0, DOWN
SUB ACC

@5
MOV UP, RIGHT
T: MOV UP, ACC
JMP S
L: MOV -1, LEFT
MOV -1, UP
S: SUB LEFT
JGZ L
JEZ D
MOV 1, UP
MOV -7, LEFT
JMP T
D: MOV 3, UP
MOV UP, ACC
MOV ACC, LEFT
JLZ T

@6
MOV LEFT, ACC
S: SAV
MOV ACC, DOWN
MOV -1, ACC
L: ADD 1
JRO DOWN
SWP
JMP S
JEZ D
ADD 1
MOV 1, DOWN
JMP S
D: MOV 3, DOWN

@7
L1: SUB 2
JNZ O
SUB 1
O: ADD 4
L2: MOV ACC, UP
JRO UP
MOV ACC, RIGHT
JMP L2
MOV ACC, RIGHT
MOV 0, RIGHT
SUB ACC

@8
R: MOV RIGHT, ACC
MOV ACC, DOWN
JNZ R
U: MOV UP, ACC
MOV ACC, DOWN
JNZ U
L: MOV LEFT, ACC
MOV ACC, DOWN
JNZ L

@9
L1: SUB 2
JNZ O
SUB 1
O: ADD 4
L2: MOV ACC, RIGHT
JRO RIGHT
MOV ACC, LEFT
JMP L2
MOV ACC, LEFT
MOV 0, LEFT
SUB ACC

@10
T: MOV UP, ACC
JMP S
L: MOV -1, LEFT
MOV -1, UP
S: SUB LEFT
JGZ L
JEZ D
MOV 1, UP
MOV -5, LEFT
JMP T
D: MOV 3, UP
MOV UP, LEFT
