.define .xor
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text

! auxiliary size 'xor'
! parameters:
!    de: size
!    stack: operands
!    stack: result (out)



.xor:
	pop ix
	ld h,d
	ld l,e
	add hl,sp
	ld b,h
	ld c,l
	ex de,hl
	add hl,de
1:	dec hl
	dec de
	ld a,(de)
	xor (hl)
	ld (hl),a
	xor a
	sbc hl,bc
	jr z,2f
	add hl,bc
	jr 1b
2:	ld h,b
	ld l,c
	ld sp,hl
	jp (ix)