Sachverhalt:
Sachverhalt:
A. Mit Urteil des Bezirksgerichts Winterthur vom 1. November 1995 wurde A._ der Widerhandlung gegen Art. 19 Ziff. 2 lit. a in Verbindung mit Art. 19 Ziff. 1 Betäubungsmittelgesetz schuldig gesprochen und zu einer Freiheitsstrafe von 18 Monaten Gefängnis verurteilt. Der Vollzug der Freiheitsstrafe wurde aufgeschoben und die Probezeit auf drei Jahre festgesetzt.
Das Bezirksgericht ging davon aus, dass A._ im September 1994 B._ angeboten habe, Heroin zu verkaufen, und diesem in der Folge bis Mitte Dezember 1994 sowie in der Zeit zwischen dem 7. Februar und dem 8. März 1995 in etwa 48 Treffen rund 430 Gramm Heroin zum Preis von rund Fr. 30'000.-- verkauft habe. Ausserdem habe er C._ zu einem nicht mehr genau bestimmbaren Zeitpunkt, vermutlich im Dezember 1994, 1 bis 2 Gramm Heroin übergeben.
Dieses Urteil wurde vom Obergericht des Kantons Zürich, I. Strafkammer, im Berufungsverfahren bestätigt (Urteil vom 1. Juli 1996).
Dieses Urteil wurde vom Obergericht des Kantons Zürich, I. Strafkammer, im Berufungsverfahren bestätigt (Urteil vom 1. Juli 1996).
B. Am 20. Februar 1998 stellte A._ ein Revisionsbegehren, weil B._ seine frühere Aussage, wonach A._ sein Heroinlieferant gewesen sei, widerrufen hatte. Am 28. Oktober 1998 hiess die Revisionskammer das Revisionsgesuch gut, hob das Urteil der I. Strafkammer des Obergerichts vom 1. Juli 1996 auf und wies die Akten im Sinne der Erwägungen an das Bezirksgericht Winterthur zurück mit dem Auftrag, die Verhandlung soweit erforderlich zu wiederholen und ein neues Urteil zu fällen.
B. Am 20. Februar 1998 stellte A._ ein Revisionsbegehren, weil B._ seine frühere Aussage, wonach A._ sein Heroinlieferant gewesen sei, widerrufen hatte. Am 28. Oktober 1998 hiess die Revisionskammer das Revisionsgesuch gut, hob das Urteil der I. Strafkammer des Obergerichts vom 1. Juli 1996 auf und wies die Akten im Sinne der Erwägungen an das Bezirksgericht Winterthur zurück mit dem Auftrag, die Verhandlung soweit erforderlich zu wiederholen und ein neues Urteil zu fällen.
C. Gegen B._ wurde daraufhin ein Ermittlungsverfahrens wegen falschen Zeugnisses und falscher Anschuldigung eingeleitet. Bei der polizeilichen Befragung vom 10. August 1999 gab B._ zu Protokoll, er habe im Revisionsverfahren wissentlich falsch ausgesagt; richtig seien nach wie vor die in der Winterthurer Strafuntersuchung im Jahr 1995 gemachten Aussagen. Dabei blieb er auch in späteren Befragungen und bei der Konfrontationseinvernahme vom 8. September 1999 mit A._.
C. Gegen B._ wurde daraufhin ein Ermittlungsverfahrens wegen falschen Zeugnisses und falscher Anschuldigung eingeleitet. Bei der polizeilichen Befragung vom 10. August 1999 gab B._ zu Protokoll, er habe im Revisionsverfahren wissentlich falsch ausgesagt; richtig seien nach wie vor die in der Winterthurer Strafuntersuchung im Jahr 1995 gemachten Aussagen. Dabei blieb er auch in späteren Befragungen und bei der Konfrontationseinvernahme vom 8. September 1999 mit A._.
D. Am 20. April 2000 erliess die Bezirksanwaltschaft Winterthur einen Strafbefehl gegen B._. Dieser wurde wegen falschen Zeugnisses und weiterer, hier nicht interessierender Delikte mit einem Monat Gefängnis und Fr. 300.-- Busse bestraft. Am 21. Juni 2000 erhob die Bezirksanwaltschaft Winterthur Zusatzanklage gegen A._ wegen Nötigung und Anstiftung zu falscher Zeugenaussage.
D. Am 20. April 2000 erliess die Bezirksanwaltschaft Winterthur einen Strafbefehl gegen B._. Dieser wurde wegen falschen Zeugnisses und weiterer, hier nicht interessierender Delikte mit einem Monat Gefängnis und Fr. 300.-- Busse bestraft. Am 21. Juni 2000 erhob die Bezirksanwaltschaft Winterthur Zusatzanklage gegen A._ wegen Nötigung und Anstiftung zu falscher Zeugenaussage.
E. Am 8. November 2000 sprach das Bezirksgericht Winterthur A._ der Widerhandlung gegen das Betäubungsmittelgesetz (Art. 19 Ziff. 2 lit. a i.V.m. <ref-law>) sowie der Nötigung (<ref-law>) schuldig. Vom Vorwurf der Anstiftung zu falschem Zeugnis sprach es ihn frei. Es bestrafte ihn wiederum mit 18 Monaten Gefängnis, unter Gewährung des bedingten Strafvollzugs, und verpflichtete ihn, vom unrechtmässig erlangten Vermögensvorteil Fr. 4'000.-- dem Staat abzuliefern.
E. Am 8. November 2000 sprach das Bezirksgericht Winterthur A._ der Widerhandlung gegen das Betäubungsmittelgesetz (Art. 19 Ziff. 2 lit. a i.V.m. <ref-law>) sowie der Nötigung (<ref-law>) schuldig. Vom Vorwurf der Anstiftung zu falschem Zeugnis sprach es ihn frei. Es bestrafte ihn wiederum mit 18 Monaten Gefängnis, unter Gewährung des bedingten Strafvollzugs, und verpflichtete ihn, vom unrechtmässig erlangten Vermögensvorteil Fr. 4'000.-- dem Staat abzuliefern.
F. Gegen dieses Urteil erhob A._ Berufung ans Obergericht. Mit Beschluss vom 24. September 2001 ordnete die II. Strafkammer des Obergerichts die erneute Befragung von D._, C._ und E._ als Auskunftspersonen sowie die Zeugeneinvernahme des Polizeiangestellten Feldweibel F._ an.
Am 6. September 2002 sprach die II. Strafkammer des Obergerichts A._ der Widerhandlung gegen Art. 19 Ziff. 2 lit. a i.V.m. Art. 19 Ziff. 1 Abs. 4 und 5 BetmG schuldig. Vom Vorwurf der Nötigung sowie der Anstiftung zu falschem Zeugnis sprach sie ihn dagegen frei. A._ wurde zu 16 Monaten Gefängnis verurteilt. Hinsichtlich des bedingten Strafvollzugs, der Dauer der Probezeit und der Ersatzforderung bestätigte das Obergericht den Entscheid des Bezirksgerichts.
Am 6. September 2002 sprach die II. Strafkammer des Obergerichts A._ der Widerhandlung gegen Art. 19 Ziff. 2 lit. a i.V.m. Art. 19 Ziff. 1 Abs. 4 und 5 BetmG schuldig. Vom Vorwurf der Nötigung sowie der Anstiftung zu falschem Zeugnis sprach sie ihn dagegen frei. A._ wurde zu 16 Monaten Gefängnis verurteilt. Hinsichtlich des bedingten Strafvollzugs, der Dauer der Probezeit und der Ersatzforderung bestätigte das Obergericht den Entscheid des Bezirksgerichts.
G. Gegen das obergerichtliche Urteil erhob A._ kantonale Nichtigkeitsbeschwerde ans Kassationsgericht des Kantons Zürich. Dieses wies die Beschwerde mit Zirkulationsbeschluss vom 26. September 2003 ab, soweit es darauf eintrat.
G. Gegen das obergerichtliche Urteil erhob A._ kantonale Nichtigkeitsbeschwerde ans Kassationsgericht des Kantons Zürich. Dieses wies die Beschwerde mit Zirkulationsbeschluss vom 26. September 2003 ab, soweit es darauf eintrat.
H. Dagegen erhebt A._ staatsrechtliche Beschwerde ans Bundesgericht. Er beantragt, der Beschluss des Kassationsgerichts vom 26. September 2003 sei aufzuheben und es sei ihm die unentgeltliche Rechtspflege einschliesslich der unentgeltlichen Rechtsvertretung zu gewähren.
H. Dagegen erhebt A._ staatsrechtliche Beschwerde ans Bundesgericht. Er beantragt, der Beschluss des Kassationsgerichts vom 26. September 2003 sei aufzuheben und es sei ihm die unentgeltliche Rechtspflege einschliesslich der unentgeltlichen Rechtsvertretung zu gewähren.
I. Die Staatsanwaltschaft des Kantons Zürich beantragt, die staatsrechtliche Beschwerde sei abzuweisen, soweit darauf einzutreten sei. Das Obergericht und das Kassationsgericht haben auf eine Vernehmlassung verzichtet.

Das Bundesgericht zieht in Erwägung:
Das Bundesgericht zieht in Erwägung:
1. 1.1 Der angefochtene Beschluss des Kassationsgerichts ist kantonal letztinstanzlich. Gegen ihn steht auf Bundesebene für die Geltendmachung der Verletzung verfassungsmässiger Rechte die staatsrechtliche Beschwerde zur Verfügung (Art. 84 Abs. 2, Art. 86 Abs. 1 OG). Der Beschwerdeführer ist als Verurteilter zur staatsrechtlichen Beschwerde legitimiert (Art. 88 OG). Auf die rechtzeitig erhobene Beschwerde ist daher grundsätzlich - vorbehältlich ordnungsgemäss begründeter Rügen (Art. 90 Abs. 1 lit. b OG) - einzutreten.
1.2 Nicht einzutreten ist jedoch auf diejenigen Rügen, die der Beschwerdeführer erstmals - bzw. erstmals mit genügender Begründung - vor Bundesgericht erhebt.
Die Kognition des Bundesgerichts ist teils gleich, teils enger als diejenige des Kassationsgerichts: Mit dem kantonalen Nichtigkeitsgrund der Verletzung gesetzlicher Prozessformen zum Nachteil des Nichtigkeitsklägers und der wesentlichen Beeinträchtigung der Parteirechte (<ref-law>/ZH) kann sowohl die Verletzung von Verfahrensgarantien der Bundesverfassung und der Europäischen Menschenrechtskonvention geltend gemacht werden (Donatsch/Schmid, Kommentar zur Strafprozessordnung des Kantons Zürich, Zürich 2000, § 430 N 12), als auch die Verletzung von kantonalem Verfahrensrecht, das vom Bundesgericht nur unter dem Blickwinkel des Willkürverbots überprüft werden kann. Ebenso kann das Kassationsgericht die Beweiswürdigung und die Anwendung des Grundsatzes "in dubio pro reo" überprüfen und hat dabei eine zumindest ebenso weite Überprüfungsbefugnis wie das Bundesgericht bei der Beurteilung von Willkürbeschwerden (<ref-ruling> E. 2a S. 86 f.; Donatsch/Schmid, a.a.O., § 430 N 21).
Dann aber war der Beschwerdeführer zur Ausschöpfung des Instanzenzugs (Art. 86 Abs. 1 OG) gehalten, sämtliche Rügen, die er jetzt vor Bundesgericht vorbringt, bereits in seiner Nichtigkeitsbeschwerde vor Kassationsgericht zu erheben. Soweit er dies unterlassen hat bzw. das Kassationsgericht auf bestimmte Rügen in verfassungskonformer Weise nicht eingetreten ist, können sie im Verfahren der staatsrechtlichen Beschwerde nicht mehr geltend gemacht werden (<ref-ruling> E. 2a S. 87). Inwiefern dies zutrifft, ist im Rahmen jeder einzelnen Rüge zu untersuchen.
Dann aber war der Beschwerdeführer zur Ausschöpfung des Instanzenzugs (Art. 86 Abs. 1 OG) gehalten, sämtliche Rügen, die er jetzt vor Bundesgericht vorbringt, bereits in seiner Nichtigkeitsbeschwerde vor Kassationsgericht zu erheben. Soweit er dies unterlassen hat bzw. das Kassationsgericht auf bestimmte Rügen in verfassungskonformer Weise nicht eingetreten ist, können sie im Verfahren der staatsrechtlichen Beschwerde nicht mehr geltend gemacht werden (<ref-ruling> E. 2a S. 87). Inwiefern dies zutrifft, ist im Rahmen jeder einzelnen Rüge zu untersuchen.
2. Der Beschwerdeführer rügt zunächst, der untersuchende Bezirksanwalt hätte nicht selbst den Strafbefehl vom 20. April 2000 gegen B._ wegen falschen Zeugnisses erlassen dürfen. Damit habe er vollendete Tatsachen zum Nachteil des Beschwerdeführers geschaffen und die Garantie des fairen Verfahrens verletzt (Art. 6 Ziff. 1 EMRK; Art. 29 und 30 Abs. 1 BV).
Das Kassationsgericht ist auf diese Rüge nicht eingetreten. Der Beschwerdeführer habe den Erlass des Strafbefehls lediglich im Hinblick auf die Erhebung der Nachtragsanklage durch denselben Bezirksanwalt beanstandet, nicht aber im Zusammenhang mit der durch die Revision notwendig gewordenen Neubeurteilung der Hauptanklage. In der Nachtragsanklage vom 21. Juni 2000 sei dem Beschwerdeführer Nötigung und Anstiftung zu falschem Zeugnis vorgeworfen worden. Hinsichtlich dieser Delikte sei der Beschwerdeführer vom Obergericht jedoch vollumfänglich freigesprochen worden. Insoweit sei er demnach nicht beschwert, weshalb sich die behauptete Verletzung gesetzlicher Prozessformen nicht zu seinem Nachteil ausgewirkt habe.
Mit staatsrechtlicher Beschwerde bestreitet der Beschwerdeführer, dass sich der Strafbefehl nur auf die Nachtragsanklage nachteilig ausgewirkt habe. Er belegt aber nicht, dass er dies schon im Verfahren vor dem Kassationsgericht in rechtsgenügender Weise gerügt hätte und der Nichteintretensentscheid des Kassationsgericht deshalb willkürlich sei und ihm das Recht verweigere. Damit genügt die Beschwerdeschrift in diesem Punkt den Anforderungen von Art. 90 Abs. 1 lit. b OG nicht bzw., soweit der Beschwerdeführer die Verletzung der Garantie eines faires Strafverfahrens bei der Beurteilung des Hauptanklagepunktes rügt, handelt es sich um ein unzulässiges Novum.
Mit staatsrechtlicher Beschwerde bestreitet der Beschwerdeführer, dass sich der Strafbefehl nur auf die Nachtragsanklage nachteilig ausgewirkt habe. Er belegt aber nicht, dass er dies schon im Verfahren vor dem Kassationsgericht in rechtsgenügender Weise gerügt hätte und der Nichteintretensentscheid des Kassationsgericht deshalb willkürlich sei und ihm das Recht verweigere. Damit genügt die Beschwerdeschrift in diesem Punkt den Anforderungen von Art. 90 Abs. 1 lit. b OG nicht bzw., soweit der Beschwerdeführer die Verletzung der Garantie eines faires Strafverfahrens bei der Beurteilung des Hauptanklagepunktes rügt, handelt es sich um ein unzulässiges Novum.
3. Der Beschwerdeführer hatte vor Obergericht beantragt, es sei ein Sachverständigengutachten über die Glaubwürdigkeit B._ und dessen Aussageverhalten anzuordnen. Das Obergericht wies diesen Antrag ab.
3.1 Das Kassationsgericht ging in seinem Entscheid davon aus, dass weder nach Zürcher Strafprozessrecht (§§ 109 und 147 StPO/ZH) noch nach Verfassungs- und Konventionsrecht die Einholung eines Glaubwürdigkeitsgutachtens erforderlich gewesen sei. Es sei grundsätzlich Sache des Richters, die Glaubwürdigkeit von Zeugen zu beurteilen, auch dann, wenn Zweifel an deren Glaubwürdigkeit bestünden.
Auch bei drogenabhängigen Zeugen bestehe keine generelle Pflicht zur fachärztlichen Begutachtung im Hinblick auf ihre Zeugnisfähigkeit. Im vorliegenden Fall ergäben sich keine Anhaltspunkte dafür, dass die Zeugnisfähigkeit von B._ durch seine Drogenabhängigkeit in einem Ausmass beeinträchtigt gewesen wäre, welche die Beurteilung durch eine Fachperson erfordert hätte. Die Widersprüche in den Aussagen B._ in Bezug auf die Täterschaft könnten zwar nicht als übliche Abweichungen oder Ungereimtheiten bezeichnet werden; hingegen könne auch bei ihnen nicht gesagt werden, dass sie nur aufgrund spezifischen psychiatrischen oder psychologischen Fachwissens beurteilt werden könnten.
Das Kassationsgericht hob sodann hervor, dass dem Obergericht verschiedene Aussagen weiterer beteiligter Personen vorlagen, die es in die Beweiswürdigung einbeziehen musste. Das Obergericht habe demnach nicht nur die widersprüchlichen Aussagen B._ zu beurteilen gehabt, sondern habe dessen Angaben zusammen mit der Schilderung weiterer Personen beurteilen können. Keine Bedeutung mass das Kassationsgericht dem Umstand zu, dass die Oberrichter den Zeugen B._ nie selbst angehört hatten.
3.2 Der Beschwerdeführer macht geltend, das Obergericht habe seinen Antrag auf Einholung eines Glaubwürdigkeitsgutachtens willkürlich und unter Verletzung des rechtlichen Gehörs abgelehnt; das Kassationsgericht habe seine diesbezüglichen Rügen zu Unrecht abgewiesen. Die feststehende langjährige Drogenabhängigkeit B._ begründe zwar nicht für sich allein, wohl aber im Zusammentreffen mit dessen nachgewiesener extremer Lügenhaftigkeit besondere Umstände, welche die Einholung eines Glaubwürdigkeitsgutachtens erforderlich gemacht hätten. Es sei zudem aktenwidrig und willkürlich, wenn das Kassationsgericht annehme, die von B._ abgegebene Darstellung der Vorgänge sei nachvollziehbar und würde sich weitgehend mit den Schilderungen anderer beteiligter Personen decken.
3.3 Die Prüfung der Glaubhaftigkeit von Aussagen ist primär Sache der Gerichte. Auf Begutachtungen ist nur bei Vorliegen besonderer Umstände zurückzugreifen (<ref-ruling> E. 4 S. 57; <ref-ruling> E. 2 S. 84). Eine Begutachtung der Zeugenfähigkeit oder der Aussagequalität kann z.B. in Betracht kommen, wenn Anzeichen für eine ernsthafte geistige Störung oder schwerwiegende Zweifel an der Einvernahmefähigkeit eines Zeugen zur Zeit seiner Einvernahme bestehen (<ref-ruling> E. 1c S. 32; Entscheid 1P.8/2002 vom 5. März 2002, E. 4.3.1). So wurde die Notwendigkeit einer medizinischen Expertise beispielsweise in einem Fall bejaht, in dem die drogensüchtige Zeugin bei ihrer untersuchungsrichterlichen Einvernahme nicht nur unter akutem Drogenentzug gelitten, sondern zusätzlich unter dem Einfluss starker Medikamente gestanden hatte (<ref-ruling> E. 2b und c S. 32 ff.).
3.4 B._ war jahrelang heroinabhängig und wurde am 20. März 1995 zum Drogenentzug in die Psychiatrische Klinik Münsterlingen eingewiesen. Seit 1998 beteiligt er sich an einem Methadon-Programm. Es ist daher wahrscheinlich, dass er bei den polizeilichen Befragungen im März 1995 unter Heroinentzug litt. Anlässlich des Belastungswiderrufs vor der Revisionskammer des Obergerichts bestätigte B._ jedoch ausdrücklich, dass er den Beschwerdeführer auch bei Einvernahmen, bei denen er nicht mehr unter Entzugserscheinungen gelitten habe, als Dealer bezeichnet habe (Protokoll S. 22).
Bei der polizeilichen Befragung vom 10. August 1999, die nachmittags stattfand, gab B._ an, seine tägliche Ration von Methadon noch nicht erhalten zu haben. Es kann daher nicht ausgeschlossen werden, dass er auch bei dieser Aussage, bei der er eine erneute Kehrtwendung vollzog und zu seiner ursprünglichen Aussage von 1995 zurückkehrte, unter Entzugssymptomen litt. Auch diese Aussage wiederholte B._ jedoch in zahlreichen weiteren Einvernahmen, in denen er unstreitig nicht unter Methadon-Entzug litt. Im Gegensatz zum Fall <ref-ruling> ff. hatte B._ auch keine Medikamente eingenommen.
Als Indiz für die Aussagefähigkeit B._ werteten Obergericht und Kassationsgericht seine im Wesentlichen konstante, detaillierte und nachvollziehbare Darstellung des Ablaufs der Drogenlieferungen, die sich mit den Schilderungen weiterer beteiligter Personen decke. Der Beschwerdeführer rügt dies als willkürlich. Er begründet dies jedoch lediglich mit Widersprüchen hinsichtlich der Täterschaft, nicht aber bezüglich des Tatverlaufs. Hinzuweisen ist in diesem Zusammenhang auf das Protokoll der Einvernahme vor der Revisionskammer des Obergerichts S. 11, wo der Beschwerdeführer seine bisherige Darstellung des Ablaufs des Drogenhandels bestätigte und lediglich die Beschuldigung des Beschwerdeführers als Täter widerrief.
Anzeichen für eine psychische Störung B._ sind nicht ersichtlich. Die blosse Tatsache, dass er widersprüchliche Aussagen zur Identität seines Drogenlieferanten gemacht hat, ändert daran nichts. Zwar muss aus diesen Widersprüchen geschlossen werden, dass er über die Identität des Täters gelogen hat - sei es 1998, als er seine Beschuldigung des Beschwerdeführers widerrief, sei es 1995 und 1999, als er den Beschwerdeführer als seinen Drogenlieferanten identifizierte. Dagegen liegen keine Anhaltspunkte für eine "krankhafte" Lügenhaftigkeit vor, die Zweifel am Geisteszustand des Zeugen begründen würden.
Hinzukommt, dass die Aussagen B._ nicht das einzige Beweismittel zur Verurteilung des Beschwerdeführers darstellten. Das Obergericht hat ausdrücklich festgehalten, dass eine Verurteilung des Angeklagten einzig auf der Grundlage der Aussagen B._ ausser Betracht fiele. Es würdigte dessen Aussage vielmehr zusammen mit den Aussagen weiterer Auskunftspersonen. Dies gehört typischerweise zum Aufgabenbereich des Strafrichters, für die besondere psychiatrische oder psychologische Fachkenntnisse eines Sachverständigen nicht erforderlich sind.
3.5 Schliesslich vertritt der Beschwerdeführer die Auffassung, das Obergericht hätte ein Gutachten anordnen müssen, weil es B._ und die übrigen Zeugen und Auskunftspersonen nicht persönlich angehört habe. Das weite Ermessen, welches das Bundesgericht dem Sachrichter bei der Beweiswürdigung zumesse, sei nicht mehr gerechtfertigt, wenn aufgrund des im Kanton Zürich noch immer gehandhabten Aktenprozesses der Richter einen Zeugen gar nie sehe und keinen persönlichen Eindruck von ihm gewinnen könne.
Dabei vermischt der Beschwerdeführer jedoch zwei verschiedene Aspekte: Ob ein Glaubwürdigkeitsgutachten angeordnet werden muss oder nicht, hängt davon ab, ob das Gericht allein in der Lage ist, die Glaubwürdigkeit des Zeugen zu beurteilen, oder ob es hierzu das besondere psychiatrische oder psychologische Fachwissen eines Sachverständigen benötigt. Erst in einem zweiten Schritt stellt sich die Frage, ob es zur sachgerechten Beweiswürdigung durch das Gericht erforderlich ist, den Zeugen persönlich anzuhören, um sich einen eigenen Eindruck von seiner Persönlichkeit und seinem Aussageverhalten machen zu können.
Auch wenn das Rechtsmittelverfahren nach Zürcher Recht vom Mittelbarkeitsprinzip geprägt wird und die mündliche Befragung eines bereits von der Untersuchungsbehörde einvernommenen Zeugen die Ausnahme ist, hat das Berufungsgericht doch die Möglichkeit, Zeugen oder Sachverständige erneut zu befragen, sei es von Amtes wegen (<ref-law>/ZH), sei es auf Antrag der Beteiligten (<ref-law>/ZH). Bei unklarer Beweislage, Widersprüchlichkeit oder Zweifeln bezüglich der vorliegenden Beweise ist das Gericht hierzu verpflichtet (Niklaus Schmid, Strafprozessrecht, 2. Auflage, Zürich 1993, N 197 und 838; ZR 90/1991 Nr. 92 S. 297 E. 4a S. 299). Im vorliegenden Fall hat der Beschwerdeführer jedoch keinen Antrag auf erneute Einvernahme B._ im Berufungsverfahren gestellt.
3.6 Zusammenfassend haben die kantonalen Instanzen weder das Willkürverbot noch den Anspruch auf rechtliches Gehör verletzt, als sie den Antrag des Beschwerdeführers auf Anordnung eines Glaubwürdigkeitsgutachtens abwiesen bzw. seine kantonale Nichtigkeitsbeschwerde in diesem Punkt ablehnten.
3.6 Zusammenfassend haben die kantonalen Instanzen weder das Willkürverbot noch den Anspruch auf rechtliches Gehör verletzt, als sie den Antrag des Beschwerdeführers auf Anordnung eines Glaubwürdigkeitsgutachtens abwiesen bzw. seine kantonale Nichtigkeitsbeschwerde in diesem Punkt ablehnten.
4. Schliesslich rügt der Beschwerdeführer die Verletzung der Unschuldsvermutung und Willkür in der Beweiswürdigung: Durch die gegensätzlichen Aussagen B._ zur Täterschaft und durch die entlastenden Aussagen von C._, E._, D._, G._ und des Vaters von B._ bestünden erhebliche und unüberwindbare Zweifel an der Täterschaft des Beschwerdeführers.
4.1 Gemäss der in <ref-law> (früher: Art. 4 aBV) und in Art. 6 Ziff. 2 EMRK verankerten Maxime "in dubio pro reo" ist bis zum gesetzlichen Nachweis seiner Schuld zu vermuten, dass der wegen einer strafbaren Handlung Angeklagte unschuldig ist. Dieser Grundsatz betrifft einerseits die Verteilung der Beweislast und andererseits die Würdigung der Beweise.
Im vorliegenden Fall rügt der Beschwerdeführer nur die Verletzung der Maxime "in dubio pro reo" als Beweiswürdigungsregel. Sie besagt, dass sich der Strafrichter nicht von der Existenz eines für den Angeklagten ungünstigen Sachverhalts überzeugt erklären darf, wenn bei objektiver Betrachtung Zweifel bestehen, ob sich der Sachverhalt so verwirklicht hat. Die Maxime ist verletzt, wenn der Strafrichter an der Schuld des Angeklagten hätte zweifeln müssen. Dabei sind bloss abstrakte und theoretische Zweifel nicht massgebend, weil solche immer möglich sind und absolute Gewissheit nicht verlangt werden kann (<ref-ruling> E. 2a S. 88; <ref-ruling> E. 2c S. 37).
Das Bundesgericht legt sich bei der Überprüfung des Beweisergebnisses mit Blick auf die Unschuldsvermutung im Strafprozess Zurückhaltung auf. Es greift mit anderen Worten nur ein, wenn der Sachrichter den Angeklagten verurteilte, obgleich bei objektiver Würdigung des ganzen Beweisergebnisses offensichtlich erhebliche und schlechterdings nicht zu unterdrückende Zweifel an dessen Schuld fortbestanden (BGE <ref-ruling> E. 2d S. 37 f.).
Beim Sachverhalt beschränkt sich die Prüfung auf Willkür. Willkür in der Beweiswürdigung (<ref-law>) liegt vor, wenn die Behörde in ihrem Entscheid von Tatsachen ausgeht, die aktenwidrig sind, mit der tatsächlichen Situation in klarem Widerspruch stehen oder auf einem offenkundigen Fehler beruhen. Dabei genügt es nicht, wenn der angefochtene Entscheid sich nur in der Begründung als unhaltbar erweist; eine Aufhebung rechtfertigt sich erst, wenn er auch im Ergebnis verfassungswidrig ist (<ref-ruling> S. 2a S. 41 mit Hinweis).
4.2 Der Beschwerdeführer macht zunächst geltend, das Obergericht habe die entlastenden Aussagen von C._, E._, G._ und des Vaters von B._ willkürlich nicht beachtet.
4.2.1 Auf die Rügen der willkürlichen Würdigung der Aussagen von C._ und E._ ist das Kassationsgericht mangels genügender Begründung nicht eingetreten (angefochtener Beschluss, S. 21 lit. c und S. 22 lit. e). Auch in seiner staatsrechtlichen Beschwerde setzt sich der Beschwerdeführer mit der eingehenden Würdigung dieser Aussagen im obergerichtlichen Urteil nicht auseinander.
Die Würdigung der Aussage von G._ (obergerichtliches Urteil S. 46 f.) war nicht Thema der kantonalen Nichtigkeitsbeschwerde. Auch in seiner Beschwerdeschrift ans Bundesgericht begründet der Beschwerdeführer nicht, weshalb die Beweiswürdigung des Obergerichts in diesem Punkt willkürlich sei.
Es handelt sich daher um unzulässige Noven; im Übrigen könnte auf die Willkürrügen auch mangels genügender Begründung (Art. 90 Abs. 1 lit. b OG) nicht eingetreten werden.
4.2.2 Das Kassationsgericht hat den Vorwurf des Beschwerdeführers, das Obergericht habe sich nicht mit der Zeugenaussage des Vaters von B._ befasst, als unrichtig bezeichnet, da das Obergericht in seine Beweiswürdigung ausdrücklich auch die Umstände einbezogen habe, unter denen das Entlastungsschreiben zustande gekommen sei, und sich dabei auch auf die Schilderung des Vaters von B._ gestützt habe. Im Übrigen bedeute die Tatsache, dass B._ den Beschwerdeführer in einem Gespräch mit seinem Vater entlastet habe, nicht notwendigerweise, dass der Beschwerdeführer nicht der gesuchte Drogenverkäufer sei; das Obergericht habe zutreffend erwogen, dass B._ dies möglicherweise bloss deswegen getan habe, um seine Eltern, die vom Beschwerdeführer in die Sache hineingezogen worden waren, nicht weiter zu belasten (angefochtener Beschluss, S. 17 lit. d). Der Beschwerdeführer setzt sich mit diesen Erwägungen des Kassationsgerichts nicht auseinander.
Auch auf diese Willkürrüge kann daher mangels genügender Begründung (Art. 90 Abs. 1 lit. b OG) nicht eingetreten werden.
4.3 Der Beschwerdeführer rügt ferner, das Obergericht habe die Aussage von D._ willkürlich gewürdigt. Dieser habe den Beschwerdeführer in der ergänzenden Befragung vom 19. Dezember 2001 entlastet; seine Angaben stimmten mit denjenigen von B._ vor der Revisionskammer des Obergerichts überein. Die Aktennotiz des Untersuchungsrichters, wonach D._ bei dieser Einvernahme unsicher und ängstlich gewirkt habe, sei inhaltlich unrichtig und manipuliert und hätte vom Obergericht nicht zur Grundlage seiner Beweiswürdigung gemacht werden dürfen.
4.3.1 Das Obergericht hielt die Aussagen D._ aus dem Jahre 1995 für glaubhaft, in denen er den Beschwerdeführer als den Heroinlieferanten B._ identifiziert hatte. Unglaubhaft seien dagegen die Aussagen D._ bei der ergänzenden Befragung vom 19. Dezember 2001, wo er die früher erhobenen Belastungen relativiere und behaupte, B._ habe ihm gegenüber kurz nach (oder allenfalls vor) der letzten Befragung im Jahr 1995 erklärt, nicht der Beschwerdeführer, sondern ein Türke sei der Täter gewesen. Durchaus wahrscheinlich sei dagegen, dass B._ sich in diesem Sinne gegenüber D._ geäussert habe, als sie sich nach dem Belastungswiderruf begegnet seien.
Diese Beweiswürdigung stützte das Obergericht zum einen auf die "auffallende Nervosität" D._ in seiner Befragung vom 19. Dezember 2001, die sich weder mit dem langen Zeitablauf seit den Ereignissen noch damit begründen lasse, dass er "mit dem Fall und diesen Leuten nichts mehr zu tun haben" wolle. Es liege vielmehr der Schluss nahe, dass die Unruhe D._ ihren Grund darin gehabt habe, dass dieser - aus welchem Grund auch immer - nicht die Wahrheit gesagt habe.
Das Obergericht wies sodann auf Widersprüche innerhalb der Aussage D._ vom 19. Dezember 2001 hin; die konkreten Ausführungen D._ zur nunmehr angeblich unwahrscheinlichen Täterschaft des Beschwerdeführers seien mehr als nur konfus. Als "völlig absurd" und als Lügensignal qualifizierte das Obergericht sodann die Aussagen D._, er habe das Gefühl, B._ wisse selber nicht, wer der Täter gewesen sei; B._ habe ihm im Nachhinein gesagt, er sei sich nicht sicher, ob der Beschwerdeführer wirklich der Täter sei bzw. es sei "glaublich" kein Albaner sondern ein Türke gewesen. B._ wisse (so das Obergericht) selbstverständlich genau, von wem er das Heroin erhalten habe; D._ habe denn auch an anderer Stelle der Einvernahme selbst ausgeführt, B._ müsse wissen, wer sein Lieferant gewesen sei.
4.3.2 Das Kassationsgericht hielt in seinem Entscheid fest, dass das Obergericht die "auffallende Nervosität" D._ nicht auf die Aktennotiz des Bezirksanwalts gestützt habe - die dem Verteidiger entgegen seiner Darstellung zugestellt worden sei - , sondern auf das Protokoll der Einvernahme selbst, wie sich aus dem Verweis auf HD act. 53/4 S. 7 auf S. 43 des obergerichtlichen Urteils ergebe. Die Rüge des Beschwerdeführers zur Verwertung der Aktennotiz ziele deshalb ins Leere.
Diese Erwägung des Kassationsgerichts wird in der staatsrechtlichen Beschwerdeschrift (S. 13) nicht als aktenwidrig oder willkürlich beanstandet, sondern es wird lediglich ausgeführt, dies "ändere nichts an der willkürlichen Beurteilung der Angaben von D._". Im Folgenden ist daher nur noch zu prüfen, ob die Berücksichtigung der angeblichen Nervosität D._ bei der Beweiswürdigung, gestützt auf das Einvernahmeprotokoll vom 19. Dezember 2001, willkürlich war.
4.3.3 Das Kassationsgericht verneinte dies und wies darauf hin, dass weder der Beschwerdeführer noch sein Verteidiger, die bei der Einvernahme anwesend gewesen seien, die Feststellung des Bezirksanwalts hinsichtlich der Nervosität D._ in der betreffenden Einvernahme beanstandet hätten. Auch D._ selbst habe die entsprechende Beobachtung des Bezirksanwalts nicht bestritten, sondern im Gegenteil eine - wenn auch nach Ansicht des Obergerichts unglaubhafte - Erklärung für seine Nervosität geliefert. Sodann sei es für die Beweiswürdigung, entgegen der Auffassung des Beschwerdeführers, sehr wohl von Belang, wenn eine Auskunftsperson nervös sei, dies jedenfalls dann, wenn die Nervosität nur gerade in einer Einvernahme auftrete.
4.3.4 Der Beschwerdeführer macht dagegen geltend, die angebliche Nervosität D._ lasse sich nicht ohne Willkür dem Einvernahmeprotokoll entnehmen. Darin habe D._ auf die Frage des Untersuchungsrichters "Sie sind ziemlich nervös?" geantwortet: "Was erwarten Sie denn nach 7 Jahren von mir?". Der Bezirksanwalt habe geantwortet: "Nichts anderes, als dass Sie, so gut Sie sich erinnern, wahrheitsgemäss aussagen". Darauf habe D._ erklärt: "Ich lebe heute ein anderes Leben und es ist mir etwas ungemütlich und ich war damals einfach dabei und den Rest muss man mit Herrn B._ abmachen". Diese Antworten seien klar und deutlich und liessen nichts von Nervosität erkennen. Selbst wenn eine gewisse Nervosität unterstellt würde, wäre es willkürlich darauf zu schliessen, dass die Antworten deshalb unwahr oder unglaubwürdig seien.
4.3.5 Liest man allerdings das Protokoll der Einvernahme in seiner Gesamtheit, erscheint die Interpretation des Obergerichts und des Kassationsgerichts, daraus ergebe sich eine auffallende Nervosität der Auskunftsperson, nicht willkürlich: Schon auf S. 4 des Protokolls antwortete D._ auf die Frage des Bezirksanwalts: "Ihnen selbst ist auch nicht so wohl hier?" mit "nein" und gibt auf die Frage nach dem Grund seines Unwohlgefühls eine ausweichende Antwort ("weil ich im Prinzip mit der Sache nichts zu tun hatte"). Dem Vorhalt des Bezirksanwalts "Vorhin wollten Sie mit mir vor der Türe noch sprechen" widerspricht D._ nicht, sondern antwortet nur: "Ich will einfach mit dem Fall und den Leuten nichts mehr zu tun haben".
D._ machte in seiner Einvernahme mehrfach geltend, er könne sich nicht mehr erinnern (z.B. S. 3: "Das weiss ich nicht. Ich hatte persönlich nie mit seinen Leuten zu tun gehabt"; S. 7 unten: "Ich weiss auch nicht, mit wem er es zu tun hatte und ob es immer der selbe war, mit dem er es hier in Winterthur zu tun hatte"; S. 4: zur Frage, wer bei B._ zu Hause gewesen sei und worum es dabei gegangen sei: "Das weiss ich nicht [...] Keine Ahnung"; S. 7: auf die Frage des Verteidigers: "Können Sie bestätigen, dass B._ selber nicht sicher war?" - "Das weiss ich nicht. Ich habe schon Jahre nicht mehr mit ihm gesprochen"), machte aber dann doch Aussagen (z.B. S. 3: "Er hat einmal etwas gesagt, es sei ein Türke"; S. 5: B._ habe gesagt "er sei es"; S. 6: "Wenn jemand weiss, was gegangen ist, dann ist es B._"; S. 4: "Er sei gebeten worden, nochmals zu studieren, wer das wirklich gewesen ist"), die er anschliessend wieder einschränkte oder abschwächte (z.B. S. 4: "Ich habe langsam das Gefühl, B._ weiss es selber nicht, wer es war"; S. 4 unten: "Er war sich schon damals nicht sicher"). Dieses ausweichende und widersprüchliche Aussageverhalten spricht für Unsicherheit, Nervosität oder Angst. Dann aber kann die Antwort D._ - "Was erwarten Sie denn nach 7 Jahren von mir?" - auf die Frage des Bezirksanwalts - "Sie sind ziemlich nervös?" - durchaus als Bestätigung der Vermutung des Bezirksanwalts verstanden werden, zumal D._ in seiner nächsten Antwort ausdrücklich bestätigt, es sei ihm "etwas ungemütlich" zumute.
Lässt sich die Nervosität somit willkürfrei dem Einvernahmeprotokoll entnehmen, kann offen bleiben, ob der Beschwerdeführer oder sein Verteidiger effektiv die Möglichkeit gehabt hätten, der Feststellung des Bezirksanwalts zu widersprechen.
4.3.6 Ob aus der Nervosität einer Aussageperson auf die Unwahrheit seiner Aussage geschlossen werden kann, lässt sich nicht generell beantworten, sondern es kommt auf die Umstände des einzelnen Falles an. Ist eine Aussageperson, die bisher sicher und selbstbewusst ausgesagt hat, an einer einzigen Einvernahme besonders nervös, kann dies u.U. ein Indiz dafür sein, dass sie die Unwahrheit sagt, sofern keine andere plausible Erklärung für ihre Nervosität ersichtlich ist.
Im vorliegenden Fall hat das Obergericht seine Beweiswürdigung nicht nur auf die Nervosität D._ gestützt, sondern auf weitere, aussagespezifische Gründe (widersprüchliche bzw. konfuse Angaben, unplausible Vorbringen). Mit diesen Erwägungen setzt sich der Beschwerdeführer in seiner Beschwerdeschrift - wie schon in seiner kantonalen Nichtigkeitsbeschwerde - nicht näher auseinander, weshalb auf seine weiteren Rügen im Zusammenhang mit der Aussage von D._ nicht einzutreten ist.
4.4 Schliesslich wirft der Beschwerdeführer dem Obergericht Willkür vor, weil es den den Beschwerdeführer belastenden Aussagen von B._ geglaubt habe, nicht aber dessen den Beschwerdeführer entlastenden Aussagen vor der Revisionskammer des Obergerichts.
Das Kassationsgericht hat die diesbezüglichen Willkürrügen des Beschwerdeführers, soweit es darauf eingetreten ist, als unbegründet abgewiesen (angefochtener Beschluss, E. 5.2. S. 15 - 19). Der Beschwerdeführer setzt sich weder mit diesen Erwägungen noch mit der ausführlichen Beweiswürdigung des Obergerichts (obergerichtliches Urteil S. 32-40) im Detail auseinander. Seine Rügen betreffend die willkürliche Beweiswürdigung der Aussagen von B._ sind somit unzureichend begründet, weshalb auf sie nicht eingetreten werden kann.
4.5 Damit erweisen sich die Rügen der willkürlichen Beweiswürdigung als unbegründet, soweit darauf überhaupt eingetreten werden kann.
Bei objektiver Würdigung des ganzen Beweisergebnisses ergeben sich keine offensichtlich erheblichen und schlechterdings nicht zu unterdrückenden Zweifel an der Schuld des Beschwerdeführers. Damit ist auch der Grundsatz "in dubio pro reo" als Beweiswürdigungsregel nicht verletzt.
Bei objektiver Würdigung des ganzen Beweisergebnisses ergeben sich keine offensichtlich erheblichen und schlechterdings nicht zu unterdrückenden Zweifel an der Schuld des Beschwerdeführers. Damit ist auch der Grundsatz "in dubio pro reo" als Beweiswürdigungsregel nicht verletzt.
5. Nach dem Gesagten ist die staatsrechtliche Beschwerde abzuweisen, soweit auf sie einzutreten ist.
Der Beschwerdeführer ersucht um die Gewährung der unentgeltlichen Rechtspflege und Verbeiständung. Da die Voraussetzungen hierfür gemäss Art. 152 OG vorliegen, ist dem Gesuch stattzugeben.

