Archiv der Kategorie: Uncategorized

Atari Pac Man Source Code

Der Source Code von (Atari) Pac Man für die Atari 8- Bit Computer wurde veröffentlicht. Go, Play!

Screen Shot 2019-09-27 at 8.22.43 PM

[1] Atari Wiki.Der Source Code in einer unter der WUDSN- IDE kombilierbaren Form und eine Version die mit dem Atari Macro Assembler [3] bearbeitet werden kann.
Es sind Versionen veröffentlicht die von Roklan, Datasoft und von Atari vermarktet wurden.

[2] Antic, The Atari 8- Bit Podcast. Episode 61. Dieser Podcast hat mich auf die Veröffentlichung unter [1] aufmerksam gemacht.

[3] Atari Macro Assembler, Beispiel Sitzung.

Werbeanzeigen

Wander

Wander kann mit einiger Sicherheit als eines der ersten Textadventure Spiele bezeichnet werden.

Lauffähige Versionen von Wander (Peter Langston) gibt es bereits seit 1974, also ein Jahr bevor Adventure (Crowther/ Woods) das Licht der Computerwelt erblickte. Unter [1] wurde die Entdeckung ursprünglich erwähnt, der Blogeintrag unter [2] bezieht sich darauf und nennt weitere Hintergrundinformationen und enthält Download- Links zu unterschiedlichen Source- Code Versionen des Spieles, die von Peter Langston zur Verfügung gestellt wurden.

Wander ist nicht nur ein reines Textadventure, sondern ein sogenanntes World Building Tool das, so ist es unter [1] beschrieben, Datenbanken als Welten nutzt. Wie es scheint, gibt es mehrere Spiele die unter Wander ausgeführt werden können.

[1] Renga in Blue, Lost Mainframe Games (Jason Dyer).
[2] Retroactive Fiction A lost Mainframe game is found.

Nachtrag
Ich habe mir den Source- Code zu Wander inzwischen von Quelle [2] heruntergeladen. Die sogenannte „third version“ – die Peter Langston zur Verfügung gestellt hat –  lässt sich anstandslos unter Mac OS 10.13.6 „High Sierra“ kompilieren.

 

Screen Shot 2019-09-23 at 8.11.32 AM

Wander, „third Version“ auf meinem Mac unter Mac OS 10.13.6.


KWEST PD Library

Russ Campbell hat die Programm- Bibliothek der Kitchener/ Waterloo Eight Sixteen Thirty Two Atari Users Group in Ontario, Canada auf der Facebook Gruppe Atari 8-bit Computers veröffentlicht.

Die Dateigröße beträgt stolze 7 MB (ZIP- Archiv). Ich habe mir die Sammlung heute Abend heruntergeladen und „Stichproben“ genommen. Neben einer Interpretation des allseits bekannten Tetris finden sich weiter Adaptionen bekannter Titel, Star Trek beispielsweise.

Zum Download geht es hier
 

[1] Wikipedia: Kitchener, Ontario
[2] Fundstücke der KWEST im Netz: Meetup 1992.

Alle Links in diesem Artikel, zuletzt aufgerufen am 14.6.2019 


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.

 

 

 


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);
}

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.


Code Optimierung

Programmiert habe ich im letzten Jahr viel in Java mit Android Studio oder Eclipse. Weniger mit ATMASS II oder dem Assembler Editor . Aber, weil ich meinem Atari 800XL die Kommunikation mit meinem Handy (Android) beibringen möchte und neben der Hard- auch die entsprechende Software brauche, habe ich wieder damit begonnen mich mit der 6502 Maschinensprache zu beschäftigen.

Für den kleinen Atari brauche ich ein einfaches Terminal das Daten seriell sendet und empfängt. Begonnen habe ich mit einer Machbarkeits Studie zum Senden. Das Programm nimmt einen String und wandelt jeden Buchstaben in eine Binärzahl. Gesendet wird das LSB zuerst, zunächst auf den Bildschirm, später an die Ausgabe.

Screen Shot 2019-03-08 at 12.09.36 PM

Test- Code zum für das serielle Senden von Daten in 6502 Assembler. Es wird ein Byte geholt und acht mal nach rechts verschoben (lsr). Wenn Bit 0 gesetzt war, wander es in das Carry- Flag des 6502. Wenn es nicht gesetzt war, bleibt das Carry- Flag unberührt. Anschließend wird entsprechend dem Ergebnis entweder 0  oder 1 gesendet. Hier, zu Testzwecken,  an den Bildschirmspeicher (Die Adresse ist in der Speicherstelle 88 und 89 -low- byte/ high- byte – abgelegt).

Der Ausschnitt aus meine Code zeigt, wie sich durch geschicktes Ausnutzen der Tatsache, dass „ADC #0“ nur dann „null“ addiert, wenn das Carry- Flag nicht gesetzt ist. Ist es gesetzt, dann wird „null+Carry“, also „eins“ addiert.
Man beachte nun die auskommentierten Code- Zeilen, insgesamt fünf, die man einsparen kann.

 


Mikrocomputer selbst gebaut

Das Buch habe ich mir Heute über Amazon eingekauft. Auf dieser Seite kann man es als PDF- bekommen. Viel Spass beim Löten.


Apollo Guidance Computer

Der Retro Computing Round Table Podcast (RCR) hat in seinem Blogeintrag zur Folge 182 eine Video Playlist (YouTube) veröffentlicht, die die Reperatur/ Konservierung des oben genannten Computers dokumentiert.

Eingabe Einheit/ Benutzer Schnittstelle des Apollo Guidance Computers. Identische Einheiten wurden in der Apollo Kapsel und in der Mondlandefähre genutzt. Der eigendliche Computer ist nicht zu sehen. Über die Eingabe eines Zahlncode- Paares (Verb, Noun) konnten die Austronauten dem Computer mitteilen, was der machen sollte. Quelle: WikiPedia/ Public Domain.

Links:

RCR- Podcast Folge 182

Direkt- Link zur YouTube Playlist

Die Links habe ich zuletzt am 8.1.2019 getestet.