@0
L: ADD ACC
ADD ACC
SWP
MOV RIGHT, ACC
JGZ L
JEZ L
SWP
NEG
ADD RIGHT
MOV ACC, DOWN

@1
L: MOV UP, ACC
JEZ Z
SWP
MOV ACC, LEFT
JMP L
Z: MOV -1, LEFT
SWP
MOV ACC, DOWN
MOV ACC, LEFT

@4
MOV RIGHT, DOWN
MOV UP, ACC
JGZ J1
JEZ J2
ADD 8
JEZ J5
ADD 247
JEZ J2
JLZ J1
MOV 1, ACC
J2: ADD 2
JMP O
J1: MOV -10, ACC
J5: ADD 11
O: MOV ACC, DOWN

@7
S: MOV UP, ACC
JRO UP
ADD ACC
ADD ACC
ADD ACC
SUB 256
JEZ W
SUB 743
JEZ W
ADD 999
MOV ACC, DOWN
JMP S
W: MOV 1, DOWN
