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

2 Mitglieder und 1 Gast betrachten dieses Thema.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 50
Re: AtariX => MagicOnLinux
« Antwort #160 am: Sa 06.12.2025, 19:48:15 »
Hab' jetzt von von Thorsten Otto alles übernommen, was mit Netzwerk zu tun hat. Ich hoffe, ich habe die richtige Version erwischt. Testen kann ich es leider nicht.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.441
Re: AtariX => MagicOnLinux
« Antwort #161 am: So 07.12.2025, 10:42:05 »
Danke. Leider haben sich durch meinen Code eine paar Probleme für macOS ergeben. Sollten mit https://github.com/th-otto/MagicOnLinux/commit/bfc8df76f86944d77d150e0f2c327b61e287a7ab behoben sein. Vermutlich funktioniert das TunTap-Gedöns unter macOS aber sowieso nicht, in Aranym gab es das zwar auch mal für alte Darwin-Versionen, aber mittlerweile wird dort BPF verwendet, was aber noch nicht portiert ist. Ausserdem würde das auch ein suid-executable (bpf_helper) benötigen.

Ausserdem fehlt für macOS noch ein `include <time.h>` in conversion.h (ist nicht in oben gelinktem commit, weil ich das bei mir schon vorher irgendwo eingefügt hatte).

PS.: falls solche detallierte Diskussionen hier stören, gerne auch per email

Offline AndreasKromke

  • Benutzer
  • Beiträge: 50
Re: AtariX => MagicOnLinux
« Antwort #162 am: Di 09.12.2025, 16:56:38 »
Hab' jetzt ein Nutzerkonto bei "atari-forum.com". Meine email-Adresse ist nicht mehr auf der blacklist.

Offline czietz

  • Benutzer
  • Beiträge: 3.935
Re: AtariX => MagicOnLinux
« Antwort #163 am: Di 09.12.2025, 17:36:41 »
Hab' jetzt ein Nutzerkonto bei "atari-forum.com". Meine email-Adresse ist nicht mehr auf der blacklist.

Sehr schön. Ich wollte auch gerade kommentieren, dass ich heute vom kontaktierten Admin dort eine Antwort bekommen hatte, wonach web.de und GMX nun nicht mehr pauschal ge-blacklist-et seien.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 50
Re: AtariX => MagicOnLinux
« Antwort #164 am: Di 09.12.2025, 20:26:38 »
(..)
Sehr schön. Ich wollte auch gerade kommentieren, dass ich heute vom kontaktierten Admin dort eine Antwort bekommen hatte, wonach web.de und GMX nun nicht mehr pauschal ge-blacklist-et seien.
Es hat sich doch gelohnt, hartnäckig zu bleiben. Ich habe übrigens meinen Nutzernamen jetzt mit dem englischen Forum harmonisiert, damit man mich wiedererkennt und auch ich nicht durcheinanderkomme. Und dann habe ich mir noch einen abgebrochen, weil ich mich "vorstellen" sollte. Na gut, kann man ja machen. Ist ja kein Forum mit Millionen von Mitgliedern.
« Letzte Änderung: Di 09.12.2025, 20:28:32 von AndreasKromke »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 50
Re: AtariX => MagicOnLinux
« Antwort #165 am: Fr 12.12.2025, 15:33:07 »
Bin da gerade auf ein Problem gestoßen, dessen Ursache etwa im Jahr 2005 entstanden ist. Damals habe ich für MagicMacX zwei anscheinend ungültige 68k-Opcodes für die Kommunikation mit dem PPC-Host verwendet. Jetzt wollte ich meinem Disassembler beibringen, die korrekt zu behandeln, ohne aus dem Tritt zu geraten, d.h. den nächsten Opcode zu verschlucken. Und - voilá - mein Disassembler hatte recht, und der von mir verwendete 68k-Emulator Musashi hatte unrecht. Die Opcodes waren scheinbar ungültig. Nämlich doch nicht. Und nun?

