;(c) i2viu 04-03-1999 By Vittorio C. i2viu@libero.it ;si entra con il byte da fare mirror nel reg. ;si esce con il valore mirror nel reg ;Esempio: si entra con a=10011101b ; si esce con a=10111001b mirror clr v ;v=0 ldi y,1 ;parto con il primo bit (bit0) ld w,a ;salvo a in w cicle ld a,w rlc a ;b7 di a in CY ld w,a ;risalvo a in w per dopo jrc setx ;se b7=1 cy=1 pertanto salto a setx jp resx ;altrimenti b7=0 e vado a resx setx ld a,y ;prendo nr bit da settare ld x,a ;lo metto in x ldi a,255 com a ;cy=1 e a=0 rcla1 rlc a ;ruoto in a dec x ;conto bit jrnz rcla1 or com a ld x,a ld a,v com a and a,x com a ld v,a ;ho settato il bit e salvo in v jp incy ;vado a contare 8 bit resx ld a,y ld x,a ;x=y clr a ;cy=0 ldi a,255 rcla2 rlc a dec x jrnz rcla2 ld x,a ld a,v and a,x ld v,a ;ho resettato ilbit voluto e salvo in v incy inc y ld a,y cpi a,9 ;se sono gia 8 bit fatti esco jrnc return jp cicle ;altrimenti continuo prossimo bit return ld a,v ret