@0
MOV UP,RIGHT
MOV UP,ACC
SAV
MOV UP,DOWN
R: MOV RIGHT,ACC
JEZ H
SUB 1
MOV ACC,DOWN
MOV DOWN,RIGHT
JMP R
H: SWP
MOV ACC,RIGHT
SWP
JMP R

@1
MOV LEFT,ACC
SAV
R: MOV RIGHT,ACC
JEZ H
SUB 1
MOV ACC,LEFT
MOV LEFT,RIGHT
JMP R
H: SWP
MOV ACC,RIGHT
SWP
JMP R

@2
N: MOV UP,ACC
SAV
C: MOV DOWN,LEFT
MOV ACC,DOWN
MOV LEFT,DOWN
MOV DOWN,ACC
JNZ N
SWP
JMP C

@3


@4
MOV UP,ACC
R: MOV UP,NIL
MOV ACC,UP
JMP R

@6
C: MOV DOWN,UP
MOV UP,ACC
SUB UP
MOV ACC,DOWN
MOV DOWN,UP

@7


@9
C: SAV
MOV ACC,RIGHT
MOV RIGHT,ACC
JEZ M
SWP
ADD 1
MOV ACC,RIGHT
MOV 0,ACC
JMP C
M: SWP
ADD 1
SUB 3
MOV ACC,RIGHT
JEZ C
ADD 3

@10
C: MOV LEFT,UP
MOV UP,LEFT
MOV LEFT,ACC
JLZ N
JEZ F
SUB 1
JEZ N
MOV 0,UP
JMP C
N: MOV 1,UP
MOV 0,DOWN
JMP C
F: MOV 1,UP
MOV 1,DOWN
