004
03.12.2021, 09:20 Uhr
Bert
|
So, wie ich das verstanden habe, wird das IR-Register ähnlich gehandhabt, wie PC, der Program Counter. Für das Inkrementieren und Dekrementieren gibt es eine eigene Logikeinheit.
Der I-Teil (Interrupt) darf nicht geändert werden und es war offensichtlich einfacher den Carry-Lock-Ahead-Adder zwischen Bit 7 und Bit 8 zu unterbrechen.
Wer noch was für lange verschneite Winterabende sucht, wir hier zum Thema fündig:
Registerimplementierung des Z80 http://www.righto.com/2014/10/how-z80s-registers-are-implemented-down.html
Die INC/DEC-Logik im Detail: http://www.righto.com/2013/11/the-z-80s-16-bit-incrementdecrement.html
In der Refresh-Phase wird das komplette IR-Register auf den Adressbus gelegt. Man kann das Bit 8 im R-Register also als zusätzliches Flag verwenden, oder - wie beschrieben - den Refresh per Software/CTC auf 8-Bit aufbohren. Ich könnte mir auch vorstellen, das es bei FPGA-Nachbauten und Emulatoren hier zu Unstimmigkeiten kommt.
@PIC: Hübsche Frage übrigens. Wie bist Du da drauf gekommen?
Viele Grüße, Bert -- Viele Grüße, Bert |