Comal 2.01 - CRT auf Ultimate Geräten

Es gibt 52 Antworten in diesem Thema, welches 2.132 mal aufgerufen wurde. Der letzte Beitrag (26. August 2025 um 12:27) ist von markusC64.

  • Ihr könnt Euch weitere Debugversuche sparen, ich habe durch Vergleich U2+ Quelltext und VICE das Problem gelöst. Dieser diff behebt das Problem, ist aber nur als POC brauchbar, weil er alle anderen OCEAN 16k Module mitändern würde.

    Aber so oder so, dadurch weiß man, woran es liegt: Die Bits 6 und 7 aus dem Schreiben in $DExx müssen so beachtet werden, wie ich das da reinkodiert habe:

    Kein Ding, war ja nur zum Spaß. :)

    Oh, dann muss das wohl speziell für die Comal Cartridge eingepflegt werden.

    Könnte man COMAL einsetzen für Demoscene Sachen oder ist das hinfällig ohne Assembler Kenntnisse?

    Die eigene Kreativität kann man immer ausleben, auch in Comal. Mit Punkten, Linien und Kreisen lässen sich nette Effekte zeichnen.

    In DER Demoscene gewinnt man damit aber nicht mal ansatzweise den Untersetzer für den Blumentopf. :emojiSmiley-12:

  • OK danke für die Erklärungen. Hat schon wer mit Turbo Rascal Erfahrungen?

    Wäre so schön mal etwas als Mini Demoscene zusammenzubringen. :love::love::love:

  • Für Demos ist COMAL in keinster Weise geeignet. COMAL ist eine vergleichsweise langsame Interpretersprache mit der Möglichkeit zur strukturierten Programmierung. Für

    Nun, auf dem Ultimate 64 II sollte COMAL viel schneller sein, da kann man nämlich bis zu 64 MHz draufgeben. Und beim Ultimate I immerhin noch 48 MHz. Dadurch wird es schon erheblich schneller.

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

  • Für Demos ist COMAL in keinster Weise geeignet. COMAL ist eine vergleichsweise langsame Interpretersprache mit der Möglichkeit zur strukturierten Programmierung. Für

    Nun, auf dem Ultimate 64 II sollte COMAL viel schneller sein, da kann man nämlich bis zu 64 MHz draufgeben. Und beim Ultimate I immerhin noch 48 MHz. Dadurch wird es schon erheblich schneller.

    Coole Idee. Aber dann würden halt zum Beispiel Demos nicht am Original C64 laufen. Also nicht ruckelfrei. ;(

  • Nun, auf dem Ultimate 64 II sollte COMAL viel schneller sein, da kann man nämlich bis zu 64 MHz draufgeben. Und beim Ultimate I immerhin noch 48 MHz. Dadurch wird es schon erheblich schneller.

    Das ist ja dann gemogelt.

    COMAL ist wirklich eine sehr schöne Sprache. Aber die große Stärke von COMAL ist, dass man damit relativ komplexe Programme schreiben kann, ohne die Pimpernellen zu kriegen. Das geht bei BASIC nicht. Aber: Die Geschwindigkeit von COMAL-Programmen ist vergleichbar mit der Geschwindigkeit von BASIC-Programmen. Darüber sollte man sich stets im Klaren sein.

    Hat schon wer mit Turbo Rascal Erfahrungen?

    Das kannst du auch vergessen. Glaub es mir: Wenn du so coole Demos programmieren möchtest, bei denen 100 Bälle herumhüpfen während drei Laufschriften unterschiedlich schnell durch die Gegend scrollen, dann führt an Assembler kein Weg vorbei. Da gibt es auch keine Alternativen auf dem C64.

  • Nun, auf dem Ultimate 64 II sollte COMAL viel schneller sein, da kann man nämlich bis zu 64 MHz draufgeben. Und beim Ultimate I immerhin noch 48 MHz. Dadurch wird es schon erheblich schneller.

    Das ist ja dann gemogelt.

    COMAL ist wirklich eine sehr schöne Sprache. Aber die große Stärke von COMAL ist, dass man damit relativ komplexe Programme schreiben kann, ohne die Pimpernellen zu kriegen. Das geht bei BASIC nicht. Aber: Die Geschwindigkeit von COMAL-Programmen ist vergleichbar mit der Geschwindigkeit von BASIC-Programmen. Darüber sollte man sich stets im Klaren sein.

    Hat schon wer mit Turbo Rascal Erfahrungen?

    Das kannst du auch vergessen. Glaub es mir: Wenn du so coole Demos programmieren möchtest, bei denen 100 Bälle herumhüpfen während drei Laufschriften unterschiedlich schnell durch die Gegend scrollen, dann führt an Assembler kein Weg vorbei. Da gibt es auch keine Alternativen auf dem C64.

    Verstehe schon was du meinst, aber so wie ich das lese wandelt ja Turbo Rascal IDE den Code vor dem Kompilieren in Assembler für C64 um. :love::love::love:

    Damit gibt es keine Geschwindigkeitseinbrüche. Vielleicht hat ja damit schon wer Erfahrung gemacht.

  • ...aber so wie ich das lese wandelt ja Turbo Rascal IDE den Code vor dem Kompilieren in Assembler für C64 um.

    Um das zu klären, solltest du lieber einen eigenen Thread eröffnen. Hier geht es ja um COMAL80 V2.01 auf dem Ultimate64 - und warum das da (unter bestimmten Umständen) nicht richtig funktioniert.

  • ...aber so wie ich das lese wandelt ja Turbo Rascal IDE den Code vor dem Kompilieren in Assembler für C64 um.

    Um das zu klären, solltest du lieber einen eigenen Thread eröffnen. Hier geht es ja um COMAL80 V2.01 auf dem Ultimate64 - und warum das da (unter bestimmten Umständen) nicht richtig funktioniert.

    Stimmt. 👍🏻

  • Ihr könnt Euch weitere Debugversuche sparen, ich habe durch Vergleich U2+ Quelltext und VICE das Problem gelöst. Dieser diff behebt das Problem, ist aber nur als POC brauchbar, weil er alle anderen OCEAN 16k Module mitändern würde.

    Aber so oder so, dadurch weiß man, woran es liegt: Die Bits 6 und 7 aus dem Schreiben in $DExx müssen so beachtet werden, wie ich das da reinkodiert habe:

    Respekt! 👍

    Dann hoffe ich mal, dass der Fix auch irgendwann in die Firmware einzieht. Wenn der neue C64U kommt, sollte Comal darauf, als wichtigste Hochsprache, ja hoffentlich problemlos laufen... 😉😎

  • Ihr könnt Euch weitere Debugversuche sparen, ich habe durch Vergleich U2+ Quelltext und VICE das Problem gelöst. Dieser diff behebt das Problem, ist aber nur als POC brauchbar, weil er alle anderen OCEAN 16k Module mitändern würde.

    Aber so oder so, dadurch weiß man, woran es liegt: Die Bits 6 und 7 aus dem Schreiben in $DExx müssen so beachtet werden, wie ich das da reinkodiert habe:

    Für mein einfaches, kleines Weltbild nochmal: Warum?

    Was ist bei einem Comal CRT anders, als z.B. bei einem TSB CRT? Warum funktioniert ein echtes Modul? Warum funktionieren CRT Images auf Emulatoren und dem C64 Core des MEGA65 (und damit wahrscheinlich auch auf dem MiSTer Core)?

    Die werden doch nicht alle die (natürlich sehr wichtige) Sprache Comal explizit getestet haben?

  • In VICE gibt es separates Handling für die "comal80" und "ocean" CRTs, bzw. überall da, wo "plottext" funktioniert.

    Auf github finden sich in den Sourcen die Beschreibungen zum Cartrige Handling (svn-mirror/vice/src/c64/cart/):

    Aber Gideon hat der "CART_COMAL80" offensichtlich einfach "cart_type = CART_TYPE_OCEAN_16K" zugewiesen, wie es markusC64 im U2+ Code aufgedeckt hat.

    Wenn sich Gideon an VICE orientiert, wieso hat er die existierende Comal Behandlung unter den Tisch fallen lassen und die 16K Behandlung für Ocean Cartridges dafür verwendet? Mal schaun, was er schreibt, wenn das gefixt ist.

    Immer wieder spannend, welche Problemchen nach Jahren so zu Tage gefördert werden. :)

  • Jaja, aber wie bei VICE zu oft, vergiss die Kommentare, die passen öfter mal nicht.

    sagt was anderes aus - wenn man sich das als Wertetabelle aufschreibt, merkt man, das passt nicht zusammen mit dem Kommentar, statt dessen wird Bit 6 dann an /Game angelegt und etwas anderes an /Exrom, von den elementaren Operationen passt Bit 6 AND Bit 7 am besten zu /Exrom. Was es am Ende auch tut, die anderen Kombinationen, die VICE da nichtdrin hat, werden wohl eh nicht vorkommen.

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.