Computer - Moppel der 5.  06.2018...
 
 
 

[Seitenanfang][Startseite][Impressum]
(C)2021/23 Werner Römer
 
… da gab es noch einen Fundus.
Wundertüte (Kiste) auf links gedreht und schon purzelten etliche Platinen entgegen.

- CPU
- Videokarte
- drei mal RAM 32kByte ausreichend für einen CP/M-Moppel
- drei Floppy-Controller
- drei Uhren
- zweimal RS232
- zweimal Promer 2716/2732 27/21Volt
- eine Parallelschnittstelle
- Einzelschrittmodul
- eine originale Netzteilplatine nebst Trafo, dazu eine umgestrickte Reglerplatine
- zweimal Backplane
- ein 19" Rack
sowie einige undefinierte, selbstgestrickte Karten ohne Doku.

Daraus sollte wohl noch ein Komplettsystem für Fritz herauskommen, und ein weiterer Fundus ist auch noch in Aussicht.

Für die Inbetriebnahme erstmal alle IC's ziehen und ab durchs Ultraschallbad damit der Staub der letzten
30 Jahre davon fliegt...
CPU-Karte
fang mal mit der CPU-Karte an, Bauteile gezogen. Glücklicherweise war hier kein Akku verbaut, so sehen die Leiterbahnen recht ordentlich aus, lediglich ein paar Flussmittelreste die im Ultraschallbad und Nachbehandlung mit einem Platinenreiniger und scharfer Bürste restlos verschwinden. Einige IC-Stifte sind stark oxidiert, das bekommt man aber mit radieren wieder blank.
vorher
nach dem Ultraschallbad und Reiniger
Nach der Reinigung fehlt nur noch der Lötlack zur Konservierung, vorher werden aber noch die Tantals vorbeugend ausgetauscht.
Prüfstand:

zunächst erst mal alle Spannungen testen, soweit erstmal alles im grünen Bereich.
Stückchen für Stückchen... (05.07.2021)
Alle Bauteile wieder an seinem Platz. Beim Anschließen der HEX-Tastatur ist die wackelige Kontaktgabe aufgefallen. Nochmal den Lötkolben angeheizt und die Fassung gegen eine ordentliche mit gedrehten und vergoldeten Kontakten ausgetauscht.

Es gab schon damals den deutlichen Hinweis, Fassungen nur wenn nötig und dann was gescheites, TTL's gehören eingelötet.

Spannender Moment, Spannung eingeschaltet - leider nicht das gewünschte Ergebnis. Die LED-Anzeige zeigt irgendwas an. Takt, Daten und Adressleitungen sehen erstmal gut aus. Einzelschrittmodul angeschlossen, naja er dümpelt irgendwo im 4 tausender Bereich, der Monitor beginnt aber bei 0000h. Sukzessiv die Bauteile mit dem Moppel-4 getauscht, Fehlerbild bleibt.

Erstmal alle Daten, Adress- und Steuerleitungen durchgeklingelt - alles OK.
Test-EPROM gebrannt, Endlosschleife mit 8bit Ausgabezähler an die LED-Zeile ohne Verwendung vom RAM etc. - läuft nicht - viele Fragezeichen über meinem Kopf.
Erstmal drüber schlafen …

Zur weiteren Analyse die Adress-, Datenleitung mit dem Oszi näher betrachtet. Bei der ersten Datenleitung (D0) gibt es ein seltsames Verhalten - sobald die Prüfspitze angelegt wird verschwindet die CPU ins Nirawana. Erstmal den Treiber 74LS245 gewechselt, kein Erfolg. Die Signale an D1 bis D7 sehen unauffällig aus.

Signal D0 mit einem TTL-Eingang als Last verbunden, jetzt kann ich das Signal auf dem Oszi näher analysieren. Sieht komisch aus (Bild 3), so als wenn dort eine kapazitive Last dran hängt. Bauteile entfernt und mit dem Ohmmeter geprüft, alles gegen unendlich zwischen D0, Masse und +5V.

Kann ja nur die Fassung sein, also rausgekniffen und die Reste ausgelötet. Das ist der schonendste Weg ohne die Platine zu stark Thermisch und mechanisch zu belasten. Hier wünsche ich mir meine Entlötpistole wieder zurück, die hatte sich leider mit lautem Knall und Rauchzeichen verabschiedet und die Reklamation dauert leider noch eine Weile.

Neue Fassung (vergoldet) eingebaut und alles wieder in Testmodus gebracht. Jetzt sieht D0 ganz normal aus. Wie bereits oben angemerkt, die verwendeten Fassungen sind nicht von Dauer, billig kauft man halt zweimal.
Bildbeschreibung:

In allen Bildern dient der 2.Kanal zur Triggerung.

(Mit der Speicherfunktion bekommt man mit etwas Geduld schöne Bilder die man dann in Ruhe ablichten kann.)

Bild 1: Kanal 1 = A0 als Beispiel, die anderen Adressleitung sehen ähnlich aus

Bild 2: Kanal 1 = D0 direkt am CPU Ausgang, noch alles schön

Bild 3: Kanal 1 =D0 1V/Teil Ansstiegszeit auf 1,63V in 0,635s, so sollte es nicht aussehen

Bild 4: Kanal 1 = D0 PIN 2 vom 245 nach dem Fassungaustausch, jetzt beträgt das Störsignal nur noch 0,63V. So sehen die anderen Datenleitungen auch aus. Nochmals mit der Moppel-4 CPU Karte verglichen - also erstmal alles schön.
Zum Testen das Monitor-EPROM wieder eingesteckt, funktioniert noch nicht - es warten wohl noch einige Fehler auf Beseitigung.

Jetzt warte ich erstmal auf die Entlötstation, dann kommen alle alten Fassungen raus und die TTL's werden direkt eingelötet !
nächste Etappe... (01.08.2021)
Es kann weitergehen, die Entlötstation ist aus der Reklamation wieder zurück und nach einer ganzen Weile auch das notwendige Zubehörset. Damit ist die Entfernung der alten Fassungen ein Kinderspiel - Entlötstation auf rund 360° aufgeheizt, Lötpunkt für ein paar Sekunden aufwärmen, Vakuumpumpe einschalten, mit der Spitze etwas hin- und herwackeln. So wird das Lötzinn gut  aufgesogen und der Lötstifft häng in der Luft. Hier und da noch mit Entlötlitze etwas nachhelfen, übrig bleibt eine Menge Schrott.

