@0
S: MOV RIGHT, ACC
SAV
MOV RIGHT, ACC
SUB 2
JGZ M
SWP
JMP O
M: SWP
L: SUB 10
JGZ L
ADD 10
O: SWP
MOV ACC, DOWN
SWP
MOV ACC, DOWN

@1
S: MOV UP, ACC
SAV
SUB 1
JNZ M
MOV RIGHT, NIL
MOV RIGHT, ACC
JMP O
M: MOV RIGHT, ACC
MOV RIGHT, NIL
O: MOV ACC, LEFT
SWP
MOV ACC, LEFT

@2
S: MOV UP, ACC
ADD 1
SAV
L3: SUB 300
JGZ L3
ADD 300
L: SUB 100
JGZ L
ADD 100
MOV ACC, LEFT
SWP
MOV ACC, LEFT

@3
S: MOV UP, ACC
JGZ P
JEZ T
MOV UP, ACC
L1: MOV 1, RIGHT
SUB 100
JGZ L1
JMP E
T: MOV UP, ACC
L2: MOV 1, RIGHT
SUB 10
JGZ L2
JMP E
P: MOV UP, RIGHT
E: MOV -999, RIGHT

@4
S: MOV 1, ACC
L: ADD LEFT
JGZ L
ADD 997
MOV ACC, DOWN

@7
MOV UP, ACC
ADD ACC
MOV ACC, LEFT
ADD ACC
ADD ACC
ADD LEFT
ADD UP
ADD ACC
MOV ACC, LEFT
ADD ACC
ADD ACC
ADD LEFT
ADD UP
MOV ACC, RIGHT

@8
MOV LEFT, DOWN
