Dateienübertragung zum CP/M Rechner...

  • Hallo.


    Mit welchem Programm sendet ihr Dateien via RS232 zum CP/M Rechner ? Benutzt ihr Terraterm und schickt die Daten via X-Modem, Y-Modem, Z-Modem oder Kermit Protokoll oder wie macht ihr das ? Auf dem CP/M Rechner schreibe ich mir selber ein Programm. Die große Frage ist, brauch ich ohne reelles Modem bzw. ohne Telefonleitung dazwischen überhaupt eine "Nachkontrolle" im Sinne von einer Checksum ?! Ich hab mir das so vorgestellt:


    1. PC möchte 1 Byte schicken und wartet auf Freigabe des CP/M Rechners

    2. CP/M erteilt Freigabe

    3. PC schickt ein Byte und wartet auf Freigabe für dasd nächste Byte


    usw.


    Also das ganze via Hardware Handshake.


    Vielen Dank !


    Gruß Jan

  • Ich habe das jetzt nicht selber probiert... aber KERMIT sollte doch für alle Seiten eine Wahl sein, also sowohl für CP/M als auch auf PC Seite. Warum also selber schreiben ?


    https://retrocmp.de/transfer/kermit.htm

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::

    Einmal editiert, zuletzt von tokabln ()

  • Ja, der nächste Schritt soll ja sein, *.DSK-Diskimages via RS232 zu übertragen und Blockweise am CP/M Rechner direkt auf eine 8" Diskette zu schreiben. Dafür hab ich nicht wirklich was gefunden.


    Gruß Jan

  • Ich schreibe auf einem PC/XT direkt auf CP/M-Disketten. Das finde ich sehr viel stressfreier als dieses serielle Gedöns. Kermit finde ich auch alles andere als einfach einzurichten.

  • Ich schreibe auf einem PC/XT direkt auf CP/M-Disketten. Das finde ich sehr viel stressfreier als dieses serielle Gedöns. Kermit finde ich auch alles andere als einfach einzurichten.

    Ja, das mach ich zB für den Kaypro mit 5.25" Disketten. In meinem Fall handelt es sich aber um 8" Disketten. Das lesen und schreiben von 8" Disketten wird von Haus aus am XT unter MS-DOS nicht funktionieren, da bedarf es einem bestimmten Controller (mir ist der Name entfallen) und dieser kostet ein Vermögen...


    Gruß Jan

  • Ja, der nächste Schritt soll ja sein, *.DSK-Diskimages via RS232 zu übertragen und Blockweise am CP/M Rechner direkt auf eine 8" Diskette zu schreiben. Dafür hab ich nicht wirklich was gefunden.


    Gruß Jan


    suche mal nach: deramp flop2pc

    Nicht ganz das was ich suche... Aber ich kann mir bestimmt aus dem Source einiges ableiten.... :D



    Vielen Dank !


    Gruß Jan

  • Ich habe ja 2 RS232 Anschlüsse installiert. An COM1 hängt dann normalerweise das Terminal (momentan der PC). Ich könnte ja den Port von COM2 als Lochkartenleser für den Dateneingang und als Lochkartenstanzer für den Datenausgang definieren ?! Dann könnte ich ja mit Terraterm "einfach" die Daten rüberschieben ?! Im pip-Befehl wird ja bereits der Dateiname festgelegt. Oder geht das nicht so einfach ?


    Gruß Jan

  • Zitat von Jan1980

    Ja, der nächste Schritt soll ja sein, *.DSK-Diskimages via RS232 zu übertragen und Blockweise am CP/M Rechner direkt auf eine 8" Diskette zu schreiben. Dafür hab ich nicht wirklich was gefunden.Jan1980

    So wie ich das sehe, gibt es gleich mehrere Herausforderungen.


    1. Datenübertagung von PC zu CP/M-Rechner

    2. Formatierung der 8" Diskette

    3. Schreiben der Blöcke auf 8" Diskette


    zu 1. Frage: ist das eine einmalige Aktion, oder soilen laufend Daten Übertragen werden? Wenn es einmalig ist, dann reichen z.B. zwei kleine Basicprogramme zum Übertragen eines einzelnen Files.


    zu 2. Frage: Sind die Formatierungparameter für die Disk bekannt? Gibt es eine einheitliche Formatierung oder gibt es unterschiedliche Tracks?


    zu 3. Dazu braucht man dann eine Software die direkt auf die Disk zugreifen kann und auch die angelieferten imagedaten "*.DSK" versteht.


    Man bräuchte ein Programm ähnlich Teledisk/Imagedisk, jedoch lauffähig unter CP/M. Vielleicht kennt wer so eine Software? Eventuell müssen die Daten noch auf dem PC aufbereitet werden (RAW-Daten).


    Wäre übrigens auch interessant um welchen CP/M Rechner es sich überhaupt handelt und was für Tools, Programmiersprachen etc. zur Verfügung stehen.


    Grüße, PAW

  • Ich habe aktuell keinen CP/M-Rechner, aber damals[tm] haben wir Software zwischen den Rechnern mit Kermit ausgetauscht.

    Xmodem kam erst später. Da waren schon überall die PCs eingezogen und der Datenaustausch kein Problem mehr.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Disk-to-disk-transfer nehme ich eigentlich nur, wenn ich keine lauffähigen Boot-Disketten mehr finde. Der DOS-Rechner mit dem 5-1/5"-Zoll-Laufwerk steht normalerweise gut verstaut im Schrank.


    Wenn man ein CP/M-System mit passenden Systemdisketten hat, ist eigentlich serielle Übertragung kein riesiges Problem.


    Die beiden Programme, die ich nutze sind mboot3.com und pipmodem.com (von der WalnutCreek-CD).


    pipmodem sind grade mal 50-60 Zeilen zum Eintippen und assemblieren.


    Das Prinzip ist in diesem Video erklärt (nicht meins): https://www.youtube.com/watch?v=32oxnyERDgI


    Mit dieser Methode kommt man von einem "nackten CP/M" zu einem System, das schön Daten über z.B. Kermit austauscht.

  • Hast Du mal die Anleitung auf http://www.z80.eu/kermit.html gelesen, um Dir eine passende Kermit Version selbst zu erstellen?

    "The biggest communication problem is we do not listen to understand. We listen to reply." - Stephen Covey


    Webseite und Blog ist immer noch - seit fast 20 Jahren - online.

  • Gerade erst gelesen. Ich hab ein Monitorprogramm geschrieben, damit kann man eine Diskette formatieren, außerdem Bios und Urlader schreiben, cp/m von diskette lesen und schreiben und hab das ganze noch mit einem hexdump-Monitor versehen. Damit hab ich eine CP/M Bootdisk erstellt. Das System läuft soweit einwandfrei. Schon seit einiger Zeit.

    Ich habe jetzt reader und punch im Bios sauber konfiguriert inkl. IObyte an 0003h.

    Ich hab jetzt an Comport1 das Terminal und an Comport2 den PC. Zwischen CP/M Rechner und Terminal 19200 baud, zwischen PC und CP/M Recher 2400 baud.


    Mit


    pip a:file.end=rdr:[h]


    geht der CP/M Rechner in die Warteschleife. Dann starte ich im Terraterm den Dateitransfer. Das H in den Klammern steht für hex file. Wenn Terraterm fertig ist, muss ich ctrl-z drücken.



    Momentan hab ich allerdings noch das Problem, das in einer intel hex file nur jede zweite Zeile übertragen wird...


    Gruß Jan

    Einmal editiert, zuletzt von Jan1980 ()

  • Für pip von PUN: auf Datei:

    • In Teraterm einen Transmit-Delay (Setup-Serial Port) für das Zeilenende und ggf, auch zwischen den Zeichen eingeben, damit der CP/M Rechner Zeit hat die Zeile zu verdauen.
    • Und beim Senden natürlich [x] Binary.
    • und die passende Zeilenende Konfiguration ausprobieren CR/LF/...
  • Ich schreibe auf einem PC/XT direkt auf CP/M-Disketten. Das finde ich sehr viel stressfreier als dieses serielle Gedöns. Kermit finde ich auch alles andere als einfach einzurichten.

    Mit welcher Software ?

    22DISK, Teledisk und ich meine auch noch etwas anderes, aber ich habe momentan keinen Zugriff auf das System, um nachsehen zu können.

  • Ich schreibe auf einem PC/XT direkt auf CP/M-Disketten. Das finde ich sehr viel stressfreier als dieses serielle Gedöns. Kermit finde ich auch alles andere als einfach einzurichten.

    Mit welcher Software ?

    22DISK, Teledisk und ich meine auch noch etwas anderes, aber ich habe momentan keinen Zugriff auf das System, um nachsehen zu können.

    Ich hatte das auch mal probiert und glaube mich daran erinnern zu können, dass der Controller in meinem IBM da Probleme gemacht hat. Jedenfalls hatte ich das 8" Laufwerk auch mal am IBM.



    Für pip von PUN: auf Datei:

    • In Teraterm einen Transmit-Delay (Setup-Serial Port) für das Zeilenende und ggf, auch zwischen den Zeichen eingeben, damit der CP/M Rechner Zeit hat die Zeile zu verdauen.
    • Und beim Senden natürlich [x] Binary.
    • und die passende Zeilenende Konfiguration ausprobieren CR/LF/...

    Du meinst wohl von RDR: auf Datei. PUN: ist ja der Ausgang vom CP/M Rechner kommend. Jedenfalls war das Transmit-Delay des Rätsels Lösung !

    Aktuell habe ich ihn jetzt mit 9600 Baud und einem Delay von 1ms nach jedem Char. Schade, dass man keine Zehntel-Werte eingeben kann. Delay=0 ergibt fehler. Delay=1ms funktioniert einwandfrei !!




    Also das HEX-File übertragen über den zweiten Serial-Port funktioniert jetzt einwandfrei. COM-Files sollen lt. Internet wohl nicht gehen, obwohl es im

    CP/M-Manual so beschrieben wird mittels Parameter [O].

    TXT-Files bzw. ASM-Files kann ich noch nicht sauber übertragen. Er sendet das carriage return einfach nicht, er macht nur linefeed. Vollkommen egal, wie ich es im "Datei-Sende-Terminal" einstelle. Vielleicht hat da noch jemand eine Idee ?!


    Ansonsten bin ich ja jetzt schon ein gutes Stück weiter. Ich wusste einfach nicht, dass das so "einfach" geht und dann brauch ich doch nicht das Rad neu zu erfinden. Vorher konnte ich nur hex-files direkt über das Steuerterminal senden. Da hatte mir kleindi ein Programm gegeben, das ich in einem Eprom habe. Aber das Ziel ist es, den Rechner zusammen mit einem Vintage Terminal in die eine Ecke des Raumes auf zu bauen in der Konstellation wie er in den 70ern im Laden gestanden haben könnte und dass durch den Raum ein Nullmodemkabel fest installiert wird, welches dauerhaft mit dem Haupt-PC über den COM2 Port des CP/M Rechners verbunden ist. Diese Möglichkeit habe ich somit jetzt.. :)


    Ansonsten werde ich wohl zukünftig Kermit nutzen. X-Modem ist das älteste Protokoll mit verschiedenen Bugs. Kermit soll da ja besser sein.


    Vielen Dank !


    Gruß Jan

  • Ja, aber mein Rechner (CZK80) wird leider nicht unterstützt.
    Ist aber halb so schlimm, da das xmodem Programm sehr gut.

    funktioniert (derzeit mit 19200 Baud).

  • Ja RDR: natürlich...


    Die Textdateien (HEX. ASM, MAC,...) brauchen natürlich nicht binär übertragen werden. Es kann sein, dass Teraterm die Zeilenenden nur bei Text-Übertragung berücksichtigt, bei binär wäre das ja fatal.


    Ich habe nur "binär" empfohlen, d auch dachte es ginge (auch) um .COM, .OBJ Datein.


    Kermit generisch sollte auch gehen, da gibt es auch HEX Versionen bzw. .BOO kodierte Dateien, die man mit einem kleinen BAIC Porgramm auspacken kann.


    Allerdings ist dieser Kermit recht langsam (Faktor 2), da er nicht direkt auf Ports zugreift - dafür halt auf allen CP/M Systemen lauffähig.

    Ich hatte mal einen Vergleich auf dem AVR-C/PM Stick-System gemacht - siehe auch diverse Posts unter (https://www.mikrocontroller.net/topic/177481?page=9, am Ende: https://www.mikrocontroller.ne…hment/382412/Kerm411G.com)

  • Ich habe mich gestern Abend wieder damit beschäftigt. Hab mein Bios ein bißchen umgestrickt. Dateienübertragung via pip geht jetzt einwandfrei. Ich wollte auf Kermit umsteigen, habe aber nichts funktionierendes gefunden. Daraufhin habe ich mich entschlossen, es mit xmodem zu probieren.

    Ich habe den Source von xmodem runtergeladen und wollte ihn am pc assemblieren. Mein zmac Assembler war voller Fehler. Daraufhin habe ich den Source zum Imsai geschickt und dort war ich in der Lage zu assemblieren und anschließende zu compilieren.

    In der Anbleitung von xmodem habe ich gelesen, dass man eine xmodem.cfg schreiben soll. Ich weiß aber nicht, ob man die irgendwie einbinden muß ?! Jedenfalls tat ich das mit der Config meiner Interfacer 1 Serial Karte.

    Ich würde gerne irgendeine com-Datei vom PC zum Imsai via Terraterm übertragen. Am cp/m gebe ich ein:


    xmodem datei.com


    Dann frägt er senden oder empfangen. Gehe ich auf empfangen, schreibt er "Receiving via RDR/PUN with CRCa" und im Terraterm bleibt das xmodem Transfer-Fenster bei 1% hängen. Bei vcfed hab ich gelesen, dass xmodem 8 Bit braucht. Das 8. Bit habe ich normal im Bios mit ANI 7Fh ausmaskiert. Ich habe es abgeändert, aber ohne Erfolg. Ich vermute, dass die xmodem.cfg missachtet wird ?! Schließlich hatte ich in dieser die X2 Option gewählt, dass es nicht via CP/M reader puncher läuft... Dennoch schreibt er diese Meldung..


    Was mach ich falsch ? Hat einer eine Idee ?


    Vielen Dank !


    Gruß Jan

  • Der Eintrag in xmodem.cfg sieht für meine CZK80 Karte

    folgendermaßen aus:


    ;--------------------------------------------------------------

    ;CZK80 serial ports (Typical Zilog DART ports)

    ;

    /MDirect I/O is configured for CZK80 Port A

    /X2 ;use custom port defined here

    ;(typical Z80 DART & Z80 CTC configuration)

    /P 52 50 01 01 04 ;Port A


    Datei senden:


    A>xmodem stat.com /s /q /x2


    Direct I/O is configured for CZK80 Port A

    File open

    Sending via direct I/O

    Transfer complete


    OK

    Sent 41 blocks

    A>


    Datei empfangen:

    A>xmodem stat1.com /r /q /x2


    Direct I/O is configured for CZK80 Port A

    File created


    Receiving via direct I/O with CRCsCSending stat1.com, 41 blocks: Give your local XMODEM receive command now.


    Transfer complete


    Received 41 blocks

    A>

  • Hallo liebe Leute,
    wo habt ihr einen XModem Soucecode für CP/M gefunden ?
    Das würde mich eigentlich auch interessieren.


    mfG. Klaus Loy

  • So, Xmodem funktioniert jetzt am Imsai. Mein Xmodem Programm war fehlerhaft. Ich habe keine Ahnung wieso ?! Entweder Fehler beim Übertragen via pip oder beim assemblieren. Ich hatte es auch von der Seite von Mike Douglas, wie hier bereits verlinkt. Jetzt hab ich woanders eine HEX-File runtergeladen, diese zum Imsai geschickt und mit load kompiliert (sagt man das so ? :) ). Jedenfalls funktioniert jetzt alles wunderbar ! Ich habe ein 10m langes Nullmodemkabel dran und schaffe momentan bis zu 1,8kbyte/s.


    Laden tu ich es in CP/M mit


    xmodem file.com /r /c /x2


    auf der PC-Seite nutze ich Terraterm. Da nutze ich die xmodem Transfer Funktion ohne das 1k Kästchen.


    Schnittstelleneinstellung:


    19200 Baud

    8N1

    ohne Parität


    Vielen Dank nochmal !



    Gruß Jan