Computer - c't180 01.06.2019 ...
(C)2021 Werner Römer
Seit einiger Zeit liegen zwei CPU-Karten von Fritz in meiner Bastelkiste, beding durch Corona ist derzeit viel Zeit für solche Basteldinge. Es war mal ein Bauvorschlag aus der c't 2 1986. mit der damals neuen Hitachi CPU HD64180 eine deutlich verbesserte Z80 Variante. 512Kbyte RAM, MMU und zwei V24 Schnittstellen.
Hatte ja mal sowas ähnliches von Conitec - Prof180x, der hatte sogar noch einen Floppy-Controler on Board, klasse Teil, könnte mich heute noch kneifen dass ich den abgegeben habe …
Warum Robert Kress damals einen Spannungswandler für die -12V vorgesehen hatte, erschließt sich mir nicht, da damals alle Netzteile -12V zur Verfügung stellten. Um den Spannungswandler waren drei Tantal Elkos verbaut, die neigen nach längerer Zeit schon mal zu Kurzschlüssen, entfernt und +12V/-12V vom BUS direkt zum V24 Treiber geführt. Quarz mit 12,288Mhz verbaut, 64kByte RAM gesteckt und mit den Testroutinen der Monitorversion 1.1 die Grundfunktionen gecheckt.
Der Anschluss für die V24 gestaltet sich etwas schwierig, hier hatte der Entwickler sehr wenig Raum um die Pfostenleiste gelassen, der Pressstecker geht nur ohne Kappe mühselig drauf. wird im 19" Rahmen nochmals eine Herausforderung werden.
RAM auf 512kByte aufgerüstet und läuft immer noch. Da ich von dieser Monitorversion nur ein Papierlisting besitze habe ich zum RDK-Monitor 4.53 gewechselt, hierzu sind alle Quellen vorhanden. War aber für 18Mhz assembliert - was tun. 18Mhz eingebaut, damit läuft meine CPU-Karte aber nicht, also zurück zu 12Mhz.
Fritz war so nett und hat mir die Quellen auf 12,288 Mhz neu assembliert hätte ich zwar theoretisch auch mit dem Moppel durchführen können - aber Lichtjahre später …
Damit ist die erste Karte soweit funktionstüchtig.
2.CPU-Karte:
Das scheint eine Vorserienplatine zu sein, gleiche Versionsnummer aber ohne Bestückungsdruck. Blieb erstmal sehr stumm, PIO wurde nicht angesprochen, CPU lief sofort auf den Haltbefehl, kein Wunder - Pull-Up Widerstände hatten kein +5V Potenzial. Dann Adresse 4 und /IRQREQ am 138er vertauscht - geht immer noch nicht. Adresse 4 und 1 hatte noch einen Kurzschluss gegen Masse, Tantal defekt, siehe oben.
Nun funktionierten schon mal die Selbstests, aber eine Monitormeldung blieb trotzdem aus. Weitere Analysen zeigten im Speicherselectbereich rund um IC15 (74LS139) einige Ungereimtheiten. Auch hier waren einige Leiterbahnen falsch beschaltet - mit Fädeldraht gerichtet - klappt aber trotzdem nicht.
Also sind hier nochmals alle Verbindungen "durchzuklingeln" und ggf. den Logikanalyser um Rat fragen.
Erstmal Pause mit dieser Krücke ...
Weitere Pläne:
CPU-Karte ohne Massenspeicher nutzt nichts, es soll ja irgendwie CP/M drauf laufen.
Am einfachsten wäre natürlich eine FLO2-Karte vom NDR-Computer, denn hierzu ist der Monitor 4.53 ja entsprechend ausgestattet - sowas gibt es aber nicht mehr zu kaufen und selberhäkeln wird allein bei der Beschaffung des WD1797 und dem 9229 schon recht schwierig.
Vom Moppel habe ich noch zwei funktionstüchtige Floppy-Karten, müsste nur der IO-Bereich angepasst werden oder doch gleich eine CF/SD-Karte anstricken.
schauen wir mal ...
Fortsetzung mit der 1.CPU-Karte: (07.2020)
Mit dem RDK-Monitor kann man zwar Intel-Hex Dateien direkt in den Speicher laden, vor allem zum Testen der übrigen Hardware sehr nützlich aber auf Dauer doch etwas langweilig. Also Pläne für einen Massenspeicher gemacht. Sie da, für den NDR-Computer wurde die FLO3 nochmals neu aufgelegt und Rene Vetter hatte sogar noch eine Leerplatine in der Schublade liegen. Die restlichen Bauteile waren kein Problem, Datenseparator 9229 lag noch in meiner und der Controller war in China zu bekommen.
Zunächst erstmal alle Daten und Adressleitungen getestet. Mit dem Monitor können einzelne Bytes angelegt ( qo #port Datum, lesen mit qi #port) und mit dem Oszi dargestellt werden. soweit erstmal alles schön.
Laufwerk anschließen und los geht's, nicht wirklich - Lesefehler, kein Wunder denn das Laufwerk wurde nicht angesprochen grrr.
Fehlersuche - das BIOS war leider für die Flo1 auf 30h assembliert, Fritz hats gerichtet wunderbar. Immerhin leuchtete schonmal die LED im Diskettenlaufwerk aber der Lesefehler blieb.
Karte inspiziert, Datenstrom kommt vom Laufwerk bis zum Controller auch die Ready-Leitung ist aktiv ???
Leitungen vom Controller zum BUS durchgeklingelt, /INT fehlt - geht nur zum NDR-Stecker aber nicht an den EC-BUS. Ein Stückchen Fädeldraht und der Fehler ist behoben. Klappt aber immer noch nicht...
Karte mit Lupe nochmals untersucht und siehe da im Pfostenstecker fürs Laufwerk hatte sich ein hauchfeiner Lötspritzer festgesetzt - Uff geschafft.
Mittlerweile hatten Alfred und Fritz mir einige Diskettenimages zur Verfügung gestellt, Das CP/M2.2 Image funktionierte nun einwandfrei. Im Fundus lagen noch 256er Speicherbausteine, also auf 512kByte ausgebaut erzeugen aber unmotivierte Fehler beim Hochfahren, Einstellbrücken überprüft - nichts gefunden. Bausteine getauscht - Jetzt klappt es !
Anmerkung: Der Monitor zählt auch bei der 128kByte Version bis 512kByte hoch ohne zu mucken ?
Nur die alten Disketten machen riesige Probleme, vor allem die HD's, lassen sich auch unter XP nicht formatieren, steigen mit schreib/lesefehler oder sogar mit Schreibschutz aus. Alles für die Tonne und neue MF2DD gekauft und der Spuk hat ein Ende.
Funktionsfähig: (20.07.2020)
Das CP/M2.2 auf einer neuen Diskette kopiert, Turbopascal 3.0, WordStar und den NevaEdit eingerichtet - klappt alles wunderbar. Nun fehlt nur noch ein etwas größerer Massenspeicher.
Da richtige Festplatten doch recht aufwendig sind, halte ich eine CF-Karte für sinnvoll, sehr robust, einfache Ansteuerung und noch soeben nostalgisch genug (ab 1994).
In meinem Moppel habe ich den IO-Modus gewählt, dort wird die CF-Karte über 3Adress- und 8Dateitungen angesprochen und liest/schreib 512Byte (Sektor) in einem Rutsch. Hier gibt es nur ein kleines Problem, auf den üblichen CF-Adapter werden die beiden Signale /atasel (Pin 9) und /we(pin 36) nicht auf den 40pol Stecker geführt, hab es mit ein wenig Fädeldraht gerichtet.
Diesmal verzichte ich auf den ATMega644 und steuer die CF-Karte im ATA-Modus, so kann ich die einfachen Adapter nutzen und benötige lediglich eine PIO, die Adress- und Datenpufferung übernimmt.
Nun ist erstmal Materialbeschaffung angesagt. Fortsetzung folgt ...
Massenspeicher:
CF-Karte für den Ct180: (Oktober 2020)
Die Steilvorlage kam von Alfred und Paul , so ist das deutlich einfacher als meine Moppel-Version - drei TTL-Bausteine, eine PIO und ein wenig drumherum. Alles wieder in Häkeltechnik auf eine Euro-Karte gebastelt, hier bleibt noch eine Menge Platz für den CF-Halter …
Damit sie auch am Moppel funktioniert ist noch ein Jumper für die Umschaltung zwischen IO/M (Moppel) und /IORQ (Z80) hinzugekommen. Die ersten Test's am Moppel (einfache Ausgabe an den drei Ports) liefen Erfolgversprechend, noch eine kleine Lötbrücke zwischen Port A0 und /RD beseitigt und alles ist soweit OK.
Wie man sieht kommt hier der Moppel-4 mal zum Einsatz, ein paar Bytes an die PIO schicken fordern ihn nicht wirklich und auf dem Schreibtisch bleibt es übersichtlich.
Hier das Schaltbild und das mögliche Layout
- als JPG
- Eagle-Dateien Schaltbild-Version1 - Board
Jetzt kommt der spannende Moment ob das auch in Echt, also im ct180 funktioniert, schauen wir mal ...
CF-Karte Fertigstellung: (Dezember 2020)
.. es war ein steiniger Weg, was aber nicht am Schaltungskonzept lag.
Das CF-Interface in den Prof180x gesteckt, und alle Probleme sind verschwunden. Mit dem IDETOOL von Alfred alles getestet, funktioniert alles einwandfrei.
Der Reihe nach, im Ct180 wollte die PIO nicht mitspielen, am Ausgang kamen die Eingangssignale einfach nicht an. Am BUS-Treiber war noch alles OK, soweit man das mit dem Oszi mit 2 Kanälen testen kann (Einer geht ja schon für die Synchronisation am /CS-Eingang drauf). Verschiedene Testmuster angelegt (00h,ffh,55h und aah), damit sollten wohl alle Bits zu testen sein. Treiber und PIO getauscht, ohne Wirkung, CPU-Takt herabgesetzt (Timingprobleme ?) auch das half nicht.
Die Umschaltung für 8085/Z80 ausgebaut, M1 in die IO-Selektierung mit aufgenommen - nichts.
Logik-Analyser am PIO-Eingang angeschlossen, siehe da, das Bit 7 war nicht immer vorhanden, so kann die PIO ja nicht initialisiert werden (Bit7 muss beim Steuerwort auf High sein).
Also den BUS unter die Lupe genommen und siehe da, sobald der IO Port angesprochen wird ist das Bit 7 undefiniert - Fehler auf der CPU-Karte - jetzt dämmert es mir warum die Flo3 seit einiger Zeit nicht mitspielt. Denn auch hier gibt es eine Baustelle, die IC's hatte ich neu beschafft aber auch ohne Ergebnis.
Die CT180 Baustelle hebe ich mir mal für den Winter, wenn ich wieder etwas mehr Geduld für diese "Krücke" habe, auf...
Fortsetzung der Inbetriebnahme: (März 2021)
Mit Fritz und Alfred einige Theorien nachgegangen, Hardware, Bankumschaltung und, und, und...
Nichts konkretes gefunden, also erstmal zurück zu CP/M2, da gab es immerhin eine funktionierende Ausgangs Variante, kleines BIOS von 87 was den Monitor (ab F000h) intensiv nutzt. Leider passen die CF-Routinen da nicht mehr rein, also umstieg auf die BIOS-Version 2007 - endet erstmal nach dem Boot.
Da die BIOS-Fehleranalyse auf dem ct sehr viel Zeit in Anspruch nimmt und dort natürlich kein ordentlicher Editor zur Verfügung steht - alles auf dem PC verlagert und unter Yaze und Notpad++ weitergeführt. Hier dauert ein Assemblerdurchlauf nur ein paar Sekunden, dafür gibt es dann das Problem alles auf die Systemspuren des ct's zu schaufeln. Der Umweg über 22Disk scheidet aus, viel zu umständlich aber da steht ja noch ein Moppel.
Hierzu gibt es schon ein paar Routinen um die Systemspuren in einfachster Form zu beschicken, diese entsprechend erweiter damit der Moppel mit den unterschiedlichen Sektorgrößen zurecht kommt. So ist ein Tool entstanden, was die Systemspuren beliebiger Formate DD, SS, DS, und 128 bis 1024Byte/Sektor lesen und schreiben kann, zwischendrin können per Intel-Hex Lader die einzelnen Komponenten wie Bootloader, BDOS und das BIOS austauscht werden - das ist schon mal eine deutliche Erleichterung.
Dann stieg das A-Laufwerk zeitweise mit Schreibschutzfehler aus, obwohl der Schieber richtig stand. Ersatz aus der Bastelkiste und die Anpassung konnte weitergehen.
Der Bootvorgang ist ja schon recht komplex:
Zunächst versucht der Bootlader aus dem Monitor den Bootlader aus den Systemspuren zu laden, dieser lädt dann CCP,BDOS und BIOS ins RAM und Springt zum Kaltstart, ein paar Initialisierungen und BIOS-Meldung geht es dann zum CCP, dieser veranlasst erstmal übers BDOS einen Warmstart, der dann nochmals CCP und BDOS, obwohl bereits vorhanden, nachlädt. Hat eine Weile gedauert bis es problemlos funktionierte, da zwischenzeitlich mal das BDOS verschwunden war und seltsame Effekte erzeugte - Dauerschleife Warmstart.
Ende Februar war es geschafft - fasst, BIOS, CP/M2 mit CF-Karte läuft aber nicht mit jeder Karte. Nur die 4, 256 und die 512MB-Karte von Transcend waren zur Mitarbeit bereit.
Das Ergebnis:
E/0>stat dsk:
A: Drive Characteristics
6304: 128 Byte Record Capacity
788: Kilobyte Drive Capacity
128: 32 Byte Directory Entries
128: Checked Directory Entries
512: Records/ Extent
32: Records/ Block
40: Sectors/ Track
2: Reserved Tracks
E: Drive Characteristics
65536: 128 Byte Record Capacity
8192: Kilobyte Drive Capacity
512: 32 Byte Directory Entries
0: Checked Directory Entries
512: Records/ Extent
32: Records/ Block
252: Sectors/ Track
1: Reserved Tracks
Es gibt ein weiteres Problem, manchmal hängt er sich einfach wech ???
Wieder einigen Theorien nachgegangen, bis die Diskettenroutinen vom BIOS eingekreist waren. Es gibt Unterschiede zwischen MONITOR und BIOS-Routinen, Alfred hat es entsprechend angepasst - neuer Versuch.
Erfolgreich - Endlich !!! (08.03.2021)
Noch ein 19" Gehäuse spendiert, soll ja schön werden...
Mit der Fräse hat die Blenden aufgehübscht und die CF-Karte mit einem ordentlichen Einschub versehen - fertig.
Die Freude währte nicht lang, kein Boot :-[[ gr..gr..
Floppy-Laufwerk noch getauscht, Controller gewechselt - Fehler bleibt.
Ende Aus Micky-Maus - kein Nerv mehr
Kleines Päckchen gepackt, CPU-Karte und FLO3 und an Alfred gesandt...
Nachklapper:
Alfred hat ein paar weitere Fehler gefunden:
- ich hatte einige Bauteile nur einseitig angelötet - tausendmal drauf geschaut - brauche wohl eine gescheite Brille
- weitere Layout-Fehler, nicht nur die /INT-Leitung sondern auch für den Headload fehlten ein paar Verbindungen
Resumee:
Das Projekt hat mich zeitweise zur Weißglut gebracht und nur durch die Motivation von Alfred und Fritz habe ich bis zu diesem Punkt durchgehalten sonst wäre es längst in die Tonne gelandet. Vor allem die Nebenschauplätze haben mich immer wieder genervt, Diskettenlaufwerke die nicht wollen wie sie sollen. Erst einen anderen Win98/DOS PC neu aufsetzen bis man wieder arbeiten kann, die unterschiedlichen Diskettenformate die in 22Disk eingebaut werden müssen bevor ein Datenaustausch möglich ist, Disketten die an Altersschwäche leiden und dann noch die hinterhältigen Layoutfehler womit ich nicht gerechnet habe.
"Nichts ist unnütz es kann immer noch als schlechtes Beispiel gelten"
Und was lerne ich daraus:
1. deutlich mehr Sorgfalt walten lassen - Lupe und Durchgangstester sind schon lange erfunden und ersparen eine Menge Arbeit und Frust
2. Auch fertigen Platinen nicht trauen, bei diesen Kleinserien schleichen sich einfach Fehler ein - zurück zu Punkt 1
3. Eine gute Cummunity - vier und mehr Augen sehen einfach mehr und jeder geht mit einem anderen Ansatz die Probleme an - sonst leidet man schnell an Betriebsblindheit...
Fehler liegen nicht immer an mangelhafter Hardware, sondern die eigene Sorgfalt ist oft entscheidend. So gab es eine Verbindung zwischen den Datenleitungen D5(2a) und D7(3c). So konnte das Bit-7 zur Initialisierung nicht auf High gezogen werden, folglich gibt es auf den drei Kanälen auch keine Reaktion. Die aufwändige suche mit dem Logic-Sniffer und diversen Testroutinen hätte ich mir ersparen können, einfach mal die frischen Lötungen mit der Lupe anschauen, war einfach zu bequem die Backplane für den Netzteilumbau auszubauen - Nachlässigkeiten werden schon mal bestraft - so hebe ich aber mehr Routine in Fehleranalyse mit dem Logic-Analyzer bekommen ;-)).
Aber der nächste Stolperstein ließ nicht lange auf sich warten. Da der ct180 512kByte hat, sollte er sinnvollerweise unter CP/M3 laufen, Quellen sind ja alle vorhanden. Die Generierung Quellen muss natürlich geübt werden (unterschiedliche Hardware) bis was ordentliches heraus kommt. Großes Manko sind die schier unendlich vielen Diskettenformate unter CP/M, so kommt dann wieder 22Dik als Formatwandler ins Spiel. Als Nebenschauplatz klemmte das Diskettenlaufwerk im Laptop (DOS/Win98), da passen natürlich keine Standartlaufwerke rein, also noch einen "neuen" PC mit der Software ausrüsten. Nach vielen Versuchen festgestellt, dass CP/M3 zwar bootet aber beim ersten Befehl ins Nirawana verschwindet :-[[ - gr..