void ReadSerialFlashPage(uint16 PageNum, uint8 *pBuffer)
{
uint16 i;
// Send command packet.
SPIputchar(0xd2); // Main Memory Page Read command.
SPIputchar((PageNum >> 7) & 0xff); // 0 0 0 0 PA10 PA9 PA8 PA7
SPIputchar((PageNum << 1) & 0xff); // PA6 PA5 PA4 PA3 PA2 PA1 PA0 BA8(=0)
SPIputchar(0x00); // BA7..BA0 = 0x00
SPIputchar(0x00); // Don't care.
SPIputchar(0x00); // Don't care.
SPIputchar(0x00); // Don't care.
SPIputchar(0x00); // Don't care.
// Copy returned data from flash to RAM.
for (i = 0; i < 256; i++)
*pBuffer++ = SPIgetchar();
}