der dunkle Hive...
Re: der dunkle Hive...
übrigens...
der Aufbau so einer Kiste macht ja erfahrungsgemäß viel Spass, spätestens wenn das Dingens dann fertig ist kommt die Stunde wo man sich fragt: "Was fang ich jetzt eigentlich damit an?". Oft ist die eigene Antwort (auch bei mir) ein Schulterzucken: "keine Ahnung". Und dann gehts auf zum nächsten Löt-Projekt und das Ding verstaubt irgendwo in der Ecke.
Das schöne an CP/M ist, dass es massenhaft Programme zum Ausprobieren gibt. Auf dem Image dass Du installiert hast ist auf der Systemdisk u.A. MBASIC drauf. Basic kann vermutlich fast jeder hier, spezifisch zu dem MBASIC unter CP/M sind ev. folgende Tips hilfreich:
* mit dem Kommando system kommt man zurück zum CP/M
* mit files kann man das Dateiverzeichnis anzeigen
* bei save und load den Dateinamen unbedingt in Grossbuchstaben eintippen! Das ist eine Merkwürdigkeit der MS Implementation von Basic unter CP/M, findet man einige Diskussionen in Internet-Foren dazu...
* um einen Basic-Quelltext vom Terminal per Copy/Paste ins MBASIC zu bringen muss die Übertragungsgeschwindigkeit eingedrosselt werden, damit der Interpreter genug Zeit hat, die Zeilen zu parsen. In Tera Term geht das beispielsweise über Setup / Serial Port, siehe Screenshot.
Im Verzeichnis BASIC_programs des Google Drives hab ich paar Basic Quelltexte als Textdateien für diesen Fall abgelegt, z.B. Eliza und Super Star Trek. Viel Spass beim Ausprobieren!
der Aufbau so einer Kiste macht ja erfahrungsgemäß viel Spass, spätestens wenn das Dingens dann fertig ist kommt die Stunde wo man sich fragt: "Was fang ich jetzt eigentlich damit an?". Oft ist die eigene Antwort (auch bei mir) ein Schulterzucken: "keine Ahnung". Und dann gehts auf zum nächsten Löt-Projekt und das Ding verstaubt irgendwo in der Ecke.
Das schöne an CP/M ist, dass es massenhaft Programme zum Ausprobieren gibt. Auf dem Image dass Du installiert hast ist auf der Systemdisk u.A. MBASIC drauf. Basic kann vermutlich fast jeder hier, spezifisch zu dem MBASIC unter CP/M sind ev. folgende Tips hilfreich:
* mit dem Kommando system kommt man zurück zum CP/M
* mit files kann man das Dateiverzeichnis anzeigen
* bei save und load den Dateinamen unbedingt in Grossbuchstaben eintippen! Das ist eine Merkwürdigkeit der MS Implementation von Basic unter CP/M, findet man einige Diskussionen in Internet-Foren dazu...
* um einen Basic-Quelltext vom Terminal per Copy/Paste ins MBASIC zu bringen muss die Übertragungsgeschwindigkeit eingedrosselt werden, damit der Interpreter genug Zeit hat, die Zeilen zu parsen. In Tera Term geht das beispielsweise über Setup / Serial Port, siehe Screenshot.
Im Verzeichnis BASIC_programs des Google Drives hab ich paar Basic Quelltexte als Textdateien für diesen Fall abgelegt, z.B. Eliza und Super Star Trek. Viel Spass beim Ausprobieren!
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
-
- Beiträge: 18
- Registriert: Mi 27. Mär 2013, 12:05
Re: der dunkle Hive...
Hallo Micha,
ein sehr schönes CP/M-Projekt!
Ich hätte große Lust mich am Nachbau zu beteiligen und dein Projekt mit unserem AVR-CP/M Projekt zu „verheiraten“. Dazu würde ich zunächst unser VT-100 Terminal integrieren. Gibt es noch eine Leiterplatte für dein System oder gestalten wir gleich eine neue mit integriertem VT-100? Oder noch ganz andere Ideen?
ein sehr schönes CP/M-Projekt!
Ich hätte große Lust mich am Nachbau zu beteiligen und dein Projekt mit unserem AVR-CP/M Projekt zu „verheiraten“. Dazu würde ich zunächst unser VT-100 Terminal integrieren. Gibt es noch eine Leiterplatte für dein System oder gestalten wir gleich eine neue mit integriertem VT-100? Oder noch ganz andere Ideen?
Re: der dunkle Hive...
Hallo Feinmechaniker,
die Kiste "so wie sie ist" hat auf jeden Fall ihre Grenzen und Schwächen. Das Projekt kam ursprünglich aus der Idee heraus ins Rollen, dass ich die Verwendung von Eproms für die Entwicklung eines Z80-artigen Computers doof fand - also den Entwicklungszyklus brennen - testen - löschen brennen - testen - löschen ...
Da kam dann irgendwann der Atmega als Busmaster ins Spiel, der den Ram des Z180 verwalten kann.
Was die I/O des Z180 angeht hab ich dann aber alles auf das absolute Minimum beschränkt. Du hast schon recht - ein Direktanschluss von Bildschirm + Terminal wäre nett, eventuell zusätzlich auch ein Wechselmedium (Diskette?) mit dem man direkt Dateien mit anderen CP/M Systemen austauschen kann. Den Bus hab ich auch aus Platzgründen nicht nach draussen geführt. Wär auch ganz nett.
Ich hab irgendwann für mich beschlossen, das Projekt als ein "2013" Projekt an einem gewissen Stand abzuschliessen. Momentan gönne ich mir diesbezüglich eine Kreativ-Pause, denke aber ich werde Mitte 2014 anfangen eine neue Variante zu entwerfen die mehr kann. Die naheliegendste Lösung, einen Propeller als VT100 Emu einzubinden ist mir momentan nicht wirklich sympathisch. Z180+Atmega+Propeller in einem System ist irgendwie zu quer durch den Gemüsegarten. Aber vielleicht freunde ich mich doch noch mit der Idee an, falls mir nix besseres einfällt.
Eine Platine für den CPMputer hab ich übrigens noch übrig.
die Kiste "so wie sie ist" hat auf jeden Fall ihre Grenzen und Schwächen. Das Projekt kam ursprünglich aus der Idee heraus ins Rollen, dass ich die Verwendung von Eproms für die Entwicklung eines Z80-artigen Computers doof fand - also den Entwicklungszyklus brennen - testen - löschen brennen - testen - löschen ...
Da kam dann irgendwann der Atmega als Busmaster ins Spiel, der den Ram des Z180 verwalten kann.
Was die I/O des Z180 angeht hab ich dann aber alles auf das absolute Minimum beschränkt. Du hast schon recht - ein Direktanschluss von Bildschirm + Terminal wäre nett, eventuell zusätzlich auch ein Wechselmedium (Diskette?) mit dem man direkt Dateien mit anderen CP/M Systemen austauschen kann. Den Bus hab ich auch aus Platzgründen nicht nach draussen geführt. Wär auch ganz nett.
Ich hab irgendwann für mich beschlossen, das Projekt als ein "2013" Projekt an einem gewissen Stand abzuschliessen. Momentan gönne ich mir diesbezüglich eine Kreativ-Pause, denke aber ich werde Mitte 2014 anfangen eine neue Variante zu entwerfen die mehr kann. Die naheliegendste Lösung, einen Propeller als VT100 Emu einzubinden ist mir momentan nicht wirklich sympathisch. Z180+Atmega+Propeller in einem System ist irgendwie zu quer durch den Gemüsegarten. Aber vielleicht freunde ich mich doch noch mit der Idee an, falls mir nix besseres einfällt.
Eine Platine für den CPMputer hab ich übrigens noch übrig.
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
-
- Beiträge: 18
- Registriert: Mi 27. Mär 2013, 12:05
Re: der dunkle Hive...
Hallo Micha,
vielen Dank für die Unterlagen! Zur Platine habe ich dir eine PN geschrieben. Nach Sichtung deiner Schaltungen zur Busübernahme (geniale Lösungen) einige kleine Anmerkungen für mögliche Erweiterungen.
* A0-A7 mit A8-A15 am Latch tauschen. Damit könnte der AVR bei /SDREQ die unteren 8 Adressbits der Z180 CPU-Ausgabe direkt lesen.
* für /SDREQ A7 und /IOREQ verwenden. Damit hätte man für OUT() alle Adressen ab 80H.
* Am AVR Port PC mit PD tauschen. Der Interrupt muss dann zwar als Pin Change Interrupt ausgeführt werden doch der I2C Bus wird frei. Hier könnte dann ein RTC oder ein Busexpander angeschlossen werden.
Gruß Joe
vielen Dank für die Unterlagen! Zur Platine habe ich dir eine PN geschrieben. Nach Sichtung deiner Schaltungen zur Busübernahme (geniale Lösungen) einige kleine Anmerkungen für mögliche Erweiterungen.
* A0-A7 mit A8-A15 am Latch tauschen. Damit könnte der AVR bei /SDREQ die unteren 8 Adressbits der Z180 CPU-Ausgabe direkt lesen.
* für /SDREQ A7 und /IOREQ verwenden. Damit hätte man für OUT() alle Adressen ab 80H.
* Am AVR Port PC mit PD tauschen. Der Interrupt muss dann zwar als Pin Change Interrupt ausgeführt werden doch der I2C Bus wird frei. Hier könnte dann ein RTC oder ein Busexpander angeschlossen werden.
Gruß Joe
An manchen Tagen geht einfach alles schief...
Rechtzeitig vor Garitz wollte ich wenigstens noch ein ordentliches Adapterkabel zur Verbindung Hive <--> CPMputer zusammenlöten. Gesagt getan - also hab ich am Sonntag so ein Kabelstück zurechtgemacht, den Mini-DIN-Stecker drangelötet und verkapselt, dann einen männlichen D-Sub9 am anderen Ende dran, dann durchzuckte mich der Gedanke - ob wohl die Kabellänge reicht???
Also gleich probiert - ohne Gehäuse um den D-Sub9 ging's gerade so, mit wär es zu kurz gewesen. AAAARGG!!! Sah häßlich aus. Ich hab dann trotzdem erst mal getestet - zumindest funktionierte das Kabel.
Montag abend kam ich irgendwann zu der Erkenntnis, dass ich es nicht bei diesem zusammengestümperten Kabel belassen wollte. Also alles noch mal auseinander und neu basteln. Die ersten Schwierigkeiten kamen bei dem Mini-DIN. Der hat so eine äußere Hülse die auf Kraftschluss sitzt. Zuerst mal vorsichtig dran gezogen - nix Bewegung! Dann etwas kräftiger gezogen, dann vorsichtig die Metallhülle vorn mit einer Kombizange umfasst und gezogen, dann kräftiger, noch mehr... als die Hülle sich dann endlich löste, waren die Metallschalen vorn total verbogen. Na gut, die konnte ich dann mit einer Zange vorsichtig wieder in Form bringen.
Hab dann ein längeres Kabel genommen, an einem Ende wieder den DIN-Stecker dran, am anderen Ende den D-Sub9, und dann... ähm... ÄRGERN!!!! Hätte ja vorher die Hülse für den DIN-Stecker auf das Kabel fädeln müssen! Die ging jetzt weder von vorn noch von hinten mehr drauf. Also den D-Sub9 wieder abgelötet, die Hülse für den Mini-DIN aufgezogen, den D-Sub9 wieder angelötet.
Aufgeatmet: endlich alles richtig gemacht!
Oder doch nicht ganz?
Stimmt - doch nicht ganz: als ich die Schalen auf den D-Sub9 draufschrauben wollte ging das nicht. Hatte wohl aus der Bastelkiste einen Stecker mit einem Formfaktor gegriffen der für Gehäuseeinbau vorgesehen war. Also den D-Sub9 nochmal ab, zum Glück hatte ich noch einen anderen da. Danach war das Kabel dann ENDLICH fertig - ich hab drei Kreuze gemacht. Soviel Aufklapp wegen so eines simplen Adapterkabels!
Und die Moral von der Geschicht':
1) Kabellängen immer genau prüfen - berüchtigter Spruch: "Dreimal abgeschnitten und immer noch zu kurz...".
2) vor dem Zusammenbau kritischer Teile die Reihenfolge in aller Ruhe durchchecken (vergessen die Überwurfhülse vorher aufs Kabel zu stecken)
3) Der Mini-DIN Stecker ist Murks!!! Ich werde niemals nicht eine meiner selbst entworfenen Kisten mit so nem Müll ausrüsten.
Also gleich probiert - ohne Gehäuse um den D-Sub9 ging's gerade so, mit wär es zu kurz gewesen. AAAARGG!!! Sah häßlich aus. Ich hab dann trotzdem erst mal getestet - zumindest funktionierte das Kabel.
Montag abend kam ich irgendwann zu der Erkenntnis, dass ich es nicht bei diesem zusammengestümperten Kabel belassen wollte. Also alles noch mal auseinander und neu basteln. Die ersten Schwierigkeiten kamen bei dem Mini-DIN. Der hat so eine äußere Hülse die auf Kraftschluss sitzt. Zuerst mal vorsichtig dran gezogen - nix Bewegung! Dann etwas kräftiger gezogen, dann vorsichtig die Metallhülle vorn mit einer Kombizange umfasst und gezogen, dann kräftiger, noch mehr... als die Hülle sich dann endlich löste, waren die Metallschalen vorn total verbogen. Na gut, die konnte ich dann mit einer Zange vorsichtig wieder in Form bringen.
Hab dann ein längeres Kabel genommen, an einem Ende wieder den DIN-Stecker dran, am anderen Ende den D-Sub9, und dann... ähm... ÄRGERN!!!! Hätte ja vorher die Hülse für den DIN-Stecker auf das Kabel fädeln müssen! Die ging jetzt weder von vorn noch von hinten mehr drauf. Also den D-Sub9 wieder abgelötet, die Hülse für den Mini-DIN aufgezogen, den D-Sub9 wieder angelötet.
Aufgeatmet: endlich alles richtig gemacht!
Oder doch nicht ganz?
Stimmt - doch nicht ganz: als ich die Schalen auf den D-Sub9 draufschrauben wollte ging das nicht. Hatte wohl aus der Bastelkiste einen Stecker mit einem Formfaktor gegriffen der für Gehäuseeinbau vorgesehen war. Also den D-Sub9 nochmal ab, zum Glück hatte ich noch einen anderen da. Danach war das Kabel dann ENDLICH fertig - ich hab drei Kreuze gemacht. Soviel Aufklapp wegen so eines simplen Adapterkabels!
Und die Moral von der Geschicht':
1) Kabellängen immer genau prüfen - berüchtigter Spruch: "Dreimal abgeschnitten und immer noch zu kurz...".
2) vor dem Zusammenbau kritischer Teile die Reihenfolge in aller Ruhe durchchecken (vergessen die Überwurfhülse vorher aufs Kabel zu stecken)
3) Der Mini-DIN Stecker ist Murks!!! Ich werde niemals nicht eine meiner selbst entworfenen Kisten mit so nem Müll ausrüsten.
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
Re: der dunkle Hive...
Das kommt mir aber sowas von bekannt vor, ich kann mit Dir mitfühlen. Mit diesen Steckern geht mir das regelmässig so.Micha hat geschrieben:.. ähm... ÄRGERN!!!! Hätte ja vorher die Hülse für den DIN-Stecker auf das Kabel fädeln müssen! Die ging jetzt weder von vorn noch von hinten mehr drauf. Also den D-Sub9 wieder abgelötet, die Hülse für den Mini-DIN aufgezogen, den D-Sub9 wieder angelötet.
![Streicheln :EIEI](./images/smilies/smilie_tra_149.gif)
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: der dunkle Hive...
![Lachen :LACHEN](./images/smilies/smilie_girl_101.gif)
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Re: der dunkle Hive...
reiche hiermit mal noch die Beschaltung nach. Die ist zwar minimalistisch, aber gerade bei Interface-Kabeln hab ich mich schon manchmal krumm geärgert weil es immer wieder Missverständnisse gibt, wie herum das mit den Pins gemeint war. Und ja - ich weiss: Stecker, männlich ist eine Tautologie, so wie ein weisser Schimmel. Hab mich eben bemüht die Beschreibung eindeutig zu machen, notfalls ein-eindeutig ![Zwinkern ;-)](./images/smilies/icon_e_wink.gif)
Auf meiner Skizze entspricht die Anordnung der Pins dem Blick von der Rückseite (Lötseite) auf die Stecker.
![Zwinkern ;-)](./images/smilies/icon_e_wink.gif)
Auf meiner Skizze entspricht die Anordnung der Pins dem Blick von der Rückseite (Lötseite) auf die Stecker.
- Dateianhänge
-
- Hostkabel zum Hive.pdf
- (13.89 KiB) 584-mal heruntergeladen
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
Re: der dunkle Hive...
wie hiess es doch früher so schön im Volksmund: "Marx ist die Theorie und Murks ist die Praxis".
Seit letztem WE hab ich mich der Aufgabe gestellt, die SD-Card Anbindung des CPMputers von Direktzugriff auf FAT umzustellen, um die Verwaltung der CP/M Disks mit dem PC zu vereinfachen. Die letzten drei Tage kämpfe ich mit der Umsetzung. Wo eine Direktverwendung der SD-Card bisher robust funktioniert hat (die viel-geschmähte Bibliothek von Ulrich Radig) hatte ich die letzten Tage mit FAT nur Ärger. Anfangserfolge gab es durchaus, also ich hab schon mal erfolgreich CP/M aus einer Datei unter FAT gebootet. Die letzten drei Tage hab ich immer nur auf den Feierabend gewartet um *endlich* weiter experimentieren zu können. Die Ergebnisse waren immer wieder uneindeutig: mal ging es, mal ging garnichts. Ein Verhalten wie man es kennt wenn ein Signal floated.
Inzwischen glaub ich nahe an einer Erklärung dran zu sein: die verwendete FAT Bibliothek (von Daniel R., auf mikrocontroller.net veröffentlicht) hat vermutlich *irgendwo* im Code einen Maskierungsfehler beim Schalten der Bits auf In/Out. Beim CPMputer wird ja PB3 als Output-Pin dafür verwendet, die serielle Schnittstelle entweder dem Atmel oder dem Z180 zuzuteilen. Und da geht irgendwas schief, PB3 ist plötzlich Input, der Draht auf undefiniertem Level und die Leitung zum Terminal ist verstopft...
Mist, man müsste mehr Freizeit haben, für heute ist Schluss und morgen muss ich wieder nen ganzen Arbeitstag warten bis ich weiter probieren kann. Aber wenn man ne komplexe Funktionsbibliothek als "Black Box" nimmt und dann feststellt dass sie doch Seiteneffekte hat, das ist schon ziemlicher Murks, oder?
Seit letztem WE hab ich mich der Aufgabe gestellt, die SD-Card Anbindung des CPMputers von Direktzugriff auf FAT umzustellen, um die Verwaltung der CP/M Disks mit dem PC zu vereinfachen. Die letzten drei Tage kämpfe ich mit der Umsetzung. Wo eine Direktverwendung der SD-Card bisher robust funktioniert hat (die viel-geschmähte Bibliothek von Ulrich Radig) hatte ich die letzten Tage mit FAT nur Ärger. Anfangserfolge gab es durchaus, also ich hab schon mal erfolgreich CP/M aus einer Datei unter FAT gebootet. Die letzten drei Tage hab ich immer nur auf den Feierabend gewartet um *endlich* weiter experimentieren zu können. Die Ergebnisse waren immer wieder uneindeutig: mal ging es, mal ging garnichts. Ein Verhalten wie man es kennt wenn ein Signal floated.
Inzwischen glaub ich nahe an einer Erklärung dran zu sein: die verwendete FAT Bibliothek (von Daniel R., auf mikrocontroller.net veröffentlicht) hat vermutlich *irgendwo* im Code einen Maskierungsfehler beim Schalten der Bits auf In/Out. Beim CPMputer wird ja PB3 als Output-Pin dafür verwendet, die serielle Schnittstelle entweder dem Atmel oder dem Z180 zuzuteilen. Und da geht irgendwas schief, PB3 ist plötzlich Input, der Draht auf undefiniertem Level und die Leitung zum Terminal ist verstopft...
Mist, man müsste mehr Freizeit haben, für heute ist Schluss und morgen muss ich wieder nen ganzen Arbeitstag warten bis ich weiter probieren kann. Aber wenn man ne komplexe Funktionsbibliothek als "Black Box" nimmt und dann feststellt dass sie doch Seiteneffekte hat, das ist schon ziemlicher Murks, oder?
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: der dunkle Hive...
Jo, so ist es. Und dann in den fremden Lib's rumwühlen und versuchen zu verstehen was da passiert... Mancher Code liest sich da einfach, in manchen Code findet man aufs Verrecken nicht rein, weil die Denkstrukturen nicht kompatibel sind. Da war ich dann manchmal schon nahe dran solche Sachen einfach neu zu schreiben.Mist, man müsste mehr Freizeit haben, für heute ist Schluss und morgen muss ich wieder nen ganzen Arbeitstag warten bis ich weiter probieren kann. Aber wenn man ne komplexe Funktionsbibliothek als "Black Box" nimmt und dann feststellt dass sie doch Seiteneffekte hat, das ist schon ziemlicher Murks, oder?
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford