@1
R: MOV UP ACC
L: SUB 2
JLZ F
SWP
ADD 1
SWP
JNZ L
SWP
MOV ACC RIGHT
JMP L
F: SWP
NEG
MOV ACC RIGHT
MOV RIGHT ACC
SAV

@2
R: MOV LEFT ACC
JLZ F
JEZ Z
MOV 2 DOWN
JMP R
F: ADD ACC
SUB 1
MOV ACC DOWN
MOV DOWN NIL
MOV 0 LEFT
JMP R
Z: MOV 0 DOWN
MOV 0 LEFT
JMP R

@3
R: MOV 0 ACC
L: MOV DOWN RIGHT
JRO RIGHT
ADD 1
MOV -1 DOWN
JMP L
MOV 1 DOWN
JMP R
JEZ Z
ADD 1
MOV ACC RIGHT
MOV 3 DOWN
JMP R
Z: MOV 5 DOWN
MOV DOWN RIGHT

@4
N: MOV RIGHT ACC
S: SAV
L: SUB LEFT
JGZ P
JEZ E
MOV 4 LEFT
SWP
JMP S
P: MOV 1 LEFT
JMP L
E: MOV 6 LEFT
MOV LEFT ACC
JNZ S
MOV 0 RIGHT

@5
L: MOV UP ACC
JLZ N
MOV ACC DOWN
JMP L
N: NEG
MOV ACC LEFT
MOV LEFT NIL
MOV 0 UP
JMP L

@7
MOV 3 ACC
L: MOV ACC UP
JRO UP
ADD 2
JMP L
MOV ACC RIGHT
JMP L
MOV ACC RIGHT
MOV 0 RIGHT
MOV 0 UP

@8
MOV ANY DOWN

@9
MOV UP LEFT
