Parallele Datenübertragung

…über den Joystick Port des guten, alten Atari 800XL.

Hardware zur Datenübertragung zwischen den alten Atari 8Bit- Computern und aktueller Hardware gibt es schon zu genüge. Ich selbst nenne zum Beispiel das SIO2USB des ABBUC mein eigen. Aber, ich bin nun einmal ein kleiner Kontroll- Freak und möchte was eigenes machen. Hier erst einmal ein paar Gedanken zu Beginn meines kleinen Projektes:

Die Idee: Die Joystick- Ports des Atari können neben der Dateneingabe (über den namensgebenden Joystick- Port) auch auf Ausgabe geschaltet werden. Je Port können so 4 Datenleitungen, insgesamt also 8 Stück zur Ausgabe genutzt werden.

Scematic_Paralell_Interface

Blockschaltbild. 4 Daten- und 3 Kontrollleitungen der fertigen Schaltung.

Ich möchte die 4 Datenleitungen des Port A (die 4 Richtung- „Pins“ des Joysticks) zur Datenübertragung nutzen. Der Trigger (Feuerknopf)- Eingang ist eine Kontrollleitung über die der Empfänger signalisiert „Ich habe 4 Bits empfangen, sende mir die nächsten…“. Von Port B brauche ich zwei weitere Kontrollleitungen als Ausgabe. Leitung 1 signalisiert dem Empfänger, dass Daten anliegen: „bitte hole die ab“. Leitung 2 signalisiert dem Empfänger schließlich das die Datenübertragung beendet ist.

Scematic_1_Bit_Sender

Schaltplan: 1- Bit senden. Einfache Machbarkeits- Studie zum Bockschaltbild.

Daten und Kontrollleitungen werden mit einem Teenys 2.0 (Arduino) verbunden. Über den USB- Anschluss des Teensy  wird eine Serielle Verbindung aufgebaut der die mein Atari mit meine Mac kommuniziert.

 

Screen Shot 2019-04-13 at 1.09.16 AM

6502- Assembler Source Code (Atari Assembler Editor). Schaltet die LED in der Schaltung wechselnd an oder ab indem der Digital- In des Teenys 2.0 auf Low (=0=LED an) und High (=1=LED aus) gezogen wird. Die Software im Teenys gibt den Ein-/ Ausschaltbefehl an die LED.

 

 

C- Source- Code in Arduino Studio. Wichtig: Wenn „Low“ gelesen wurde, dann heist das, dass der Atari eine ‚1‘ gesendet hat, die Leitung also auf High liegt.

int const LED_PIN=PIN_B0; 
int const IN_PIN=PIN_B1; 
void setup() { pinMode(LED_PIN,OUTPUT); 
digitalWrite(LED_PIN,LOW); 
pinMode(IN_PIN,INPUT_PULLUP); 
void loop() { 
int pinState; 
pinState=digitalRead(IN_PIN); 
if (pinState==LOW) digitalWrite(LED_PIN,HIGH); 
else digitalWrite(LED_PIN,LOW); 
digitalWrite(LED_PIN,LOW); 
Serial.println(pinState); 
}

Werbung

3 responses to “Parallele Datenübertragung

  • Freetz

    Das ist quasi das Prinzip, auf dem auch MidiJoy aufbaut :)…

    • Berthold

      Ich bin darauf gekommen, weil ich bei der Seriellen Übertragung zu viele Probleme mit dem Timing auf mich zukommen habe sehen. Inzwischen funktioniert das Senden ganz prima. Ich möchte das Projekt so abschließen, dass die Hardware schließlich über die USB Verbindung mit Mac OS kommunizieren kann. Optional soll es möglich sein ein Bluetooth Modul (HC05 o.Ä) oder die WiFi Variante einzustecken.

      Die Software besteht aktuell aus einen Debugger. Dazu kommt ein Disk- Kopierer, mit dem man eine Disk vom Atari direkt auf seinen Androiden oder den Mac übertragen kann.

      Mein Fernziel ist es einen Server für Android zu schreiben, mit dem dann mehrere Ataris mit meinem Interface, über Wifi im Lan, kommunizieren können. So oder so, das Lötfiber hat mich gepackt!

  • Freetz

    Das klingt ja sehr spannend! Wobei ich jetzt im Zuge von Atariduino gesehen habe, dass auch die SIO-Kommunikation ziemlich einfach ist, wenn man sich eines der vorhandenen R:-Treiber bedient (in meinem Fall der R-Verter). Dann hat man ganz normale serielle Kommunikation auf TTL-Basis, die man bei Bedarf mit eienm MAX232 Chip auf RS232-Pegel umwandeln kann, was dann über einen entsprechenden USB-Adapter auch an moderne Rechner anschließbar ist. Das HC05 kannst Du mehr oder weniger direkt an den SIO-Port anschließen, das hat Marcin (Monzezuma) bei seinem Wettbewerbsbeitrag vor ein paar Jahren ja schön demonstriert. Aber da mit dem Server ist auf jeden Fall eine spannende Sache, dann viel Erfolg beim weiteren Löten :)!

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: