Schlagwort-Archive: 6502

Zahlenspiele (in 6502 Assembler). Es geht weiter…

..der im Folgenden verlinkte Artikel aus der Compute! Ausgabe 34 vom März 1983, zeigt wie die Eingabe von Zahlen programmiert werden könnte:

Zum Artikel

Die bisherigen „Zahlenspiele“ und wie man das in 6502 Assembler machen könnte finden sich hier im Blog, einfach dem Link folgen:

Zahlenspiele mit Retrozock 

Unter dem Schlagwort „Zahlenspiele“ finden sich Artikel mit Beispielen die zeigen, wie in Assembler 8/ 16 Bit Integer auf dem Bildschirm ausgegeben werden können. Die Artikel entstanden bei meiner Arbeit an „Diamonds“ (Projekt Rock).

Es galt zu ergründen, wie ich die aktuelle Punktezahl, Level, Leben usw. auf dem Bildschirm ausgeben könne. Es gelang!

Viel Spass!

Werbeanzeigen

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:

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

Viel Spass!


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…….


MA65 Macro Assembler für Atari 8- Bit..

…vereint das beste aus dem Mac/ 65 und dem Atari Macho Assembler und wurde  speziell für Sparta Dos als Command Line Utility entwickelt.

Das File Image gibt es hier: ATARI8 Software Archive.

Das Image enthält Sparta DOS 3.2 , den Assembler  und einen passenden Editor: XEdit.

Kleiner Tip zum Einstieg in XEdit: Die „Help“- Taste wird auf dem Mac mit „PGDown“ ausgelöst.

MA65 in Aktion!

MA65 in Aktion!


Ringvorlesung im Fach Medienwissenschaften…

…..das Thema meines Vortrages wurde im Forum des ABBUC vorgestellt. Dafür möchte ich mich an dieser Stelle bedanken. Es ist schön und ermutigend zu erfahren, dass das Thema meines kleinen Hobbys auf Interesse stößt.

Das Spielchen selbst ist, verglichen mit den wunderbaren Beiträgen der zahlreichen Entusiasten auf dem Gebiet der 8- Bit Retro Gemeinde, mit Verlaub, sehr rudimentär gehalten. Das Spielprinzip vom berühmten Vorbild „Boulder Dash“ abgeschaut. Dennoch habe ich damit bis jetzt einige der Ziele die ich mit dem Projekt verfolge erreicht. Zum einen ist das Programm beim Spiel für mich selbst zur Herausforderung geworden. Zum  Andren klappt es inzwischen mit dem Programmieren wieder ganz gut. Über 6502 Assembler zu C und C++ war ein interessanter Weg!

Screenshoot

Das berühmte Vorbild – „Boulder Dash“ ist für mich ein geniales Spielchen und eines der ersten Programme denen man nachsagen kann eine Physik Engine besessen zu haben. Man möge mich da korrigieren.

Späte Erkenntnis und dazu noch über Umwege. welche Rolle „Minecraft“ dabei gespielt haben könnte? Nun ja, das erfährt, wer den Weg nach Berlin auf sich nimmt…..

Weiteres:


Programmierte Grafik…..

….oder, dass Titelbild für Projekt Rock.

Der Titel macht es offiziell, Projekt Rock heißt nun „Dirt, Rocks, Diamonds and other Perils“. Wichtiger jedoch ist die Technik die im Aushängeschild meines DIY Spielchens steckt.

Verantwortlich für das Erscheinungsbild sind: Eine modifizierte Display List (Antic-Programm), das Scrolling läuft während des Vertical Blank Interrupts (VBI) und der Regenbogeneffekt wird im Hauptprogramm ausgeführt das in einer Endlosschleife läuft.

Photoshop laden und einfach zeichnen ging früher halt nicht, man musste nehmen, was man hatte……