Even faster (not mentioning that I wrote push/pop IYL for some reason...): push iy ld (SAVESP),sp ld de,LEFTBYTE ld bc,RIGHTBYTE ld sp,64 ; shifting by 6 bits in this case ld hl,0 ; shifted byte ld iyl,d ; always zero LOOP: add hl,sp ld a,h ld (de),a ld a,l ld (bc),a inc de inc bc dec iyl jp nz,LOOP ld sp,(SAVESP) pop iy -- http://fastmail.fm - Email service worth paying for. Try it for free