That's a pretty weird way to handle a jump right there!
You need a vertical (Y) speed that you can use to handle gravity and jumping at the same time. The Y speed should be a little below 0 when theres a ground collision, that way when you step off a ledge, it uses the gravity too.
Say your player Y position was called PLY# and the speed PLYS#. Groundcollision is just a flag that indicates if the player can jump - otherwise you'll be playing as superman!.
This would change the PLY# variable and speed variable for easy gravity and jump handling:
If PLYS#>-5.0 then dec PLYS#,0.05
inc PLY#,PLYS#
Now, how easy is this to impliment as a nice arc jump:
If spacekey()=1 and groundcollision=1 then PLYS#=1.0
You would need to experiment with the [-5.0, 0.05, and 2.0] values to get it right, but that's no biggie. That's how I do all my jumping routines. If you check the variance in ground heights and apply that to the Y speed, you can fly off ramps etc - not really applicable in an FPS I know, but you might want to add vehicles ala Halo.
Van-B
My cats breath smells of cat food.