Funkamateur 09 u. 10/89

 

AC1 mit 320-KByte-Speicher (1 u. 2)

U. ZELLNER; W.-R. JÜRGENS; F. HEYDER-Y21SO

Wer am CP/M-Betriebssystem für den "AC1" [2] Gefallen gefunden hat, wird bald feststellen, daß der in dieser Variante zur Verfügung stehende externe Speicher doch recht spartanisch und für einige ernsthafte Anwendungen zu klein ist. Hier zeigen wir nun, wie in [2] bereits angesprochen, einen ersten Ausweg aus der Misere; die Einbindung der 256-KByte-RAM-Disk aus [1] in das CP/M-Betriebssystem des "AC1", bei der dann gleich noch die 64 KByte Grundspeicher mit "abfallen". Gegenüber einem Floppy-Disk-Laufwerk dürfte diese Variante für viele "AC1"-Besitzer doch relativ einfach zu realisieren sein. Die Leiterplatte kann man fertig gebohrt beziehen und Speicherschaltkreise sind nun auch kein Problem mehr. Der Steckverbinder der Leiterkarte paßt zwar nicht direkt an den "AC1"-Bus, aber der "AC1" ist natürlich in der Lage, alle dort verlangten Signale zur Verfügung zu stellen, aber dazu gleich mehr.
Die Arbeiten zum Einsatz der RAM-Disk-Leiterkarte am "AC1" wurden hauptsächlich im Computerclub Dessau durchgeführt und beziehen sich auf [1]. Dies ist bei der Nutzung der Präcitronic-Leiterplatte eventuell zu beachten (siehe auch die Korrekturen im FA, d. Red.). Vom RAM-CP/M aus [2] haben wir den CCP und das BDOS unverändert übernommen, nur das BIOS wurde geändert. Vor dem Ausprobieren der Software muß man aber erst einmal die RAM-Disk-Leiterplatte aufbauen, in Betrieb nehmen und sie an den "AC1" anschließen. Und hier gilt natürlich immer noch: lieber etwas langsamer und sorgfältig arbeiten als dann ewig Fehler für Fehler suchen.

Ein Bustreiber für alle Fälle

Bevor wir nun zum praktischen Aufbau kommen, noch ein paar Worte zum Anschluß der RAM-Disk an den "AC1". Dazu gibt es zwei Möglichkeiten, die beide im Computerclub Dessau getestet wurden. Die erste geht davon aus, daß die CPU noch ein. paar Reserven hat und die zusätzliche Belastung verträgt. Dies erfordert zwar den geringsten Aufwand, erlaubt jedoch keine weitere Belastung durch zusätzliche Baugruppen. Hierzu verbindet man einfach die entsprechenden Leitungen des "AC1"-Busses und des K 1520-Busses miteinander. Als /RDY-Signal wird das schon bei der CP/M-Einführung beschriebene Speicherfreigabesignal für den Adreßdekoder genutzt. Diese Schaltungsart bringt natürlich ein Risiko für die CPU mit sich, deshalb raten wir davon ab, da es hier zu undefinierten Zwischenzuständen kommen kann, bei denen der Bus einmal richtig und einmal fehlerhaft funktioniert. Solche Fehler lassen sich auch kaum auffinden.
Die zweite Methode erfordert es, einen Bustreiber für die Daten-, Steuer- und Adreßleitungen einzusetzen. Dadurch wird es möglich, weitere zusätzliche Baugruppen gleichzeitig zu betreiben. Eine bereits mehrfach aufgebaute Schaltung ist in Bild 1 gezeigt. (Leiterplatte siehe Bild 2, Bild 3 und Bild 4.) Der daran angeschlossene Bus sollte auf allen Leitungen mit je einem Widerstand von 1,1 kΩ gegen Masse und 560 Ω gegen + 5 V abgeschlossen werden, um Reflexionen auf den Leitungen zu vermeiden. Dies könnte sonst die Ursache für Fehlfunktionen der RAM-Disk sein.
Noch ein paar Worte zur Funktion der Richtungslogik. Diese hat die Aufgabe, den Datenverkehr über den Datenbustreiber zu organisieren. Hier fallen zwei neue Signale /MSEL und /IOSEL auf. Sie kommen von den Ausgängen des D18 auf der Grundleiterplatte (Pin 6 = /MSEL; Pin 8 = /IOSEL). Wenn eines dieser Signale L ist, werden ein /RDY generiert und der Grundspeicher inaktiv geschaltet. Falls beide Signale H sind und außerdem /RDY L-aktiv ist, wird der Datenbustreiber (D04) auf Lesen geschaltet. Allerdings darf dabei keine INT-Anmeldung des CTC oder der PIO auf der Grundplatte vorliegen (/M1, /IORQ und /IEO = L). Diese Logik ist mit den IS D5 (DL 002) und D6 (DL 003) realisiert.
An diese Schaltung können dann bis zu 10 Zusatzbaugruppen, wie z.B. die RAM-Disk, Floppy-Disk oder EPROMmer angeschlossen werden - eine kräftige Stromversorgung natürlich vorausgesetzt. Der Anschluß des Bustreibers ist Voraussetzung für die Kontrolle der einzelnen Ausbaustufen der RAM-Disk. Die Baugruppe sollte zweckmäßigerweise zwischen CPU und einen evtl. vorhandenen Busverteiler geschaltet werden; hierfür ist die Steckverbinderkonfiguration vorgesehen.

