Autor Thema: Ein paar Fragen zum Milan  (Gelesen 12798 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Arthur

  • Benutzer
  • Beiträge: 10.302
  • Mein Atari erinnert mich an die gute alte Zeit..
Re: Ein paar Fragen zum Milan
« Antwort #20 am: Mi 27.06.2018, 22:30:39 »
Nö, der Treiber fragt nicht die Seriennummer ab.

Schön das du das korrigiert hast... ich dachte echt hier im Forum mal etwas über so einen kommerziellen Ati(?)-Treiber (evtl. Heimverlag???) gelesen zu haben, ist aber Jahre her und ich mag mich irren.
Der Treiber ist kommerziell und wurde vom Falke Verlag vertrieben, was aber nicht bedeutet das er die Seriennummer der Karte abfragt. Er wurde schliesslich auch einzel vertrieben.

Siehe ST-Computer 03/2003

Schön und gut @KarlMüller aber das Thema ist ja für mich durch.. bitte keinen Link mehr denn ich bestreite doch gar nicht was du gesagst hast. ;D
« Letzte Änderung: Mi 27.06.2018, 22:40:55 von Arthur »

Offline Chocco

  • Benutzer
  • Beiträge: 225
  • May the force be with you
Re: Ein paar Fragen zum Milan
« Antwort #21 am: Mi 27.06.2018, 23:54:40 »

Der Treiber ist kommerziell und wurde vom Falke Verlag vertrieben, was aber nicht bedeutet das er die Seriennummer der Karte abfragt. Er wurde schliesslich auch einzel vertrieben.

Siehe ST-Computer 03/2003

Da NVDI ein GDOS implementiert, sollte es auch in der Lage sein einen originären *.SYS Treiber für eine Grafikkarte zu laden.
Das ist  beim Milan nicht so. Für die S3 Karte gibt es auch keine *.SYS Treiber. Ich frage mich auch ob das von der Abarbeitung nicht zu spät ist. Der Bootblock initialisiert die Karte erstmal und der Treiber stellt die Auflösung ein.

Jein, ich habe testweise eine Matrox Millenium anstelle der S3 in den Milan gesteckt und das BIOS hat nach dem Einschalten einen Dauer-Beep-Error veranstaltet. Wenn die Matrox zusätzlich zur S3 verbaut ist, startet der Milan klaglos. Ein an die Matrox angesteckter Monitor bleibt (natürlich) schwarz, weil kein VDI-Treiber für die Matrox existiert. Trotzdem kann man am Milan weiterhin problemlos mit der S3 arbeiten.

Als alter PC-User hatte ich erwartet, dass der Milan nach dem Boot nur mit der Matrox, diese zumindest als Standard Console Device im Textmodus oder sogar als VESA-Karte akzeptiert. Mein Milan zeigt sich hier jedoch sehr unwillig, was vielleicht am recht alten Bootblock liegen könnte - die Version habe ich gerade nicht in Erinnerung.

Ein "ordendliches" GDOS im ROM könnte nach Initialisierung der primären Grafik durch den Bootblock (Workstation ID 0) über die assign.sys auf HD durchaus einen weiteren Bildschirmtreiber angeboten bekommen und diesen auch verwenden. Ein v_opnwk() mit der in der assign.sys angelegten ID (>0 bis 9), initialisiert dann die weitere Grafikkarte. In meiner Erinnerung konnte man PC-GEM beim Start anweisen, welcher der vorhandenen Grafiktreiber verwendet werden soll.

Mein TT030 startet z.B. zunächst mit der internen Grafik, die durch das ROM initialisiert wird und im anschließenden Boot-Prozess von HD wird dann erst der ET4000-Treiber für die Crazy Dots nachgeladen. Dank fehlendem GDOS im TT-ROM ist auch diese Variante nur ein Hack, bei dem nachträglich der VDI-Bildschirmtreiber "verbogen" wird. Zur Ehrenrettung der Crazy Dots muss aber gesagt werden, dass sich die Karte auch regulär über ein GDOS nachträglich sauber initialisieren lässt. 
Atari TT030 mit CrazyDots
Milan 060 (ATI Rage Pro)
Apple MBP

Offline Ektus

  • Moderator
  • *****
  • Beiträge: 909
Re: Ein paar Fragen zum Milan
« Antwort #22 am: Do 28.06.2018, 18:02:22 »
Die Grafikkarten im Milan (oder auch alle PCI Grafikkarten) müssen vor der Benutzung erst initialisiert werden. Für die ursprünglich verbauten S3 Karten ist der dazu nötige Code im Bootblock enthalten. Die später angebotenen Rage Karten kennt der Code im Bootblock aber nicht, daher der Fehler. Das Programm zur Initialisierung der Grafikkarte steckt als X86 Code im ROM der Grafikkarte, der von einem in neueren Bootblöcken enthaltenen rudimentären X86 Emulator ausgeführt wird. Deswegen dauert es mit der Rage auch ziemlich lange, bis nach dem Einschalten oder Kaltstart ein Bild kommt. Wenn der Initialisierungscode aus dem Karten-ROM abgearbeitet werden kann, sollte eine Textdarstellung möglich sein. Für Alles Andere braucht es aber angepaßte Treiber.

Die seinerzeit vertriebenen Treiber für die Rage waren nicht an die Seriennummer der Grafikkarte gekoppelt, sondern an die Seriennummer des Milan.

Bei Michael Schwingen gibt es einige Dateien zum Milan: https://www.schwingen.org/files/milan/


MfG
Ektus.
« Letzte Änderung: Do 28.06.2018, 18:07:22 von Ektus »

Offline Arthur

  • Benutzer
  • Beiträge: 10.302
  • Mein Atari erinnert mich an die gute alte Zeit..
Re: Ein paar Fragen zum Milan
« Antwort #23 am: Do 28.06.2018, 18:22:41 »
Toll erklärt @Ektus...die Lösung mir dem X86 Emulator ist eigentlich eine gute Idee...da es aber nicht universell mit allen PC-Karten funktioniert frage ich mich ob das die beste Möglichkeit ist... kann man sagen welche Karten damit erkannt werden?

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.012
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: Ein paar Fragen zum Milan
« Antwort #24 am: Do 28.06.2018, 18:46:58 »
Kann es etwas schlechteres geben als wenn ein 68k einen X86 emuliert ...

Warum programmiert man die Grafikkarte nicht direkt ?

Offline Arthur

  • Benutzer
  • Beiträge: 10.302
  • Mein Atari erinnert mich an die gute alte Zeit..
Re: Ein paar Fragen zum Milan
« Antwort #25 am: Do 28.06.2018, 18:51:50 »
Ich denke wenn der X86 Emulator auch nur mit jeder 3-4 Karte zurecht kommt dann hat sich der Aufwand schon gelohnt... und spart platz im EEProm oder Flash... des Milan.

Offline mfro

  • Benutzer
  • Beiträge: 1.637
Re: Ein paar Fragen zum Milan
« Antwort #26 am: Do 28.06.2018, 18:52:17 »
Toll erklärt @Ektus...die Lösung mir dem X86 Emulator ist eigentlich eine gute Idee...da es aber nicht universell mit allen PC-Karten funktioniert frage ich mich ob das die beste Möglichkeit ist... kann man sagen welche Karten damit erkannt werden?

Das funktioniert mit jeder PC-Karte (ISA und PCI). Damit der PC beim Booten etwas auf dem Bildschirm anzeigen kann, muss das ROM-BIOS der Karte einmal gestartet worden sein. Danach funktioniert die (Text-) Ausgabe über den (PC BIOS-) INT10H.

Dummerweise ist das ROM-BIOS (natürlich) x86-Code. Also muss auf einer m68k-Maschine erst der Emulator geladen und die BIOS-Initialisierung ausgeführt werden (dauert auf einer 200 MHz ColdFire-Maschine und einer ATI 9500 z.B. etwa 20 Sekunden, auf langsameren Maschinen entsprechend länger).

Weil die Karten und Chipsätze von PC-Grafikkarten immer ein streng gehütetes Geheimnis waren und es für die meisten ohne NDA keine Entwicklerdokumentation gab, ist das meist die einzige Möglichkeit, den Dingern Leben einzuhauchen. "Erfunden" wurde die Vorgehensweise von NetBSD für Alpha-Maschinen (die ja dasselbe Problem hatten).
And remember: Beethoven wrote his first symphony in C

Offline Arthur

  • Benutzer
  • Beiträge: 10.302
  • Mein Atari erinnert mich an die gute alte Zeit..
Re: Ein paar Fragen zum Milan
« Antwort #27 am: Do 28.06.2018, 19:20:39 »
Dummerweise ist das ROM-BIOS (natürlich) x86-Code. Also muss auf einer m68k-Maschine erst der Emulator geladen und die BIOS-Initialisierung ausgeführt werden (dauert auf einer 200 MHz ColdFire-Maschine und einer ATI 9500 z.B. etwa 20 Sekunden, auf langsameren Maschinen entsprechend länger).

Sorry das ich hier einhake auch wenn es weniger mit dem Thema zu tun hat. Didier Méquignon hatte ja vor langer Zeit diverse ATI-Karten mit CT60 und mit der Firebee ans Rennen bekommen. Vielleicht weist du ob da noch etwas kommt, man hört da einfach nicht neues zu dem Thema. Was ich sehr schade finde...

Offline mfro

  • Benutzer
  • Beiträge: 1.637
Re: Ein paar Fragen zum Milan
« Antwort #28 am: Do 28.06.2018, 19:32:15 »
...Didier Méquignon hatte ja vor langer Zeit diverse ATI-Karten mit CT60 und mit der Firebee ans Rennen bekommen...

Dass von Didier noch etwas kommt, halte ich für unwahrscheinlich. Er scheint sich komplett aus der Szene zurückgezogen zu haben.

Verloren ist aber nichts. Der Code, den Didier benutzt hat, stammt praktisch 1:1 von PowerPC-Linux.
In BaS_gcc (Firmware für die FireBee und andere ColdFires) ist der x86-Emulator (in meiner Version von NetBSD) drin und läuft. Treiber (unbeschleunigt) für die ATI-Karten findet man in den fVDI-Quellen. Wer will (und kann), kann also einen Treiber basteln.
And remember: Beethoven wrote his first symphony in C

Offline Nervengift

  • Benutzer
  • Beiträge: 1.516
Re: Ein paar Fragen zum Milan
« Antwort #29 am: Do 28.06.2018, 19:55:19 »
Dummerweise ist das ROM-BIOS (natürlich) x86-Code. Also muss auf einer m68k-Maschine erst der Emulator geladen und die BIOS-Initialisierung ausgeführt werden (dauert auf einer 200 MHz ColdFire-Maschine und einer ATI 9500 z.B. etwa 20 Sekunden, auf langsameren Maschinen entsprechend länger).

Sorry das ich hier einhake auch wenn es weniger mit dem Thema zu tun hat. Didier Méquignon hatte ja vor langer Zeit diverse ATI-Karten mit CT60 und mit der Firebee ans Rennen bekommen. Vielleicht weist du ob da noch etwas kommt, man hört da einfach nicht neues zu dem Thema. Was ich sehr schade finde...

In Sachen Firebee ist das insofern echt doof, dass es noch immer keine Backplane gibt, die man mit einer entsprechenden ATI-Karte nutzen könnte. @tuxie wollte da mal was basteln. Keine Ahnung ob das noch aktuell ist.

Meinen Milan nutze ich mit einer ATI Grafikkarte, die ein echt gutes Bild an dem LCD macht, den ich am Milan dran hängen habe und ich habe höhere Farbtiefen zur Verfügung. Die S3 ist aber etwas schneller, was am Treiber liegt. Beim ATI Treiber könnte wohl noch ein wenig optimiert werden, denke ich.

@Choccos Idee mit einem VDI-Treiber bzw. zwei Grafikkarten im Milan und ggf. zwei Monitoren, die hat echt was, finde ich. ;)
520 ST(M) (TOS 1.02), Falcon030 (16 MHz, 16 MB RAM, CF-Karte, MiNT & MyAES), Milan040 (25 MHz, 48 MB RAM, EasyMiNT 1.90), Firebee (2nd Edition), PowerMac G5 Late 2005 (2 x 2,3 GHz, Mac OS 10.5), iMac 4K Late 2015 (intel Core i7 4 x 3,3 GHz, Mac OS 10.11.6), IBM XT SFD (640 KB RAM, DR DOS 6.0), Compaq LTE 5300 (Pentium/133 MHz, DR-DOS 7.03), AT-PC (Cyrix 6x86L/200 MHz, Windows 98 SE/MS-DOS 6.22 & Windows 3.11)

