extAsm korrumpiert Absolute-Dateien

Moderator: Patrick

Antworten
Artchi
RISCOS Power User
Beiträge: 187
Registriert: 03 Apr 2005, 19:04

Beitrag von Artchi »

Hallo zusammen! Nach vielen Jahren habe ich meinen A3010 wieder aus dem Keller geholt und habe etwas Assembler probiert.

Es gibt dabei folgendes Phänomen, wenn ich den extAsm benutze:
ich schreibe normal den Code in z.B. !edit, es ist eher ein HelloWorld. Es wird fehlerfrei gebaut und es kommt eine ff8-Datei raus die z.B. 44 Bytes groß ist. Bei einem Doppelklick kommt ein Interner-Fehler (der nicht im geringsten etwas mit dem &8000-Bereich zu tun hat) und die ehem. 44 Bytes Datei ist jetzt ca. 5 KByte groß.

Wenn ich die ff8-Datei im Zap-Editor betrachte, sehe ich vor der Korrumpierung, das alles dem Quellcode entspricht. extAsm hat also richtig gebaut.

Ich war zuerst davon ausgegangen, das ich irgendwas im Code Falsch gemacht habe. Aber nein, wenn ich den Rechner aus-und-an schalte und die noch nicht korrumpierte ff8-Datei ausführe, funktioniert das Programm wie erwartet und fehlerfrei, und die Datei bleibt genauso groß wie frisch gebaut.

Sobald ich extAsm starte (nicht mehr!), und die ff8-Datei danach starte, ist alles wieder kaputt. Verrückt!

Übrigens, das gleiche passiert auch mit ff8-Dateien, die ich nicht mit extAsm erstellt habe. Wenn ich das gleiche HelloWorld im Basic-Assembler erstelle und mittels OS_File den reinen Maschinencode in eine ff8-Datei schreibe, passiert das gleiche Phänomen, wenn ich extAsm gestartet habe. Im Zap sieht der Maschinencode auch 100% gleich aus, wie wenn ich mit extAsm gabaut habe.

Das Vector-Beispiel (drehende 3D-Pyramide) das bei extAsm beiliegt, macht übrigens nicht solche Probleme. Das hat zu Anfang dafür gesorgt, das ich den Fehler in meinem Code vermutete.

Weiß jemand, was da los ist? Habe ich irgendwas missachtet? Ist extAsm einfach nur fehlerhaft? Und warum passiert es trotzdem weiter, nachdem ich extAsm beendet habe?
Benutzeravatar
naitsabes
RISCOS Experte
Beiträge: 458
Registriert: 12 Apr 2005, 19:36

Beitrag von naitsabes »

Klingt reichlich komisch.
Guck mal in die !Run Datei von !extASM, ob da irgendwas mit der Run Variablen ( Alias$@RunType_FF8 ) für FF8 Files veranstaltet wird.
Alternativ kann man auch auf der Kommandozeile mal
*show *FF8
tippen und gucken, ob sich dort nach Starten von dem Assembler was geändert hat.
Antworten