Autor Thema: AtariX => MagicOnLinux  (Gelesen 25836 mal)

0 Mitglieder und 15 Gäste betrachten dieses Thema.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #380 am: Sa 07.02.2026, 12:59:55 »
LOL! Im Quelltext zu CMD/KCMD/MCMD steht folgender Kommentar:

* Multiplikation geht in die Hose, wenn Zahlen > 16 Bit!

bei der Berechnung des freien Speichers auf Diskette/Festplatte.

Da war ich damals wohl zu faul, das nachhaltig zu lösen. Ist ja auch mindestens 34 Jahre her, daß ich den Quelltext angefaßt habe. Immerhin war ich mir dieses Problems damals schon bewußt.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.516
Re: AtariX => MagicOnLinux
« Antwort #381 am: Sa 07.02.2026, 13:09:17 »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #382 am: Sa 07.02.2026, 18:18:50 »
Ich weiß, habe ich schon gesehen.

Hast Du verstanden, warum ich damals das Symbol BOOT eingeführt hatte? Das ist auf 1 gesetzt, und wenn es auf 0 steht, macht er noch irgendwas mit Bildschirm löschen und Maus/Cursor an/aus.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.516
Re: AtariX => MagicOnLinux
« Antwort #383 am: So 08.02.2026, 10:23:04 »
Maus/Cursor an/aus wird beim starten von GEM-Programmen gemacht. Vlt. war das bei älteren Versionen nötig, wenn es nicht in VT52.PRG läuft?

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #384 am: Do 12.02.2026, 18:49:48 »
Garbage in, Crash out: Der alte Assembler MAS ruft Fopen() mit einem Grützzeiger für den Dateinamen auf, wenn der Pfad der INCLUDE-Anweisung falsch ist (ich hatte versehentlich einen richtigen Schrägstrich statt des verdrehten geschrieben). Folge: Der Emulator ist sang- und klanglos abgestürzt.

Ich habe die Gelegenheit ergriffen und für die meisten 68k-Zeiger, die in den Emulator gelangen, eine Bereichsüberprüfung eingebaut. Ich empfehle, die Gelegenheit zu ergreifen und mal alle Quellen neu zu holen. Der MCMD sollte jetzt auch gerade laufen, ist lokalisiert, und es gibt eine, bisher nur deutsche, Hilfe-Bibliothek dafür (-> HELP bzw. HELP dir usw.).

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.516
Re: AtariX => MagicOnLinux
« Antwort #385 am: Do 12.02.2026, 20:13:44 »
Garbage in, Crash out: Der alte Assembler MAS ruft Fopen() mit einem Grützzeiger für den Dateinamen auf, wenn der Pfad der INCLUDE-Anweisung falsch ist

Hatte letztens einen ähnlichen Effekt als ich lc1.ttp (pass1 vom Lattice-Compiler) manuell aufgerufen habe. Irgendwas fehlte ihm da im Environment, was zu total sinnlosen Adressen beim Fopen() führte.


Zitat
Der MCMD sollte jetzt auch gerade laufen, ist lokalisiert, und es gibt eine, bisher nur deutsche, Hilfe-Bibliothek dafür (-> HELP bzw. HELP dir usw.).

Ja, hatte ich schon gesehen. Bin aber noch dabei die Änderungen an APPLICAT einzubauen.

Zitat
Ich empfehle, die Gelegenheit zu ergreifen und mal alle Quellen neu zu holen.

Wir sollten uns mal dringend was einfallen lassen, die beiden repos wieder zu synchronisieren ;)


Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #386 am: Fr 13.02.2026, 11:47:12 »
Hier ist noch eine Macke im MCMD, die aber schon ziemlich sophisticated ist:

echo "halli""hallo"sollte ausgeben
hallihallound nicht
halli hallo. Selbiges mit Apostroph statt Anf.zchn.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.516
Re: AtariX => MagicOnLinux
« Antwort #387 am: So 15.02.2026, 20:31:27 »
Hab bei mir jetzt deinen Fix für MCMD bzgl. der Anführungszeichen übernommen. Bei mir hat er aber auch schon vorher kein Leerzeichen ausgegeben.

Auch die anderen Änderungen (splitten der Sourcen, *.HLP, Dateien) sind übernommen.

