C65 Next Generation MEGA65

  • M. J. schrieb:

    (Ja, man kann auch den 6502 in C programmieren, aber der erzeugte Code ist dann dermaßen aufgebläht und umständlich, daß sehr viel Prozessorleistung einfach verpufft.)
    ...
    3.) Stackpointer relative Adressierung: Kein Bedarf vorhanden.

    Wieso denn kein Bedarf? Mit Hilfe dieser Adressierung lassen sich doch schon mal Funktionsparameter komfortabeler übergeben oder ganz allgemein lokale Variablen einfacher realisieren.
  • Und von dem was ich bislang gelesen habe, dürfte der "Kachelmodus" (ich nehme an, hier ist Grafik mit Charsets gemeint) eher nicht so der Riesenbringer sein beim C65, bzw nix groß anderes als beim C64.

    Grafik passiert über die Bitplanes.
  • ogd schrieb:

    Mit Hilfe dieser Adressierung lassen sich doch schon mal Funktionsparameter komfortabeler übergeben oder ganz allgemein lokale Variablen einfacher realisieren.
    Der Befehl macht nicht das, wonach es auf den ersten Blick aussieht, sondern
    1.) Berechne eine Speicheradresse aus der Addition des 8-Bit-Offsets mit dem 16-Bit-Stackpointer.
    2.) Hole von dieser Adresse einen 16-Bit-Wert.
    3.) Addiere auf diesen 16-Bit-Wert das Y-Register.
    4.) Das Ergebnis ist die effektive Adresse, die bei LDA und STA verwendet wird.
    Mit anderen Worten: Der Befehl verhält sich wie (zp), y, nur daß zusätzlich noch der Stackzeiger zu dem 8-Bit-Wert "zp" addiert wird. Ich vermute einmal, man hat diesen Befehl eingeführt, um folgende in C häufig gebrauchte Konstruktion umzusetzen:

    Quellcode

    1. void foo(mystruct *zeiger) {
    2. zeiger->offset = wert;
    3. }
    4. ==>
    5. lda #wert
    6. ldy #offset
    7. sta (lokale_adresse_von_zeiger, SP), y
    Hier befindet sich der Zeiger als lokale Variable auf dem Stack. Um auf den Wert bei zeiger->offset zugreifen zu können, müssen genau die Schritte durchlaufen werden wie oben beschrieben.
    In der Praxis allerdings wird man so nicht vorgehen, sondern den Zeiger entweder in Registern oder gleich als Zeiger auf der Zeropage übergeben, zumal als Nachteil beim echten 65CE02 noch die längere Ausführungszeit (6 Taktzyklen im Vergleich zu 5 bei (zp),y ) hinzukommt wie auch der Aufwand, die Adresse zunächst mal irgendwie auf den Stack zu bringen, aber später auch wieder umständlich vom Stack zu entfernen. Für Assemblerprogramme kann ich mir daher für diesen Befehl keine Einsatzmöglichkeit vorstellen.
  • Tango schrieb:

    Würde den so ein Icon editor von PC euch nicht weiterhelfen ?
    Leider dürfte das nicht ausreichend sein, befürchte ich. Auf diese Weise könnte man lediglich recht simple, unbewegte Sprites bzw. Figuren kreieren, aber keine animierten, die aber notwendig wären, um einem Spiel das richtige Flair zu verleihen. Denk z. B. mal an die laufende und springende Figur aus "Impossible Mission" oder die Kämpfer aus "International Karate", die Monster aus "The Bard's Tale III", oder schau Dir mal das drehende Raumschiff von Retrofan an in diesem Thread. Um sowas zu erzeugen, braucht es schon graphisches Talent, und davon umso mehr, je "besser" die Hardware ist, d. h. feinere Auflösung und mehr Farben wie beim Mega65.
    Um für den Mega65 ein Spiel zu entwickeln, wird eine Einzelperson wohl nicht mehr ausreichen, da braucht es mindestens einen zusätzlichen Graphiker. Nur gibt es von denen nicht so viele, und die wenigen arbeiten bereits an vielen anderen Projekten (Caren, Bombjack usw.), sofern einer überhaupt bereit wäre, für die andere Plattform mit ihren anderen Vorgaben Graphiken zu gestalten. Viele hier aus dem Forum mögen ja gerade die Eigenschaften einer C64-Graphik: 16 Farben, maximal 4 davon pro Multicolor-Bitmap-Block oder 3 davon bei Multicolour Sprites oder 3 allgemeine und eine individuelle beim Zeichensatz usw. Neue Graphikmodi bedeuten auch eine andere Herangehensweise beim kreativen Prozeß. Ich bin zwar kein Graphiker, aber das stelle ich mir genauso schwierig vor wie ein Umstieg von 6502 auf 68000,
  • steril schrieb:

    ZeHa schrieb:

    Na dann hoffe ich mal, ihr gebt bald Rueckmeldung ob das Buch was taugt :D habe es mir naemlich noch nicht geholt...
    Ah ja. Aber erstmal alle anstiften... :D
    Einen Überblick über das Buch gibt es hier

    Der alleinige Zweck dieses Beitrags ist es meinen Counter zu inkrementieren. Jeglicher Sachbezug dient ausschließlich der Dekoration.
    --- "Meine kleinen Projekte"
    --- "3D-Modelle" --- "Platinen" ---

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Zipcom ()

  • Hallo Leute,

    vielleicht sollte man Beiträge zum Buch auslagern, denn auch von mir folgt nun ein kurzes Statement:

    Ich habe das Buch als Ebook gekauft und gestern Abend im Bett angelesen. Es ist in englisch geschrieben, also nix für Leute, die kein Englisch können. Was mich besonders freut ist, dass der Autor darin eine aktuelle Cross-Entwicklungsplattform einsetzt (CBM Prg Studio), die auch ich seit einigen Jahren nutze. Im Laufe des Buches wird ein Weltraum-Shooter entwickelt. Am Anfang behandelt der Autor die wichtigsten Zahlensysteme (Binär und Hexadezimal), um danach zur Installation von CBM Prg Studio zu gehen. Wichtige Einstellungen, die dort vorzunehmen sind, werden auch per Bilder und Text erklärt.
    Bis dahin bin ich gestern noch gekommen. Bin gespannt, wie es weiter geht.

    Liebe Grüße!
    ThomBraxton

    DoReCo #55 am Sa. 16.12.2017 :dafuer:
  • Jörns Projekt retro-programming.de ist ein tolles Werk, mir oftmals aber in einigen Bereichen zu großschrittig. Ich brauche mehr kleine Häppchen. Dazu noch mehr auf die Entwicklungsumgebung angepasst. Vielleicht muss ich mich noch einmal etwas tiefer in Jörns Seite einarbeiten?!?!
    Mit ACME komme ich nicht zurecht. ACME bietet wohl die meisten Möglichkeiten. Ich benötige aber eine detaillierte Schritt-Für-Schritt-Anleitung mit vielen Beispielen.

    Aber zurück zum MEGA65. Ich finde die vielen positiven Nachrichten toll. Man merkt, dass an dem Projekt wieder aktiv und öffentlich gearbeitet wird. Ich hoffe, es geht wirklich bald rund mit der Produktion und dass der MEGA65 als Komplettsystem auch erschwinglich bleibt.

    Liebe Grüße!
    ThomBraxton

    DoReCo #55 am Sa. 16.12.2017 :dafuer:
  • Ich würde sogar sagen, dass KickAssembler weitaus mehr Möglichkeiten bietet als ACME. Trotzdem nehme ich für überschaubar große Projekte (bei denen ich keinen separaten Linker brauche) lieber ACME. KickAssembler ist hat zu nix kompatibel und der Maintainer ist weniger offen für Änderungsanfragen.
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Benutzer online 1

    1 Besucher