Grafikkarte fr uralt-PC

Am Thu, 12 Dec 2013 13:17:43 +0000 schrieb Torsten Schneider:

Hallo,

anscheinend hatte ich mich nicht klar ausgedrückt und bin falsch verstanden worden, daher noch mal eine Zusammenfassung:

Der besagte Rechner hat zur Zeit zwei Grafikkarten, eine VGA-Karte am PCI- Bus, auf der das Betruebssystem (Windows98) sein Unwesen treibt, und eine Hercules-Monochrom-Karte im ISA-Slot, mittels derer die Maschinensteuerung über den darauf befindlichen Parallelport und die Ausgabe der Maschinensoftware über den Monochromen Monitor erfolgt.

Bisher reichte das, doch nun ist (ohne vorher zu überlegen) ein Flachbildschirm angeschafft worden, der mit der vorhandenen PCI-Karte entweder ein unscharfes Bild mit ordentlichen Farben oder ein scharfes Bild in der richtigen Auflösung, jedoch mit verringerter Farbtiefe bringt.

Meine Versuche haben ergeben, daß das Benutzen einer AGP-Grafikkarte dazu führt, daß anscheinend die Monochromkarte nicht mehr initialisiert wird, was am fehlenden Cursor zu erkennen ist.

Wenn dies, wie ich vermute, am Bios des Mainboards liegt, sollte es ausreichen, die fehlende Initialisierung der Herculeskarte nach dem Rechnerstart nachzuholen, und alles ist gut. Die Frage ist nur, woher bekomme ich die Initialisierungssequenz der Hercules-Monochrom-Karte?

p.s.: Ich weiß, daß Windows98 die Hölle ist, aber der Benutzer der Kiste war schon froh, daß er nicht mehr unter DOS arbeiten mußte. Nicht mal mit dem Norton-Commander und den Menütasten ging das. Außerdem kann nun der Rechner mit dem Server verbunden sein, was die Datensicherung erleichtert. Ich habe zwar auch schon Netzerke mit DOS-Rechnern eingerichtet, aber das ist wohl alles nichts für gelernte Mausschubser ;-)

--
mfG Andreas
Reply to
Andreas Graebe
Loading thread data ...

Bessere Flachbildschirme kann man so konfigurieren, daß sie das Bild nicht skalieren, sondern nur die "mittleren" Pixel verwenden, mit schwarzem Trauerrand. Damit hättest du ein scharfes Bild mit der richtigen Farbtiefe (wenn du auch den Flachbildschirm vielleicht nicht voll ausnutzt), wenn du auf den "alten" Auflösungsmodus zurückschaltest.

/ralph

Reply to
Ralph Aichinger

Andreas Graebe schrieb:

Das bezweifele ich. Dazu müßte nämlich das BIOS zumindest die Resourcen der Karte korrekt in den Adressbereich einblenden, d.h. deren BIOS müßte lesbar sein und deren RAM les- und schreibbar.

Beides kann man leicht überprüfen. Ist das nicht der Fall (wie zu erwarten ist), kannst du unmittelbar aufgeben.

Außerdem müßten auch die IO-Register der Karte eingeblendet werden. Das ist allerdings nicht so einfach zu überprüfen, denn wenn ich mich richtig erinnere, benutzt Hercules durchgängig WO-Register.

Das wäre kein Problem, wenn die Kartenresourcen korrekt eingeblendet wurden. Denn dann kannst du die Initialisierungssequenz nämlich direkt von der Quelle lesen, die am allerbesten darüber Bescheid weiß: Vom BIOS der Karte.

Dann mußt du nur noch wissen, wie BIOS-Erweiterungen initialisiert wurden, um den Einsprungpunkt für die Init-Routine zu finden. Wie das geht, weiß ich nicht mehr aus dem Kopf (zu lange her), aber das war auf jeden Fall nicht so furchtbar kompliziert. In der RBIL (Ralph Brown's interrupt list) findest du ganz sicher alle nötigen Information dazu. Übrigens auch alles Wissenswerte über Speicherbereiche und IO-Register von Hercules-Grafik.

...

Ich würde übrigens einen völlig anderen Ansatz verfolgen. Statt mich mit den Tücken geriatrischer Hardware und OS' herumzuschlagen, würde ich einfach einen Treiber für ein halbwegs aktuelles Windows schreiben, der einer "DOS-Box" (siehe

formatting link
den Zugriff auf die eigentliche Hardware der Maschinensteuerung erlaubt. Falls diese Hardware keine Interrupts benutzt, ist das sehr leicht, für Win32 braucht man dann nichtmal wirklich einen eigenen Treiber zu schreiben, sondern kann einen existierenden benutzen (giveio.sys o.ä.).

Alles andere, was unter DOS so üblich war (insbesondere einschließlich Hercules-Grafik) kann die DOS-Box schon von Hause aus hervorragend emulieren. Die Oberfläche der Maschinensteuerung erscheint dann also als Fenster auf einem normalen neuzeitlichen Desktop.

Und das Beste an der Sache: Der Ansatz würde unter Linux ganz genauso funktionieren, denn die DOSBox gibt es auch dafür. Und auch unter Linux gibt es bereits fertige universelle Mechanismen, um den Zugriff auf bestimmte Speicher- und IO-Bereiche für den Userspace freizuschalten. Auch da wird also Treiber-Schreiben nur dann erforderlich, wenn die Maschinensteuerung Interrupts benutzt.

Reply to
Heiko Nocon

Jau, deshalb meinte ich ja, daß die 'Hercules Monochrome' einen eigenen Modus voraussetzt. Wenn es nicht im PC-Bios ist, läßt es sich IMHO nur noch über DOS-Gerätetreiber starten (emuliert). Was unser OP mit teilweisen Erfolg auch hingebracht hat, sofern ich alles richtig verstanden habe...

CGA und EGA kenn ich noch ein wenig. Hercules SW hatte ich in der Berufsschule, in Buchhaltung (Buchhaltung) und Werbetechnik (grafische Bilder- bzw. Reklame- und Angebot, Preisschilder...) Privat kannte/kenne ich den Hercules Mode, hatte aber nie die Hardware dazu.... bin bei VGA/SVGA beim PC eingestiegen.

Zu Zeiten des Hercules-Mode habe ich den AMIGA benutzt, mit 32 Farben aus 4096. Später (AGA, double-A) 256 Farben aus 262144.

Oder HAM 6 (ältere AMIGAs) 4096 (12bit) Farben voll (eher für Standbild.... aber es gab auch ein paar Spiele mit 4096 Farben bzw. HAM6), oder HAM 8 262144 (18bit) Farben voll (CD32 z.B. A4000 u. A1200, AGA Chipset).

--
Daniel Mandic
Reply to
Daniel Mandic

Die sollte IMHO vom PC-BIOS aus erfolgen.

Ich würd eure Software eher auf die benötigte Hardware stricken, statt daß modernere Hardware unbedingt auf eurer Software laufen muß......

Ein Wunder, daß ihr Windows 98 dazu bewegt habt. So schlecht bzw. inkompatibel scheint eure DOS Applikation nicht zu sein!!!?

Und war für ein PAR-port bzw. PAR Adresse an der Hercules Karte??? Die hat ja nur einen Monitor-Ausgang...

--
Daniel Mandic
Reply to
Daniel Mandic

Eine Hercules-Karte ist die verbesserte (==Grapik-faehige) Version der 'Monocrome'-Karte. Selbige wurde vom Standard (Mainboard) Bios her ini- tialisiert und hatte kein eigenes (BIOS_) EPROM. Die Graphik-Initiali- sierung der Hercules-Karte musste jedes Anwender-Programm selbst erledi- gen. Und deshalb hat eine Hercules-Karte genausowenig win "BIOS"-(Ep)ROM. Beide Karten haben sehr wohl ein EPROM fuer den 'Zeichensatz'.

Mit eine DOS-Diskette booten und per DEBUG die entsprechenden Bereiche ueberpruefen.

Eine Hercules-Karte hat kein (eigenes) BIOS...

Gruss, Holger

Reply to
Holger Petersen

Nö, ich meine, ich hätte auch mal so ein Dingen gehabt. 9-polig Sub-D für den TTL-Monitor und dazu ein Druckerport auf dem üblichen 25er Sub-D.

Viele Grüße, Torsten

Reply to
Torsten Schneider

Am Thu, 12 Dec 2013 19:17:47 +0000 meinte Daniel Mandic:

Tut es aber nur, wenn keine AGP-Karte drin ist.

Die Software ist nicht von mir, es existieren (bei mir) keine Quellen. Ein Autor ist nicht ersichtlich.

Anscheinend kennst Du keine Hercules-Karten:

formatting link

--
mfG Andreas
Reply to
Andreas Graebe

Andreas Graebe schrieb:

Wirf mal die passenden Begriffe in die Lieblingssuchmaschine.

Fundstellen sollten DOSen-Programme sein, die im Quelltext vorliegen. Da fehlen mir aber Namen.

Leicht zu finden dürften ältere Linux- oder *BSD-Treiberquellen sein sowie ggf. auch XFree86 in einer passend alten Version mit Unterstützung für Hercules. Die haben doch alle die Quellen in Versionverwaltung online.

Wenn man in den Release-Notes "dropped hercules mono support" o.ä. finden kann, läßt sich mit diff sogar leicht die Codesequenz extrahieren. ;)

