Frei nach Pippi Langstrumpf: Zwei mal drei macht vier ... und drei macht neun!
Ich finde ja, dass 8 Bit völlig genügen, um Chaos im Leben anzurichten oder auch ein wenig Ordnung in das Leben zu bringen. Kommt immer drauf an auf welcher Seite man sich gerade befindet....
Aber eines hat diese solide und erfahrende Technik ja immer: Rechenoperationen sind schon eine kleine Herausforderung. Zumal man von der heutigen Technologie schon ein klein wenig verwöhnt ist. Denn gerade in der Zahlenwelt hört die Welt nach 8 Bit nicht einfach auf zu existieren.
Aber da war doch mal was mit Co-Prozessoren für die 8086/8088-Welt die man (für damals sauviel Geld) nachrüsten konnte. Die eine oder andere Software setzte auch einen solchen Prozessor voraus, allen voran AutoCAD. Aber auch da gab es bereits Softwarelösung mit dem 8087-Emulator wenn man sich keinen Co-Prozessor leisten konnte.
In einem alten Siemens Schaltungsbuch bin ich dann beim Schmökern auf einen SAB8231 gestoßen. Nach ein paar weiteren Recherchen, vor allem im S100-Umfeld (CompuPro) und auch einer Apple II-Erweiterungskarte, fand ich ein paar Schaltungsideen und Anregungen, woraus dann eine fragwürdige Idee entstand: würde sowas auch für den MFA funktionieren?
Denn bei Rechenoperationen ist das MAT als auch das SP1-Basic bzw. dessen Tiny-Basic-Unterbau auf reine 16 Bit Integer beschränkt. Routinen für Fließkommazahlen gibt es für verschiedene 8-Bit-Prozessoren zwar auch, doch viele diese Bibliotheken sind schon tief in der Ecke "aufwändig" verwurzelt.
OK, Idee ist im Kopf platziert, dann kann es ja mal los gehen ... ein paar Tage immer wieder mal drüber nachdenken, den einen oder anderen Schaltplan überfliegen und weiter an der Idee brüten. Doch ein Problem bleibt: erst mal einen 8231 bekommen, denn die klassischen Dealer haben das Zeug nicht mehr im Portfolio. Bleibt also nur noch Ebay. Uhps, nicht so richtig günstig, aber was soll's, der Spaß ist es wert.
Nach ein paar Wochen lag nun dieser unscheinbare Chip aus den USA auf dem Tisch und die eine oder andere Doku daneben.
Das ganze erst mal dekorativ auf das Breadboard gesteckt und mit einer Hand voll Drahtbrücken zu einem kleinen Chaoskunstwerk verfeinert.
Nachdem nun dieser Kabelverhau vollendet war, einmal drüber schauen, um eventuelle Fehler auszuschließen. Bei diesem Teil wird immerhin mit 5V und 12V gearbeitet. Fehlerhafte Leitungsverbindungen machen sich da echt nicht gut.
Nun noch die Anschlüsse an den MFA legen, und los gehts. Einschalten... es raucht nichts und der MFA verhält sich normal. Auch das Osszi hat keine größeren Einwände bei den einzelnen Signalen, alles so oder so ähnlich wie erwartet.
In der Doku war nun eine kleine Routine mit Testbefehlen um die Zahl PI aus diesem kleinen haufen Silzim im Keramikmantel zu locken:
$1A auf den Steuerport geben und den Datenport auslesen: $02 $C9 $0F $DA
Wow, das Teil scheint zu funktionieren. Gleich die nächste Testroutine ausprobieren.
Zwei Werte in den Datenstack geben und die gewünschte Operation ins Steuerregister:
Datenstack ausgelesen und wer hätte es gedacht: $30 und $40 macht ziemlich genau $70
Der Prototyp scheint ja offensichtlich (wieder erwarten) zu funktionieren, denn insgeheim habe ich mit einer aufwändigen Fehlersuche gerechnet... Aufgrund des ersten Schaltungsentwurfes ging es nun direkt an die Leiterplatte und noch die eine oder andere Erweiterung des Schaltungsentwurfes. Eine Anzeige der abgeschlossenen Rechenoperation wäre doch auch nicht schlecht.
Das ist nun aktuell der Stand der Entwicklung:
So sieht aktuell die dazu passende Leiterplatte aus:
Was auch immer zu dieser durchgeknallten Idee führte, sie scheint zu funktionieren und könnte den MFA zu einem unerwarteten Leistungsschub verhelfen. Denn neben den relativ einfach anzuwendenden Rechenoperation im 32Bit Integer- oder Floatpoint-Umfeld des CoProzessors 8231, sehen die bisher gefundenen Unterroutinen und Bibliotheken aus dem 8085-Umfeld doch echt alt (und langsam) aus. Eventuell kann man die FPU-Karte ja auch im CP/M-Umfeld einsetzen, aber meine rudimentäre CP/M-Kenntnisse von damals sind mittlerweile leider völlig veraltet.
Kurzer Schaltungsüberblick:
- Adressselektion auf 7 Bit
- Ready-Leitung mit Germaniumdiode an den MFA-Bus (zur gleichzeitigen Nutzung mit BUS-Signalgeber und Floppy-Baugruppe), derzeit noch ungetestet
- LED-Anzeige des Ready-Signals beim Ende einer Rechenoperation (löschen beim nächsten Steuerbefehl bzw. Reset)
- Interrupt bei Ende einer Rechenoperation (derzeit noch ungetestet)
Die Karte wird nun noch ein wenig verfeinert und mit einer Spannugswandler-Platine und separaten Taktgenerator erweitert. Denn langfristig will ich für einen meiner MFA's von den drei verschiedenen Spannungen weg und auf reine 5V umstellen. Denn die nächste durchgeknallte Idee ist schon am entstehen....
Ich vermute mal, dass die Platine in den Tagen einen Prototyp-Stand hat den ich dann auch mal fertigen lasse. Sofern jemand Interesse hat, dann gerne entsprechende Info. Allerdings ist die Platine dann noch definitiv ungetestet.