Hallo!
Kann man eigentlich bei CP/M - BASIC 80 auch BASIC Programme direkt vom Lochstreifenleser laden?
Oder geht das nur über den Umweg "Diskette"?
Danke
Stephan
Hallo!
Kann man eigentlich bei CP/M - BASIC 80 auch BASIC Programme direkt vom Lochstreifenleser laden?
Oder geht das nur über den Umweg "Diskette"?
Danke
Stephan
Ich hab mich noch nie mit Lochstreifen beschäftigt ... wenn Du per IN/OUT-Befehlen über die serielle Schnittstelle einliest, musst Du Dich dann z.B. um den Transport des Streifens kümmern oder passiert das automatisch?
Ansonsten: Wie wäre es, wenn Du von CP/M aus den Leser als Eingabegerät setzt, dann einen Streifen mit dem Befehl MBASIC, dann einen Streifen mit dem Programmcode samt Zeilennummern und RUN, und nach Programmbeendigung einen mit SYSTEM und dem STAT-Befehl, um die Konsole wieder auf die Tastatur zu holen.
Gruß
Robert
Hallo Robert.
Das könnte gehen. Aber dann wäre die Konsole ja während des Programmablaufes blockiert.
Gibt YT Videos von alten BASIC Versionen, die mittels OLD ein Programm vom Lochstreifen lesen, frage mich, ob das auch bei CP/M geht.
Bei dem schon erwähnten HX-20 mache ich das mit einem Befehl in der Art
LOAD "COM0:TEST. BAS"
wobei man afair auch noch die seriellen Parameter in einer etwas kryptischen Weise mitgeben muss.
Vielleicht irgendwas in der Richtung....
Die Gerätenamen RDR: (Lochkarten-Lesegerät) und PUN: (Lochkarten-Stanzer) sprechen - wenn das BDOS richtig implementiert ist - auch direkt die serielle Schnittstelle an (und Pegelwandler für TTL Schnittstelle gibt es übrigens schon seit 30 Jahren ).
COM0: kenne ich nicht, muss wohl was HX-20 spezifisches sein.
Die Zuordnung einer logischen E/A-Einheit zu einer physikalischen E/A-Einheit kann via I/O-Byte (Adresse 0003h) "bitweise" gesteuert werden, anschauen wie es eingestellt ist, kann man mit dem CP/M Befehl STAT DEV: bzw. STAT VAL: ...
Wenn Du nicht das Gerät in BASIC via "OPEN" öffnen willst, musst Du den "OUT" Befehl in MBASIC nutzen.
Ich habe noch nicht probiert, aber LOAD"RDR:" geht bestimmt nicht, oder?
Ich habe noch nicht probiert, aber LOAD"RDR:" geht bestimmt nicht, oder?
Das ungefähr wäre mein Ansatz gewesen, aber auch wenn beide Versionen von MS stammen scheint dies - anders als beim Epson - hier nicht zu funktionieren.
Zumindest laut Referenz ist außer einem Laufwerksbuchstaben dort nichts erlaubt.
Nein, LOAD "RDR" geht bestimmt nicht. Aber höchstwahrscheinlich für die Ausgabe
OPEN "O", #1, "PUN:" , gefolgt von PRINT #1,"TEST" usw usw CLOSE #1
und für die Eingabe
OPEN "I", #1, "RDR:" , gefolgt von INPUT #1,STRINGVAR$ usw usw CLOSE #1
Das sollte gehen, aber dann hast Du den Inhalt des Lochstreifens in einer Variablen. Es ging aber darum, ein ausführbares Programm zu laden.
So musst den Inhalt erst auf Diskette schreiben, um es dann ausführen zu können.
Unter den Umständen erscheint es einfacher, das Programm per pip direkt vom Leser in eine Datei zu kopieren und diese dann im BASIC auszuführen.
Nicht zu vergessen dass die Baud-Rate auch immer vorher korrekt eingestellt werden muss