Beiträge von ufud-org

    Ein kurzes Lebenszeichen meinerseits, ich habe meinen I2C UART Treiber (SC16IS750) nun noch ein wenig erweitert und mir den Spaß einer kleinen Spielerei erlaubt, an der auch Ihr teilhaben könnt!

    Einfach per Telnet folgende Adresse und TCP Port ansteuern:

    rc2014.ddns.net 2023

    dort begrüßt Euch dann ein My4TH Forth Deck. Da ich hier ein WiFi Modem mit Zimodem Firmware nutze, ist das ganze ein single-user System. Sollte gerade besetzt sein, einfach später nochmal versuchen.

    Aktuell ist das ganze nur eine ganz simple Demo-App, aber wer weiß?!

    Ein wenig Feinarbeit und Code-Cleanup sowie ein sehr, sehr simples Testprogramm waren noch nötig und schon bin ich mittels Forth Deck per rudimentärem Telnet online bei telehack.com . Die Verbindung baue ich via I2C bus und SC16IS750 und einem separaten ESP8266 mit Zimodem Firmware auf. Video gibt's bei Klick auf den Link (seht mir die miese Bildqualität nach, der Inhalt stand hier im Fokus):

    My4TH Forth Deck goes Telnet (telehack.com)
    The My4TH Forth Deck goes Telnet: I've used a SC16IS750 UART and connected it to my Forth Deck via the I2C bus. This way, I've added a serial interface. The…
    diode.zone

    Apropos UART: Sehe ich richtig, dass der My4TH über die serielle Bit-Banging-Schnittstelle immer nur jedes dritte Zeichen empfängt, wenn man ihm einen kontinuierlichen Strom von Zeichen schickt? Ich vermute, er empfängt das erste Zeichen; verschluckt das zweite, während er das erste echot; ist beim dritten etwas zu spät dran für die Synchronisierung; und empfängt dann erst vierte wieder; und so weiter, ad inf.

    Dem Quelltext (transfer.asm) entnehme ich, dass es für bulk transfers einen "bin mode" gibt, den man durch Senden von 0x01 oder 0x06 starten kann, aber das hilft ja nicht bei copy / paste im Terminal...

    Das liegt an der recht langsamen 4800 Baud Verbindung der My4TH Konsole, da kommen die Zeichen einfach zu schnell rein. Unter Linux kann man bei "minciom" ein Delay von mehreren Millisekunden Pause einstellen, bevor das nächste Zeichen "gepasted" wird. Mit diesem Workaround sollte es gehen.

    Mein aktuelles My4TH / Forth Deck Projekt: ich schreibe gerade ein paar Wort Definitionen um einen SC16IS750 UART über den I2C Bus anzubinden. Einzelne Zeichen zwischen dem Linux Rechner und dem Forth Deck hin- und her schicken klappt schonmal ganz gut. Aktuell mit 9600 Baud, da geht sicher noch mehr. Anbei zwei Fotos vom Test-Setup. Das erste Bild zeigt, wie auf dem Display des Forth Deck der Text erscheint, welchen ich auf dem Linux Rechner in das Picocom Terminal getippt habe:

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Wie ich lese gibt es noch mehr Freunde des My4TH und Forth Deck - seid gegrüßt !!

    Beide haben mich sofort und in vollem Maße begeistert, denn Forth fasziniert mich bereits seit ich als Teenie zum ersten mal von diesem "Jupiter Ace" gehört habe.

    Den My4TH habe ich bereits vor ein paar Wochen zusammen gebaut und dann, quasi zum warm werden mit Forth, einen Treiber für den BMP180 Temperatursensor geschrieben, den ich zusammen mit einem Display an den I2C Bus geklemmt habe. Parallel dazu habe ich mir bei Budgetronics die etwas schnelleren ICs für die 12 MHz Variante bestellt, weil: "mehr Power!!"

    Tja und das Forth Deck habe ich dann erst am vergangenen Wochenende fertiggestellt. Allerdings habe ich bezüglich der Ladeschaltung für den LiPo auf das bekannte TP5400 Fertigteil zurück gegriffen. Da ich aber keinen 3D Drucker habe kommt das ganze wohl ein wenig "im Rohbau" daher, hier ein paar Bilder vom stolzen Besitzer:

    P.S.: eine neue Firmware Version 1.2 und ein weiteres, binäres Software-Modul mit Unterstützung für Fließkommazahlen steht seit kurzem zum Download bereit (https://mynor.org) - sehr beeindruckende Leistung für so eine Hardware!

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    die kannst du doch bestimmt von oben "nachschieben" ? (aus einem anderem kleinem Sockel geklaut)

    ja, schon und das habe ich auch versucht. Aber: in dem dünnen Spalt zwischen der Unterseite des Sockels und der Platinenoberseite hat sich ein kleiner Pfropfen Lötzinn gebildet, den ich auch mit der Entlötstation nicht weg-gesaugt bekommen habe. Und da ich z.Zt. nur dieses eine RAM Modul habe und nicht durch permanentes Werkeln mit viel Hitze noch mehr Schaden anrichten wollte (Lötösen lösen sich, Platine verkohlt etc.) habe ich dann diesen Weg gewählt. Funktioniert.

    Ersatzplatine ist bereits bestellt, benötigt aber ihre Zeit bis sie da ist und irgendwie wollte ich dann doch wissen, ob der Rechner überhaupt korrekt startet.

    kurze Rückmeldung, ich warte noch auf ein paar Bauteile (RCA Buchsen in rot, weiß, gelb und ein 50 pol. flachbandkabel sowie eine Ersatzplatine für das RAM Modul, da ich hier ein kleines Problemchen mit dem 64 pin Sockel "umschiffen" musste) - aber ein erster Testlauf hat mir meinen Nachmittag angenehm versüßt:

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    (der Modular64 im ersten Testlauf, noch ohne "Peripheral Board")

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    (*SCNR*)

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    (zu spät habe ich damals bemerkt, das eine Feder gefehlt hat - zu müßig war mir das entlöten. Also hab ich ein wenig MaC= Gyver gespielt ...)

    Ich zelebriere dieses Jahr die beiden grossen Jubiläen: 40 Jahre Commodore 64 und 40 Jahre Sinclair ZX Spectrum - daher habe ich mir im Juni einen Superfo Harlequin 128K issue 2D zusammen gebaut, welcher auch prima funktioniert und bin gerade in den letzten Zügen den uAX64 Mini Long ("Modular64") zusammen zu bauen.

    Harlequin 128K:

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.
     
    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    uAX64 Mini Long:

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.
     
    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Hier noch ein aktuelles Foto der Mailbox bzw. des RC2014 der sie antreibt. Ich habe heute Mittag endlich das noch fehlende RomWBW Modul gebaut und aus weiteren Rest-Modulen und einem gespendeten Wifi Modul einen "dedizierten" Mailboxserver zusammenbauen können. Das Gerät steht auf meiner linken Monitorbox direkt am Schreibtisch und ist im Notfall (Crashes, Twit-User etc.) schnell erreichbar.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Fazit: egal ob echtes Modem oder Wifi Modem mit Zimodem Firmware: ohne DCD vom Modem direkt an den SIO/2 weiter zu geben funktioniert "BYE" schlicht nicht.


    Ich hoffe ich konnte das jetzt nochmal ausführlich darlegen.

    Danke, super Erklärung. Werd' das mal als Grundlage nehmen, um meine Optionen ohne DCD zu klären, denn meine ESP826-Schnittstelle sieht leider so aus:

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Mal sehen, mit welcher Software ich die Einwahl auf dem Z80-System hin bekomme und welche Baustellen sich zusätzlich auftun, denn das BIOS kennt als physikalische Geräte nur CRT & TTY, Da ist also noch Luft nach oben...

    Benutzt Du denn die "Zimodem" Firmware? Wenn Du Dich nur nach Aussen mit anderen Mailboxen verbinden möchtest, spielt DCD keine Rolle. Das Signal wird ja nur "lokal" auf der "Server Seite" erzeugt. Wichtig ist DCD nur, wenn Du andere bei Dir "Einwählen" lassen möchtest.

    Nicht "klassisch" sondern per Telnet-Client unter Linux...

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    Für mich nicht so ganz offensichtlich, spielt 'DCD' bei Verwendung eines Telnet-Clients eigentlich eine Rolle ? Auch: wenn ich das mit dem 'ZiModem' programmierte ESP8266 Wifi-Modul für den Kontakt benutze(n würde, Modem habe ich keines), habe ich auch kein 'DCD' zur Verfügung. Wie paßt das zusammen ?

    Also, DCD wird vom Wifi Modem bzw. der Zimodem Firmware an GPIO2 des ESP8266 aktiviert, sobald eine Telnet Verbindung über das WLAN an dem Wifi Modem eingeht (z.B. Dein Telnet Client). Wird diese Verbindung wieder beendet, wird auch das DCD Signal wieder deaktiviert (es ist also am ESP8266 ein DCD Signal vorhanden und es triggert auch wie es soll).

    Das CP/M Programm "BYE" pollt nun die Serielle Schnittstelle und schaut ob am SIO/2 Chip das DCD Bit von "0" auf "1" springt, also ein "Anruf" (hier: eine Telnet Verbindung) eingeht.

    Aber an den meisten SIO/2 Modulen ist der DCD Pin für die Ports A und B einfach mit Masse (GND), also "0V" verbunden. Und weil der DCD Pin am SIO/2 Chip ein negierter Eingang ist, bedeutet hier "0V" gleich "High", ergo ist das DCD Bit im SIO/2 Read Register 1 immer gesetzt.

    DCD ist also von Haus aus bei diesen Modulen "kurzgeschlossen" und auch nicht über einen separaten Pin nach Aussen geführt. Für "BYE" sieht das dann so aus als ob bereits eine Verbindung besteht.

    Das ist ein Problem, denn da es dadurch am SIO/2 keine Statusänderung des DCD Bit im Read Register 1 gibt (DCD Bit ist immer 1, eine Verbindung besteht) versucht BYE in einer Endlosschleife ein "+++ATH0" abzusetzen um die Verbindung (die es gar nicht gibt) zu trennen. Dadurch kann "BYE" nicht sauber initialisieren. Und umgekehrt bekommt "BYE" auch nicht mit, wenn Du mit Deinem Telnet Client mein Wifi Modem anwählst.

    Lösung: Verbindet man nun den o.g. GPIO2 Pin des ESP8266 mir dem /DCD Pin für SIO/2 Port B funktioniert die Sache. Denn nun ist das DCD Bit im Read Register des SIO/2 nur dann gesetzt, wenn vom ESP8266 eine eingehende Telnet Verbindung registriert wird.

    Zusammengefasst: ja doch, die Zimodem Firmware und der ESP8266 Stellen ein DCD Signal bereit, lediglich der SIO/2 Chip muss mit dieses auch "erkennen" also damit Verbunden werden. Da der entsprechende DCD Pin am SIO/2 von Hause aus leider "hart" gegen Masse geführt wird, und dies die o.g. Probleme verursacht, ist also ein kleiner "Hack" (wie auf dem Foto in meinem ersten Beitrag zu sehen) nötig. Auf einen Pegelwander 3V3 -> 5V konnte ich bei meinem Setup verzichten, da die 3V3 des DCD Signals vom ESP8266 reichen, um am SIO/2 das entsprechende Bit zu triggern.

    Fazit: egal ob echtes Modem oder Wifi Modem mit Zimodem Firmware: ohne DCD vom Modem direkt an den SIO/2 weiter zu geben funktioniert "BYE" schlicht nicht.

    Ich hoffe ich konnte das jetzt nochmal ausführlich darlegen.

    Wie jetzt?! Kein "tüdelüdelü - chrrrp - blililili" über Modem und Telefonleitung?! 8-)

    Das wäre doch heute, wo Festnetz-Flatrate und die eine oder andere Extra-Telefonnummer in fast jedem Festnetzanschluss-Vertrag enthalten sind, durchaus auch kostengünstig zu machen. Und würde beim Einwählen nochmal zusätzliches Retro-Feeling aufkommen lassen, mit der vollen Akustik-Experience und gelegentlichem Besetztzeichen. (Und dass der Box-Rechner mit mehr als 2400 Baud "überfahren" wird, kann dann auch nicht mehr passieren. ;))

    Gibt es noch Mailboxen, die so betrieben werden?

    Nach meiner Erfahrung geht das wohl und ja, es gibt auch noch Systeme, die auch nur so erreichbar sind, z-B. die "BLUP BBS" (https://www.blup-bbs.de/news). Modems hätte ich hier einige, aber mein Ansatz war ja bewusst darauf beschränkt, nur RC2014 Komponenten zu verwenden um die Vielseitigkeit der Möglichkeiten dieses modularen Bausatzes aufzuzeigen.

    Aber grundsätzlich lässt sich da auch ein Modem anschließen. Dafür müsste dann aber noch eine Anpassung der 5V (FTDI) Pegel der RS232 Schnittstelle des SIO/2 an die vom Modem verwendeten 12V Pegel erfolgen. Anna Christina hat dazu eine kleine Platine entworfen, mit der sich so auch echte CRT Terminals, Drucker etc. anschließen lassen.

    Hallo zusammen,


    ich habe mir einen lange gehegten Traum erfüllt und auf Basis eines CP/M fähigen RC2014 mit SIO/2 Schnittstellen Modul und Wifi Modul eine kleine, CP/M basierte Mailbox, die "RC-BOX", aufgesetzt. Dazu eine kurze Übersicht zum aktuellen Stand der Dinge:

    - aktuell funktioniert das Ganze nur mit RomWBW ROM. Alle Versuche das Setup unter SCM ans laufen zu bekommen sind bislang gescheitert.

    - neben einem CP/M fähigen RC2014 wird lediglich ein SIO/2 Modul (z.B. SC110 mit CTC) und ein Wifi Modul benötigt.

    - Port B des SIO/2 sollte idealerweise auf 2400 Baud getaktet sein. Entweder mittels CTC auf dem Modul wie beim SC110 oder einem zweiten Taktgeber mit entsprechender Taktfrquenz (z.B modifiziertes Dual-Clock Modul). 4800 Baud sind möglich, dann wird aber die Ausgabe des Textes über die Verbindung sehr, sehr langsam. Mehr als 4800 Baud funktionieren leider nicht.

    - das Wifi Modul wurde mit einer leicht angepassten Version von Bo Zimmerman's "Zimodem" Firmware bespielt

    - den GPIO2 Pin des Wifi Moduls habe ich direkt mit Pin 20 (DCD Port B) des SIO/2 Chips verbunden. Das war nötig, da nahezu alle SIO/2 Modulvarianten, welche es für den RC2014 gibt, Pin 20 hart mit GND verbinden, was dazu führt das das DCD Bit einfach immer gesetzt ist (invertierter Eingang) und "BYE" nicht erkennen kann, ob ein "Anruf" / eine Verbindung eingeht.
    - Dateitransfers sind z.Zt. nicht möglich.
    - Zugang zur CP/M Kommandozeile wird es erst später geben, ich muss erst noch die internen CP/M Kommandos "ERA", "COPY", "SAVE" und "REN" deaktivieren (ist machbar).

    Für die Steuerung des Wifi Modems und das Starten des eigentlichen Mailboxprogramms setze ich das CP/M Programm "BYE5" ein. Dieses Programm nimmt eingehende Anrufe entgegen, leitet die Standard Ein- und Ausgabe auf das Modem um und startet das eigentliche Mailboxprogramm. Ich habe den Code-Insert für die SC110 SIO/2 Schnittstelle einfach vom Big Board II aus den frühen 1980er Jahren entnommen und lediglich die Port Nummern, Taktraten und Clock Divider (* 64) für den SIO/2 und die Echtzeituhr (CTC) des RC2014 angepasst.


    Zuletzt habe ich dann "Micro BBS" (MBBS) unter ZPM3 installiert, das Programm ist recht gut dokumentiert (in englischer Sprache) und verhältnismässig schnell installiert.


    Der Rest war ein wenig ausprobieren mit verschiedenen Einstellungen am Wifi Modem (AT Parameter) und im ASM Code von BYE5 selber.

    Das Resultat meiner Mühen können Interessierte unter der unten angegebenen Adresse per Telnet erreichen. Sollte die Box kurzfristig mal nicht erreichbar sein, bin ich wahrscheinlich gerade dabei etwas zu testen, einfach später nochmal versuchen. Und bitte nutzt kein Copy & Paste um Nachrichten einzugeben, denn da die Box nur mit 2400 Baud angebunden ist führt das zu einem Pufferüberlauf und Buchstaben werden "verschluckt". Tippt manuell und genießt das Feeling der guten, alten Zeit! ;)

    Ach so, noch eine Info: die Box ist "single-node" - wenn direkt nach dem Verbinden wieder aufgelegt wird, ist bereits jemand in die Box "eingewählt" (auch hier hilft: einfach später nochmal versuchen).

    Hier nun also die Adresse der "RC-BOX", ich würde mich freuen Euch begrüßen zu dürfen:


    rc2014.ddns.net (Port: 2014 !!)


    Ein Code Repository mit einer kurzen Zusammenfassung meiner Arbeit (in englischer Sprache) findet sich hier, den Text im README.md werde ich nach und nach noch weiter im Detail ausführen:


    https://gitlab.com/ufud-org/rc2014-bbs

    Ein Foto meines Setups habe ich als Anhang bereitgestellt.


    P.S.: Falls Ihr Fragen zu dem Projekt oder meiner Person habt (ich war 2008 und 2009 mal als privater Sammler / Aussteller bei der CC), scheut Euch nicht zu fragen. Ich tausche mich gerne mit CP/M Veteranen und Z80 Kennern aus, da ich selbst erst vor einem Jahr in die Materie eingestiegen bin.