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

28. March 2024, 12:05:35

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,653
  • Total Topics: 1,328
  • Online today: 80
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 1
Guests: 113
Total: 114

113 Guests, 1 User
HAL6128

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)