@0
S: MOV UP, ACC
MOV ACC, DOWN
MOV ACC, RIGHT
MOV RIGHT, DOWN
L: SUB RIGHT
JGZ C
MOV 1, RIGHT
MOV ACC, DOWN
JMP S
C: MOV -1, RIGHT
JMP L

@1
S: MOV UP, ACC
SAV
SUB 11
NEG
MOV ACC, DOWN
MOV LEFT, DOWN
SWP
MOV ACC, LEFT
ADD ACC
ADD ACC
L: MOV ACC, LEFT
JRO LEFT
JMP S

@2
S: MOV UP, DOWN
MOV UP, ACC
MOV UP, DOWN
L: MOV ACC, DOWN
JRO DOWN
NEG
SAV
ADD DOWN
ADD DOWN
JGZ U
MOV DOWN, DOWN
JMP S
U: SWP
ADD DOWN
MOV ACC, DOWN

@3
S: MOV UP, ACC
MOV ACC, RIGHT
MOV UP, RIGHT
L: MOV ACC, DOWN
JRO DOWN
NEG
SAV
ADD DOWN
ADD DOWN
JGZ U
MOV DOWN, DOWN
JMP S
U: SWP
ADD DOWN
MOV ACC, DOWN

@4
S: MOV LEFT, ACC
MOV LEFT, DOWN
ADD ACC
ADD ACC
L: MOV ACC, DOWN
JRO DOWN
JMP S

@5
S: MOV UP, ACC
SAV
MOV UP, ACC
L: ADD UP
JGZ D
MOV -1, UP
JMP L
D: MOV 1, UP
MOV ACC, UP
MOV ACC, UP
MOV ACC, UP
SWP
SUB UP
MOV ACC, DOWN

@6
S: MOV RIGHT, ACC
SAV
MOV RIGHT, ACC
L: ADD UP
JGZ D
MOV -1, UP
JMP L
D: MOV 1, UP
MOV ACC, UP
MOV ACC, UP
MOV ACC, UP
SWP
SUB UP
MOV ACC, DOWN

@7
S: MOV UP, ACC
MOV ACC, LEFT
L: SUB UP
JGZ C
MOV 1, UP
MOV ACC, LEFT
JMP S
C: MOV -1, UP
JMP L
