Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » U880 / Z80 Bankswitching » Themenansicht

Autor Thread - Seiten: -1-
000
22.10.2006, 18:36 Uhr
HONI



Hi mal wieder, ne hoffentlich kurze Frage, wie macht der Z80 oder in unserem Fall der Ux880 eigentlich das Bankswitching? Allein von den Adresseletungen kann er ja nur 64 kb RAM adressieren, schafft aber maximal 4 MB . Wird da über die Adressleitungen noch irgendwo ein Selektierungssignal abgesetzt bevor der eigentlich Speicherzugriff stattfindet? Wie weiss der Prozessor in welcher Bank er was abgespeichert hat oder löst das die Software?

Nu warens doch mehr als eine Frage


MfG HONI!!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
22.10.2006, 18:42 Uhr
Z1013



Nein, der U880 / Z80 hat vom Bankswitching keine "Ahnung", das muß mit zuätzlicher Hardware und Software gelöst werden. z.B. über ein I/O Port , der die RAM Steine über deren /CS Signal umschaltet und in ein Speicherfenster des 64k Hauptspeichers einblendend, Die Ansteuerung / Umschaltung muß dann per Software gelöst werden. Der Refresh der dRams muß dann auch noch sichergestellt sein, es sei denn man verwendet sRAM
--
Viele Grüße
Holger

Dieser Beitrag wurde am 22.10.2006 um 18:45 Uhr von Z1013 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
22.10.2006, 18:57 Uhr
Enrico
Default Group and Edit


Also bezogen auf den KC kann man die max 4MB so nicht stehen lassen. Allein die Software unter CPM kann nicht mehr verwalten. Könntest das maximum an Bustreibern dazwischen stellen, Basisadressen 10 bis E0, wären je Schacht ein 1MB drin. Also maximal 240 MB. Allein wegen der mechanischen Stabilität und weils elektrisch nicht geht, geht das nicht. Und Sinn macht das auch nicht.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
22.10.2006, 21:26 Uhr
HONI



Im KC übernimmt dann also CAOS oder CP/M die Bankauswahl?

MfG HONI!!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
22.10.2006, 22:37 Uhr
Enrico
Default Group and Edit


Das CPM ja, das CAOS ist nicht. Das muss man schon selber in seinem Programm machen. Z.B. das UNIPIC, das verwaltet max. 99 Bilder sind ca.
3 MB.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
24.10.2006, 22:27 Uhr
HONI



Hmm, aber irgendwas muß das CAOS doch verwalten können, wie funktionieren sonst die normalen RAM-Module wenn die 64K Grenze erreicht ist? Beim 85/4 ist die ja schon intern erreicht, bei den diversen 256K oder sogar 2MB intern Umbauten sogar überschritten. Dann müssten sich ja alle "CAOS"-Programmierer an die selben Regeln bezüglich des Speichers halten.

MfG HONI!!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
24.10.2006, 23:39 Uhr
Enrico
Default Group and Edit


Genau so ist es. Ausserdm läuft ja immer nur ein Programm. Multitasking gibt es ja nicht. Der ganze 64 k Adressbereich ist in 4 Blöcke zu 16k unterteilt. Die kannst Du an und ausschalten. Im Systemhandbuch steht dazu einiges.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
25.10.2006, 09:19 Uhr
HONI



Aja, und wie wirds z.B. beim 1Mb Modul gelöst? Sind das 64 16k Blöcke hintereinander? Wär wohl etwas viel Aufwand oder? Ganz zu schweigen bei deinem 4Mb Modul. Wie wird denn im KC die entsprechende selektion des Speicherbereichs vorgenommen? Diese Speicherselektierung ist dann sicherlich nicht auf andere U880/Z80 Rechner übertragbar oder?

MfG HONI!!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
25.10.2006, 17:38 Uhr
edbru



doch, in Prinzip ist das immer so. Da der U880 nun mal nur 64K direkt adressieren kann, muß man ihm die größere Speicherwelt nun mal stückchenweise zeigen.
Das ist, mal sehr oktoberfestmässig ausgedrückt so wie mit dem Magen, dem Maß und dem Fass. Der Magen ist der direkte Speicherraum (64KB), daß Faß die ersehnte Gesamtspeichergröße (4MB) und daß Maß ein Segment (16KB). Nun kann man aus dem Gesamtspeicher ein Maß abfüllen und dem Hauptspeicher zuführen. Ist das verarbeitet, do kommt das Nächste ran usw - bis man genug hat.
So wird das im Prinzip mit allen Dingen gemacht. Die Grösse kann varieren.
Manchmal sind die Segmentblöcke auch nur 256Byte groß. zB bei vielen Floppyformaten. Bei Festplatten sind es wohl max. 64KB pro Block, das sind viele Blöcke auf einer 500GB-HD.

