ericmatteson...@hotmail.com
unread,Dec 5, 2009, 11:16:50 AM12/5/09You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
xwview14.c *.bmp viewer program is next */
// beginning of xwview14.c
#include <stdio.h>
#include <dirent.h>
#include <X11/Xutil.h>
// gcc -Wall xwview14.c -L/usr/X11R6/lib -lX11 -o xwview14.out
// ./xwview14.out
// to compile and run this program
// Use the c key to change colormode.
// This xwview14.c includes a monochrome grey scale
// bitmap file viewer for device independent bitmap files.
// Copyright C 2009 by Eric Matteson
// permission is granted to copy
// this SOURCE CODE file xwview14.c
// and to publish it on the Internet.
// This material may be used at
// least for non profit use.
// This program is not valid without source code.
// Computer users can enforce the open source requirement
// by refusing to use any program that does not have
// source code distributed with it.
// The reccommended proceedure is to distribute this
// program in source code form only and seperately
// compile it on each
// computer that it is to run on.
// ---------------------
// nzlibkey = 0 for doskey 1 for XLookupString
const int nzlibkey = 0;
const int xxsv = 50;
const int xsv = 62;
const int thdimtran = 13;
const int thdimbran = 64;
const int threzero[] = { 5,9,25,50,75,100,125,150,
175,200,225,250,275,300,325,350,
375,400,425,450,475,500,525,550,
575,600,625,650,675,700,725,750,759 };
const int rawsog[] = { 48,48,48,48,
96,100,104,96,
144,149,156,144,
192,202,212,192,
240,246,252,240,
288,292,296,288,
336,340,344,336,
384,388,392,384,
432,436,440,432,
480,484,488,480,
528,532,536,528,
576,580,584,576,
624,628,632,624,
672,676,680,672,
720,724,726,720,
768,768,768,768 };
const int bawlog[] = { 4,4,4,4,
8,8,8,8,
16,16,16,16,
32,32,32,32,
64,64,64,64,
128,128,128,128,
256,256,256,256,
512,532,562,512,
640,670,680,640,
704,704,704,704,
736,736,736,736,
752,752,752,752,
760,760,760,760,
764,764,764,764,
765,765,765,765,
766,766,766,766 };
const int briout[] = { 64,76,88,100,
112,124,136,148,160,172,184,196,
208,220,232,244 };
const int shrinkth[] = { 14,80,140,276,564,662 };
const int sbrinkth[] = { 7,10,14,20,
40,50,70,80,100,120,140,160,250,260,276,290,
400,440,490,564,600,630,662,690,
760,761,762,763 };
const int bigthre[] = { 10,40,60,75,120,180,
250,360,450,550,650,740 };
const int thbigtran[] = {0,1,4,2,5,3,9,
12,10,14,13,11,15 };
const int rgbeight[] = { 55,60,45,70,180,192,160,208 };
const int thsixsev[] = { 0,32,48,112,160,176,240,240 };
const int monothre15[] = { 2,3,4,5,6,7,8,9,
10,11,13,15,18,20,30,40,
50,60,68,75,85,95,108,120,
130,140,150,160,170,180,190,200,
205,210,215,220,230,240,250,275,
300,330,360,450,500,550,600,650,
670,680,690,700,710,719,728,735,
740,744,748,751,754,757,761,764};
const int monoghre60[] = { 4,5,6,7,8,9,10,11,
18,19,20,21,36,38,40,42,56,58,60,62,71,73,75,77,
116,118,120,122,172,174,176,178,244,246,248,250,
356,358,360,362,446,448,450,452,548,550,552,554,
644,650,656,662,738,740,742,744,755,756,758,761 };
const int tengrey[] = { 30,32,34,36,38,40,42,44,
46,48,50,52,54,58,60,63 };
const int bengrey[] = { 18,21,24,27,30,33,36,39,
42,45,48,51,54,57,60,63 };
const int sevbig[] = { 0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,
0,1,0,0,0,1,0,1,0,1,1,0,0,1,1,1,
1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,1,
1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,1 };
const int wporand[] = { 128,64,32,16,8,4,2,1,
1,2,4,8,16,32,64,128,
127,191,223,239,247,251,253,254,
254,253,251,247,239,223,191,127 };
const int sixthre[] = { 72,74,76,78,
180,192,204,216,266,288,300,312,
376,384,396,408,468,480,496,504,
564,576,588,600,902,939,917,990,
992,993,994,995 };
// size of bab[] needs to be same as value of bigbuffsize
const int bigbuffsize = 262144;
char bab[262144];
// or and or and or and or and msplane to lsplane
// or and
int table1632oa[32768];
// *** ERROR *** table contents were deleted to get
// this source code file under 190000 bytes for usenet.
// use additional mlfill(int*) subroutine to refill it.
int jxwkeyhold[512];
int iiac[560];
int saveapal[68];
char* caap[25];
char cdrawm[65536];
char cdraw0[65536];
char cdraw1[65536];
char cdraw2[65536];
char cdraw3[65536];
char cdraw4[65536];
char cdraw5[65536];
char cdraw6[65536];
char cerawm[65536];
char ceraw0[65536];
char ceraw1[65536];
char ceraw2[65536];
char ceraw3[65536];
char ceraw4[65536];
char ceraw5[65536];
char ceraw6[65536];
char cgrawm[65536];
char cgraw0[65536];
char cgraw1[65536];
char cgraw2[65536];
char cgraw3[65536];
char cgraw4[65536];
char cgraw5[65536];
char cgraw6[65536];
// cut here
#define raw7size 1048576
char cgraw7[raw7size];
char bar[92160];
char caf[65536];
char can[200];
char prebug[180];
char prebud[180];
char diagaap[16384];
int vgaallow;
int x1,x256,x65536,x65793;
int x16777216,x16777215;
int x128,x127,x8388608,xzmin;
int sbmask,raw7ctr;
int itarget,prevmode,jkeyctr,djkey,rjkey;
int cbmask,scrdepth,scrallow;
int scnum,cwid,cght,sud,ckey,xolop,xilop,xchoose;
int lmoux,lmouy,fourdirpen,seadirallow,seadirlimit;
int xlkount;
int benctr,bendex;
int sendreq,pendreq;
int aprevmode,runmode,falkenx,falkeny;
char sdirch;
DIR* xfourdp;
struct dirent *xfourep;
Display* lpdis;
Window wix;
XEvent report;
XEvent seport;
XSizeHints* rsizehints;
XWMHints* rwmhints;
XClassHint* rclasshints;
Pixmap rempmap;
Pixmap countmap;
Pixmap clearmap;
GC wgc;
GC countgc;
int macount,cmask,jmatog;
// ---------------
void mlfill(int* mlx32768);
int indiv(int unumer,int* dcmps,int densize);
int grpindiv(int gunume,int* grdcmp,int dgensize,
int dremx,int dremy,int dgenlize);
int divmodi(int inumer,int idenom,int nzirem);
int onexwchr(int xwcpos,char xwclist[]);
void speeftex(char* fpsf,char* spsf);
void hswristr(char hsb[],int hsw,int hst,
char bsf[],int hstrw,char hstr[]);
void chrfroms(int chfstart,int chfsize,char xvclist[],
const char* xvslist);
int onexwdig(int xwdpos,char xwdlist[]);
int ixreada(int iarpos,int iarwid,int iarbase,
int nziarnext,char iarlist[]);
int revercram(int rcstart,int rcmany,char revdat[]);
void linuwrn(int lwrnpos,int lwrnwid,int lwrnbase,
char lwrt[],int lwrf);
void uncram(int ucstart,int ucmany,char ucdat[],
int ucfrom);
int ombrlen(int ombrloffset,int ombmaxlen,
char ombuksize[]);
int nzlinedone(int lkbc[],char reekline[]);
int redcst(int llrs,int llrw,int llrbase,
const char* llccs);
int lscale(int lscabc[]);
int lredoffs(int lrosbc[]);
int lctsize(int lctsbc[]);
int lpixperb(int lpixprbc[]);
int lbytespr(int lbprbc[],int nzlbprem);
int lbreadf(int lbreadbc[],char lbrecord[],int lbreadw,
FILE* lbreadh);
int nzreadmbhdr(int nzrhbc[],char nzrhrecord[],
char rhctble[],FILE* nzrhh);
int xwtscroll(int xscbc[],char xscsingle[],
char xscgroup[]);
void getpine(int gpbc[],char gprec[],char gpct[],
char gpbig[],FILE* gph);
int putpine(char** iirplane,int irplane[],
int vpthresh[],char vpbig[]);
int onebumpw(char** ijplane,int onbbc[],
char ombrecord[],char ombgbig[]);
int twobumpw(char** tjple,int tmbc[],char tmbr[],
char tbig[],char tbf[]);
int twobuz(char** zpl,int zbc[],char zrc[],char zb[],
char zf[],char zn[]);
int fourbump(char** aap,int ac[],char ar[],char ab[],
char af[],char an[]);
char twofromten(int rawenine);
void fonthfill(char fhf[]);
void ilinemake(int* iixt,char* xxdd);
void iktmany(int* imxt);
int nzextcmp(char* uncfn,char* ecright);
int iidoskey(int kkll,int kshiftb,int ixkeyhold[],
const char* klinuxcm);
void onewrt31(int zur31,int maxwid31,int sx31,
int sy31,int ich31);
// int gcbw(int gcdepth,int gca);
void jetgc(Window wigc,GC* wrgc,int gsdepth,int zbnzw);
// *wrgc will have to be freed later
Window makexw(XSizeHints* sizehints,XWMHints* wmhints,
XClassHint* classhints);
// ----------------------------
int main(int argd,char** argsa)
{
int zandtogm;
char* argufn;
char* adn = NULL;
argufn = NULL;
mlfill(table1632oa);
lmoux=131071;
lmouy=131071;
vgaallow=0;
sendreq=0;
fourdirpen=0;
jmatog=1;
sud=0;
while(sud < 200)
{
can[sud]='\40';
sud=sud+1;
}
// reclear depth = 1
// sud=(int)argufn;
// linuwrn(2,8,16,can,sud);
// can[53]='\15';
// can[54]='\12';
// 155 terminal diagnostic 156
// fwrite(can,1,80,stdout);
caap[0] = &cdrawm[0];
caap[1] = &cdraw0[0];
caap[2] = &cdraw1[0];
caap[3] = &cdraw2[0];
caap[4] = &cdraw3[0];
caap[5] = &cdraw4[0];
caap[6] = &cdraw5[0];
caap[7] = &cdraw6[0];
caap[8] = &cerawm[0];
caap[9] = &ceraw0[0];
caap[10] = &ceraw1[0];
caap[11] = &ceraw2[0];
caap[12] = &ceraw3[0];
caap[13] = &ceraw4[0];
caap[14] = &ceraw5[0];
caap[15] = &ceraw6[0];
caap[16] = &cgrawm[0];
caap[17] = &cgraw0[0];
caap[18] = &cgraw1[0];
caap[19] = &cgraw2[0];
caap[20] = &cgraw3[0];
caap[21] = &cgraw4[0];
caap[22] = &cgraw5[0];
caap[23] = &cgraw6[0];
caap[24] = &cgraw7[0];
sud=0;
while(sud < 200)
{
can[sud]='\40';
sud=sud+1;
}
// reclear depth = 1
sud=41;
while(sud < 360)
{
iiac[sud]=0;
sud=sud+1;
}
if(argd == 2)
{
argufn = *(argsa + 1);
xilop=0;
sud=ombrlen(0,0,argufn);
if((sud > 4)&&(sud < 40))
{
while(xilop < sud)
{
can[160+xilop] = *(argufn + xilop);
can[120+xilop] = *(argufn + xilop);
// depth = 4
can[80+xilop] = *(argufn + xilop);
can[40+xilop] = *(argufn + xilop);
can[xilop] = *(argufn + xilop);
xilop=xilop+1;
}
iiac[45]=1;
iiac[44]=1;
}
}
lpdis = XOpenDisplay(adn);
scnum=DefaultScreen(lpdis);
scrdepth=DefaultDepth(lpdis,scnum);
falkenx=608;
falkeny=378;
iiac[7]=falkenx;
iiac[29]=falkeny;
iiac[26]=0;
saveapal[6]=0;
saveapal[7]=42;
saveapal[2]=21;
saveapal[3]=63;
saveapal[0]=(saveapal[6]+saveapal[2]) >> 1;
saveapal[1]=(saveapal[7]+saveapal[3]) >> 1;
benctr=0;
bendex=0;
iiac[30]=11829;
iiac[25]=0;
iiac[28]=5;
iiac[34]=160;
iiac[32]=scrdepth;
sud=0;
iktmany(jxwkeyhold);
wix = makexw(rsizehints,rwmhints,rclasshints);
XSetWMProperties(lpdis,wix,0,0,argsa,argd,rsizehints,
rwmhints,rclasshints);
// getgc(wix,&bgc,scrdepth,0);
// getgc(wix,&wgc,scrdepth,1);
// getgc(wix,&agc,scrdepth,20+5);
// getgc(wix,&xgc,scrdepth,17+9);
// getgc(wix,&ygc,scrdepth,18+9);
// getgc(wix,&zgc,scrdepth,19+9);
// depth = 1
// getgc(wix,&fgc,scrdepth,29);
// getgc(wix,&ggc,scrdepth,30);
// getgc(wix,&hgc,scrdepth,31);
// getgc(wix,&igc,scrdepth,32);
XMapWindow(lpdis,wix);
iiac[26]=0;
iiac[27]=262143;
xilop=fourbump(caap,iiac,bar,bab,caf,can);
xolop=0;
while(xolop == 0)
{
if(XCheckMaskEvent(lpdis,sbmask,&report)!=0)
{
if((report.type == KeyRelease)&&(nzlibkey == 0))
{
if((int)report.xkey.keycode==xxsv)sud=0;
if((int)report.xkey.keycode==xsv)sud=0;
}
if(report.type == KeyPress)
{
zandtogm=1;
if((int)report.xkey.keycode==xxsv)zandtogm=0;
if((int)report.xkey.keycode==xsv)zandtogm=0;
if(nzlibkey > 0)zandtogm=1;
if(zandtogm == 0)sud=1;
if(zandtogm == 1)
{
// xilop == 0 for normal
xilop=0;
// infinite loop with no key ckey=1048576;
rjkey=1048576;
xlkount=0-1;
// depth = 5
if(nzlibkey == 0)
{
ckey=report.xkey.keycode;
rjkey=iidoskey(ckey,sud,jxwkeyhold,"x?");
iiac[26]=rjkey;
iiac[27]=ckey;
// depth=6;
sendreq=1;
}
}
// end of inner key
// depth = 4
}
// end of key
if((report.type == ButtonPress)&&(jmatog == 0))
{
iiac[26]=44;
iiac[27]=1048576;
sendreq=1;
}
// depth = 3
if(report.type==Expose)
{
scrallow=0;
pendreq=0;
raw7ctr=raw7size-1;
while(raw7ctr >= 0)
{
*(*(caap+24)+raw7ctr)=(char)0;
raw7ctr=raw7ctr-1;
}
if(scrdepth == 24)
{
scrallow=1;
x1=1;
x256=256;
x65536=65536;
x65793=x1+x256+x65536;
x16777216=x256*x65536;
x16777215=x16777216-1;
x128=x256>>1;
x127=x128-x1;
x8388608 = x128 * x65536;
xzmin=0;
}
if(scrdepth == 16)
{
scrallow=1;
x1=1;
x256=32*x1;
x65536=64*x256;
x65793=x1+x256+x65536;
x16777216=x256*x65536;
x16777215=x16777216-1;
x128=(x256 >> 1);
x127=(x256 >> 1)-x1;
x127 = x127 & 4095;
x8388608 = x128 * x65536;
xzmin=3;
}
// Unable to test scrdepth == 32
// if(scrdepth == 32)
// {
// scrallow=1;
// x1=8;
// x256=1024;
// x65536=2048*1024;
// x65793=x1+x256+x65536;
// x16777216=x256*x65536;
// x16777215=x16777216-1;
// x128 = x256 >> 1;
// x127 = x128 - x1;
// x8388608 = x128 * x65536;
// xzmin=0;
// }
// ---------------------------
if(vgaallow == 0)scrallow=0;
if(report.xexpose.width > 784)scrallow=0;
if(report.xexpose.height > 592)scrallow=0;
if((scrallow == 1)&&((iiac[6]) > 7))iiac[6]=7;
// ..........................................
if((report.xexpose.count==0)&&(scrallow == 0))
{
// ---------------- common top
iiac[7]=report.xexpose.width;
// iiac[7]=((iiac[7]+7)>>3)<<3;
iiac[29]=report.xexpose.height;
xilop=0;
if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
if((iiac[30]) == 11832)xolop = 1;
// high speed print to screen top monochrome high speed 2
jetgc(wix,&wgc,scrdepth,
WhitePixel(lpdis,scnum));
rempmap = XCreatePixmap(lpdis,wix,(iiac[7]),(iiac[29]),
scrdepth);
jetgc(wix,&countgc,scrdepth,
WhitePixel(lpdis,scnum));
clearmap = XCreatePixmapFromBitmapData(lpdis,wix,
(*(caap+24)),
(iiac[7]),(iiac[29]),
WhitePixel(lpdis,scnum),
0,scrdepth);
XCopyArea(lpdis,clearmap,rempmap,countgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,clearmap);
XFreeGC(lpdis,countgc);
// bottom of common area
XCopyArea(lpdis,rempmap,wix,wgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,rempmap);
XFreeGC(lpdis,wgc);
iiac[26]=0;
iiac[27]=262143;
}
// ...........................................
if((report.xexpose.count==0)&&(scrallow == 1))
{
// ---------------- common top
iiac[7]=report.xexpose.width;
// iiac[7]=((iiac[7]+7)>>3)<<3;
iiac[29]=report.xexpose.height;
xilop=0;
if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
if((iiac[30]) == 11832)xolop = 1;
// high speed print to screen top monochrome high speed 2
jetgc(wix,&wgc,scrdepth,
WhitePixel(lpdis,scnum));
rempmap = XCreatePixmap(lpdis,wix,(iiac[7]),(iiac[29]),
scrdepth);
jetgc(wix,&countgc,scrdepth,
WhitePixel(lpdis,scnum));
clearmap = XCreatePixmapFromBitmapData(lpdis,wix,
(*(caap+24)),
(iiac[7]),(iiac[29]),
WhitePixel(lpdis,scnum),
0,scrdepth);
XCopyArea(lpdis,clearmap,rempmap,countgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,clearmap);
XFreeGC(lpdis,countgc);
// bottom of common area
if((iiac[6]) <= 1)
{
// make alias for wgc unknown name
jetgc(wix,&countgc,scrdepth,x16777215);
countmap = XCreatePixmapFromBitmapData(lpdis,wix,
(*(caap+7)),
(iiac[7]),(iiac[29]),x16777215,
0,scrdepth);
XCopyArea(lpdis,countmap,rempmap,countgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,countmap);
XFreeGC(lpdis,countgc);
}
// ------------------------------------------------
if(((iiac[6]) >= 2)&&((iiac[6]) <= 3))
{
macount=7;
cmask=x65793 * x127;
jetgc(wix,&countgc,scrdepth,cmask);
countmap = XCreatePixmapFromBitmapData(lpdis,wix,
(*(caap+macount)),(iiac[7]),(iiac[29]),x16777215,
0,scrdepth);
XCopyArea(lpdis,countmap,rempmap,countgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,countmap);
XFreeGC(lpdis,countgc);
macount=6;
cmask=x65536*x128;
jetgc(wix,&countgc,scrdepth,cmask);
countmap = XCreatePixmapFromBitmapData(lpdis,wix,
(*(caap+macount)),(iiac[7]),(iiac[29]),x16777215,
0,scrdepth);
XCopyArea(lpdis,countmap,rempmap,countgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,countmap);
XFreeGC(lpdis,countgc);
macount=5;
cmask=x256*x128;
jetgc(wix,&countgc,scrdepth,cmask);
countmap = XCreatePixmapFromBitmapData(lpdis,wix,
(*(caap+macount)),(iiac[7]),(iiac[29]),x16777215,
0,scrdepth);
XCopyArea(lpdis,countmap,rempmap,countgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,countmap);
XFreeGC(lpdis,countgc);
macount=4;
cmask=x128;
jetgc(wix,&countgc,scrdepth,cmask);
countmap = XCreatePixmapFromBitmapData(lpdis,wix,
(*(caap+macount)),(iiac[7]),(iiac[29]),x16777215,
0,scrdepth);
XCopyArea(lpdis,countmap,rempmap,countgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,countmap);
XFreeGC(lpdis,countgc);
}
if((((iiac[6]) >= 4)&&((iiac[6]) <= 5))||((iiac[6]) == 7))
{
macount=7;
cmask=x65793 * x128;
while(macount >= xzmin)
{
// create GC countgc
if((macount == xzmin)&&((iiac[6]) == 4))cmask=x65793*15;
if(scrdepth == 16)
{
if((macount == xzmin)&&((iiac[6]) == 7))cmask=x65793*3;
}
jetgc(wix,&countgc,scrdepth,cmask);
countmap = XCreatePixmapFromBitmapData(lpdis,wix,
(*(caap+macount)),(iiac[7]),(iiac[29]),x16777215,
0,scrdepth);
XCopyArea(lpdis,countmap,rempmap,countgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,countmap);
XFreeGC(lpdis,countgc);
cmask=cmask>>1;
macount=macount-1;
if((macount == 3)&&((iiac[6]) == 4))macount=0;
if(scrdepth == 16)
{
if((macount == 3)&&((iiac[6]) == 7))macount=0;
}
}
}
if((iiac[6]) == 6)
{
macount=23;
cmask=x8388608;
while(macount >= xzmin)
{
jetgc(wix,&countgc,scrdepth,cmask);
countmap = XCreatePixmapFromBitmapData(lpdis,wix,
(*(caap+macount)),(iiac[7]),(iiac[29]),x16777215,
0,scrdepth);
XCopyArea(lpdis,countmap,rempmap,countgc,0,0,(iiac[7]),
(iiac[29]),0,0);
XFreePixmap(lpdis,countmap);
XFreeGC(lpdis,countgc);
cmask=cmask>>1;
if(scrdepth == 16)
{
if((macount == 19)||(macount == 11))
{
// Not in 16-bits cmask=cmask>>3;
macount=macount-3;
if(macount == 11)
{
// cmask=cmask>>1;
}
}
}
macount=macount-1;
}
}
// ---------------------------
XCopyArea(lpdis,rempmap,wix,wgc,0,0,(iiac[7]),
(iiac[29]),0,0);
// depth = 4
XFreePixmap(lpdis,rempmap);
XFreeGC(lpdis,wgc);
iiac[26]=0;
iiac[27]=262143;
}
sendreq=0+pendreq;
}
// depth = 3
// after Expose Event
if(report.type == ConfigureNotify)
{
iiac[7]=report.xconfigure.width;
// iiac[7]=((iiac[7]+7)>>3)<<3;
iiac[29]=report.xconfigure.height;
iiac[26]=0;
iiac[27]=262143;
sendreq=1;
// after event type
}
// depth = 3
// iiac[359]=iiac[359]+1;
}
// after if event mask
// depth = 2
if(sendreq==1)
{
seport.type=Expose;
seport.xexpose.type=Expose;
seport.xexpose.send_event=0;
seport.xexpose.display=lpdis;
seport.xexpose.window=wix;
seport.xexpose.x=0;
seport.xexpose.y=0;
seport.xexpose.width=iiac[7];
seport.xexpose.height=iiac[29];
sendreq=0;
XSendEvent(lpdis,wix,1,ExposureMask,&seport);
}
// after sendreq
// depth = 2
// if(iiac[359] > 2)xolop=1;
}
// after while
// depth = 1
// XFreeGC(lpdis,igc);
// XFreeGC(lpdis,hgc);
// XFreeGC(lpdis,ggc);
// XFreeGC(lpdis,fgc);
// XFreeGC(lpdis,zgc);
// XFreeGC(lpdis,ygc);
// XFreeGC(lpdis,xgc);
// XFreeGC(lpdis,agc);
// XFreeGC(lpdis,wgc);
// XFreeGC(lpdis,bgc);
return 0;
}
// depth = 0
// end of main
// -------------- 583
void mlfill(int* mlx32768)
{
// previous table was 8*256*16 where 256*16 was
// or and or and or and or and or and or and
// or and or and
// with each or and pair operating on one bitplane
// for that 0-255 data value entry.
// eight 4096 number tables are shifted left or and
// values after finishing 0-255 before repeating with
// new or and values shifted left for next remainder
// of x coordinate 0-7 backwards bits within byte
// for Linux XWindows.
int mlfc8,mlfc256,mlfc16,mldata,mlrem,mlwrtsub;
int mlpal[4];
// mlpal[4]={ 0,(-1 - OR),OR,-1 };
mlpal[0]=0;
mlpal[3]=0-1;
mlpal[2]=1;
mlwrtsub=0;
mlfc8=0;
while(mlfc8 < 8)
{
mldata=mlpal[3]-mlpal[2];
// if(mldata < (0-128))mldata=127;
mlpal[1]=mldata;
mlfc256=0;
while(mlfc256 < 256)
{
mldata=mlfc256;
mlfc16=0;
while(mlfc16 < 8)
{
mlrem=0;
mldata=mldata+mldata;
if(mldata > 255)
{
mlrem=2;
mldata=mldata-256;
}
*(mlx32768 + mlwrtsub) = mlpal[0 + mlrem];
*(mlx32768+mlwrtsub+1) = mlpal[1 + mlrem];
mlwrtsub=mlwrtsub+2;
mlfc16=mlfc16+1;
}
mlfc256=mlfc256+1;
}
mlpal[2]=mlpal[2]+mlpal[2];
if(mlpal[2] > 127)mlpal[2]=mlpal[2]-256;
mlfc8=mlfc8+1;
}
}
// end of mlfill
int indiv(int unumer,int* dcmps,int densize)
{
int indrf,denmask;
// indiv is implied indirect divison
// assume densize is power of two and dcmps
// is sorted compares in ascending order
// and maximum unumer generates result of
// densize-1
// dcmps and densize together create implied
// indirect denominator
denmask=densize >> 1 ;
indrf=0;
while(denmask > 0)
{
indrf=indrf+denmask;
if(unumer < *(dcmps +(indrf-1)))
{
indrf=indrf-denmask;
}
denmask=denmask >> 1;
}
return indrf;
}
int grpindiv(int gunume,int* grdcmp,int dgensize,
int dremx,int dremy,int dgenlize)
{
int indrgf,dgenmask,dgcinda,dgendallow,dgenbize;
dgenbize=dgenlize<<2;
dgenmask=(dgensize >> 1)<<2;
dgendallow=1;
dgcinda=(dremx&1)<<1;
dgcinda=dgcinda+(dremy&1);
dgcinda=dgcinda-4;
indrgf=0;
while(dgendallow > 0)
{
// if((indrgf+dgenmask) >= dgenbize)dgendallow=0;
// if(dgendallow > 0)
// {
indrgf=indrgf+dgenmask;
if(gunume < *(grdcmp+(indrgf+dgcinda)))
{
indrgf=indrgf-dgenmask;
}
dgenmask=dgenmask >> 1;
if(dgenmask < 4)dgendallow=0;
// }
}
indrgf=indrgf >> 2;
return indrgf;
}
void speeftex(char* fpsf,char* spsf)
{
int exfolct,exfilct,exfleft,exfright;
int exfwrsub;
exfolct=0;
while(exfolct < 4096)
{
exfilct=0;
exfleft=1023;
exfright=(int)(*(spsf + exfolct));
if(exfright < 0)exfright=exfright+256;
exfright=255-exfright;
while(exfilct < 16)
{
exfwrsub=(exfolct*16)+exfilct;
*(fpsf+exfwrsub)=(char)exfleft;
exfwrsub=exfwrsub+1;
*(fpsf+exfwrsub)=(char)exfright;
exfright=exfright+exfright+1;
exfleft=exfleft+exfleft;
if(exfright > 255)
{
exfright=exfright-256;
exfleft=exfleft+1;
}
exfilct=exfilct+2;
}
exfolct=exfolct+1;
}
}
// end of speeftex
// int gcbw(int gcdepth,int gca)
// {
// int gcbr;
// gca is 0 12 14 15
// colors black darkgrey grey white
// gca is 4 2 1 R B G
// large plane masks 16 allplanes
// gca is 5 6 7 8 9 monochrome 10 remainder
// gcbr=0;
// if(gcdepth == 2)
// {
// if(gca == 0)gcbr=0;
// if(gca == 1)gcbr=1;
// if(gca == 2)gcbr=1;
// if(gca == 4)gcbr=1;
// if(gca == 12)gcbr=0;
// if(gca == 14)gcbr=1;
// if(gca == 15)gcbr=1;
// if(gca == 16)gcbr=1;
// }
// if(gcdepth == 4)
// {
// if(gca == 0)gcbr=0;
// if(gca == 1)gcbr=1;
// if(gca == 2)gcbr=2;
// if(gca == 4)gcbr=4;
// if(gca == 12)gcbr=0;
// if(gca == 14)gcbr=7;
// if(gca == 15)gcbr=15;
// if(gca == 16)gcbr=16;
// }
// if(gcdepth == 8)
// {
// if(gca == 0)gcbr=0;
// if(gca == 1)gcbr=2;
// if(gca == 2)gcbr=20;
// if(gca == 4)gcbr=160;
// if(gca == 12)gcbr=0;
// if(gca == 14)gcbr=73;
// if(gca == 15)gcbr=255;
// if(gca == 16)gcbr=255;
// }
// if(gcdepth == 24)
// {
// if((gca >= 1)&&(gca <= 4))
// {
// gcbr=65793*redcst(1,8,2,"00111100");
// }
// if(gca == 1)gcbr=gcbr+redcst(1,8,2,"01000010");
// if(gca == 2)gcbr=gcbr+(256 * redcst(1,8,2,"01000010"));
// if(gca == 4)gcbr=gcbr+(65536*redcst(1,8,2,"01000010"));
// if(gca == 0)gcbr=0;
// if(gca == 12)gcbr=4144959;
// if(gca == 12)gcbr=3947580;
// if(gca == 12)gcbr=0;
// if(gca == 14)gcbr=8355711;
// 14 to 65793 * (127 or 126)
// if(gca == 14)gcbr=65793 * redcst(1,8,2,"10000001");
// if(gca == 15)gcbr=16777215;
// if(gca == 16)gcbr=16777215;
// if(gca == 5)gcbr=65793*redcst(1,8,2,"10000000");
// if(gca == 6)gcbr=65793*redcst(1,8,2,"01000000");
// if(gca == 7)gcbr=65793*redcst(1,8,2,"00100000");
// if(gca == 8)gcbr=65793*redcst(1,8,2,"00010000");
// if(gca == 9)gcbr=65793*redcst(1,8,2,"00001000");
// if(gca == 10)gcbr=65793*redcst(1,8,2,"00000100");
// if(gca == 11)gcbr=65793*redcst(1,8,2,"00000010");
// if(gca == 22)gcbr=65793*redcst(1,8,2,"00000001");
// }
// if(gcdepth == 32)
// {
// gcbr=0;
// if((gca >= 1)&&(gca <= 4))
// {
// gcbr=2097152+1024;
// gcbr=gcbr*redcst(1,11,2,"00111111100");
// gcbr=gcbr+redcst(1,10,2,"0011111100");
// }
// if(gca == 1)gcbr=gcbr+redcst(1,10,2,"0100000010");
// if(gca == 2)gcbr=gcbr+(1024 * redcst(1,11,2,
// "01000000010"));
// if(gca == 4)gcbr=gcbr+(2097152 * redcst(1,11,2,
// "01000000010"));
// if(gca == 0)gcbr=0;
// if(gca == 12)gcbr=0;
// if(gca == 14)
// {
// gcbr=2097152+1024;
// gcbr=gcbr*redcst(1,11,2,"10000000001");
// gcbr=gcbr+redcst(1,10,2,"1000000001");
// }
// if(gca == 15)gcbr=0-1;
// if(gca == 16)gcbr=0-1;
// }
// return gcbr;
// }
void jetgc(Window wigc,GC* wrgc,int gsdepth,int azbnzw)
{
unsigned long vgcmask=0;
XGCValues vgcvalues;
int zbnzw;
unsigned int gclw=1;
int linestyle=LineSolid;
int capstyle=CapRound;
int joinstyle=JoinRound;
int fillstyle=FillSolid;
zbnzw=azbnzw;
*wrgc=XCreateGC(lpdis,wigc,vgcmask,&vgcvalues);
XSetLineAttributes(lpdis,*wrgc,gclw,linestyle,capstyle,
joinstyle);
XSetBackground(lpdis,*wrgc,BlackPixel(lpdis,scnum));
XSetForeground(lpdis,*wrgc,WhitePixel(lpdis,scnum));
XSetFillStyle(lpdis,*wrgc,fillstyle);
XSetPlaneMask(lpdis,*wrgc,zbnzw);
// -------------------------------------------------------
}
// end of jetgc(Window,GC*,int,int);
Window makexw(XSizeHints* sizehints,XWMHints* wmhints,
XClassHint* classhints)
{
// move to top int sbmask;
Window trix;
trix=XCreateSimpleWindow(lpdis,RootWindow(lpdis,scnum),
0,0,falkenx,falkeny,4,
BlackPixel(lpdis,scnum),WhitePixel(lpdis,scnum));
sud=0;
sizehints = XAllocSizeHints();
wmhints = XAllocWMHints();
classhints = XAllocClassHint();
(*(wmhints)).initial_state=NormalState;
(*(wmhints)).input = True;
(*(wmhints)).icon_pixmap = 0;
(*(wmhints)).flags = StateHint | InputHint ;
(*(classhints)).res_name = 0;
(*(classhints)).res_class = "Basicwin";
(*(sizehints)).flags = PPosition | PSize | PMinSize ;
(*(sizehints)).min_width = 592;
(*(sizehints)).min_height = 334;
sbmask = 0;
sbmask = sbmask | KeyPressMask;
sbmask = sbmask | KeyReleaseMask;
sbmask = sbmask | ExposureMask;
sbmask = sbmask | StructureNotifyMask;
sbmask = sbmask | ButtonPressMask;
XSelectInput(lpdis,trix,sbmask);
return trix;
// is trix a temporary variable or structure?
}
// ------------- bottom of windowmake
void ilinemake(int* iixt,char* xxdd)
{
int xsspos,xssmany,xssbase,xssctr,xsssub,xsstw;
int xssterm,xtssub;
// xsspos 999 xssbase-1 F xssmany 99 xsstw 9
// 9 f 5
xsspos=redcst(1,3,10,xxdd);
xssbase=redcst(4,1,16,xxdd);
xssmany=redcst(5,2,10,xxdd);
xssctr=0;
if((xssbase == 9)||(xssbase == 15))
{
xsstw = redcst(7,1,16,xxdd);
while(xssctr < xssmany)
{
xsssub = (xssctr * xsstw) + 8;
xtssub = xssctr + xsspos;
xssterm = redcst(xsssub,xsstw,(xssbase + 1),xxdd);
*(iixt + xtssub) = xssterm;
xssctr=xssctr+1;
}
}
if(xssbase == 5)
{
while(xssctr < xssmany)
{
xsssub = xssctr + 6;
xtssub = xssctr + xsspos;
xssterm = (int)(*(xxdd + xsssub));
*(iixt + xtssub)=xssterm;
xssctr = xssctr+1;
}
}
}
void iktmany(int* imxt)
{
int iktmanyctr;
iktmanyctr=0;
while(iktmanyctr < 512)
{
*(imxt + iktmanyctr)=131065;
iktmanyctr=iktmanyctr+1;
}
// -------------------------------------------
ilinemake(imxt,"079F0423738392D");
ilinemake(imxt,"083F0423435362B");
ilinemake(imxt,"087F052313233302E");
ilinemake(imxt,"097F04324724824924B");
ilinemake(imxt,"102F06324D24F250251252253");
// -------------------------------------------
ilinemake(imxt,"063F0122A");
ilinemake(imxt,"112F0122F");
ilinemake(imxt,"050F01210");
ilinemake(imxt,"062901216");
ilinemake(imxt,"022F01208");
ilinemake(imxt,"009F0121B");
ilinemake(imxt,"023F01209");
// --
ilinemake(imxt,"0105101234567890");
ilinemake(imxt,"024510qwertyuiop");
ilinemake(imxt,"038509asdfghjkl");
ilinemake(imxt,"052507zxcvbnm");
// --
ilinemake(imxt,"0369013013");
ilinemake(imxt,"108F0120D");
ilinemake(imxt,"0659013032");
ilinemake(imxt,"020F0222D3D");
ilinemake(imxt,"051F0125C");
ilinemake(imxt,"034F0225B5D");
ilinemake(imxt,"047F0223B27");
ilinemake(imxt,"059F0322C2E2F");
ilinemake(imxt,"049F01260");
// ----------------------------------------------------
ilinemake(imxt,"305F0127E");
ilinemake(imxt,"2669103033064035036037094038042040041");
ilinemake(imxt,"280510QWERTYUIOP");
ilinemake(imxt,"294509ASDFGHJKL");
ilinemake(imxt,"308507ZXCVBNM");
// -------------
ilinemake(imxt,"276F0225F2B");
ilinemake(imxt,"307F0127C");
ilinemake(imxt,"290F0227B7D");
ilinemake(imxt,"303F0223A22");
ilinemake(imxt,"315F0323C3E3F");
// --
}
// LINUX KEYBOARD TRANSLATOR TOP
// lreadc redcst
// need xxkeyhold next
int iidoskey(int kkll,int kshiftb,int ixkeyhold[],
const char* klinuxcm)
{
int klinuxmm,zandtogi;
int lidoskrs,lidoslr;
int wasdkeyused;
// x=120 v=118
char clinuxcm;
clinuxcm = *klinuxcm;
klinuxmm = (int)clinuxcm;
lidoskrs=131072;
wasdkeyused=0;
if(klinuxmm == 120)
{
lidoslr = kkll;
if((lidoslr >= 0)&&(lidoslr < 256))
{
if(kshiftb == 1)lidoslr=kkll+256;
lidoskrs = ixkeyhold[lidoslr];
wasdkeyused=1;
}
}
if(klinuxmm == 118)
{
// klinuxcm == "v" for int vga_getkey() within <vga.h>
zandtogi=1;
if(kkll < redcst(1,2,16,"00"))zandtogi=0;
if(kkll > redcst(1,2,16,"7E"))zandtogi=0;
if(zandtogi == 1)
{
lidoskrs=kkll;
}
if(kkll == redcst(1,2,16,"7F"))lidoskrs=8;
// -----------------------------------------------------
if(kkll == redcst(1,8,16,"1B5B317E"))lidoskrs=512+71;
if(kkll == redcst(1,8,16,"001B5B41"))lidoskrs=512+72;
if(kkll == redcst(1,8,16,"1B5B357E"))lidoskrs=512+73;
if(kkll == redcst(1,8,16,"001B5B44"))lidoskrs=512+75;
if(kkll == redcst(1,8,16,"001B5B43"))lidoskrs=512+77;
if(kkll == redcst(1,8,16,"1B5B347E"))lidoskrs=512+79;
if(kkll == redcst(1,8,16,"001B5B42"))lidoskrs=512+80;
if(kkll == redcst(1,8,16,"1B5B367E"))lidoskrs=512+81;
if(kkll == redcst(1,8,16,"1B5B327E"))lidoskrs=512+82;
if(kkll == redcst(1,8,16,"1B5B337E"))lidoskrs=512+83;
// -----------------------------------------------------
wasdkeyused=1;
}
if(wasdkeyused == 0)lidoskrs=klinuxmm;
return lidoskrs;
}
// end of int iidoskey(int,int,int[],const char*)
// ------------------------------------------------------
void onewrt01(int zur21,int maxwid21,int sx21,
int sy21,int ich21)
{
int syprod21,syrem21,syfrac21,dsub21;
int iich21;
char *where21;
int oa84[] = {0,127,-128,-1,
0,-65,64,-1,
0,-33,32,-1,
0,-17,16,-1,
0,-9,8,-1,
0,-5,4,-1,
0,-3,2,-1,
0,-2,1,-1};
iich21 = ich21 & 1;
syprod21=((((maxwid21+7)>>3)<<3)*sy21)+sx21;
syrem21=syprod21 & 7;
syfrac21=syprod21 >> 3;
where21 = (*(caap+zur21))+syfrac21;
dsub21=((7-syrem21) << 2)+iich21+iich21;
// groups of four by syrem21 position
// groups of two by ich21 0,1
// or and
if((syfrac21 >= 0)&&(syfrac21 < raw7size))
{
*where21 = *where21 | (char)oa84[dsub21];
*where21 = *where21 & (char)oa84[dsub21+1];
}
}
void onewrt31(int zur31,int maxwid31,int sx31,
int sy31,int ich31)
{
int syprod31,syrem31,syfrac31,sxfoline;
char* oi31[8];
syprod31=((((maxwid31+7)>>3)<<3)*sy31)+sx31;
syrem31=syprod31 & 7;
syfrac31=syprod31 >> 3;
// sxfoline=(syrem31*4096)+(ich31*16);
sxfoline=(syrem31<<12)+(ich31<<4);
if((syfrac31>=0)&&(syfrac31<=65535))
{
oi31[0]=(*(caap+(7+zur31)))+syfrac31;
oi31[1]=(*(caap+(6+zur31)))+syfrac31;
oi31[2]=(*(caap+(5+zur31)))+syfrac31;
oi31[3]=(*(caap+(4+zur31)))+syfrac31;
oi31[4]=(*(caap+(3+zur31)))+syfrac31;
oi31[5]=(*(caap+(2+zur31)))+syfrac31;
oi31[6]=(*(caap+(1+zur31)))+syfrac31;
oi31[7]=(*(caap+(0+zur31)))+syfrac31;
*(oi31[0])=(*(oi31[0]))|(char)table1632oa[sxfoline+0];
*(oi31[0])=(*(oi31[0]))&(char)table1632oa[sxfoline+1];
*(oi31[1])=(*(oi31[1]))|(char)table1632oa[sxfoline+2];
*(oi31[1])=(*(oi31[1]))&(char)table1632oa[sxfoline+3];
*(oi31[2])=(*(oi31[2]))|(char)table1632oa[sxfoline+4];
*(oi31[2])=(*(oi31[2]))&(char)table1632oa[sxfoline+5];
*(oi31[3])=(*(oi31[3]))|(char)table1632oa[sxfoline+6];
*(oi31[3])=(*(oi31[3]))&(char)table1632oa[sxfoline+7];
*(oi31[4])=(*(oi31[4]))|(char)table1632oa[sxfoline+8];
*(oi31[4])=(*(oi31[4]))&(char)table1632oa[sxfoline+9];
*(oi31[5])=(*(oi31[5]))|(char)table1632oa[sxfoline+10];
*(oi31[5])=(*(oi31[5]))&(char)table1632oa[sxfoline+11];
*(oi31[6])=(*(oi31[6]))|(char)table1632oa[sxfoline+12];
*(oi31[6])=(*(oi31[6]))&(char)table1632oa[sxfoline+13];
*(oi31[7])=(*(oi31[7]))|(char)table1632oa[sxfoline+14];
*(oi31[7])=(*(oi31[7]))&(char)table1632oa[sxfoline+15];
}
}
// end of onewrt31
// 32 bit integer subroutines for Linux
int divmodi(int inumer,int idenom,int nzirem)
{
int idmres,ifrac,irem,iprod;
irem=0-2;
ifrac=inumer / idenom;
while(irem < 0)
{
iprod=ifrac * idenom;
irem = inumer - iprod;
if(irem < 0)ifrac=ifrac-1;
}
idmres=ifrac;
if(nzirem > 0)idmres=irem;
return idmres;
}
int onexwchr(int xwcpos,char xwclist[])
{
int onexwres;
char onexwtcr;
onexwtcr = xwclist[xwcpos];
onexwres = (int)onexwtcr;
if(onexwres < 0)onexwres = onexwres + 256;
return onexwres;
}
// 7*14 font 8 characters every 7 bytes of width
// prev curr
// 00 FE FC 03 03 F8 07 F0
// 0F E0 1F C0 3F 80 7F 00
void hswristr(char hsb[],int hsw,int hst,
char bsf[],int hstrw,char hstr[])
{
// writeable hsb[]
// requested width in pixels hsw
// cursor+1001 hst
// big font bsf[]
// number of characters hstrw
// line of characters to draw hstr[]
// int hscur[] = { 0,-2,1,-4,3,-8,7,-16,
// 15,-32,31,-14,63,-128,127,0 };
int hscur[] = { -1,1,-2,3,-4,7,-8,15,
-16,-31,-32,13,-64,127,-128,-1 };
int hswid,hsrctr,hs16ctr,hm16ctr,hsbigco,hsbig;
int hsbigrem,hsbigchr,sbigwsub,hsbigcb;
char hs1right,hs2right;
hswid=divmodi((hsw+31),32,0)*4;
hm16ctr=14*hswid;
hsrctr=0;
while(hsrctr < hm16ctr)
{
hs16ctr=hsrctr+62;
hsb[hs16ctr]=(char)(0-1);
hsrctr=hsrctr+1;
}
uncram(0,2,hsb,19778);
uncram(18,4,hsb,hsw);
uncram(22,4,hsb,14);
uncram(28,2,hsb,1);
uncram(30,4,hsb,0);
uncram(46,4,hsb,0);
uncram(54,4,hsb,0);
uncram(58,4,hsb,16777215);
hsrctr=0;
while(hsrctr < hstrw)
{
hsbigchr=hstr[hsrctr];
if((hsbigchr>=32)&&(hsbigchr<127))
{
hsbigrem=hsrctr&7;
hsbigcb=(hsrctr>>3)*7;
hsbigco=hsbigcb+hsbigrem+62;
hs16ctr=0;
hsbig=(hsbigrem+hsbigrem)+(hsbigchr<<8);
sbigwsub=hsbigco+(14*hswid);
while(hs16ctr < 13)
{
// sbigwsub=hsbigco+((14-hs16ctr)*hswid)
// hsbig=(hsbigrem*2)+(256*hsbigchr)+(16*hs16ctr);
hsb[sbigwsub-1]=hsb[sbigwsub-1]&bsf[hsbig];
hsb[sbigwsub]=hsb[sbigwsub]&bsf[hsbig+1];
sbigwsub=sbigwsub-hswid;
hsbig=hsbig+16;
hs16ctr=hs16ctr+1;
}
if((hst-1001)==hsrctr)
{
hs1right=(char)hscur[hsbigrem+hsbigrem];
hs2right=(char)hscur[hsbigrem+hsbigrem+1];
hsb[sbigwsub-1]=hsb[sbigwsub-1]&hs1right;
hsb[sbigwsub]=hsb[sbigwsub]&hs2right;
}
hsrctr=hsrctr+1;
}
}
}
// end of hswristr
void chrfroms(int chfstart,int chfsize,char xvclist[],
const char* xvslist)
{
int chfctr,chfallow;
char chftcr;
chfctr=0;
chfallow=1;
while(chfallow > 0)
{
chftcr = *(xvslist + chfctr);
if(chftcr == '!')chfallow = 0;
if(chftcr == '$')chfallow = 0;
if(chfctr >= chfsize)chfallow = 0;
if(chfallow > 0)
{
xvclist[chfstart + chfctr]=chftcr;
chfctr=chfctr+1;
}
}
// depth = 1
chftcr = '\40';
chfallow = 0;
if(chfctr < chfsize)
{
chfallow = 1;
while(chfallow > 0)
{
if(chfctr >= chfsize)chfallow=0;
if(chfallow > 0)
{
xvclist[chfstart + chfctr]=chftcr;
// depth = 4
chfctr=chfctr+1;
}
}
}
}
// end of chrfroms;
int onexwdig(int xwdpos,char xwdlist[])
{
int xwdires,xwdicmp;
xwdires=127;
xwdicmp = onexwchr(xwdpos,xwdlist);
if((xwdicmp>=97)&&(xwdicmp<=102))xwdires=xwdicmp-87;
if((xwdicmp>=65)&&(xwdicmp<=70))xwdires=xwdicmp-55;
if((xwdicmp>=48)&&(xwdicmp<=57))xwdires=xwdicmp-48;
return xwdires;
}
int ixreada(int iarpos,int iarwid,int iarbase,
int nziarnext,char iarlist[])
{
int iarctr,iarallow,iarsub,ixreadr,ixreadt;
iarctr=0;
iarallow = 1;
ixreadr=0;
while(iarallow > 0)
{
iarsub = iarpos + iarctr - 1;
ixreadt = onexwdig(iarsub,iarlist);
if(ixreadt < iarbase)iarallow=0;
if(iarallow > 0)
{
iarctr = iarctr + 1;
if(iarctr >= iarwid)iarallow = 0;
}
}
// depth = 1
iarallow = 0;
if(iarctr < iarwid)
{
iarallow = 1;
while(iarallow > 0)
{
iarsub=iarpos+iarctr-1;
ixreadt = onexwdig(iarsub,iarlist);
if(ixreadt >= iarbase)iarallow=0;
if(iarallow > 0)
{
ixreadr=ixreadr*iarbase;
ixreadr=ixreadr+ixreadt;
iarctr=iarctr+1;
if(iarctr >= iarwid)iarallow=0;
}
}
}
// depth = 1
if(nziarnext > 0)ixreadr=iarpos+iarctr;
return ixreadr;
}
int revercram(int rcstart,int rcmany,char revdat[])
{
int revnegind,crammedres,cramctr,cramsub;
int cramterm;
cramsub=rcstart+rcmany-1;
revnegind=0;
cramterm=onexwchr(cramsub,revdat);
crammedres=0;
if((cramterm > 127)&&(rcmany > 3))revnegind=1;
cramctr=rcmany;
while(cramctr > 0)
{
cramsub = rcstart + cramctr -1;
cramterm=onexwchr(cramsub,revdat);
if(revnegind==1)cramterm=255-onexwchr(cramsub,revdat);
crammedres=crammedres*256;
crammedres=crammedres+cramterm;
cramctr=cramctr - 1;
}
if(revnegind == 1)crammedres=(0-1)-crammedres;
return crammedres;
}
void linuwrn(int lwrnpos,int lwrnwid,int lwrnbase,
char lwrt[],int lwrf)
{
int lwrnsub;
int lwrneg,lwrnterm,lwrnctr,lwrntop;
lwrneg=0;
lwrntop=lwrf;
if(lwrf < 0)lwrneg=1;
if(lwrneg == 1)lwrntop=0-(lwrf+1);
lwrnctr=lwrnwid-1;
while(lwrnctr >= 0)
{
lwrnsub=lwrnctr+lwrnpos-1;
lwrnterm=divmodi(lwrntop,lwrnbase,1);
lwrntop=divmodi(lwrntop,lwrnbase,0);
if(lwrneg == 1)lwrnterm=(lwrnbase-1)-lwrnterm;
lwrnterm=lwrnterm+48;
if(lwrnterm > 57)lwrnterm=lwrnterm+39;
lwrt[lwrnsub]=(char)lwrnterm;
lwrnctr=lwrnctr+1;
// *** ERROR *** incrementing instead of needed
// decrementing above
// *** ERROR *** above mistke was hidden
// and hard to find
// attempting fix below
lwrnctr=lwrnctr-2;
}
}
void uncram(int ucstart,int ucmany,char ucdat[],
int ucfrom)
{
int ctruc,uctop,ucneg,ucsub,uccdig;
ucneg=0;
uctop=ucfrom;
if(ucfrom < 0)
{
uctop = 0 - (ucfrom + 1);
ucneg = 1;
}
ctruc = 0;
while(ctruc < ucmany)
{
uccdig=divmodi(uctop,256,1);
uctop=divmodi(uctop,256,0);
ucsub=ctruc+ucstart;
if(ucneg == 1)uccdig=255-uccdig;
if(uccdig > 127)uccdig = uccdig - 256;
ucdat[ucsub]=(char)uccdig;
ctruc=ctruc + 1;
}
}
int ombrlen(int ombrloffset,int ombmaxlen,
char ombuksize[])
{
int ombclen,omblelow,omblent,nextlelow;
ombclen=ombmaxlen;
omblelow=1;
if(ombmaxlen > 0)
{
while(omblelow > 0)
{
omblent=onexwchr((ombrloffset+ombclen-1),ombuksize);
nextlelow=0;
if(omblent == 0)nextlelow=1;
if(omblent == 32)nextlelow=1;
if(nextlelow == 0)omblelow=0;
if(omblelow > 0)
{
ombclen=ombclen-1;
if(ombclen < 1)omblelow=0;
}
}
}
if(ombmaxlen == 0)
{
ombclen=0;
while(omblelow > 0)
{
omblent=onexwchr((ombrloffset + ombclen),ombuksize);
nextlelow=1;
if(omblent == 0)nextlelow=0;
if(omblent == 32)nextlelow=0;
if(omblent == 33)nextlelow=0;
if(nextlelow == 0)omblelow=0;
if(nextlelow > 0)ombclen=ombclen+1;
if(ombclen > 71)omblelow=0;
}
}
return ombclen;
}
// end of ombrlen
int nzlinedone(int lkbc[],char reekline[])
{
int nzlineres,nzlinectr,nzldcmp,nzlinebase;
nzlinebase=lkbc[34];
nzlinectr=lkbc[25];
nzlineres=0;
if(nzlinectr == 0)
{
while(nzlineres < 40)
{
reekline[nzlineres+nzlinebase]='\040';
nzlineres=nzlineres+1;
}
}
nzlineres=0;
nzldcmp=lkbc[26];
if((nzldcmp == 8)&&(nzlinectr>0))nzlinectr=nzlinectr-1;
if((nzldcmp > 31)&&(nzldcmp < 126))
{
reekline[nzlinectr+nzlinebase]=(char)nzldcmp;
nzlinectr=nzlinectr+1;
}
if((nzldcmp == 10)||(nzldcmp == 13))nzlineres=1;
lkbc[25]=nzlinectr;
if(nzlinectr > 38)nzlineres=1;
return nzlineres;
}
// end of nzlinedone
int redcst(int llrs,int llrw,int llrbase,
const char* llccs)
{
int yellowcst;
char redcharb[80];
chrfroms(0,(llrw+llrs-1),redcharb,llccs);
yellowcst = ixreada(llrs,llrw,llrbase,0,redcharb);
return yellowcst;
}
// end of redcst
// end of Linux integer char subroutines
// bitmap using subroutines
// .................................................
// Applications programs that are written for Linux
// use the following
// simplified bitmap header for device independent bitmaps
// location length
// 000 00 02 cstMBcmp value 19778 M=77 B=66 2
// 002 02 16 skipped
// 018 12 04 biwidth in pixels 4
// 022 16 04 biheight in pixels 4
// 026 1A 02 skip was biplanes set to 0001
// 028 1C 02 bibitcount = { 1,4,8,24 } 2
// 030 1E 04 Zero if no compression. 4
// 034 22 12 skipper
// 046 2E 04 biclrused number of colors if > 0 4
// && [1C]==8 x
// 050 32 04 skippable
// 054 36 ((2^[1C])*4)(or 0 for [1C]==24) colortable
// with bgr0 entries
// if([1C]==1)len=8
// if([1C]==4)len=64
// 062 3E start of monochrome bitmap
// 118 76 start of VGA 4 bit color bitmap
// lines of pixels are left to right but upside down
// an extra skippable is added to end of each line to
// make each file line a multiple of four bytes
// ...................................................
// bitmap context integer array for
// some applications programs written for Linux
// requested output characteristics
// 00 destwid
// 01 desthgt
// 02 destx
// 03 desty
// 04 scale set to 0 then let bitmap compute it later
// 05 readmode 0=file 1=memory
// 06 colormode 1=decreaseincreasewithsyncedlimits
// 07 planewidth
// . . . . . . . . . . . . . . . . . .
// input characteristics from incoming bitmap
// 08 biwidth18
// 09 biheight22
// 10 bibitcount28
// 11 ifzerook30
// 12 biclrused46
// 13 isit19778
// ..
// 14 colortablesize
// 15 vfilepointer
// 16 bytesperrecord
// 17 skippedbytes
// 18 prinwid
// 19 prinleft
// 20 prinudy
// 21 prinhgt
// 22
// 23 prinprvpix
// 24 nzfilenamefinished
// 25 keyctr
// 26 keychar
// 27 rawkey
// 28 pagetofive
// 29 planehgt
// 30 dagrajumpnow
// 31 freddyisnext
// 32 screenDEPTH
// 33
// 34 curscrkeyoff
// 35 curscreenwrt
// 36
// 37
// 38
// 39 nzallfour
// 40
// 41 nzfn01
// 42 nzfn02
// 43 nzfn03
// 44 nzfn04
// 45 nzfn05
// 46
// 47
// 48
// 49
// 50
// 51 scrollctr
// 52 scrolllimit
// 53 scrollallow
// 54 scrolldir
// 55
// 56 picturesreadcounterlastdigit
// 57 previousscreen
// 58 th0
// 59 th1
// 60 th2
// 61 th3
// 62 th4
// 63 th5
// 64 th6
// 65 th7
// 66 th8
// 67 th9
// 68 th10
// 69 th11
// 70 th12
// 71 th13
// 72 th14
// 73 th15
// 74
// 75
// 76
// 77
// 78
// 359
int lscale(int lscabc[])
{
int lscares,lscallow,lscawchk,lscahchk;
int zandtogl;
lscares=1;
lscallow=1;
while(lscallow > 0)
{
lscawchk = lscabc[0] * lscares;
lscahchk = lscabc[1] * lscares;
zandtogl = 1;
if(lscawchk < lscabc[8])zandtogl=0;
if(lscahchk < lscabc[9])zandtogl=0;
if(zandtogl == 1)lscallow=0;
if(lscallow > 0)
{
lscares=lscares+1;
if(lscares > 16383)lscallow=0;
}
}
return lscares;
// lscale returns factor by which to shrink picture
}
int lredoffs(int lrosbc[])
{
int lredoffr;
lredoffr=0;
if(lrosbc[5] > 0)lredoffr=lrosbc[15];
return lredoffr;
// lredoffs returns 0 for file read or
// virtualfilepointer value for memory read
}
int lctsize(int lctsbc[])
{
int lctsres,lctsterm,lctstrrm;
lctsres=0;
lctsterm=lctsbc[10];
lctstrrm=lctsbc[12];
if(lctsterm == 1)lctsres=2;
if(lctsterm == 4)lctsres=16;
if((lctsterm == 8)&&(lctstrrm == 0))lctsres=256;
if((lctsterm == 8)&&(lctstrrm > 0))lctsres=lctstrrm;
return lctsres;
// lctsize returns colortable size in
// four byte doublewords
}
int lpixperb(int lpixprbc[])
{
int lpixperes,lpixpercmp;
lpixpercmp = lpixprbc[10];
lpixperes=0;
if(lpixpercmp == 1)lpixperes=8;
if(lpixpercmp == 4)lpixperes=2;
if(lpixpercmp == 8)lpixperes=1;
return lpixperes;
// lpixperb returns pixels per byte if > 0 xor 3 bytes
// per pixel if return zero
}
int lbytespr(int lbprbc[],int nzlbprem)
{
int lbypres,lbyperb,lbyrnumer;
lbyperb=lpixperb(lbprbc);
if(lbyperb > 0)
{
lbyrnumer=lbprbc[8]+lbyperb-1;
lbypres=divmodi(lbyrnumer,lbyperb,0);
}
if(lbyperb == 0)lbypres = 3 * lbprbc[8];
if(nzlbprem > 0)
{
lbyrnumer=lbypres-(divmodi(lbypres,4,0)*4);
lbypres=0;
if(lbyrnumer > 0)lbypres=4-lbyrnumer;
}
return lbypres;
// returns lbypres bytes per record to make
// (one input line of pixels) if nzlbprem==0
// returns lbypres is number of skippable bytes
// after each line if arg 2 > 0
}
int lbreadf(int lbreadbc[],char lbrecord[],int lbreadw,
FILE* lbreadh)
{
int actreadwid,lbreadres;
if(lbreadw == 0)actreadwid=lbreadbc[16]+lbreadbc[17];
if(lbreadw > 0)actreadwid=lbreadw;
lbreadres=lbreadbc[15];
if(lbreadbc[5] == 0)
{
// read from a file
fread(lbrecord,actreadwid,1,lbreadh);
}
lbreadres=lbreadres+actreadwid;
// lbreadres is next value to put in [15]
// after call to lredoffs
return lbreadres;
}
int nzreadmbhdr(int nzrhbc[],char nzrhrecord[],
char rhctble[],FILE* nzrhh)
{
int nzrnext,nzrhres,nzrholop,nzrhilop,nzrhctsub;
int nzrhrase,nzrhcolsub;
int nzrhnext;
nzrnext=0;
nzrhbc[15]=nzrnext;
nzrhres=nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,2,nzrhh);
nzrhbc[13]=revercram(lredoffs(nzrhbc),2,nzrhrecord);
nzrhbc[15] = nzrnext;
if(nzrhbc[13] == 19778)
{
nzrhres=1;
// depth = 2
nzrnext=lbreadf(nzrhbc,nzrhrecord,16,nzrhh);
nzrhbc[15] = nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[8] = revercram(lredoffs(nzrhbc),4,nzrhrecord);
nzrhbc[15] = nzrnext;
nzrnext = lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[9] = revercram(lredoffs(nzrhbc),4,nzrhrecord);
nzrhbc[15] = nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,2,nzrhh);
nzrhbc[15] = nzrnext;
// ------------------------------------------------
nzrnext=lbreadf(nzrhbc,nzrhrecord,2,nzrhh);
nzrhbc[10] = revercram(lredoffs(nzrhbc),2,nzrhrecord);
nzrhbc[15] = nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[11] = revercram(lredoffs(nzrhbc),4,nzrhrecord);
nzrhbc[15] = nzrnext;
if(nzrhbc[11] != 0)nzrhres=0;
nzrnext=lbreadf(nzrhbc,nzrhrecord,12,nzrhh);
nzrhbc[15]=nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[12] = revercram(lredoffs(nzrhbc),4,nzrhrecord);
nzrhbc[15] = nzrnext;
nzrnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhbc[15] = nzrnext;
if(nzrhbc[4] == 0)nzrhbc[4]=lscale(nzrhbc);
nzrhbc[14]=lctsize(nzrhbc);
nzrhbc[16]=lbytespr(nzrhbc,0);
nzrhbc[17]=lbytespr(nzrhbc,1);
// depth = 2
nzrhbc[18]=divmodi(nzrhbc[8],nzrhbc[4],0);
nzrhbc[21]=divmodi(nzrhbc[9],nzrhbc[4],0);
nzrhbc[20]=nzrhbc[21]-1;
nzrhbc[19]=nzrhbc[0]-nzrhbc[18];
nzrholop=0;
while(nzrholop < nzrhbc[14])
{
nzrhnext=lbreadf(nzrhbc,nzrhrecord,4,nzrhh);
nzrhrase=lredoffs(nzrhbc);
// depth = 3
nzrhbc[15] = nzrhnext;
nzrhilop=0;
while(nzrhilop < 4)
{
nzrhctsub=(nzrholop * 4) + nzrhilop;
nzrhcolsub = nzrhrase + nzrhilop;
rhctble[nzrhctsub] = nzrhrecord[nzrhcolsub];
// depth = 4
nzrhilop=nzrhilop+1;
}
nzrholop=nzrholop+1;
// depth = 3
}
// depth = 2
if((nzrhbc[8]*nzrhbc[4]*3)>=bigbuffsize)nzrhres=0;
}
// depth = 1
return nzrhres;
}
// end of nzreadmbhdr
int xwtscroll(int xscbc[],char xscsingle[],
char xscgroup[])
{
int xscres,xscilo,xscbase;
// 51 scrollctr 52 scrolllimit
// 53 scrollallow
// 54 scrolldir 0=save 1=get
xscbase=((xscbc[51]) + 1)*40;
xscres=0;
xscilo=0;
if(((xscbc[54]) == 0)&&((xscbc[51]) < (xscbc[52])))
{
while(xscilo < 40)
{
xscgroup[xscbase + xscilo] = xscsingle[xscilo];
xscilo=xscilo+1;
}
if((xscbc[53]) > 0)xscres=1;
if((xscbc[53]) > 0)xscbc[51]=xscbc[51]+1;
}
if(((xscbc[54]) == 1)&&((xscbc[51]) < (xscbc[52])))
{
while(xscilo < 40)
{
xscsingle[xscilo]=xscgroup[xscbase + xscilo];
xscilo=xscilo+1;
}
if((xscbc[53]) > 0)xscres=1;
if((xscbc[53]) > 0)xscbc[51]=xscbc[51]+1;
}
return xscres;
}
void getpine(int gpbc[],char gprec[],char gpct[],
char gpbig[],FILE* gph)
{
int gbibitcount,hpixb,gpixctr,gbytectr;
int gbiwidth,ghmbytes,gpirase,gpinext;
int gpdesrase,gpeallow,gpscalelim,gpscalectr;
int gpctrase,gpilopctr,gpiterm,gpidenom,gpilopsub;
int gpints[8];
gbibitcount=gpbc[10];
hpixb=lpixperb(gpbc);
gbiwidth=gpbc[8];
ghmbytes=gpbc[16];
gpscalelim=gpbc[4];
gpdesrase=0;
gpscalectr=0;
// depth = 1
while(gpscalectr < gpscalelim)
{
gpinext=lbreadf(gpbc,gprec,0,gph);
// depth = 2
gpirase=lredoffs(gpbc);
gpbc[15]=gpinext;
gpixctr=0;
gbytectr=0;
gpeallow=1;
while(gpeallow > 0)
{
gpiterm=onexwchr((gpirase+gbytectr),gprec);
// depth = 3
if(gbibitcount < 9)
{
gpilopctr=hpixb;
if(gbibitcount == 1)gpidenom=2;
if(gbibitcount == 4)gpidenom=16;
if(gbibitcount == 8)gpidenom=256;
while(gpilopctr > 0)
{
gpilopsub=gpilopctr-1;
gpints[gpilopsub]=divmodi(gpiterm,gpidenom,1);
gpiterm=divmodi(gpiterm,gpidenom,0);
// depth = 5
gpilopctr=gpilopsub;
}
gpilopctr=0;
// depth = 4
while(gpilopctr < hpixb)
{
if(gpeallow > 0)
{
gpctrase=gpints[gpilopctr]*4;
gpbig[gpdesrase]=gpct[gpctrase];
// depth = 6
gpbig[gpdesrase+1]=gpct[gpctrase+1];
gpbig[gpdesrase+2]=gpct[gpctrase+2];
gpdesrase=gpdesrase+3;
gpixctr=gpixctr+1;
if(gpixctr >= gbiwidth)gpeallow=0;
}
// *** ERROR *** initial paperwork forgot to increment
// gpilopctr like next
gpilopctr=gpilopctr+1;
}
gbytectr=gbytectr+1;
}
// depth = 3
if((gbibitcount == 24)&&(gpeallow > 0))
{
gpbig[gpdesrase]=gprec[gpirase+gbytectr];
gpbig[gpdesrase+1]=gprec[gpirase+gbytectr+1];
// depth = 4
gpbig[gpdesrase+2]=gprec[gpirase+gbytectr+2];
gpdesrase=gpdesrase+3;
gpixctr=gpixctr+1;
if(gpixctr >= gbiwidth)gpeallow=0;
gbytectr=gbytectr+3;
}
if(gbytectr >= ghmbytes)gpeallow=0;
}
// depth = 2
gpscalectr=gpscalectr+1;
}
}
// end of getpine
int putpine(char** iirplane,int irplane[],
int vpthresh[],char vpbig[])
{
int putriny,putxvctr,putxoctr,putxictr,putxoisub;
int putbigcmp,putsmallpix;
int putbigcmr,putbigcmg,putbigcmb;
int putpilowcap,putpibigcap,putjshifx,putjshify;
char* jrplane0;
char* jrplane1;
char* jrplane2;
char* jrplane3;
jrplane0 = *(iirplane + 0);
jrplane1 = *(iirplane + 1);
jrplane2 = *(iirplane + 2);
jrplane3 = *(iirplane + 3);
// depth = 1 1608 indirects 1604 thru 1607
putpilowcap = irplane[4] * irplane[4] * 3;
putpibigcap = irplane[4] * irplane[4] * 254 * 3;
putxvctr=0;
putriny=irplane[20]+1;
if(irplane[13]==19778)putriny=irplane[20]-1;
// depth = 1
if((irplane[20] >= 0)&&(irplane[20] < irplane[21]))
{
irplane[23]=0;
while(putxvctr < irplane[18])
{
putxoctr=0;
// putbigcmr needs to be zeroed HERE 1909
putbigcmr = 0;
putbigcmg = 0;
putbigcmb = 0;
while(putxoctr < irplane[4])
{
putxictr = 0;
while(putxictr < irplane[4])
{
// putxoisub=(putxoctr*irplane[8]*3)+(putxictr * 3);
// depth = 5
// *** ERROR *** above calulation of
// putxoisub is incorrect
putxoisub=((irplane[8])*putxoctr)+putxictr;
putxoisub=putxoisub+(putxvctr*(irplane[4]));
putxoisub=putxoisub*3;
// depth = 5
// ***ERROR*** hidden mistake of zeroing at wrong place
// putbigcmp=0; here only works when irplane[4]==1
// *** ERROR *** initial paperwork tried to add char
// directly to int next.
putbigcmb=putbigcmb+onexwchr(putxoisub,vpbig);
putbigcmg=putbigcmg+onexwchr((putxoisub + 1),vpbig);
putbigcmr=putbigcmr+onexwchr((putxoisub + 2),vpbig);
putxictr=putxictr+1;
}
putxoctr=putxoctr+1;
}
// depth = 3
putbigcmp = putbigcmr + putbigcmg + putbigcmb;
// colormode starts at 0. Replace 2;
if((irplane[6] >= 0)&&(irplane[6] <= 1)&&(scrallow == 1))
{
putsmallpix=0;
if(putbigcmp > irplane[23])putsmallpix=255;
if(putsmallpix != 0)irplane[23]=putbigcmp+1;
if(putsmallpix == 0)irplane[23]=putbigcmp-1;
if((irplane[6] == 1)&&(scrallow == 1))
{
if(putbigcmp < putpilowcap)putsmallpix=0;
// depth = 5
if(putbigcmp > putpibigcap)putsmallpix=255;
}
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
onewrt31(0,irplane[7],putjshifx,putjshify,
putsmallpix);
}
// cut here depth = 3 ------------ 1871 twotop
// 3772
if(((irplane[6]) == 2)&&(scrallow == 1))
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),8,
putjshifx,putjshify,8);
putsmallpix=thsixsev[putxictr];
onewrt31(0,irplane[7],putjshifx,putjshify,
putsmallpix);
}
// depth = 3
if(((irplane[6]) == 3)&&(scrallow == 1))
{
putsmallpix=0;
putjshify=irplane[20]+irplane[3];
putjshifx=putxvctr+irplane[2];
putxictr=0;
putxoctr=((putjshifx & 1) << 1)+(putjshify & 1);
if(irplane[62+putxoctr] < putbigcmr)
{
putxictr=1;
// depth = 5
putsmallpix=putsmallpix | 192;
}
// depth = 4
if(irplane[62+putxoctr] < putbigcmg)
{
putxictr=1;
putsmallpix=putsmallpix | 160;
}
if(irplane[62+putxoctr] < putbigcmb)
{
putxictr=1;
putsmallpix=putsmallpix | 144;
}
// depth = 4
if(putxictr == 0)
{
// depth = 5
if(irplane[58+putxoctr] < putbigcmr)
{
putsmallpix=putsmallpix | 64;
}
// depth = 5
if(irplane[58+putxoctr] < putbigcmg)
{
putsmallpix=putsmallpix | 32;
}
if(irplane[58+putxoctr] < putbigcmb)
{
putsmallpix=putsmallpix | 16;
}
// depth = 5
}
// depth = 4
onewrt31(0,irplane[7],putjshifx,putjshify,
putsmallpix);
// depth = 4
}
// depth = 3
if(((irplane[6]) == 4)&&(scrallow == 1))
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),16,
putjshifx,putjshify,16);
putsmallpix=briout[putxictr];
onewrt31(0,irplane[7],putjshifx,putjshify,
putsmallpix);
}
if(((irplane[6]) == 5)&&(scrallow == 1))
{
putsmallpix=indiv(putbigcmp,(irplane+58),256);
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
onewrt31(0,irplane[7],putjshifx,putjshify,
putsmallpix);
}
// depth = 3
if(((irplane[6]) == 6)&&(scrallow == 1))
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putsmallpix=indiv(putbigcmr,(irplane+58),256);
onewrt31(16,irplane[7],putjshifx,putjshify,
putsmallpix);
putsmallpix=indiv(putbigcmg,(irplane+58),256);
onewrt31(8,irplane[7],putjshifx,putjshify,
putsmallpix);
putsmallpix=indiv(putbigcmb,(irplane+58),256);
onewrt31(0,irplane[7],putjshifx,putjshify,
putsmallpix);
}
// depth = 3
if(((irplane[6]) == 7)&&(scrallow == 1))
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),16,
putjshifx,putjshify,16);
putsmallpix=briout[putxictr];
onewrt31(0,irplane[7],putjshifx,putjshify,
putsmallpix);
}
// depth = 3
if(scrallow == 0)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putsmallpix=1;
if(putbigcmp < (irplane[58]))putsmallpix=0;
onewrt01(24,irplane[7],putjshifx,putjshify,
putsmallpix);
}
// ------------------------------------------------ 4117
putxvctr=putxvctr+1;
}
// depth = 2
if(scrallow == 1)
{
putxvctr=0;
while(putxvctr < irplane[19])
{
putsmallpix=255;
putxictr=putxvctr+irplane[18];
putjshifx=putxictr+irplane[2];
putjshify=irplane[20]+irplane[3];
if(((putjshifx+putjshify)&8)!=0)putsmallpix=0;
onewrt31(0,irplane[7],putjshifx,putjshify,
putsmallpix);
// depth = 4
if((irplane[6])==6)
{
onewrt31(8,irplane[7],putjshifx,putjshify,
putsmallpix);
onewrt31(16,irplane[7],putjshifx,putjshify,
putsmallpix);
}
putxvctr=putxvctr+1;
// depth = 4
}
// depth = 3
}
// depth = 2
}
return putriny;
}
// end of putpine
int onebumpw(char** ijplane,int onbbc[],
char ombrecord[],char ombgbig[])
{
FILE* ombfh;
int ombctr,fnlen,fdlen,omballow,oneedclose,ombresu;
char ombcolort[1024];
int ombthresh[16];
char ombfns[90];
// SEEK_SET SEEK_CUR SEEK_END
ombfns[0]='\0';
oneedclose=0;
ombresu=0;
omballow=1;
if(onbbc[5] == 0)
{
fnlen = ombrlen(0,40,ombrecord);
ombctr=0;
while(ombctr < fnlen)
{
ombfns[ombctr]=ombrecord[ombctr];
ombctr=ombctr+1;
}
ombfns[fnlen]='\0';
ombfh = NULL;
if(fnlen > 0)ombfh = fopen(ombfns,"rb");
if(ombfh == NULL)omballow = 0;
// depth = 2
if(omballow > 0)
{
fseek(ombfh,0,SEEK_END);
fdlen=ftell(ombfh);
fseek(ombfh,0,SEEK_SET);
oneedclose=1;
}
// depth = 2
}
// depth = 1;
onbbc[8]=0;
onbbc[9]=0;
onbbc[10]=24;
onbbc[13]=0;
onbbc[15]=0;
if(omballow > 0)
{
omballow=nzreadmbhdr(onbbc,ombrecord,ombcolort,ombfh);
// line 3917
if(((onbbc[6]) == 72)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < 6)
{
onbbc[(58+ombctr)]=shrinkth[ombctr]*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
if(((onbbc[6]) == 85)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < 24)
{
onbbc[(58+ombctr)]=sbrinkth[ombctr]*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
if(((onbbc[6]) == 2)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < 32)
{
onbbc[(58+ombctr)]=sixthre[ombctr]*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
if(((onbbc[6]) == 3)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < 8)
{
onbbc[(58+ombctr)]=rgbeight[ombctr]*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
if(((onbbc[6]) == 84)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < 8)
{
onbbc[(58+ombctr)]=rgbeight[ombctr]*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
// 5
// colormode == 4
if(((onbbc[6]) == 74)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < (thdimtran - 1))
{
onbbc[(58+ombctr)]=bigthre[ombctr]*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
// line 3965
// second colormode == 2
if(((onbbc[6]) == 4)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < 64)
{
onbbc[(58+ombctr)]=rawsog[ombctr]*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
if(((onbbc[6]) == 5)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < 256)
{
onbbc[(58+ombctr)]=((ombctr+2)*3)*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
if(((onbbc[6]) == 6)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < 256)
{
onbbc[(58+ombctr)]=(ombctr+1)*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
if(((onbbc[6]) == 7)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < 64)
{
onbbc[(58+ombctr)]=bawlog[ombctr]*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
// line 3986:2217
if(((onbbc[6]) == 1003)&&(scrallow == 1))
{
ombctr=0;
while(ombctr < ((thdimbran - 1)*4))
{
onbbc[(58+ombctr)]=monoghre60[ombctr]*onbbc[4]*onbbc[4];
ombctr=ombctr+1;
}
}
// --------------------
if(scrallow == 0)
{
ombctr=onbbc[6];
onbbc[58]=threzero[ombctr]*onbbc[4]*onbbc[4];
}
// end of actual monochrome greyscale thresholds loading
// -- line 3997::2234
}
if((omballow>0)&&((onbbc[21])>0)&&(oneedclose==1))
{
onbbc[56]=onbbc[56]+1;
}
if((onbbc[56]) > 9)onbbc[56]=0;
if((omballow > 0)&&(onbbc[13] == 19778))
{
// if(((onbbc[10]) > 1)||((onbbc[4]) > 1))
if(((onbbc[10]) >= 1)||((onbbc[4]) >= 1))
{
// onbbc[20]=onbbc[21]-1;
while(omballow > 0)
{
getpine(onbbc,ombrecord,ombcolort,ombgbig,ombfh);
onbbc[20]=putpine(ijplane,onbbc,ombthresh,ombgbig);
if(onbbc[20] < 0)omballow=0;
ombresu=1;
}
}
}
if(oneedclose > 0)
{
fclose(ombfh);
}
// depth = 1
// ---------
return ombresu;
}
// end of onebumpw
int twobumpw(char** tjple,int tmbc[],char tmbr[],
char tbjg[],char tbf[])
{
int tmhrrem,tmbdiscard,tmbswitch,tmbresult,tmbtuebot;
char tnutexxt[88];
// (640 * 16 / 8) + 62
char tmogroup[2700];
char tmolinne[2684];
tmbswitch=tmbc[5];
tmbdiscard=0;
while(tmbdiscard < 40)
{
tnutexxt[tmbdiscard]='\40';
tmbdiscard=tmbdiscard+1;
}
if(tmbswitch > 0)
{
tmbresult=onebumpw(tjple,tmbc,tmbr,tbjg);
}
if(tmbswitch == 0)
{
// -------------
tmbdiscard=0;
while(tmbdiscard < 40)
{
tnutexxt[tmbdiscard]=tmbr[tmbdiscard];
tmbdiscard=tmbdiscard+1;
}
// -------------
tmbc[21]=0;
tmbc[4]=0;
tmbresult=0;
if((tmbc[24]) > 0)
{
tmbresult=onebumpw(tjple,tmbc,tmbr,tbjg);
}
tmbtuebot=tmbc[21];
tmhrrem=tmbc[1]-tmbtuebot;
// depth = 2
if((tmbc[0]) < 280)tmhrrem=0;
// ------------------------------------
tmbc[52]=divmodi(tmhrrem,14,0);
// greatest possible tmbc[52] is number of lines of
// text to be written
if((tmbc[52]) > 16)tmbc[52]=16;
if((tmbc[30]) == 11830)tmbc[52]=1;
tmbc[53]=1;
if((tmbc[30]) == 11830)tmbc[53]=1;
tmbc[51]=0;
tmbc[54]=0;
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
// -------------------------------------
// ------------------------------------
chrfroms(0,40,tnutexxt,
"w ---- h ---- s ----- b -- u dos B!");
linuwrn(3,4,10,tnutexxt,(tmbc[8]));
linuwrn(11,4,10,tnutexxt,(tmbc[9]));
linuwrn(19,1,10,tnutexxt,(tmbc[56]));
linuwrn(20,1,10,tnutexxt,(tmbc[35]));
linuwrn(21,1,10,tnutexxt,(tmbc[28]));
linuwrn(22,2,10,tnutexxt,(tmbc[4]));
linuwrn(28,2,10,tnutexxt,(tmbc[10]));
if(((tmbc[12]) > 0)&&((tmbc[10]) == 8))
{
linuwrn(34,3,10,tnutexxt,(tmbc[12]));
}
linuwrn(39,2,10,tnutexxt,(tmbc[6]));
if(tmbc[(tmbc[35] + 40)] == 0)
{
chrfroms(0,40,tnutexxt,
"No bitmap file is here. !");
}
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
// ----------------------------------------------
chrfroms(0,40,tnutexxt,
"w ---- h ---- t --- k --- -------- r!");
linuwrn(3,4,10,tnutexxt,(tmbc[7]));
linuwrn(11,4,10,tnutexxt,(tmbc[29]));
if((tmbc[35]) < 5)
{
linuwrn(3,4,10,tnutexxt,((tmbc[7]) >> 1));
linuwrn(11,4,10,tnutexxt,((tmbc[29]) >> 1));
}
linuwrn(19,3,10,tnutexxt,(tmbc[32]));
if(((tmbc[26]) >= 0)&&((tmbc[26]) < 1000))
{
linuwrn(26,3,10,tnutexxt,(tmbc[26]));
if(nzlibkey == 0)
{
if(((tmbc[26]) >= 32)&&((tmbc[26]) < 127))
{
tnutexxt[23] = (char)(tmbc[26]);
}
if(((tmbc[26]) >= 544)&&((tmbc[26]) < 639))
{
tnutexxt[22] = (char)(tmbc[26]-512);
}
}
// bottom of 0 to 1000 is next
}
linuwrn(30,8,16,tnutexxt,(tmbc[27]));
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
"-- Zacks Death Star is helping LINUX. !");
linuwrn(1,2,10,tnutexxt,(tmbc[52]));
if((lmoux < 10000)&&(lmouy < 10000))
{
if((lmoux >= 0)&&(lmouy >= 0))
{
if((tmbc[4]) == 1)
{
chrfroms(0,40,tnutexxt,
"-- ---- ---- ------------------------ !");
linuwrn(4,4,10,tnutexxt,lmoux);
linuwrn(9,4,10,tnutexxt,lmouy);
}
}
}
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
"Vote for an All Volunteer jury system. !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
"This program is not valid without its !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
"source code file xwview14.c !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
"THE ABILITY TO DESTROY A PLANET IS !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
"INSIGNIFICANT NEXT TO THE POWER OF !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
"OPEN SOURCE. !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
" o open 1 to 4 small screen q quit!");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
"5 large screen c d colormode r redraw!");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
if(fourdirpen == 0)
{
chrfroms(0,40,tnutexxt,
" ; get current directory filenames !");
}
if(fourdirpen == 1)
{
chrfroms(0,40,tnutexxt,
" . close dir , next dirfilename !");
}
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
" j allow mouse button to next picture !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
" v toggle bits per pixel 1 or 24 !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,
"xwview14.c 12/05/09 by Eric Matteson !");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
// ------------------------------
tmbc[54]=1;
tmbc[51]=0;
tmbc[5]=1;
tmbc[4]=1;
tmbc[3]=tmbc[3]+tmbc[21];
tmbc[21]=14;
tmhrrem=1;
while(tmhrrem > 0)
{
tmhrrem=xwtscroll(tmbc,tnutexxt,tmogroup);
if(tmhrrem > 0)
{
hswristr(tmolinne,(tmbc[0]),1000,tbf,40,tnutexxt);
tmbdiscard=onebumpw(tjple,tmbc,tmolinne,tbjg);
tmbc[3]=tmbc[3]+tmbc[21];
}
}
// -------------------------------------
}
// depth = 1
return tmbresult;
}
// end of twobumpw
int twobuz(char** zpl,int zbc[],char zrc[],char zb[],
char zf[],char zn[])
{
// zpl[] is target plane
// zbc[] is bitmap context
// zrc[] is record
// zb[] is big line of 24 bit pixels
// zf[] is font storage
// zn[] is filename
int tbzsel,tbzctr,tbzfnbase,tbzfnlen,tbztzes;
tbztzes=0;
tbzsel = zbc[35];
if((tbzsel >= 1)&&(tbzsel <= 5))
{
if(tbzsel == 5)
{
// zbc[0]=divmodi(((zbc[7])-31),32,0)*32;
// zbc[1]=zbc[29]-28;
zbc[0]=divmodi(((zbc[7])-0),32,0)*32;
zbc[1]=zbc[29]-14;
zbc[2]=0;
zbc[3]=0;
zbc[34]=160;
}
if(tbzsel == 1)
{
zbc[0] = divmodi(((zbc[7])-31),32,0)*16;
zbc[1] = divmodi(((zbc[29])-28),2,0);
zbc[2] = 0;
zbc[3] = 0;
zbc[34] = 0;
}
if(tbzsel == 2)
{
zbc[0] = divmodi(((zbc[7])-31),32,0)*16;
zbc[1] = divmodi(((zbc[29])-28),2,0);
zbc[2] = zbc[0];
zbc[3] = 0;
zbc[34] = 40;
}
if(tbzsel == 3)
{
zbc[0] = divmodi(((zbc[7])-31),32,0)*16;
zbc[1] = divmodi(((zbc[29])-28),2,0);
zbc[2] = 0;
zbc[3] = zbc[1];
zbc[34] = 80;
}
if(tbzsel == 4)
{
zbc[0] = divmodi(((zbc[7])-31),32,0)*16;
zbc[1] = divmodi(((zbc[29])-28),2,0);
zbc[2] = zbc[0];
zbc[3] = zbc[1];
zbc[34] = 120;
}
zbc[5] = 1-1;
tbzfnbase = zbc[34];
tbzfnlen = ombrlen(tbzfnbase,40,zn);
zbc[24]=0;
if(tbzfnlen < 1)
{
tbzctr=0;
while(tbzctr < 40)
{
zrc[tbzctr] = '\40';
tbzctr=tbzctr+1;
}
}
if(tbzfnlen >= 1)
{
zbc[4]=0;
zbc[5]=0;
tbzctr=0;
while(tbzctr < 40)
{
zrc[tbzctr] = zn[tbzctr + tbzfnbase];
tbzctr = tbzctr + 1;
}
zbc[24] = zbc[tbzsel + 40];
}
tbztzes = twobumpw(zpl,zbc,zrc,zb,zf);
}
return tbztzes;
}
// end of twobuz
int fourbump(char** aap,int ac[],char ar[],char ab[],
char af[],char an[])
{
int fourbres,fourbctr,fourbase,fourkend,fourrd;
int fourbcmp,fourjj,zandtogf;
// ac[7] is planewidth ac[29] is planehgt
// ac[30] is Dagrajumpnow ac[31] is Freddyisnext
// 11829 initialize
// 11830 keys to filename
// 11831 choose screen
// 11832 is quit
fourbcmp=divmodi((ac[7]+7),8,0)*ac[29];
fourbres=0;
if((ac[6]) < 2)fourbres=7;
if((ac[6]) == 2)fourbres=4;
if((ac[6]) == 3)fourbres=4;
if((ac[6]) == 4)fourbres=3;
while(fourbres <= 7)
{
fourbctr=0;
while(fourbctr < fourbcmp)
{
*(caap[fourbres]+fourbctr)=(char)(0-1);
fourbctr=fourbctr+1;
}
fourbres=fourbres+1;
}
if((ac[6]) == 6)
{
fourbres=8;
while(fourbres <= 23)
{
fourbctr=0;
while(fourbctr < fourbcmp)
{
*(caap[fourbres]+fourbctr)=(char)(0-1);
fourbctr=fourbctr+1;
}
fourbres=fourbres+1;
}
}
// --------------------------------------------------
fourbres=0;
fourrd=1;
fourbase=160;
if((ac[28]) == 4)fourbase=120;
if((ac[28]) == 3)fourbase=80;
if((ac[28]) == 2)fourbase=40;
// depth = 1
if((ac[28]) == 1)fourbase=0;
if((ac[30]) == 11829)
{
// fourbctr=41;
// while(fourbctr < 46)
// {
// ac[fourbctr]=0;
// depth = 3
// fourbctr=fourbctr+1;
// }
fonthfill(af);
ac[34]=160;
ac[28]=5;
ac[57]=ac[28];
ac[6]=2;
// depth = 2
ac[31]=11831;
ac[56]=0;
ac[26]=53;
ac[30]=11831;
ac[27]=131000;
fourbctr=ac[28];
}
if((ac[30]) == 11830)
{
// need ac[25] == 0
fourbctr=ac[28];
ac[34]=fourbase;
ac[35]=fourbctr;
fourkend=nzlinedone(ac,an);
fourbres=twobuz(aap,ac,ar,ab,af,an);
ac[31]=11830;
// depth = 2
if(fourkend > 0)ac[31]=11831;
if(fourkend > 0)ac[fourbctr + 40]=1;
if(fourkend > 0)ac[30]=ac[31];
}
if((ac[30]) == 11831)
{
ac[31]=11831;
fourbcmp=ac[26];
zandtogf=0;
if(fourbcmp == 82)zandtogf=1;
if(fourbcmp == 114)zandtogf=1;
if((ac[57])==(ac[28]))zandtogf=0;
if(zandtogf==1)
{
// 82 R 114 R redraw most recent
fourjj=ac[28];
if((ombrlen(fourbase,40,an)<1)&&((ac[fourjj+40])==0))
{
fourjj=0;
while(fourjj < 40)
{
zandtogf=an[(((ac[57])-1)*40)+fourjj];
an[(((ac[28])-1)*40)+fourjj] = zandtogf;
fourjj=fourjj+1;
}
fourjj=ac[28];
if(ombrlen(fourbase,40,an) > 4)ac[fourjj + 40]=1;
}
}
ac[57]=ac[28];
if((fourbcmp == 78)||(fourbcmp == 110))
{
// N 78 110 n new
fourjj=ac[28];
ac[fourjj + 40]=0;
fourjj=0;
while(fourjj < 40)
{
an[fourbase + fourjj]='\40';
fourjj=fourjj+1;
}
}
if((fourbcmp == 79)||(fourbcmp == 111))
{
// O 79 111 o open
fourbctr=ac[28];
fourrd=0;
ac[25]=0;
chrfroms(fourbase,40,an,"Enter Filename !");
// depth = 3
ac[fourbctr + 40]=0;
ac[31]=11830;
}
if((fourbcmp == 59)&&(fourdirpen == 0))
{
// 59 ;
xfourdp=opendir("./");
if(xfourdp != NULL)fourdirpen=1;
}
if((fourbcmp == 46)&&(fourdirpen == 1))
{
// 46 .
// 2609 (void) closedir(xfourdp);
closedir(xfourdp);
fourdirpen=0;
}
if((fourbcmp == 44)&&(fourdirpen == 1))
{
// 44 ,
seadirallow=0;
while(seadirallow < 40)
{
// depth = 4
can[((ac[28]-1)*40)+seadirallow]='\40';
seadirallow=seadirallow+1;
}
seadirallow=ac[28];
ac[seadirallow + 40]=0;
seadirallow=1;
while(seadirallow > 0)
{
xfourep=readdir(xfourdp);
if(xfourep == NULL)
{
fourdirpen=0;
// 2632 (void) closedir(xfourdp);
closedir(xfourdp);
// depth = 5
seadirallow=0;
}
if(seadirallow > 0)
{
if(nzextcmp((char*)(*xfourep).d_name,"2.BMP.bmp")!=0)
{
seadirallow=0;
}
}
}
// depth = 3
if(fourdirpen == 1)
{
seadirlimit=ombrlen(0,0,(*xfourep).d_name);
seadirallow=0;
if(seadirlimit < 40)
{
ac[40+(ac[28])]=1;
while(seadirallow < seadirlimit)
{
sdirch = *((*xfourep).d_name + seadirallow);
can[((ac[28]-1)*40)+seadirallow] = sdirch;
// depth = 6
seadirallow=seadirallow+1;
}
}
}
}
// depth = 2
if((fourbcmp == 81)||(fourbcmp == 113))
{
// 81 Q 113 q quit
if(fourdirpen == 1)
{
// 2669 (void) closedir(xfourdp);
closedir(xfourdp);
}
fourrd=0;
ac[31]=11832;
}
if((fourbcmp == 67)||(fourbcmp == 99))
{
// 67 C 99 c color mode
ac[6]=ac[6]+1;
if((scrallow == 1)&&((ac[6]) > 7))ac[6]=1;
if((ac[6]) > 32)ac[6]=1;
}
// 7 is maximum allowed colormode
if((fourbcmp == 68)||(fourbcmp == 100))
{
// 68 D
ac[6]=ac[6]-1;
if((ac[6]) < 1)ac[6]=32;
if((scrallow == 1)&&((ac[6]) > 7))ac[6]=7;
}
if((fourbcmp == 86)||(fourbcmp == 118))
{
// 86 V
vgaallow=1-vgaallow;
if((vgaallow == 1)&&((ac[6]) > 7))ac[6]=7;
pendreq=1;
}
if((fourbcmp == 74)||(fourbcmp == 106))
{
// 74 J 106 j
jmatog = 1 - jmatog;
}
if((fourbcmp >= 49)&&(fourbcmp <= 53))
{
fourbctr=ac[26] - 48;
ac[28]=fourbctr;
}
// N 78 110 n new
if((fourbcmp == 78)||(fourbcmp == 111))
{
fourbctr=ac[26]-48;
ac[40+fourbctr]=0;
}
if(((ac[28]) >= 1)&&((ac[28]) <= 4))
{
fourbctr = 1;
while(fourbctr <= 4)
{
if((fourbctr == (ac[28]))||(fourrd > 0))
{
// depth = 5
ac[35]=fourbctr;
if(fourbctr == 1)ac[34]=0;
if(fourbctr == 2)ac[34]=40;
if(fourbctr == 3)ac[34]=80;
if(fourbctr == 4)ac[34]=120;
fourbres=twobuz(aap,ac,ar,ab,af,an);
}
fourbctr=fourbctr+1;
}
}
// depth = 2
if((ac[28]) == 5)
{
ac[35]=5;
ac[34]=160;
fourbres=twobuz(aap,ac,ar,ab,af,an);
}
}
// depth = 1
ac[30]=ac[31];
return fourbres;
}
// end of fourbump;
int nzextcmp(char* uncfn,char* ecright)
{
int nzrxtcmp,nzeoctr,nzeictr,nzeolim;
int nzebase,uurxtcmp,nzeterm;
nzrxtcmp=0;
nzebase=ombrlen(0,0,uncfn)-4;
nzeolim=ixreada(1,1,16,0,ecright);
if(nzebase >= 1)
{
nzeoctr=0;
while(nzeoctr < nzeolim)
{
// depth=3
nzeictr=0;
uurxtcmp=0;
while(nzeictr < 4)
{
nzeterm=onexwchr(((nzeoctr*4)+1+nzeictr),ecright);
if(onexwchr((nzebase+nzeictr),uncfn) != nzeterm)
{
uurxtcmp=1;
// depth = 5
}
nzeictr=nzeictr+1;
}
if(uurxtcmp == 0)nzrxtcmp=1;
nzeoctr=nzeoctr+1;
}
}
return nzrxtcmp;
}
char twofromten(int rawenine)
{
int eightofi[8];
int rtftctr,rfftres,rawentop,rfftrem;
char tfftres;
rtftctr=8;
rawentop=rawenine;
while(rtftctr > 0)
{
rfftrem=divmodi(rawentop,10,1);
rawentop=divmodi(rawentop,10,0);
eightofi[rtftctr-1]=rfftrem;
rtftctr=rtftctr-1;
}
rtftctr=0;
rfftres=0;
while(rtftctr < 8)
{
rfftres=rfftres*2;
rfftres=rfftres+eightofi[rtftctr];
rtftctr=rtftctr+1;
}
if(rfftres > 127)rfftres=rfftres-256;
tfftres = (char)rfftres;
return tfftres;
}
// add font below this line ----------2012
// 4096 = 64 * 64 to 256 * 16
// 64 = 16 * 4
// outer loop 0 to 63 (*64)
// medium loop (medium * 4) + 0 to 3
// medium is 0 to 15
// medium result (0 to 3)*16 + (medium*1)
// inner loop 0 to 3
// -----------------------------------------------
// 20000000-,200000000,20000000-,200000000,
// 201000100,201111100,201111100,201111100,
// 201000100,201111100,201111100,201111100,
// 201000100,201100000,201100000,200001100,
// 201000100,201100000,201100000,200001100,
// 201000100,201100000,201100000,200001100,
// 201000100,201100000,201111100,200001100,
// 20xxxxx0-,20xxxxx0-,-0xxxxx0-,20xxxxx0-,
// 201111100,201111100,201111100,200001100,
// 201111100,201111100,201100100,200001100,
// 200001100,200001100,201100100,200001100,
// 200001100,200001100,201100100,200001100,
// 200001100,201111100,201111100,200001100,
// 200001100,201111100,201111100,200001100,
// 200000000,200000000,200000000,200000000,
// 200000000,200000000,200000000,200000000,
// ,2 , ,2 ,
// Open Source Font Copyright C 2005 by Eric Matteson
// Permission is granted to use this font in
// open source applications programs written for Linux.
// begin open source font ,2 , ,2,
// ); ,2 , ,2,
// -x76543210-x76543210-x76543210-x76543210-
int ifhfg[]={ 200000000,200000000,
200000000,200000000,
200000000,200000000,200000000,200000000,
// -x76543210-x76543210-x76543210-x76543210.
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200011000,200100100,200100100,
200000000,200011000,200100100,200100100,
200000000,200011000,200110100,201111100,
200000000,200011000,200110100,201111100,
200000000,200011000,200000000,200100100,
200000000,200011000,200000000,200100100,
200000000,200011000,200000000,200100100,
200000000,200011000,200000000,200100100,
200000000,200000000,200000000,201111100,
200000000,200000000,200000000,201111100,
200000000,200011000,200000000,200100100,
200000000,200011000,200000000,200100100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200111100,201110100,200011100,200011000,
200111100,201110100,200011100,200011000,
201001000,201010100,200010100,200001000,
201001000,201010100,200010100,200001000,
201001000,201111100,200111100,200000000,
201001000,201111100,200111100,200000000,
201111100,200101000,201100100,200000000,
201111100,200101000,201100100,200000000,
200001000,201001100,201100100,200000000,
200001100,201001100,201100100,200000000,
201111100,200000000,201111100,200000000,
201111100,200000000,201111100,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200001100,200110000,200010000,200011000,
200001100,200110000,200010000,200011000,
200011000,200011000,201010100,200011000,
200011000,200011000,201010100,200011000,
200110000,200001100,200111000,201111100,
200110000,200001100,200111000,201111100,
200110000,200001100,200111000,201111100,
200110000,200001100,200111000,201111100,
200011000,200011000,201010100,200011000,
200011000,200011000,201010100,200011000,
200001100,200110000,200010000,200011000,
200001100,200110000,200010000,200011000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200001100,
200000000,200000000,200000000,200001100,
200000000,200000000,200000000,200001100,
200000000,200000000,200000000,200001100,
200000000,200111100,200000000,200011000,
200000000,200111100,200000000,200011000,
200000000,200111100,200000000,200011000,
200000000,200111100,200000000,200011000,
200001100,200000000,200000000,200110000,
200001100,200000000,200000000,200110000,
200000100,200000000,200001100,201100000,
200000100,200000000,200001100,201100000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,200001100,201111100,201111100,
201111100,200001100,201111100,201111100,
201000100,200001100,200001100,200001100,
201000100,200001100,200001100,200001100,
201000100,200001100,200001100,201111100,
201000100,200001100,200001100,201111100,
201000100,200001100,201111100,201111100,
201000100,200001100,201111100,201111100,
201000100,200001100,201100000,200001100,
201000100,200001100,201100000,200001100,
201111100,200001100,201111100,201111100,
201111100,200001100,201111100,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000100,201111100,201111100,201111100,
201000100,201111100,201111100,201111100,
201000100,201100000,201100000,200001100,
201000100,201100000,201100000,200001100,
201000100,201100000,201100000,200001100,
201000100,201100000,201111100,200001100,
201111100,201111100,201111100,200001100,
201111100,201111100,201100100,200001100,
200001100,200001100,201100100,200001100,
200001100,200001100,201100100,200001100,
200001100,201111100,201111100,200001100,
200001100,201111100,201111100,200001100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,201111100,200000000,200000000,
201111100,201111100,200000000,200000000,
201000100,201001100,200000100,200001100,
201000100,201000100,200000100,200001100,
201000100,201000100,200000000,200000000,
201111100,201001100,200000000,200000000,
201111100,201111100,200000000,200000000,
201000100,201111100,200000000,200000000,
201000100,200001100,200000100,200000100,
201000100,200001100,200000100,200000100,
201111100,201111100,200000000,200011000,
201111100,201111100,200000000,200011000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000100,200000000,201100000,200010000,
200000100,200000000,201100000,200111000,
200011000,201111100,200011000,201100100,
200011000,201111100,200011000,201100100,
201100000,200000000,200001100,201000100,
201100000,200000000,200001100,201001000,
200011000,200000000,200011000,200010000,
200011000,200000000,200011000,200010000,
200000100,201111100,201100000,200000000,
200000100,201111100,201100000,200000000,
200000000,200000000,200000000,200010000,
200000000,200000000,200000000,200010000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,201111110,201110000,201111100,
201111100,201111100,201110000,201111100,
201000100,201000100,201001100,201100000,
201000100,201000100,201001100,201100000,
201010100,201000100,201001100,201100000,
201010100,201000100,201001100,201100000,
201010100,201111100,201110000,201100000,
201011100,201111100,201110000,201100000,
201000100,201000100,201001100,201100000,
201110100,201000100,201001100,201100000,
200000000,201000100,201110000,201111100,
200000000,201000100,201110000,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201100000,201111100,201111100,201110000,
201100000,201111100,201111100,201110000,
201011000,201100000,201100000,201001100,
201011000,201100000,201100000,201001100,
201001100,201100000,201100000,201000000,
201001100,201100000,201100000,201000000,
201001100,201111100,201111100,201111100,
201001100,201111100,201111100,201111100,
201011000,201100000,201100000,201001100,
201011000,201100000,201100000,201001100,
201100000,201111100,201100000,201110000,
201100000,201111100,201100000,201110000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000100,200111100,200111100,201001100,
201000100,200111100,200111100,201001100,
201000100,200011000,200011000,201010000,
201000100,200011000,200011000,201010000,
201111100,200011000,200011000,201100000,
201111100,200011000,200011000,201100000,
201111100,200011000,200011000,201010000,
201111100,200011000,200011000,201010000,
201000100,200011000,201001100,201001100,
201000100,200011000,201001100,201001100,
201000100,200111100,201111100,200000000,
201000100,200111100,201111100,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000000,201111110,201000100,200011100,
201000000,201111110,201000100,200011100,
201000000,201010100,201100100,200100100,
201000000,201010100,201100100,200100100,
201000000,201010100,201100100,201000100,
201000000,201010100,201010100,201000100,
201000000,201010100,201010100,201000100,
201000000,201010100,201010100,201000100,
201000000,201000100,201001100,201001000,
201000000,201000100,201001100,201001000,
201111100,201000100,201000100,201111000,
201111100,201000100,201000100,201111000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,200011100,201111100,201111000,
201111100,200011100,201111100,201111000,
201000100,200100100,201000100,201100000,
201000100,200100100,201000100,201100000,
201000100,201000100,201111100,200110000,
201000100,201000100,201111100,200011000,
201111100,201000100,201100000,200001100,
201111100,201001000,201010000,200001100,
201100000,201011000,201010000,200000100,
201100000,201011000,201001000,200000100,
201100000,201110100,201001000,200011000,
201100000,201110100,201001000,201110000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201111100,201000100,201000100,201010100,
201111100,201000100,201000100,201010100,
200011000,201000100,201000100,201010100,
200011000,201000100,201000100,201011100,
200011000,201000100,200101000,201001100,
200011000,201000100,200101000,201101000,
200011000,201000100,200101000,200110000,
200011000,201000100,200101000,200110000,
200011000,201000100,200010000,200100000,
200011000,201000100,200010000,200100000,
200011000,201111100,200000000,200000000,
200011000,201111100,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000100,201000100,201111100,201110000,
201000100,201000100,201111100,201110000,
200101000,200100100,200001000,201000000,
200101000,200100100,200001000,201000000,
200010000,200011000,200010000,201000000,
200010000,200011000,200010000,201000000,
200101000,200011000,201000000,201000000,
200101000,200011000,201000000,201000000,
201000100,200011000,201111000,201000000,
201000100,200011000,201111000,201000000,
200000000,200000000,200000000,201110000,
200000000,200000000,200000000,201110000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000000,200011100,200011000,200000000,
201000000,200011100,200011000,200000000,
200100000,200000100,200100100,200000000,
200100000,200000100,200100100,200000000,
200010000,200000100,201000100,200000000,
200010000,200000100,201000000,200000000,
200001000,200000100,200000000,200000000,
200001000,200000100,200000000,200000000,
200000100,200000100,200000000,200000000,
200000100,200000100,200000000,200000000,
200000100,200011100,200000000,201111100,
200000000,200011100,200000000,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000000,200000000,200000000,200000000,
201000000,200000000,200000000,200000000,
201100000,201111100,201000000,200000000,
201100000,201111100,201000000,200000000,
200000000,200000100,201000000,201111100,
200000000,200000100,201000000,201111100,
200000000,201111100,201111100,201100000,
200000000,201111100,201111100,201100000,
200000000,201000100,201000100,201100000,
200000000,201000100,201000100,201100000,
200000000,201111100,201111100,201111100,
200000000,201111100,201111100,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000100,201111100,201111000,201111100,
200000100,201111100,201111000,201111100,
200000100,201000100,201000000,201001000,
200000100,201000100,201000000,201001000,
201111100,201111100,201111100,201110000,
201111100,201111100,201111100,201110000,
201000100,201000000,201000000,200010000,
201000100,201000000,201000000,200010000,
201111100,201111100,201000000,200110000,
201111100,201111100,201000000,200110000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000000,200001000,200001000,200100100,
201000000,200001000,200001000,200100100,
201000000,200000000,200000000,200101000,
201000000,200000000,200000000,200101000,
201111100,200001000,200001000,200110000,
201111100,200001000,200001000,200110000,
201000100,200001000,200001000,200101000,
201000100,200001000,200001000,200101000,
201000100,200001000,200111000,200100100,
201000100,200001000,200111000,200100100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,201100000,201000100,200000000,
200000000,201100000,201000100,200000000,
200010000,201010000,201100100,200111100,
200010000,201010000,201100100,200111100,
200010000,201011100,201010100,200100100,
200010000,201011100,201010100,200100100,
200010000,201010100,201001100,200100100,
200010000,201010100,201001100,200100100,
200011110,201000100,201000100,200111100,
200011110,201000100,201000100,200111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200111100,201111000,200000000,201110000,
200111100,201111000,200000000,201110000,
200100100,201001000,200111100,201000000,
200100100,201001000,200111100,201000000,
200011100,201110000,200100000,201111100,
200011100,201110000,200100000,201111100,
200100000,200010000,200100000,200000100,
200100000,200010000,200100000,200000100,
200100000,200011100,200100000,200011100,
200100000,200011100,200100000,200011100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200100100,
200000000,200000000,200000000,200100100,
200010000,200100100,201000100,200010100,
200010000,200100100,201000100,200010100,
201111100,200100100,200101000,201011100,
201111100,200100100,200101000,201011100,
200010000,200100100,200010000,201010000,
200010000,200100100,200010000,201010000,
200010000,200111100,200000000,200100000,
200010000,200111100,200000000,200100000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
201000100,201000100,200111100,200011100,
201000100,201000100,200111100,200011100,
200101000,200101000,200001000,200100000,
200101000,200101000,200001000,200100000,
200010000,200010000,200001000,201100000,
200010000,200010000,200001000,201100000,
200101000,200010000,200010000,200100000,
200101000,200010000,200010000,200100000,
201000100,200010000,200111100,200011100,
201000100,200010000,200111100,200011100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200010000,201110000,201110000,200010000,
200010000,201110000,201110000,200010000,
200010000,200001000,201010100,200101000,
200010000,200001000,201010100,200101000,
200000000,200001100,200011100,201000100,
200000000,200001100,200011100,201000100,
200010000,200001000,200000000,201000100,
200010000,200001000,200000000,201000100,
200010000,201110000,200000000,201111100,
200010000,201110000,200000000,201111100,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
// ); ,2 , ,2 ,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000,
200000000,200000000,200000000,200000000};
// -x76543210-x76543210-x76543210-x76543210..
// end of font
void fonthfill(char fhf[])
{
int fholop,fhmedlop,fhilop,fhhsub,fhdsub,fhdterm;
char tfhf[4096];
// 4096 = 64 * 64 to 256 * 16
// 64 = 16 * 4
// outer loop 0 to 63 (*64)
// medium loop (medium * 4)+0 to 3 medium is 0 to 15
// medium result (0 to 3)*16 + (medium*1)
// inner loop 0 to 3
// --------------------------------
fholop=0;
while(fholop < 64)
{
fhmedlop=0;
while(fhmedlop < 16)
{
fhilop=0;
while(fhilop < 4)
{
fhhsub = (fholop * 64)+(fhmedlop * 4)+fhilop;
fhdsub = (fholop * 64)+(fhilop * 16)+fhmedlop;
fhdterm = ifhfg[fhhsub];
tfhf[fhdsub]=twofromten(fhdterm);
fhilop=fhilop+1;
}
fhmedlop=fhmedlop+1;
}
fholop=fholop+1;
}
speeftex(fhf,tfhf);
}
// end of void fonthfill(char fhf[]);
// end of xwview14.c
// this is the last line of this program
/* After end of program