Welcome to Schneider / Amstrad CPC Forum. Please login or sign up.

29. March 2024, 15:32:19

Login with username, password and session length

Shoutbox

TFM

2024-01-15, 17:06:57
Momentan billige Farbbänder auf Ebay für PCW

Devilmarkus

2023-07-09, 10:37:40
Zweiter 👋😂🤣

TFM

2023-06-13, 14:21:49
Sommerloch!

TFM

2023-05-30, 17:00:20
Erster ;-)

Recent

Members
Stats
  • Total Posts: 11,655
  • Total Topics: 1,329
  • Online today: 188
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 1
Guests: 137
Total: 138

137 Guests, 1 User
xesrjb

Z80 Programming "Idioms"

Started by LambdaMikel, 01. November 2019, 07:20:35

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

LambdaMikel

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.

LambdaMikel

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: )

TFM

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: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

almasys

or a würde gegenüber and a ein Byte im Quelltext sparen. Und einen Tastenanschlag.

TFM

Quote from: almasys on 03. December 2019, 13:38: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.
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

almasys

Quote from: TFM on 03. December 2019, 20:10:23
Quote from: almasys on 03. December 2019, 13:38: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!

TFM

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: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Quote from: almasys on 03. December 2019, 20:36:06
Quote from: TFM on 03. December 2019, 20:10:23
Quote from: almasys on 03. December 2019, 13:38: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!

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

oobdoo

Quote from: LambdaMikel on 04. December 2019, 15:57:21
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

TFM

Quote from: oobdoo on 04. December 2019, 18:31:57
Quote from: LambdaMikel on 04. December 2019, 15:57:21
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: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

#10
Quote from: oobdoo on 04. December 2019, 18:31:57
Quote from: LambdaMikel on 04. December 2019, 15:57:21
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: