CARTHAGE, N.C. - Ellery Chishole could only bury her face in her shirt as a man barged into her room at a North Carolina nursing home - hiding from what he might do, frantically telling her teenage granddaughter by phone that a man with a "deer gun" was "up here shooting."

Beverly McNeill said Chishole, her mother, was spared from the lone gunman's rampage without explanation. But authorities said Robert Stewart, 45, killed seven elderly residents and a nurse, and wounded three others. The slaughter finally ended when a young police officer wounded Stewart.

The officer "acted in nothing short of a heroic way today, and but for his actions, we certainly could have had a worse tragedy," said Moore County District Attorney Maureen Krueger.

By late yesterday, Krueger had charged Stewart, 45, of Moore County, with eight counts of first-degree murder and a single charge of felony assault of a law enforcement officer. Authorities offered few other details, saying only that Stewart was not a patient or employee and wasn't believed to be related to any of the victims.

"I don't know if the emotion entirely has set in," said Police Chief Chris McKenzie, a Carthage native who said that nothing in his nearly 20-year law enforcement career compared to the slaughter. "It's a small community built on faith, and faith will get us through."

While authorities declined to comment on a possible motive, Stewart's ex-wife said he had been reaching out recently to family members, telling them he had cancer and was preparing for a long trip and to "go away." Sue Griffin said she was married to Stewart for 15 years, and while they hadn't spoken since divorcing in 2001, he had been trying to call her during the last week. "He did have some violent tendencies from time to time," she said.

Authorities said Stewart began his rampage around 10 a.m. at Pinelake Health and Rehab in the North Carolina Sandhills about 60 miles southwest of Raleigh, firing shots inside and outside the home. It ended when Officer Justin Garner, 25, traded gunfire with Stewart in a hallway, wounding the suspect.

"He just comes in and just starts shooting everything around," said Sen. Harris Blake of Moore County, relating what officials told him.

Garner was wounded in his leg, and police said Stewart wounded two others. One person remained hospitalized at FirstHealth Moore Regional Hospital in nearby Pinehurst, and police would say only that Stewart was in the custody of the Moore County Sheriff.

The victims who lived at Pinelake ranged in age from 78 to 98.

Krueger declined to say where authorities had taken the surviving residents, saying only, "They're safe."

Law enforcement officials searched the nursing home and its parking lot, where the windows of at least two cars were shattered. Among the items they found was a camouflage-pattern rifle or shotgun, leaning against the side of a Jeep Cherokee.

Carthage is a town of 1,800 in an area popular among retirees and home to the famed Pinehurst resort that hosts the U.S. Open.