Diskussion:LOAD

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Bei den Ladern wird A nicht inkrementiert. Wie sollen die anderen asm-Programme so geladen werden? --LeonardoInf (Diskussion) 18:24, 8. Aug. 2019 (CEST)

Hast Du die Beschreibung wie sich LOAD im Direktmodus und Programmmodus verhält nicht gelesen?
Die Lader-Routine wurde so früher auch schon als Tipps in bekannten C64-Zeitschriften abgedruckt...
Es dürfen auch nur Daten oder Maschinenspracheprogramme sein, keine weiteren BASIC-Programme!
PS: Dann dürfte das andere Vorladeprogramm auch nicht funktionieren, da wird der gleiche Trick angewendet! --Jodigi (Diskussion) 20:38, 8. Aug. 2019 (CEST)
WICHTIG: Nicht vergessen die Einträge hier zu signieren, sonst muss man immer in der Historie nachsehen, von wem welche Änderungen sind! --JohannKlasek (Diskussion) 18:19, 8. Aug. 2019 (CEST)
Hallo AnonymJodigi, danke für deine Antwort. Ich habe diesen Abschnitt tatsächlich übersehen. Ich werde meine Änderungen diesbezüglich rückgängig machen. Das letzte zu ladende Programm kann jedoch tatsächlich ein BASIC-Programm sein (man lädt es dann ohne ,1) und dann wird in dieses umgeschaltet. LG LeonardoInf (Diskussion) 18:13, 8. Aug. 2019 (CEST)
Das ist nicht Anonym sondern Jodigi, wie man aus der Historie sehen kann. --JohannKlasek (Diskussion) 18:19, 8. Aug. 2019 (CEST)
Zur Diskussion: Natürlich wird A inkrementiert. Das Inkrementieren von A passiert, weil nach einem LOAD "...",8,1 implizit ein RUN, aber ohne die Variablen neu zu initialisieren. Der Wert von A bleibt also nach dem Neustart erhalten. Das kann nicht bestritten werden, weil es so in der Praxis schlichtweg funktioniert und im Einsatz ist. Das funktioniert natürlich nur bei Programmen, die das BASIC-Programm nicht korrumpieren, also typischerweise nachgeladene Binarys (Maschinencodeprogramme, Grafikdaten, etc.) in entsprechenden Speicherbereichen.
Im Beispiel mit dem komplexeren Lader war tatsächlich ein Bug, nämlich das IF A=0 hätte ein IF A=1 sein müssen. Warum jetzt die Variable N heißen muss (statt S), ist fraglich, aber eigentlich auch egal, nachdem ja ohnehin keine Erklärung oder Mnemonic für den Variablenbuchstaben gegeben wird. Das wird dem geneigten Leser überlassen. --JohannKlasek (Diskussion) 18:19, 8. Aug. 2019 (CEST)
Ich bekenne mich schuldig ;) LG --LeonardoInf (Diskussion) 18:24, 8. Aug. 2019 (CEST)
Der Moderne Lader hatte noch einen fataleren Bug, nämlich das eine sukzessives READ nach jedem LOAD wieder von vorne beginnt. Der DATA-Zeiger wird beim Neustart zurückgesetzt, auf wenn die Variablen erhalten bleiben. Das ist mir auch erst jetzt aufgefallen, nachdem ich das Programm real getestet habe ... --JohannKlasek (Diskussion) 18:44, 8. Aug. 2019 (CEST)
Warum meine Signierung aktuell weg war ...? --Jodigi (Diskussion) 20:38, 8. Aug. 2019 (CEST)
Ich habe die Beispiele korrigiert; das sah so aus, als könnte man einfach so ein anderes BASIC-Programm nachladen (LEVEL1 wäre sicher länger als der Loader...?). -- 1570 (Diskussion) 02:18, 10. Dez. 2023 (CET)