Softwarebibliothek für SIO2PC?
Softwarebibliothek für SIO2PC?
von mp-one » Mo 10. Dez 2007, 11:22
Hallo,
gibt es eigentlich schon eine Software-Bibliothek für eine höhere Sprache, wie C, C++, VB, Pascal oder andere aktuelle Sprachen, womit es möglich ist, das SIO2PC zu programmieren oder einfach nur die SIO-Kommandos vom ATARI anzuzeigen? Oder muss man da selbst die Schnittstelle abfragen und das Timng etc. beachten? APE und ähnliche Tools können das ja...
Gruß,
Michael
Re: Softwarebibliothek für SIO2PC?
von HiassofT » Mo 10. Dez 2007, 12:56
mp-one hat geschrieben:gibt es eigentlich schon eine Software-Bibliothek für eine höhere Sprache, wie C, C++, VB, Pascal oder andere aktuelle Sprachen, womit es möglich ist, das SIO2PC zu programmieren oder einfach nur die SIO-Kommandos vom ATARI anzuzeigen? Oder muss man da selbst die Schnittstelle abfragen und das Timng etc. beachten? APE und ähnliche Tools können das ja...
Jein :-)
Das SIO-Timing ist recht kritisch und es ist nicht unbedingt trivial das 100% hinzubekommen. Dazu kommt noch, daß die Schnittstelle im PC nur mit Standard-SIO Speed (19200 bit/sec), XF551 Speed (38400 bit/sec) und mit 57600 bit/sec (was aber von keinem Atari Laufwerk verwendet wird) zurechtkommt. Die Kommandos zB zu einer Happy oder Speedy (verwenden 52 bzw 55 kbit/sec) kann man damit nicht mitprotokollieren.
Zu Deiner eigentlichen Frage: Unter Linux kannst Du das recht einfach mit meiner AtariSIO Software machen. Das ganze Low-Level SIO Handling übernimmt ein Kernel-Treiber, der nach aussen hin recht einfache Funktionen wie "Warte auf das nächste SIO Kommando" und "Lese SIO Kommando" zur Verfügung stellt. Damit kannst Du auch recht einfach eine Atari-Floppy am PC (per 1050-2-PC) ansprechen - der Atari++ Emulator unterstützt das zB.
Unter Dos/Windows ist mir in dieser Richtung allerdings nichts bekannt.
Frage: was genau willst Du damit machen?
so long,
Hias
von mp-one » Mi 12. Dez 2007, 12:44
Hi Hias,
es ist bisher "nur so eine Idee". Ich hatte überlegt, ob man mal die Kommandos des 1020-Plotters auslesen und in Grafikbefehle umsetzen könnte. Sowas gibt es ja in APE, aber es wär mal interessant, das selbst zu probieren. Im Grunde würde dann ja schon reichen, wenn man nur die Kommandos für den 1020 "abfängt" und auswertet. Aber ich vermute, man wird auch irgendwelche Rückmeldungen (ACKs, ...) an den Plotter zurücksenden müssen, damit es funzt, oder?
Gruß,
Michael
von HiassofT » Fr 14. Dez 2007, 16:13
Hi Michael!
Wenn Du einen 1020 Plotter hast und nur mal mitlauschen möchtest was der Atari da so zum Plotter rüberschickt, genügt es wenn Du die serielle Schnittstelle einfach auf 19200 bit/sec einstellst und dann die empfangenen Daten mitloggst. Den Command Frame kann man recht leicht am Inhalt erkennen, ausserdem sind direkt davor und danach kurze Pausen in der Übertragung.
Wenn aber kein Plotter dranhängt, muß der Computer zur richtigen Zeit ACKs bzw. NAKs zum Atari schicken. Das wird dann vom Timing her recht knifflig.
Auf einem (alten) PC mit "nacktem" DOS geht das noch sehr gut. Der Computer führt da ja immer nur ein einziges Programm aus. Unter Windows (und auch Linux, MacOS, ...) schaltet das Betriebssystem aber immer wieder zu andern Programmen um und stiehlt Dir damit etwas Zeit. Dadurch kann man kaum mehr feststellen, ob ein Byte nun gerade eben eingetroffen ist oder schon vor 10-20 Millisekunden (in etwa diese Genauigkeit braucht man für das SIO Protokoll). Mit einem speziellen Kernel-Treiber/VxD bekommt man das ziemlich gut in den Griff. Damit ist zwar immer noch nicht 100%ig garantiert, daß alles immer klappt, aber die Wahrscheinlichkeit, daß etwas schiefgeht ist nahe 0.
Wenn ich mich richtig erinnere, installiert APE so einen Treiber unter Windows, aber dafür gibt's leider keinerlei Dokumentation...
so long,
Hias