A TFT with an 8-bit databus needs those 4 functions to write or read 8-bits to the appropriate port pins.
In an ideal world, you could reserve a full Port e.g. PORTA on a Mega2560
#define write_8(x) { PORTA = (x); }
#define read_8() ( PINA)
#define setWriteDir() { DDRA = 0xFF; }
#define setReadDir() { DDRA = 0x00; }
Because the Uno uses PD0, PD1 for Serial, you have to use PB0-PB1 and PD2-PD7 for the 8-bit bus. And use the appropriate bit masks e.g.
#define DMASK 0x03 //0b00000011
#define NMASK ~DMASK //0b11111100
Other Arduinos have different Port pins on the Arduino headers. Which is why the Mega2560 macros are so complicated (and SLOW).
DMASK and NMASK are historic names. BMASK and DMASK would be more intuitive.
David.