How does microcode work??