13 stepper motors at various different speed, port manupulation

I am trying to making a navigation panel to my hobby Project home cockpit that contains 13 stepper motor and 6 Compass stepper motor.

How to use the fast port manipulation to write various speed at those stepper motor, sometimes one run slow, another run fast, third does not move, fourth moves reverse.

I have searching about port manipulation in www.arduino.cc and have borrowed a book that contains it, But nothing explains exactly what I want to.

Driving a stepper motor generally involves a dedicated driver that uses two pins - one for direction, the other to make the stepper step once.

To drive 19 steppers, you'd need 38 pins. Is it safe to assume that you have a Mega or Due?

How are you driving the steppers?

Using direct port manipulation to turn an LED on or off is no different from using it to make a stepper step.

I haven't include to using dedicated driver for that in the topic question.
If I wrote a specific question without any such, then you should understood that I did not mention it.

For example direct port manipulation byte 1 to 4 use 4 bits move to left (bitshift left?) then 5-8 pins add them to get 8 bits value to send it to direct port. I wants that one of each heading direction and compass, etc shall have 16-bits resolution (65536 directions) and counter shall have 17-bits resolution (70.000 increments).

I knowing that it exists dedicated driver, but I do not want because it makes a lot more difficultier with direct port manipulation. Maybe later; but, then I start a new topic later. And, it would require a lot bytes (see above about high bits-value) to write to each stepper motor with dedicated driver in slow way with the method digitalWrite, but also possible with direct port but it makes very hard to debugging.

Yes, I have both Arduino Mega2560 and Arduino Due, I driving the stepper motor inside the mega2560 core.
About your manner to reply questions... If you replied such way in the interview questions, you would have failed.

Qwseyvnd:
About your manner to reply questions... If you replied such way in the interview questions, you would have failed.

Jeez - that was a very polite reply from @PaulS - you wanna see the bad ones. And whatever you think of his style he is usually correct.

For example direct port manipulation byte 1 to 4 use 4 bits move to left (bitshift left?) then 5-8 pins add them to get 8 bits value to send it to direct port. I wants that one of each heading direction and compass, etc shall have 16-bits resolution (65536 directions) and counter shall have 17-bits resolution (70.000 increments).

You might understand that, but I don't.

You must be using some sort of driver between the Arduino and the motor. It would help if you tell us what it is. And post a link to the datasheet for the motors you are using.

...R