I think I am almost there.
I am checking the program and the ISD4003 datasheet. there is one last thing I am confused about. It is the following lines in the spi_send section in this thread:
http://www.picbasic.co.uk/forum/show...hlight=isd4003

isd_data_out = address REV 16
isd_data_in = isd_data_in REV 16 ' Reverse the bits of incoming data (received LSB first)

I do not understand why we need to reverse ..

ken