procedure main{ arguments_none returns_never variable command byte call reset() loop_forever { command := get_byte() switch (command >> 6) { case 0 { switch ((command >> 3) & 7) { case 0 { switch (command & 7) { case 0 { # Command 0000 0000: } #... case 7 { # Command 0000 0111: } } } #... case 7 { # .... } } } default 3 { #... } } } }