Offline Ektus

  • Moderator
  • *****
  • Beiträge: 909
Re: Ein paar Fragen zum Milan
« Antwort #30 am: So 22.07.2018, 05:53:08 »
Kann es etwas schlechteres geben als wenn ein 68k einen X86 emuliert ...

Warum programmiert man die Grafikkarte nicht direkt ?

Hat man ja gemacht bei der ursprünglichen S3. Der Initialisierungscode ist aber für jede Karte anders und obendrein im ROM der Grafikkarte enthalten, daher ist die Sache mit dem Emulator die universellste Lösung mit dem geringsten Aufwand für die Entwickler. Der Code muß ja nur einmal beim Systemstart ausgeführt werden.


MfG
Ektus.

Offline gh-baden

  • Benutzer
  • Beiträge: 1.967
Re: Ein paar Fragen zum Milan
« Antwort #31 am: So 22.07.2018, 14:12:00 »
Ein "ordendliches" GDOS im ROM könnte nach Initialisierung der primären Grafik durch den Bootblock (Workstation ID 0) über die assign.sys auf HD durchaus einen weiteren Bildschirmtreiber angeboten bekommen und diesen auch verwenden. Ein v_opnwk() mit der in der assign.sys angelegten ID (>0 bis 9), initialisiert dann die weitere Grafikkarte. In meiner Erinnerung konnte man PC-GEM beim Start anweisen, welcher der vorhandenen Grafiktreiber verwendet werden soll.

