Indeed, it cycles through the addresses. I added an explanation to the devcoin article:
http://devtome.org/wiki/index.php?title=Devcoin#Disbursing_the_Share
and pasted it below.
The generation share is 90% of the block, which is 90% * 50,000 devcoins = 45,000 devcoins. It is disbursed to the devcoin addresses in the receiver file, in round robin order. In each generation round, for a given block height, the index of the line of addresses is the block height above the start of the round, modulo the number of addresses. The code snippet for that follows below.
vector
{
..
int remainder = height - step * (height / step);
int modulo = remainder % (int)coinLists.size();
vector
for (vector
{
if (*tokenIterator != string("="))
oldToken = tokenIterator->substr();
coinList.push_back(oldToken);
}
return coinList;
}
Then in CreateBlock, the share per address is calculated by dividing the generation share by the number of coin addresses in the line of addresses. A subtransaction to create share per address coin value is then added for each coin address to the generation transaction. The transactions from generation can be seen by looking at a devcoin block explorer:
http://devcoinblockexplorer.info:2750/chain/Devcoin
or
http://explorer.devcoin.org