You are lucky I happened to see "mamehooker" in the recent replies for this forum.
Just for future record, whenever you have a software-related problem you should always post it to the software forum because the more knowledgable guys (myself included) check that section more often as it's easier to read due to infrequency of posts.
I would love to help you, but you aren't giving me nearly enough info.
You have three things going on:
1. The hardware interface. (And no, connecting it to the parallel port is NOT enough info, one would need to know what data is sent to the display to set what segments).
2. The game in question
3. The outputs in question
See my first clue is that you are talking about segmented displays as if mame all handles them the same and as if the data is merged into one byte. I know for a fact that this is not the case. Because mame supports the on the fly rendering of segmented digits for the artwork system, each digit gets it's own output, one byte each. For some examples of the values, download some of the display files for mamehooker that use segmented displays... the images are named after the outputted mame value.
Mame's output of digits is supposed to match real hardware, it should work instantly on any arcade based segmented display. You just set one digit at a time, not all at once (which should be impossible on a parallel connection anyway... only one byte at a time afterall) Please note that segmented displays typically have a controller chip.. this is what I am referring to.
But in case you've figured all of this out and the specific Xor issue you are talking about is indeed your issue, this is how Xoring works....
You first set a seperate buffer to the maximum value (in this case 255 as it's a byte)
You then xor that buffer with your value, it will invert any dis-similar bits.
If the value it gives you is the opposite of what you wanted, then don't xor, just use the given value.
If that doesn't work, you can try setting your initial buffer to 0 instead of 255, or xoring your value again with 255.
Now if you are saying you want to manually hook up a output line to each segment on a digit then it can be done, but it will probably have to be done manually.
I'm a little tired atm... please post this over in the software forum if you need more help or have an admin move it for you.