CPC Wiki Forum Die Amstrad-CPC-Community

textdaten durchlaufen mit pointer

BadCPC tarafından başlatıldı · 2025-05-22 18:15 · Yanıtlar: 1 · Görüntülenme: 1494
#1
Hallo meine Spezialisten, hab da wohl wieder einen denkfehler.
Schreibe gerade eine Routine die eine Zeichenkette hl auf zeichen >=&80 durchlaufen soll, und den text ab a=x als pointer. irgendwo hackt es; mit ld b,a und djnz hab ich schon probiert grübel
bei a=0 kommt ja "hallo" raus, bei a=1 soll "ich" rauskommen usw.

währe für hilfe dankbar.



org &A000
	ld a,2
	call &BC0E
	ld a,2		; textabschnitt in messages
	;ld hl,messages
	call find_messages
	ret

find_messages
	;a = counts do txt
	
	ld hl,messages
	;push hl
	
	cp 0
		jr z,show_text
	sub &1
	ld b,a
	
	ld c,0
	ld a,0
next_string
		push af
		push bc		
	;-------------
next_char
		ld a,(hl)
		cp &A0
			;push af
			jr nc,greater_80
			;pop af
				inc hl
			jr next_char
		
greater_80
		pop af
		pop bc
		inc a
		cp b
		
		jr nc, next_string
	inc hl
	
	jp show_text
ret

show_text
			ld a,(hl)
			cp &A0
			jr nc,fin_txt
			push hl
			call &bb5a
			pop hl
			inc hl
			
		jr show_text
fin_txt
	sub &80
	jp &bb5a
	ret

messages	
		db "Hall","o"	+&80		;0
		db "ich"," "	+&80		;1
		db "bin"," "	+&80		;2
		db "ein"," "	+&80		;3
👍 0👎 0
#2
so hat sich erledigt , war mal wieder schneller im kopf als angebracht 😉
👍 0👎 0

Mesaj yazmak için giriş yapın