Interesting...
I was thinking a kind of parenthetical DNA command, like this:
imagine this is our genome:
cond
start
50 .repro store
centre5281145
10 .up store
-1 .shoot store
stop
end
when it's parsed into the program, the centre (or perhaps some other label, bear with me) tells the program that there's a centromere with ID 5281145 at that place in the chromosome. This actual command is removed from the bots actual execution code, so it can't be mutated like normal. (think of it like a physical attachment to the DNA, instead of DNA itself).
Then, during reproduction, it lines up with another chromosome that shares the same ID code.
Now for the fun part. If we allow centromeres to develop naturally in a chromosome, some chromosomes may end up with two centromeres. If this happens, two different chromosomes may end up pairing with it. During seperation, this can end up cleaving the chromosome in two. (Doesn't that sound fun :P)
The exact mechanism for creating centromeres I haven't really perfected yet. I'm definately open for ideas. Just randomly works as well as anything, but isn't as fun.
Also, if there aren't any companions with the same centromere, should it beable to pair with it's sister chromosome? ie:
Bot's genome is 1 chromosome.
1
Then it develops a centromere.
1-
It reproduces via mitosis. We basically have two haploid cells:
cell1: 1-
cell2: 1-
If they (or their children) should happen to fuse, we create a diploid bot:
1--1
If that bot should attempt to reproduce via Meiosis, the two chromosomes can cross over with each other.
That's a long process, but that's more or less how I imagine a regular bot evolving into a diploid bot, and the role of centromeres in that process.
Without the centromeres, you'd end up with a bot being:
1 1
which can't benefit from crossing over, so the two chromosomes will drift apart over time (simple genetic drift).