Just to clarify: the question regarding LFSRs is not in how to implement them (which I think was described adequately), but how to determine what their orbit is upon repeated application, and how to choose one that generates a complete permutation when this is done. And furthermore, how was the particular one used in Wolf3D found. Was 100% Psyched to hear how the screen could be efficiently cleared pixel-by-pixel seemingly at random, but ultimately was left in the dark on this specific question.