Das VDI ist derzeit aber nicht für Mehrbildschirmbetrieb ausgelegt. Was du prinzipiell machen kannst, ist einen VDI-Treiber schreiben, der seine Bildschirmfläche auf zwei Grafikkarten verteilt, die dann ein sehr breites aneinandergefügtes Bild ergeben, das für die AES wie „eine“ Fläche aussehen.

Allerdings viel Mühe dafür, dass du dann nur bspw. 2x1280x1024 hast, oder 2x1920x1080. Mit der gleichen Mühe könntest du auch eine modernere Karte reinstecken und 1x 3440x1400 oder 3840x1400 haben, und einen PCI-Slot spart es auch.
Wider dem Signaturspam!

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.012
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: Ein paar Fragen zum Milan
« Antwort #32 am: So 22.07.2018, 15:31:48 »
Wenn er fähig ist einen eigenen Grafikkartentreiber für TOS zu schreiben kommt ja nur einer für die ATI Radeon 7000, 8000, 9000 PCI Bus Serie in Frage, oder?

Und etwas brauchbares für die Allgemeinheit der Milan Besitzer, vielleicht ja auch für Hades und Co nutzbar.

Offline gh-baden

  • Benutzer
  • Beiträge: 1.967
PCI-Grafikkarten (was: Ein paar Fragen zum Milan)
« Antwort #33 am: So 22.07.2018, 17:11:08 »
Wenn er fähig ist einen eigenen Grafikkartentreiber für TOS zu schreiben kommt ja nur einer für die ATI Radeon 7000, 8000, 9000 PCI Bus Serie in Frage, oder?

