Hardware > Hardware (Classic 16-/32-Bit)
Arcade-Automat bauen... Wie Buttons an den ST anschießen?
Dennis Schulmeister:
Hallo Stefan,
ein per Software steuerbarer Schalter ist gar nicht so schlecht. Die einfachste Lösung wäre ein Relais, welches du per Parallelport ansteuerst.
Hier gibt es zwei Arten: Relais, welche nur Schalten, solange der Schaltstrom anliegt und Relais, welche umgeschaltet bleiben. Ich denke, letzteres wäre sinnvoll.
Die Software sollte also folgendes machen: Einlesen der Zustände der beiden Knöpfe am Automaten. (Auch per Parallelport). Anschließend betätigen der richtigen Relais, um den Tastendruck zu simulieren. Eventuell kann man den Tastandruck aber auch per Software "simulieren", so dass du keinen Hardwareumschalter brauchst.
Das Problem an der Sache: Der ATARI kann keine zwei Programme gleichzeitig laufen lassen. Das heißt, du müsstest ev. einen Interrupt Handler programmieren, welcher sich z.B. an den Timer-Interrupt oder den Zeilenrücklauf hängt.
Prinzipiell bin ich bereit hierbei zu helfen. Ich muss aber zugeben, dass ich für ATARI noch nie programmiert habe. Nur für x86 unter diversen Betriebssystemen.
Gruß,
Dennis 8)
guest800:
Hallo Dennis!
An Relais habe ich auch schon gedacht. Die Sache mit dem Multitasking ist kein Problem.
Jedes Spiel soll auf einer eigenen Diskette gespeichert werden. Da ist es dann ja kein Problem, ein Skript zu schreiben, dass erst die Relais nach Bedarf umschaltet und dann das Spiel lädt, oder?
Es geht ja nur darum, dass es ein paar Knöpfe geben wird, die je nach Spiel auf eine andere Taste verweisen sollen.
Wie kann man denn mit dem Parallelport die Relais steuern?
Und gibt es vielleicht eine Möglichkeit die Tastatur anzusprechen ohne zusätzliche Kabel an die Tastenkontakte zu löten? Wie ist die Tastenmatrix im ST belegt?
Viele Grüße
Stefan
Dennis Schulmeister:
Hallo Stefan,
ich habe mal vor ein paar Jahren mit einem Freund ein kleines Projekt umgesetzt. Es ging darum, ein selbst gebautes Mini-Auto mit dem Computer zu steuern. Er hat das Auto gebaut, ich war für den Computer-Teil zuständig. (Schön mit einem 486er Laptop unter Windows 3.1)
Das Ansteuern von Relais mit dem Parallelport ist ganz einfach:
Das Parallelport überträgt seine Daten, indem er auf 8 Ausgangsleitungen Strom anlegt oder nicht. Somit kann er zu jeder Zeit den Zustand von genau 8 Bit (1 Byte) darstellen.
Schreibt man eine dezimale 0 über den Parallelport nach draußen, so liegt auf keiner Leitung Strom an.
Schreibt man eine dezimale 1, so liegt auf der ersten Leistung Strom an, da die dezimale 1 binär 00000001 lautet.
Die 2 lautet 00000010, die 3 lautet 00000011 und so weiter.
Das Erkennen von Schaltzuständen erfolgt genau umgekehrt. Der Parallelport bestizt 8 Eingangsleitungen, mit denen er zu jedem Zeitpunkt den Zustand von 8 Bits erkennen kann.
Liegt auf keiner Leitung Strom an, so wird man eine 0 einlesen. Liegen folgende Ströme an 00001011 an, so wird man eine dezimale 11 einlesen.
Du siehst, es ist ganz einfach. Man muss eigentlich nur Relais finden, für welche der Parallelport einen genügend großen Schaltstrom bietet. Das Verdrahten der Knöpfe mit den Eingängen ist etwas aufwendiger, aber auch kein Hexenwerk.
Theoretisch wäre es möglich, ein kleines Script oder auch ein kleines C-Programm zu schreiben, welches zu Anfangs erst die Relais setzt. (Hier helfe ich gerne).
Das Problem ist nur, dass die entsprechende Taste dann "dauergedrückt" ist. Die Spieler haben keine Möglichkeit, während dem Spiel den Modus zu wechseln. So weit ich weis arbeitet der ATARI mit einem Eingangspuffer für die Tastatur. Dieser würde ziemlich schnell überlaufen. Beim PC verursacht sowas immer größere Aussetzer.
Aus diesem Grund würde ich den Weg mit der Interrupt Routine bevorzugen. Ein regelmäßig auftretender Interrupt triggert eine kleine Assembler-Routine, welche den Zustand der Buttons ausliest und den Tastendruck simuliert.
Ich habe gerade einige Zeit im ATARI ST Programmierhandbuch gestöbert und bin mir nicht sicher, ob es nicht möglich ist, einen Tastandruck rein dadurch zu simulieren, dass man den entsprechenden Scancode in den RAM des Keyboard-Controllers schreibt.
Falls die Abbildung der Tastaturmatrix für dich interessant ist, kannst du diese im ATARI ST Hadrware-Handbuch finden. Leider habe ich keinen Scanner, so dass ich sie dir nicht einscannen kann.
Gruß,
Dennis 8)
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln