Hardware > Emulatoren

AtariX => MagicOnLinux

<< < (69/77) > >>

AndreasKromke:
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.

AndreasKromke:
(gelöscht)

don_apple:
@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

--- Code: ---(17:55:57) DBG-WRN hostpath2HostFD() : fstatat("GEMSYS/MAGIC/STOP/") -> No such file or directory

--- Ende Code ---
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

--- Code: ---(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

--- Ende Code ---
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.

AndreasKromke:
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.

Thorsten Otto:
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.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln