Performance problem for simple example

I have recently modified nehe’s lesson 6 (which runs without any problems ) code to use an array of co-ords to display multiple blocks of various sizes. I currently have 16 blocks on screen ( 96 quads ), and when close to them, performance of moving around the screen ( implemented in the same way as the F1 fullscreen switch ) decreases incredibly. Although when the blocks aren’t on screen performance is fine.
My system ( Celeron 650, intel 850 gfx ), plays most new games etc reasonably well.
Any ideas what I’m doing wrong?

youre doing nothing wrong
the card has to draw more pixels when the cubes are closer to the camera. this is called fillrate, its the reason why games will normally run quicker at 640x480 than at 1600x1200. to see if this is the problem make your window very small if the fps increases then u are fillrate bound. all cards suffer from this even geforce3/radeon2’s

That seems to work, but surely there must be a way round this, or all my games would run really slowly in full-screen?

No, not necessarily. I reckon most of your games don’t do a lot of overdrawing like I bet you are doing.