Vollstädigkeit halber noch die Tantal- und diverse Entstörkondensatoren ausgebaut, denn diese brechen, wegen der Baugröße leicht ab. So geschen beim Versand von Moppel 3 an Hans-Werner.

Neue Fassungen und alle TTL's liegen schon mal bereit, zunächst müssen die Verbindungen mittels Pieper durchgescheckt werden. Das geht in diesem nacktem Zustand deutlich besser als wenn die Leiterbahnen wieder unter den IC's verschwindet ...
… ein paar Tage später - meine Ohren haben sich vom Pieper wieder erholt, zwei Durchkontaktierungen hatten kein Kontakt und eine Diode für die Stromversorgung vom System-RAM war defekt - dient zur Entkopplung der CMOS-Batterie. Nun kann alles wieder zusammengebaut werden, Fassungen nur für die CPU und EPROM-,RAM-Bausteine, TTL's direkt eingelötet und den Patch für CP/M2 eingebaut.

Die beiden Dioden (Bild 2) bilden mit einem Widerstand gegen Masse ein einfaches ODER-Glied damit der Bildschirmspeicher (3000h) auch beim Banking zur Verfügung stehet.
EPROM mit einer Dauerschleife bespielt und Strom ON - keine Rauchzeichen, Takt (obere Kurve *) liegt an und die Steuersignale /WR und /RD sehen schon mal plausibel aus. Weitere Testroutinen müssen noch ins EPROM gebrannt oder besser mit dem EPROM-Simulator (PEPS) eingespielt werden...

*) CPU-CLK Ausgang im Speicher abgelegt ca. 3Mhz und als Overlay im aktuellen Messzyklus eingeblendet
CPU-Karte einsatzbereit (22.08.2021)
Das Datenbit 0 zickte immer noch, Fehlerbild wie am 05.07. (siehe oben). Versuchsweise den Datenbus mit Terminirung abgeschlossen und der Spuk war vorbei, also nochmals den Datenbus überprüft. Fehler im Widerstandsnetzwerk R2-R8, hier war der 5V-Pol abgebrochen somit die Interrupteingänge nicht auf High-Pegel sondern schwebten zwischen Low und High, das führt natürlich zu dem unkontrolliertem Verhalten - neues eingebaut noch eine Lötbrücke zwischen A1 und Masse entfernt. Jetzt funktioniert auch der HEX-Monitor, damit können dann die weiteren Tests vorgenommen werden...
Bildbeschreibung:
Bild 1: Schaltbildauszug vom Widerstandsnetzwerk R2-R8

Bild 2: Moppel 5 auf dem Prüfbock mit den ersten Lebenszeichen vom Hex-Monitor

Bild 3: Kanal 1 ist das Datenbit 0 am BUS, Kanal 2 /RD zum synchronisieren

Bild 4: Kanal 1 als Beispiel wieder D0 direkt an der CPU, Kanal 2 hinter dem BUS-Treiber am ECB-Anschluß
Video-Interface (22.08.2021)
Für die weitere Inbetriebnahme habe ich die Video-Karte aus der Wundertüte gegriffen.

Sie sieht auf dem ersten Blick recht gut aus, nur wenig verbastelt, lediglich im Bereich der Video-Signalerzeugung und Jumper überzeugen die Lötstellen nicht wirklich - schauen wir mal...
... schon erledigt (23.08.2021)
Bildbeschreibung:
Bild 1: 40-Zeichen auf dem kleinen Monitor

Bild 2: 80-Zeichendarstellung, vorbereitet für den CP/M Betrieb

Bild 3: Kanal 1 Horizontalsynchronisation

Bild 4: Kanal 1 Vertikalsynchronisation

Platine gereinigt, Lötstellen und Jumper überarbeitet, in den Moppel 2 gesteckt - und es läuft. Bildshirmausgabe für beide Modi ist einwandfrei. So einfach wird es aber wohl nicht bleiben...
Speicherkarten (23.08.2021)
Drei Karten plus eine Leerplatine sind vorhanden, für den CP/M-Betrieb benötigt der Moppel mindestens zwei Stück a 32kByte. Im Original waren drei vorgesehen, eine für den Speicherbereich Bank-0 und zwei auf der Bank-1, das halte ich aber für Verschwendung von knappen Ressourcen. Wie im Moppel-3 wird der Speicherbereich 8000h-FFFFh mit ein wenig Logik auf Bank-0 und Bank-1 eingeblendet.

An den Speicherkarten gibt es aber erstmal noch etwas zu tun ...
Fortsetzung Speicherkarten (04.12.2021)
Karten gereinigt und ein paar Leiterbahnen für den Umbau aufgetrennt, die erste Karte bekommt noch ein wenig zusätzliche Logik in Form eines 74LS32 sowie ein Oder-Gatter mittels zweier Germaniumdioden und ein PullUp Widerstand. So ist die Karte auf der Bank 0 von 4000h bis 7FFFh als Eprom und ab 8000h als RAM erreichbar z.B. für den Moppel Monitorbetrieb, im CP/M-Betrieb auf der Bank 1 nur der RAM-Bereich ab  8000h, der EPROM-Bereich wird dabei abgeschaltet, sonst gibt es Datensalat.

Die zweite Karte wird mit 32kByte RAM bestückt und läuft nur unter CP/M auf der Bank 1 im Bereich 0000h-7FFFh. Hierzu dient der Inverter 74LS04. Im Original war hier eine Transistorstufe vorgesehen, klappte aber schon beim Moppel 3 nicht richtig.
Damit im Banking der Monitor- und Videobereich von 0000h bis 3FFFh eingeblendet werden kann, wird das Signal /OBD angelegt und blendet dann den entsprechenden RAM-Bereich aus.
Hier das Ergebnis, erste Karte mit den Moppel-EPROM's und den oberem RAM-Bereich die zweite darf nur mit RAM bestückt werden, als Test alles in den CP/M-Moppel gesteckt - und funktioniert. Zum Schluß noch das Schaltbild der Modifikationen.
Floppy Controller (06.12.2021)
Es stehen drei zur Auswahl - "ene mene muh" - hab mich für den geringsten Aufwand entschieden (links unten), die übrigen wieder ins Körbchen.

