//Pin Mapping
//
//Arduino 9 (PORTB) -> YM Addr/Data 7
//Arduino 8 (PORTB) -> YM Addr/Data 6
//Arduino 7 (PORTD) -> YM Addr/Data 5
//Arduino 6 (PORTD) -> YM Addr/Data 4
//Arduino 5 (PORTD) -> YM Addr/Data 3
//Arduino 4 (PORTD) -> YM Addr/Data 2
//Arduino 3 (PORTD) -> YM Addr/Data 1
//Arduino 2 (PORTD) -> YM Addr/Data 0
//Pin Setup
DDRD = DDRD | B11111100; // sets Arduino pins 2 to 7 as outputs, leaves 0 & 1 untouched.
DDRB = DDRB | B00000011; // sets Arduino pins 8 and 9 as outputs, leaves 10-13 untouched.
//Port Writing
PORTD = (data << 2) & B11111100; // Shifts data 2 bits left to set up lower 6 bits of data to occupy upper 6 bits of PORTD, masked and written out.
PORTB = (data >> 6) & B00000011; // Shifts data 6 bits right to set up upper 2 bits of data to occupy lower 2 bits of PORTB, masked and written out.