C64-Projekt für die FH

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

C64-Projekt für die FH

Beitrag von ZeHa »

Servus,

ich hab bei uns an der FH als Projektarbeit ein C64-Spiel in Assembler programmiert und heute abgegeben. War mein erstes Projekt in die Richtung, vielleicht hat ja jemand Lust, sich das anzuschauen :)

www.drwuro.com/elektrosmog/elektrosmog.rar

Quellcode und Doku liegen bei. Aber auch ein lauffähiges .prg-File, das mit jedem C64-Emulator gestartet werden kann. Viel Spaß...
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Hab mir mal eben schnell VICE installiert, und mir Elektrosmog angeschaut. Es lädt problemlos, aber ich bin ehrlich gesagt zu müde, mir jetzt noch die Dokumentation anzuschauen, um rauszufinden, wie ich das Männchen da steuern kann.

Meinen Respekt hast du auf jeden Fall, so ohne weiteres würde ich nichtmal ein Hello-World-Programm in ASM schaffen (weder auf nem modernen Rechner noch auf nem C64).

Da wünsch ich dir mal nen Prof mit Nostalgie-Ader... :)
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Das Männchen steuert man mit dem Joystick in Port II, d.h. Du mußt einfach in VICE den virtuellen Joystick für Port II konfigurieren, beispielsweise mit Pfeiltasten oder was auch immer Du nutzen willst. Steht aber eh nicht in der Doku, hätte ich vielleicht reinschreiben sollen :)

Der Prof bei dem ich das gemacht hab hält auch die Assembler-Vorlesung und findet solche Sachen cool, vor allem auch so Dinge wie self-modifying Code usw. :)
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Für mich wars unschaffbar die Kristalle in so kurzer Zeit einzusammeln :cry: . Erklär mal genauer was an deinem Spielchen nun sich-selbst-modifizierend ist.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Also es ist definitiv möglich, aber ich selbst schaff es immer nur so, daß noch 4 Zeit-Kästchen übrig sind ;)

Das "Selbstmodifizieren" bedeutet, daß z.B. für bestimmte Schleifenzähler die Werte nicht in irgendeinem Register stehen und heruntergezählt werden und auch nicht in einem normalen Speicherbereich (also als Variable), sondern es wird direkt die Anweisung manipuliert. Das heißt also, der tatsächliche Maschinencode ändert sich zur Laufzeit. Das ist deshalb möglich, weil das Programm selbst ja auch einfach nur im Speicher liegt und es keinen "virtuellen Speicher" oder sowas gibt. Ich kann also direkt in meinem eigenen Programm rumfroschen :) das ist je nach Anwendungszweck die "sauberere" Lösung
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Leuchtet ein, aber auch mit Virtuellem Speicher dürfte es noch möglich sein, sofern das Betriebssystem den Zugriff abfängt. Nur da hats Probleme mit der Berechtigung.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Jo kann schon sein, aber damals war das wenigstens auch gängige Praxis :mrgreen:
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Warum gerade der C64?
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Weil das mein Lieblingscomputer ist (und ich zudem einen besitze; für andere Systeme hätte ich mir erst noch Hardware anschaffen müssen)
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Cooles Projekt, werd ich mir morgen mal auf ne SD-Karte ziehen und dann am C64 zocken. Hab nen SD-Card-Reader für den Brotkasten. 8)
DarkDragon hat geschrieben:Leuchtet ein, aber auch mit Virtuellem Speicher dürfte es noch möglich sein, sofern das Betriebssystem den Zugriff abfängt. Nur da hats Probleme mit der Berechtigung.
Unter Windows kein Problem. Man kann auf den eigenen virtuellen Speicher voll zugreifen ohne Schwierigkeiten wegen Berechtigungen zu bekommen. Selbstmodifizierende Programme sind heute aber nicht mehr üblich. Ganz einfach weil nurnoch vergleichsweise wenig in Assembler gemacht wird und es zweitens saumäßig unübersichtlich ist, wenn sich der Code wärend der Laufzeit selbst ändert. In Kopierschutzsystemen wird das aber heute noch stark eingesetzt zum verschleiern des eigentlichen Codes.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten