Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » [KC 85/4] RAM4 / RAM8 » Themenansicht

Autor Thread - Seiten: -1-
000
Heute, 09:29 Uhr
Asato

Avatar von Asato

Moin, moin,

stöbere gerade im Systemhandbuch zum KC 85/4 und komme nicht weiter, vielleicht kann mir jemand helfen.

Bei den Angaben zu den Hardwareports (PIO, 84h, 86h) (Seite 66 f.) finde ich Bits für "RAM4" und "RAM8", bei PIO A auch zum RAM0 ... mir erschließen sich die Funktionen nicht, zumal die Ports auch andere Funktionen auslösen, so dass mir nicht klar ist, was bei den RAM Bits (bei RAM8 über PIO B und Port 84h insgesamt 4 Bits zu setzen) gesetzt werden sollte, wenn man sich für andere Funktionen der Ports - z. B. den Grafikspeicher - interessiert.

Grüße
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
Heute, 14:04 Uhr
Bert



Du hast wahrscheinlich schon die genaue Aufschlüsselung der Bits im Handbuch gefunden.
Am Besten legt man sich jetzt noch die Grafik mit der Speicheraufteilung des KC85 daneben:

Dann erkennt man die Priorisierung der Speicherblöcke. Wenn man z.B. auf den Block RAM8.1 zugreifen möchte, müssen die Bits wie folgt stehen:
PIOA.2 --> 0, IRM aus
PIOB.5 --> 1, RAM8 an
PIOB.6 --> 0, RAM8 nur lesen oder 1 RAM8 schreiben+lesen
84h.4..7 --> 0001, RAM8, Ebene 1

Die jeweils restlichen Bits sollte man tunlichst in Ruhe lassen, um das System nicht durcheinander zu bringen. Da die Ports nicht zurückgelesen werden können (fehlende Hardware), werden die Werte zusätzlich in IX+1 und IX+4 zwischengespeichert.

Viel eleganter steuert man die Speicherzugriffe über SWITCH oder UP 26h (MODU).
Für obiges Beispiel:
- einmal IRM ausschalten mit "SWITCH 01 00" und
- dann RAM8.1 zuschalten: "SWITCH 03 07"

Danach kann man zwischen 8000h und 0BFFFh auf den 16 kByte Speicherblock zugreifen.
--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
Heute, 14:18 Uhr
Asato

Avatar von Asato

Hi Bert,

danke für die Info!

Also wenn ich das Schema richtig lese: der Adressbereich geht ja von 0x0000 bis 0xFFFF (64kb), da aber oberhalb von 0xC000 das ROM lungert (16 kB) und der IRM (sofern aktiv) auch 16 kB verdeckt, kann ich die restlichen 32 kB RAM über RAM 8 ansteuern, der jeweils in 16 kB Blöcken im Adressbereich des IRM eingeblendet wird?

Und RAM4 ist ein Sonderfall? Scheint ja mit Block 0 und 1 auch 32 kB groß zu sein, bloß das Block 1 bei aktiviertem IRM für die letzten 6kB eingeblendet bleibt?

Grüße
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
Heute, 18:10 Uhr
maleuma



Hardwaremäßig bildet der 64K-RAM die 16K vom RAM0, die 16K vom RAM4 und die 2x16K von den beiden RAM8-Ebenen ab.
Bei einer Bestückung mit 256K RAM (KC85/5) ergeben sich 14 RAM8-Ebenen.

Bitte möglichst immer mit dem SWITCH-Kommando bzw. dem CAOS-UP 26H schalten. Dabei werden auch die Schaltzustände in der Modulsteuertabelle aktualisiert, was für das System wichtig ist.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
Heute, 18:14 Uhr
maleuma



Der RAM4 ist softwaremäßig ein Sonderfall - ab CAOS 4.3:

Der RAM4 hat nur eine Ebene mit 16K. Die zweite schraffiert gezeichnete Ebene existiert nicht wirklich. Wird mit SWITCH die Ebene gewechselt, so wird der Inhalt mit dem versteckten IRM-Bereich getauscht. Deshalb ist das dort ebenfalls schraffiert gezeichnet.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
Heute, 18:36 Uhr
Andre.as



Gibt es bis jetzt eine Anwendung, die das Verhalten vom RAM4 ausnutzt?

Grüße Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
Heute, 19:06 Uhr
MarioG77

Avatar von MarioG77

Ich bin ja sonst nicht blöd...
Aber wenn ich mir das Bild und die Texte durchlese, verstehe ich gerade, wie sich meine Kollegen manchmal bei mir fühlen...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy, D008], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x A5120 und hin und wieder was von oben

Dieser Beitrag wurde am 18.03.2026 um 19:06 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
Heute, 20:14 Uhr
maleuma




Zitat:
Andre.as schrieb
Gibt es bis jetzt eine Anwendung, die das Verhalten vom RAM4 ausnutzt?


Ja, der Faden-Bildschirmschoner für CP/M. Der sichert den aktuellen BS-Inhalt in der zweiten RAM4-Ebene.
Man könnte aber auch zwei unterschiedliche Programme laden und mit SWITCH hin und her schalten. Voraussetzung, diese liegen ausschließlich im RAM4.

Genutzt habe ich das schon mit EDAS/ASM:
- Beim Start die Anfangs- und Endadresse auf den RAM4 begrenzen.
- Den Quelltext nach 200H übersetzen mit der Option O
- EDAS/ASM verladden
- Mit SWITCH die andere RAM4-Ebene einschalten.
Geht dann beim Testen des Programms etwas schief, wird der Quelltext im versteckten IRM mit hoher Wahrscheinlichkeit nicht beschädigt und man kann das zur Korrektur einfach wieder zurück schalten.
--
Mario.
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