Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

vgview09.c bitmap viewer includes monochrome

0 views
Skip to first unread message

ericmatteson...@hotmail.com

unread,
Mar 17, 2008, 2:26:35 PM3/17/08
to
vgview09.c has been upgraded to function in
a one-bit per pixel environment if needed.
program listing is next */
// this is the first line of this program
// beginning of vgview09.c
// vgview09.c bitmap .bmp file viewer program.
// use the version of zackvga.h for your
// system. ( XWindows or actual vga.h )
#include "zackvga.h"
// vgview09.c uses zackmain instead of main
// vgview09.c uses zackvga.h instead of direct vga.h
// gcc -Wall vgview09.c -lvga -o vgview09.out
// gcc -Wall vgview09.c -L/usr/X11R6/lib -lX11 -o vgview09.out
// Copyright C 2008 by Eric Matteson
// permission is granted to copy
// this SOURCE CODE file vgview09.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.
// ---------------------
// allowmode is zero for one bit per pixel
// allowmode is nonzero for four bits per pixel
const int allowmode = 1;
// -------------------------------------------------------
// nzlibkey = 0 for doskey 1 for XLookupString
const int nzlibkey = 0;
// xlxs 02 one next
// const int xlxsdim = 15;
// -----------------------
const int xxsv = 50;
const int xsv = 62;
const int thdimtran = 13;
const int thdimbran = 16;
const int serinkth[] = { 32,34,36,38,
64,68,70,72,
128,130,132,134,
256,258,260,262,
512,518,522,526,
600,602,604,608,
700,701,702,703,
750,751,752,753 };
const int sbrinkth[] = { 11,11,11,11,
16,16,16,16,
48,48,48,48,
144,144,144,144,
432,432,432,432,
650,650,650,650,
720,720,720,720,
760,760,760,760 };
const int shrinkth[] = { 72,74,76,78,
84,96,110,122,
180,192,204,216,
266,288,300,312,
376,384,396,408,
468,480,492,504,
564,576,588,600,
751,754,757,761 };
const int shrinkfr[] = { 4,4,4,4,
8,8,8,8,
16,16,16,16,
32,32,32,32,
64,64,64,64,
128,128,128,128,
760,760,760,760,
761,761,761,761 };
const int shrinksa[] = { 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,512,512,512,
761,761,761,761 };
const int shrinksu[] = {16,16,16,16,
32,32,32,32,
64,64,64,64,
128,128,128,128,
256,256,256,256,
512,512,512,512,
761,761,761,761,
767,767,767,767 };
const int shrinkmo[] = {32,32,32,32,
64,64,64,64,
128,128,128,128,
256,256,256,256,
512,512,512,512,
608,608,608,608,
761,761,761,761,
767,767,767,767 };
const int shrinktu[] = {2,2,2,2,
4,4,4,4,
8,8,8,8,
16,16,16,16,
32,32,32,32,
64,64,64,64,
128,128,128,128,
760,760,760,760 };
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,2,3,7,10,11,15,15 };
const int monothre15[] = { 6,10,20,40,60,75,120,180,
250,360,450,550,650,740,761 };
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 };
// size of bab[] needs to be same as value of bigbuffsize
const int bigbuffsize = 262144;
char bab[262144];
// ---------------------------------------
int jxwkeyhold[512];
int iiac[180];
int saveapal[68];
char* caap[4];
char cdraw0[65536];
char cdraw1[65536];
char cdraw2[65536];
char cdraw3[65536];
char acbus[524288];
char bar[92160];
char caf[65536];
char can[200];
// ---------------------------------------------
// char xlxsbuff[16384];
char prebug[180];
char prebud[180];
char diagaap[16384];
int itarget,prevmode,jkeyctr,djkey,rjkey;
int cbmask,scrdepth;
int scnum,cwid,cght,sud,ckey,xolop,xilop,xchoose;
int lmoux,lmouy,fourdirpen,seadirallow,seadirlimit;
int xlkount,whtcolor;
int benctr,bendex;
int aprevmode,runmode,falkenx,falkeny;
char sdirch;
// ---------------------
DIR* xfourdp;
struct dirent *xfourep;
// ------------------------
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);
// void bitpoke(char btt[],int hds,int twi,int bx,
// int by,int pznorm,int bvbw);
void bitwrt(char bde[],int ski,int wwi,int wx,int wy,
int zltr,int wwvb);
void printstr(char psb[],int psw,int pst,char psf[],
int pstrw,char pstr[]);
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 zackreadbw(int rpbc[],char rprec[],
char rpct[],char rpbig[],FILE* rph);
void getpine(int gpbc[],char gprec[],char gpct[],
char gpbig[],FILE* gph);
int nonbambi(char** iibplane,int nbbc[],char nbbig[]);
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 chrpine(int chrgy,int chrtnyw,int chrsw);
void zgapage(int zmgbw,int zmgh,char** zgslater);
int gagetch(int nzwait);
// ----------------------------------------------------
// int gcbw(int gcdepth,int gca);
// void getgc(Window wigc,GC* wrgc,int gsdepth,int zbnzw);
// *wrgc will have to be freed later
// Window makexw(XSizeHints* sizehints,XWMHints* wmhints,
// XClassHint* classhints);
// ----------------------------------------------------
int zackmain(int argd,char** argsa)
{
int zandtogm;
char* argufn;
char* adn = NULL;
argufn = NULL;
lmoux=131071;
lmouy=131071;
fourdirpen=0;
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] = &cdraw0[0];
caap[1] = &cdraw1[0];
caap[2] = &cdraw2[0];
caap[3] = &cdraw3[0];
sud=(int)(caap[0]);
linuwrn(2,8,16,can,sud);
sud=(int)(caap[1]);
linuwrn(12,8,16,can,sud);
sud=(int)(caap[2]);
linuwrn(22,8,16,can,sud);
sud=(int)(caap[3]);
linuwrn(32,8,16,can,sud);
can[53]='\15';
can[54]='\12';
// 171 terminal diagnostic 172 exit 173
// fwrite(can,1,80,stdout);
sud=0;
while(sud < 200)
{
can[sud]='\40';
sud=sud+1;
}
// reclear depth = 1
sud=41;
while(sud < 46)
{
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;
}
}
scrdepth=24;
iiac[6]=2;
iiac[7]=608;
iiac[29]=378;
vga_init();
aprevmode=vga_getcurrentmode();
runmode=G640x480x16;
if((vga_hasmode(runmode) * allowmode) == 0)
{
runmode=G640x480x2;
}
if(vga_hasmode(runmode) != 0)
{
vga_setmode(runmode);
whtcolor=0;
if(runmode == G640x480x2)whtcolor=1;
if(runmode == G640x480x16)whtcolor=15;
// need vga_getpalette here
// line 265 need pallette
saveapal[6]=0;
saveapal[7]=42;
saveapal[2]=21;
saveapal[3]=63;
// vga_getpalette(2,saveapal+4,saveapal+7,saveapal+6);
// vga_getpalette(9,saveapal+5,saveapal+2,saveapal+3);
saveapal[0]=(saveapal[6]+saveapal[2]) >> 1;
saveapal[1]=(saveapal[7]+saveapal[3]) >> 1;
benctr=0;
bendex=0;
while(bendex < 16)
{
// vga_getpalette(bendex,(saveapal+benctr),
// (saveapal+(benctr+1)),(saveapal+(benctr+2)));
benctr=benctr+3;
bendex=bendex+1;
}
bendex=0;
while(bendex < 16)
{
benctr=bengrey[bendex];
// vga_setpalette(bendex,benctr,benctr,benctr);
bendex=bendex+1;
}
// vga_setpalette(0,*(saveapal+0),*(saveapal+0),*(saveapal+0));
// vga_setpalette(1,*(saveapal+0),*(saveapal+0),*(saveapal+1));
// vga_setpalette(2,*(saveapal+0),*(saveapal+1),*(saveapal+0));
// vga_setpalette(3,*(saveapal+0),*(saveapal+1),*(saveapal+1));
// vga_setpalette(4,*(saveapal+1),*(saveapal+0),*(saveapal+0));
// vga_setpalette(5,*(saveapal+1),*(saveapal+0),*(saveapal+1));
// vga_setpalette(6,*(saveapal+1),*(saveapal+1),*(saveapal+0));
// vga_setpalette(7,*(saveapal+1),*(saveapal+1),*(saveapal+1));
// vga_setpalette(8,*(saveapal+2),*(saveapal+2),*(saveapal+2));
// vga_setpalette(9,*(saveapal+2),*(saveapal+2),*(saveapal+3));
// vga_setpalette(10,*(saveapal+2),*(saveapal+3),*(saveapal+2));
// vga_setpalette(11,*(saveapal+2),*(saveapal+3),*(saveapal+3));
// vga_setpalette(12,*(saveapal+3),*(saveapal+2),*(saveapal+2));
// vga_setpalette(13,*(saveapal+3),*(saveapal+2),*(saveapal+3));
// vga_setpalette(14,*(saveapal+3),*(saveapal+3),*(saveapal+2));
// vga_setpalette(15,*(saveapal+3),*(saveapal+3),*(saveapal+3));
// line 290 end palette
// *** ERROR *** unable to fix palette on fixed pallette cards
// retry on extended Linux vga.h or XWindows benvga.h
// ------------------------------------------------------------
iiac[7]=((vga_getxdim() + 7) >> 3) * 8;
iiac[29]=vga_getydim();
falkenx=iiac[7];
falkeny=iiac[29];
iiac[30]=11829;
iiac[25]=0;
iiac[28]=5;
iiac[34]=160;
iiac[32]=scrdepth;
sud=0;
iktmany(jxwkeyhold);
xilop=fourbump(caap,iiac,bar,bab,caf,can);
zgapage((iiac[7]),(iiac[29]),caap);
// ----------------------------------------------
// 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,&xgc,scrdepth,17);
// getgc(wix,&ygc,scrdepth,18);
// getgc(wix,&zgc,scrdepth,19);
// getgc(wix,&agc,scrdepth,20);
// XMapWindow(lpdis,wix);
// cut cut
// loop is next depth = 1
xolop=0;
while(xolop == 0)
{
ckey=gagetch(1);
// XNextEvent(lpdis,&report);
// depth = 3
// 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;
// if(nzlibkey == 0)
// {
// ckey=report.xkey.keycode;
rjkey=iidoskey(ckey,sud,jxwkeyhold,"v");
iiac[26]=rjkey;
iiac[27]=ckey;
iiac[7]=((vga_getxdim() + 7) >> 3) * 8;
iiac[29]=vga_getydim();
if(((iiac[7]) < falkenx)||((iiac[29]) < falkeny))
{
falkeny=0;
while(falkeny < 480)
{
falkenx=0;
while(falkenx < 640)
{
vga_setcolor(whtcolor);
vga_drawpixel(falkenx,falkeny);
falkenx=falkenx+1;
}
falkeny=falkeny+1;
}
}
falkenx=iiac[7];
falkeny=iiac[29];
if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
zgapage((iiac[7]),(iiac[29]),caap);
// high speed print to screen top monochrome high speed 2
// rempmap = XCreatePixmap(lpdis,wix,(iiac[7]),(iiac[29]),
// scrdepth);
// tempmap3 = XCreatePixmapFromBitmapData(lpdis,wix,cdraw3,
// (iiac[7]),(iiac[29]),gcbw(scrdepth,15),
// gcbw(scrdepth,0),scrdepth);
// fix top
// if((iiac[6]) > 1)
// {
// XCopyArea(lpdis,tempmap3,rempmap,agc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// }
// if((iiac[6]) <= 1)
// {
// XCopyArea(lpdis,tempmap3,rempmap,bgc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// }
// fix bottom
// if((iiac[6]) > 1)
// {
// tempmap2 = XCreatePixmapFromBitmapData(lpdis,wix,cdraw2,
// (iiac[7]),(iiac[29]),gcbw(scrdepth,15),
// gcbw(scrdepth,12),scrdepth);
// XCopyArea(lpdis,tempmap2,rempmap,xgc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// tempmap1 = XCreatePixmapFromBitmapData(lpdis,wix,cdraw1,
// (iiac[7]),(iiac[29]),gcbw(scrdepth,15),
// gcbw(scrdepth,12),scrdepth);
// XCopyArea(lpdis,tempmap1,rempmap,ygc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// tempmap0 = XCreatePixmapFromBitmapData(lpdis,wix,cdraw0,
// (iiac[7]),(iiac[29]),gcbw(scrdepth,15),
// gcbw(scrdepth,12),scrdepth);
// XCopyArea(lpdis,tempmap0,rempmap,zgc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// }
// XCopyArea(lpdis,rempmap,wix,wgc,0,0,(iiac[7]),
// (iiac[29]),0,0);
// if((iiac[6]) > 1)
// {
// XFreePixmap(lpdis,tempmap0);
// XFreePixmap(lpdis,tempmap1);
// XFreePixmap(lpdis,tempmap2);
// }
// XFreePixmap(lpdis,tempmap3);
// XFreePixmap(lpdis,rempmap);
// print page to screen bottom high speed
if((iiac[30]) == 11832)xolop = 1;
// }
}
// end of keypress or while depth=2
}
// depth = 1
// cut starting 379 583-379
benctr=0;
bendex=0;
while(bendex < 16)
{
// vga_setpalette(bendex,saveapal[benctr],
// saveapal[benctr+1],saveapal[benctr+2]);
benctr=benctr+3;
bendex=bendex+1;
}
vga_setmode(aprevmode);
return 0;
}
// depth = 0
// end of main
// -------------- 583
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;
dgenmask=dgensize << 1;
dgendallow=1;
dgcinda=(dremx&1) << 1;
dgcinda=dgcinda+(dremy&1);
// dgcinda=dgcinda-1;
indrgf=0;
while(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
// -------------------------------485 load gcbw here
// ----------------------------------------------486
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
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(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 getgc(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=65;
// if(azbnzw == 1)zbnzw=1;
// if(azbnzw == 0)zbnzw=0;
// if(azbnzw == 17)zbnzw=17;
// if(azbnzw == 18)zbnzw=18;
// if(azbnzw == 19)zbnzw=19;
// if(azbnzw == 20)zbnzw=20;
// *wrgc=XCreateGC(lpdis,wigc,vgcmask,&vgcvalues);
// XSetLineAttributes(lpdis,*wrgc,gclw,linestyle,capstyle,
// joinstyle);
// XSetBackground(lpdis,*wrgc,WhitePixel(lpdis,scnum));
// XSetFillStyle(lpdis,*wrgc,fillstyle);
// if(zbnzw == 0)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 0)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,15));
// if(zbnzw == 1)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,15));
// if(zbnzw == 1)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 17)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 17)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,4+12));
// if(zbnzw == 18)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 18)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,2+14));
// if(zbnzw == 19)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 19)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,1+15));
// if(zbnzw == 20)XSetBackground(lpdis,*wrgc,
// gcbw(gsdepth,0));
// if(zbnzw == 20)XSetForeground(lpdis,*wrgc,
// gcbw(gsdepth,14+2));
// if(zbnzw == 0)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,16));
// if(zbnzw == 1)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,16));
// if(zbnzw == 17)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,4));
// if(zbnzw == 18)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,2));
// if(zbnzw == 19)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,1));
// if(zbnzw == 20)XSetPlaneMask(lpdis,*wrgc,gcbw(gsdepth,14));
// }
// end of getgc(Window,GC*,int);
// Window makexw(XSizeHints* sizehints,XWMHints* wmhints,
// XClassHint* classhints)
// {
// int sbmask;
// Window trix;
// trix=XCreateSimpleWindow(lpdis,RootWindow(lpdis,scnum),
// 0,0,608,378,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;
// }
// ------------- 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 chrpine(int chrgy,int chrtnyw,int chrsw)
{
int chribwi,chrinsu,chgregcr,crewcpcol;
int chrsalm,chchriscr,chchrisfac,chchrisrem;
int chchrisya;
int ccrsor[]={-128,64,32,16,8,4,2,1};
int ccrsand[]={127,-65,-33,-17,-9,-5,-3,-2};
char awcpchris[100];
char* chrelogr;
chribwi=chrtnyw << 3;
chgregcr=chrsw;
chrinsu=chrsw*chrgy;
chrelogr = acbus + chrinsu;
if(runmode == G640x480x16)
{
vga_drawscansegment(chrelogr,0,chrgy,chrsw);
}
if(runmode == G640x480x2)
{
chrsalm=chrsw+7;
chchriscr=0;
while(chchriscr < chrsalm)
{
chchrisya=(int)(*(chrelogr + chchriscr));
chchrisfac = chchriscr >> 3;
chchrisrem = chchriscr & 7;
if(chchrisya < 9)
{
awcpchris[chchrisfac]=awcpchris[chchrisfac] &
((char)ccrsand[chchrisrem]);
}
if(chchrisya >= 9)
{
awcpchris[chchrisfac]=awcpchris[chchrisfac] |
((char)ccrsor[chchrisrem]);
}
chchriscr=chchriscr+1;
}
chchriscr = chrsalm >> 3;
vga_drawscansegment(awcpchris,0,chrgy,chchriscr);
}
while(chgregcr < chribwi)
{
crewcpcol=(chrgy & 1)*(chgregcr & 1) * whtcolor;
vga_setcolor(crewcpcol);
vga_drawpixel(chgregcr,chrgy);
chgregcr=chgregcr+1;
}
}
void zgapage(int zmgbw,int zmgh,char** zgslater)
{
int zghctr,zmgbv,zgyoo;
// char* zgpslater;
zmgbv = (zmgbw + 7) >> 3;
zgyoo=(480 - zmgh) >> 1;
zghctr=0;
while(zghctr < zmgh)
{
chrpine(zghctr,zmgbv,zmgbw);
zghctr=zghctr+1;
}
}
// bottom of zgapage
int gagetch(int nzwait)
{
int gares,gaterm;
gares=0;
gaterm=0;
if(nzwait == 0)goto zeekeep;
zeukeep: gaterm=(vga_getkey() & 255);
if(gaterm == 0)goto zeekeep;
if(gaterm != 0)goto zeukeep;
zeekeep: gaterm=(vga_getkey() & 255);
if(nzwait == 0)gares=gaterm;
if(nzwait == 0)goto zeekbot;
if(gaterm == 0)goto zeekeep;
zeenext: gares = gares * 256;
gares = gares + gaterm;
gaterm=(vga_getkey() & 255);
if(gaterm == 0)goto zeekbot;
goto zeenext;
zeekbot: gaterm=gares;
return gaterm;
}
// bottom of gagetch
// 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
// 79
// ------------------------------------------------------
// ----------------------------------------------------
// void bitpoke(char btt[],int hds,int twi,int bx,int by,
// int pznorm,int bvbw)
// {
// btt is destination monochrome bitmap
// or plane
// twi must be a
// multiple of 8
// hds is header size of 62
// when writing to bitmap
// bx and by are
// logical pixel coordinates
// twi is target width
// in pixels
// nonzero for backwards bits in target byte pznorm
// zero for dark pixel bvbw
// const int bporand[] = { 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 };
// int iporand,dyrem,dyfrac,dyprod,tsub,tvalue;
// dyprod = (twi * by) + bx + (hds * 8);
// dyfrac = divmodi(dyprod,8,0);
// dyrem = divmodi(dyprod,8,1);
// tvalue = onexwchr(dyfrac,btt);
// if((bvbw == 0)&&(pznorm == 0))tsub=dyrem+16;
// if((bvbw == 0)&&(pznorm != 0))tsub=dyrem+24;
// if((bvbw != 0)&&(pznorm == 0))tsub=dyrem;
// if((bvbw != 0)&&(pznorm != 0))tsub=dyrem+8;
// iporand=bporand[tsub];
// if(bvbw == 0)tvalue = tvalue & iporand;
// if(bvbw != 0)tvalue = tvalue | iporand;
// if(tvalue > 127)tvalue = tvalue - 256;
// btt[dyfrac]=(char)tvalue;
// }
void bitwrt(char bde[],int ski,int wwi,int wx,int wy,
int zltr,int wwvb)
{
int wyprod,wyfrac,wyrem,wvalue;
// needs const int wporand[] = {128,64 ...
// bitwrt is supposed to be faster than bitpoke.
wyprod=(wwi * wy)+(ski << 3)+wx;
wyrem = wyprod & 7;
wyfrac = wyprod >> 3;
wvalue = onexwchr(wyfrac,bde);
if(wwvb == 0)
{
if(zltr == 0)wvalue=wvalue & wporand[wyrem + 16];
if(zltr != 0)wvalue=wvalue & wporand[wyrem + 24];
}
if(wwvb != 0)
{
if(zltr == 0)wvalue=wvalue | wporand[wyrem];
if(zltr != 0)wvalue=wvalue | wporand[wyrem + 8];
}
if(wvalue > 127)wvalue = wvalue - 256;
bde[wyfrac]=(char)wvalue;
}
// bottom of bitwrt
void printstr(char psb[],int psw,int pst,char psf[],
int pstrw,char pstr[])
{
int pswrrem,pswpx,pswcx,pswy,psevenctr,psfsub;
int pstrelem,pswright,pswline;
int pswpix,ponxsft,ponwid,ponysft,pondhgt,ponbhgt;
int ponahgt,ponaleft,ponbig;
int rponcurse,tinypst;
int psj,psuy;
const int pondspec[] = { 0,0,0,0,0,0,0,0,
1,7,2,13,14,16,7,0 };
if((pst >= 1000)&&(pst <= 1999))
{
rponcurse = divmodi(pst,1000,1)-1;
tinypst = divmodi(pst,1000,0)*8;
ponxsft = pondspec[tinypst];
ponwid = pondspec[tinypst + 1];
ponysft = pondspec[tinypst + 2];
pondhgt = pondspec[tinypst + 3];
ponbhgt = pondspec[tinypst + 4];
ponahgt = pondspec[tinypst + 5];
ponaleft = pondspec[tinypst + 6];
// depth = 2
ponbig = 1;
pswy = ponxsft + ponaleft;
pswcx=0;
while(pswcx < pswy)
{
ponbig=ponbig+ponbig;
pswcx=pswcx+1;
}
pswright=pstrw*ponwid;
// *** ERROR *** forgot to widen bitmap to next higher
// multiple of 32 pixels
// *** ERROR *** above error was hidden.
// making new variable psj with wider width below
psj = divmodi((psw+31),32,0)*32;
// -------------------------------
pswrrem=psj-pswright;
if(pswrrem > 0)
{
uncram(0,2,psb,19778);
uncram(18,4,psb,psw);
uncram(22,4,psb,ponbhgt);
uncram(28,2,psb,1);
uncram(30,4,psb,0);
uncram(46,4,psb,0);
uncram(54,4,psb,0);
uncram(58,4,psb,16777215);
// depth = 3
pswcx=0;
while(pswcx < pstrw)
{
pstrelem=onexwchr(pswcx,pstr);
pswy=0;
while(pswy < ponbhgt)
{
psevenctr=0;
psfsub = pswy + (ponahgt * pstrelem) + ponysft;
psuy=(ponbhgt - 1) - pswy;
pswline = (int)psf[psfsub];
while(psevenctr < ponwid)
{
pswpix=1;
pswline=pswline+pswline;
if(pswline >= ponbig)
{
pswline = pswline - ponbig;
pswpix=0;
}
pswpx=(pswcx * ponwid) + psevenctr;
// depth = 6
bitwrt(psb,62,psj,pswpx,psuy,0,pswpix);
psevenctr=psevenctr+1;
}
pswy=pswy+1;
}
if((ponxsft > 0)&&(pswcx == rponcurse))
{
pswy=0;
pswpix=1;
pswpx = pswcx * ponwid;
while(pswy < ponbhgt)
{
bitwrt(psb,62,psj,pswpx,((ponbhgt-1)-pswy),0,pswpix);
pswpix=1-pswpix;
pswy=pswy+1;
}
}
pswcx=pswcx+1;
}
// depth = 3
pswy=0;
while(pswy < ponbhgt)
{
pswpx=0;
pswpix=1;
psuy=(ponbhgt - 1)-pswy;
while(pswpx < pswrrem)
{
pswcx = pswpx + pswright;
bitwrt(psb,62,psj,pswcx,psuy,0,pswpix);
if(pswpx > 16)pswpix=0;
pswpx=pswpx+1;
}
pswy=pswy+1;
}
// depth = 3
}
}
}
// end of printstr
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 zackreadbw(int rpbc[],char rprec[],char rpct[],
char rpbig[],FILE* rph)
{
int rpiterm,rbiwidth,rpscalelim,rpscalectr,rpdesrase;
int rbimain,rbirem,rbictr,rboctr,rpinext,rpirase;
char bamb0,bamb1,bamb2,bamw4,bamw5,bamw6;
rbiwidth=rpbc[8];
rpscalelim=rpbc[4];
rpdesrase=0;
bamb0=rpct[0];
bamb1=rpct[1];
bamb2=rpct[2];
bamw4=rpct[4];
bamw5=rpct[5];
bamw6=rpct[6];
rbimain=divmodi(rbiwidth,8,0);
rbirem=divmodi(rbiwidth,8,1);
rpscalectr=0;
while(rpscalectr < rpscalelim)
{
rpinext=lbreadf(rpbc,rprec,0,rph);
rpirase=lredoffs(rpbc);
rpbc[15]=rpinext;
rboctr=0;
while(rboctr < rbimain)
{
rpiterm=onexwchr((rpirase+rboctr),rprec);
// depth = 3
rbictr=0;
while(rbictr < 8)
{
rpiterm=rpiterm+rpiterm;
if(rpiterm <= 255)
{
rpbig[rpdesrase]=bamb0;
rpbig[rpdesrase+1]=bamb1;
rpbig[rpdesrase+2]=bamb2;
}
if(rpiterm > 255)
{
rpbig[rpdesrase]=bamw4;
rpbig[rpdesrase+1]=bamw5;
rpbig[rpdesrase+2]=bamw6;
rpiterm=rpiterm-256;
}
rpdesrase=rpdesrase+3;
rbictr=rbictr+1;
}
// depth = 3
rboctr=rboctr+1;
}
// depth = 2
rpiterm=onexwchr((rpirase+rbimain),rprec);
rbictr=0;
while(rbictr < rbirem)
{
// depth = 3
rpiterm=rpiterm+rpiterm;
if(rpiterm <= 255)
{
rpbig[rpdesrase]=bamb0;
rpbig[rpdesrase+1]=bamb1;
rpbig[rpdesrase+2]=bamb2;
}
if(rpiterm > 255)
{
rpbig[rpdesrase]=bamw4;
rpbig[rpdesrase+1]=bamw5;
rpbig[rpdesrase+2]=bamw6;
rpiterm=rpiterm-256;
}
rpdesrase=rpdesrase+3;
rbictr=rbictr+1;
}
// depth = 2
rpscalectr=rpscalectr+1;
}
}
// bottom of zackreadbw
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 nonbambi(char** iibplane,int nbbc[],char nbbig[])
{
// need new char* nbplane
int putbambi,bamby,bambx,bambwid,bambplat,bambictr;
int bambilimit;
char* nbplane0;
char* nbplane1;
char* nbplane2;
char* nbplane3;
char bambk,bamwh;
nbplane0 = *(iibplane + 0);
nbplane1 = *(iibplane + 1);
nbplane2 = *(iibplane + 2);
nbplane3 = *(iibplane + 3);
// 1538 indirects at 1534 thru 1537
putbambi=0-1;
bamwh=(char)putbambi;
bambk='\0';
if(((nbbc[20]) >= 0)&&((nbbc[20]) < (nbbc[21])))
{
putbambi=nbbc[20]-1;
bambilimit=(nbbc[18])*3;
bamby=nbbc[20]+nbbc[3];
bambx=nbbc[2]-1;
bambwid=nbbc[7];
bambictr=0;
while(bambictr < bambilimit)
{
bambx=bambx+1;
if((nbbig[bambictr + 1]) == bambk)
{
bitwrt(nbplane3,0,bambwid,bambx,bamby,1,0);
if((nbbc[6]) > 1)
{
bitwrt(nbplane2,0,bambwid,bambx,bamby,1,0);
bitwrt(nbplane1,0,bambwid,bambx,bamby,1,0);
bitwrt(nbplane0,0,bambwid,bambx,bamby,1,0);
}
}
if((nbbig[bambictr + 1]) == bamwh)
{
bitwrt(nbplane3,0,bambwid,bambx,bamby,1,1);
if((nbbc[6]) > 1)
{
bitwrt(nbplane2,0,bambwid,bambx,bamby,1,1);
bitwrt(nbplane1,0,bambwid,bambx,bamby,1,1);
bitwrt(nbplane0,0,bambwid,bambx,bamby,1,1);
}
}
bambictr=bambictr+3;
}
bambplat=bambx+1;
bambilimit=nbbc[18]-bambplat;
bambictr=0;
while(bambictr < bambilimit)
{
bambx=bambplat+bambictr;
bitwrt(nbplane3,0,bambwid,bambx,bamby,1,1);
if((nbbc[6]) > 1)
{
bitwrt(nbplane2,0,bambwid,bambx,bamby,1,1);
bitwrt(nbplane1,0,bambwid,bambx,bamby,1,1);
bitwrt(nbplane0,0,bambwid,bambx,bamby,1,1);
}
bambictr=bambictr+1;
}
}
return putbambi;
}
// bottom of nonbambi
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;
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);
// *** 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;
if((irplane[6] >= 0)&&(irplane[6] <= 1))
// colormode starts at 0. Replace 2;
{
putsmallpix=0;
if(putbigcmp > irplane[23])putsmallpix=15;
if(putsmallpix != 0)irplane[23]=putbigcmp+1;
if(putsmallpix == 0)irplane[23]=putbigcmp-1;
if(irplane[6] == 1)
{
if(putbigcmp < putpilowcap)putsmallpix=0;
// depth = 5
if(putbigcmp > putpibigcap)putsmallpix=15;
}
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
// bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
// 1,putsmallpix);
// bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
// 1,putsmallpix);
// bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
// 1,putsmallpix);
// bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
// 1,putsmallpix);
}
// cut here depth = 3 ------------ 1871 twotop
/* remove unused modes
if((irplane[6]) == 72)
{
putsmallpix=0;
putxoctr=0;
putxictr=1;
while(putxictr > 0)
{
if(putbigcmp < (irplane[58+putxoctr]))putxictr=0;
if(putxictr > 0)putxoctr=putxoctr+1;
if(putxoctr > 5)putxictr=0;
}
putxictr=thsixsev[putxoctr];
putxoctr=putxictr+putxictr;
putxictr=putxoctr+putxoctr;
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+0]));
bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+1]));
bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+2]));
bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+3]));
}
// two bottom 1897
if((irplane[6]) == 73)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=divmodi(putjshifx,2,1);
putsmallpix=divmodi(putjshify,2,1);
putxoctr=putsmallpix+putsmallpix+putxictr;
putsmallpix=0;
if(putbigcmr > (irplane[(62 + putxoctr)]))
{
putsmallpix = putsmallpix | 48;
}
if(putbigcmg > (irplane[(62 + putxoctr)]))
{
putsmallpix = putsmallpix | 40;
}
if(putbigcmb > (irplane[(62 + putxoctr)]))
{
putsmallpix = putsmallpix | 36;
}
if(putsmallpix == 0)
{
if(putbigcmr > (irplane[(58 + putxoctr)]))
{
putsmallpix = putsmallpix | 16;
}
if(putbigcmg > (irplane[(58 + putxoctr)]))
{
putsmallpix = putsmallpix | 8;
}
if(putbigcmb > (irplane[(58 + putxoctr)]))
{
putsmallpix = putsmallpix | 4;
}
}
putxictr=putsmallpix;
bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+0]));
bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+1]));
bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+2]));
bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+3]));
}
// threebottom 2026
// cut here depth = 3 ------------
if((irplane[6]) == 74)
{
putsmallpix=0;
putxoctr=0;
putxictr=1;
while(putxictr > 0)
{
if(putbigcmp < (irplane[58+putxoctr]))putxictr=0;
if(putxictr > 0)putxoctr=putxoctr+1;
if(putxoctr > (thdimtran-2))putxictr=0;
}
putxictr=thbigtran[putxoctr];
putxoctr=putxictr+putxictr;
putxictr=putxoctr+putxoctr;
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+0]));
bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+1]));
bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+2]));
bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+3]));
}
// four bottom 2062
// 2098 irplane[6]==2 or 1002
if((irplane[6]) == 1002)
{
putsmallpix=0;
putxoctr=0;
putxictr=1;
while(putxictr > 0)
{
if(putbigcmp < (irplane[58+putxoctr]))putxictr=0;
if(putxictr > 0)putxoctr=putxoctr+1;
if(putxoctr > (thdimbran-2))putxictr=0;
}
// putxictr=thbigtran[putxoctr];
putxictr=putxoctr;
putxoctr=putxictr+putxictr;
putxictr=putxoctr+putxoctr;
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+0]));
bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+1]));
bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+2]));
bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
1,(sevbig[putxictr+3]));
}
// end of 2
restarting program listing */
// 2126 irplane[6] == 2 redo
// if((irplane[6]) == 2)
// {
// putsmallpix=indiv(putbigcmp,(irplane+58),thdimbran);
// putjshifx=putxvctr+irplane[2];
// putjshify=irplane[20]+irplane[3];
// acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
// }
// if((irplane[6]) == 3)
// {
// putjshifx=putxvctr+irplane[2];
// putjshify=irplane[20]+irplane[3];
// putsmallpix=grpindiv(putbigcmp,(irplane+58),
// thdimbran,putjshifx,putjshify,thdimbran);
// acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
// }
if((irplane[6]) == 2)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),
8,putjshifx,putjshify,8);
if(putxictr > 6)putxictr=6;
putsmallpix = thsixsev[putxictr];
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
}
if((irplane[6]) == 3)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),
8,putjshifx,putjshify,8);
if(putxictr > 6)putxictr=6;
putsmallpix = thsixsev[putxictr];
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
}
if((irplane[6]) == 4)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr = putjshifx & 1;
putsmallpix = putjshify & 1;
putxoctr=putsmallpix+putsmallpix+putxictr;
putsmallpix=0;
if(putbigcmr > (irplane[(62 + putxoctr)]))
{
putsmallpix = putsmallpix | 12;
}
if(putbigcmg > (irplane[(62 + putxoctr)]))
{
putsmallpix = putsmallpix | 10;
}
if(putbigcmb > (irplane[(62 + putxoctr)]))
{
putsmallpix = putsmallpix | 9;
}
if(putsmallpix == 0)
{
if(putbigcmr > (irplane[(58 + putxoctr)]))
{
putsmallpix = putsmallpix | 4;
}
if(putbigcmg > (irplane[(58 + putxoctr)]))
{
putsmallpix = putsmallpix | 2;
}
if(putbigcmb > (irplane[(58 + putxoctr)]))
{
putsmallpix = putsmallpix | 1;
}
}
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
}
// threebottom 2313
// fourbottom 2314
if((irplane[6]) == 5)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),
8,putjshifx,putjshify,8);
if(putxictr > 6)putxictr=6;
putsmallpix = thsixsev[putxictr];
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
}
if((irplane[6]) == 6)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),
8,putjshifx,putjshify,8);
if(putxictr > 6)putxictr=6;
putsmallpix = thsixsev[putxictr];
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
}
if((irplane[6]) == 7)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),
8,putjshifx,putjshify,8);
if(putxictr > 6)putxictr=6;
putsmallpix = thsixsev[putxictr];
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
}
if((irplane[6]) == 8)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),
8,putjshifx,putjshify,8);
if(putxictr > 6)putxictr=6;
putsmallpix = thsixsev[putxictr];
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
}
if((irplane[6]) == 9)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),
8,putjshifx,putjshify,8);
if(putxictr > 6)putxictr=6;
putsmallpix = thsixsev[putxictr];
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
}
if((irplane[6]) == 10)
{
putjshifx=putxvctr+irplane[2];
putjshify=irplane[20]+irplane[3];
putxictr=grpindiv(putbigcmp,(irplane+58),
8,putjshifx,putjshify,8);
if(putxictr > 6)putxictr=6;
putsmallpix = thsixsev[putxictr];
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
}
// end
// second two four bottom
// --------------------------------
// end of colored adapter
putxvctr=putxvctr+1;
}
// depth = 2
putxvctr=0;
while(putxvctr < irplane[19])
{
putsmallpix=15;
putxictr=putxvctr+irplane[18];
putjshifx=putxictr+irplane[2];
putjshify=irplane[20]+irplane[3];
if(((putjshifx+putjshify)&8)!=0)putsmallpix=0;
acbus[(putjshify*irplane[7])+putjshifx]=putsmallpix;
// if((irplane[6]) <= 1)
// {
// bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
// 1,putsmallpix);
// }
// if((irplane[6]) > 1)
// {
// bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
// 1,putsmallpix);
// bitwrt(jrplane2,0,(irplane[7]),putjshifx,putjshify,
// 1,putsmallpix);
// bitwrt(jrplane1,0,(irplane[7]),putjshifx,putjshify,
// 1,putsmallpix);
// bitwrt(jrplane0,0,(irplane[7]),putjshifx,putjshify,
// 1,putsmallpix);
// }
putxvctr=putxvctr+1;
}
// 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);
if((onbbc[6]) == 72)
{
ombctr=0;
while(ombctr < 6)
{
onbbc[(58+ombctr)]=shrinkth[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
if((onbbc[6]) == 2)
{
ombctr=0;
while(ombctr < 32)
{
onbbc[(58+ombctr)]=serinkth[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
if((onbbc[6]) == 3)
{
ombctr=0;
while(ombctr < 32)
{
onbbc[(58+ombctr)]=sbrinkth[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
if((onbbc[6]) == 4)
{
ombctr=0;
while(ombctr < 8)
{
onbbc[(58+ombctr)]=rgbeight[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
if((onbbc[6]) == 73)
{
ombctr=0;
while(ombctr < 8)
{
onbbc[(58+ombctr)]=rgbeight[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
if((onbbc[6]) == 5)
{
ombctr=0;
while(ombctr < 32)
{
onbbc[(58+ombctr)]=shrinkth[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
// 5 and 6
if((onbbc[6]) == 6)
{
ombctr=0;
while(ombctr < 32)
{
onbbc[(58+ombctr)]=shrinkfr[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
if((onbbc[6]) == 7)
{
ombctr=0;
while(ombctr < 32)
{
onbbc[(58+ombctr)]=shrinksa[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
// 7 and 8
if((onbbc[6]) == 8)
{
ombctr=0;
while(ombctr < 32)
{
onbbc[(58+ombctr)]=shrinksu[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
if((onbbc[6]) == 9)
{
ombctr=0;
while(ombctr < 32)
{
onbbc[(58+ombctr)]=shrinkmo[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
// 7 and 8
if((onbbc[6]) == 10)
{
ombctr=0;
while(ombctr < 32)
{
onbbc[(58+ombctr)]=shrinktu[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
// colormode == 74
if((onbbc[6]) == 74)
{
ombctr=0;
while(ombctr < (thdimtran - 1))
{
onbbc[(58+ombctr)]=bigthre[ombctr] * onbbc[4] * onbbc[4];
ombctr=ombctr+1;
}
}
// second colormode == 2
// if((onbbc[6]) == 2)
// {
// ombctr=0;
// while(ombctr < (thdimbran - 1))
// {
// onbbc[(58+ombctr)]=monothre15[ombctr]*onbbc[4]*onbbc[4];
// ombctr=ombctr+1;
// }
// }
// end of actual monochrome greyscale thresholds loading ..
// if((onbbc[6]) == 3)
// {
// ombctr=0;
// while(ombctr < ((thdimbran - 1)*4))
// {
// onbbc[(58+ombctr)]=monoghre60[ombctr]*onbbc[4]*onbbc[4];
// ombctr=ombctr+1;
// }
// }
// end of actual monochrome greyscale thresholds loading ..
// --
}
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))
{
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(((onbbc[10]) == 1)&&((onbbc[4]) == 1))
// {
// if bibitcount==1 and scale==1 fast version
// while(omballow > 0)
// {
// zackreadbw(onbbc,ombrecord,ombcolort,ombgbig,ombfh);
// onbbc[20]=nonbambi(ijplane,onbbc,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,1,16,tnutexxt,((tmbc[6])+5));
if(tmbc[(tmbc[35] + 40)] == 0)
{
chrfroms(0,40,tnutexxt,"No bitmap file is here. !");
// linuwrn(1,8,16,tnutexxt,(saveapal[0]));
// linuwrn(10,8,16,tnutexxt,(saveapal[1]));
// linuwrn(19,8,16,tnutexxt,(saveapal[2]));
// linuwrn(28,8,16,tnutexxt,(saveapal[3]));
}
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 vgview09.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 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,"Vote against the U.S. military draft by!");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"Voting for an All Volunteer jury system!");
tmbdiscard=xwtscroll(tmbc,tnutexxt,tmogroup);
chrfroms(0,40,tnutexxt,"vgview09.c 03-16-08 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
fourbres=0;
// while(fourbres < 4)
// {
// fourbcmp=divmodi(((ac[7])*(ac[29])),8,0)+1;
// fourbctr=0;
// while(fourbctr < fourbcmp)
// {
// *(aap[fourbres]+fourbctr)='\0';
// fourbctr=fourbctr+1;
// }
// fourbres=fourbres+1;
// }
fourbcmp=(divmodi(((ac[7])*(ac[29])),8,0)+1)*8;
fourbctr=0;
fourbres=15;
while(fourbctr < fourbcmp)
{
acbus[fourbctr]=(char)fourbres;
fourbctr=fourbctr+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]=5;
if(runmode == G640x480x2)ac[6]=1;
// 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(((ac[6]) > 10)&&(runmode != G640x480x2))ac[6]=1;
// 3127 compare with maximum allowed colormode
if(((ac[6]) > 10)&&(runmode == G640x480x2))ac[6]=0;
}
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)
{
// 2740 replace onexwdig(int,char*) 2741 2742 with onexwchr
nzeterm=onexwchr(((nzeoctr*4)+1+nzeictr),ecright);
if(onexwchr((nzebase+nzeictr),uncfn) != nzeterm)
// *** ERROR *** above mistake was hidden and hard to find.
{
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 vgview09.c
// This is the last line of this program
/* after end of program

0 new messages