Und etwas brauchbares für die Allgemeinheit der Milan Besitzer, vielleicht ja auch für Hades und Co nutzbar.

Warum nur Radeon? Wenn man schon einen Treiber portierte, kann man ja schauen, wo es am besten ginge.

  • Die Radeon 9250 PCI kann 2048 × 1536 per DVI
  • Die GeForceFX 5500 PCI kann 2048 × 1536 per DVI. Gibt’s sogar noch neu für etwa 45€.
  • Die Matrox Millennium G550 PCI kann 2× DVI mit je 1280 × 1024, kann die aber in Hardware in einen „gestreckten“ Modus für eine Fläche über zwei Bildschirme hinweg verwalten. Gebraucht unter 25€, neu 100€. Für diese Karte gibt’s auch quelloffene Treiber (Linux, GPL).
  • Die Matrox P690 PCI kann 2 × DVI mit je 1920 × 1200. Ansonsten wie oben, quelloffene Treiber. Neu leider teuer mit 300€, gebraucht aber immer wieder unter 30€. Auf eBay ist eine für 15€ inkl. Versand drin.
Wider dem Signaturspam!

Offline mfro

  • Benutzer
  • Beiträge: 1.637
Re: Ein paar Fragen zum Milan
« Antwort #34 am: So 22.07.2018, 17:20:33 »
Wenn er fähig ist einen eigenen Grafikkartentreiber für TOS zu schreiben kommt ja nur einer für die ATI Radeon 7000, 8000, 9000 PCI Bus Serie in Frage, oder?