Die neue Musashi-Emulator-Version, die ich früher oder später verwende möchte (kann wohl auch Fließkomma) erfordert nicht nur große Umbauten, sondern dekodiert die Befehle cmp2 und chk2 anscheinend auch korrekt. Das sind selten verwendete Befehle im 68020-Befehlssatz.

Wenn ich jetzt alles umbaue auf andere Opcodes, welche Programme laufen dann nicht mehr? Thorstens Netzwerktreiber nutzt den Opcode 0x00c0. Noch jemand? Oder ist das alles? Ich könnte mir andere Opcodes suchen, wenn es noch welche gibt, oder man könnte dahinter immer ein "nop" schreiben. Dann wäre sichergestellt, daß der chk2-Befehl ungültig ist.

Bitgefusel für Insider:

0x00c0 0000 decodiert zu cmp2.b d0,d0
0x00c0 4e71 decodiert zu DC.W $c0; nop
« Letzte Änderung: Fr 12.12.2025, 15:33:46 von AndreasKromke »

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.441
Re: AtariX => MagicOnLinux
« Antwort #166 am: Fr 12.12.2025, 16:51:59 »
Bitgefusel für Insider:

0x00c0 0000 decodiert zu cmp2.b d0,d0
0x00c0 4e71 decodiert zu DC.W $c0; nop

Mit welchem Disassembler? $00c0 is kein gültiger opcode, weder für 68000 noch für 68020+, von daher sehe ich da eigentlich kein Problem (data-register direkt, wie oben ausgegeben, ist keine gültige Addressierungs-Art für cmp2) Nur für Coldfire ist das ein gültiger opcode (bitrev.l d0), aber das kann man hier wohl vernachlässigen ;) (Die von den NatFeats verwendeten Opcodes wären für ColdFire ebenfalls gültig).

Zitat
die korrekt zu behandeln, ohne aus dem Tritt zu geraten, d.h. den nächsten Opcode zu verschlucken.

Warum verschlucken? Nach dem Opcode kommt nix mehr was zum Interface gehört, Parameter werden in Registern übergeben??


Zitat
Thorstens Netzwerktreiber nutzt den Opcode 0x00c0.

MVDI und  dein HostXFS.s nutzen den ebenfalls.


Zitat
Die neue Musashi-Emulator-Version, die ich früher oder später verwende möchte
In https://github.com/th-otto/AtariX/tree/master/src/AtariX-MT/AtariX hatte ich das  schon umgestellt auf 3.4 (soviel ich weiss die letzte Version). Die Umstellung war, wenn ich mich recht erinnere, nicht allzu dramatisch. Fließkomma-Befehle konnte die aber auch noch nicht.

Fliesskomma korrekt zu emulieren ist sowieso so eine Sache. Problem ist daß bei den meisten Compilern double nur 64bit ist, womit sich die 68k-Fließkomma-Werte nicht korrekt darstellen lassen. Und long-double ist nicht überall verfügbar. Selbst wenn, gibt es da kleine aber feine Unterschiede in der externen Darstellung (nicht nur endian-Probleme, 68k speichert die ohne implizites integer-Bit und hat dadurch 1 bit mehr für die Mantisse als z.B. x86).

Edit: oh, sehe gerade, unter https://github.com/kstenerud/Musashi gibt es eine deutlich neuere Version.
« Letzte Änderung: Fr 12.12.2025, 17:11:15 von Thorsten Otto »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 50
Re: AtariX => MagicOnLinux
« Antwort #167 am: Gestern um 10:47:23 »
$00c0 is kein gültiger opcode, weder für 68000 noch für 68020+, von daher sehe ich da eigentlich kein Problem (data-register direkt, wie oben ausgegeben, ist keine gültige Addressierungs-Art für cmp2)

Danke! Ich hatte mich dumm und dusselig gesucht nach einer Liste der 68k-Befehle und ihrer Codierung. Ich habe ausschließlich "68000_68010_68020_Primer.pdf" gefunden. Das Dokument ist sehr unübersichtlich, und Deine Information fehlt dort. Kennst ein besseres Dokument im pdf-Format?

