maincnt は符号付き 32bit 整数かな? だとしたら、みけらんジェロさんのコードは無限ループする場合があります。 wrap する値を比較する場合は、加算使っちゃだめです。 M+6 <= maincnt ではなく 6 <= maincnt-m としないとダメです。 ∵たまたま m = 2^31-1 になった場合 m+6 は 2^31+5 になりますが、maincnt は 2^31-1 の次は -2^31 になるので、絶対に m+6 <= maincnt は真になりません。