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

0 Mitglieder und 3 Gäste betrachten dieses Thema.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 130
Re: AtariX => MagicOnLinux
« Antwort #340 am: Sa 24.01.2026, 17:50:09 »
Es ist gruselig! Auch ohne NVDI ist ein Fehlkonzept im VDI/XBIOS, das bei den "großen" Bildschirmtreibern, also bei denen mit VT52-Code, zum Durcheinander führt. Das kann man folgendermaßen testen:

- 16M Farben einstellen, kein NVDI
- VT52.PRG deaktivieren
- Mit Strg-B die Shell öffnen
- SID oder SD starten
- Mit Strg-C den Debugger beenden

Ergebnis: Ein bunter Cursor, grün und rosa.

Die Ursache: Xbios Cursconf(), hier mit den Unterfunktionen "cursor hide" und "cursor show". Eigentlich gehört das ins BIOS, nicht ins XBIOS, weil es den VT52 betrifft. Und Cursor ein/aus kann man auch über Esc-e und Esc-f machen. Cursconf springt aber direkt ins MVDI, auf die Sequenzen esc_e und esc_f, unter Umgehung (!) des Grafiktreibers. Die Kernel-Routine kann aber diesen Modus nicht und macht den Bildschirm seltsam.

Ich habe dann in meiner Naivität das Cursconf() geändert, so daß es über con_state springt, genau wie das BIOS Bconout. Aber, ach, es erschien nur seltsamer Mist auf dem Bildschirm. Es sieht so aus, als ob con_term gerade auf die Routine zeigt, die das Zeichen nach dem Esc verarbeitet, statt auf die Grundroutine, die auf Esc wartet. Es müßte also jemand mittendrin in einer Esc-Sequenz das Cursconf() aufgerufen haben. Wie das? Ich hab's erstmal aufgegeben.

Ich habe spaßeshalber mal NVDI aktiviert, und hier läuft dann eine Cursor-Blink-Routine, die, wie die interne, Byte-Zugriffe statt 32-Bit-Zugriffe aufs VRAM macht und damit einen grünen Cursor erzeugt. Aber das ist eine andere Geschichte.
« Letzte Änderung: Sa 24.01.2026, 17:52:38 von AndreasKromke »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 130
Re: AtariX => MagicOnLinux
« Antwort #341 am: Sa 24.01.2026, 17:51:59 »
(gelöscht)

Offline don_apple

  • Benutzer
  • Beiträge: 36
Re: AtariX => MagicOnLinux
« Antwort #342 am: Sa 24.01.2026, 18:05:23 »
@AndreasKromke Ich habe jetzt mal einen Debug-build von magiclinux gemacht, und wenn ich magiclinux starte gibt es einige Meldungen auf der Konsole (siehe angehängte debug.txt).

Vielleicht ist das ja für dich interessant um ggf. Fehler im Code zu finden und zu bereinigen.

Die letzte Warnung
(17:55:57) DBG-WRN hostpath2HostFD() : fstatat("GEMSYS/MAGIC/STOP/") -> No such file or directory
läßt sich relativ einfach beheben, indem man den Ordner "STOP" im rootfs erstellt. Vielleicht kannst du das ja im Upstream-Repo anpassen das da der Ordner gleich vorhanden ist.

Edit: die beiden Warnungen vom shutdown.prg
(17:55:57) DBG-WRN m68k_write_memory_32() -- 68k vec 0x00000008 := 0x0016e736 (bus error) by process C:\GEMSYS\GEMDESK\shutdown.prg
(17:55:57) DBG-WRN m68k_write_memory_32() -- 68k vec 0x00000008 := 0x007cb4a0 (bus error) by process C:\GEMSYS\GEMDESK\shutdown.prg
konnte ich jetzt auch beheben, indem ich das shutdown.prg durch die version aus den aktuellen Snapshots von https://tho-otto.de/snapshots/magicmac/ ersetzt habe.
« Letzte Änderung: Sa 24.01.2026, 18:55:27 von don_apple »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 130
Re: AtariX => MagicOnLinux
« Antwort #343 am: Gestern um 16:41:52 »
Die Meldungen sind irrelevant. Ich habe sie nur deshalb als ERR oder WRN statt INF definiert, damit sie überhaupt angezeigt werden.

