@0
MOV UP, DOWN

@1
MOV UP, ACC
SUB 512
JLZ A
MOV 64, DOWN
JMP B
A: ADD 512
MOV 0, DOWN
B: SUB 256
JLZ C
MOV 32, DOWN
JMP D
C: ADD 256
MOV 0, DOWN
D: MOV ACC, RIGHT

@2
MOV LEFT, ACC
SUB 128
JLZ A
MOV 16, DOWN
JMP B
A: ADD 128
MOV 0, DOWN
B: SUB 64
JLZ C
MOV 8, DOWN
JMP D
C: ADD 64
MOV 0, DOWN
D: MOV ACC, RIGHT

@3
MOV LEFT, ACC
SUB 32
JLZ A
MOV 4, DOWN
JMP B
A: ADD 32
MOV 0, DOWN
B: SUB 16
JLZ C
MOV 2, DOWN
JMP D
C: ADD 16
MOV 0, DOWN
D: MOV ACC, RIGHT

@4
L: MOV LEFT, ACC
SUB 8
JLZ A
MOV 1, DOWN
JMP L
A: MOV 0, DOWN

@5
MOV UP, ACC
ADD UP
MOV ACC, RIGHT

@6
MOV LEFT, ACC
ADD UP
ADD UP
MOV ACC, RIGHT
MOV RIGHT, ACC
MOV ACC, DOWN

@7
MOV LEFT, ACC
ADD UP
ADD UP
MOV ACC, RIGHT
MOV RIGHT, ACC
MOV ACC, DOWN
ADD ACC
MOV ACC, LEFT

@8
MOV LEFT, ACC
ADD UP
MOV ACC, DOWN
ADD ACC
MOV ACC, LEFT
