This is mostly right, but I found a simplification and thought I'd throw in an example.
In this case, I (SF) have defeated, in order, DEN, WAS, MIN, MIA, DAL
We'll break the number into [email protected]
is from the code as described above. I'm sure you could pick whoever you want, I pick my most recent team since that is what Tecmo does while you play. The chart is accurate and looking at it you get 9C for a defeat of Dallas. Similarly, the description of $%^ is correct. Adding up the teams gives 9CA.
Right now we have 9C#9CA&*, needing to solve for #, &, and *. Again, the base for these digits is correct, going down the table to see where SF beat Dallas (again, game uses most recent victory though I'm sure it's irrelevant, it's just the only way I can test.) Dallas is D86.
6 + teams from first block = 10 (Denver = 8, Miami = 2), so we add 6 + 10 = 0. We carry the one to the D. So those last 3 are now E80. In fact, we now know 9C#9CA&0.
We go again, adding 20 (8 for MIN, SFO, WAS and 0 for DAL since they were the team used to derive this base set).
E+20=34=2=#. Since we rolled over twice we add 2 to 8 to get A.
Final password = 9C29CAA0.
So, mostly the same, but it doesn't have to be the first team in the order you beat, it could be any, and most notably if you roll over on the very last digit, you add it to both # and &, not just # as described above.
Thanks for finding all this!