Problem with Mega and stepper drives.

I am using a Mega2560 driving 3 x EasyDrivers driving 3 x L298 Drivers into 3 X N17 stepper motors.
Each “channel” is identical with the exception of pins on the Mega. Each has been checked electrically for faults.
My problem is that channel TWO and THREE are the same but not giving the correct results, channel ONE is fine. I have looked through the forum but nothing seems to be the same problem. I am new to MEGA having used UNO a lot.
I’m sure I’ve done something stupid but my old brain can’t see it.
Any help gratefully received.

#define DIR_PIN1 6           //White
#define STEP_PIN1 7          //Brown
#define SLEEP1 8             //Red
#define MS11 9               //Orange
#define MS21 10              //Green
#define ENABLE1 11           //Yellow
#define L298ENABLE1 12       //Blue
#define DIR_PIN2 22           //White
#define STEP_PIN2 23          //Brown
#define SLEEP2 24             //Red
#define MS12 25               //Orange
#define MS22 26               //Green
#define ENABLE2 27            //Yellow
#define L298ENABLE2 28        //Blue
#define DIR_PIN3 30            //White
#define STEP_PIN3 31           //Brown
#define SLEEP3 32              //Red
#define MS13 33                //Orange
#define MS23 34                //Green
#define ENABLE3 35             //Yellow
#define L298ENABLE3 36         //Blue
void setup()
{
  pinMode(DIR_PIN1, OUTPUT);
  pinMode(STEP_PIN1, OUTPUT);
  pinMode(SLEEP1, OUTPUT);
  pinMode(MS11, OUTPUT);
  pinMode(MS21, OUTPUT);
  pinMode(ENABLE1, OUTPUT);              //EasyDriver
  pinMode(L298ENABLE1, OUTPUT);          // L298 output
  pinMode(DIR_PIN2, OUTPUT);
  pinMode(STEP_PIN2, OUTPUT);
  pinMode(SLEEP2, OUTPUT);
  pinMode(MS12, OUTPUT);
  pinMode(MS22, OUTPUT);
  pinMode(ENABLE2, OUTPUT);              //EasyDriver
  pinMode(L298ENABLE2, OUTPUT);          // L298 output
  pinMode(DIR_PIN3, OUTPUT);
  pinMode(STEP_PIN3, OUTPUT);
  pinMode(SLEEP3, OUTPUT);
  pinMode(MS13, OUTPUT);
  pinMode(MS23, OUTPUT);
  pinMode(ENABLE3, OUTPUT);              //EasyDriver
  pinMode(L298ENABLE3, OUTPUT);          // L298 output

  digitalWrite(DIR_PIN1, LOW);
  digitalWrite(STEP_PIN1, LOW);
  digitalWrite(SLEEP1, HIGH);
  digitalWrite(MS11, LOW); // set for single step
  digitalWrite(MS21, LOW);
  digitalWrite(ENABLE1, HIGH);  // motor off
  digitalWrite(L298ENABLE1, LOW);                    //End of channel ONE
  digitalWrite(DIR_PIN2, LOW);
  digitalWrite(STEP_PIN2, LOW);
  digitalWrite(SLEEP2, HIGH);
  digitalWrite(MS12, LOW); // set for single step
  digitalWrite(MS22, LOW);
  digitalWrite(ENABLE2, HIGH);  // motor off
  digitalWrite(L298ENABLE2, LOW);                    //End of channel TWO
  digitalWrite(DIR_PIN3, LOW);
  digitalWrite(STEP_PIN3, LOW);
  digitalWrite(SLEEP3, HIGH);
  digitalWrite(MS13, LOW); // set for single step
  digitalWrite(MS23, LOW);
  digitalWrite(ENABLE3, HIGH);  // motor off
  digitalWrite(L298ENABLE3, LOW);                     //End of channel THREE
}  // end setup