PS: Hier ist es hübsch: https://oldwww.nvg.ntnu.no/amiga/MC680x0_Sections/chk2.HTML. Dort steht auch, welche Adressierungsarten erlaubt sind. Und tatsächlich, da ist einiges verboten.

PS/2: Disassembler ist korrigiert, und tatsächlich ergeben sich einige Unterschiede, anhand derer ich sehen kann, daß die Korrektur erfolgreich war.
« Letzte Änderung: Gestern um 11:19:27 von AndreasKromke »

Offline czietz

  • Benutzer
  • Beiträge: 3.935
Re: AtariX => MagicOnLinux
« Antwort #168 am: Gestern um 11:07:45 »
Danke! Ich hatte mich dumm und dusselig gesucht nach einer Liste der 68k-Befehle und ihrer Codierung.

Das PRM kennst Du sicherlich? https://www.nxp.com/docs/en/reference-manual/M68000PRM.pdf

Offline AndreasKromke

  • Benutzer
  • Beiträge: 50
Re: AtariX => MagicOnLinux
« Antwort #169 am: Gestern um 12:04:33 »
Danke! Ich hatte mich dumm und dusselig gesucht nach einer Liste der 68k-Befehle und ihrer Codierung.

Das PRM kennst Du sicherlich? https://www.nxp.com/docs/en/reference-manual/M68000PRM.pdf

Nee, bei NXP hätte ich zuletzt gesucht. Aber schönes Dokument, da scheint alles Wichtige drinzustehen Danke!

Offline AndreasKromke

  • Benutzer
  • Beiträge: 50
Re: AtariX => MagicOnLinux
« Antwort #170 am: Heute um 01:21:32 »
Ich habe tagelang nach dem Gelbfehler im Vierfarb-Interleaved-Modus gesucht, der nur mit NVDI auftrat, und schließlich habe ich als Alternativstrategie nicht mehr im NVDI weitergesucht (fünf Megabyte disassembly...), sondern den schon als fehlerhaft erkannten MVDI-Treiber repariert und schließlich erfolgreich gebaut (verdammter pasm...). Der liegt jetzt erstmal im Programm-Repository, aber sollte noch in das Repository der Kernel-Quellen rein. Ursache ist ein typischer Copy-Paste-Fehler, d.h. die falschen Zeilen wurden aus Unachtsamkeit aus dem 16-Farb-Treiber unverändert übernommen.  :)

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.441
Re: AtariX => MagicOnLinux
« Antwort #171 am: Heute um 04:27:43 »
Nice. Hab die Änderungen auch bei mir übernommen. War hoffentlich der letzte Copy/Paste error dieser Art ;)

Zitat
verdammter pasm
Do NOT use PASM, as it corrupts "label(pc)" addressing

Was genau meinst du damit? Die Treiber wurden alle mit PASM übersetzt, hab da bisher noch nichts festgestellt. Welchen Assembler hast du denn dann genommen? Denke nicht, daß die Syntax ohne Änderungen von anderen Assemblern geschluckt wird.

BTW, bei dir in den Original-Sourcen ist immer noch der Aufruf von MM_init: https://gitlab.com/AndreasK/Atari-Mac-MagiC-Sources/-/blob/master/MagiC/KERNEL/VDI/SRC/MAGICVDI.2/MXVDIKNL.S?ref_type=heads#L1432-L1433

Dieser wandelt den alten PixMap-Pointer in die neue VDI_SETUP_DATA-Struktur um. Das funktioniert aber eigentlich nicht mit den MAC-Treibern, weil die immer noch einen PixMap-Pointer erwarten: https://gitlab.com/AndreasK/magiclinux/-/blob/main/kernel/VDI/DRIVERS/MAC/SRC/MFM4IP.S?ref_type=heads#L257-259
« Letzte Änderung: Heute um 05:01:02 von Thorsten Otto »