@0
MOV 999,ACC
L:SAV
SUB RIGHT
JGZ N
SWP
JMP L
N:MOV ACC,DOWN
SWP
SUB DOWN
JEZ E
JMP L
E:SWP
MOV ACC,RIGHT

@1
S:MOV UP,ACC
MOV ACC,LEFT
MOV ACC,RIGHT
MOV ACC,RIGHT
MOV ACC,DOWN
JNZ S
MOV 999,RIGHT
MOV NIL,RIGHT
MOV LEFT,DOWN
MOV RIGHT,DOWN

@2
L:SAV
SUB LEFT
JLZ N
SWP
MOV LEFT,NIL
JMP L
N:MOV LEFT,ACC
JEZ E
JMP L
E:SWP
MOV ACC,LEFT
MOV 0,ACC

@3
S:SAV
MOV UP,ACC
JEZ E
MOV ACC,RIGHT
SWP
SUB RIGHT
JMP S
E:SWP
MOV ACC,DOWN
MOV UP,DOWN
MOV UP,DOWN
MOV 0,ACC

@4
S:MOV RIGHT,ACC
SAV
SUB RIGHT
NEG
ADD 1
MOV ACC,RIGHT
L:SWP
MOV ACC,RIGHT
ADD 1
SWP
SUB 1
JGZ L

@5
MOV UP,RIGHT
MOV UP,LEFT
MOV UP,LEFT
MOV LEFT,ACC
L:SWP
ADD LEFT
SWP
SUB 1
JGZ L
SWP
MOV ACC,RIGHT
MOV RIGHT,ACC
MOV ACC,DOWN

@6
MOV LEFT,ACC
ADD LEFT
MOV ACC,LEFT
