Funkamateur 09 u. 10/89 |
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.
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.
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!
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.
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.
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!
[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 |