Zweitregistersatz mit der Firmware verwenden

  • Hi all,
    wenn ich den Zweitregistersatz auch unter der Standard Firmware verwenden moechte, was muss ich dann alles machen?
    Wuerde folgender Codeschnippsel ausreichen oder ist das schon zu viel des Guten?


  • Hmm, dein Posting hab ich jetzt nicht so genau verstanden... Sieht ein wenig aus, als haettest du Wasser getrunken ;).
    Exx hab ich deshalb mit reingenommen, um an den Zweitregistersatz von DE, HL und BC ranzukommen und den dann mittels PUSH zu sichern.
    Wenn ich das naemlich richtig in Erinnerung habe, dann benutzt die Firmware den Zweitregistersatz intensiv.

  • Hi Octoate,
    DE' und HL' werden außerhalb der Interruptserviceroutinen nicht genutzt. Es reicht also aus BC' zu sichern. Wozu EX AF: PUSH AF gut sein soll will ich aber auch nicht recht einsehen weil ein PUSH AF diese Register ja schon rettet.


    Beispielcode:
    di
    exx
    ;zweiter Registersatz aktiv
    push bc
    push af
    ...
    ;testcode
    ...
    pop af
    pop bc
    exx
    ei
    ret



    Viele Grüße
    TobiFlex

  • Jetzt kommt die ZWEITE: TÄRÄ TÄRÄ


    @Octo
    in der Tat ist es so wie du schreibst. Ich sag ja nur, daß ich den Sinn nicht recht einsehe. Denn nach einem PUSH AF kannst du doch gleich mit AF weiterarbeiten. Aber wenn du wirklich AF' nutzen willst ist EX AF,AF':PUSH AF unumgänglich. A' wird genutzt um einen externen Interrupt zu erkennen.

  • Das C-Flag von F' muß vor EI noch gelöscht werden. HL und DE werden in der Interruptserviceroutine intensiv genutzt - es werden aber außerhalb dieser keine Werte gespeichert. Also reicht es BC' zu sichern und C'-Flag zu löschen.