Okay, here's one way you can do it:
While running, your game executes a load of commands within a loop, right? This loop keeps your program confined to within a certain piece of code. Now, you can either break from this loop, to return later, when the pause button is used, or you introduce another loop within the main loop when pause is used. This second loop would just confine your program to an even smaller piece of code, preventing it from running anything else (like player movement, enemy AI, etc) until you've broken from it. Here's psuedo-code:
Start main loop
|
| If paused, start paused loop
| |
| | If not paused, break from paused loop
| |
| End of pause loop
|
| Main commands go here
|
End of main loop
You would probably want to add a sync and a pause screen to the paused loop, just to make it look right.
Hope this helps!
"I am a living, thinking entity who was created in the sea of information."