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