I was just playing around with the new RPT$ function and ran into a problem.
Both RPT$(“AA”,3) and RPT$(“A”,6) generate AAAAAA.
However, RPT$(“AA”,3) and RPT$(“A”,6) are not recognized as “equal” (see last statement in the screenshot!).
You are about to leave Forum64 to get redirected to the following address:
Please note, that the target website is not operated by us. We are not responsible for it's content nor does our privacy policy apply there.
I was just playing around with the new RPT$ function and ran into a problem.
Both RPT$(“AA”,3) and RPT$(“A”,6) generate AAAAAA.
However, RPT$(“AA”,3) and RPT$(“A”,6) are not recognized as “equal” (see last statement in the screenshot!).
I guess is you assign both to variables first, it‘s equal, right?
Don‘t have access to an emulator right now to try it myself
I guess is you assign both to variables first, it‘s equal, right?
No!
It seems there's an error assigning A$?
...
I bet there‘s something going wrong in the Zeropage.
Nice catch
Ist das mit direkter PRINT-Ausgabe dann nicht nur ein temporärer String? Das wird doch erst wirklich irgendwo angelegt, wenn eine Zuweisung stattfindet.
Ja verdammte Hacke, ich darf hier nicht editieren?
Ist das ein neues BASIC-Kommando? Flixt noch eins
Ist das ein neues BASIC-Kommando? Flixt noch eins
Ja, das ist mit dem letzten ROM 920414 mit dazugekommen und ich wollte es mal ausprobieren.
Ja verdammte Hacke, ich darf hier nicht editieren?
Hier kann niemand editieren. Fehler bleiben im Fehlerthread gnadenlos stehen!
Der zweite RPT$ zerstört die Daten vom ersten auf dem HEAP usw.
Der Vergleich geht aber auch nicht, wenn ich zuerst A$ und B$ zuweisen lasse.
Siehe hier:
Display MoreDer zweite RPT$ zerstört die Daten vom ersten auf dem HEAP usw.
Der Vergleich geht aber auch nicht, wenn ich zuerst A$ und B$ zuweisen lasse.
Siehe hier:
Ja, weil nach dem zweiten RPT$ ist der Inhalt von A$ kaputt
Deshalb geht ja auch A$=B$ nicht
nach dem a$ sieht es im Speicher so aus:
und nach dem B$ dann so:
Ergebnis:
von A$ (aaaaaa) ist nichts mehr übrig.
Ich bin jetzt auf der Suche ob es sowas wie Infos zum Basic ROM, Quellcode, Einsprungadressen, Zeropagenutzung und dergleichen auch auf dem Mega65 gibt.
Ich würde mir nämlich gerne anschauen was der RPT$ Befehl da macht
Es hilf auch nichts wenn man schreibt A$=RPT$("a",6)+"aa" .. das geht auch in die Hose obwohl die Addition ja einen neuen String auf dem Heap generieren müsste.
TSB macht's richtig...
Arndt
Display MoreDisplay MoreDer zweite RPT$ zerstört die Daten vom ersten auf dem HEAP usw.
Der Vergleich geht aber auch nicht, wenn ich zuerst A$ und B$ zuweisen lasse.
Siehe hier:
Ja, weil nach dem zweiten RPT$ ist der Inhalt von A$ kaputt
Deshalb geht ja auch A$=B$ nicht
nach dem a$ sieht es im Speicher so aus:
und nach dem B$ dann so:
Ergebnis:
von A$ (aaaaaa) ist nichts mehr übrig.
Ich bin jetzt auf der Suche ob es sowas wie Infos zum Basic ROM, Quellcode, Einsprungadressen, Zeropagenutzung und dergleichen auch auf dem Mega65 gibt.
Ich würde mir nämlich gerne anschauen was der RPT$ Befehl da macht
Es hilf auch nichts wenn man schreibt A$=RPT$("a",6)+"aa" .. das geht auch in die Hose obwohl die Addition ja einen neuen String auf dem Heap generieren müsste.
Wenn Du einen MEGA65 besitzt, kannst Du Zugriff auf das Repository mit den ROM Quellcode bekommen. Hat Lizenz-rechtliche Gründe, dass das nicht öffentlich ist.
Wenn Du einen MEGA65 besitzt, kannst Du Zugriff auf das Repository mit den ROM Quellcode bekommen. Hat Lizenz-rechtliche Gründe, dass das nicht öffentlich ist.
Habe ich leider nicht.
TSB macht's richtig...
TSB ist auch Omega - geprüft!
Thanks for the report! I probably allocated the return value string incorrectly. I was trying to follow the lead of the other functions that return strings but maybe I missed a step.