Works pretty much like asm_copy_screen(), it copies source to dest. The main differance is that it uses the screen pointed to by mask_address as a "mask", only pixels set (not zero) on this screen will be copied.