@1
A:MOV UP ACC
L:SUB 2
JLZ F
SWP
ADD 1
SWP
JNZ L
MOV 2 DOWN
SWP
JMP L
F:ADD 1
SWP
ADD ACC
ADD 1
MOV ACC DOWN

@4
A:MOV UP ACC
SUB 2
JEZ P
JLZ E
ADD 2
MOV ACC RIGHT
W:MOV DOWN NIL
JMP A
P:MOV 2 DOWN
JMP A
E:MOV 0 DOWN
JMP W

@5
A:MOV LEFT ACC
N:SAV
MOV ACC RIGHT
MOV -1 ACC
L:ADD 1
JRO RIGHT
SWP
JMP N
MOV ACC RIGHT
JEZ A
ADD 1
JMP N

@6
A:MOV LEFT ACC
L:SUB DOWN
JGZ P
JEZ S
MOV 1 LEFT
MOV -2 DOWN
JMP A
P:MOV -1 LEFT
MOV -1 DOWN
JMP L
S:MOV 3 LEFT
MOV 1 DOWN
MOV LEFT DOWN

@8
A:MOV ANY ACC
MOV ACC DOWN
JNZ A
MOV 1 UP

@9
MOV RIGHT LEFT

@10
A:MOV 1 ACC
I:ADD 2
L:MOV ACC UP
JRO UP
MOV ACC LEFT
SAV
MOV UP ACC
JEZ E
SWP
JMP L
E:MOV 0 LEFT
