The sample L51_BANK.A51 module uses the following code to determine the current bank:
?B_BANK&N: MOV A,?B_CURRENTBANK ANL A,#?B_MASK CJNE A,#BANK&N,XLABEL ; etc...
?B_BANK&N: CLR A ORL A, ?B_CURRENTBANK ANL A,#?B_MASK CJNE A,#BANK&N,XLABEL ; etc...
You mean bipolar transistors in TTL devices shouldn't be used.... CMOS devices also use transistors.... :)
I was investigating this as a potential cause of a problem I was having. It turned out to be hardware. Thanks for the replies. Plus it sounds like it would be one hell of a subtle bug if your bank-switch hardware / port setup meant that it was possible to read the "wrong" value.