Z80 ist doof! (Oder wie geht das??)

Started by oobdoo, 17. February 2017, 20:20:49

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

oobdoo

Ich überlege gerade wie man in Z80 ne Addition durchführt.  :motz:

Beispiel:

ld hl,1000
ld d,255
ld b,77

Wie bekommt man ein HL+D+B hin und zwar so das in HL 1332 steht?  :(
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 17. February 2017, 20:20:49
Ich überlege gerade wie man in Z80 ne Addition durchführt.  Beispiel:
ld hl,1000
ld d,255
ld b,77
Wie bekommt man ein HL+D+B hin und zwar so das in HL 1332 steht?  :(

LD HL,1000
LD DE,255
LD BC,77

ADD HL,DE
ADD HL,BC

In diesem Fall wird die 16 Bit Addition des Z80 benutzt. Das Ergebnis befindet sich in HL.  :)
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)

oobdoo

Mein Problem ist immer noch das ganze mit High/Low Byte, Carry usw.

Habe es jetzt so gelöst:  :irre:

ld hl,1000

ld d,0
ld a,(XaltDurch8)
ld e,a
add hl,de

ld d,0
ld a,(YaltMal3)
ld e,a
add hl,de


Mit fehlt ein "ADD HL,wert" und ähnliches im Z80.
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

#3
Es geht auch ein bischen schneller...



ld hl,1000

ld d,0
ld a,(XaltDurch8)
ld e,a
add hl,de

ld a,(YaltMal3)
ld e,a
add hl,de



Oder alternativ...



xor a,a              ;A = 0 (doppelt so schnell wie ld a,0)

ld  hl,1000

ld  de,(XaltDurch8)
ld  d,a              ;D = 0 setzen
add hl,de

ld  de,(YaltMal3)
ld  d,a
add hl,de

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)

oobdoo

Danke, werde ich mir demnächst genauer anschauen.
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

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)