Viel Spaß, Marc

Reply to
Marc Santhoff

Am Thu, 12 Dec 2013 19:18:50 +0000 meinte Holger Petersen:

Da wird einzig und alleine ein 64KB-Großer Ram der Hercules-Karte eingeblendet.

Und genau das ist das Problem. Am Ende muß ich wohl das Bios des Mainboards dissassemblen, und die Initialisierung suchen. Wenn ich mal eine Woche Langeweile habe.... Vielleicht nach Weihnachten, wenn die liebe Verwandtschaft (endlich) weg ist.

--
mfG Andreas
Reply to
Andreas Graebe

Aha, ok. (da bin ich noch ein wenig zu jung dafür)

--
Daniel Mandic
Reply to
Daniel Mandic

Doch doch. Doch das was du damit machen willst, stößt an die Grenzen. Ich kann mir nämlich nicht vorstellen, das Hercules SW unter Win98 funkt.

--
Daniel Mandic
Reply to
Daniel Mandic

Am Thu, 12 Dec 2013 21:07:42 +0000 schrieb Daniel Mandic:

Tut es, allerdings nicht als primärer Monitor. Auf irgend einer alten Shareware-CD gab es mal einen Treiber, um den Inhalt der Windows- Zwischenablage, sofern es Text war, auf dem Monochrommonitor anzuzeigen, mit Scrollbalken. War niedlich.

Auf dem originalen IBM-Monochrommonitor mußte man nach dem Scrollen immer warten, bis man das sauber lesen konnte, weil der so eine extreme Nachleuchtdauer hatte.

Im vorliegenden Fall geht es um ein DOS-Programm, welches unter dem DOS- basierten Windows98-Oberbau läuft. Das ist anscheinend lange vor Win98 entstanden.

--
mfG Andreas
Reply to
Andreas Graebe

Am Thu, 12 Dec 2013 21:52:04 +0100 schrieb Marc Santhoff:

Ich befürchte, das nutzt mir nichts, denn im vorliegenden Fall wird der Textmodus der Karte benutzt. Der war ja schon per BIOS aktiv, da hätte man nichts programmieren müssen. Einfach direkt in die ersten 4 Kilobyte des internen Speichers der Herculeskarte schreiben, und das wars. BIOS- oder gar DOS-Interrupts waren viel langsamer, damals als dieses Programm entstand, waren wohl 25MHz auf einem 386er das Maß aller Dinge.

--
mfG Andreas
Reply to
Andreas Graebe

