Quote: "that was top notch 5 years ago"
Five years is an eternity in the world of computers! When I deliver a new computer to a customer, I tell them it will be obsolete in around three to six months!
A five year old computer is a practically a museum piece.
To keep my machine relatively up to date, I upgrade odds and ends fairly frequently and upgrade the CPU (and motherboard if necessary) every 12-18 months.
That way, the cost is spread gradually and you never end up with a complete box of ancient parts.
1.6 Gig isn't too bad CPU-wise, so if the budget is tight I would suggest that upgrading the GFX card (if your current one has less than 128MB DDR memory) would be the best option to give the best improvement for the outlay.
Anyway, back to the fps problem...
Your snippet is on the right lines.
I use a counter variable - like ObjCount - which is incremented when the program creates an object and decremented when it deletes an object.
You then always know how many objects there are. So, your For..Next loop can count from 1 to ObjCount instead of 65535 - saving time.
When you hide an object, it's not the same as deleting - it still exists.
For N = 1 to ObjCount
If Object In Screen(N)=0
Hide Object N
Else
Show Object N
Endif
Next N
TDK_Man