Hi there,
I run the codes below in uVision3 V3.30 in order to see the effect of AUXR1 register in switching DPTR0 and DPTR1. I choose the device as AT89S51 which provides the dual DPTR function. But when I run the codes step by step in uVision, the Address Window appears the pointer address 4000h and 8000h have been written into the same address saying 82h-83h - the DPS in AUXR1 didn't switch the DPTR though the instruction 'XRL DPTRSW, #DPS' definitely alters the DPS in step run. Why this happened?
DPTRSW DATA 0A2H ; DPS EQU 00000001B ; ORG 00H
MOV R7, #4 ; MOV DPTR, #4000h ; XRL DPTRSW, #DPS ; MOV DPTR, #8000h ;
LOOP: XRL DPTRSW, #DPS ; CLR A MOVC A, @A+DPTR ; INC DPTR ; XRL DPTRSW, #DPS MOVX @DPTR, A ; INC DPTR ; DJNZ R7, LOOP ;
END
the above could, of course, be reported as a request but still is not a 'bug'.
I have no doubt Keil would consider such a request, whether they would allocate the resources to fully support the particular derivative you use, is another story. Here, of course, also is the factor that, if Keil act as a business, a request for improvement from a licenced user would, more likely, be considered than a request from a freeloading eval user.
Since I consider Keil a honorable company, I would assume that if the reported was a REAL bug (not support of the pecularities of a particular derivative) it would not matter what the source of the information was.
Erik