Home Messages Index
[Date Prev][Date Next][Thread Prev][Thread Next]
Author IndexDate IndexThread Index

Re: 11 Reasons Why .NET Will Fail

  • Subject: Re: 11 Reasons Why .NET Will Fail
  • From: ericmatteson2003november@xxxxxxxxxxx
  • Date: 8 May 2006 16:24:25 -0700
  • Complaints-to: groups-abuse@google.com
  • Injection-info: j73g2000cwa.googlegroups.com; posting-host=207.233.52.141; posting-account=0KIkUw0AAACAwe7jm5FmoWyyah7wtEME
  • Newsgroups: comp.os.linux.advocacy
  • Organization: http://groups.google.com
  • References: <2753901.IjrlqLFZR2@schestowitz.com>
  • User-agent: G2/0.2
  • Xref: news.mcc.ac.uk comp.os.linux.advocacy:1107469
Roy Schestowitz wrote:
> Why Microsoft's .NET is about to fail
>
> ,----[ Quote ]
> | Blogger "MoreAmbitious" has eleven - in my opinion - valid points why
> | Microsoft's .NET strategy is about to fail. VB6 people aren't switching,
> | few relevant and innovative open-source projects, etc. Think twice
> | before using it, because MS isn't either (in Vista)!
> `----
>
> http://digg.com/programming/Why_Microsoft_s_.NET_is_about_to_fail
Microsoft.net is very SLOW.
It is too slow to be useful.
 When I made my bitmap
dib viewer program for displaying *.bmp files
I wrote it in C for fast LINUX XWindows
instead of slow Microsoft.net
// program is below this line
// this is the first line of this program
// second line
// gcc -Wall xwview03.c -L/usr/X11R6/lib -lX11 -o xwview03.out
// ./xwview03.out   at XWindows linux bash command prompt
  #include<X11/Xutil.h>
  #include<stdio.h>
// optional #include<X11/Xlib.h>
// xlxs 00 01 02 03 04
// xlxs 01 one next
//  #include<X11/keysym.h>
// --------------------------------
// optional  #include<X11/Xresource.h>
// optional  #include<X11/Xatom.h>
// optional  #include<X11/Xos.h>
// unknown   #include<stdlib.h>
  #include <stddef.h>
  #include <sys/types.h>
  #include <dirent.h>
// Copyright C 2006 by Eric Matteson
// permission is granted to copy
// this SOURCE CODE xwview03.c
// and to publish it on the Internet.
// This material may be used at
// least for non profit use.
// This program is not valid without source code.
// Computer users can enforce the open source requirement
// by refusing to use any program that does not have
// source code distributed with it.
// The reccommended proceedure is to distribute this
// program in source code form only and seperately
// compile it on each
// computer that it is to run on.
// ---------------------
//           nzlibkey = 0 for doskey   1 for XLookupString
   const int nzlibkey = 0;
// xlxs 02 one next
//  const int xlxsdim = 15;
// -----------------------
   const int xxsv = 50;
   const int xsv = 62;
   const int thdimtran = 13;
   const int shrinkth[] = { 10,84,216,376,564,662 };
   const int bigthre[] = { 2,5,10,20,40,75,150,250,
                           350,450,550,650 };
   const int thbigtran[] = {0,1,4,2,5,3,9,
                              12,10,14,13,11,15 };
   const int rgbeight[] = { 60,96,80,102,180,192,160,208 };
   const int thsixsev[] = { 0,1,3,7,9,11,15 };
   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[80];
   char* caap[4];
   char cdraw0[65536];
   char cdraw1[65536];
   char cdraw2[65536];
   char cdraw3[65536];
   char bar[23040];
   char caf[4096];
   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;
   char sdirch;
// ---------------------
   DIR *xfourdp;
   struct dirent *xfourep;
// ---------------------
   Display* lpdis;
   Window wix;
   XEvent report;
   GC agc,wgc,bgc,xgc,ygc,zgc;
    XSizeHints* rsizehints;
    XWMHints* rwmhints;
    XClassHint*  rclasshints;
   Pixmap tempmap0;
   Pixmap tempmap1;
   Pixmap tempmap2;
   Pixmap tempmap3;
   Pixmap rempmap;
// xlxs 03 five next
//   KeySym xlxsks;
//   XComposeStatus xlxscomp;
// ------------------------  begin declarations
// int XLookupString(XKeyEvent* ,char* ,int,KeySym* ,
//                   XComposeStatus* );
// ---------------------------------------------
  int divmodi(int inumer,int idenom,int nzirem);
  int onexwchr(int xwcpos,char xwclist[]);
  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);
// --------------------------------------------------
  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 main(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
  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
  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);
     can[80+xilop] = *(argufn + xilop);
     can[40+xilop] = *(argufn + xilop);
     can[xilop] = *(argufn + xilop);
     xilop=xilop+1;
     }
   iiac[45]=1;
   iiac[44]=1;
   }
  }
  lpdis = XOpenDisplay(adn);
  scnum=DefaultScreen(lpdis);
  scrdepth=DefaultDepth(lpdis,scnum);
  iiac[7]=608;
  iiac[29]=378;
  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);
  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);
  xolop=0;
   while(xolop == 0)
   {
   XNextEvent(lpdis,&report);
// depth = 2
    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;
     ckey=1048576;
     rjkey=1048576;
     xlkount=0-1;
      if(nzlibkey == 0)
      {
      ckey=report.xkey.keycode;
// depth = 4
      rjkey=iidoskey(ckey,sud,jxwkeyhold,"x");
      }
// xlxs 04  next
//      if(nzlibkey > 0)
//      {
//       if(xlxsdim <= 16384)
//       {
//       xlkount = XLookupString((XKeyEvent*)(&report),
//                 xlxsbuff,xlxsdim,&xlxsks,&xlxscomp);
//   if((xlkount >= 1)&&(xlkount <= 4))
//   {
//       rjkey=onexwchr((xlkount-1),xlxsbuff);
//       if(xlkount > 1)rjkey=rjkey+512;
//   }
//   if(xlkount < 1)rjkey=0;
// *** ERROR *** library error arrow keys return zero
//               length string. reccommended remedy
//    is to replace XLookupString with high quality
//  int iidoskey(int kkll,int kshiftb,int ixkeyhold[],
//                              const char* klinuxcm);
//                   kkll is raw key
//                            kshiftb is 0 for no shift
//                   ixkeyhold is translation table
//                      klinuxcm is translation mode
//   ckey = (int)xlxsks;
//       }
//      }
// -----
// end of nzlibkey > 0
     iiac[26]=rjkey;
     iiac[27]=ckey;
  if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
// 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
// depth = 2
    if(report.type == Expose)
    {
      if(report.xexpose.count == 0)
      {
      xilop=0;
// 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(report.type == ButtonPress)
    {
    xilop=0;
    if((iiac[28]) == 5)
    {
  lmoux=report.xbutton.x;
  lmouy=report.xbutton.y;
  iiac[26]=0;
  iiac[27]=381924;
  xilop=0;
  if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
// 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
   lmoux=131072;
   lmouy=131072;
    }
// depth = 3
    }
    if(report.type == ConfigureNotify)
    {
    iiac[7] = report.xconfigure.width;
// 0353 set xilop below to eight or number of bits quanwid
    xilop=8;
// wrong   iiac[29] = (xilop * (iiac[7])) + (xilop - 1);
// wrong   iiac[7]=divmodi((iiac[29]),xilop,0);
     iiac[29]=divmodi(((iiac[7])+(xilop-1)),xilop,0);
     iiac[7]=xilop*iiac[29];
// restore 29 height
    iiac[29] = report.xconfigure.height;
     xilop=1;
//   xilop == 0 to update display after configure notify
     xilop=0;
// no key available here     ckey=report.xkey.keycode;
// nothing here rjkey=iidoskey(ckey,sud,jxwkeyhold,"x");
//     iiac[26]=rjkey;
//     iiac[27]=ckey;
      iiac[26]=0;
// scince no real key set apparent translated key to 0
      iiac[27]=262143;
// scince no raw key set number too large to display
// configure notify does not really provide a valid key
  if(xilop == 0)xilop=fourbump(caap,iiac,bar,bab,caf,can);
// high speed  print to screen top monochrome high speed  2
// 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
// print page to screen bottom                   high speed
    }
   }
//  end while
//  XFreeGC(lpdis,agc);
//  XFreeGC(bgc);
//  XFreeGC(wgc);
//  XFreeGC(xgc);
//  XFreeGC(ygc);
//  XFreeGC(zgc);
  return 0;
  }
// end of main
// --------------------------------------------- 90
// -------------------------------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*)
// ------------------------------------------------------
// system dependent above this line ----------------------
// --------------------------------- proposed declarations
//  int divmodi(int inumer,int idenom,int nzirem);
//  int onexwchr(int xwcpos,char xwclist[]);
//  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[]);
//  void fonthfill(char fhf[]);
//  int nzextcmp(char* uncfn,char* ecright);
// -------------------
// 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;
  }
  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))
   {
   putsmallpix=0;
   if(putbigcmp > irplane[23])putsmallpix=1;
   if(putsmallpix == 1)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=1;
    }
   putjshifx=putxvctr+irplane[2];
   putjshify=irplane[20]+irplane[3];
   bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
                                      1,putsmallpix);
   }
// cut here  depth = 3 ------------ 1871 twotop
   if((irplane[6]) == 2)
   {
   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]) == 3)
  {
  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]) == 4)
   {
   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
// end of colored adapter
   putxvctr=putxvctr+1;
   }
// depth = 2
   putxvctr=0;
    while(putxvctr < irplane[19])
    {
    putsmallpix=1;
    putxictr=putxvctr+irplane[18];
    putjshifx=putxictr+irplane[2];
    putjshify=irplane[20]+irplane[3];
    bitwrt(jrplane3,0,(irplane[7]),putjshifx,putjshify,
                                       1,putsmallpix);
    if((irplane[6]) > 1)
    {
    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]) == 2)
   {
   ombctr=0;
    while(ombctr < 6)
    {
    onbbc[(58+ombctr)]=shrinkth[ombctr] * onbbc[4] * onbbc[4];
    ombctr=ombctr+1;
    }
   }
   if((onbbc[6]) == 3)
   {
   ombctr=0;
    while(ombctr < 8)
    {
    onbbc[(58+ombctr)]=rgbeight[ombctr] * onbbc[4] * onbbc[4];
    ombctr=ombctr+1;
    }
   }
// colormode == 4
   if((onbbc[6]) == 4)
   {
   ombctr=0;
    while(ombctr < (thdimtran - 1))
    {
    onbbc[(58+ombctr)]=bigthre[ombctr] * onbbc[4] * onbbc[4];
    ombctr=ombctr+1;
    }
   }
// --
  }
  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))
   {
    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);
//    printstr(tmolinne,(tmbc[0]),1000,tbf,40,tnutexxt);
//    tmbdiscard=onebumpw(tjple,tmbc,tmolinne,tbjg);
// -------------------------------------
// ------------------------------------
    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])+10));
    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]));
    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 xwview03.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,"xwview03.c  05/07/06  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)
     {
     printstr(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[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)
   {
// *** ERROR *** attempting to set indirect indirect
//               pointers beyond dimension of array
//   aap[fourbctr]='\0';
   *(aap[fourbres]+fourbctr)='\0';
   fourbctr=fourbctr+1;
   }
  fourbres=fourbres+1;
  }
// --------------------------------------------------
  fourbres=0;
  fourrd=1;
  fourbase=160;
  if((ac[28]) == 4)fourbase=120;
  if((ac[28]) == 3)fourbase=80;
  if((ac[28]) == 2)fourbase=40;
// depth = 1
  if((ac[28]) == 1)fourbase=0;
   if((ac[30]) == 11829)
   {
//    fourbctr=41;
//    while(fourbctr < 46)
//    {
//    ac[fourbctr]=0;
// depth = 3
//    fourbctr=fourbctr+1;
//    }
   fonthfill(af);
   ac[34]=160;
   ac[28]=5;
   ac[57]=ac[28];
   ac[6]=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 .
   (void) 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;
   (void) 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)
   {
   (void) 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]) > 4)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)
  {
  nzeterm=onexwdig(((nzeoctr*4)+1+nzeictr),ecright);
  if(onexwdig((nzebase+nzeictr),uncfn) != nzeterm)
  {
  uurxtcmp=1;
// depth = 5
  }
  nzeictr=nzeictr+1;
  }
  if(uurxtcmp == 0)nzrxtcmp=1;
  nzeoctr=nzeoctr+1;
  }
  }
  return nzrxtcmp;
  }
  char twofromten(int rawenine)
  {
  int eightofi[8];
  int rtftctr,rfftres,rawentop,rfftrem;
  char tfftres;
  rtftctr=8;
  rawentop=rawenine;
   while(rtftctr > 0)
   {
   rfftrem=divmodi(rawentop,10,1);
   rawentop=divmodi(rawentop,10,0);
   eightofi[rtftctr-1]=rfftrem;
   rtftctr=rtftctr-1;
   }
  rtftctr=0;
  rfftres=0;
   while(rtftctr < 8)
   {
   rfftres=rfftres*2;
   rfftres=rfftres+eightofi[rtftctr];
   rtftctr=rtftctr+1;
   }
  if(rfftres > 127)rfftres=rfftres-256;
  tfftres = (char)rfftres;
  return tfftres;
  }
// add font below this line ----------2012
// 4096 = 64 * 64  to  256 * 16
// 64 = 16 * 4
// outer loop 0 to 63 (*64)
// medium loop  (medium * 4) + 0 to 3
//                           medium is 0 to 15
//               medium result (0 to 3)*16 + (medium*1)
//     inner loop 0 to 3
// -----------------------------------------------
//   20000000-,200000000,20000000-,200000000,
//   201000100,201111100,201111100,201111100,
//   201000100,201111100,201111100,201111100,
//   201000100,201100000,201100000,200001100,
//   201000100,201100000,201100000,200001100,
//   201000100,201100000,201100000,200001100,
//   201000100,201100000,201111100,200001100,
//   20xxxxx0-,20xxxxx0-,-0xxxxx0-,20xxxxx0-,
//   201111100,201111100,201111100,200001100,
//   201111100,201111100,201100100,200001100,
//   200001100,200001100,201100100,200001100,
//   200001100,200001100,201100100,200001100,
//   200001100,201111100,201111100,200001100,
//   200001100,201111100,201111100,200001100,
//   200000000,200000000,200000000,200000000,
//   200000000,200000000,200000000,200000000,
//            ,2        ,         ,2        ,
//  Open Source Font Copyright C 2005 by Eric Matteson
//  Permission is granted to use this font in
//  open source applications programs written for Linux.
// begin open source   font    ,2   ,         ,2,
//                    );       ,2   ,         ,2,
//       -x76543210-x76543210-x76543210-x76543210-
  const 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;
// 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];
     fhf[fhdsub]=twofromten(fhdterm);
     fhilop=fhilop+1;
     }
    fhmedlop=fhmedlop+1;
    }
   fholop=fholop+1;
   }
  }
// end of void fonthfill(char fhf[]);
// This is last line of this program
// program is above this line


[Date Prev][Date Next][Thread Prev][Thread Next]
Author IndexDate IndexThread Index