Was soll ich sagen: das bringt 437 Bytes!
Das probier ich doch gleich mal bei meinem Port von "North Sea Oil" aus! ![]()
Arndt
Es gibt 4.424 Antworten in diesem Thema, welches 407.114 mal aufgerufen wurde. Der letzte Beitrag (
Was soll ich sagen: das bringt 437 Bytes!
Das probier ich doch gleich mal bei meinem Port von "North Sea Oil" aus! ![]()
Arndt
Das abschließende DATA schreibt ein RUN in den Tastaturpuffer. Zeile 10 bleibt ja und soll nochmal ausgeführt werden, weil die Variablenwerte brauch ich.
Wenn du RUN ausführst, werden die bisherigen Variablenwerte doch gelöscht? ![]()
Das probier ich doch gleich mal bei meinem Port von "North Sea Oil" aus!
Funktioniert! Super! ![]()
Wenn du RUN ausführst, werden die bisherigen Variablenwerte doch gelöscht?
Deshalb bleibt Zeile 10 ja stehen! ![]()
Arndt
Wenn du RUN ausführst, werden die bisherigen Variablenwerte doch gelöscht?
Deshalb bleibt Zeile 10 ja stehen!
Okay, ich fasse mal für mich zusammen: Ich habe ein TSB-Programm, dass ich einmal ausführen lasse. Dabei werden Binaries geladen. Dann lasse ich einen Zeilenbereich löschen und das Programm mit RUN wieder starten. Also ein selbstmodifizierendes (löschendes) Programm? Kann man machen.
Ich sehe hier jetzt nicht so den großen Nutzen darin. Wenn es ums Laden von Binaries geht, würde ich ein Ladeprogramm vorschalten und mit dem dann das eigentlich Programm laden und starten lassen. Wäre mir persönlich etwas "sauberer" als im Programm selbst rumlöschen zu lassen.
Ich sehe hier jetzt nicht so den großen Nutzen darin. Wenn es ums Laden von Binaries geht, würde ich ein Ladeprogramm vorschalten und mit dem dann das eigentlich Programm laden und starten lassen. Wäre mir persönlich etwas "sauberer" als im Programm selbst rumlöschen zu lassen.
In diesem Fall verwende ich Variablen, die sowohl zum Festlegen des Speicherortes verwendet werden, als auch später dann zum Abfragen via PEEK.
Im Lauf der Entwicklung verändern sich diese unter Umständen. Nicht ständig, und nicht täglich, aber trotzdem.
Mit diesem Ansatz muss ich nicht die selbe Adresse in zwei separaten Dateien pflegen - was beim Loader ja der Fall wäre.
Aber das Gute ist ja, dass TSB groß genug für zwei Ansätze ist ![]()
Goodwell: Ich halte das für keine gute Idee. So ein seltmodifizierendes Programm ist auf die Dauer die Hölle. Damit machst du dir das Leben unnötig schwer.
In der Entwicklungsphase sieht das dann so aus:
- Du lädst dein Programm und startest es.
- Das Programm modifiziert sich selbst.
- Du führst Änderungen an dem Programmcode aus.
- Du speicherst die neue Version...
...aber: Ach! Der Programmcode ist ja gar nicht mehr vollständig da.
- Ups! :emojiSmiley-51:
Mach es lieber so, wie Snoopy es vorschlägt. Sonst beißt du dir früher- oder später in den Hintern.
Das Wichtigste beim Programmieren ist, dass man sich selbst saubere und klare Strukturen schafft, die man später leicht nachvollziehen kann. Mit irgendwelchen verrückten Tricks und Alles-in-eine-Zeile-quetschen kommt man nicht weit. ![]()
Es geht hier ja nur um die Initialisierungsphase.
Wenns drum geht, Programmteile zu löschen oder nachzuladen, die die laufende Logik verändern, seh ich das genauso.
Da müsst ihr jetzt durch ![]()
Es geht hier ja nur um die Initialisierungsphase.
Gerade weil es nur um Initalisierungen geht, sehe ich keinerlei Anlass dafür im Programm rumzulöschen. ![]()
Da müsst ihr jetzt durch
Meinen Tag wird es sicherlich nicht versauen! ![]()
Meinen Tag wird es sicherlich nicht versauen!
Eben.
Sollten sich eure Befürchtungen als Zutreffend erweisen, bin ich der Erste, der das kundtun und davor warnen wird.
Und das T in TSB steht nun mal für Tuned, nicht für Tugendhaft. Weisde? ![]()
Sollten sich eure Befürchtungen als Zutreffend erweisen, bin ich der Erste, der das kundtun und davor warnen wird.
"Ich habe noch nie irgendwelche Daten verloren! ... Upps!" ![]()
Wir meinen es doch nur gut mit dir. ![]()
Bitte melde dich an, um diesen Anhang zu sehen.
![]()
Macht ruhig
Irgendwo wird immer eine Datei rumliegen, wo D! drin ist. Die werdet ihr nie finden! ![]()
Irgendwo wird immer eine Datei rumliegen, wo D! drin ist. Die werdet ihr nie finden!
Ist kein Problem! D!D! löscht rekursiv alle Vorkommen von D!. ![]()
Irgendwo wird immer eine Datei rumliegen, wo D! drin ist. Die werdet ihr nie finden!
Ist kein Problem! D!D! löscht rekursiv alle Vorkommen von D!.
Also Doppel-D hat noch nie irgendwas schlechter gemacht ![]()
Ich sehe hier jetzt nicht so den großen Nutzen darin.
Wenn ein Programm dermaßen lang ist, dass jedes Byte weniger Code dem Ganzen zugute kommt. Das ist z.B. in North Sea Oil der Fall. Nach dem Start hab ich noch rund 3000 Bytes frei. Ziemlich wenig. Nach D! sind es über 4000. Schon besser... ![]()
Arndt
Ich sehe hier jetzt nicht so den großen Nutzen darin.
Wenn ein Programm dermaßen lang ist, dass jedes Byte weniger Code dem Ganzen zugute kommt. Das ist z.B. in North Sea Oil der Fall. Nach dem Start hab ich noch rund 3000 Bytes frei. Ziemlich wenig. Nach D! sind es über 4000. Schon besser...
Programmcode, den ich bedenkenlos mit D! im laufendem Programm löschen kann, ist nicht so wichtig, dass er unbedingt im gleichen Programm stehen muss. Ich würde hier immer ein Ladeprogramm und dann das eigentliche Programm aufrufen. Sauber getrennte Codestücke! ![]()
Während dem Programmablauf Programmteile löschen? Wo kommen wir denn da hin! Wo ist der Sinn für Programmierästhetik geblieben? ![]()
Ich sehe hier jetzt nicht so den großen Nutzen darin.
Wenn ein Programm dermaßen lang ist, dass jedes Byte weniger Code dem Ganzen zugute kommt. Das ist z.B. in North Sea Oil der Fall. Nach dem Start hab ich noch rund 3000 Bytes frei. Ziemlich wenig. Nach D! sind es über 4000. Schon besser...
Programmcode, den ich bedenkenlos mit D! im laufendem Programm löschen kann, ist nicht so wichtig, dass er unbedingt im gleichen Programm stehen muss. Ich würde hier immer ein Ladeprogramm und dann das eigentliche Programm aufrufen. Sauber getrennte Codestücke!
Während dem Programmablauf Programmteile löschen? Wo kommen wir denn da hin! Wo ist der Sinn für Programmierästhetik geblieben?
Ich glaube beides ist richtig und hat seine Berechtigung!
Ich glaube beides ist richtig und hat seine Berechtigung!
Ja, stimmt schon. Selbstmodifizierender Code kann seine eigene Ästhetik haben. ![]()
Aber in einem BASIC-Programm und nur zum Nachladen? Da geht doch alles den Bach runter! ![]()
Aber in einem BASIC-Programm und nur zum Nachladen? Da geht doch alles den Bach runter!
Gerüchtehalber - aber das ist wirklich nur ein Gerücht - soll es ja zu einem Gutteil am Programmierer hängen, ob ein Programm den Bach runter geht oder nicht.
Wer würde sonst heute noch Basic programmieren? ![]()
Und zwar das mit den Zeilennummern.
Da darf keine Zeilennummer doppelt vorkommen.
Sonst überschreibt eine Zeile die andere, obwohl es zwei verschiedene Zeilen am Bildschirm sind.
Das MUSS am Programmierer hängen. Nie im Leben kann so eine beschränkte Programmiersprache das alleine hinkriegen.
![]()
Das MUSS am Programmierer hängen. Nie im Leben kann so eine beschränkte Programmiersprache das alleine hinkriegen.
Das stimme ich dir voll und ganz zu! ![]()
Wer würde sonst heute noch Basic programmieren?
Und zwar das mit den Zeilennummern.
Da darf keine Zeilennummer doppelt vorkommen.
Sonst überschreibt eine Zeile die andere, obwohl es zwei verschiedene Zeilen am Bildschirm sind.
Das passiert mir auch im Jahre 2025 immer noch ab und zu! ![]()
Muss also doch am Programmierer liegen!![]()