Monatsarchiv: April 2013

Testbericht zum Mac 65 Assembler

Einen zeitgenössischen Artikel findet man da:

Craig Chamberlain / Compute! Ausgabe 43 / Dezember 1983 / 

Bildschirmfoto 2013-04-29 um 21.44.26

Assembler, frühe IDE, eine Auswahl


Pitfall

Nettes Spielchen, ob als Original oder als Remake. Kürzlich entdeckt: Eine Version im ASCII- Zeichen Format….

http://meatfighter.com/pitfall/

Interessant ist, dass der Source Code des Originals dort verlinkt ist (leider nicht der original Source, sondern die restaurierte, diassemblierte Variante).

Wer sich schon immer für interessiert hat, wie das Spielfeld generiert wurde, der findet auf der Seite eine Anleitung, wie das im Detail funktionierte.

Weiteres zum Thema Spiele Entwicklung für die 2600 Konsole findet sich hier im Blog:

http://retrozock.com/2012/01/12/atari-2600-wie-wirds-programmiert/

Viel Spass!


Warum sehen Spiele so aus, wie sie aussehen?

Nun, ich möchte nicht den Versuch unternehmen, dass am Beispiel bekannter Produkte aus der 8- Bit Ära  zu erklären. Wohl aber möchte ich das am Beispiel meines eigene kleinen Spieleprojektes versuchen.

Tja, Photoshop o.ä. geladen, gezeichnet und im Spiel verwendet. Das Ergebnis hängt stark vom Talent desjenigen ab, der gezeichnet hat.

Wie war das denn in den Gründerjahren? Die netten kleinen Sprites wurden doch auch gezeichnet? Der Unterschied zum Hier und Jetzt bestand aber in den limitierten Ressourcen die eher grobe, mit wenigen Farben ausgestattete Bildschirm Protagonisten zum Ergebnis hatten. Talent konnte man hinter diesen Pixel- Haufen wunderbar verstecken oder es kam durch die beschränkten technischen Möglichkeiten erst so richtig zur Geltung!

Grafik wurde nicht gezeichnet, sondern programmiert.

Eine Spielfigur entsteht, von Hand

Eine Spielfigur entsteht, von Hand

Bildschirmfoto 2012-07-07 um 23.29.59

Das fertige Ergebnis meiner Bemühungen auf dem Bildschirm

Bevor ein Figürchen wie im Film oben auf dem Bildschirm erschien, hies es mit Papier und Stift zeichnen, rechnen und das Ergebnis in den Computer zu übertragen. Später gab es für so etwas Software- Tools, am Prinzip hat sich dabei aber nix geändert.

Farbe kommt durch geschicktes Kombination mehrerer Sprites ins Spiel, schaut mal da:

http://www.youtube.com/watch?v=fiB3psPyfY4

Tja und der Hintergrund? Pixel ja, aber in Portiönchen von 8 x 8 großen Bit- Matrizen, meist durch Manipulation des Systemeigenen Zeichensatzes in eigene Grafikzeichen verwandelt und dann, einem Puzzlespiel nicht unähnlich, zum Spielfeld zusammengesetzt. Ja, so war das Damals!

Typisches Spielfeld, zusammengesetzt aus Manipulierten Zeichen des Systemzeichensatztes

Typisches Spielfeld, zusammengesetzt aus manipulierten Zeichen des Systemzeichensatzes. Atari 800 XL, 64 kB RAM. Bildschirm: 2 Zeilen im Modus 1 am oberen Bildrand zur Textdarstellung , 11 Zeilen im Modus 13 für das Spielfeld. Farbwechsel zwischen Textanzeige und Spielfeld mittels Display List Interrupt. Vier mögliche Farben je Grafikzeichen im Spielfeld. Sechs Farben für die Spielfigur durch Kombination dreier Sprites (Atari Jargon: Player – Missile Grafik).

Sprites und manipulierte Zeichen des Systemzeichensatzes, diese beiden Elemente der Grafikdarstellung in Spielen, dass hatten beinahe alle Spiele der bekannten 8- Bit Systeme gemein.  Der Spezielle Look des oben gezeigten Beispiels, aus meine Spieleprojekt „Diamonds“, alias „Rock“, entstand aus der Entscheidung einen bestimmten Grafikmodus – und damit eine bestimmte Bildschirmauflösung – zu verwenden.

