@3
MOV UP, DOWN

@4
MOV 0, LEFT
S1: MOV RIGHT, ACC
JEZ OUT
MOV ACC, LEFT
JMP S1
IN: MOV 0, LEFT
L: MOV DOWN, ACC
JEZ OUT
MOV ACC, LEFT
JMP L
OUT: MOV LEFT, ACC
MOV ACC, RIGHT
JNZ OUT
MOV RIGHT, DOWN
JMP IN

@5
S1: MOV RIGHT, ACC
MOV ACC, LEFT
JGZ S1
L: MOV LEFT, ACC
JEZ D
MOV 1, RIGHT
SUB RIGHT
JEZ NEG
ADD RIGHT
JMP P
NEG: SUB RIGHT
P: MOV ACC, DOWN
JMP L
D: MOV 4, RIGHT

@6
S1: MOV UP, ACC
MOV ACC, LEFT
JNZ S1
S: MOV UP, ACC
L: JRO LEFT
MOV ACC, LEFT
MOV ACC, LEFT
JMP L
JEZ Z
MOV -10, LEFT
JMP S
Z: MOV DOWN, LEFT
JRO DOWN

@7
M3: MOV RIGHT, ACC
JEZ S
MOV ACC, DOWN
JMP M3
M1: MOV RIGHT, ACC
MOV ACC, UP
JNZ M1
JMP S
M2: MOV RIGHT, ACC
JGZ M2
NEG
MOV ACC, UP
JNZ M2
S: MOV 0, RIGHT
JRO UP

@8
MOV 0, LEFT
MOV -6, UP
MOV -9, UP
MOV -6, UP
MOV -8, UP
MOV -14, UP
JRO 0
