@0
L: MOV UP, ACC
JEZ END
SUB 3
JNZ P
SWP
ADD 1
SWP
JMP L
END: MOV 0, DOWN
SWP
MOV ACC, DOWN
JMP L
P: MOV ACC, DOWN

@1
MOV 0, UP
L: MOV RIGHT, ACC
JEZ END
SUB 1
JEZ IS4
ADD UP
MOV ACC, UP
JMP L
IS4: SWP
ADD 1
SWP
JMP L
END: MOV UP, DOWN
SWP
MOV ACC, RIGHT

@2
L: MOV UP, ACC
JLZ R
MOV ACC, LEFT
JEZ E
JMP L
R: MOV ACC, RIGHT
JMP L
E: MOV 0, RIGHT
MOV LEFT, DOWN
MOV UP, DOWN
MOV RIGHT, DOWN
MOV RIGHT, DOWN

@3
MOV 0, UP
L: MOV LEFT, ACC
JEZ END
ADD 2
JEZ IS1
ADD UP
MOV ACC, UP
JMP L
IS1: SWP
ADD 1
SWP
JMP L
END: MOV UP, LEFT
SWP
MOV ACC, LEFT

@4
MOV UP, ACC
SAV
MOV 4, ACC
L: SWP
MOV ACC, RIGHT
ADD RIGHT
SWP
MOV ACC, RIGHT
SUB 1
JEZ E
MOV -10, RIGHT
JMP L
E: MOV 1, RIGHT

@5
MOV 5, ACC
SAV
L: MOV UP, ACC
SUB LEFT
JGZ GT
MOV 0, LEFT
MOV LEFT, NIL
JLZ LT
JMP S
GT: MOV ACC, LEFT
MOV LEFT, ACC
S: SAV
LT: JRO LEFT
SWP
MOV ACC, DOWN

@6

