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

@1
L: MOV ACC, DOWN
ADD DOWN
JGZ L
F: ADD 128
JLZ F
G: SUB 32
JGZ G
ADD 6
JGZ K
MOV 0, ACC
K: MOV ACC, DOWN

@2
C: SWP
ADD 32
SWP
L: MOV UP, ACC
JEZ Z
SUB 1
JEZ C
MOV ACC, RIGHT
JMP L
Z: SWP
MOV ACC, RIGHT
MOV 0, RIGHT

@3
C: SWP
ADD 32
SWP
L: MOV LEFT, ACC
JEZ Z
SUB 1
JEZ C
MOV ACC, DOWN
JMP L
Z: SWP
MOV ACC, DOWN
MOV 0, DOWN

@4
S: MOV RIGHT, ACC
JEZ E
SUB UP
JGZ G
MOV 0, UP
JMP S
E: MOV UP, NIL
MOV -513, UP
MOV UP, RIGHT
JMP S
G: SUB 10
JGZ N
MOV 0, ACC
N: ADD 10
MOV ACC, UP

@5
C: SWP
ADD 32
SWP
L: MOV RIGHT, ACC
JEZ Z
SUB 1
JEZ C
MOV ACC, LEFT
JMP L
Z: SWP
MOV ACC, LEFT
MOV 0, LEFT
MOV LEFT, DOWN

@6
C: SWP
ADD 32
SWP
L: MOV UP, ACC
JEZ Z
SUB 1
JEZ C
MOV ACC, LEFT
JMP L
Z: SWP
MOV ACC, LEFT
MOV 0, LEFT