Hier war lediglich der Stützkondensator etwas unschön montiert und einen überflüssigen PullUp entfernt (SideOneSel). Rest für gut befunden und in den CP/M-Moppel gesteckt, keine Überraschungen. Mit PIP ein wenig kopiert und den Diskettenstatus getestet - klappt wie am ersten Tag.

auf zur nächsten Baustelle...
Serielle Schnittstelle (08.12.2021)
Alles unnötige entfernt und ab in die Spülmaschine für den Vorwaschgang (ohne IC's). Erstmal reicht eine V24-Karte, die zweite wieder zurück in die Bastelkiste. Wieder bestückt und mit dem Moppel-4 die ersten Testschleifen gedreht, CS-Signale sehen schon mal gut aus, Bauratengenerator auf 9600Bd * 16 eingestellt. Leider keine Reaktion auf Kanal 0, die anderen arbeiten einwandfrei - Bauteil getauscht und nun kommt auch was ordentliches raus.
Das passt erstmal, noch eine 9-pol SUB-D für die Schnittstelle anlöten, dann kann es im CP/M-Moppel in die nächsten Testrunde gehen ...
Serielle Schnittstelle Abschluß (11.12.2021)
Hierzu die Karte in den CP/M Moppel eingebaut und ein paar Programmzeilen später zeigte sich der 6850 etwas bockig, nach der Vertauschung von TX/RX am SubD-Stecker kamen die Bits nun sauber raus, im Empfangsmodus aber leider nicht aus dem Chip obwohl der Datenstrom an RX anlag, MC6850 getauscht und die Welt ist in Ordnung.
Auf der Karte ist nur der serielle Teil bestückt, Kassetteninterface und die Decodierung der LED's habe ich weggelassen - soll ja mit Floppy ausgestattet werden. Und entgegen der alten 25pol Steckerleiste ist eine gebräuchlichere 9pol angeschlossen, dadurch sind die weiteren Schnittstellen außen vor (20mA, Kassette und die diversen Aus- und Eingänge), kann ja bei Bedarf nachgerüstet werden.

Da bereits alle "Treiber-Routinen" für diese Karte fertig waren - CP/M BIOS - benötigten die beiden Testprogramme nur ein wenig Beiwerk für die Programmschleifen damit man sieht was er da so gerade werkelt...

Einfachheitshalber ist die "Entwicklung" mit der "8085 Simulator ID" mit Unterstützung vom Notepad++ entstanden. Dank der Übertragung per IntelHex über die schnelle RS232 auf der CF-Karte (115200Bd) ist jeder Zyklus ratz fatz erledigt.
So macht programmieren spass ;-))
(Quelldateien als ZIP)
So langsam schließt sich der Kreis, alle notwendigen Karten für den zukünftigen CP/M Betrieb sind soweit fertiggestellt, wie jedes Bild benötigt das Ganze noch einen schönen Rahmen...
19" Rahmen (15.12.2021)
… was auch sonst, am liebsten von Schroff oder Fischer, denn dort gibt es die große Auswahl an Gehäusen und Zubehör.
Hier muss ich aber mit den vorhandenen Teilen leben, die Rahmenkonstruktion und Befestigung der Frontplatten ist deutlich anders als bei Fischer oder Schroff - die 19-Zoll "Norm" ist wohl sehr weich und so kommt es zu unterschiedlichen Ausführungen, wichtig ist nur das die Außen- und Einbaumaße passen. In jedem Fall bekommt man damit einen ordentlichen mechanischen Aufbau hin - nicht so ein gehudel wie in der PC-Welt.

Durch die volle Breite passt alles gut hinein: ganz links das originale Netzteil, die V24 Karte, drei frei Plätze, im Anschluß die Video-Karte, gefolgt von den Beiden RAM-Karten, schließlich die CPU und das Floppy-Interface. So bleibt noch genügend Platz für die Floppy-Laufwerke, entweder 3,5" oder 5 1/4", je nach Geschmack. In den freien Plätzen passte dann noch die zweite V24-Karte und das Interface für die CF-Karte rein...

Damit er zum Leben erweckt werden kann braucht es entweder noch ein passenden Trafo für das Netzteil oder besser ein modernes Schaltnetzteil mit allen notwendigen Spannungen, damit können dann auch die Floppylaufwerke versorgt werden.
Stromversorgung (22.01.2022)
Hier habe ich mich für ein modernes Schaltnetzteil entschieden, erstens hätte der Trafo vom originalem Netzteil deutlich mehr Platz benötigt und der +12V-Zweig ist nur für ein paar 100mA ausgelegt, das reicht für die Floppylaufwerke nicht aus.
Der frei Steckplatz der Reglerplatine wird nun für den DC/DC-Wandler mit -12V und einem 3,6V LIPO-Akku nebst Ladeschaltung und Steckkontakte der Reset-Taste genutzt.
So fügt sich das Schaltnetzteil gut in dem 19"-Rahmen, für den Berührungsschutz wird die Leerplatine noch durch eine entsprechende Kunststoffplatte ersetzt und oben und unten noch ein passendes Lochgitter eingefügt.

Der erste Test mit CPU-Karte und HEX-Tastatur sind schon mal gut verlaufen - nun können die weitern Karten folgen...
Test bis hin zum CP/M (27.01.2022)
Da ja alle Karten schon mal angetestet waren sollte es eigentlich keine großen Überraschungen mehr geben - eigentlich.
Sobald das EPROM für die Floppyroutinen gesteckt war ging erstmal nichts, ab ins Nirawana, nochmals eine ordentliche Sichtprüfung - ohne Erfolg. Mit dem Oszi lag auf /CS ein undefiniertes Signal, sollte aber HI-Pegel haben, mit dem Piepser noch eine Brücke zwischen einer Datenleitung und /CS gefunden. Genau in der Durchführung zwischen zwei Pins an der IC-Fassung - hauchdünn, mit dem Lötkolben nachgebessert und gut ist. Hier zeigt sich die mangelhafte Qualität der nachgemachten Leiterplatten ohne Stopplack.

