Well, I'm still in "oh my God, I can't beleive it's doing that" mode.
Taking a random sample of bit's and byte's and array's with random BANK1's ....When compiled for a 16F877 looks something like thisCode:Cbyte VAR BYTE BBYTEArray VAR BYTE(10) BwordArray VAR WORD(10) AWORD VAR WORD BWORD VAR WORD ABYTEArray VAR BYTE(10) BANK1 AbitArray VAR bit(10) DWORD VAR WORD ABYTE VAR BYTE BBYTE VAR BYTE AWORDArray VAR WORD(10) CBit VAR Bit BbitArray VAR bit(10) C2byte VAR BYTE BANK1 B2BYTEArray VAR BYTE(10) BANK1 B2wordArray VAR WORD(10) A2WORD VAR WORD B2WORD VAR WORD A2BYTEArray VAR BYTE(10) BANK1 A2bitArray VAR bit(10) D2WORD VAR WORD A2BYTE VAR BYTE B2BYTE VAR BYTE A2WORDArray VAR WORD(10) C2Bit VAR Bit B2bitArray VAR bit(10)At this point, I can't see a pattern, or a definate "Rule" that could account for the placements.Code:_A2WORDArray EQU RAM_START + 018h _AWORDArray EQU RAM_START + 02Ch _B2wordArray EQU RAM_START + 040h _BBYTEArray EQU RAM_START + 054h _A2WORD EQU RAM_START + 05Eh _A2BYTEArray EQU RAM_START + 080h <-- BANK1 starts here _ABYTEArray EQU RAM_START + 08Ah _B2BYTEArray EQU RAM_START + 094h _C2byte EQU RAM_START + 09Eh _BwordArray EQU RAM_START + 09Fh _AWORD EQU RAM_START + 0B3h _B2WORD EQU RAM_START + 0B5h _BWORD EQU RAM_START + 0B7h _D2WORD EQU RAM_START + 0B9h _DWORD EQU RAM_START + 0BBh PBA01 EQU RAM_START + 0BDh PBA02 EQU RAM_START + 0BFh PBA03 EQU RAM_START + 0C1h PBA04 EQU RAM_START + 0C3h _A2BYTE EQU RAM_START + 0C5h _ABYTE EQU RAM_START + 0C6h _B2BYTE EQU RAM_START + 0C7h _BBYTE EQU RAM_START + 0C8h _Cbyte EQU RAM_START + 0C9h PB01 EQU RAM_START + 0CAh
A2WORD ends up in BANK0 even though it was declared after 3 BANK1 variables.
AWORD and BWORD were defined prior to any BANK1 vars, and yet, still ends up in BANK1???????
Does anyone see something I'm missing?
<br>




Bookmarks