@0
L:MOV UP ACC
MOV ACC DOWN
SUB 16
JLZ N
MOV 0 ACC
JMP S
N:ADD 3
JLZ A
JMP S
A:ADD 16
S:MOV ACC DOWN
MOV ACC DOWN
JMP L

@1
MOV 7 ACC
I:MOV 0 LEFT
SUB 1
JNZ I
L:JRO DOWN
JMP A
SWP
MOV ACC DOWN
MOV DOWN ACC
SWP
JMP L
A:MOV ACC DOWN
MOV DOWN ACC
JMP L

@2
MOV UP RIGHT
SUB UP
JGZ R
F:JEZ X
MOV 1 RIGHT
ADD 1
JMP F
R:MOV 4 RIGHT
SUB 1
JGZ R
X:MOV 7 RIGHT
MOV UP ACC

@3
MOV 8 ACC
I:MOV 0 UP
SUB 1
JNZ I
S:MOV LEFT RIGHT
L:JRO LEFT
MOV ACC DOWN
MOV UP ACC
JMP L
MOV ACC UP
MOV DOWN ACC
JMP L
MOV ACC RIGHT
MOV RIGHT ACC
JMP S

@4
L:MOV LEFT ACC
SAV
SUB 16
JLZ N
ADD 1
MOV ACC UP
MOV LEFT LEFT
N:MOV ANY ACC
SUB 4
JEZ O
ADD 5
O:MOV ACC LAST
MOV ACC DOWN
SWP
MOV ACC DOWN

@6
MOV UP ACC
MOV 0 DOWN
MOV UP DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
JRO RIGHT
MOV -1 DOWN

@7
MOV -10 LEFT
MOV -10 LEFT
MOV 1 LEFT
