PRINT-Generator

Es gibt 51 Antworten in diesem Thema, welches 2.945 mal aufgerufen wurde. Der letzte Beitrag (15. Januar 2025 um 16:32) ist von Endurion.

  • Na gut, da hast du :)

    Optional gibt es ein Adressfeld. Mit $ oder 0x-prefix ist die Adresse hex, sonst dezimal. Das setzt dann ein POKE 648 passend ein, bei Werten nicht auf einer Page wird SPC(...) mitgenommen.

    Zum Test hatte ich $c013 verwendet.

    Das doppelte Anführungszeichen am Ende sollte auch Geschichte sein.

    Mann bist Du flott.

    Ja, das mit den Anführungszeichen sieht gelöst aus, schon mal nicht schlecht. Aber es gibt noch 2 Bugs:

    1.

    Die erste Zeile lautet:

    Code
    10POKE648,192:PRINT"{HOME}",

    Das Komma am Ende müsste aber ein Semikolon sein, sonst landet das nicht an $C000

    2.

    Ist der Speicherbereich länger als ein Bildschirm, scrollt alles nach oben und alles verrutscht. Das war das, was ich mit den "Zwischenpokes" meinte. Am besten wäre es, wenn man den Bildschirmbereich gar nicht komplett ausnutzt, sondern beim Überschreiten einer Pagegrenze eine neue POKE-Zeile mit HOME einfügt (Beispiel das Programm aus dem im Video angesproechenen Heft 11/85 Comute).

  • Hab das mal so umgesetzt. Zum Test habe ich einen 2kB-Block nach $c000 schreiben lassen. Die Daten waren im Speicher, allerdings hing bei mir nachher der BASIC-Interpreter. Eine Idee, weshalb das sein kann?

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Hab das mal so umgesetzt. Zum Test habe ich einen 2kB-Block nach $c000 schreiben lassen. Die Daten waren im Speicher, allerdings hing bei mir nachher der BASIC-Interpreter. Eine Idee, weshalb das sein kann?

    Ich glaube nicht, dass Basic wirklich hing. Ich hatte das auch, als ich das Programm per Copy&Paste in Vice geholt und nicht aufgepasst hatte. Dann brach das Programm mit nem Syntax Error ab. Nur die Meldungen erscheinen ja jetzt nicht mehr auf dem Bildschirm, sondern an der Zieladresse. Da musst Du mal mit dem Monitor rein schauen.

    Was heißt, Du hast das "mal so umgesetzt"? Hast Du was geändert, oder mit der alten Version? Also mit der alten Version schiebt sich das definitiv "nach oben" weg.

  • Ach so, sorry. Ich meinte, ich hab grade nochmal eine WIP-Version nachgeschoben. Die hat das Semikolon gefixt, und diese Boundary-Grenzen. Wenn bei einem normalen Zeilenumbruch mehr als 255 Bytes geschrieben hat, dann wird ein neuer POKE plus PRINT gesetzt.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Da passt auch noch irgendwas anderes nicht. Habe gerade dieses Eregebnis:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Zum einen sollten da tatsächlich Anführungszeichen stehen und nicht "CHR$(34)", zum anderen gibt es einen Fehler (vermutlich das gleiche wie bei Dir)

    Hier mal die Dateien dazu.

    Edit: OK, das war zumindest bei der vorherigen Version so. Die neue muss ich mal probieren.

  • Ah, der Fehler ist klar. Ich hab einen Umbruch innerhalb eines CHR$... gemacht (facepalm)

    Das ist dann in der letzten Version auch noch.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Warum er da hängen bleibt, verstehe ich jetzt auch nicht.

    Ich habe das Programm mal gekürzt. So hängt es noch. Löscht man Zeile 200, hängt es nicht mehr.

    Fügt man aber nach Zeile 200 eine fehlerhafte Zeile ein, wird ein Syntax Error ausgelöst. Er läuft also noch weiter. Und anschließend kommt ja nur noch der Poke des Bildschirmspeichers.

  • Es ist aber nochwas komisch.

    Hier sieht man, dass nach dem Syntax Error nochwas im Speicher steht. Da müsste eigentlich Ende sein:

    Bitte melde dich an, um diesen Anhang zu sehen.

  • Irgendwas scheint außerhalb des Zielspeichers zu wursteln.

    Ich hab mal eine neue WIP hochgeschossen, die bricht die CHR$-Blöcke nicht mehr in der Mitte auseinander.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Irgendwas scheint außerhalb des Zielspeichers zu wursteln.

    Ich hab mal eine neue WIP hochgeschossen, die bricht die CHR$-Blöcke nicht mehr in der Mitte auseinander.

    Jo, jetzt sieht es gut aus:thumbsup:

    Jetzt fehlt eigentlich nur noch der I-Punkt:P

  • Den Punkt brauchte ich für das Semikolon :P

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.