I am considering placing the user stack into internal ram. It defaults into near which is assigned to the first 16k external ram. I am a bit confused about the asm in the startup file. The section Ex.1, see below, obviously places the user stack into near (NDATA) so i assume changing this to either IDATA or SDATA will do the trick. But after this, the section Ex.2, see below, refers the user stack to NDATA. So should this change too? If i change it, i get an error A77: Missing DPP info. Can anyone help tell me what is going on and if it is a good idea to move the user stack to internal ram in the first place.
Section Ex.1 ?C_USERSTACK SECTION DATA PUBLIC 'NDATA' ?C_USRSTKBOT: DS USTSZ ; Size of User Stack ?C_USERSTKTOP: ?C_USERSTACK ENDS Section Ex.2 $IF NOT TINY IF (UST1SZ > 0) AND (UST2SZ > 0) ; Define User Stack 1 area NDATA DGROUP ?C_USERSTACK, ?C_USERSTACK1, ?C_USERSTACK2 ENDIF
Many thanks for all your help Sauli, i think i have it about sorted now. I probably shouldnt post thankyou's, but there you go.
P.s. I thought it was as you described but this seems to be the case:-
char * near ptr_in_near; // puts the pointer in near whereas, char near *near_ptr; // make it a near pointer
Cheers.