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

@1
L:JRO DOWN
JMP A
SWP
MOV ACC DOWN
MOV DOWN ACC
SWP
JMP L
A:MOV ACC DOWN
MOV DOWN ACC

@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 15 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
MOV ACC DOWN
SUB 16
JLZ N
ADD 1
MOV ACC UP
MOV LEFT LEFT
N:MOV ANY DOWN
MOV DOWN LAST
MOV 4 ACC
P:MOV -6 DOWN
SUB 1
JNZ P
MOV 1 DOWN

@6
MOV 0 DOWN
MOV UP DOWN
MOV UP ACC
SUB 4
JEZ Z
ADD 5
Z:MOV ACC UP
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
MOV ACC DOWN
JRO UP
MOV -1 DOWN
