After mangling my code and such, here's where I spotted the bug... What I did was log the Opcodes for Link's Awakening (original, not the DX version). Here is what it spit out...
The first 6 Opcodes are as follows, with the functions I call...
Opcode = 0 NOP
Opcode = c3 Non-conditional JP
Opcode = cd Non-conditional CALL
Opcode = f0 LD register A with 0xFF00 + 8bit immediate value
Opcode = e0 LD 8bit immediate value + the value at 0xFF00 into register A
Opcode = cb
Following this, the following three opcodes were spit out in what seems to be an infinite loop...
Opcode = f0 (same as above)
Opcode = fe CP an 8bit immediate value with register A
Opcode = 20 (same as above)
Now, I used bcrew's source and edited his logging function to spit the op codes as well. The same first 6 ops are loaded, followed by the f0 - fe - 20 loop. But, what appears to be about a thousand opcodes in (I didn't count

), it hits op E6. I don't think I ever get to this one, but if I do - I'd call an AND 8bit immediate value to register A.
Any one have any thoughts? Am I doing something blatantely wrong here?