Die Entscheidung wurde nicht etwa dadurch determiniert, dass dadurch – ästhetisch – das beste Ergebnis erzielt werden würde, sondern hatte handfeste technische Gründe. Doppelte Auflösung frisst mehr Rechenleistung, Speicher  und setzt mehr Erfahrung beim Programmierer voraus. Beides fehlten mir. Der Atari hat nun mal nur 1,7 Hz, und ich lerne 6502 Maschinensprache.

To be continued…


Lean Code am lebenden Beispiel…

…Source zum „Projekt Rock“ entrümpelt.

Die Erkentnisse aus „6502 Lean Code durch sparsame Flags“ gleich ausprobiert. Spart einiges an Source Code und gewinnt damit mehr Speicherplatz für’s Editieren. Der Objekt Code wird ca. 12 Bytes kleiner. Schön!

Source, Projekt Rock. Stand: 9.4.2013

Source, Projekt Rock. Stand: 9.4.2013

Die als Kommentar gekennzeichneten Zeilen können selbstverständlich entfallen. Was ehemals „MOVE“ hies und ein Byte verschwendete, wurde nun durch das Carry- Flag des 6502 ersetzt.

Schon Toll. Wir nähern uns einem Boulder Dash- alike, das nur knapp 2kB! RAM belegt.


6502 Lean Code durch sparsame Flags

Man ruft ein Sub. Das Sub soll signalisieren ob einen Bedingung erfüllt ist oder nicht. 

Nun ja, wir lassen das Sub einfach ein Flag entsprechend der zu prüfenden Bedingung setzten. Der Aufrufende Programmteil prüft nun diese Flag und reagiert entsprechend. Könnte so aussehen:

JSR CHECK
LDA FLAG
CMP #ISOK
BNE NOTOK
ALLES KLAR. DO WHATEVER….

NOTOK:
DO WAHTEVER…..

CHECK:
LDA BEDINGUNG
CMP #ERFÜLLT
BNE NICHTERFÜLLT
LDA #ISOK
STA FLAG
RTS

NICHTERFÜLLT
LDA #NOTOK
STA FLAG
RTS

Umständlich!

Wir verschwenden ein ganzes Byte für das Flag und wir müssen LDA / STA und LDA / CMP ausführen. Noch mehr verschwendeter Platz! Nun bietet unser 6502 eine Menge Register. Warum nicht das Carry- Flag als „Flag“ nutzen. Dafür ist es schließlich gedacht.

Das Bespiel oben könnte dann so aussehen:

JSR CHECK
BCS ISOK
DO WHATEVER…. (Not Ok!)

ISOK:
ALLES KLAR, DO WHATEVER!

CHECK:
LDA BEDINGUNG
CMP #ERFÜLLT
BNE  NICHTERFÜLLT
SEC  (Bedingung ist erfüllt)
RTS

NICHTERFÜLLT:
CLC
RTS

Recht elegant…….


Atari Basic Source Book….

…die Beschreibung auf dem Buchdeckel sagt bereits alles! 

Kommentierter Source und ausführliche Beschreibung der Funktionen im Text. Was will man mehr? Ein Schönes Beispiel für die ausführliche Behandlung des Themas ist die Beschreibung der Interpretation mathematischer Terme im Detail. Wer also schon immer einmal wissen mochte, wie Atari Basic 1 + 1 zusammenzählt, bitte Sehr!

The Atari Basic Source Book

Verlinkt: 12.9.2014

Bildschirmfoto 2013-04-06 um 23.08.41

 

 


Source gone puplic

In der letzten Zeit „häufen“ sich die Meldungen über wieder entdeckten und veröffentlichen Source bekannter Software aus den 80′ ern. Im Folgenden der Beginn einer Sammlung. 

Bekannt sind bis dato die Folgenden Spiele:

Des Weiteren wurde das OS B der Atari 8- Bit Computer diassembliert und ins’s Netz gestellt. Näheres dazu da:

Atari 8- Bit Basic Source Listing:

  • Atari 8- Bit Basic – The Atari Basic Source Book –
    Das komplette Basic, kommentiert und in ausführlichen Texten erklärt. Zum Beispiel: Wer schon immer mal wissen wollte, wie Atari Basic mathematische Terme interpretiert, der findet hier, was er sucht!

Apple II DOS

  • Inside Atari DOS – Atari Archives –
    Der Autor des Apple DOS – Paul Laughton – beschreibt  ausführliche Details zum Folgeprojekt, dem Atari DOS. Er geht dabei auch kurz auf die Parallelen zur Arbeit am Apple DOS ein.