added gsm modem code and custom micro_delay function