I'm not familiar with the P89C66x but maybe you need to enable the xdata memory first?
I see nothing wrong in the generated code. > Hi > I was trying to compile a small program for an 8051 variant (a test > version > of my large one) and I get strange results: > #include "P89c66x.h" > > void usleep(unsigned char j) > { > // 1 = 3.12us > unsigned char i; > for ( i=0;i<=j;i++); > } > > void main() > { > while(1) { > P1=0xFE; > usleep(100); > P1=0xFF; > usleep(100); > } > } > > This program blinks pin P1_0. If I compile it with the small memory model, > the > usleep function works perfectly but it does not if I use large memory > model. > Then the sleeping time is independent of the input number. > > The small sleep function is: > _usleep: > ar2 = 0x02 > ar3 = 0x03 > ar4 = 0x04 > ar5 = 0x05 > ar6 = 0x06 > ar7 = 0x07 > ar0 = 0x00 > ar1 = 0x01 > mov r2,dpl > ; test_array.c:9: for ( i=0;i<=j;i++); > mov r3,#0x00 > 00101$: > clr c > mov a,r2 > subb a,r3 > jc 00105$ > inc r3 > sjmp 00101$ > 00105$: > ret > > > The large function is the following: > _usleep: > ar2 = 0x02 > ar3 = 0x03 > ar4 = 0x04 > ar5 = 0x05 > ar6 = 0x06 > ar7 = 0x07 > ar0 = 0x00 > ar1 = 0x01 > mov a,dpl > mov dptr,#_usleep_j_1_1 > movx @dptr,a > ; test_array.c:9: for ( i=0;i<=j;i++); > mov dptr,#_usleep_j_1_1 > movx a,@dptr > mov r2,a > mov r3,#0x00 > 00101$: > clr c > mov a,r2 > subb a,r3 > jc 00105$ > inc r3 > sjmp 00101$ > 00105$: > ret > > I don't see anything in the code that should not work. > > Thanks > Gudjon > > Ps. I will read through the P89c66x.h file and then contribute it. Thanks > for > the nice software :) ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user