@0
L: SWP
MOV RIGHT, ACC
JNZ L
SWP
ADD ACC
SAV
SUB RIGHT
JNZ OA
SWP
ADD ACC
SUB 15
JGZ OA
ADD 15
OA: MOV ACC, DOWN

@1
MOV UP, ACC
SAV
MOV UP, ACC
L: SWP
MOV ACC, LEFT
MOV UP, ACC
JNZ L
MOV ACC, LEFT
SWP
MOV ACC, LEFT

@3
L: MOV RIGHT, ACC
ADD 10
JGZ L10
ADD 38
JEZ O5
MOV 1, RIGHT
JMP L
L10: SUB 6
JGZ O16
MOV 64, RIGHT
JMP L
O5: MOV 512,RIGHT
JMP L
O16: MOV 16, RIGHT

@4
L: MOV UP, ACC
JGZ OUT
MOV ACC, LEFT
MOV LEFT, ACC
OUT: MOV ACC, DOWN

@7
L: MOV ANY, ACC
SUB 15
JEZ O2
SUB 112
JEZ O4
SUB 500
JGZ O8
ADD 627
OUT: MOV ACC, DOWN
JMP L
O2: MOV 2, DOWN
JMP L
O4: MOV 4, DOWN
JMP L
O8: MOV 8, DOWN
