Statt char bildschirm [20x40] jetzt $0400

Es gibt 1 Antwort in diesem Thema, welches 745 mal aufgerufen wurde. Der letzte Beitrag (16. Dezember 2011 um 13:19) ist von Vernunftmensch.

  • Hallo,

    um nicht genutzten Speicherplatz nutzbar zu machen, möchte ich nicht mehr, daß das Feld von cc65 angelegt wird, sondern einfach ab 0x0400 startet, wo früher meine Bildschirmausgabe war, die jetzt bei 0xe400 liegt.

    einfach mit:
    Bitte melde dich an, um diesen Link zu sehen. bildschirm 0x0400

    ...klappt nicht.

    Ich benutze memcpy, bildschirm [43], inlineassembler siehe drunter

    Code
    __asm__ ("lda     #<(%v)",bildschirmadresse);
    			__asm__ ("sta     ptr2");
    			__asm__ ("lda     #>(%v)",bildschirmadresse);
    			__asm__ ("sta	  ptr2+1");

    Wie kann ich das codeangelegte Array ersetzen, damit es irgendwie läuft?

  • Lösung


    //Der Bildschirmzwischenspeicher

    //char bildschirmc [40*25];
    //char *bildschirm=(char*) bildschirmc;
    char *bildschirm=(char*) 0x0400;
    Bitte melde dich an, um diesen Link zu sehen. bildschirmadresse bildschirmc
    Bitte melde dich an, um diesen Link zu sehen. bildschirmzeigerzahl (void*) bildschirm

    char zustand [40][25];
    //Das Schachbrett.

    //Farbspeicher
    char farbspeicher [25][40];