ATTINY84 Port Mapping and Output Control

I need to use PA 0,1,2,3 for operation of a small stepper motor (via a ULN2803A) controller by I2C
The I2C SCL and SDA are on PA 4 and PA6

Obviously I do not want to upset their status as DI/DO

So I have mapped PA 0 to 3 as outputs with

DDRA = DDRA | 0b00001111

My problem is that I then want to cycle the outputs to the stepper using an array of steps

byte Step1 = 0x9; //0b 0000 1001
byte Step2 = 0xC; //0b 0000 1100
byte Step3 = 0x6; //0b 0000 0110
byte Step4 = 0x3; //0b 0000 0011

byte UnitStep[4]= {UnitStep1,UnitStep2,UnitStep3,UnitStep4};

Normally I would do this with successive calls to the array
PORTA = Step*;*
However this call also sets the state of the PA4,5,6,7, disrupting the I2C
I have tried several ways including PORTA =PORTA|Step without success.
Any suggestions gratefully received

if you only want to toggle the lower four bits of PORTA

PORTA = PORTA & (0xF0) | Step

You need to clear the lower 4 bits ( & with 0xF0) and than add in (or in) your Step values

If you just OR in your step value, it won't clear any set bits.

Thanks for that.. Works brilliant!

Pity this is not included in the Port Mapping examples in Arduino reference