The peculiar input semantics of Pascal are a consequence of a locally hacked-up version of NOS (I think that's the name) that ran on the big CDC machines at ETH in Zurich. It was entirely a card-based system then, and the way Pascal required read-ahead worked perfectly on that system, but not really on any other, including other card-based, even NOS systems. I was told this when I worked on that same machine as an exchange student working at EIR outside Zurich, but not by Wirth himself. I couldn't bring myself to ask him personally.