Faits:
A. Du printemps 2007 au 17 janvier 2008, X._ a acquis d'un dénommé A._ 1'250 g d'héroïne, correspondant en chiffres ronds à 200 g de produit pur, dont il a revendu 795 g à B._ et 400 g à C._. 64 g d'héroïne et 883 g de produit de coupage ont été retrouvés en sa possession lors de l'intervention de la police.
Par jugement du 4 novembre 2008, la Cour d'assises du canton de Neuchâtel a reconnu X._ coupable d'infractions graves à la loi fédérale sur les stupéfiants et l'a condamné à trois ans et demi de privation de liberté.
B. Contre cette condamnation, X._ a formé un recours que la Cour de cassation pénale du Tribunal cantonal du canton de Neuchâtel a rejeté par un arrêt du 28 mai 2009.
C. X._ recourt au Tribunal fédéral contre ce dernier arrêt, dont il demande l'annulation, avec renvoi de la cause aux autorités cantonales pour nouvelle fixation de la peine et octroi d'un sursis complet.
Il joint à son mémoire une requête d'effet suspensif.
Considérant en droit:
1. En vertu de l'art. 103 al. 2 let. b LTF, le recours en matière pénale a de plein droit l'effet suspensif, dans la mesure des conclusions prises, lorsqu'il est dirigé contre une condamnation à une peine privative de liberté ferme ou contre le prononcé d'une mesure privative de liberté. En l'espèce, où le recourant demande l'annulation de l'arrêt attaqué pour être condamné à une peine privative de liberté avec sursis, le recours suspend de plein droit l'exécution de la peine privative de liberté ferme prononcée par les autorités cantonales. La requête d'effet suspensif est dès lors sans objet.
2. Invoquant une appréciation arbitraire des preuves et une violation de la présomption d'innocence sous son aspect de règle sur l'appréciation des preuves (art. 32 al. 1 Cst. et 6 § 2 CEDH), le recourant conteste diverses constatations de fait des autorités cantonales.
Le recourant qui veut faire valoir que l'autorité inférieure a établi les faits de manière manifestement inexacte, c'est-à-dire arbitraire (cf. arrêt 6B_178/2007 du 23 juillet 2007 consid. 1.2, non publié in ATF 133 IV 286), doit expliquer de manière circonstanciée en quoi ce serait le cas. Il ne lui suffit pas d'opposer sa propre lecture du dossier à celle de cette autorité. Il lui incombe d'indiquer en quoi celle-ci a, selon lui, apprécié les preuves de manière insoutenable, c'est-à-dire en quoi elle n'a manifestement pas compris le sens et la portée d'un moyen de preuve, en quoi elle a omis sans raison sérieuse de tenir compte d'un moyen important et propre à modifier la décision attaquée ou encore en quoi, sur la base des éléments recueillis, elle a fait des déductions manifestement insoutenables. Sans de telles précisions, son grief est irrecevable (cf. ATF 133 IV 286 consid. 6.2 p. 288). En outre, si le juge du fait a motivé son appréciation des preuves par deux raisonnements indépendants et suffisants à sceller le sort du grief, le recourant doit exposer en quoi chacun d'eux est arbitraire. À ce défaut, ses critiques sont irrecevables (cf. ATF 133 IV 119 consid. 6.3 p. 120 s.).
2.1 La cour cantonale a considéré qu'il n'était pas arbitraire de retenir que le recourant était un vendeur, et non un simple livreur, notamment parce qu'il négociait et encaissait lui-même les prix auprès de ses deux clients de La Chaux-de-Fonds (cf. arrêt attaqué, consid. 4 p. 4). Le recourant ne critique pas ce motif. Il ne s'en prend pas davantage au raisonnement suivi par la cour cantonale lorsqu'elle a jugé qu'il n'était pas arbitraire de retenir qu'il avait un intérêt financier aux ventes, dès lors que cet intérêt ressortait de ses propres déclarations (cf. arrêt attaqué, consid. 7 p. 7). Ainsi, les griefs du recourant quant à son rôle dans le trafic de stupéfiants sont irrecevables.
2.2 Concernant la durée des activités criminelles du recourant, la cour cantonale a nié que les premiers juges aient commis l'arbitraire en ne tenant pas compte du retrait de permis dont l'intéressé avait fait l'objet, aux motifs que celui-ci, peu respectueux de la légalité, pouvait avoir conduit sans permis, d'une part, et qu'il pouvait aussi s'être fait conduire par un tiers ou avoir pris le train, d'autre part (cf. arrêt attaqué, consid. 3 p. 3). Le recourant n'articule aucun grief contre cette dernière partie de la motivation alternative de la cour cantonale. Dès lors, à cet égard aussi, ses critiques sont irrecevables.
2.3 La cour cantonale a considéré que les premiers juges n'avaient pas versé dans l'arbitraire en fixant à quelque 17%, soit au taux de pureté moyen sur le marché local au moment des faits ([17±10]%), le taux de pureté de l'héroïne achetée et revendue par le recourant. Elle en voulait pour preuve que, si l'un des deux clients avait trouvé très mauvaise la qualité de la drogue que le recourant lui avait vendue, l'autre l'avait en revanche jugée bonne, ce qui justifiait, d'après la cour cantonale, de s'en tenir à la moyenne statistique. Pour contester le taux de pureté retenu par les autorités cantonales, le recourant se réfère exclusivement aux déclarations de celui de ses clients qui estimait la qualité de sa drogue très mauvaise, passant sous silence le raisonnement que la cour cantonale a suivi en tenant compte également des déclarations de l'autre client. Ainsi, faute de s'en prendre aux motifs pour lesquels l'arrêt attaqué retient un taux de 17%, ses critiques à ce sujet sont irrecevables.
2.4 La cour cantonale a nié que le recourant souffrît de dépression au moment des faits principalement parce que l'épisode dépressif attesté par le certificat médical versé au dossier remontait à 2006 et qu'il n'était pas établi qu'il ait perduré jusqu'au printemps 2007 et dans les mois qui ont suivi (cf. arrêt attaqué, consid. 7 p. 7). Pour démontrer que la cour cantonale aurait commis l'arbitraire en refusant de lui reconnaître une responsabilité pénale diminuée, la circonstance atténuante du profond désarroi ou, à tout le moins, d'ordonner une expertise médicale, le recourant se contente d'affirmer que "les pièces du dossier" établiraient qu'il souffrait de dépression, sans autres précisions. En particulier, il n'indique pas en quoi la lecture que la cour cantonale a faite du certificat médical serait manifestement insoutenable. Les griefs du recourant en la matière sont dès lors irrecevables.
2.5 Enfin, pour établir que les autorités cantonales auraient commis l'arbitraire en ne retenant pas qu'il avait décidé spontanément, avant son arrestation, de mettre fin à son trafic, le recourant se borne à affirmer que le dossier démontrerait sa résolution de mettre un terme à son activité et que les raisons pour lesquelles la cour cantonale est arrivée à la solution inverse ne seraient "absolument pas convaincantes". Il n'indique pas quels éléments concrets du dossier prouveraient sa renonciation ni, à plus forte raison, en quoi le raisonnement suivi par la cour cantonale serait manifestement contredit par ces éléments. Il n'indique pas davantage en quoi les autorités cantonales auraient commis l'arbitraire en ne retenant pas qu'il est maintenant conscient de la gravité de ses infractions. Sur ces points aussi, ses griefs ne satisfont pas aux exigences de motivation.
Ainsi, les moyens que le recourant prend d'une violation de son droit à la présomption d'innocence (art. 32 al. 2 Cst. et 6 § 2 CEDH) et d'une constatation arbitraire des faits sont entièrement irrecevables.
3. Ensuite, le recourant reproche aux premiers juges d'avoir fixé sa peine en surestimant son rôle dans le trafic de stupéfiants, ainsi que la quantité et la pureté de la drogue qu'il a achetée et revendue et en omettant de tenir compte de son état dépressif, de sa décision de renoncer au trafic et de sa prise de conscience. En outre, il leur fait grief de lui avoir infligé une peine disproportionnée en comparaison de celles prononcées contre ses deux clients, qui ont également fait du trafic. La cour cantonale aurait violé l'art. 47 CP en refusant de censurer cet abus du pouvoir d'appréciation.
3.1 Dans sa première partie, le moyen est irrecevable, puisqu'il s'écarte des constatations de fait déterminantes de l'arrêt attaqué (cf. consid. 2 ci-dessus).
3.2 Dans l'exercice du pouvoir d'appréciation que lui donne l'art. 47 CP, le juge doit, notamment, respecter le principe d'égalité de traitement (art. 8 al. 1 Cst.; cf., au regard de l'art. 63 aCP, ATF 120 IV 136 consid. 3a p. 144 et les arrêts cités). S'il est appelé à juger les co-auteurs d'une même infraction ou deux co-accusés ayant participé ensemble au même complexe de faits délictueux, il est tenu de veiller à ce que la différence des peines infligées aux deux intéressés soit justifiée par une différence dans les circonstances personnelles en fonction desquelles, conformément à l'art. 47 CP, la peine doit être individualisée (cf. ATF 6B_112/2009 du 16 juillet 2009 consid. 3.2; ATF 121 IV 202 consid. 2b p. 244 ss; arrêt 6S.199/2006 du 11 juillet 2006 consid. 4 i.f.).
En l'espèce, les clients du recourant ont été condamnés respectivement à vingt-sept et vingt-huit mois de privation de liberté, pour la revente de 760 g d'héroïne dans le premier cas et de 600 dans le second. Mais l'un et l'autre de ses clients souffraient d'une forte addiction à l'héroïne, au contraire du recourant, qui ne consommait pas ses produits. Dans sa seconde partie, le moyen est dès lors mal fondé.
4. Enfin, le recourant reproche aux premiers juges de ne pas avoir indiqué pour quelles raisons ils ont fixé la durée de sa peine privative de liberté à trois ans et demi, plutôt qu'à trois ans, alors que cette dernière durée lui aurait permis d'obtenir le sursis partiel et d'éviter que sa réinsertion sociale ne soit compromise. La cour cantonale aurait violé l'art. 50 CP en ne sanctionnant pas ce défaut de motivation.
Prononçant une peine de quarante-deux mois de privation de liberté, les premiers juges n'avaient plus à examiner si une peine encore compatible avec le sursis partiel pouvait éventuellement être envisagée. La fourchette des sanctions susceptibles d'entrer en considération ne comprenait de toute évidence plus la limite objective supérieure à l'octroi du sursis partiel (art. 43 al. 1 CP; ATF 134 IV 17 consid. 3.5 p. 24; cf. aussi, pour quelques cas similaires: arrêts 6B_376/2009 du 31 août 2009 consid. 4.4; 6B_819/2007 du 9 avril 2008 consid. 3.2 et 3.4). Le moyen est mal fondé. Ainsi, dans la mesure où il est recevable, le recours doit être rejeté.
5. Le recourant, qui succombe, supportera les frais de justice (art. 66 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté dans la mesure où il est recevable.
2. La requête d'effet suspensif est sans objet.
3. Les frais judiciaires, arrêtés à 4'000 fr., sont mis à la charge du recourant.
4. Le présent arrêt est communiqué aux parties et à la Cour de cassation pénale du Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 23 novembre 2009
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président: Le Greffier:
Favre Oulevey