Autor Thema: Z80 Programming "Idioms"  (Gelesen 503 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline LambdaMikel

  • LambdaMikel
  • CPC 464+
  • *****
  • Beiträge: 768
  • Liked: 296
  • Karma: +30/-0
  • Geschlecht: Männlich
    • Homepage
Z80 Programming "Idioms"
« am: 01. November 2019, 07:20:35 »
Hallo zusammen,
mit der Bitte um Erläuterung - was ist der Sinn von "and a" in diesem Stück:

ld a,(hl)       
 and  a
 jr z,somewhere

Welchen Sinn hat hier "and a"? Außer evtl. dass CARRY zurückzusetzen? Wenn (hl) = 0, dann wird Zero doch ohnehin gesetzt, wenn "ld a,(hl) " ???  :banghead:

Ich hätte das "and a" einfach weggelassen.

Offline LambdaMikel

  • LambdaMikel
  • CPC 464+
  • *****
  • Beiträge: 768
  • Liked: 296
  • Karma: +30/-0
  • Geschlecht: Männlich
    • Homepage
Re: Z80 Programming "Idioms"
« Antwort #1 am: 01. November 2019, 07:27:07 »
EDIT - hat sich erledigt... lese gerade im Zaks, dass LD A, (HL) die Flags nicht beeinflusst.
(Irgendwann wusste ich das wohl auch mal, aber ist schon 35 Jahr her  :irre: )

Offline TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 2847
  • Liked: 700
  • Karma: +34/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Z80 Programming "Idioms"
« Antwort #2 am: 02. Dezember 2019, 22:31:39 »
Komisch, die Nachricht(en) wird mir erst jetzt angezeigt, einen Monat zu spät. Die Forensoftware stammt eindeutig nicht vom CPC. Nun ja. Das mit dem AND A,A hat sich ja erledigt. Flags werden eben nur von mathematischen Operationen und bestenfalls noch IN Kommandos gesetzt.

Die einzigen Ladebefehle die Flags setzen sind:

LD A,R
LD A,I

TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)

Offline almasys

  • CPC 664
  • ***
  • Beiträge: 100
  • Liked: 38
  • Karma: +16/-0
Re: Z80 Programming "Idioms"
« Antwort #3 am: 03. Dezember 2019, 13:38:06 »
or a würde gegenüber and a ein Byte im Quelltext sparen. Und einen Tastenanschlag.

Offline TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 2847
  • Liked: 700
  • Karma: +34/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Z80 Programming "Idioms"
« Antwort #4 am: 03. Dezember 2019, 20:10:23 »
or a würde gegenüber and a ein Byte im Quelltext sparen. Und einen Tastenanschlag.
Wie das? Die brauchen beide ein Byte. So weit ich mich erinnere sind das &B7 bzw. &A7.
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)

Offline almasys

  • CPC 664
  • ***
  • Beiträge: 100
  • Liked: 38
  • Karma: +16/-0
Re: Z80 Programming "Idioms"
« Antwort #5 am: 03. Dezember 2019, 20:36:06 »
or a würde gegenüber and a ein Byte im Quelltext sparen. Und einen Tastenanschlag.
Wie das? Die brauchen beide ein Byte. So weit ich mich erinnere sind das &B7 bzw. &A7.
Die Opcodes sind gleich lang; aber ein Byte im Assemblerlisting sparen zu können, was man damit alles machen kann: Schöner Dokumentieren, ein Label verständlicher benennen - vlelleicht fehlt dem Editor noch ein Byte RAM um ein unendlich cooles Feature zu vollenden! Unendliche Möglichkeiten tun sich da auf!

Offline TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 2847
  • Liked: 700
  • Karma: +34/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Z80 Programming "Idioms"
« Antwort #6 am: 04. Dezember 2019, 10:08:19 »
Ja, stimmt. Du hast ja vom Quelltext geschrieben. So lassen sich leicht 0,00003% einsparen.  :flehan:
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)

Offline LambdaMikel

  • LambdaMikel
  • CPC 464+
  • *****
  • Beiträge: 768
  • Liked: 296
  • Karma: +30/-0
  • Geschlecht: Männlich
    • Homepage
Re: Z80 Programming "Idioms"
« Antwort #7 am: 04. Dezember 2019, 15:57:21 »
or a würde gegenüber and a ein Byte im Quelltext sparen. Und einen Tastenanschlag.
Wie das? Die brauchen beide ein Byte. So weit ich mich erinnere sind das &B7 bzw. &A7.
Die Opcodes sind gleich lang; aber ein Byte im Assemblerlisting sparen zu können, was man damit alles machen kann: Schöner Dokumentieren, ein Label verständlicher benennen - vlelleicht fehlt dem Editor noch ein Byte RAM um ein unendlich cooles Feature zu vollenden! Unendliche Möglichkeiten tun sich da auf!

Wie schon Dagobert Duck sagte - wer das Bit nicht ehrt, ist des Bytes nicht wert!  :zunge0020: :smiley027:

Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 415
  • Liked: 110
  • Karma: +14/-0
  • Geschlecht: Männlich
  • :P
Re: Z80 Programming "Idioms"
« Antwort #8 am: 04. Dezember 2019, 18:31:57 »
Wie schon Dagobert Duck sagte - wer das Bit nicht ehrt, ist des Bytes nicht wert!  :zunge0020: :smiley027:
Mehr wie acht Bit geht aber nicht, dann bin ich total besoffen.  :irre:
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: 2847
  • Liked: 700
  • Karma: +34/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Z80 Programming "Idioms"
« Antwort #9 am: 04. Dezember 2019, 19:27:45 »
Wie schon Dagobert Duck sagte - wer das Bit nicht ehrt, ist des Bytes nicht wert!  :zunge0020: :smiley027:
Mehr wie acht Bit geht aber nicht, dann bin ich total besoffen.  :irre:
Dafür gibt's den zweiten Register-Satz. Einfach ein EX AF,AF' und Du kannst nochmal 8 Bit nachschenken. Genaugenommen sogar Neun! Ja, die das Carry, kann auch ein's vertragen  ;)
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)

Offline LambdaMikel

  • LambdaMikel
  • CPC 464+
  • *****
  • Beiträge: 768
  • Liked: 296
  • Karma: +30/-0
  • Geschlecht: Männlich
    • Homepage
Re: Z80 Programming "Idioms"
« Antwort #10 am: 04. Dezember 2019, 19:36:04 »
Wie schon Dagobert Duck sagte - wer das Bit nicht ehrt, ist des Bytes nicht wert!  :zunge0020: :smiley027:
Mehr wie acht Bit geht aber nicht, dann bin ich total besoffen.  :irre:

Nach acht Bit geht nur noch am Erdinger NIBBLen  :irre: :binkybaby: Oder Paulaner geht auch. 
Unsere Freunde aus der Freistaatlichen Weisswurst-Szene werden Dir das gerne bestaetigen.  :irre:

Schoen, dass die idiotomatische Z80-Programmierung zu solch vergeistigten Gedanken fuehrt :jubelaola:
« Letzte Änderung: 04. Dezember 2019, 19:39:16 von LambdaMikel »