Was noch an Unterschieden bleibt zu deiner Version:

  • osbind.inc (und die country* Definitionen) sind bei mir im inc_as Verzeichnis, da sie auch anderswo benutzt werden
  • alle Dateien (und die entsprechenden INCLUDE directives) sind klein geschrieben. Ich hoffe wir können uns da mal drauf einigen ;)
  • Ich hatte vor einiger Zeit auch in MCMD die Laufwerke 1-6 eingebaut.
  • Es gibt nur eine Version für alle Sprachen. Macht das Programm zwar etwas grösser (ca 3k), aber ist noch akzeptabel, finde ich. Sprach-Einstellung wird aus dem ROM-Header genommen; eigentlich müsste man dort die AES-Sprache nehmen, was aber in einem TOS-Programm auch nicht ganz sauber wäre.
  • Einträge in PATH können auch durch "," getrennt werden (wird z.b. auch in Mupfel benutzt)
  • noch ein paar andere, kleinere Fixes (siehe auch https://gitlab.com/AndreasK/Atari-Mac-MagiC-Sources/-/issues)


ACC.HLP war übrigens interessant zu lesen. Hast du den neu geschrieben oder noch irgendwo auf der Platte gefunden?

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.516
Re: AtariX => MagicOnLinux
« Antwort #388 am: Mo 16.02.2026, 10:44:41 »
Ich habe APPLICAT.APP etwas aufgeräumt, mit dem Hauptziel, daß .INF und .DAT beim Wechsel der Sprache nicht mehr ausgetauscht werden, was unpraktikabel war.

Umgekehrt geht es aber. Betrifft auch nur die abgespeicherten Fenster-Positionen, damit sollte man leben können.

Was ich nur nicht verstehe ist die Motivation zum Fix in serror(): dort wird eine Alert-Box mit einem String aus der RSC-Datei zusammengebaut. Der Fix beinhaltet, ']' und '[' im besagten String zu ersetzen, damit die Alert-Box nicht kaputt geht. Ich sehe allerdings keine Strings in der RSC-Datei, wo das der Fall wäre???

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #389 am: Mo 16.02.2026, 10:56:36 »
(..)
Was ich nur nicht verstehe ist die Motivation zum Fix in serror(): dort wird eine Alert-Box mit einem String aus der RSC-Datei zusammengebaut. Der Fix beinhaltet, ']' und '[' im besagten String zu ersetzen, damit die Alert-Box nicht kaputt geht. Ich sehe allerdings keine Strings in der RSC-Datei, wo das der Fall wäre???
Ich hatte tatsächlich genau diesen Fall, sonst wäre es mir auch nicht aufgefallen. Die .INF-Datei war kaputt, und à la "SQL Injection Attack" hat das Einsetzen der fehlerhaften Zeile in den Fehlertext zu genau diesem Effekt einer nicht mehr bedienbaren Alert-Box geführt.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #390 am: Mi 18.02.2026, 16:10:15 »
Diesen blöden Schreibfehler in PureC (auf den Menüpunkt "Abandon") könnte auch mal jemand pätschen...

Offline tosbombe

  • Benutzer
  • Beiträge: 44
Re: AtariX => MagicOnLinux
« Antwort #391 am: Mi 18.02.2026, 17:18:11 »
die können noch nicht mal Toulouse richtig schreiben...

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #392 am: Mi 18.02.2026, 18:18:55 »
die können noch nicht mal Toulouse richtig schreiben...
LOL!  :)

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.516
Re: AtariX => MagicOnLinux
« Antwort #393 am: Fr 20.02.2026, 00:28:34 »
Diesen blöden Schreibfehler in PureC (auf den Menüpunkt "Abandon") könnte auch mal jemand pätschen...

Patchen ist was für Anfänger :D
int ask_abandon(void)
{
return form_alert(1, _("[2][|Are you sure you want|to lose your changes?][ Yes | No ]")) == 1; /* XXX move to resource */
}

Beinhaltet übrigens einen ähnlichen Fix wie MagxDesk: wenn man im Hilfe-Fenster einen Doppel-Klick auf einen Link machte, wurde der Klick auch gleich nochmal im neuen Text behandelt.
« Letzte Änderung: Fr 20.02.2026, 00:33:12 von Thorsten Otto »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #394 am: Fr 20.02.2026, 01:14:12 »
kuhl!

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #395 am: Fr 20.02.2026, 12:40:06 »
Funktionierende symbolische Links sind eine echte Herausforderung. Soweit ich das sehe, funktionierten  die vermutlich nicht einmal bei MagiCMac vollständig.

Insbesondere knifflig sind solche Links, die auf ein anderes Dateisystem zeigen. Ich kann beispielsweise A: als Disketten-Image einhängen, in "C:\MP" einen Link namens "AO" erzeugen, der auf "A:\ORDNER\" verweist, und dann einen Zugriff machen auf "C:\MP\AO\BA\BEISPIEL.TXT". In diesem Fall kann der Link AO kein gültiger Unix-Link sein, weil es dort ja kein Laufwerk A: gibt. Die Pfadauswertung im HostXFS muß dann bei "C:\MP\AO" abbrechen und dem Kernel sagen, daß er bei "A:\ORDNER\" weitersuchen soll, und zwar nach "BA\BEISPIEL.TXT". Der Kernel kann das, aber das HostXFS nicht, und das aus gutem Grund, denn der Aufwand dafür ist beträchtlich.

