Jetzt bin ich natürlich neugierig was der Robert da gezaubert hat. 
Hallo Zusammen,
im Prinzip noch nicht so richtig spannende Dinge.
Zunächst stand im Vordergrund, die Schaltung von der Platine her zu analysieren und herauszufinden, wo nun welche Leiterbahnen hin gehen. Deswegen habe ich als aller Erstes alle ICs aus der Martin Wevelsiep'schen Speichererweiterung herausgelötet und gesockelt. Wer nun denkt, dass man die GALs auslesen kann, hat sich verkalkuliert. Die GALs sind lesegeschützt. Also muss man durch Messungen versuchen herauszufinden, welches GAL nun was genau macht.
Parallel entstand ein handschriftlicher Schaltplan. Man bekommt dann schon eine grobe Vermutung, was die Schaltung im Einzelnen durchführt. Der nächste Schritt war dann, das
Heißklebergemetzel auf der Mainboardunterseite mal genauer zu betrachten. Dabei stellten sich dann etliche Wackelkontakte und auch Unterbrechungen heraus. Das habe ich alles wieder in Ordnung gebracht und Voilà der Rechner läuft!
Grobe Beschreibung, was die Schaltung macht mit der klaren Einschränkung, dass dies nur ein Zwischenstand ist:
- Das normale ST-RAM ist ja, bekanntlich, im Bereich von hex000000 bis 3FFFFF etabliert.
- Die Schaltung erweitert das ST-RAM bis 9FFFFF.
- Der Kombichip aus MMU und GLUE wird dabei in die Irre geleitet. Der Kombi-Chip denkt im gesamten neuen ST-RAM-Bereich, dass er sich weiterhin in dem unteren Speichersegment bis 3FFFFF befindet. Ab hexAFFFFF bis zum Schluss FFFFFF wird dem Chip wieder die richtige Adresse des Systems vorgesetzt.
- Erreicht wird das durch die Durchtrennung der oberen Adressleitungen A23 bis A21 (A20 wird zur Dekodierung nicht benötigt). Das restliche System - außer des Kombichips - sieht die richtige Adresslage, nur eben der Kombi-Chip in Teilen der Adresslage (neuer RAM-Bereich) eben nicht.
- Die Signale aus dem Kombi-Chip zur Verwaltung des ST-RAM werden detektiert, ggf. gepuffert und auf den neuen zusätzlichen Speicher ebenso weiter geleitet. Gerade auch für den Refresh-Zyklus des RAMs.
- Auf der Speichererweiterung werden gleichzeitig Register aus der GLUE/MMU mit abgebildet. Also nicht ersetzt, sondern ergänzt. Wie exakt, weiß ich noch nicht, aber die wahrscheinlichen Register kann ich schon jetzt benennen: hexFF8609 bis FF860E (DMA Base/Count) und hexFF8201 bis FF8209 als auch FF820D und FF820E (Video). Messung und Bestätigung, dass es diese Register sind, steht noch aus.
Eine Besonderheit des STE-Mainboards von Frank ist, dass sich
zwei Blitter auf dem Board befinden! Indizien lassen mit sehr großer Wahrscheinlichkeit darauf schließen, dass
- dies Mainboard von Martin Wevelsiep selbst umgebaut worden ist. (Wie es in den Handel gekommen ist, bleibt ein Rätsel.)
- Martin Wevelsiep wahrscheinlich erst während des Umbaus festgestellt hatte, dass der Blitter im Kombi-chip mit integriert ist.
Da nun der eine Blitter im Kombi-Chip mit integriert ist, wird der Blitter mit
in die Irre geleitet bei dem Zugriff auf das RAM. Wenn nun ein Zeichnungsbefehl für den Blitter kommt (bspw. Malen eines Drop-Down-Menus im Desktop), so wird dies gezeichnet. Kommt nun nach Busübergabe der Prozessor (68000er) zwischendurch ins Spiel, wird ggf. das 4 MB Segment verschoben. Danach kommt der Blitter wieder an den Bus und versucht einen Redraw. Leider an der falschen Stelle!
Dies kommt nicht immer vor, aber doch schon recht häufig. Das ist der einzige Manko, den ich bisher an diesem Board feststellen konnte. Das basiert aber auch nur aufgrunddessen, dass es sich um einen Mega-STE mit Kombi-Chip
mit Blitter intern handelt. Wäre kein interner Blitter in dem Kombi-Chip würde alles einwandfrei funktionieren.
Nun kommt der zweite Blitter, der auf dem Mainboard vorhanden ist, ins Spiel. (Oder auch nicht, wie wir gleich noch sehen werden).
Der externe Blitter ist wahrscheinlich gedacht, damit nun wenigstens ein Blitter im System ist, der außerhalb des Kombi-Chips sitzt und den richtigen Adressbereich sieht. Der Blitter ist nämlich grundsätzlich in der Lage den kompletten Adressbereich selbst zu erkennen und zu verwalten. Er hat einen vollständigen Adressbus.
Nun kommt ein blöder Sachverhalt hinzu:
- Die Busübernahme passiert im Atari ja über die beiden Signale /BR und /BGACK, die beide im Daisy-Chain-Verfahren von Chip zu Chip weiter gegeben werden. Es entsteht eine Kette von Bausteinen, die sequentiell dran sind, den Bus bedienen zu dürfen.
- Wird vom Prozessor die Kontrolle des Busses an den Blitter übergeben, dann kommt zunächst der Blitter im Kombi-Chip dran. Da dies fest im Kombi-Chip so verdrahtet ist, bleibt es auch so. Egal ob nun ein externer Blitter vorhanden ist oder nicht.
- Der interne Blitter führt also die Arbeit durch. Zwar, wie oben beschrieben, ggf. falsch, aber er führt seine Arbeit durch.
- Fertig!
Ihr merkt? Der externe - und leider
nachgeschaltete - Blitter kommt nie dran!
Doof gelaufen!
Unabhängig von dem Blitterdebakel in diesem speziellen Board, läuft das Board mittlerweile stabil. Wird mit Blit-Invisble per Programm der Blitter ingnoriert, dann läuft das Board fehlerfrei.
Es gibt ja mehrere Vermutungen, dass die Wevelsiep'sche Erweiterung einen Treiber für das größere ST-RAM benötigt. Dies kann ich dementieren. Es läuft - unter TOS 2.06 und EmuTOS getestet - ohne zusätzliche Treiber!
Das oben erwähnte Blit-Invisble-Programm wird nur für dieses spezielle Board benötigt. Erklärung siehe oben. Wäre das mit dem Kombi-Chip nicht passiert, wäre dies auch nicht notwendig.
Da der DMA-Baustein außerhalb des Kombi-Chips sitzt, kann ich bestätigen, dass der DMA-Zugriff auf das größere ST-RAM einwandfrei funktioniert. Die Register werden durch die Schaltung entsprechend erweitert und funktionieren einwandfrei.
So weit der Stand.
Beste Grüße
Robert