Hi, all This topic is a little different from C51. I still hope that someone can help me. Thanks! A lot of signals will come into my firmware, and the firmware do approprate action based on its state and receiveing event. So there are several concurrent state machine. My possible solution is use several global variables to store states. Is there any other better solution? Second, as there is a large number of incoming events, how can i identify those events quickly? Any suggestion? Thanks!