@0
MOV UP ACC
SUB 5
JLZ N
NEG
ADD 1
N:ADD 5
ADD ACC
MOV ACC RIGHT
MOV RIGHT ACC
ADD 1
L:JRO RIGHT
MOV ACC DOWN
MOV ACC RIGHT
JMP L
MOV 9 DOWN

@1
MOV LEFT RIGHT
MOV RIGHT ACC
MOV ACC LEFT
JEZ F
MOV UP ACC
JMP C
F:MOV UP RIGHT
MOV RIGHT ACC
C:JEZ E
L:MOV 1 LEFT
MOV LEFT DOWN
SUB 1
JGZ L
E:MOV 4 LEFT
MOV 9 DOWN

@2
A:MOV LEFT ACC
SUB 3
JRO ACC
MOV 2 LEFT
JMP A
MOV 1 LEFT
JMP A
MOV 5 LEFT
JMP A
MOV 4 LEFT
JMP A
MOV 0 LEFT
MOV LEFT RIGHT
MOV RIGHT LEFT

@3
A:MOV LEFT ACC
SUB 4
JLZ S
L:SUB 4
JGZ L
ADD 8
MOV ACC LEFT
JMP A
S:MOV 0 LEFT

@4
L:MOV DOWN ACC
JRO UP
ADD ACC
ADD ACC
ADD DOWN
JMP E
ADD ACC
ADD DOWN
ADD ACC
JMP E
MOV DOWN NIL
MOV -1 ACC
E:MOV ACC DOWN

@5
L:MOV DOWN ACC
JRO UP
ADD ACC
ADD ACC
ADD DOWN
JMP E
ADD ACC
ADD DOWN
ADD ACC
JMP E
MOV DOWN NIL
ADD 100
E:MOV ACC DOWN

@6
R:MOV 1 ACC
L:MOV ACC UP
MOV ACC UP
MOV UP ACC
JLZ R
M:SUB 100
JLZ N
MOV 1 RIGHT
JMP M
N:ADD 100
MOV 601 RIGHT
JMP L

@7
R:MOV -100 ACC
JMP L
C:ADD LEFT
JLZ C
SUB 601
M:ADD 100
JLZ M
SUB 100
L:MOV ACC UP
MOV ACC UP
MOV UP ACC
JLZ C
MOV ACC RIGHT
MOV RIGHT DOWN

@8
MOV LEFT ACC
L:SUB 10
JLZ E
SWP
ADD 1
SWP
JMP L
E:SWP
MOV ACC LEFT
MOV 0 ACC
SAV
