Beiträge von 64erGrufti im Thema „Parameterübergabe über die Zeropage“

    Das kann abgeschaltet werden.

    Was kann abgeschaltet werden?

    Dann ist es aber schlecht programmiert. Entweder, man nutzt bewusst das vorhandene Schnelllademodul, oder man baut einen eigenen Schnelllader ein

    Es geht dabei nicht unbedingt ums Nachladen. Es gibt Programme, die laufen dann einfach nicht.

    Man hat sich m.E. eigentlich darauf geeinigt, einen originalen C64 voraussetzen zu dürfen. Viele Puristen fordern dies sogar als Grundlage.

    Und genau das ist das Problem. Das fängt schon bei einem alternativen Kernel an. Mit so einem "Egoismus" kommen nämlich dann solche Probleme zustande (gut, ich nehme an, dass es hier nicht die Zeropage ist).

    Dass man sich "darauf geeinigt" hat, würde ich weniger sagen. Eher man hat sich "daran gewöhnt".

    Das Schöne an Maschinensprache ist: Die Kiste gehört komplett Dir - wenn Du es willst. D.h., man kann grundsätzlich alle Arbeitsspeicheradressen nach Belieben benutzen, außer die, die hardwareseitig schon in irgendeiner Weise Verwendung finden

    Das kommt eben drauf an, ob man den Anwender unbedingt zwingen will, einen jungfräulichen Computer zu benutzen. Klar, kann man machen, aber das führt auch gerne mal zu Frust.

    Wenn da jemand ein Steckmodul (Basic-Erweiterung, Fastloader, etc.) drin hat, weißt Du halt nicht mehr unbedingt, was Du da benutzen kannst. Ich habe schon öfters Programme gehabt, wo ich mein Steckmodul mit Schnelllader raus ziehen und langsam laden musste. Ich finde sowas als Nutzer nicht erfreulich. Klar, für den Programmierer war das einfach, der Schuß kann aber auch mal ganz schnell nach hinten los gehen, wenn man die Leute frustriert. Ein Programm, was dann von den Leuten durch andere erstezt wird, weil es da weniger Komplikationen gibt, hat man dann umsonst geschrieben.

    Hab ich das richtig verstanden?

    Ja, ich denke schon. So habe ich es zumindest auch verstanden.

    muffi

    Zitat

    Früher waren 64k unglaublich viel, heute reicht es nicht mal mehr für "Hello, world!".

    Da hast Du wohl noch nicht Bitte melde dich an, um diesen Link zu sehen. gesehen

    Da ist der Weg über die Zeropage oder irgendeine eigene Struktur sicher einfacher.

    Kla, das sicherlich. Aber wenn Du konfliktfrei arbeiten willst, was ja Deine ursprüngliche Anfrage war, kannst Du das nicht über die Zeropage machen. Oder Du musst innerhalb Deines Programms einfach ein paar Bytes dafür reservieren. Dann kannst Du es komfortabel und sicher gestalten.

    wenn man die Parameter runter-popped, muss man sie ja meist auch wieder irgendwo zwischenspeichern

    Das funktioniert am PC aber problemlos und ist dort gängige Technik. Warum sollte das hier problematischer sein?

    Wenn ich slebst jetzt mal kein Interruptprogramm schreibe, dann sollte ich selbst über die Register quasi die Kontrolle haben, d.h. vom Programmablauf selbst wissen, was, wann, in welchem Register steht. Wenn ich nun Werte auf den Stack schiebe, kann ich sie im Unterprogramm wieder runter holen und sollte auch in keinen Konflikt rein laufen. Wird ein Interrupt ausgelöst, sollte das Programm dort eh alle Register auf den Stack schieben und vor Beenden wieder runter holen, d.h. bei der Rückkehr aus dem Interruptprogramm sollte eh der vorherige Zustand wieder hergestellt sein. Ich muss mir halt nur vorher schon überlegen, in welcher Reihenfolge ich die Werte auf den Stack schiebe, bzw. in welcher Reihenfolge ich diese brauche.

    selbst wenn ich Zeropage-Adressen verwende die auf meinem System nicht genutzt werden heißt das ja nicht dass das auf anderen Systemen auch der Fall ist.

    Ich glaube, da wird einfach immer davon ausgegangen, dass man quasi auf dem System "alleine" ist. Es gibt ein paar Addressen, bei denen "unbenutzt" dabei steht. Diese kann man erstmal prinzipiell nutzen. Auch der Kassettenpuffer wird gerne verwendet. Am Ende des Bildschirmbereichs ist auch noch etwas ungenutzter Platz.

    Allerdings kann es tatsächlich passieren, dass man noch irgendwas anderes im Hintergrund laufen hat, was einen Konflikt verursacht. Ich bin jetzt auf den 8-Bittern auch noch Anfänger und kenne das vom PC etwas mehr. Dort wird ja für die Übergabe der Stack genutzt. Ich sehe jetzt keinen Grund, das hier nicht auch zu machen, wenn man auf Nummer sicher gehen will.