Eddi
--
ich brauch es nicht, so sprach der Rabe.
Es ist nur schön wenn ich es habe.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
25.10.2006, 18:09 Uhr
Deff




Zitat:
edbru schrieb:
Das ist, mal sehr oktoberfestmässig ausgedrückt so wie mit dem Magen, dem Maß und dem Fass. Der Magen ist der direkte Speicherraum (64KB), daß Faß die ersehnte Gesamtspeichergröße (4MB) und daß Maß ein Segment (16KB). Nun kann man aus dem Gesamtspeicher ein Maß abfüllen und dem Hauptspeicher zuführen. Ist das verarbeitet, do kommt das Nächste ran usw - bis man genug hat.

Selten so einen Brüller losgelassen, wie gerade eben, wo ich diesen Vergleich las. Daraufhin mußte ich mir erstmal eine Flasche köpfen... und natürlich die Augenwinkel trocknen!
--
Die Politik ist ein Versuch der Politiker, zusammen mit dem Volk mit den Problemen fertig zu werden, die das Volk ohne die Politiker niemals gehabt hätte. (Dieter Hildebrandt)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
25.10.2006, 18:20 Uhr
Z1013



*Feix* Dann hat ja mein 1013 demzufolge 4 Maß Hauptspeicher
--
Viele Grüße
Holger

Dieser Beitrag wurde am 25.10.2006 um 18:20 Uhr von Z1013 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
25.10.2006, 23:36 Uhr
Enrico
Default Group and Edit



Zitat:
edbru schrieb
...
Das ist, mal sehr oktoberfestmässig ausgedrückt so wie mit dem Magen, dem Maß und dem Fass. Der Magen ist der direkte Speicherraum (64KB), daß Faß die ersehnte Gesamtspeichergröße (4MB) und daß Maß ein Segment (16KB). Nun kann man aus dem Gesamtspeicher ein Maß abfüllen und dem Hauptspeicher zuführen. Ist das verarbeitet, do kommt das Nächste ran usw - bis man genug hat.
...

Eddi

Also das habe ich eigentlich anders in Erinnerung. Die Mass ist ruckzuck verdunstet, mein Magen ist eher das Fass, und die 16kB würden meinem Restgeld entsprechen.
--
MFG
Enrico

Dieser Beitrag wurde am 25.10.2006 um 23:47 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
25.10.2006, 23:45 Uhr
Enrico
Default Group and Edit



Zitat:
HONI schrieb
Aja, und wie wirds z.B. beim 1Mb Modul gelöst? Sind das 64 16k Blöcke hintereinander? Wär wohl etwas viel Aufwand oder? Ganz zu schweigen bei deinem 4Mb Modul. Wie wird denn im KC die entsprechende selektion des Speicherbereichs vorgenommen? Diese Speicherselektierung ist dann sicherlich nicht auf andere U880/Z80 Rechner übertragbar oder?

MfG HONI!!

Der Aufwand ist da relativ gering, und in fast jedem Modul drin. Das ist nur etwas Dekodierlogik und ein max. 8Bit Latch. Das wird über eine bestimmte 16Bit I/O-Adresse beschrieben. Der untere Adressteil ist fest auf 80H, der obere entspricht dem Modulschacht. Durch Lesezugriff bekommt man ein Struckturbyte geliefert. Man muss ja wissen, um welches Modul es sich handelt. Die Daten werden entspr. im Latch gespeichert. Wo da was reinkommt ist auch definiert. Bit 0 ist Modul an/aus, Bit 1 Schreibschutzbit
(für RAM-Module), der Rest die entspr. RAM-Blöcke, oder was auch immer.

Das 4MB-RAM-Modul passt da auch prima rein. Es ist ja gar kein 4 MB-RAM Modul, sondern 4 Stück M035 1MB-RAM in einem Modul.

Im HB vom User-Modul steht dazu alles drin.

Das Prinzip kann man selbstverständlich auf jedes CPU-System übertragen.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
27.10.2006, 00:49 Uhr
HONI



Hat jemand mal ein Manual und Schaltpläne für die RAM-Module grösser 64k ? M011 und M022 hab ich im Netz gefunden.

MfG HONI!!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
27.10.2006, 12:15 Uhr
Z1013



Honi,
guck mal bei Ulrich Zander zum 128k Modul
http://www.sax.de/~zander/index2h.html
--
Viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
01.11.2006, 11:36 Uhr
HONI



@Z1013

Vielen Dank für den Tip.

