@0
MOV UP, ACC
MOV ACC, DOWN
MOV ACC, RIGHT

@1
S: SWP
MOV LEFT, ACC
JEZ NL
SWP
SUB 30
JEZ C
ADD 30
C: MOV ACC, DOWN
MOV ACC, DOWN
ADD 3
JMP S
NL: MOV -1, DOWN

@2
MOV 10, ACC
S: SWP
MOV RIGHT, ACC
JEZ NL
SWP
JEZ W
MOV -1, DOWN
SUB 1
JMP S
W: MOV 2, DOWN
MOV 9, ACC
JMP S
NL: MOV 103, DOWN

@3
S: MOV UP, ACC
JEZ NL
MOV ACC, LEFT
SUB 3
JEZ Z
MOV 3, RIGHT
JMP D
Z: MOV ACC, RIGHT
D: MOV ACC, RIGHT
JMP S
NL: MOV ACC, LEFT

@4
S: MOV UP, ACC
JLZ S
MOV ACC, DOWN
MOV LEFT, DOWN
MOV LEFT, ACC
MOV ACC, DOWN
MOV UP, DOWN

@6
ADD 1
JMP S
C: ADD 100
MOV ACC, RIGHT
ADD 1
MOV ACC, RIGHT
S: ADD LEFT
SUB 100
JLZ C
JMP S

@7
MOV UP, DOWN
MOV LEFT, DOWN
MOV UP, DOWN
MOV UP, RIGHT
MOV RIGHT, DOWN
MOV -1, DOWN
MOV UP, DOWN
MOV LEFT, DOWN
MOV RIGHT, DOWN
MOV RIGHT, DOWN
MOV -1, DOWN

@8
S: MOV LEFT, ACC
JLZ ZT
MOV 3, LEFT
JMP B
ZT: MOV 0, LEFT
B: ADD 1
JEZ ZB
MOV 3, LEFT
MOV 0, LEFT
JMP S
ZB: MOV ACC, LEFT
MOV 3, LEFT