Ich habe übrigens Cursconf() reparieren können, im Kernel. Es sollte jetzt ohne NVDI keinen Cursor-Salat mehr geben. Leider hat das nichts an den Fehlern mit NVDI geändert. Startet man z.B. MCMD unter NVDI in 16M Farben, kriegt man einen grünen Cursor in doppelter Breite.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.497
Re: AtariX => MagicOnLinux
« Antwort #344 am: Gestern um 17:25:39 »
Hätte mich auch gewundert wenn das nicht der Fall wäre ;) Die Routinen in NVDI sind ja praktisch die gleichen. Vermutlich passiert das auch auf echter Hardware, mit Treibern für Grafikkarten.

Offline Lukas Frank

  • Benutzer
  • Beiträge: 14.422
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: AtariX => MagicOnLinux
« Antwort #345 am: Gestern um 17:37:02 »
Bei meinem Atari TT mit Matrix TC1208E und NVDI 5.03TC als Treiber ist die 16,7M Farben Darstellung einwandfrei ...

Edit: Nova Treiber mit MACH64 ist bei 16,7M Farben auch in Ordnung auf einem 030 Mega ST
« Letzte Änderung: Gestern um 18:14:44 von Lukas Frank »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 130
Re: AtariX => MagicOnLinux
« Antwort #346 am: Gestern um 19:05:12 »
Danke für die Vergleichstests! Kam mir auch in den Sinn, leider habe ich keine Hardware mehr.

Ich widme mich erstmal dem grünen Cursor in 16M Farben. Dazu kann ich die Byte-Zugriffe aufs VRAM rückverfolgen (Zugriffe sollten hier fürs Blinken immer 32-bit sein).
« Letzte Änderung: Gestern um 19:06:57 von AndreasKromke »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 130
Re: AtariX => MagicOnLinux
« Antwort #347 am: Heute um 00:29:44 »
Das NVDI-VT52-Zeugs kann eigentlich nie funktioniert haben. Der Cursor hat zwei (!) Probleme. Einmal blinkt er grün. Wenn man bei Programmadresse 0x45206 den Befehl von 0x548b -> 0x528b ändert, ist das Grün weg. Das ist die Cursor-Routine, die im NVDI.PRG liegt und byteweise schreibt, seltsamerweise horizontal immer mit einem Byte Lücke. Das funktioniert wohl irgendwie bei den alten Grafik-Modi. Diese Cursor-Routine wird bei Cursconf() aufgerufen, das NVDI hängt nämlich auch in Cursconf().

Im NFM16M-Treiber gibt es, genau wie in MFM16M, dann wieder eine richtige Cursor-Routine, die aber bei Cursconf() nicht aufgerufen wird (wenn überhaupt?) - gleicher Fehler wie im Kernel.

Das zweite Problem ist der Cursor, der Spuren hinterläßt, vorher grün und mit meinem Hack schwarz.

Eigentlich könnte man gleich 0x44EB4 auf 0x4e73 (rte) patchen und damit die Behandlung von Cursconf() im NVDI ganz rauswerfen. Das allein bringt aber nix, wäre nur eine Zusatzmaßnahme.

Bleibt als nächstes die Frage, warum nicht die Cursor-Routine vom Treiber ausgeführt wird.

Wie kann das je funktioniert haben?

Das NVDI-"Disassembly" hat übrigens rund 117k Zeilen ...

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.497
Re: AtariX => MagicOnLinux
« Antwort #348 am: Heute um 12:21:30 »
Das NVDI-"Disassembly" hat übrigens rund 117k Zeilen ...

Von 5.03? Ja, meins auch. Allerdings sind grosse Teile davon (das ganze Vektor-Font-Gedöns, diverse Hilfs-Funktionen) wohl ursprünglich mit Pure-C geschrieben. Bei 4.12 sind es übrigens "nur" rund 55k Zeilen.