Die restlichen Platinen gesteckt und als Monitor einen "Taschenfernseher" angeschlossen, für die 40-Zeichen Darstellung reicht es. Da sich keine weiteren Fehler zeigten, 3,5" Diskettenlaufwerke provisorisch angeschlossen, funktionieren. Dann wird es nochmal spannend, läuft CP/M ?.
Hierzu musste erstmal die originale 5,25" Diskette ins 3,5" Format gebracht werden. Mein CP/M Moppel hat kein großes Laufwerk, Gehäuse zu klein. So war erstmal eine kleine Bastelstunde angesagt. Vor allem die ursprünglichen Systemspuren waren wichtig da mein CP/M-Moppel von CF-Karte startet und das BIOS mit dem originalen nichts mehr gemein haben.

Die Bastelarbeit war erfolgreich, BOOT-Vorgang wie in alten Tagen und ein "schnarch langsames" System steht bereit - ;-))
Es bleibt noch ein einiges zu tun, Diskettenlaufwerke benötigen noch etwas Halt, ein paar Frontplatten für die diversen Buchsen und eine passende Tastatur muss auch noch gefunden werden...
Floppy LW (18.02.2022)
… mit Einschub und Frontplatte haben sie einen sicheren Halt gefunden. Wenn schon mal die Fräse läuft gab es noch eine Frontplatte für die Tastatur- und V24-Buchsen, bis zur finalen Version erstmal aus ABS.

Damit man weiß was die Stunde geschlagen hat, noch eine Uhrenkarte aus dem Fundus gefischt, eingesteckt und läuft. Dank der Stützbatterie, die ja eigentlich ein LIPO-Akku s.o. ist, sollte sie für die nächsten Jahre korrekt gehen.
 
Damit ist die Hardware erstmal abgeschlossen - Zunächst muss Entschieden werden, ob es eine reine CP/M Maschine oder der "historische" Teil, mit Editor Assembler, Disassembler, Basic erhalten bleiben soll...
Ausblick
Softwareteil (20.02.2022)
ohne Software geht natürlich nix, hierzu etwas Historie und Philosophie …

Der Moppel bringt ja die komplette "Entwicklungsumgebung" wie Bildschirmeditor, Assembler, Promer und Diskettenlaufwerk als Massenspeicher mit. Damit hat man die komplette Klaviatur für die eigene Kreativität, natürlich auf dem Stand von Anno 85.

Das war damals soweit ok, lediglich das Problem alles auf der selben "Maschine" durchzuführen, mit einem Zweitrechner wie heute vorhanden ist das natürlich deutlich einfacher. Und durch die modernen Rechnerumgebungen bin ich sehr verwöhnt, im Editor nicht nur 24x80 Zeichen, füllt das heute eine DIN A4 Seite und das drum herum ist deutlich komfortabler.

Das ist dann so wie mit meiner "Olga" (Ural 650), sie fährt mit mir überall hin, um den Kirchturm oder bis nach Berlin, kein Problem aber eben beschaulich mit max. 80Sachen und immer schön die alte Technik immer im Blick.

Bei der Moppelwiederbelebung 2014 habe ich mich auf die Entwicklungsumgebung "8085 Simulator IDE" von OshonSoft eingeschossen. Vor allem weil da auch ein leistungsfähiger Disassembler dabei war um den Quellcode aus den EPROM's zu restaurieren, später kam dann der Notepad++ als komfortabler Editor hinzu. Erst als das Projekt immer umfangreicher wurde kam der Wunsch auf, wiederkehrende Programmteile in Module zu packen. Also umsteigen auf den TASM von Thomas N.Anderson, dieser läuft aber nur auf 32bit-Systemen. Da der Promer Galep III ebenfalls eine passende Umgebung benötigt, zog ein alter Laptop mit WinXP ins Bastelzimmer. So konnte der Datenaustausch mit 22Disk und dem 3,5" Laufwerk oder der V24 erfolgen. Soweit so gut.

Mit dem Einzug des ct180 und Prof180x musste ich mir was neues überlegen, Yaze hatte mittlerweile den Prototypen Status überwunden und bietet eine sehr leistungsfähigen CP/M+ Umgebung mit den alten bekannten M80, L80 MAC etc. warum nicht die Entwicklungsumgebung darauf umstellen - gedacht und gemacht, sieht dann so aus.
Der Notepad++ als Editor mit all seinen Vorzügen, ein paar kleine Batch-Dateien für den Transfer zwischen Windows und CP/M, Datenaustausch per IntelHex über die V24 und/oder per Netzwerk auf den XP-Rechner für den Promer - fertig.

So verbinden sich beide Welten recht gut, auf der einen Seite ein performantes System wo selbst das zusammenbauen von CP/M+ nur wenige Sekunden dauert und auf der anderen bleibe ich kompatible zur CP/M Welt.

Und wenn mich dann historische Gefühle überwältigen kommen die Quelldateien auf den Prof und lausche den Floppylaufwerken - wie in alten Zeiten.

Also ran ans Werk, die Quelldateien vom Monitor auf den M80 anpassen, er möchte keine Punkte vor org, db bzw. ds sehen und auch die „Include-Dateien“ funktionieren, wenn man denn die Namen GROSS schreibt ;-)
ECB-IDE (28.02.2022)
… erste Experimente mit der CF-Karte für den Moppel. Messer gewetzt und die /IE0-1 sowie BA0-1 aufgetrennt damit er nicht durcheinander kommt mit dem Zugriff auf den Bildschirmspeicher und /INT7.5, IO-Adresse, auf 68h umgestellt und die Quelle IDETOOL von Alfred entsprechend angepasst, NSC800-Modul wieder eingebaut und...
… funktioniert - ;-]]]

Nun muss das Programm noch auf 8080/85 getrimmt werde, da die Quellen für den Z80 geschrieben wurden - da ist Alfred aber schon dabei ...
… wenig später und schon fertig !