Demnach erkennt das Bundesgericht:
Demnach erkennt das Bundesgericht:
1. Die staatsrechtliche Beschwerde wird abgewiesen, soweit darauf einzutreten ist.
1. Die staatsrechtliche Beschwerde wird abgewiesen, soweit darauf einzutreten ist.
2. Dem Beschwerdeführer wird die unentgeltliche Rechtspflege gewährt.
2.1 Es werden keine Kosten erhoben.
2.2 Rechtsanwalt Hugo Camenzind, Winterthur, wird als amtlicher Vertreter des Beschwerdeführers bestellt, und es wird ihm für das bundesgerichtliche Verfahren aus der Bundesgerichtskasse ein Honorar von Fr. 2'000.-- ausgerichtet.
2.2 Rechtsanwalt Hugo Camenzind, Winterthur, wird als amtlicher Vertreter des Beschwerdeführers bestellt, und es wird ihm für das bundesgerichtliche Verfahren aus der Bundesgerichtskasse ein Honorar von Fr. 2'000.-- ausgerichtet.
3. Dieses Urteil wird dem Beschwerdeführer, der Staatsanwaltschaft, dem Obergericht, II. Strafkammer, und dem Kassationsgericht des Kantons Zürich schriftlich mitgeteilt.
Lausanne, 6. Februar 2004
Im Namen der I. öffentlichrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Die Gerichtsschreiberin: