That produces a slightly different result, but it's still wrong... there are extra transactions after getting a NACK to the first byte (slave address).
"S 02 N P" shouldn't be there, and I have a hunch that if you change "ADR2=$70" to something else you'll find that is wrong too.
I didn't bother trying to figure out exactly what it's sending, but it's not really what's in the remaining I2CWRITE statement.

I looked at the asm code in both cases and there's nothing I see to look at the ack/nack result of sending a byte, except to send a STOP and reset the internal state so the next byte starts a new transaction. There's nothing to "skip over sending the remaining bytes" in the I2CWRITE.