CPU wieder auf 8085 zurückgetauscht, nächster Test:

Alles schön, CF Karte (4MB) wird einwandfrei erkannt, lesen schreiben bzw. formartieren - alles wunderbar.

So steht der Einbindung ins BIOS nichts mehr im Wege -
Moppel mit HD/CF einfach klasse.

Dank an Alfred !
 
Stolpersteine (21.03.2022)
Der Aufbau ist etwas ins Stocken geraten, Ausfall der -12V, V24Karten laufen sehr unzuverlässig und ein paar Ungereimtheiten  
beim Softwarebau mit dem m80.
 
Der Reihe nach:
Spannungswandler auf der Netzteilkarte hat sein Leben ausgehaucht, die Ursache ist nicht so ganz geklärt da auf der  
V24Karten zeitgleich der Treiber sowie der Modusumschalter 74ls374 defekt waren.

Netzteilplatine mit LM2574 nach Datenblatt neu aufgebaut, damit ist die -12V erstmal gesichert.
Die genannten Bauteile auf der V24Karten gewechselt, ohne Erfolg. Uart (6850) profilaktisch getauscht, IO-Selektierung
mit einer kleinen Sequenz überprüft, ist OK. Daten-, Adressleitungen durchgeklingelt - kein Erfolg. Mit gezogenem UART  
die Datenleitungen über die "Wahlschalter" (74ls153) getestet - alles OK, trotzdem ist der Karte kein Bit zu entlocken.

Erstmal bei Seite gelegt...


Bei der Softwareanpassung mit dem gewähltem Workaround (Yaze, M80, L80) ergänzt der L80 die Com-Datei, sieht irgendwie  
wie ein Ladeprogramm oder so, kann man zwar vor dem Brennen mit nem HEX-Editor raus löschen ist aber sehr unschön.

Letzte Zeilen vom Monitorprogramm
                                 
  0BF7    0D                    si_msg: db 0dh ;
  0BF8    49 6E 74 65           db "Intel_Hex laden0"
  0BFC    6C 5F 48 65            
  0C00    78 20 6C 61            
  0C04    64 65 6E 30            
  0C08    00                    db 0h
                                ;
                                ;************************************                
                                 end
 


Batchdateien für den Datenaustausch Windows/Yaze:

RD.sub: Holt Datei(en) vom Windowsordner (mop5)
r mop5/$1

MK.sub: Quelldatei durch M80/L80 schieben
M80 =$1 /l
l80 /P:0000, $1,$1/N/E

WR.sub: Schreibt Datei(en) zurück zum Windowsordner (mop5)
w mop5/$1

Fehler liegt wahrscheinlich zwischen meinen Ohren - wenn da mal jemand eine IDEE hat.
und das kommt dabei raus
Neubau der V24-Karte
Da schon zu viele Stunden in die V24Karten geflossen sind muss ich mir eine andere Lösung einfallen lassen. Meine Vorgabe, mindestens eine V24 für die Datenübertragung, besser zwei damit die originale Tastatur entfallen kann. Tastaturen mit offener Matrix gibt es nicht mehr zu vertretbarem Preis und moderne darf man wegen den Plastikplatinen mit dem Lötkolben nicht zu nahe kommen.

Also Anbindung über eine Terminalemulation, ist ja auch für CP/M die optimale Lösung.

Hierzu wie oben geschrieben zwei UART-Bausteine, 6850 damit man kompatible zum Moppel bleibt. Dazu ein 8253 als Taktgeber und 1488/89 als Treiber, Max232 finde ich hier zu modern. Die auf der 87er V24Karten enthaltene Umschaltung für die verschiedenen Modi und das Kassetteninterface können entfallen, soweit der grobe Plan.
Erstmal den Schaltplan zeichnen und ein Häkelmuster zum testen bauen.

Da das Projekt IDE-CF-Karte so erfolgreich war, sollte dieses Vorhaben auch "in" einer schönen Platine enden...
Ein schönes Gehäuse (August/September 2022)
Der oben gewählte 19"Rahmen ist/war suboptimal, Kartenträger fallen immer wieder raus und die Frontplattenbefestigung nicht nach meinem Geschmack, halt kein Schroff oder Fischer. Im Fundus gab es noch ein schönes Gehäuse mit Tragegriff und eingebautem Monitor. War mal ein Werkstoffprüfgerät für Metall mittels Ultraschall oder so...
Das Gehäuse war gut gefüllt, bis auf Monitor und der verbaute HD64180 für die Bastelkiste alles zum Verwertungshof. Um mehr Tiefe zu bekommen ist Trennwand vom Akkufach der Fräse zum "Opfer" gefallen. Hier passt die originale Backplane vom Moppel vorzüglich rein. Leider ist die Höhe nicht ganz ausreichend für ein 19" Standardrahmen, also etwas getrickst. Die ABS-Platte übernimmt die untere Kartenführung, oben werden die Karten mit einer weiteren ABS-Platte geführt und mittels dünnem Schaumgummi und der Abschlussleiste sicher auf ihrem Platz gehalten. Nicht ganz perfekt aber so passen acht Moppel-Steckkarten rein.
Da der Zeilentraffo auf der alten Grundplatte integriert war musste hier ein entsprechender Cut gemacht werden damit er weiterhin funktionstüchtig bleibt. Die eigentliche Elektronik benötigt noch 10V Spannungsversorgung und das Videosignal nebst H- und V-Syn, diese waren recht einfach zu ermitteln.

Der erste Test mit den Signalen aus dem Moppel-5 brachte dann auch das entsprechende Bild auf dem Monitor.

Im 2.Test mit der Minimalbestückung CPU und Videokarte war auch alles im grünen Bereich, so konnten die restlichen Karten  einziehen, es bleibt noch ein Steckplatz z.B. für die zweite V24-Karte frei.

Der Platz reicht aber nur für ein Diskettenlaufwerk, hier soll dann die CF-Karte, Befestigung fehlt noch, den weiteren Massenspeicher abbilden. Unter CP/M läuft diese ja schon mal mit dem Testprogramm IDETOOL von Alfred, die Softwareanpassungen hebe ich mir für den Winter auf - sofern er denn überhaupt stattfindet bei diesem gefühlten ewig dauernden Sommer ...
Fortsetzung Gehäuse (17.11.2022)
Es ist fast Winter und wieder Moppel-Zeit.

