Forum: PC-Programmierung DOS Batch Befehle für Umleitung auf COM


von Christian J. (Gast)


Lesenswert?

Moin,

unter Linux alles kein Thema aber ich bin nunmal grad in der Windows cmd 
Shell unterwegs und meine DOS Zeiten liegen 30 Jahre zurück.

Wie kriege ich eine Ascii Datei auf den COM Port umgeleitet? Den Intel 
Hex Interpreter habe ich mir schon geschrieben für CP/M, der funzt auch 
gut.

Ich hätte gerne sowas
echo "era test.hex" > COMx  // Alte Datei auf Target löschen
echo "download.com" > COMx  // Starte Intel Hex Interpreter
warte 1s
copy Intel-Hex-File > COMx  // Schiebe neues Kompilat rüber
warte 1s
echo "test.com"    // und führe es aus

Also das was ich normalerweise eintrippe soll für programmtests gsteuert 
werden um nicht ewig die gleichen Befehle eingeben zu müssen damit ich 
meinen kleinen CP/M Rechner quasi fernsteuern kann, dass er sich das 
rein saugt und ausführt.

Könnte mir mal jemand ein syntaktisch korrektes Beispiel geben?

gruss,
Christian

von cppbert (Gast)


Lesenswert?


von Michael Gugelhupf (Gast)


Lesenswert?

> Wie kriege ich eine Ascii Datei auf den COM Port umgeleitet?
1
copy /A meine-ascci-datei.txt com1:

von Christian J. (Gast)


Lesenswert?

Jo, danke! geht doch schnell von der Hand, auch mal eben auf dem 
Firmenrechner.... läuft zumindest.

rem --- Variablenteil --------
set filename=mycpm.hex
set comname=mycpm.com
set hexfile=intel.hex
set comport=com3
rem --------------------------
rem Initialisiere COM Port
mode %comport% baud=38400 parity=N data=8 stop=1 rts=off dtr=off
echo off
echo "------------------------"
echo "Intel Hex CP/M Transfer"
echo "------------------------"
echo "Loesche Target Datei"
echo "era %filename%"
echo "Starte Download App"
rem  Starte Download App auf Target
echo "download.com"
timeout 3
rem  Ubertrage das Intel Hex File auf COM Port
type %hexfile%
pause
rem  Starte die Anwendung
type ´%comname%

von fop (Gast)


Lesenswert?

CP/M hatte auch schon sowas wie Batch-Dateien. Der entsprechende Befehl 
hieß submit. Hat nur zu Zeiten der Disketten vor und nach jedem 
ausgeführten Befehl merklich auf dem Laufwerk rumgerührt.

von Christian J. (Gast)


Lesenswert?

fop schrieb:
> CP/M hatte auch schon sowas wie Batch-Dateien. Der entsprechende Befehl
> hieß submit. Hat nur zu Zeiten der Disketten vor und nach jedem
> ausgeführten Befehl merklich auf dem Laufwerk rumgerührt.

Moin,

Da wird genug gerührt und gesägt, nen Cache hat es ja nicht :-) Geht 
halt nur darum den Weg von einer Änderung des auf dem PC entwickelten C 
Programms bis zum Test auf der Kiste möglichst zu vereinfachen. Derzeit 
sieht es so aus dass ich nur mit xmodem übertragen kann und etliche 
Klicks und Mauseingaben erforderlich sind. Da alles was ich auf der CPM 
Konsole eingebe ja genauso gut von einem Skript kommen kann 
automatisiere ich das ein wenig. Das CPM Programm was ich mir 
geschrieben habe schlürft sich dann das Intel Hex rein und erzeugt mir 
daraus ein COM. Im Idealfall reicht dann nur noch

make
....
run
...

von Christian J. (Gast)


Lesenswert?

Funzt leider nicht :-( Wenn ich das Terminal in Putty offen habe 
behauptet das Skript, dass der Port 10 nicht erreichbar ist. 
Offensichtlich hat Putty Exklusivrechte. Das war unter Linux anders, da 
war dev/tty/USB0 auch von mehreren Quellen aus erreichbar.

von Helmut -. (dc3yc)


Lesenswert?

Wenn die Portnummern >9 sind musst du (glaub ich zumindest) \\.\COMxx 
schreiben. Oder so...

von Christian J. (Gast)


Lesenswert?

Helmut -. schrieb:
> Wenn die Portnummern >9 sind musst du (glaub ich zumindest) \\.\COMxx
> schreiben. Oder so...

Man kann solche Com Port Share Programme kaufen aber die Demo von einem 
grad klappte auch nicht, da es ein Null Modem emuliert. Notfalls muss 
ich halt wirklich einen FTDI verlöten und irgendwie da rein odern.

Grad ausprobiert. Klappt von der cmd Zeile aber nicht aus der Batch 
heraus
Erzeugt ein Zugriff verweigert. Wie gehabt...

Hiermit geht es:
https://www.eltima.com/article/share-com-port-between-apps/

zumindest für 14 Tage :-(

von Christian J. (Gast)


Lesenswert?

Leider lässt sich dieser Ausdruck so ohne weiteres nicth auf eine lokale 
Variable zuweisen. Muss jedesmal neu getippt werden. Aber dann klappt es 
wenn man dieses Programm gleichzeitig laufen lässt. Mal eben Schnäppchen 
für 199 USD :-(((

oder den für 25 Euro, klappt auch
http://www.eterlogic.com/Products.VSPE.html

set masterfile=mycpm
set comport=//./COM10:

rem -------------------------
set filename=%masterfile%.hex
set comname=%masterfile%.com
echo %filename% to %comport%
rem --------------------------

rem mode %comport% baud=38400 parity=N data=8 stop=1 rts=on dtr=off 
to=on
rem Loesche alte Datei auf Target
echo dir >//./com10:
echo era %filename% >//./COM10:
echo era %comname% >//./COM10:
timeout /T 2 /NOBREAK

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.