It will not override. If your match is the second line, it will error out on first and stop. That's why some people can't get past this part when applying patches.
Perhaps we should "purify" dsdt first and agree on "Zero" or "0x00" ?
I'm sure RehabMan can tells us what is the correct approach.
I don't think it errors out if there is no match. I have done many patches on clean DSDTs which have no (Zero, MAXC) patterns. That is the first one in the file... the second will match on (0x00, MAXC). So the first must be a no-op (in the case of no match), and the second actually taking affect. I wonder if people are using old versions of DSDT Edtior??
One thing I did notice about the DSDT Editor. You have to move very "slow and careful." Apply one patch, then wait. Then wait some more. Then close the patch dialog. Then wait some more. Make sure the little progress indicator at the bottom right corner is not going to kick in before you do your next patch. I've created bad files when I've attempted to move the process along faster than what the editor wants to...
And... there already is a "pure" version of the DSDTs... They come out of "iasl -d" as 0x00 as that is the way they are in the binary (the AML).
The only way you get a Zero there is because at some point you recompiled, then disassembled the file with the optimizing compiler (without the "-oi" flag) as the compiler will convert any zeros (0x00, 0, or 00) it sees to the integer constant Zero.
The lines were added to fix battery compilation errors we had in the past. After MAXC register was divided into AXC0 and AXC1 additional entry with for AXC1=0x00 or so was needed for some sections. (B1B2(AXC0,AXC1) couldn't be used.
The B1B2 method is a retrieval mechanism (in programmer terms, a "helper" function). So where you were reading a 16-bit value, say MAXC, you use B1B2 method to put the two parts back together in a 16-bit value. That is B1B2(low-byte-of-VAR, high-byte-of-VAR) == VAR. Mathematically, B1B2(low,high) is B1B2(low,high)=low+(high*256).
But to write values we need to use Store. And we need two of them, since we have to store both the low-byte and the high-byte. So where you have, Store (0, MAXC) (any flavor of zero), you need Store(0, AXC0) and Store(0, AXC1). And where you have Store (0xFA, MAXC), you need Store (0xFA, AXC0) and Store (0, AXC1). There is probably a way to write a helper function for storing, but I'm not sure how you pass by reference in AML and investigating does't seem worth it.