I think you get it when you beat the gym leader hope its helps see im at the Pokemon league hard to remember
snow point gym
Veilstone.
Celestic Town, after you beat the Gym Leader.
You can get the HM waterfall in Pokemon Diamond and Pearl by beating the 8th gym leader and talking to Jasmin by the little beach. She will give it to you.
Beat the 3rd Gym, and Get HM 06 Rock Smash
to fly in Pokemon pearl u have to get the hm fly then u have to teach it to a Pokemon that can learn then beat gym leader
Flash, I believe.
In Pokemon Diamond, Pearl, and Platinum, there isn't an HM to obtain in Hearthome City. Relatively, you can get TM65 from Gym Leader Fantina after defeating her.
the hm dive is not available in pearl.
in sunyshore city, after you beat the gym leader,(no.8)talk to Jasmine(girl on the beach) shell give the HM 08. (Waterfall)
HM 4
It differs with each Generation. Generation I: Fuchsia Gym Generation II: Ecruteak Gym Generation III: Petalburg Gym Generation IV: Hearthome Gym (Diamond and Pearl) or Pastoria Gym (Platinum) Generation V: N/A Generation VI: Shalour Gym