Die CF-Karte benötigte noch etwas Halt, mit ein wenig Plaste einen Halter angepasst damit die Karte nicht so rum baumelt. Auf den Zugang von außen habe ich verzichtet - Ist halt eine "Festplatte"
Tastatur (30.11.2022)
Derzeit häng die Tastatur vom Moppel-2 dran, will ich aber nicht dauern umschrauben, also soll was eigenständiges dafür her.
Tastaturen mit offener Matrix sind schon sehr rar oder sprengen den Preisrahmen. Habe mir eine PS-2 mini Tastatur ausgesucht, sehr schön und kompakt "nur" die Schnittstelle ist nicht so ganz Moppelgerecht. In China einen PS2-RS232 Adapter bestellt, funktioniert leider nicht, Controller war nicht programmiert -grr - könnte man ja einfach draufpumpen wenn es ein AVR wäre - immerhin war die Tastaturbuchse noch brauchbar, Rest in die Tonne.

Nach vielen Recherchen das Projekt von Gerald Ebert gefunden, eigentlich für den NDR-NKC gedacht. Modul mit dem ATMega 168 aufgebaut und die Software dafür angepasst. Hierzu im Make-File MCU=atmega168, das Oszilloskop zeigt schon mal vielversprechende Signale. 9600 Baud sind für den Moppel ein wenig zu flott, in der usart.h einen neuen Eintrag für 1200Bd kreiert und in der ps2keyboard.c übernommen. Nun purzeln die Bits im gemächlichem Tempo und sollten den 8085 nicht übermäßig stressen. Denn dort wird das ganze mit den Ports SID als RX und SOD als RTS (Hardware-Handshace) empfangen werden, ohne UART, reine Softwarelösung. Das funktioniert ja beim Moppel-4 bis zu 2400Bd für das Intel-Hex Ladeprogramm einwandfrei.
Für den nächsten Test mit V24 Übertragung, das gleiche mit einem Arduino Pro-mini und MAX232 aufgebaut, am Terminal kommen die Daten wunderbar an.
Damit sind die Vorarbeiten erstmal abgeschlossen, nun muss erstmal die Software für diese Tastatur geschrieben werden...
Im Makefile habe ich die eingesetzte Hardware (atmega168) eingetragen. Ursprünglich war dort ein Mega48 eingesetzt.

In der PS2-usart.h ist der Eintrag für die Baudrate (1200Bd) hinzugefügt.

Der dann in der PS2-keyboard.c ausgewählt wird. Das CS-Signal wird über den PD3 generiert, hier als Key5-Ready bezeichnet.

Quelldateien für AVR-Studio-4
Hier die Änderungen an den Projektdateien:
Software für die Tastatur: (10.12.2022)
Wie oben beschrieben konnte ich die Routinen dem Intel-Hexlader vom Moppel-4 entnehmen, etwas anpassen und noch einen  Consolen Status dazu gebaut.

Im Oszillogramm (Auf V24-Seite abgenommen) wird im Kanal 1 das Zeichen "y" empfangen, zum Triggerzeitpunkt [T] wird das Start-Bit erkannt. Im Kanal 2 wird nach dem Stop-Bit RTS zurückgenommen und bedingt durch die Endlos Eingabeschleife sofort wieder freigegeben. Sieht auch auf dem Moppel erstmal schön aus.
Derzeit beträgt die Übertragungsrate 1200Bd, was ich für die Tastatur als völlig ausreichend ansehe.

Hier noch das Testprogramm
Tastatur im Dauertest: (11.01.2023)
Für den ersten Test habe ich sie im CP/M Moppel "geschraubt", hier kann sie zeigen ob alles richtig läuft. Da hier die besten Umgebungsvariablen zur Verfügung stehen, wie die schnelle V24 und CP/M auf CF-Karte. Damit ist der Workaround schnell und einfach zu realisieren.

Zudem steht auch noch die Implementierung am Moppel-5 aus, entweder wie jetzt mit der CPU-V24 oder eine eigene Schnittstellenkarte oder doch als parallele Schnittstelle.

Denn mit der Z80/NSC800-CPU steht die SID/SOD der CPU nicht zur Verfügung, somit kein Turbo Pascal.

Auch der Hardwareaufbau muss noch geklärt werden, das Experiment mit der IDE-Karte hat gezeigt das es auch mit einer professionellen Platine kein Hexenwerk ist. Wird sich alles mit der Zeit klären, solange macht sie erstmal hier ihren provisorischen Job.
IDE-Karte Software: (11.01.2023)
Für CP/M 3.0 im Prof180x ist die Karte bereits seit letztem Jahr fertig eingebunden und bietet dort 2 Laufwerke a 32MB, das soll  
natürlich auch im Moppel unter CP/M2.0 funktionieren. Die ersten Tests mit dem IDE-Tool von Alfred waren ja schon sehr  
vielversprechend, nun muss das Moppel BIOS entsprechend ergänzt werden. Es werden nur ein paar Routinen wie die  
Selektierung von Disk, Spur und Sektor sowie lesen, schreiben eines Sektors benötigt. Hier bietet es sich an, diese aus dem  
IDE-Tool zu nutzen, denn dort funktioniert ja bereits alles. Aber erstmal muss ich mir einen Überblick über die einzelnen  
Funktionen schaffen und alles auf dem Moppel abbilden.

Hierzu habe ich erstmal die Karte in mein "Arbeitspferd" (CP/M Moppel) gesteckt und mit der Initialisierung der CF-Karte  
angefangen:

main: lxi h,msg0 ; Startmeldung
call string ;
call onesec ;

CALL IDE_HARD_RESET ; Drive Reset
; call ide_init ; *derzeit Fehlerabbruch
;
jnz nohd ; IDE Busy
jmp ende ;

leider erkennt "ide_init" die Karte nicht obwohl sie unter CP/M mit dem IDE-Tool einwandfrei erkannt wird.

Hier stehen noch ein paar ??? über meinem Kopf, deshalb ist die Zeile erstmal aus kommentiert.

