on first turn-on, the RFM12 outputs a 1Mhz osc for the pic, which I am putting in on OSC1.
After I write the command ... dout = $C0F7 : gosub Writecmd ... this changes that osc freq from 1MHz to 10MHz... so my pic will run at 10MHz. I have figured out the problem to just be that my crystal setting was on XT, not HS.

I am onto the next part of converting C to Basic if anyone dare to assist....
Code:
void WriteFSKbyte( uchar DATA )
{
  uchar RGIT=0;
  uint temp=0xB800;
  temp|=DATA;
Loop: SCK = 0;
  nSEL=0;
  SDI=0;
  SCK=1;
  if(SDO)         //polling SDO
  {
    RGIT=1;
  }
  else
  {
    RGIT=0;
    WriteCMD(temp);
  }
}
So far I have...

Code:
WriteFSKbyte:
temp = $B800

Loop:
SCK = 0
nSEL = 0
SDI = 0
SCk = 1
if SDO = 1 then
  rgit = 1
else
  rgit = 0
endif
SCK = 0
SDI = 1
nSEL = 1
if rgit = 0 then
  goto loop
endif
rgit = 0
dout = temp
gosub writecmd
return
The part I am struggling with right now is...

Code:
  uchar RGIT=0;
  uint temp=0xB800;
  temp|=DATA;
Does this take bit 0 of DATA and stick it to temp somehow??

Someone with some C knowledge please help me!

Thanks!