Hello, I would ask something about startup.a66... In the example code I have a next statement: ASSUME DPP3:SYSTEM ASSUME DPP2:NDATA MOV DPP0,#?C_PAGEDPP0 ; Init DPP0 (for DPPUSE)// What and how is it exact used for? MOV DPP1,#?C_PAGEDPP1 ; Init DPP1 (default NCONST) MOV DPP2,#?C_PAGEDPP2 ; Init DPP2 (default NDATA) I'm confused that I don't see such statements as ASSUME DPP0:xxxx ASSUME DPP2:NCONST and something like MOV DPP3,#?C_PAGEDPP3 ; Init DPP3 (default SYSTEM) And one would expect the same result if there was not any statements at all(everything is default)? Could somebody please help me to make this DPPs stuff in a66 file much more clear? Thank you very much, with best wishes, A.
Thanks, but what about the "assume" statements which are "missing" (for ex. DPP2)? And how does it look like if one write $SET (DPPUSE = 0) With best regards, A
Your posts are unclear. ASSUME is not missing, see:
$IF NOT TINY ASSUME DPP3:SYSTEM ASSUME DPP2:NDATA $ENDIF
ok, in the my a66 file I have: ASSUME DPP2:NDATA ................... ................... MOV DPP2,#?C_PAGEDPP2 ; Init DPP2 (default NDATA) and if I understand it correctly, in this case this ASSUME statement is redundant, because NDATA is a default assigment for DPP2. Is it true? Thank you, with best regards, A.
See: http://www.keil.com/support/man/docs/a166/a166_st_assume.htm ASSUME tells the assembler about assumptions that can be made for DPP registers, but does not set the value of the DPP registers.
Thanks for the reply, it's clear what you say,but... I try to ask from another side, where does my code know from, that accesses to the NCONST area should use the DPP1 register? What I have it's only initialization : MOV DPP1,#?C_PAGEDPP1 ; Init DPP1 and there is no any ASSUME for DPP1. So, it could be only a default assuming . Or? Thanks and regards, A.