Dafür funktionieren die Schreib-,Leseroutinen schon mal einwandfrei, derzeit noch etwas umständlich mit dem händischem  
füllen des Buffers, sowie das setzen des LBA-Parameters aber grundsätzlich kann ich die CF-Karte lesen und beschreiben.
Im linkem Bild das ganze Sammelsurium an Karten, Adapter und einer echten Festplatte, mit 160GB für den Moppel völlig Overdressed ;-), diese funktioniert aber stabil im Gegensatz zu den verschiedenen CF-Adaptern, die zicken schon sehr rum. Bis hier eine Paarung mit Karte und Adapter gefunden ist vergehen schon mal ein paar Stunden.

Im zweitem Bild habe ich den Buffer mit E5h gefüllt und auf die Karte geschrieben, Buffer wieder gelöscht und mit dem READ-SECTOR wieder eingelesen. Soweit so schön ...
IDE-Karte Software die 2.: (20.01.2023)
Die oben ausgelösten IDE-Programmteile sind nun in dem Moppel Monitor (ab 2000h) untergebracht, denn Platz im 2k-EPROM war schon bei den CF-Routinen anno 2016 sehr knapp.

Habe erstmal die entbehrlichen Routinen entsorgt, dabei ist die Batchbearbeitung und das Formatieren entfallen und natürlich das CF-Programmteil. Es sind derzeit noch ca. 200Bytes frei - werden sicherlich noch ein paar Bytes für die Detailpflege benötigt...

Nun kann ich erstmal mit den Floppy/IDE-Routinen etwas Erfahrung sammeln, wie im Bild angedeutet: Speicherbereiche sichern und zurück laden, derzeit noch in den Moppelgrenzen; Einseitig mit max 80Spuren a 16 Sektoren mit jeweils 256Byte pro Sektor.

Für das BIOS muss nun die Anzahl der Spuren von Byte auf Word erweitert werden damit die CP/M2.0 Grenze von 8MB pro Laufwerk auch erreicht wird. Zeigt das derzeitige CP/M zwar an, aber in Wirklichkeit kann es nur 2MB (256 Spuren a 16 Sektoren mit jeweils 512Byte).

Schauen wir mal ob der Winter dafür lang genug ist...
IDE-Karte Software die 3.: (13.02.2023)
Das IDE-Softwaremodul funktioniert nun auch im BIOS, die Datenübergabe erfolgt hier
mit ein paar Speicherstellen
;
; Parameteruebergabe:
;
; datbuf = aktuelle Bufferadresse
;
; LBA = Sektor
; LBA+1 = Track lsb
; LBA+2 = Track msb
; LBA+3 = Head
;
Im Moppel gibt es nur SS mit 16Sektoren/Track, was das BDOS als 32 Records  
berücksichtigt. Die Anzahl der Tracks sind auf 16Bit umgestellt damit 8MB verwaltet  
werden können. LBA+3 ist hier immer 0.  
Das BDOS tauscht die Daten im 128Byte-Happen nur über dem internen 1kByte  
großem Buffer aus. Hierdurch ist der Transfer zwischen IDE und Buffer recht einfach  
gestrickt - 2Sektoren lesen/schreiben fertig. Bei den Diskettenroutinen schiebt er auch  
nur vier Sektoren über den Buffer, muss aber die 16Sek/Track am Spurende noch  
berücksichtigen.
Software Stand 18.02.2023
IDE-Modul
Jetzt steht noch ein umfangreicher Test mit mehr als 80, bzw 256Track aus, denn bisher ist mein Fehler mit den 8bit Tracknummern noch nicht untergekommen die 2MB überschritten habe...
Fortschritte: (23.02.2023)
Bei den V24 Karten gab es nochmals zwei Hürden, bei einer war der V24 Treiberbaustein defekt. Ursache lag in der Verdrahtung zum 9pol Sub-D Stecker, RTS mit CTS vertauscht - Sender gegen Sender, der klügere gibt nach. bei der zweiten hatte der UART 6850 Leseprobleme, es lag noch was in der Schublade.

Nun funktionieren beide einwandfrei mit bis zu 9600Bd. Damit ist der Moppel im Vollausbau, mehr geht einfach nicht hinein. BIOS noch etwas aufgeräumt, fehlt noch der BOOT von IDE/CF-Karte und ein paar Monitorroutinen (FDC mit IDE).

Nun soll noch das PS/2 interface in Form gebracht werden, erste Schritte per Eagle das Layout in SMD sind vielversprechend. Soll ja alles in einem 25pol Sub-D Steckergehäuse passen, so kann es direkt auf die CPU-Karte gesteckt werden. Da der Moppel-2 auch noch ohne Tastatur ist, lohnt sich der Aufwand - hoffentlich.
BIOS - Final als ZIP-Datei
Stand: 23.02.2023
3. Schritt zum PS/2 Interface: (25.02.2023)
Hier sieht man die drei "Entwicklungsstufen", ganz links der geradeaus Entwurf mit dem Atmega 168 als TTL Version. In der Mitte auf meiner Allroundplattform mit Stromversorgung, V24 Treiber usw.

Der dritte im Bunde sollte näher an der Zielhardware in einem 25pol SUB-D Gehäuse. Hierzu ein Arduino-Pro-Mini plus MAX-232 Modul bei dem die 9pol Sub-D Buchse entfernt wurde. So passt das Ganze Knapp ins Gehäuse.

Schließlich soll alles als SUB-D Steckmodul an der CPU-Karte aufgesteckt werden.

Der PS/2 Anschluss muss nochmals überdacht werden, einfach zu groß. Auf den Programmieranschluss kann ich bei dem Atmega in SMD nicht verzichten da das Programm ja irgendwie hinein muss. Das gleiche trifft auch auf den Quarz zu, denn im Roh-Zustand kennt er den internen Oszillator ja noch nicht. Dieser ist im Betrieb dann  nicht mehr erforderlich und könnte entfallen - z.B. Steckbar.
4. Schritt zum PS/2 Interface: (28.03.2023)
Der 25pol D-Sub und der PS/2 Stecker sind entfallen, so passt alles ins Modulgehäuse. Die Kontaktierung erfolgt mit Einzeldrähten bzw. mit einer Kabelpeitsche, das macht das Interface deutlich flexibler z.B. mit bestücktem V24Wandler und D-SUB für den Moppel-5 oder als parallel Interface auf einen Centronics Stecker. Dabei kann der MAX232 entfallen und der Quarz über die Lötbrücken abgekoppelt werden.

