PSX gains 945 points after days of lull trading