i have a problem with printing the result of 'long' on screen. i just want to print the full number off FRAMES on ZX but i get strange output.
its part of a system variable list,
Code: Select all
unsigned char *FRAMES1 = 23672 ;
printf("%6u FRAMES1=%6u\n",FRAMES1 , *FRAMES1 );
unsigned char *FRAMES2 = 23673 ;
printf("%6u FRAMES2=%6u\n",FRAMES2 , *FRAMES2 );
unsigned char *FRAMES3 = 23674 ;
printf("%6u FRAMES3=%6u\n",FRAMES3 , *FRAMES3 );
unsigned long frame3 = *FRAMES3 * 65536 ;
unsigned int frame2 = *FRAMES2 * 256 ;
unsigned int frame1 = *FRAMES1 ;
unsigned long frame = frame1 + frame2 + frame3 ;
int framy = sysword( FRAMES1 , FRAMES2 );
printf(" frames:\n%10u\n%10u\n%10u\n%10u since last NMI\n%10u\n",(long)frame1 ,(long)frame2 ,(long)frame3,(long)frame, framy );
printf(" frames:\n%10u\n%10u\n%10u\n%10u since last NMI\n%10u\n",frame1 ,frame2 ,frame3, frame, framy );
Code: Select all
unsigned int sysword(unsigned char *a , unsigned char *b)
{
unsigned int sysword = *a +256 * *b ;
return sysword ;
}