Using SD libraries with unusual ports

Hi all,

I'm trying to get a SD card reader to work on a custom arduino board that we had made for running gasifiers. The board specifications can be seen at:

http://wiki.gekgasifier.com/w/page/6123727/Gasifier-Control-Unit

Unfortunately two of the ports that are connected to the SD card reader are not considered Arduino pins:

PIN NAME, NUMBER, ARDUINO PIN NUMBER, SD LIBRARY NAME
PJ0 63 15 MISO_PIN
PJ1 64 14 MOSI_PIN
PJ2 65 N/A SCK_PIN
PJ3 66 N/A SS_PIN

So unfortunately digitalWrite and pinMode both return prematurely because SCK_PIN and SS_PIN's ports are set to NOT_A_PIN.

I've tried updating pins_arduino.c to include two new pins (70 and 71):

const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
	// PORTLIST		
	// -------------------------------------------		
	PE	, // PE 0 ** 0 ** USART0_RX	
	PE	, // PE 1 ** 1 ** USART0_TX	
...
	PK	, // PK 5 ** 67 ** A13	
	PK	, // PK 6 ** 68 ** A14	
	PK	, // PK 7 ** 69 ** A15	
    PJ  , // PJ 2 ** 70 ** SD_CAN_SCK
    PJ  , // PJ 3 ** 71 ** SD_NSS
};

const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
	// PIN IN PORT		
	// -------------------------------------------		
	_BV( 0 )	, // PE 0 ** 0 ** USART0_RX	
	_BV( 1 )	, // PE 1 ** 1 ** USART0_TX	
...
	_BV( 5 )	, // PK 5 ** 67 ** A13	
	_BV( 6 )	, // PK 6 ** 68 ** A14	
	_BV( 7 )	, // PK 7 ** 69 ** A15	
      _BV( 2 )    , // PJ 2 ** 70 ** SD_CAN_SCK
     _BV( 3 )    , // PJ 3 ** 71 ** SD_NSS
};

and finally updated Sd2PinMap.h:

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
// Mega

// Two Wire (aka I2C) ports
uint8_t const SDA_PIN = 20;
uint8_t const SCL_PIN = 21;

// SPI port
uint8_t const SS_PIN = 71;
uint8_t const MOSI_PIN = 14;
uint8_t const MISO_PIN = 15;
uint8_t const SCK_PIN = 70;

static const pin_map_t digitalPinMap[] = {
  {&DDRE, &PINE, &PORTE, 0},  // E0  0
  {&DDRE, &PINE, &PORTE, 1},  // E1  1
...

  {&DDRK, &PINK, &PORTK, 7},  // K7 69
  {&DDRJ, &PINJ, &PORTJ, 2},  // J2 70
  {&DDRJ, &PINJ, &PORTJ, 3}   // J3 71
};

Unfortunately the I still get no response from the sd card with the following function:

void InitSD() {
  Serial.print("#Initializing SD card...");
  pinMode(SS_PIN, OUTPUT); 
  if (!sd_card.init(SPI_HALF_SPEED, SS_PIN)) {
    Serial.println("initialization failed. ");
    sd_loaded = false;
    return;
  } else {
    Serial.println("card initialized.");
    sd_loaded = true;
  }
}

And yes, the 2 gig card is formatted to Fat16. Is there anything that I'm missing or any suggestion that anyone can make? Please let me know if there is any other information you all need.

Thanks in advance!