Turbo Rascal Syntax error, “;” expected but “BEGIN”

Es gibt 104 Antworten in diesem Thema, welches 21.237 mal aufgerufen wurde. Der letzte Beitrag (13. Juni 2024 um 10:20) ist von Fraburm.

  • Für mich ist das eigentliche Rascal als Programmiertool wichtig.

    Sehe ich, jetzt, auch so. Aber wenn man sich die Entwicklungumgebung aneignet, dann probiert man halt ein wenig herum. Und das Tüfteln am Zeichensatz ist halt noch nicht so gut, hab ich feststellen müssen. (Muß man halt wissen)

    Dein Program float kann man auch als Erweiterung einbinden, ohne den Kopfteil (Program float;) und ohne begin und end. Das, finde ich, ist auch eine gute Sache.
    Das die Zyklenanzahl am Rand des Editors angezeigt wird, finde ich z.B. auch sehr gut.

    Nur müsste es noch eine Befehlsreferenz geben, oder eine ähnliche Festlegung, in der man nachschlagen könnte.

    Ich kämpfe mich gerade durch die Beispielprogramme durch. Dabei habe ich festgestellt, das die Internetseite und die Beispielprogramme im Ordner nicht kongruent sind. Das ist von der Lerntheorie her zwar ganz nett, aber zum angeleiteten Durcharbeiten der Programme zum Kennenlernen empfinde ich das eher als nicht so schön.

    Als Version 0.6 ist TRSE aber schon toll.

  • Bitte melde dich an, um diesen Link zu sehen., wie kann ich den eine selbst gemachte Character Map aus dem CBMPrgStudio Screen Editor als *.bin abspeichern, so daß ich sie in TRSE mit dem Dialog "File\New File\Image/Charset/Sprite" als z.B. C64 Multicolor Charmap öffnen kann?

  • Da muss ich mal schauen, ich kenne das CBMPrgStudio nicht.

    Hab es jetzt mal installiert.

    Schaufel dein Programm mal hier rein von der Character Map.

    Gruss

    Einmal editiert, zuletzt von spacer (27. März 2019 um 19:42)

  • Meinst du nur deine Charactermap aus dem Tool "Character Editor" ?

    Gruss

  • Aus dem CBMPrgStudio nach TRSE. Also genauer vom Screen Editor zur C64 Multicolor Charmap vom TRSE, ich möchte dort halt selbsterstellte Benutzeroberflächen einbinden. Als Map oder so.... und dann in TRSE weiterprogramieren.

    Bitte melde dich an, um diesen Anhang zu sehen.Bitte melde dich an, um diesen Anhang zu sehen.

  • Dein Code kann ich bei Screen einladen, ist aber von den Characters nicht identisch.

    Du kannst wie unten im Bild den Screen erstellen und dann als Bin abspeichern.

    Screen Editor:
    Du gehst in File , Export Asm und dann das Häkchen bei "Generate to binary file".
    Dann hast du eine Bin-Datei mit 1000 Zeichen.

    Gruss

  • Habe ein Screen gezeichnet mit 1000 Byte mit CBM und als Bin abgespeichert.
    Den habe ich im Programm Ordner : daten/test.bin abgelegt.

    Hab ihn bei $2000 reingelegt , kannst auch einen anderen Speicherbereich wählen. Der muss nur höher liegen wie dein Programmspeicher,
    sonst wird gemeckert wenn ein konflikt entsteht.

    Habe ihn dann mit memcpy reingeholt. Die "0" sagt aus das er genau ab $2000 , $2100 usw das Byte holen soll , kann auch ein Wert bis 255 sein.
    memcpy kann immer nur 255 Byte einlesen. Da es aus der Zeropage geschieht , darum ist es Superschnell.
    Bei den Screen also 4x255.

    Wenn du andere Befehle mit Poke und Peek findest , die gehen auch nur bis 255.
    Da musst du immer wieder mit neuen 255 ansetzen.

    Also gewöhnungsbedürftig aber schnell , weil aus der Zeropage.
    Die benutzt er überall , wo Daten transportiert werden (Sprite , Musik und andere Sachen).

    Gruss

  • Ah jetzt ja! Danke dir. Eine Frage noch, sind 4x255 Byte nicht 900 Byte? Das *.bin ist doch 1000 Byte, passt das trotzdem? Klappt das trotzdem, auch wenn es ein bischen größer ist?

  • 4x 255=1020

    Der Screenspeicher ist immer 1024 Byte gross beim C64 und der Sichtbare ist 1000.
    Er nimmt jetzt Daten mit bis $2400 , über 1000 im Screen siehst du aber nicht, da kann Schrott drin stehen.
    Du darfst im Screen nur nicht höher wie 1024 gehen, dann kommst du in das System.

    Gruss

  • Bitte melde dich an, um diesen Link zu sehen. jetzt ist das Problem, das zwei Zeichen, warum auch immer, nicht dargestellt werden.
    Bitte melde dich an, um diesen Anhang zu sehen.

    Im Original sind sie aber da.
    Bitte melde dich an, um diesen Anhang zu sehen.
    Beim Code hab ich nur das Umschalten vom 1. auf den 2. Zeichensatz eingefügt.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Weist du warum? Die Anderen sind doch auch da.

  • jetzt ist das Problem, das zwei Zeichen, warum auch immer, nicht dargestellt werden.

    Das sind die jeweils letzten Zeichen der Page. Jede Page ist 256 Bytes groß, der memcpy-Aufruf kopiert aber wohl nur 255. Was sagt denn die Doku zu den vier Parametern der Funktion?

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Hallo Bitte melde dich an, um diesen Link zu sehen.. Aus der Hilfe werde ich leider nicht wirklich schlauer.

    Wenn ich die Null mitzähle, dann habe ich doch auch 256, oder?

  • Dann ist dieses memcpy für deinen Anwendungsfall unbrauchbar, du willst ganze pages (256 bytes) kopieren, es kopiert aber maximal 255 bytes.

    Habe mir mal Bitte melde dich an, um diesen Link zu sehen. -- scheint leider keine generische Funktion zum kopieren von mehr als 255 bytes zu geben ... dafür aber eine sehr spezialisierte für genau deinen Anwendungsfall: copyfullscreen.

  • Ja, sauber! Jetzt klappt es vernünftig.

    Code
    program screen;
    var
    charset1: incbin("daten/CharacterMap.bin", $2000);
    begin
    CopyFullScreen(^$2000, ^$400); /* Datentransporter für große Datenmengen */
    poke(^53272,0,23); /* Umschalten vom 1. auf den 2.Zeichensatz */
    Loop();
    end.

    Das schöne an TRSE, finde ich, das das Anzeigen quasi zum Dreizeiler wird. :wink:

  • Nimm nicht meine $100 als erhöhung sondern immer $ff dann geht es.
    Das memcpy geht auch(nur mit 255) wenn man nicht den ganzen Screen nehmen möchte sondern nur bestimmte Zeilen

    Gruss


    Einmal editiert, zuletzt von spacer (28. März 2019 um 16:26)

  • Nach "Cycles" gemessen ist deine die Schnellere. CopyFullScreen nimmt 114 Cycles und deine nur 77 Cycles.

    Danke noch mal an Bitte melde dich an, um diesen Link zu sehen., den Link kannte ich noch nicht. Da hab ich ersteinmal wieder was zum Studieren.