Und etwas brauchbares für die Allgemeinheit der Milan Besitzer, vielleicht ja auch für Hades und Co nutzbar.

Einen VDI-Treiber für zu schreiben, ist nicht besonders schwierig, eher eine Fleissaufgabe. Es gibt auch ausreichend viele Beispiele (fVDI), die zeigen, wie das geht.

Bei den Radeon-Karten ist das Problem, daß es von ATI/AMD so gut wie keine Dokumentation gibt (die war ein gut gehütetes Geheimnis und nur mit NDA zu bekommen). Die existierenden Treiber für Linux und die verschiedenen BSD-Varianten benutzen die x86-ROMs für die Initialisierung (womit wir wieder beim x86-Emulator wären) und reverse Engineering für die Grafikroutinen. Das ist eine reichlich fehlerträchtige Geschichte - macht man (ohne Dokumentation) nur ein bißchen was anderes (beispielsweise unterschiedliche Reihenfolge der Registerzuweisungen), gibt's (im besten Fall) nur noch Pixelmüll.

Die (wesentlich simpleren) ET4000-Chips kamen mit kompletter Dokumentation incl. Datenblatt und orientierten sich technisch sowieso an der (ebenso dokumentierten) 8514-Karte von IBM (+ ein bißchen Hercules).  Nachdem die Karten keine echten Beschleuniger hatten, geht's nach der Initialisierung sowieso nur noch darum, Speicherbereiche möglichst flott hin und her zu schieben.
And remember: Beethoven wrote his first symphony in C

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.012
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: Ein paar Fragen zum Milan
« Antwort #35 am: So 22.07.2018, 19:13:40 »
Einen VDI-Treiber für zu schreiben, ist nicht besonders schwierig, eher eine Fleissaufgabe.

Als Programmierer ist das ganze vielleicht einfach aber bei mir als reiner Anwender der sich mit der Grafikkarten Hardware abmüht weil das sonst keiner macht ist das ein Ding der Unmöglichkeit. Schreibt ja auch keiner einen MiNT Treiber für die SMC_TT.