In Z80 Assembler:
<pre>
di ; v2.0 -> 31 bytes!
ld bc,#BCFF
out (c),c
.loop
out (c),ald dh,a ; D H = 7654 3210rlca:rlca add hl,hl ; A H = 6543 210-push af ; Carry flag (bit 7) preservedadd hl,hl ; H = 5432 107610--xor d:and #7F:xor d add hl,hl ; H = 4321 0---rra ; A = 7432 10765765 4321ld el,a ; L = 5765 4321rlca pop af ; Carry flag (bit 7) recoveredld a,h ; A = 4321 07670---xor e rra ; A = 7432 1076 XOR 4321 076710--rrc d xor h ; D A = 0765 4321(7 xor 4)*** (1 xor 0)***xor dl:and #88:xor d l ; A = (7 xor 4)765 (1 xor 0)321
cp c
jr nz,.loop