Autor Thema: Indexregister  (Gelesen 3929 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 468
  • Liked: 123
  • Karma: +17/-0
  • Geschlecht: Männlich
  • :P
Indexregister
« am: 20. Februar 2015, 20:04:16 »
Seh ich das eigendlich richtig, das die Indexregisterr IX/IY von den Firmware-Routinen nie verändert werden?
Auf jeden Fall sind sie schonmal praktisch.
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

Offline almasys

  • CPC 664
  • ***
  • Beiträge: 147
  • Liked: 53
  • Karma: +22/-0
Re: Indexregister
« Antwort #1 am: 20. Februar 2015, 21:51:01 »
Welche Routinen welche Register beeinflussen ist z.B. im Schneider CPC Systembuch beschreiben. Da werden auch mal die Indexregister beeinflusst.

Schönes Wochenende,
AMSi

Offline TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 3293
  • Liked: 781
  • Karma: +43/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Indexregister
« Antwort #2 am: 20. Februar 2015, 22:14:29 »
Praktisch ja, aber auch langsam(er) als normale Register.

Am besten verwendet man die um 8 Bit Werte zu speichern, geht schneller als in RAM zu legen.

Beispiel:

DB &DD : LD H,B     kopiert Register B in Register IX high

TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 24.01.2021)
http://futureos.cpcwiki.de/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 21.01.2021)

Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 468
  • Liked: 123
  • Karma: +17/-0
  • Geschlecht: Männlich
  • :P
Re: Indexregister
« Antwort #3 am: 20. Februar 2015, 22:22:02 »
Welche Routinen welche Register beeinflussen ist z.B. im Schneider CPC Systembuch beschreiben. Da werden auch mal die Indexregister beeinflusst.
Interessant. Hab jetzt ja das Systembuch analog hier liegen. Da wird extra auch auf die Indexregister eingegangen, in meinem deutschen Firmwaremanual nicht.
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 468
  • Liked: 123
  • Karma: +17/-0
  • Geschlecht: Männlich
  • :P
Re: Indexregister
« Antwort #4 am: 20. Februar 2015, 22:22:37 »
Praktisch ja, aber auch langsam(er) als normale Register.

Am besten verwendet man die um 8 Bit Werte zu speichern, geht schneller als in RAM zu legen.

Beispiel:

DB &DD : LD H,B     kopiert Register B in Register IX high
Du meinst,H bekommt den Wert von B.
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

Offline TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 3293
  • Liked: 781
  • Karma: +43/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Indexregister
« Antwort #5 am: 20. Februar 2015, 23:01:02 »
Nein das High-Byte von IX, denn das Byte &DD schaltet auf IX

Wenn Du mit IY arbeiten willst, dann nimm &FD

Beispiel:

DB &FD
LD C,L

Läd / kopiert den Wert von Index Register IY - low Byte in das Register C

Das sind undokumentierte Befehle, sie sind aber in allen Z80 vorhanden.  :)

Siehe Anhang :)
« Letzte Änderung: 20. Februar 2015, 23:05:05 von TFM »
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 24.01.2021)
http://futureos.cpcwiki.de/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 21.01.2021)

Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 468
  • Liked: 123
  • Karma: +17/-0
  • Geschlecht: Männlich
  • :P
Re: Indexregister
« Antwort #6 am: 20. Februar 2015, 23:06:18 »
Achso, die undokumentierten. Ja dann ist mir das auch klar. ;D
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088