Falls das Programm zur Maschinensteuerung einfach ohne Test, ob Karte vorhanden in den mutmasslichen Speicherbereich der Hercules-Karte schreibt, könnte man u.U. einen anderen Ansatz verfolgen. Ein TSR, das sich in den Timerinterrupt hängt, kopiert den RAM-Bereich der Hercules in das VGA RAM. Die Herculeskarte könnte dann entfernt werden; den Druckerport auf der Karte müsste dann eine Einsteckkarte übernehmen.

--
Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de 
HTML mails will be forwarded to /dev/null.
Reply to
Peter Heitzer

Wenn wirklich nur der Textmodus verwendet wird, sollte es nicht so schwierig sein, die entsprechenden Anweisungen im Programm zu finden und die Adresse anzupassen. Vermutlich stellt das Programm das Datensegment für den Hercules Videospeicher ein und adressiert dann bzgl. dieses Segmentes. Wenn dann anstelle des Segmentwerts der Wert für den VGA-Textmode (AFAIR 0xb800) eingestellt ist, schreibt das Programm in den Textspeicher der VGA.

--
Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de 
HTML mails will be forwarded to /dev/null.
Reply to
Peter Heitzer

snipped-for-privacy@web.de (Hartmut Kraus) am 04.11.13:

Wenn da eine Hercules Monochrome weiterhin funktionieren soll, dann wird dort ein TTL-Bildschirm angeschlossen sein. Könnte schwierig werden, DVI auf TTL umzusetzen.

Rainer

--
Daß wir wieder werden wie die Kinder ist eine unerfüllbare Forderung. 
Aber wir können zu verhüten suchen, daß die Kinder werden wie wir. 
 Click to see the full signature
Reply to
Rainer Knaepper

Andreas Graebe schrieb:

Dann wohl eher im Bereich von Selbstbaurechnern aus der Zeit. Die einschlägigen Magazine könnten da hilfreich sein. MC gab es mal, c't immer noch, und bestimmt einige andere Zeitschriften, in deren Archiv man was finden könnte.

Munter bleiben, Marc

Reply to
Marc Santhoff

Am Fri, 13 Dec 2013 08:26:58 +0000 schrieb Peter Heitzer:

Das Problem ist aber gerade, daß der in der Maschine vorhandene Monitor (einfarbig, TTL-Eingang) für die Bedienung der Maschine nötig ist, der andere Monitor ist von dort nur schwer zu sehen.

Wie gesagt, es existiert eine Hercules-Monochrom-Karte, und die wird wohl auch noch in 15 Jahren funktionieren. Da täte es sogar eine Original-IBM- Monochromkarte ohne Grafikmodus, außer daß sie für den Platz im Rechner zu lang sein könnte. Wenn ich mich richtig erinnere, waren das IC-Gräber.

--
mfG Andreas
Reply to
Andreas Graebe

"Andreas Graebe" schrieb am 12 Dec 2013 15:35:12 GMT in de.sci.electronics:

Hallo Andreas,

ich habe den ganzen Thread jetzt mehr überflogen als gelesen, daher bitte nicht gleich steinigen, wenn mein Tip irgendwann doch schon kam und aus irgendeinem Grunde verworfen wurde. Hier ist nämlich zeitlich gesehen mal wieder "Land unter".

Es liegt nicht (direkt) am BIOS des Mainboards, sondern am BIOS der AGP-Karte; die schnappt sich nämlich auch die Adressen $B000-B7FF, damit ist dann die alte Hercules tot (bzw. konkurriert mit der priorisierten AGP-Karte, was aber auf das gleiche herausläuft).

Simpelste Lösung: eine PCI-Karte in der Bucht schießen, die über mehr Video-RAM verfügt. Die alten Teile hatten wohl 2MB, damit ist keine hohe Auflösung bei gößerer Farbtiefe drin. 4MB oder 8MB sollten es dann bringen.

Sowas sollte sich für so ca. 1 EUR + Versand locker ergattern lassen.

Schöne Grüße

Robert.

Reply to
Robert Pecks

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.