@0
L: MOV UP,ACC
SAV
MOV 0,ACC
SWP
T: SUB 2
JLZ D
SWP
ADD 1
SWP
JGZ T
D: MOV ACC,DOWN
SWP
ADD 1
MOV ACC,DOWN
MOV ACC,DOWN

@1
MOV 0,LEFT
MOV 4,ACC
I: MOV 0,LEFT
MOV 0,LEFT
SUB 1
JGZ I
E: JMP E

@2
MOV 39,ACC
SAV
L: MOV UP,ACC
ADD 1
MOV UP,RIGHT
JEZ O
MOV 1,RIGHT
JMP R
O: MOV 40,RIGHT
R: MOV UP,RIGHT
SWP
SUB 1
SAV
JGZ L
MOV -1,RIGHT

@3
L: MOV LEFT,ACC
JLZ D
T: MOV UP,DOWN
SUB 1
JGZ T
MOV DOWN,RIGHT
MOV LEFT,RIGHT
MOV RIGHT,DOWN
MOV LEFT,ACC
R: MOV DOWN,UP
SUB 1
JGZ R
JMP L
D: MOV UP,RIGHT
JMP D

@4
MOV 39,ACC
SAV
L: MOV LEFT,ACC
ADD LEFT
SUB 200
JLZ P
R: MOV ACC,LEFT
SWP
SUB 1
SAV
JGZ L
D: MOV LEFT,RIGHT
JMP D
P: ADD 200
JMP R

@5
L: MOV LEFT,ACC
SAV
MOV 0,ACC
SWP
H: SUB 40
JLZ X
SWP
ADD 1
SWP
JMP H
X: ADD 40
MOV ACC,DOWN
SWP
MOV ACC,DOWN

@6
L: MOV RIGHT,ACC
MOV 0,DOWN
SWP
MOV ACC,DOWN
SWP
MOV 30,ACC
P: MOV RIGHT,DOWN
SUB 1
JGZ P
MOV -1,DOWN
SWP
ADD 1
SWP

@7
L: MOV UP,ACC
M: SUB 5
JLZ N
JGZ M
JEZ O
N: ADD 5
O: MOV ACC,LEFT
SAV
MOV 30,ACC
P: SWP
MOV ACC,LEFT
SWP
SUB 1
JNZ P
