Brian:
I only use the read routines for a little wav player. I use a 16F1826 at 16 mhz.(Internal Osc).
The working routines:
'************************************************* *****
TESTREAD:
CS1 = 1
PAUSEUS 200
CS1= 0
code = 03 'read command
gosub sendbyte
code = 0 'higher add.
gosub sendbyte
code = 00 'high add.
gosub sendbyte
code = 0 'low add.
gosub sendbyte
nextread:
GOSUB READBYTE
SEROUT2 LED,32,[HEX2 REPLY," "]
'PORTB = REPLY
PAUSEUS 50
GOTO nextread

sendbyte:
sclk = 0
sclk = 0 : memd = code.7 : sclk = 1
sclk = 0 : memd = code.6 : sclk = 1
sclk = 0 : memd = code.5 : sclk = 1
sclk = 0 : memd = code.4 : sclk = 1
sclk = 0 : memd = code.3 : sclk = 1
sclk = 0 : memd = code.2 : sclk = 1
sclk = 0 : memd = code.1 : sclk = 1
sclk = 0 : memd = code.0 : sclk = 1
return
Readbyte:
sclk = 0 'data change point
sclk = 1 : reply.7 = memq : sclk = 0
sclk = 1 : reply.6 = memq : sclk = 0
sclk = 1 : reply.5 = memq : sclk = 0
sclk = 1 : reply.4 = memq : sclk = 0
sclk = 1 : reply.3 = memq : sclk = 0
sclk = 1 : reply.2 = memq : sclk = 0
sclk = 1 : reply.1 = memq : sclk = 0
sclk = 1 : reply.0 = memq : sclk = 0
return
'*********************************************
I conected the M25P in port A and send the data to the PortB.
It works up to 48 Mhz(audio), but I am using it at 16 KHZ.
The M25P does not need anything aditional to work...
Greetings and thanks again...
Ruben de la Pena V.