Wenn ich das richtig erkenne wird mit den Adressen A11 und A12 und einem Binär zu Dezimal-Decoder der entsprechende RAM-Schaltkreis angewählt (/CS /OE). Die Software muß das also managen, der RAM wäre ab Adresse 1000H im System eingeblendet. Hab ich mich verrechnet oder ist das SRAM-Modul ein 64kb-Modul? ((2^11) x4 = 64kb)

Ist natürlich ne Pfiffige Lösung mit mehr RAM-Schaltkreisen zu arbeiten. Was aber wenn ich z.B. einen 128kb oder 512kb SRAM-Schaltkreis benutzen möchte, da hab ich nur ein CS-Signal, das für den ganzen Schaltkreis zuständig ist. Wenn man damit 32 St. 16k Blöcke realisieren möchte die hintereinander liegen müßte man noch eine Dekodierlogik für die Adressen A14 bis A18 zusammenstricken. Alternativ würden bestimmt auch 8St. 64k Blöcke gehen, das dürfte aber wohl ziemlich inkompatibel zu vorhandener Software werden.

Wie wurde das eigentlich genau beim M011 gelöst? Die 64k liegen ja als 16k Blöcke über den gesamten Adressraum. Das M022 liegt nur ab Adresse 4000H bis 8000H. Werden die übrigen Blöcke des M011 hintereinander in diesen Adressbereich gemapt? Blockieren die sonst nicht den anderen Adressbereich (ROM, internes RAM, IRM)?

MfG HONI!!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
01.11.2006, 15:01 Uhr
Enrico
Default Group and Edit



Zitat:
HONI schrieb
Wie wurde das eigentlich genau beim M011 gelöst? Die 64k liegen ja als 16k Blöcke über den gesamten Adressraum.

Das ist richtig. Du hast dabei aber nicht bedacht, dass Speicher in einem Schacht mit niedriger Nummer, bzw. im Grundgerät, eine höhere Priorität als dieses Modul hat, und dann auf den Speicher des Grundgeräts bzw. des Moduls mit höherer Prirität zugegriffen wird. Das muss dann natürlich auch angeschaltet sein. Das wird durch die MEI-MEO-Kette realisiert. Ausserdem können die Blöcke des 64KB Moduls im Adressbereich rotiert werden.



Zitat:
HONI schrieb
Das M022 liegt nur ab Adresse 4000H bis 8000H. Werden die übrigen Blöcke des M011 hintereinander in diesen Adressbereich gemapt? Blockieren die sonst nicht den anderen Adressbereich (ROM, internes RAM

Der Adressbereich auf welchem Du es ansprichst hängt bei diesen Modulen vom Schaltzustand ab. Die sind nicht zwangsläufig auf diese Adressen festgelegt.
Beim 1 MB bzw. 4 MB bist Du auf den Adressbereich ab. 8000H, also über dem IRM festgelegt. Beim M022 und M011 ist das nicht so. bei den anderen RAM-Modulen weis ich das auswändig jetzt nicht. Das steht ja auch in den jeweiligen HB drin.
--
MFG
Enrico

Dieser Beitrag wurde am 01.11.2006 um 15:02 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
01.11.2006, 15:29 Uhr
HONI



Aha, dann kann es also passieren, daß bestimmte Software nicht mit einigen RAM-Modulen spielt?

MfG HONI!!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
01.11.2006, 17:54 Uhr
Enrico
Default Group and Edit


So ist es. Es gibt einige ältere Software, die setzt ein bestimmtes Modul auf einem bestimmten Steckplatz vorraus. Z.B. M022 auf Platz 8. Neuere Software, z.B. UNIPIC sucht nach Modulen, egal wo, und kann diese richtig "verwalten". Früher gab es ja auch noch nicht so grosse Auswahl an Modulen, und es macht ja auch richtig Aufwand an SOftware, wenn man es ordentlich programmiert.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
02.11.2006, 13:41 Uhr
HONI



Worauf legt CP/M Wert, bzw. wie sind die CP/M-fähigen RAM-Module spezifiziert? Ist das dann auch auf andere CP/M-fähige Rechner anwendbar (z.B. C128).

MfG HONI!!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
02.11.2006, 18:02 Uhr
Enrico
Default Group and Edit


Beim KC laufen sämtliche RAM-Module bis zum derzeitigen Maximum von 4 MB auch unter CPM. Die werden vom Grundgerät aus durch das DEP unter CPM verwaltet. Wie es beim C128 ist weis ich natürlich nicht. Hatte ich nie.
--
MFG
Enrico

Dieser Beitrag wurde am 02.11.2006 um 18:02 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek