No, PB0 is push-pull. Open drain can be ports which have corresponding WOMx register. I found 3 WOMx in S12XE datasheet. WOMS, WOMM, WOML. When you set WOMx bit, corresponding pin is configured in open drain (wired OR) mode. For example after setting WOMM0 bit and DDRM0 bits, setting PTM0=0 will drive PTM0 pin low, but setting PTM0=1 will not drive PTM0 pin in any direction.
Emulating open drain mode for PB0 can be done this way:
1)initially PB0 direction is input
DDRB &= ~(1<<0);
2) you latch zero to PB0 output latch
PORTB &= ~(1<<0);
3) with zero latched to PORTB, to drive PB0 low you set DDRB0 bit
DDRB |= (1<<0);
to stop driving PB0 you clear DDRB0 bit
DDRB &= ~(1<<0);
Warning! If XGATE is writing to PORTB, or if interrupts are enabled and some ISR write to PORTB, then special care should be taken, else background task can make PB0 driven high. This will happen if ISR occurs when DDRB0==0. Bsetting or bclearing PORTB with (1<<n) will latch to PB0 value read from PB0, and value read can be "1". For example if some background task uses PB7 pin, then
PORTA_BIT7 = 0; // wrong
PORTA_BIT7 = 1; // wrong
PORTA_BIT7 |= (1<<7); // wrong
PORTA_BIT7 &= ~(1<<7); // wrong
Safe way to clear PB7 from background, keeping zero latched in PB0 is this:
PORTB = (PORTB & ~(1<<7)) & ~(1<<0);
,or to set PB7
PORTB = (PORTB | (1<<7)) & ~(1<<0);