Der Aufbau der RAM-Disk

Nachdem die Leiterplatte für die Bestückung (s. deren Begleitmaterial) vorbereitet ist, wird zuerst der 64-KByte-Grundspeicher in Angriff genommen. Selbstverständlich gelten hier die gleichen Richtlinien, die schon beim Aufbau des "AC1" verbindlich waren. Im Bestückungsplan [1] sind die Durchkontaktierungen unter den Schaltkreisen nicht dargestellt. Sie dürfen keinesfalls vergessen werden. Also zuerst alle Durchkontaktierungen herstellen und den Steckverbinder anlöten. Falls im Layout noch Fehler vorhanden sein sollten (Originalplatte in [1]: + 5 V an Pin 1 von D45 und an Pin 16 von D7; Präcitronic-Leiterplatte: Verbindung von D5 Pin 11 nach D7 Pin 11), muß man sie spätestens jetzt beheben.
Nach jedem Aufbauabschnitt sollte man die Stromaufnahme kontrollieren und durch Anschluß an den "AC1" die Busfunktion überprüfen. Auftretende Fehler sind sofort zu beheben. Das ist wichtig, weil diese Karte spätestens nach dem Einlöten der dynamischen RAMs nicht mehr statisch überprüfbar ist.
Zuerst bauen wir sämtliche Stützkondensatoren und die Drosseln für die Bustreiber ein. Hier sollte man nach jedem Bauelement die Stromaufnahme kontrollieren, da ein Schluß in einem Kondensator die Suche sehr komplizieren kann.
Als erste Schaltkreise werden die IS D46, D47, D48 und D50 eingelötet, dazu die zugehörigen Bauelemente R33, R34, R35, R36, R46, R47 und C3 bis C6. Bei den RC-Gliedern schlagen wir eine Dimensionierung von 180 Ω und 390 pF vor. Mittels einer statischen Belegung der Leitungen /MREQ, /RD und /WR sind die Signalwege schon einmal überprüfbar. Nach Einsetzen der Brücke B19-20 kann man auch die Funktion von /RDY kontrollieren.
Jetzt sind die IS D43 bis D45 an der Reihe. Auch hier schadet eine nochmalige statische Prüfung nichts. Dabei ist auch die Stromaufnahme nicht zu vergessen. Falls bisher alles klappte, setzt man nun die Speicher-IS ein. Diese sind auch einzeln nacheinander einsetzbar und können mit "MODIFY" überprüft werden. Damit ist der Grund-RAM einsatzfähig. Er sollte nun mit dem Speichertestprogramm "TRAM*x" [3] getestet werden. Da in dieser RAM-Disk der Refresh von der CPU organisiert wird, ist hier nur der Einsatz von Speicher-IS mit 7-Bit-Refresh möglich. Dies ist beim Einsatz von Importtypen zu beachten!

Nun zu den restlichen 256 KByte!

Hier fangen wir mit den IS D1 bis D3 und den dazugehörigen passiven Bauelementen an. Als Brücken sind hier B29-30, B31-32, B33-34, B35-36 und B37-38 zu realisieren. Dadurch wird die Grundadresse der RAM-Disk mit E0H eingestellt; sie kam auch in [1] zur Anwendung. Weiterhin ist der offene /IODI-Eingang mittels eines Widerstands von etwa 1 kΩ an + 5 V zu legen.

Zum Test müssen wir allerdings schon ein kleines Programm bemühen, das wir uns schnell selbst erstellen. Dabei sollte die Adresse E0H zyklisch mit In/Out-Befehlen angesprochen werden. Dabei sind dann Impulse an den Ausgängen der IS nachzuweisen. Wenn dies der Fall ist, kann man die IS D4 bis D10 einlöten. Auch hier hilft uns im Test ein Programm, das nun aber die Adressen bis E7H ansprechen muß. Von E0H bis E3H müssen auch die Zähler D5 und D7 reagieren. Dafür ziehe man das Schema aus [1] zu Rate. Falls der Zähler nicht richtig arbeitet (Ausgang 1, Pin 3 von D5, teilt nicht sauber 1:2), sollte der Eingangsimpuls an D5 (Pin 5) mit einem Oszilloskop untersucht werden. Es kann sein, daß in der Flanke des Zählimpulses eine Spitze (spike) versteckt ist. Hier sollte man an Pin 4 von D2 einen Kondensator von etwa 1 nF gegen Masse legen. Eventuell ist hier etwas zu variieren. Vielleicht liegt es aber auch an Reflexionen des Busses, falls dieser nicht, wie oben beschrieben, mit Widerständen abgeschlossen ist. Nachdem soweit alles zufriedenstellend funktioniert, können wir zu den Speicher-IS übergehen. Zunächst wird die erste Bank bestückt (D11 bis D18). Die Durchkontaktierungen in der zweiten Bank sind bereits jetzt auszuführen. Wer diese RAM-Disk später durch 256-KBit-dRAMs auf 1 MByte aufstocken möchte, sollte für die Speicher IS Fassungen verwenden, da sich ein späterer Ausbau auf 1 MByte anbietet und dann relativ wenig Mehraufwand bedeutet.