void loop()
{
 int i;

  motorOff();
  delay(3000); // wait for 3 seconds
  digitalWrite(DIR_PIN1, LOW);                       // channel ONE
  digitalWrite(DIR_PIN2, LOW);                       // channel TWO
  digitalWrite(DIR_PIN3, LOW);                       // channel THREE
  fullStep                                                                                                                                                                                                                                                                                                                                                      ();
  motorOn();


  for (i = 0; i < 200; i++)      // Iterate for 200 microsteps.
  {
    pulseOut1(STEP_PIN1);
    delay(5);
    pulseOut2(STEP_PIN2);
    delay(5);
    pulseOut3(STEP_PIN3);
    delay(5);
  }

  motorOff();
  delay(3000); // wait for 3 seconds
  digitalWrite(DIR_PIN1, HIGH);     // Set the direction.
  digitalWrite(DIR_PIN2, HIGH);
  digitalWrite(DIR_PIN3, HIGH);
  halfStep();
  motorOn();

  for (i = 0; i < 400; i++)      // Iterate for 400 microsteps.
  {
    pulseOut1(STEP_PIN1);
    delay(2);
    pulseOut2(STEP_PIN2);
    delay(2);
    pulseOut3(STEP_PIN3);
    delay(2);
  }

  motorOff();
  delay(3000); // wait for 3 seconds
  digitalWrite(DIR_PIN1, LOW);     // Set the direction.
  digitalWrite(DIR_PIN2, LOW);     // Set the direction.
  digitalWrite(DIR_PIN3, LOW);     // Set the direction.
  quarterStep();
  motorOn();

  for (i = 0; i < 800; i++)      // Iterate for 800 microsteps.
  {
    pulseOut1(STEP_PIN1);
    delay(1);
    pulseOut2(STEP_PIN2);
    delay(1);
    pulseOut3(STEP_PIN3);
    delay(1);
  }

  motorOff();
  delay(3000); // wait for 3 seconds
  digitalWrite(DIR_PIN1, HIGH);     // Set the direction.
  digitalWrite(DIR_PIN2, HIGH);     // Set the direction.
  digitalWrite(DIR_PIN3, HIGH);     // Set the direction.
  eighthStep();
  motorOn();

  for (i = 0; i < 1600; i++)      // Iterate for 1600 microsteps.
  {
    pulseOut1(STEP_PIN1);
    delay(2);
    pulseOut2(STEP_PIN2);
    delay(2);
    pulseOut3(STEP_PIN3);
    delay(2);
  }

} // end loop

// inverts state of pin, delays, then reverts state back
void    pulseOut1(byte x)   {
  byte z = digitalRead(x);
  delayMicroseconds(10);
  z = !z; // reverse state
  digitalWrite(x, z);
  z = !z; // return to original state
  digitalWrite(x, z);
} // end pulsout1()

void    pulseOut2(byte x)   {
  byte z = digitalRead(x);
  delayMicroseconds(10);
  z = !z; // reverse state
  digitalWrite(x, z);
  z = !z; // return to original state
  digitalWrite(x, z);
} // end pulsout2()

void    pulseOut3(byte x)   {
  byte z = digitalRead(x);
  delayMicroseconds(10);
  z = !z; // reverse state
  digitalWrite(x, z);
  z = !z; // return to original state
  digitalWrite(x, z);
} // end pulsout3()


void fullStep(void)   {
  digitalWrite(MS11, LOW);
  digitalWrite(MS21, LOW);
  digitalWrite(MS12, LOW);
  digitalWrite(MS22, LOW);
  digitalWrite(MS13, LOW);
  digitalWrite(MS23, LOW);
}

void halfStep(void)   {
  digitalWrite(MS11, HIGH);
  digitalWrite(MS21, LOW);
  digitalWrite(MS12, HIGH);
  digitalWrite(MS22, LOW);
  digitalWrite(MS13, HIGH);
  digitalWrite(MS23, LOW);
}

void quarterStep(void) {
  digitalWrite(MS11, LOW);
  digitalWrite(MS21, HIGH);
  digitalWrite(MS12, LOW);
  digitalWrite(MS22, HIGH);
  digitalWrite(MS13, LOW);
  digitalWrite(MS23, HIGH);
}

void eighthStep(void)  {
  digitalWrite(MS11, HIGH);
  digitalWrite(MS21, HIGH);
  digitalWrite(MS12, HIGH);
  digitalWrite(MS22, HIGH);
  digitalWrite(MS13, HIGH);
  digitalWrite(MS23, HIGH);
}


void motorOff(void)   {
  digitalWrite(ENABLE1, HIGH);
  digitalWrite(ENABLE2, HIGH);
  digitalWrite(ENABLE3, HIGH);
  digitalWrite(L298ENABLE1, LOW);
  digitalWrite(L298ENABLE2, LOW);
  digitalWrite(L298ENABLE3, LOW);
}

void motorOn(void)   {
  digitalWrite(ENABLE1, LOW);
  digitalWrite(ENABLE2, LOW);
  digitalWrite(ENABLE3, LOW);
  digitalWrite(L298ENABLE1, HIGH);
  digitalWrite(L298ENABLE2, HIGH);
  digitalWrite(L298ENABLE3, HIGH);
}

I don't understand why you seen to have EasyDrivers and L298s I have no idea why you have halfStep() and fullStep() functions when this all happens within the Easydriver.

You may get some useful background info is stepper motor basics

...R

  fullStep                                                                                                                                                                                                                                                                                                                                                      ();

WTF? Has your tab key gone stupid?