@0
MOV 15, ACC
I: MOV 0, RIGHT
SUB 1
JGZ I
L: MOV UP, ACC
JNZ F
SWP
ADD 1
SUB 5
JEZ W
ADD 5
W: SAV
ADD 18
F: MOV ACC, DOWN
JMP L

@2
L: MOV UP, ACC
SUB 16
JLZ TAPE
ADD 1
NEG
JMP E
TAPE: ADD 16
MOV ACC, RIGHT
E: MOV ACC, RIGHT

@3
L: MOV LEFT, ACC
JLZ P
SAV
D: MOV UP, DOWN
SUB 1
JGZ D
MOV DOWN, RIGHT
MOV RIGHT, DOWN
SWP
U: MOV DOWN, UP
SUB 1
JGZ U
MOV LEFT, RIGHT
JMP L
P: MOV ACC, RIGHT

@4
S: MOV LEFT, ACC
JLZ B
ADD 1
SUB 5
JEZ W
ADD 5
W: MOV ACC, LEFT
MOV LEFT, DOWN
MOV ACC, DOWN
JMP S
B: MOV ACC, RIGHT
MOV RIGHT, DOWN
MOV RIGHT, DOWN

@5
L: MOV LEFT, ACC
ADD 1
JNZ R17
SWP
ADD 1
SUB 5
JEZ W
ADD 5
W: SAV
MOV 16, LEFT
MOV ACC, LEFT
JMP L
R17: MOV ACC, DOWN
MOV DOWN, LEFT
MOV DOWN, LEFT

@6
MOV 0, DOWN
MOV UP, DOWN
MOV UP, ACC
SAV
MOV 30, ACC
L: SWP
MOV ACC, DOWN
MOV ACC, DOWN
SWP
SUB 2
JGZ L
MOV -1, DOWN

@7
L: MOV UP, ACC
ADD 1
JEZ R17
MOV 0, UP
NEG
SUB 1
JMP E
R17: SWP
ADD 1
SUB 5
JEZ W
ADD 5
W: SAV
MOV 17, UP
E: MOV ACC, UP
