Hello, Guest the thread was called1.1k times and contains 3 replays

last post from Kratznagel at the

Kapier ich nicht

  • Tach !


    Ich möchte Tabellen mit den Zeropageadressen FC,FD,FE,FF vergleichen. So weit so gut.
    Eine Tabelle liegt ab $A000.
    Wenn die Werte abweichen wird der "falsche" Wert eingelesen und zusammen mit der "Adresse" der Tabelle in eine weitere Tabelle gespeichert.
    Klappt so weit ganz gut.
    Ich lese den Wert mit (FE),Y aus.
    Wenn ich die dazugehörige Adresse in die Fehlertabelle geben möchte wollte ich für low LDA FE,Y und für High LDA FF nehmen.
    Mit dem Highbyte klappt das so, das Lowbyte nimmt allerdings den selben Wert an wie das Highbyte.


    WARUM ?!


    Bevor ich abticke habe ich das jetzt so gemacht:


    CLC
    TYA
    STA BLASE
    LDA FE
    ADC # BLASE
    STA Lowbyte der Adresse in der Fehlerliste


    Fertig. Das funktioniert wenigstens :)


    mfG Hucky


    http://www.emu-ecke.de

  • Ich versteh die Aufgabe nicht ganz? FE/FF bilden einen Vektor in die Gegend von $a000, die Du mit ($FE),y ausliest? Und hin und wieder willst Du die effektive Adresse speichern? Die wäre Y+ $Fe, C+$FF Lda ($FE),y heisst nicht, daß $FE ausgelesen wird und dann Y draufaddiert wird. Es wird $FE/$FF ausgelesen, Y draufaddiert und dann die sich ergebende Speicherstelle gelesen.


    Clc
    Tya
    Adc $fe
    Sta sonstwo
    Lda $ff
    Adc#0
    Sta sonstwo

  • Tach !


    Ok, so geht es auch. Ist vielleicht noch etwas einfacher :)
    Ist mir schon klar, dass wenn ich LDA (FE),Y einlese der Wert aus der resultirenden Adresse gespeichert wird.
    Aber bei LDA FE,Y ?!


    Oh Man !!!


    Ich habs gerade kapiert. War halt spät gestern.
    Wenn FE den Wert #01 enthält und ich den mir LDA FE,Y auslesen möchte wenn Y auch den Wert 1 enthält lese ich ja den Wert von FF aus. Ist doch richtig, oder ?!
    Wenn Y den Wert 2 enthalten würde hätte ich auf einmal den Wert der Speicherzelle 00. Oder nicht ?


    Na denn, Problem gelöst.


    mfG Hucky


    http://www.emu-ecke.de

  • Quote

    Original von Hucky
    Wenn FE den Wert #01 enthält und ich den mir LDA FE,Y auslesen möchte wenn Y auch den Wert 1 enthält lese ich ja den Wert von FF aus. Ist doch richtig, oder ?!


    Genau.


    Quote

    Original von Hucky
    Wenn Y den Wert 2 enthalten würde hätte ich auf einmal den Wert der Speicherzelle 00. Oder nicht ?


    Stimmt auch.
    Und würdest Du LDA $00FE,Y erhältst Du den Inhalt von $0100.
    Aber das nur am Rande. ;)


    CU
    Kratznagel