--- xmain.c.orig 1999-02-15 12:54:15.000000000 +0000 +++ xmain.c 2009-02-11 15:00:16.000000000 +0000 @@ -526,7 +526,8 @@ return 1; } xshminfo.shmid=shmget(IPC_PRIVATE, - ximage->bytes_per_line*(ximage->height+1),IPC_CREAT|0777); + ximage->bytes_per_line*(ximage->height+1), + IPC_CREAT|0777); if(xshminfo.shmid == -1){ perror("Couldn't perform shmget"); return 1; @@ -545,8 +546,9 @@ } else #endif { - ximage=XCreateImage(display,DefaultVisual(display,screen), - DefaultDepth(display,screen),ZPixmap,0,NULL,hsize,vsize, + ximage=XCreateImage(display,DefaultVisual(display,screen), + DefaultDepth(display,screen), + ZPixmap,0,NULL,hsize,vsize, 8,0); if(!ximage){ perror("XCreateImage failed"); @@ -560,7 +562,7 @@ scrn_freq=rrnoshm; } linelen=ximage->bytes_per_line/SCALE; - if(linelen!=32 && linelen!=256 && linelen!=512) + if(linelen!=32 && linelen!=256 && linelen!=512 && linelen!=1024) fprintf(stderr,"Line length=%d; expect strange results!\n",linelen); #if 0 if(linelen==32 && @@ -1584,6 +1586,22 @@ /* XXX doesn't support SCALE>1 */ image[(y*8+b)*linelen+x]=~d; } + else if (linelen == 1024) + { + unsigned * t; + + tmp=image+((y*8+b)*hsize+x*8)*SCALE*4; + t = (unsigned *) tmp; + mask=256; + while((mask>>=1)) + { + m=((d&mask)?black:white); + for(j=0;j