Further to the above "even stranger, is the first instance of a xdata reference does find the correct swap" That's not quite the trigger issue, It seems how the data variable is declared matters. The good/bad instances were both data vars but how they were declared was slightly different. _DataC:: .ds 2 ; a variable allocate. _wDPTR = 0x0078 ; an SFR like absolute declaration ; SfrXdata = SWAP_16b(DataC); < this works nicely mov dptr,#_SfrXdata mov a,(_DataC + 1) movx @dptr,a mov a,_DataC inc dptr...
Further to the above "even stranger, is the first instance of a xdata reference does find the correct swap" That's not quite the trigger issue, It seems how the data variable is declared matters. The good/bad instances were both data vars but how they were declared was slightly different. _DataC:: .ds 2 ; a variable allocate. _wDPTR = 0x0078 ; an SFR like absolute declaration ; SfrXdata = SWAP_16b(DataC); < this works nicely mov dptr,#_SfrXdata mov a,(_DataC + 1) movx @dptr,a mov a,_DataC inc dptr...
Byte Swap works ideally only in simplest cases
This says open, but also says status: open --> closed-fixed Should be fixed in [r13897]. Which Win64 SDCC release should this appear in ? Having INC DPTR for consecutive addresses would be great. More 8051's are being released with XDATA SFRs.