Nun, warte ich mal auf die Platinen aus China...
5. Schritt zum PS/2 Interface: (07.04.2023)
...und schon da. Bauteile aus einem V24Wandler geliehen und aufgebaut. Die Make-Datei auf Mega48 umgestellt, klappt nicht ???.
Signale mit dem Prototype vergleichen, mit Lupe nach Kurzschlüssen abgesucht, kein Erfolg - Nacht drüber geschlafen. Ganz einfach nur der Haken [CKDIV8] gelöscht.

Im Layout gibt es noch etwas Verbesserungspotential:
Gehäuse für den MAX232 falsch gewählt, war mit Fädeldraht kein Problem, die Bauteilbestellung wird's richten. Pats für die beiden Widerstände etwas zu klein, sowie
C9 einmal umdrehen damit die Leiterbahn schöner verläuft.

Das ist halt der Nachteil wenn Schaltbild und Footprint fest verknüpft sind, da geht schon mal die Übersicht verloren. Ich wollte aber nicht auf den Autorouter von Eagle verzichten. Eine Kröte muss man halt schlucken...

Alles nur Kleinigkeiten die der Funktion nicht im Wege stehen.

Das Ganze noch ins Modulgehäuse packen und weiter geht's mit der Monitor- bzw. CP/M Software.

Hier kann ich noch gewaltig aufräumen, bei der Auslagerung von Floppy und IDE-Routinen ins Monitorprogramm kann dann das BIOS von EA00h auf F000h geschoben werden. Der Datentransfer beträgt immer 1kByte mit dem Buffer, so fällt die Bankumschaltung nicht ins Gewicht.

Nächstes Verbesserungspotential liegt bei den Zeichen Ein-Ausgabegeräten, denn hier wird für jedes Zeichen das IO-Byte abgefragt um dann über die Tabelle das entsprechende Gerät "anzufunken"...
Layout-Dateien V4 28.03.2023
PS2-Moppel-V4-Eagle Dateien
Software Integration Vx.6: (01.08.2023)
Der letzte Zugang (Moppel-6) hat die "neuste" Software mit allen Quellen in meine Sammlung gespült.

Der original Moppel-Assembler hatte nur einen begrenzen Raum von 32kB zur Verfügung, wovon noch 4k für die Symboltabelle und 4k Objektcode abgehen, so musste der Quellcode in Segmenten aufgeteilt werden um den ca. 60k Quellcode zu bearbeiten.

Dies geht heutzutage mit unseren modernen Möglichkeiten deutlich einfacher, also Elemente zusammenfügen, die doppelten Symbole löschen - jedes globale Sysmbol war natürlich in jedem Segment enthalten - siehe oben. Schließlich noch die Besonderheiten vom Moppel-Assembler auf die neue Umgebung anpassen, Einleitung der Bemerkungen von Sternchen in Semikolon wandeln, hinter jedem Label erwarten die neuen Tools mindestens ein Leerzeichen und 8080/85 Code darf nicht in der ersten Spalte stehen auch sind Minuszeichen in Labels verboten, denn die neuen können auch rechnen. Nach ein paar Assemblerläufen waren alle Fehler beseitigt sein. Abschließend noch ein Vergleich mit den originalen EPROM's gibt letzte Sicherheit ob alles richtig zusammengebaut wurde.
Zunächst braucht das BIOS V12.6 noch die IDE-Erweiterung und das Doppelseitige Format ist noch zu ergründet. Dafür müssen die Tools, wie Assembler, Editor, Promer und Basic noch warten bis wieder Zeit übrig ist...
Monitor Vx6 Quellcode
BIOS V12.6 Quellcode
BIOS V23.2.04 Quellen
Für die ersten Versuche schon mal den neuen Monitor mit meinem Moppel-5 Bios verquickt, Hauptmenü sieht sehr übersichtlich aus, von dort verzweigt man in die verschiedenen Rubriken. WordStar findet nun eine Terminal Emulation und die IDE-Routinennoch laufen, siehe Bilder  - alles schön.
BIOS V12.62 mit IDE Quellcode
19.08.2023 das neue Moppel Diskettenformat

Das "Geheimnis" mit der 2.Seite ist gelüftet, damit stehen ca.700kB pro Diskette zur Verfügung. Um alles recht einfach umzusetzen werden weiterhin 16Sektoren a.256Byte pro Spur  gelesen bzw. geschrieben.

Bei anderen Sektorgrößen müsste das Blocking/Deblocking entsprechend angepasst werden, denn hier werden die gewünschten (vom BDOS) Records auf dem Datenbuffer (1kB) abgebildet. Die Erweiterung zählt die Spuren lediglich am Ende von max. Track 40/50 wieder rückwärts und mit gesetztem Side bit.

Die Laufwerksparameter, sowie die entsprechenden DPB stehen nicht direkt im BIOS, sondern werden vom Bootloader aus der Systemspur (Tr.0, Sec.4) beim Kaltstart ins BIOS geladen.

Auszug aus dem Bootloader:
;
; Drive Parameter
; Bedeutung pro Laufwerk
;
; D0 = Typ (00=40Tr/1k; 01=80Tr/2k, 02=2x80Tr/2k, 03=2x80Tr/4k
; D1 = Step (00=6ms, 08=12ms, 10=20ms,18=30ms)
; D2 = Side (00=ein, 01=zwei Schreib/Lese-Koepfe)
; D3 = Tracks (Spuren pro Seite, max 4Fh=79d)
;

Hierzu gehören auch noch die passenden DPB, Sektortabellen und diverse Voreinstellungen. Details stehen in den Quellen vom Bootloader.

Die IDE-Erweiterung ist ebenfalls eingebaut und kann als Laufwerk D mit 8MB genutzt werden.

Nun ist erstmal fröhliches Testen angesagt...