Posts by Claus

    Erinnert mich an den nerdigsten Witz, den ich in letzter Zeit gehört habe:


    Ein Elektron fährt auf der Autobahn, als es durch eine Radarfalle fährt. Ein Polizist hält es an und sagt: "Sie wissen schon, dass Sie gerade exakt 117 km/h gefahren sind?". Das Elektron antwortet "Na super, jetzt hab ich mich verfahren..."

    Wenn ich mich recht erinnere, werden Variablen vom Basic-Ende abwärts angelegt. Das Basic-Ende beschreibt also quasi, wo der gesamte für Basic zur Verfügung stehende Speicher endet.


    EDIT: oh, nein, das war $37/$38.

    So richtiger Schaden entstand ja erst, wenn es Kopien der Kopien etc. gab, und somit aus einem verkauften Spiel hunderte/tausende unbezahlte wurden. Das geht mit dem guten alten Doppeltapedeck nicht, da die Kopien zum einen mit jeder Generation der Kopie eine größere Wahrscheinlichkeit hatten, nicht mehr zu funktionieren, und sie sich zum anderen nicht einfach per Modem verteilen ließen. Daher haben sich die Firmen wohl vor allem gegen digitale Kopien (also Cracks) schützen wollen. Dazu sind die speziellen geschützten Laderoutinen, die es teilweise gab, sinnvoll gewesen (naja, zumindest ein wenig).


    Meine persönliche Erfahrung mit dem Doppeltapedeck war damals übrigens gemischt, meist gingen die Kopien nicht. Mein Ghettoblaster war vielleicht zu schrottig.

    Das schiebt doch Bit 2 ins Carry, oder? Das AND ist dabei aber natürlich eigentlich überflüssig. Aber vielleicht passiert mit dem Carry nachher noch etwas?

    Der Bereich hinter dem Textschirm ist normalerweise zu klein für irgendwas und daher eher frei.

    Wird aber auch gerne bei schlampiger Programmierung zusammen mit dem Bildschirm gelöscht oder gescrollt oder oder :D. Ich spreche aus Erfahrung :saint:.

    Huch, scheinbar habe ich mich unklar ausgedrückt. Ich versuchs nochmal (räusper):


    Ein Glück dass es am Cevi wenigstens dokumentierte Kernaleinsprungpunkte gibt, auch wenn die nicht alles an Funktionalität abdecken, die man sich wünschen würde. Denn beim wilden Springen ins ROM merkt man hie und da, dass so manche Routine sich unerwartet verhält, da sie nur als interne Einsprungadresse gedacht war. Hach, gäbe es doch nur mehr offizielle Einsprungstellen, womöglich sogar im Basic-ROM!

    Oha, das ist ja mal ein gutes Beispiel, warum es dokumentierte Kernaleinsprungadressen gibt. Bei allem anderen kann man nie sicher sein, was passiert und ob es Nebeneffekte gibt :)

    Der größte Wert beim SD2IEC ist übrigens 63999 Blocks (knapp 16 MB)

    Sicher? Ich dachte, zumindest die Directory-Anzeige des C64 wäre auf die Hälfte begrenzt, da die vorzeichenbehaftete Ausgabe der Basiczeilennummer dafür missbraucht wird. Oder zeigt er dann irgendwann negative Werte an?

    Praktisch gar nicht, außer die Dateigröße wurde mir einem Dir-Manipulator, wie z.B. mit dem Disk Wizard, verändert. Bei "Blocks Free", kann das öfter vorkommen. FD-4000 oder CMD-HD zum Beispiel.

    Wenn die SD-Karte auch für den PC benutzt wird, ist das nicht ungewöhnlich (10000 Blocks sind 2.5 MB). Bei Dateien für den C64 ist das natürlich wenig relevant. Ich hätte auch gesagt, solange das Verhalten „robust“ ist, reicht das. Dass solche Werte korrekt angezeigt werden, ist nicht so wichtig.

    Auf Medien wie dem sd2iec können Dateien bis zur maximalen Basiczeilennummer groß werden (32767? Ich weiß nicht mehr genau). Also bräuchte man 5 Ziffern, um für alles gewappnet zu sein.

    Ich hab zwar alles gelesen, ist aber schon ein wenig her, willst Du es nicht einfach bereitstellen mit dem Hinweis Vorabversion? Dann wird das bestimmt wer laden und testen. Tritt ein Fehler auf wird es sicherlich auch eine Rückmeldung geben.

    Das würde ich auch vorschlagen. Ein Spiel komplett durchzutesten ist eine sehr mühselige Angelegenheit, kein Wunder dass da die Freiwilligen nicht die Tür einrennen. Lieber irgendwo prominent eine Möglichkeit kommunizieren, Fehler zu melden und dann auf die Crowd-Intelligenz aller Spieler setzen. Das wird man eh brauchen, denn auch ein dedizierter Tester wird natürlich Fehler übersehen.

    Ich denke, das Problem ist die fehlende Initialisierung von oldpotx+1 und oldpoty+1. Die Routine bildet ja die Differenz aus aktuellem Potwert und dem vorigen. Wenn der vorige auf 0 steht, bewegt sie im ersten Aufruf den Mauszeiger gleich ein ganzes Stück. Initialisiere mal die beiden Werte irgendwo auf den momentanen Pot-Wert.