Hello, Guest the thread was called1.3k times and contains 16 replays

last post from daybyter at the

CC65 mit TGI kein OUTTEXT auf dem C64?

  • Ich versuche gerade in C simple Grafik auf dem C64 darzustellen. Dazu nutze ich den CC65 Kompiler mit dem TGI Treiber.
    Leider scheint dieser den Befehl tgi_outtext("Test") völlig zu ignorieren. Ist das bekannt, oder mache ich da was falsch?


    Anbei das Beispiel:
    Es sollte ja eigentlich "Text" auf dem Bildschir erscheinen, aber es passiert irgendwie nicht. Hoffe es kann mir jemand weiter helfen.


  • Compiler Version ist 2.13.2-1. Die Treiber c64-hi.tgi habe ich auch aus der Version 2.13.3-1 ausprobiert. Das seltsame ist, das Linien, Kreise und Pixel zeichnen anstandsplos funktioniert. Die TGI Demo funktioniert auch wie sie soll (Dort gibt es keine Text Ausgabe).


    also tgi_line(0,0,100,100) zeichnet eine Linie. Aber tgi_outtext("Bla") macht überhaupt nicht.


    Kompiliert habe ich das Program mit cl65 test.c -o test.prg


    Grüße


    Adam

  • Hallo WalkThatWay,


    Da ich es unter Linux gemacht habe, kann ich nur diesen Weg beschreiben. Sollte aber ähnlich unter Windows gehen.

    also die "c64-hi.tgi" habe ich aus der cc65 Installation. Diese ist unter Linux unter "/usr/share/cc65/target/c64/drv/tgi" zu finden.


    Ein D64 Image habe ich mit "c1541" erstellt. Dieses Tool ist Bestandteil von VICE.

    Alle Dateien, die ins Image rein sollen in einen Ordner Kopieren. Von diesem Ordner aus c1541 starten.

    Leeres Image erstellen mit "format <diskname,id> [<type> <imagename>] [<unit>]". Also z.B.

    format "testimage",1 d64 image1.d64 um ein Image mit dem Label "testimage" und dem Image-Dateinamen "image1.d64" zu erstellen.

    Dann alle Dateien ins Image kopieren mit "write <source>", also z.B. "write c64-hi.tgi" um die c64-hi.tgi ins Image zu schreiben.

    Mit "exit" c1541 verlassen. Nun ist das D64 Image mit dem Namen "image1.d64" und der c64-hi.tgi als Inhalt fertig.


    Gibt natürlich noch viele andere Wege um ein Image zu erstellen und zu befüllen. Um das Image auf den C64 zu bekommen habe ich es auf ein SD2IEC kopiert.

    Da die "c64-hi.tgi" per Kernalloader geladen wird, wird diese auch anstandslos von SD2IEC nachgeladen.


    Ein kleines Projekt von mir, welches die "c64-hi.tgi" nutzt, kannst du inkl. Sourcen hier finden:

    http://adam.bplaced.net/c64/basteleien/basteleien.html (ADWandler Software für den C64)


    Oder der direkte Downloadlink: http://adam.bplaced.net/c64/basteleien/adwandler.zip


    Ich hoffe das beantwortet deine Frage. Ansonsten einfach weiter fragen ;)


    Grüße und viel Erfolg


    Adam

  • Danke dir Adam , jetzt hat es geklappt. Ich hatte es mit Tools wie "D64 Editor" und "Dirmaster" usw. probiert. Hat nicht funktioniert. Dank deiner Anleitung habe ich es aber geschafft.

    So sieht das Direktory des funktionierenden Diskabbildes aus, damit Andere es zum Vergleich auch mal sehen können.

    image1.d64

    Jetzt kann die Programmierung in C endlich losgehen ...

    Ich habe nämlich so etwas ähnliches wie dein Lauflicht mit meinem VicRel Clone vor. Finde ich übrigens klasse!


    Deine Vorgehensweise klappte hier bei mir mit einem Windows 7 übrigens genau so, wie du sie für Linux beschrieben hast. :thumbsup:

  • @WalkThatWay

    Schön, dass es bei dir geklappt hat. Etwas in der Art vom Lauflicht ist sicher ein gutes Einstiegsprojekt.

    Mich wundert es etwas, dass es mit DirMaster und Co nicht funktioniert hat .


    Um meine Eingangsfrage selbst zu beantworten:

    Hier steht folgendes beim "ToDo":

    C64 library and C128 library: Implement OUTTEXT in the TGI driver.

    Also ist OUTTEXT beim C64 TGI leider nicht implementiert. Somit kann im TGI Modus (noch) kein Text am C64 ausgegeben werden :(

    Eventuell hat noch jemand Lust das zu implementieren...


    Grüße


    Adam


  • daybyter welchen compiler würdest du eher empfehlen? GCC-6502 oder CC65?

    CC65 macht ja leider (noch) keine Textausgabe im TGI-HI-RES was auch immer Modus. Oder gibt es mitlerweile Vector Grafik Zeichensätze für den C64? Ich meine so, das der TGI Treiber auch damit funktioniert und man am Ende auch was lesen kann?


    Können die anderen Sachen vom gcc-6502 mitbenutzt werden? Wie Joystick, Maus und was der cc65 noch so alles hat?

  • Ich finde der gcc produziert etwas besseren Code, wenn es z.B. ans Rechnen geht. Dafür fehlen halt viele Libs, die sich beim cc65 über die Jahre entwickelt haben. Ich hab ja u.a. bisserl an einem Shooter damit gebastelt, und hat mir für den Joystick einfach paar Structs definiert, so dass man schön auf die Register zugreifen konnte. TGI hat mich da nicht so interessiert, weil ich den Code eh lieber per Hand auf meine App optimieren wollte.


    Vektor Zeichensatz hab ich leider auch nie probiert.