Sí, lo cierto y verdad es que el código está algo mal. Por ejemplo el método escribirPila2 no se que utilidad podrías darle, ya que cada pila tiene su propio método imprimir 
Por otro lado el método combinar tienes varios fallos:
Por un lado estás suponiendo que P1 y P2 van a tener el mismo TOPE que la pila con la que realizas la llamada, cosa que no es ni por asomo segura.
Yo lo que haría sería pasar tan solo un argumento, y combinar la pila con la que se realiza la llamada al método, y la pila que se pasa como parámetro. Dentro del método tendría que construir una nueva pila vacía, e ir llenandola con los elementos correspondientes, podría ser algo así:
El método que te he puesto supone que la insercción de los elementos en cada pila se ha hecho en orden, es decir, antes de llamar al método combinar se han insertado elementos en ambas pilas y se ha hecho de forma ordenada (ascendente). Si no habría que hacerlo de otra forma.
Saludos.

Por otro lado el método combinar tienes varios fallos:
Código (javascript) [Seleccionar]
public void combinar(TADPila p1,TADPila p2)
{
int f,t
for(int i=TOPE; i>0;i--){
System.out.println( f= p1.desapilar());
System.out.println( t= p2.desapilar());
if(f<t)
p1.apilar(t);
else if(t>t)
p1.apilar(t);
System.out.println(p1);
}
}
Por un lado estás suponiendo que P1 y P2 van a tener el mismo TOPE que la pila con la que realizas la llamada, cosa que no es ni por asomo segura.
Yo lo que haría sería pasar tan solo un argumento, y combinar la pila con la que se realiza la llamada al método, y la pila que se pasa como parámetro. Dentro del método tendría que construir una nueva pila vacía, e ir llenandola con los elementos correspondientes, podría ser algo así:
Código (javascript) [Seleccionar]
public TADPila combinar(TADPila p1){
TADPila resul = new TADPila();
while(!p1.pilaVacia() && !pilaVacia()){
int a, b;
a = p1.desapilar();
b = desapilar();
if(a<b){
resul.apilar(a);
apilar(b);
}
else if(a>=b){
resul.apilar(b);
p1.apilar(a);
}
}
//Aquí tendrías que comprobar si se han sacado todos los elementos de las dos pilas, si no, quedará alguna con elementos, los metes de golpe y ya está.
}
El método que te he puesto supone que la insercción de los elementos en cada pila se ha hecho en orden, es decir, antes de llamar al método combinar se han insertado elementos en ambas pilas y se ha hecho de forma ordenada (ascendente). Si no habría que hacerlo de otra forma.
Saludos.