Was ich immerhin hingekriegt habe (hoffentlich), sind symbolische Links innerhalb des HostXFS, solange sie nicht relativ sind UND das virtuelle Laufwerk verlassen. Dann knallt es, was es natürlich nicht darf. Da sind auch sicherlich noch mehr Fehler drin; die Fehlermöglichkeiten sind unerschöpflich.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.516
Re: AtariX => MagicOnLinux
« Antwort #396 am: Fr 20.02.2026, 12:57:54 »
Funktionierende symbolische Links sind eine echte Herausforderung.

Ja, das ist knifflig. Insbesondere bei absoluten symlinks. Soll bei einem link '/etc/localtime' auf die Host-Datei zugegriffen werden, oder auf `U:\etc\localtime`? Beides kann, je nach Situation, sinnvoll sein. Wobei idealerweise irgendeine Option vorhanden sein sollte, die jeglichen Zugriff auf Pfade ausserhalb der konfigurierten Host-Pfade unterbindet.

Was bei MagiC noch dazu kommt, ist daß der Kernel beim Parsen von Pfadnamen nur '\' als Trenner akzeptiert, aber nicht '/'. Das müsste man mal (auch aus Kompatibilität zu MiNT) ändern.


Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #397 am: Fr 20.02.2026, 14:56:26 »
Kommando zurück: Das mit den Links auf andere HostXFS-Laufwerke klappt nur manchmal. Es geht wohl nur, wenn das Ziellaufwerk schon mal geöffnet war. Keine Ahnung, woran das liegt, alles zu kompliziert.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #398 am: Gestern um 15:20:38 »
Es ist vollbracht:

Um die symbolischen Links vollständig zu unterstützen, mußte ich die XFS-Schnittstelle um ein paar Parameter erweitern. Bei dieser Gelegenheit habe ich endlich alle Verweise auf das alte macOS aus dem Kernel rausgeworfen und die Schnittstelle großteils neu gemacht.

Der Kernel tut nun das, was ich 1994 auch schon hätte einbauen müssen, nämlich alle XFS-Aufrufe blind weiterzuleiten, mit den internen Deskriptoren, ohne daß sich der Kernel darum kümmert, was der Host da in seine privaten Bereiche reinschreibt. Das HostXFS hat jetzt rund 80 Bytes in diesen Blöcken zur Verfügung, die es frei verwalten kann. Insbesondere ist es jetzt nicht mehr nötig, für einige Verweise 16 Bit statt 32 zu verwenden, nur weil ich das 1994 so festgelegt hatte.

Hintergrund war damals, daß jede Datei und jeder Ordner im macOS durch zwei Zahlen eindeutig referenziert wurde, nämlich eine 16 Bit breite VolumeId (ein großes ELL, ich HASSE serifenlose Schrift!) und eine 32 Bit breite Datei-Id. Diese beiden Zahlen wurden schon im Assembler-Teil, also im Kernel, verwaltet, weil ich damals soviel wie möglich im MagiC-Kernel machen wollte und so wenig wie möglich im macOS. Ein Fehler.

Der Emulator unterstützt weiterhin den vorherigen Kernel (API 3); die Funktionen sind alle doppelt vorhanden. Die alten werde ich aber demnächst rauswerfen. Wenn ihr den Emulator neu baut, achtet bitte darauf, daß ihr auch den neuen Kernel verwendet. Im Debug-Modus gibt es eine Warnung, die auf die API-Version 3 oder 4 hinweist.

Mit den symbolischen Links könnt ihr (wenn da nicht noch Fehler drin sind) jetzt natürlich auch folgendes machen:

Hänge in A: ein Disketten-Image ein, dort drin ist Ordner "BILDER".
Macht in C:\BIN einen symbolischen Link auf A:\BILDER.
etc.

Die Links können, wenn alles klappt, auch vom Host aus erzeugt werden (ln -s). Ihr könnt auch einen Atari-Pfad angeben ("ln -s A:\\BILDER A.LNK"), dann zeigt der Link natürlich im Host ins Leere. Wenn der Link vom Atari erzeugt wird, versucht er, einen Host-Link zu erzeugen, und wenn das nicht geht, weil das Ziel-Volume nicht vom Host zugreifbar ist, gibt es einen Atari-Link, auch z.B. auf U:\PROC.

Der ganze Quatsch sollte auch vom MCMD aus gehen, weil die alten Funktionen (Fsfirst/next/attrib etc.) symbolische Links transparent behandeln sollten.
« Letzte Änderung: Gestern um 15:23:54 von AndreasKromke »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 158
Re: AtariX => MagicOnLinux
« Antwort #399 am: Gestern um 15:22:49 »
(Fehfunktion)