Test der einzelnen Speicherbänke

Jetzt benutzen wir das in diesem Beitrag veröffentlichte Speichertestprogramm, um die Funktion der RAM-Disk zu kontrollieren. Das Programm führt dabei die folgenden Arbeitsgänge aus, wobei bei auftretenden Fehlern die Nummer des jeweiligen Arbeitsgangs mit der Pufferadresse, bei der der Fehler auftrat, mit dem Fehlerbyte und dem gewünschten Byte ausgegeben werden:
1. Speicherbank mit 00 füllen
Falls dabei Fehler auftreten, sollte man das Signalspiel von /RAS, /CAS und /WR kontrollieren.
2. Nacheinander jeden Sektor mit einer aufsteigenden Bytefolge von 00 bis FF füllen.
Fehler können aus Zählerfehlern (s.o.) resultieren. Auch Unterbrechungen und Schlüsse in den Adreß- und Datenleitungen sind als Ursache möglich. Eine Kontrolle des Puffers bringt Klarheit.
3. Mit den Sektoren der Bank, die noch 00 enthalten, vergleichen. Hier können Unterbrechungen oder Schlüsse in den höherwertigen Adreßleitungen Fehler hervorrufen.
4. Pause für Refresh einlegen und danach Kontrolle auf Datenerhalt.
Hier können Fehler in der Refresh-Logik auftreten.
Falls Wiederholungen im Puffer zu finden sind, kontrolliere man die Adreßleitungen. Bei sich nicht verändernden Bits sind Fehler in den Datenleitungen die Ursache.
Erst wenn das Testprogramm die Bank fehlerfrei gemeldet hat, sollte die nächste in Angriff genommen werden. So verfährt man dann bis zur Fertigstellung.

Es fehlt nur noch die Software

Nun kann der Lötkolben wieder weggelegt werden und es kann das Einlesen von "CP/M320K" beginnen. Wie kommt man zu dieser Software? Hier gibt es mehrere Möglichkeiten:
1. Man hat dieses Programm bereits vom Computerklub nach Hause getragen.
2. Man schneidet das Programm am 15.11.89 um 17.00 Uhr bei REM (Radio DDR II) mit, dies hat sich, bereits bei mehreren Programmübertragungen bewährt.
3.Man stellt sich,das Programm selbst zusammen. Dazu ist das RAM-CP/M aus [2] im Adreßbereich E000 bis F5FF (CCP, BDOS) zu verwenden und das zu diesem Beitrag abgedruckte BIOS ab F600 anzufügen.
Die Startadresse des RCP/M 320K ist ebenfalls F600H. Aber das Formatieren der RAM-Disk dauert nun etwa 27 s. Außerdem sei erwähnt, daß diese Software für jeden Sektor, der RAM-Disk auch ein CRC ablegt. Dies macht die RAM-Disk zwar langsamer, aber dafür sicherer gegen RAM-Fehler.
Der Datenaustausch mit dem Kassettenrecorder geschieht in gleicher Weise wie in [2], also Einlesen mit LOAD und anschließend SAVE in die RAM-Disk und das Abspeichern auf Kassette mit COPAC. Diese Verfahrensweise begrenzt die Dateilänge auf etwa 48 KByte. Bei den CP/M-Programmen ist dies kein Hindernis. Sollten mit TP erstellte Textdateien oder Quelltexte länger sein, so kann man sie mit TP teilen. Mit dieser Konfiguration sind nun auch solche CP/M-Programme wie Wordstar, dBASE, Supercalc usw. auf dem "AC1" nutzbar.
Achtung: In der ersten Folge des Beitrags sind die im Abschnitt ... 256 KByte die Brückenbezeichnungen B 29 bis B 38 in D 29 bis 38 zu ändern!

Literatur

[1] Kammer, W.; Spindler, W.: RAM-Disk für K-1520-Systeme,
Mikroprozessortechnik, Berlin 2 (1988), Heft 3, S. 74
[2] Heyder, F.: CP/M mit AC1 zum Kennenlernen,
FUNKAMATEUR, 38 (1989), Heft 4, S. 168
[3] Heyder, F.: Ein Speichertestprogramm für den AC1,
FUNKAMATEUR, 35 (1986), Heft 12, S. 616
[4] Kramer, M.: Praktische Mikrocomputertechnik,
Berlin1987

86 KByte 55 KByte 62 KByte
Bild 1 Bild 2 Bild 3

36 KByte 174 KByte 403 KByte
Bild 4 Speichertest BIOS