Chinese 2.2" TFT display with ILI9341

I'm having a bit of difficulty transcribing the Arduino GitHub library for this device to my 24F PIC.

One point of difficulty is in the seemingly simple device ID code where the ILI9341 returns "0x93" and "0x41" in response to a command.

The published READ_REGISTER code (which must be OK as it's everywhere) has the following:

INT8U TFT::Read_Register(INT8U Addr, INT8U xParameter)
INT8U data=0;
sendCMD(0xd9); /* ext command */
WRITE_DATA(0x10+xParameter); /* 0x11 is the first Parameter */
data = SPI.transfer(0);
return data;

and, for example, to return the "0x93" ID I am putting "0x2" for the Parameter ( "WRITE_DATA (0x12)" ) and "0xd3" for the address but it doesn't work and simply returns 0.

Obviously I've translated this code to be readable by my PIC.

Also, I don't know what command "0xd9" is - because it is not listed in the IL9341 manual.

What am I missing? Any help much appreciated.