Sorry for the italics, not sure where they came from...
Right..I can now interpret the library codes too...I realised that they are reversed to what I expected...where I thought the segments would be recorded left to right they are in fact recorded right to left...thus where I expected "3" to be "11110010" It's actual "01001111"...
This bitshift things seems to be very clever, but I'm not quite grasping it yet...the statement that's in the "write command of "displaybuffer*>>8"; that's effectively clearing the value isn't it? shifting it eight points to the right moves all the exisiting eight bits completely "off-register", so we are back to "00000000"?*
Still trawling through my serial outputs...I think displaybuffer is holding 8 values of 0 or 1, which corresponds to the segments...just not QUITE sure how it "finds" the right digit/display, or what the difference is between all the other segments going out or staying on when a new one is added...